OSDN Git Service

書籍執筆用のプラグインをsandboxにコミットしておきます。
[fswiki/sandbox.git] / takezoe / plugin / book / Toc.pm
1 ################################################################################
2 #
3 # <p>book¥×¥é¥°¥¤¥ó¤Î¸«½Ð¤·ÈÖ¹æ¤ËÂбþ¤·¤¿¥Ú¡¼¥¸¤Î¥¢¥¦¥È¥é¥¤¥ó¤òɽ¼¨¤·¤Þ¤¹¡£</p>
4 # <pre>
5 # {{toc}}
6 # </pre>
7 # <p>¥Ú¡¼¥¸Ì¾¤ò»ØÄꤹ¤ë¤³¤È¤Ç¾¤Î¥Ú¡¼¥¸¤Î¥¢¥¦¥È¥é¥¤¥ó¤òɽ¼¨¤¹¤ë¤³¤È¤â¤Ç¤­¤Þ¤¹¡£</p>
8 # <pre>
9 # {{toc ¥Ú¡¼¥¸Ì¾}}
10 # </pre>
11 #
12 ################################################################################
13 package plugin::book::Toc;
14 #==============================================================================
15 # ¥³¥ó¥¹¥È¥é¥¯¥¿
16 #==============================================================================
17 sub new {
18         my $class = shift;
19         my $self = {};
20         return bless $self,$class;
21 }
22
23 #==============================================================================
24 # ¥Ö¥í¥Ã¥¯¥á¥½¥Ã¥É
25 #==============================================================================
26 sub paragraph {
27         my $self = shift;
28         my $wiki = shift;
29         my $page = shift;
30         my $cgi  = $wiki->get_CGI;
31         my $p_cnt = 0;
32
33         $page = $cgi->param("page") unless $page;
34         
35         # ¥Ú¡¼¥¸¤Î»²¾È¸¢¸Â¤¬¤¢¤ë¤«¤É¤¦¤«Ä´¤Ù¤ë
36         unless($wiki->can_show($page)){
37                 return undef;
38         }
39         my $parser = plugin::book::TocParser->new($wiki, $page);
40         return $parser->outline($wiki->get_page($page));
41 }
42
43 1;