1 ################################################################################
3 # <p>¸«½Ð¤·¤ä¿Þɽ¤Ø¤Î¥ê¥ó¥¯¤ò½ÐÎϤ¹¤ë¤¿¤á¤Î¥¤¥ó¥é¥¤¥ó¥×¥é¥°¥¤¥ó¤Ç¤¹¡£</p>
4 # <p>°ú¿ô¤Ë¤Ïtitle1¡Átitle3¥×¥é¥°¥¤¥ó¤äcaption¥×¥é¥°¥¤¥ó¤Çµ½Ò¤·¤¿»²¾ÈÍѤΥé¥Ù¥ë¤ò»ØÄꤷ¤Þ¤¹¡£</p>
6 # !!!{{title1 installation}}¥¤¥ó¥¹¥È¡¼¥ëÊýË¡
8 # ¥¤¥ó¥¹¥È¡¼¥ëÊýË¡¤Ë¤Ä¤¤¤Æ¤Ï{{slink installation}}¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£
10 # <p>Âè2°ú¿ô¤Ç¥Ú¡¼¥¸¤ò»ØÄꤹ¤ë¤³¤È¤Ç¡¢ÊÌ¥Ú¡¼¥¸¤Î¸«½Ð¤·¤ä¿Þɽ¤ò»²¾È¤¹¤ë¤³¤È¤â¤Ç¤¤Þ¤¹¡£</p>
12 # ¥¤¥ó¥¹¥È¡¼¥ëÊýË¡¤Ë¤Ä¤¤¤Æ¤Ï{{slink installation,Chapter1}}¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£
15 ################################################################################
16 package plugin::book::SLink;
17 #==============================================================================
19 #==============================================================================
23 my $self->{cache} = {};
24 return bless $self,$class;
27 #==============================================================================
29 #==============================================================================
36 $page = $wiki->get_CGI->param('page') unless $page;
37 my $source = $wiki->get_page($page);
39 unless(defined($self->{cache}->{$page})){
40 $self->{cache}->{$page} = {};
41 my $source = $wiki->get_page($page);
45 my @lines = split(/\n/,$wiki->get_page($page));
52 # TODO {{pre}}¥×¥é¥°¥¤¥óÆâ¤Îµ½Ò¤ÏÈô¤Ð¤µ¤Ê¤¤¤È¥À¥á¡ª¡ª¥Ñ¡¼¥µ¤òºî¤é¤Ê¤¤¤È¥À¥á¤Ã¤Ý¤¤¡©
53 foreach my $line (@lines){
54 if($line =~ /^{{(chapter.+}})$/){
55 my $plugin = $wiki->parse_inline_plugin($1);
56 $chapter = $plugin->{'args'}->[0];
60 foreach my $key (keys(%$count)){
63 } elsif($line =~ /^!!!{{(title1.+}})(.+)$/){
64 my $plugin = $wiki->parse_inline_plugin($1);
68 $text= $chapter.'-'.$title1Count;
69 $self->{cache}->{$page}->{$plugin->{'args'}->[0]} = $text;
71 } elsif($line =~ /^!!{{(title2.+}})$/){
72 my $plugin = $wiki->parse_inline_plugin($1);
75 $text= $chapter.'-'.$title1Count.'-'.$title2Count;
76 $self->{cache}->{$page}->{$plugin->{'args'}->[0]} = $text;
78 } elsif($line =~ /^!{{(title3.+}})$/){
79 my $plugin = $wiki->parse_inline_plugin($1);
81 $text= $chapter.'-'.$title1Count.'-'.$title2Count.'-'.$title3Count;
82 $self->{cache}->{$page}->{$plugin->{'args'}->[0]} = $text;
84 } elsif($line =~ /^{{(caption.+}})$/){
85 my $plugin = $wiki->parse_inline_plugin($1);
86 my $type = $plugin->{'args'}->[0];
88 $text = $type.$chapter.'-'.$count->{$type};
89 $self->{cache}->{$page}->{$plugin->{'args'}->[2]} = $text;
93 if(defined($self->{cache}->{$page}->{$anchor})){
94 my $text = $self->{cache}->{$page}->{$anchor};
95 return '<a href="?page='.Util::url_encode($page).'#'.Util::escapeHTML($anchor).'" style="border: 1px solid black;">'.Util::escapeHTML($text).'</a>';
97 return '<span class="xref-error">»²¾ÈÀ褬¸«¤Ä¤«¤ê¤Þ¤»¤ó¡ª</span>';