From 557a0f231675657b68627dac252289ed5f96cb68 Mon Sep 17 00:00:00 2001 From: takezoe Date: Fri, 30 Dec 2011 20:03:47 +0000 Subject: [PATCH] =?utf8?q?=E3=82=B3=E3=83=A9=E3=83=A0=E3=81=AE=E4=B8=80?= =?utf8?q?=E8=A6=A7=E3=82=92=E8=A1=A8=E7=A4=BA=E3=81=99=E3=82=8B=E3=83=97?= =?utf8?q?=E3=83=A9=E3=82=B0=E3=82=A4=E3=83=B3=E3=82=92=E8=BF=BD=E5=8A=A0?= =?utf8?q?=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- takezoe/plugin/book/ColumnList.pm | 95 +++++++++++++++++++++++++++++++++++++++ takezoe/plugin/book/Install.pm | 1 + 2 files changed, 96 insertions(+) create mode 100644 takezoe/plugin/book/ColumnList.pm diff --git a/takezoe/plugin/book/ColumnList.pm b/takezoe/plugin/book/ColumnList.pm new file mode 100644 index 0000000..83c45fc --- /dev/null +++ b/takezoe/plugin/book/ColumnList.pm @@ -0,0 +1,95 @@ +################################################################################ +# +#

column¥×¥é¥°¥¤¥ó¤Çµ­½Ò¤·¤¿¥³¥é¥à¤Î°ìÍ÷¤ò½ÐÎϤ·¤Þ¤¹¡£

+#
+# {{column}}
+# 
+#

+# ¥Ú¡¼¥¸Ì¾¤ò»ØÄꤹ¤ë¤³¤È¤Ç¾¤Î¥Ú¡¼¥¸¤Î¥³¥é¥à°ìÍ÷¤ò½ÐÎϤ¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ +# ¥Ú¡¼¥¸Ì¾¤ÏÊ£¿ô»ØÄꤹ¤ë¤³¤È¤â¤Ç¤­¤Þ¤¹¡£ +#

+#
+# {{toc ¥Ú¡¼¥¸Ì¾1,¥Ú¡¼¥¸Ì¾2,...}}
+# 
+# +################################################################################ +package plugin::book::ColumnList; +#============================================================================== +# ¥³¥ó¥¹¥È¥é¥¯¥¿ +#============================================================================== +sub new { + my $class = shift; + my $self = {}; + return bless $self,$class; +} + +#============================================================================== +# ¥Ñ¥é¥°¥é¥Õ¥á¥½¥Ã¥É +#============================================================================== +sub paragraph { + my $self = shift; + my $wiki = shift; + my @pages = @_; + + my $parser = plugin::book::ColumnListParser->new($wiki); + if($#pages == -1){ + my $page = $wiki->get_CGI->param('page'); + $parser->parse('', $wiki->get_page($page)); + } else { + foreach my $page (@pages){ + $parser->parse($page, $wiki->get_page($page)); + } + } + + return $parser->columnlist; +} + +#============================================================================== +# ¥³¥é¥àÃê½ÐÍѤΥѡ¼¥µ +#============================================================================== +package plugin::book::ColumnListParser; +use Wiki::HTMLParser; + +@ISA = qw(Wiki::HTMLParser); + +sub new { + my $class = shift; + my $self = Wiki::HTMLParser->new(shift); + $self->{columnlist} = ''; + return bless $self,$class; +} + +sub parse { + my $self = shift; + my $page = shift; + my $source = shift; + $self->{pagename} = $page; + $self->{column} = 0; + $self->SUPER::parse($source); +} +sub columnlist { + my $self = shift; + if($self->{columnlist} eq ''){ + return "

¥³¥é¥à¤Ï¤¢¤ê¤Þ¤»¤ó

"; + } else { + return ""; + } +} + +sub l_plugin{ + my $self = shift; + my $plugin = shift; + + if($plugin->{'command'} eq 'column'){ + $self->{column}++; + $self->{columnlist} .= "
  • "; + if($self->{pagename} ne ''){ + $self->{columnlist} .= "¡Ê".Util::escapeHTML($self->{pagename})."¡Ë"; + } + $self->{columnlist} .= "{pagename}). + "#c".$self->{column}."\">".Util::escapeHTML($plugin->{'args'}->[1])."
  • "; + } + return undef; +} + +1; diff --git a/takezoe/plugin/book/Install.pm b/takezoe/plugin/book/Install.pm index afa54bb..608a9f8 100644 --- a/takezoe/plugin/book/Install.pm +++ b/takezoe/plugin/book/Install.pm @@ -22,6 +22,7 @@ sub install { $wiki->add_inline_plugin("code" ,"plugin::book::Code" ,"HTML"); $wiki->add_block_plugin("column" ,"plugin::book::Column" ,"HTML"); + $wiki->add_paragraph_plugin("columnlist", "plugin::book::ColumnList", "HTML"); $wiki->add_block_plugin("note" ,"plugin::book::Note" ,"HTML"); $wiki->add_block_plugin("box" ,"plugin::book::Box" ,"HTML"); -- 2.11.0