From 91b25014bd99321b3ede61250baea78c0e50c7bc Mon Sep 17 00:00:00 2001 From: takezoe Date: Sun, 31 Jul 2011 03:00:03 +0000 Subject: [PATCH] =?utf8?q?=E6=9B=B8=E7=B1=8D=E5=9F=B7=E7=AD=86=E7=94=A8?= =?utf8?q?=E3=81=AE=E3=83=97=E3=83=A9=E3=82=B0=E3=82=A4=E3=83=B3=E3=82=92s?= =?utf8?q?andbox=E3=81=AB=E3=82=B3=E3=83=9F=E3=83=83=E3=83=88=E3=81=97?= =?utf8?q?=E3=81=A6=E3=81=8A=E3=81=8D=E3=81=BE=E3=81=99=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- takezoe/plugin/book/Caption.pm | 67 +++++++++++ takezoe/plugin/book/Chapter.pm | 38 ++++++ takezoe/plugin/book/Code.pm | 22 ++++ takezoe/plugin/book/Column.pm | 35 ++++++ takezoe/plugin/book/Install.pm | 127 +++++++++++++++++++ takezoe/plugin/book/Link.pm | 99 +++++++++++++++ takezoe/plugin/book/List.pm | 52 ++++++++ takezoe/plugin/book/Memo.pm | 38 ++++++ takezoe/plugin/book/Memolist.pm | 42 +++++++ takezoe/plugin/book/Pagecount.pm | 39 ++++++ takezoe/plugin/book/README.txt | 108 +++++++++++++++++ takezoe/plugin/book/Title1.pm | 45 +++++++ takezoe/plugin/book/Title2.pm | 47 ++++++++ takezoe/plugin/book/Title3.pm | 48 ++++++++ takezoe/plugin/book/Toc.pm | 43 +++++++ takezoe/plugin/book/TocParser.pm | 134 +++++++++++++++++++++ takezoe/plugin/book/Wordcount.pm | 38 ++++++ .../book/google-code-prettify/lang-apollo.js | 2 + .../plugin/book/google-code-prettify/lang-clj.js | 18 +++ .../plugin/book/google-code-prettify/lang-css.js | 2 + .../plugin/book/google-code-prettify/lang-go.js | 1 + .../plugin/book/google-code-prettify/lang-hs.js | 2 + .../plugin/book/google-code-prettify/lang-lisp.js | 3 + .../plugin/book/google-code-prettify/lang-lua.js | 2 + .../plugin/book/google-code-prettify/lang-ml.js | 2 + takezoe/plugin/book/google-code-prettify/lang-n.js | 4 + .../plugin/book/google-code-prettify/lang-proto.js | 1 + .../plugin/book/google-code-prettify/lang-scala.js | 2 + .../plugin/book/google-code-prettify/lang-sql.js | 2 + .../plugin/book/google-code-prettify/lang-tex.js | 1 + .../plugin/book/google-code-prettify/lang-vb.js | 2 + .../plugin/book/google-code-prettify/lang-vhdl.js | 3 + .../plugin/book/google-code-prettify/lang-wiki.js | 2 + .../plugin/book/google-code-prettify/lang-xq.js | 3 + .../plugin/book/google-code-prettify/lang-yaml.js | 2 + .../plugin/book/google-code-prettify/prettify.css | 1 + .../plugin/book/google-code-prettify/prettify.js | 28 +++++ .../book/google-code-prettify/sons-of-obsidian.css | 117 ++++++++++++++++++ .../plugin/book/google-code-prettify/sunburst.css | 51 ++++++++ 39 files changed, 1273 insertions(+) create mode 100644 takezoe/plugin/book/Caption.pm create mode 100644 takezoe/plugin/book/Chapter.pm create mode 100644 takezoe/plugin/book/Code.pm create mode 100644 takezoe/plugin/book/Column.pm create mode 100644 takezoe/plugin/book/Install.pm create mode 100644 takezoe/plugin/book/Link.pm create mode 100644 takezoe/plugin/book/List.pm create mode 100644 takezoe/plugin/book/Memo.pm create mode 100644 takezoe/plugin/book/Memolist.pm create mode 100644 takezoe/plugin/book/Pagecount.pm create mode 100644 takezoe/plugin/book/README.txt create mode 100644 takezoe/plugin/book/Title1.pm create mode 100644 takezoe/plugin/book/Title2.pm create mode 100644 takezoe/plugin/book/Title3.pm create mode 100644 takezoe/plugin/book/Toc.pm create mode 100644 takezoe/plugin/book/TocParser.pm create mode 100644 takezoe/plugin/book/Wordcount.pm create mode 100644 takezoe/plugin/book/google-code-prettify/lang-apollo.js create mode 100644 takezoe/plugin/book/google-code-prettify/lang-clj.js create mode 100644 takezoe/plugin/book/google-code-prettify/lang-css.js create mode 100644 takezoe/plugin/book/google-code-prettify/lang-go.js create mode 100644 takezoe/plugin/book/google-code-prettify/lang-hs.js create mode 100644 takezoe/plugin/book/google-code-prettify/lang-lisp.js create mode 100644 takezoe/plugin/book/google-code-prettify/lang-lua.js create mode 100644 takezoe/plugin/book/google-code-prettify/lang-ml.js create mode 100644 takezoe/plugin/book/google-code-prettify/lang-n.js create mode 100644 takezoe/plugin/book/google-code-prettify/lang-proto.js create mode 100644 takezoe/plugin/book/google-code-prettify/lang-scala.js create mode 100644 takezoe/plugin/book/google-code-prettify/lang-sql.js create mode 100644 takezoe/plugin/book/google-code-prettify/lang-tex.js create mode 100644 takezoe/plugin/book/google-code-prettify/lang-vb.js create mode 100644 takezoe/plugin/book/google-code-prettify/lang-vhdl.js create mode 100644 takezoe/plugin/book/google-code-prettify/lang-wiki.js create mode 100644 takezoe/plugin/book/google-code-prettify/lang-xq.js create mode 100644 takezoe/plugin/book/google-code-prettify/lang-yaml.js create mode 100644 takezoe/plugin/book/google-code-prettify/prettify.css create mode 100644 takezoe/plugin/book/google-code-prettify/prettify.js create mode 100644 takezoe/plugin/book/google-code-prettify/sons-of-obsidian.css create mode 100644 takezoe/plugin/book/google-code-prettify/sunburst.css diff --git a/takezoe/plugin/book/Caption.pm b/takezoe/plugin/book/Caption.pm new file mode 100644 index 0000000..dddecf8 --- /dev/null +++ b/takezoe/plugin/book/Caption.pm @@ -0,0 +1,67 @@ +################################################################################ +# +#

¿ÞɽÈÖ¹æ¤Ê¤É¤ò½ÐÎϤ¹¤ë¤¿¤á¤Î¥Ñ¥é¥°¥é¥Õ¥×¥é¥°¥¤¥ó¤Ç¤¹¡£

+#
+# {{caption ɽ,¥á¥½¥Ã¥É°ìÍ÷}}
+# 
+#

°Ê²¼¤Î¤è¤¦¤ÊHTML¤¬½ÐÎϤµ¤ì¤Þ¤¹¡£

+#
+# >div class="caption"<ɽ1: ¥á¥½¥Ã¥É°ìÍ÷>/div<
+# 
+#

+# link¥×¥é¥°¥¤¥ó¤ò»ÈÍѤ·¤ÆÁê¸ß»²¾È¤ò¤Ï¤ë¾ì¹ç¤ÏÂè3°ú¿ô¤Ë¥ê¥ó¥¯ÍѤΥé¥Ù¥ë¤òµ­½Ò¤·¤Þ¤¹¡£ +# link¥×¥é¥°¥¤¥ó¤Ç¤Ï¤³¤Î¥é¥Ù¥ë¤ò»ØÄꤷ¤Æ¥ê¥ó¥¯¤òºîÀ®¤·¤Þ¤¹¡£ +#

+#
+# {{caption ɽ,¥á¥½¥Ã¥É°ìÍ÷,method_list}}
+# ...
+# ¾ÜºÙ¤Ë¤Ä¤¤¤Æ¤Ï{{link method_list}}¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£
+# 
+# +################################################################################ +package plugin::book::Caption; +#============================================================================== +# ¥³¥ó¥¹¥È¥é¥¯¥¿ +#============================================================================== +sub new { + my $class = shift; + my $self = {}; + return bless $self,$class; +} + +#============================================================================== +# ¥Ñ¥é¥°¥é¥Õ¥á¥½¥Ã¥É +#============================================================================== +sub paragraph { + my $self = shift; + my $wiki = shift; + my $type = shift; + my $caption = shift; + my $anchor = shift; + + $self->{$type}++; + + my $plugin = $wiki->get_plugin_instance('plugin::book::Chapter'); + + if($anchor eq ''){ + return '
'. + Util::escapeHTML($type).$plugin->{'chapter'}.'-'.$self->{$type}.': '. + Util::escapeHTML($caption).'
'; + } else { + return '
'. + Util::escapeHTML($type).$plugin->{'chapter'}.'-'.$self->{$type}.': '. + Util::escapeHTML($caption).'
'; + } +} + +#============================================================================== +# ¥Õ¥Ã¥¯¥á¥½¥Ã¥É +#============================================================================== +sub hook { + my $self = shift; + foreach my $key (keys(%$self)){ + $self->{$key} = 0; + } +} + +1; diff --git a/takezoe/plugin/book/Chapter.pm b/takezoe/plugin/book/Chapter.pm new file mode 100644 index 0000000..bf6609b --- /dev/null +++ b/takezoe/plugin/book/Chapter.pm @@ -0,0 +1,38 @@ +################################################################################ +# +#

¾Ï¤Î¸«½Ð¤·¤ò½ÐÎϤ¹¤ë¥Ñ¥é¥°¥é¥Õ¥×¥é¥°¥¤¥ó¡£

+#
+# {{chapter 1,¤Ï¤¸¤á¤Ë}}
+# 
+#

+# ¾¤Î¥×¥é¥°¥¤¥ó¤Ç¤Ï¤³¤Î¥×¥é¥°¥¤¥ó¤ÇÄêµÁ¤·¤¿¾ÏÈÖ¹æ¤ò»È¤Ã¤Æ¿ÞɽÈÖ¹æ¤Ê¤É¤ò¿¶¤Ã¤Æ +# ¤¤¤ë¤¿¤á¡¢1¥Ú¡¼¥¸¤ËºÇÄã1¤Ä¤Ï¤³¤Î¥×¥é¥°¥¤¥ó¤òµ­½Ò¤·¤Æ¤ª¤¯É¬Íפ¬¤¢¤ê¤Þ¤¹¡£ +#

+# +################################################################################ +package plugin::book::Chapter; +#============================================================================== +# ¥³¥ó¥¹¥È¥é¥¯¥¿ +#============================================================================== +sub new { + my $class = shift; + my $self = {}; + return bless $self,$class; +} + +#============================================================================== +# ¥Ñ¥é¥°¥é¥Õ¥á¥½¥Ã¥É +#============================================================================== +sub paragraph { + my $self = shift; + my $wiki = shift; + my $chapter = shift; + my $title = shift; + + $self->{'chapter'} = $chapter; + $wiki->do_hook('chapter'); + + return '
Chapter '.$chapter.'. '.Util::escapeHTML($title).'
'; +} + +1; diff --git a/takezoe/plugin/book/Code.pm b/takezoe/plugin/book/Code.pm new file mode 100644 index 0000000..d235fe4 --- /dev/null +++ b/takezoe/plugin/book/Code.pm @@ -0,0 +1,22 @@ +package plugin::book::Code; +#============================================================================== +# ¥³¥ó¥¹¥È¥é¥¯¥¿ +#============================================================================== +sub new { + my $class = shift; + my $self = {}; + return bless $self,$class; +} + +#============================================================================== +# ¥¤¥ó¥é¥¤¥ó¥á¥½¥Ã¥É +#============================================================================== +sub inline { + my $self = shift; + my $wiki = shift; + my $text = shift; + + return ''.Util::escapeHTML($text).''; +} + +1; diff --git a/takezoe/plugin/book/Column.pm b/takezoe/plugin/book/Column.pm new file mode 100644 index 0000000..ba179c9 --- /dev/null +++ b/takezoe/plugin/book/Column.pm @@ -0,0 +1,35 @@ +############################################################################### +# +#

¥³¥é¥à¤òµ­½Ò¤¹¤ë¤¿¤á¤Î¥Ö¥í¥Ã¥¯¥×¥é¥°¥¤¥ó¤Ç¤¹¡£

+#
+# {{column ¥³¥é¥à¤Î¥¿¥¤¥È¥ë
+# ¥³¥é¥àËÜʸ
+# }}
+# 
+#

¥³¥é¥àËÜʸ¤ÏWiki·Á¼°¤Çµ­½Ò¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£

+# +############################################################################### +package plugin::book::Column; +#============================================================================== +# ¥³¥ó¥¹¥È¥é¥¯¥¿ +#============================================================================== +sub new { + my $class = shift; + my $self = {}; + return bless $self,$class; +} + +#============================================================================== +# ¥Ö¥í¥Ã¥¯¥á¥½¥Ã¥É +#============================================================================== +sub block { + my $self = shift; + my $wiki = shift; + my $content = shift; + my $title = shift; + + return '
¥³¥é¥à: '.Util::escapeHTML($title).'
'. + '
'.$wiki->process_wiki($content).'
'; +} + +1; diff --git a/takezoe/plugin/book/Install.pm b/takezoe/plugin/book/Install.pm new file mode 100644 index 0000000..03f32f0 --- /dev/null +++ b/takezoe/plugin/book/Install.pm @@ -0,0 +1,127 @@ +############################################################ +# +# ½ñÀÒ¼¹É®ÍѤΥץ饰¥¤¥ó¤òÄ󶡤·¤Þ¤¹¡£ +# +############################################################ +package plugin::book::Install; +use strict; +use plugin::book::TocParser; + +sub install { + my $wiki = shift; + $wiki->add_paragraph_plugin("chapter", "plugin::book::Chapter", "HTML"); + $wiki->add_inline_plugin("title1", "plugin::book::Title1", "HTML"); + $wiki->add_inline_plugin("title2", "plugin::book::Title2", "HTML"); + $wiki->add_inline_plugin("title3", "plugin::book::Title3", "HTML"); + $wiki->add_paragraph_plugin("caption" ,"plugin::book::Caption" ,"HTML"); + $wiki->add_paragraph_plugin("toc" ,"plugin::book::Toc" ,"HTML"); + $wiki->add_inline_plugin("link" ,"plugin::book::Link" ,"HTML"); + + $wiki->add_block_plugin("list" ,"plugin::book::List" ,"HTML"); + $wiki->add_inline_plugin("code" ,"plugin::book::Code" ,"HTML"); + + $wiki->add_block_plugin("column" ,"plugin::book::Column" ,"HTML"); + + $wiki->add_inline_plugin("memo", "plugin::book::Memo", "HTML"); + $wiki->add_paragraph_plugin("memolist", "plugin::book::Memolist", "HTML"); + + $wiki->add_inline_plugin("wordcount", "plugin::book::Wordcount", "HTML"); + $wiki->add_inline_plugin("pagecount", "plugin::book::Pagecount", "HTML"); + + $wiki->add_hook("chapter", "plugin::book::Title1"); + $wiki->add_hook("chapter", "plugin::book::Title2"); + $wiki->add_hook("chapter", "plugin::book::Title3"); + $wiki->add_hook("chapter", "plugin::book::Caption"); + + $wiki->add_hook("title1", "plugin::book::Title2"); + $wiki->add_hook("title1", "plugin::book::Title3"); + + $wiki->add_hook("title3", "plugin::book::Title3"); + + my @paths = split(/\//, $wiki->get_CGI()->path_info()); + my $path_prefix = ''; + for(my $i = 0; $i < $#paths; $i++){ + $path_prefix .= '../'; + } + + my $head_info = <<"END_OF_HEAD"; + + + + +END_OF_HEAD + + $wiki->add_head_info($head_info); +} + +1; diff --git a/takezoe/plugin/book/Link.pm b/takezoe/plugin/book/Link.pm new file mode 100644 index 0000000..7621bf1 --- /dev/null +++ b/takezoe/plugin/book/Link.pm @@ -0,0 +1,99 @@ +################################################################################ +# +#

¸«½Ð¤·¤ä¿Þɽ¤Ø¤Î¥ê¥ó¥¯¤ò½ÐÎϤ¹¤ë¤¿¤á¤Î¥¤¥ó¥é¥¤¥ó¥×¥é¥°¥¤¥ó¤Ç¤¹¡£

+#

°ú¿ô¤Ë¤Ïtitle1¡Átitle3¥×¥é¥°¥¤¥ó¤äcaption¥×¥é¥°¥¤¥ó¤Çµ­½Ò¤·¤¿»²¾ÈÍѤΥé¥Ù¥ë¤ò»ØÄꤷ¤Þ¤¹¡£

+#
+# !!!{{title1 installation}}¥¤¥ó¥¹¥È¡¼¥ëÊýË¡
+# ...
+# ¥¤¥ó¥¹¥È¡¼¥ëÊýË¡¤Ë¤Ä¤¤¤Æ¤Ï{{link installation}}¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£
+# 
+#

Âè2°ú¿ô¤Ç¥Ú¡¼¥¸¤ò»ØÄꤹ¤ë¤³¤È¤Ç¡¢ÊÌ¥Ú¡¼¥¸¤Î¸«½Ð¤·¤ä¿Þɽ¤ò»²¾È¤¹¤ë¤³¤È¤â¤Ç¤­¤Þ¤¹¡£

+#
+# ¥¤¥ó¥¹¥È¡¼¥ëÊýË¡¤Ë¤Ä¤¤¤Æ¤Ï{{link installation,Chapter1}}¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£
+# 
+# +################################################################################ +package plugin::book::Link; +#============================================================================== +# ¥³¥ó¥¹¥È¥é¥¯¥¿ +#============================================================================== +sub new { + my $class = shift; + my $self = {}; + return bless $self,$class; +} + +#============================================================================== +# ¥¤¥ó¥é¥¤¥ó¥á¥½¥Ã¥É +#============================================================================== +sub inline { + my $self = shift; + my $wiki = shift; + my $anchor = shift; + my $page = shift; + + $page = $wiki->get_CGI->param('page') unless $page; + my $source = $wiki->get_page($page); + + my $text = ''; + + my @lines = split(/\n/,$wiki->get_page($page)); + my $chapter = ''; + my $count = {}; + my $title1Count = 0; + my $title2Count = 0; + my $title3Count = 0; + + # TODO {{pre}}¥×¥é¥°¥¤¥óÆâ¤Îµ­½Ò¤ÏÈô¤Ð¤µ¤Ê¤¤¤È¥À¥á¡ª¡ª¥Ñ¡¼¥µ¤òºî¤é¤Ê¤¤¤È¥À¥á¤Ã¤Ý¤¤¡© + foreach my $line (@lines){ + if($line =~ /^{{(chapter.+}})$/){ + my $plugin = $wiki->parse_inline_plugin($1); + $chapter = $plugin->{'args'}->[0]; + $title1Count = 0; + $title2Count = 0; + $title3Count = 0; + foreach my $key (keys(%$count)){ + $count->{$key} = 0; + } + } elsif($line =~ /^!!!{{(title1.+}})(.+)$/){ + my $plugin = $wiki->parse_inline_plugin($1); + $title1Count++; + $title2Count = 0; + $title3Count = 0; + if($plugin->{'args'}->[0] eq $anchor){ + $text= $chapter.'-'.$title1Count.'. '.Util::trim($2); + last; + } + } elsif($line =~ /^!!{{(title2.+}})$/){ + my $plugin = $wiki->parse_inline_plugin($1); + $title2Count++; + $title3Count = 0; + if($plugin->{'args'}->[0] eq $anchor){ + $text= $chapter.'-'.$title1Count.'-'.$title2Count.'. '.Util::trim($2); + last; + } + } elsif($line =~ /^!{{(title3.+}})$/){ + my $plugin = $wiki->parse_inline_plugin($1); + $title3Count++; + if($plugin->{'args'}->[0] eq $anchor){ + $text= $chapter.'-'.$title1Count.'-'.$title2Count.'-'.$title3Count.'. '.Util::trim($2); + last; + } + } elsif($line =~ /^{{(caption.+}})$/){ + my $plugin = $wiki->parse_inline_plugin($1); + my $type = $plugin->{'args'}->[0]; + $count->{$type}++; + if($plugin->{'args'}->[2] eq $anchor){ + $text = $type.$chapter.'-'.$count->{$type}.': '.Util::trim($plugin->{'args'}->[1]); + last; + } + } + } + if($text ne ''){ + return ''.Util::escapeHTML($text).''; + } else { + return '»²¾ÈÀ褬¸«¤Ä¤«¤ê¤Þ¤»¤ó¡ª'; + } +} + +1; diff --git a/takezoe/plugin/book/List.pm b/takezoe/plugin/book/List.pm new file mode 100644 index 0000000..cb4a4f7 --- /dev/null +++ b/takezoe/plugin/book/List.pm @@ -0,0 +1,52 @@ +################################################################################ +# +#

¥×¥í¥°¥é¥à¥ê¥¹¥È¤ò¥·¥ó¥¿¥Ã¥¯¥¹¥Ï¥¤¥é¥¤¥È¤·¤Æ½ÐÎϤ¹¤ë¤¿¤á¤ÎÊ£¿ô¹Ô¥×¥é¥°¥¤¥ó¡£

+#
+# {{list
+# public class HelloWorld {
+#   public static void main(String[] args){
+#     System.out.println("Hello World!");
+#   }
+# }
+# }}
+# 
+#

+# ¥·¥ó¥¿¥Ã¥¯¥¹¥Ï¥¤¥é¥¤¥È¤Ë¤Ïgoogle-code-prettify¤ò»ÈÍѤ·¤Þ¤¹¡£ +# ɽ¼¨¤Ï¼¡¤Î¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£ +#

+# +# +# +#
+# public class HelloWorld {
+#   public static void main(String[] args){
+#     System.out.println("Hello World!");
+#   }
+# }
+# 
+# +################################################################################ +package plugin::book::List; +#============================================================================== +# ¥³¥ó¥¹¥È¥é¥¯¥¿ +#============================================================================== +sub new { + my $class = shift; + my $self = {}; + $self->{'count'} = 0; + return bless $self,$class; +} + +#============================================================================== +# ¥Ö¥í¥Ã¥¯¥á¥½¥Ã¥É +#============================================================================== +sub block { + my $self = shift; + my $wiki = shift; + my $code = shift; + my $buf = ''; + + return $buf.'
'.Util::escapeHTML($code).'
'; +} + +1; diff --git a/takezoe/plugin/book/Memo.pm b/takezoe/plugin/book/Memo.pm new file mode 100644 index 0000000..4475206 --- /dev/null +++ b/takezoe/plugin/book/Memo.pm @@ -0,0 +1,38 @@ +################################################################################ +# +#

¥Ú¡¼¥¸¤Ë¥á¥â¤òµ­½Ò¤¹¤ë¤¿¤á¤Î¥¤¥ó¥é¥¤¥ó¥×¥é¥°¥¤¥ó¤Ç¤¹¡£

+#
+# {{memo ¤³¤³¤Ë¥á¥â¤òµ­½Ò¤·¤Þ¤¹¡£}}
+# 
+#

+# µ­½Ò¤·¤¿¥á¥â¤Ï¶¯Ä´¤µ¤ì¤Æɽ¼¨¤µ¤ì¤Þ¤¹¡£ +# ¤Þ¤¿¡¢memolist¥×¥é¥°¥¤¥ó¤ò»ÈÍѤ·¤Æ°ìÍ÷ɽ¼¨¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ +#

+# +################################################################################ +package plugin::book::Memo; +#============================================================================== +# ¥³¥ó¥¹¥È¥é¥¯¥¿ +#============================================================================== +sub new { + my $class = shift; + my $self = {}; + $self->{'todo'} = []; + return bless $self,$class; +} + +#============================================================================== +# ¥Ñ¥é¥°¥é¥Õ¥á¥½¥Ã¥É +#============================================================================== +sub inline { + my $self = shift; + my $wiki = shift; + my $text = shift; + + push(@{$self->{'memolist'}}, $text); + my @list = @{$self->{'memolist'}}; + + return ''.Util::escapeHTML($text).''; +} + +1; diff --git a/takezoe/plugin/book/Memolist.pm b/takezoe/plugin/book/Memolist.pm new file mode 100644 index 0000000..cb10c2b --- /dev/null +++ b/takezoe/plugin/book/Memolist.pm @@ -0,0 +1,42 @@ +################################################################################ +# +#

memo¥×¥é¥°¥¤¥ó¤Çµ­½Ò¤·¤¿¥á¥â¤Î°ìÍ÷¤òɽ¼¨¤·¤Þ¤¹¡£

+#
+# {{memolist}}
+# 
+# +################################################################################ +package plugin::book::Memolist; +#============================================================================== +# ¥³¥ó¥¹¥È¥é¥¯¥¿ +#============================================================================== +sub new { + my $class = shift; + my $self = {}; + return bless $self,$class; +} + +#============================================================================== +# ¥Ñ¥é¥°¥é¥Õ¥á¥½¥Ã¥É +#============================================================================== +sub paragraph { + my $self = shift; + my $wiki = shift; + my $plugin = $wiki->get_plugin_instance('plugin::book::Memo'); + + my $buf = ''; + my $count = 1; + + foreach my $memo (@{$plugin->{'memolist'}}){ + $buf .= '
  • '.Util::escapeHTML($memo).'
  • '; + $count++; + } + + if($buf eq ''){ + return '

    ¥³¥á¥ó¥È¤Ï¤¢¤ê¤Þ¤»¤ó

    '; + } else { + return '
      '.$buf.'
    '; + } +} + +1; diff --git a/takezoe/plugin/book/Pagecount.pm b/takezoe/plugin/book/Pagecount.pm new file mode 100644 index 0000000..6e195af --- /dev/null +++ b/takezoe/plugin/book/Pagecount.pm @@ -0,0 +1,39 @@ +################################################################################ +# +#

    ¸½ºßɽ¼¨¤·¤Æ¤¤¤ë¥Ú¡¼¥¸¤Î³µ»»¥Ú¡¼¥¸¿ô¤òɽ¼¨¤¹¤ë¥¤¥ó¥é¥¤¥ó¥×¥é¥°¥¤¥ó¤Ç¤¹¡£

    +#

    1¥Ú¡¼¥¸=1600ʸ»ú¤Ç·×»»¤·¤Æ¤¤¤Þ¤¹¡£

    +#
    +# ʸ»ú¿ô¡§{{pagecount}}
    +# 
    +#

    °ú¿ô¤Ç¥«¥¦¥ó¥ÈÂоݤΥڡ¼¥¸¤ò»ØÄꤹ¤ë¤³¤È¤â¤Ç¤­¤Þ¤¹¡£

    +#
    +# ʸ»ú¿ô¡§{{pagecount ¥Ú¡¼¥¸Ì¾}}
    +# 
    +# +################################################################################ +package plugin::book::Pagecount; +use Encode qw(decode); +#============================================================================== +# ¥³¥ó¥¹¥È¥é¥¯¥¿ +#============================================================================== +sub new { + my $class = shift; + my $self = {}; + return bless $self,$class; +} + +#============================================================================== +# ¥¤¥ó¥é¥¤¥ó¥á¥½¥Ã¥É +#============================================================================== +sub inline { + my $self = shift; + my $wiki = shift; + my $page = shift; + + $page = $wiki->get_CGI->param('page') unless $page; + my $source = Jcode::convert($wiki->get_page($page), 'utf8', 'euc'); + + return int(length(decode('utf-8', $source)) / 1600 + 1); +} + +1; diff --git a/takezoe/plugin/book/README.txt b/takezoe/plugin/book/README.txt new file mode 100644 index 0000000..e2576ed --- /dev/null +++ b/takezoe/plugin/book/README.txt @@ -0,0 +1,108 @@ +!!!‘ÐŽ·•M—pƒvƒ‰ƒOƒCƒ“‚ÌŽg‚¢•û + +!!ÍAŒ©o‚µ‚̍쐬 + +1ƒy[ƒW‚Å1Í•ª‚ÌŒ´e‚ðŽ·•M‚·‚邱‚Æ‚ð‘z’肵‚Ä‚¢‚Ü‚·BŠeƒy[ƒW‚É‚Íchapterƒvƒ‰ƒOƒCƒ“‚ŏ͂̏î•ñ‚ð‹Lq‚µ‚Ü‚·B‚Ü‚½AŒ©o‚µ‚Í•’Ê‚ÌWiki‚ÌŒ©o‚µ‚Ì‹L–@‚Å‹Lq‚·‚é‚Ì‚Å‚·‚ªAtitle1Atitle2Atitle3ƒvƒ‰ƒOƒCƒ“‚ÅŒ©o‚µ”ԍ†‚ð•\Ž¦‚Å‚«‚é‚悤‚É‚µ‚Ü‚µ‚½Btitle1Atitle2Atitle3ƒvƒ‰ƒOƒCƒ“‚ÍŒ©o‚µ‚Ö‚Ì‘ŠŒÝŽQÆ‚É‚àŽg—p‚µ‚Ü‚·‚ªA‘ŠŒÝŽQÆ‚Ì•û–@‚ɂ‚¢‚Ä‚ÍŒãq‚µ‚Ü‚·B + + {{chapter 1,Í‚̃^ƒCƒgƒ‹}} + !!!{{title1}}Œ©o‚µ1 + ... + !!{{title2}}Œ©o‚µ2 + ... + !{{title3}}Œ©o‚µ3 + ... + +!!ƒ\[ƒXƒR[ƒh + +FSWiki‚É‚Ípreƒ^ƒO‚ň͂ñ‚ŏo—Í‚·‚邽‚ß‚Ì‹L–@‚âƒvƒ‰ƒOƒCƒ“‚ª‚ ‚é‚Ì‚Å‚»‚ê‚ðŽg‚Á‚Ä‚à‚¢‚¢‚Ì‚Å‚·‚ªAWebã‚ÅŽQÆ‚·‚é‚Æ‚«‚̓Vƒ“ƒ^ƒbƒNƒXƒnƒCƒ‰ƒCƒg‚³‚ê‚Ä‚¢‚½‚Ù‚¤‚ªŒ©‚â‚·‚¢‚æ‚ˁA‚Æ‚¢‚¤‚±‚Æ‚Å[google-code-prettify|http://code.google.com/p/google-code-prettify/]‚ðŽg—p‚µ‚Ä‹­’²•\Ž¦‚ðs‚¤‚½‚߂̃vƒ‰ƒOƒCƒ“‚ð—pˆÓ‚µ‚Ä‚¢‚Ü‚·B + + {{list + public class HelloWorld { + public static void main(String[] args){ + System.out.println("Hello World!"); + } + } + }} + +!!}•\”ԍ† + +captionƒvƒ‰ƒOƒCƒ“‚ðŽg—p‚·‚é‚Ɛ}•\”ԍ†‚ð•t—^‚·‚邱‚Æ‚ª‚Å‚«‚Ü‚·B‘æˆêˆø”‚ÉŽí•Êi•\A}AƒŠƒXƒg‚ȂǁjA‘æ“ñˆø”‚ɃLƒƒƒvƒVƒ‡ƒ“‚É•\Ž¦‚·‚镶Žš—ñ‚ðŽw’肵‚Ü‚·B + + {{caption •\,StringUtils‚̃ƒ\ƒbƒhˆê——}} + ,ƒƒ\ƒbƒh–¼,à–¾ + ,boolean isEmpty(String str),•¶Žš—ñ‚ªnull‚Ü‚½‚͋󕶎š—ñ‚©‚Ç‚¤‚©‚ð”»’è + ,boolean isNotEmpty(String str),•¶Žš—ñ‚ªnull‚Ü‚½‚͋󕶎š—ñ‚Å‚È‚¢‚©‚ð”»’è + ... + +Œ©o‚µ“¯—lA}•\‚É‚à‘ŠŒÝŽQÆ‚ð‚͂邱‚Æ‚ª‚Å‚«‚Ü‚·‚ªA‘ŠŒÝŽQÆ‚Ì•û–@‚ɂ‚¢‚Ä‚ÍŒãq‚µ‚Ü‚·B + +!!ƒAƒEƒgƒ‰ƒCƒ“‚Ì•\Ž¦ + +FSWiki‚Å‚Íoutlineƒvƒ‰ƒOƒCƒ“‚Ńy[ƒW‚ÌŒ©o‚µ‚̃AƒEƒgƒ‰ƒCƒ“‚ð•\Ž¦‚·‚邱‚Æ‚ª‚Å‚«‚Ü‚·‚ªAV‚½‚Étocƒvƒ‰ƒOƒCƒ“‚Æ‚¢‚¤ƒvƒ‰ƒOƒCƒ“‚ð’ljÁ‚µ‚Ä‚¢‚Ü‚·Btocƒvƒ‰ƒOƒCƒ“‚ðŽg—p‚·‚é‚ÆŒ©o‚µ”ԍ†•t‚«‚̃AƒEƒgƒ‰ƒCƒ“‚ð•\Ž¦‚·‚邱‚Æ‚ª‚Å‚«‚Ü‚·B + + + {{toc}} + +‚Ü‚½Atocƒvƒ‰ƒOƒCƒ“‚̓fƒtƒHƒ‹ƒg‚Å‚ÍŒ»Ý•\Ž¦‚µ‚Ä‚¢‚éƒy[ƒW‚̃AƒEƒgƒ‰ƒCƒ“‚ð•\Ž¦‚µ‚Ü‚·‚ªAˆø”‚Ƀy[ƒW–¼‚ðŽw’è‚·‚邱‚Æ‚ÅŽw’肵‚½ƒy[ƒW‚̃AƒEƒgƒ‰ƒCƒ“‚ð•\Ž¦‚·‚邱‚Æ‚ª‚Å‚«‚Ü‚·B‚±‚Ì‚½‚߈ȉº‚̂悤‚ȃy[ƒW‚ðì¬‚µ‚Ä‚¨‚­‚±‚Ƃŏ‘Ð‘S‘Ì‚Ì–ÚŽŸ‚ðì¬‚·‚邱‚Æ‚ª‚Å‚«‚Ü‚·B + + + !!!–ÚŽŸ + !!‘æˆêÍ + {{toc Chapter1}} + !!‘æ“ñÍ + {{toc Chapter2}} + ... + +outlineƒvƒ‰ƒOƒCƒ“‚̓y[ƒW‚̐擪‚É“ü‚ê‚ÄŽg‚¤‚±‚Æ‚ª‘½‚¢‚Å‚·‚ªAtocƒvƒ‰ƒOƒCƒ“‚ðƒTƒCƒhƒƒjƒ…[‚É“ü‚ê‚Ä‚¨‚­‚±‚Æ‚ÅWord‚ÌŒ©o‚µƒ}ƒbƒv‚̂悤‚ÈŠ´‚¶‚ÅŽg‚¤‚±‚Æ‚ª‚Å‚«‚é‚Í‚¸‚Å‚·B + +!!‘ŠŒÝŽQÆ + +linkƒvƒ‰ƒOƒCƒ“‚ðŽg—p‚·‚é‚Ætitle1`title3ƒvƒ‰ƒOƒCƒ“‚Å’è‹`‚µ‚½Œ©o‚µA‚¨‚æ‚Ñcaptionƒvƒ‰ƒOƒCƒ“‚Å’è‹`‚µ‚½}•\”ԍ†‚ւ̃Šƒ“ƒN‚ðo—Í‚·‚邱‚Æ‚ª‚Å‚«‚Ü‚·B + +Œ©o‚µ‚ւ̃Šƒ“ƒN‚ðì¬‚·‚éê‡Atitle1`title3ƒvƒ‰ƒOƒCƒ“‚̈ø”‚ŃŠƒ“ƒN—p‚̃‰ƒxƒ‹‚ð’è‹`‚µ‚Ä‚¨‚«Alinkƒvƒ‰ƒOƒCƒ“‚Å‚Í‚»‚̃‰ƒxƒ‹‚ðŽQÆ‚·‚é‚悤‚É‚µ‚Ü‚·Blinkƒvƒ‰ƒOƒCƒ“‚ð‹Lq‚µ‚½ˆÊ’u‚ÉŒ©o‚µ‚Ì•¶Žš—ñ‚ªŒ©o‚µ”ԍ†•t‚«‚ŃŠƒ“ƒN‚ªo—Í‚³‚ê‚Ü‚·B + + !!!{{title1 installation}}ƒCƒ“ƒXƒg[ƒ‹ + ... + Ú×‚ɂ‚¢‚Ä‚Í{{link installation}}‚ðŽQÆ‚Ì‚±‚ƁB + +}•\‚̏ꍇ‚Ícaptionƒvƒ‰ƒOƒCƒ“‚Ì‘æŽOˆø”‚É“¯‚¶‚­ƒŠƒ“ƒN—p‚̃‰ƒxƒ‹‚ð’è‹`‚µAlinkƒvƒ‰ƒOƒCƒ“‚Å‚Í‚»‚̃‰ƒxƒ‹‚ðŽQÆ‚µ‚Ü‚·Blinkƒvƒ‰ƒOƒCƒ“‚ð‹Lq‚µ‚½ˆÊ’u‚ɐ}•\”ԍ†•t‚«‚ŃŠƒ“ƒN‚ªo—Í‚³‚ê‚Ü‚·B + + {{caption •\,StringUtils‚̃ƒ\ƒbƒhˆê——,StringUtils_method_list}} + ... + {{link StringUtils_method_list}} + +‚È‚¨Alinkƒvƒ‰ƒOƒCƒ“‚Í‘æ“ñˆø”‚Ƀy[ƒW–¼‚ðŽw’è‚·‚邱‚ƂŁA‘¼‚̃y[ƒW‚ÌŒ©o‚µ‚⃊ƒXƒg‚ɃWƒƒƒ“ƒv‚·‚郊ƒ“ƒN‚ðo—Í‚·‚邱‚Æ‚à‰Â”\‚Å‚·B + + ƒCƒ“ƒXƒg[ƒ‹•û–@‚ɂ‚¢‚Ä‚Í{{link installation,Chatper1}}‚ðŽQÆ‚Ì‚±‚ƁB + +!!ƒRƒƒ“ƒg‚Ì‹Lq + +memoƒvƒ‰ƒOƒCƒ“‚ðŽg—p‚·‚é‚ÆŽ·•M’†‚ÉTODOƒRƒƒ“ƒg‚ð“ü‚ꂽ‚èAƒŒƒrƒ…[Žž‚̃Rƒƒ“ƒg‚ð‹Lq‚·‚邱‚Æ‚ª‚Å‚«‚Ü‚·Bƒy[ƒW“à‚Ì”CˆÓ‚̉ӏŠ‚Ɉȉº‚̂悤‚É‹Lq‚µ‚Ä‚¨‚­‚ƁA•\Ž¦Žž‚ɂ̓Rƒƒ“ƒg•”•ªiˆÈ‰º‚Ì—á‚̏ꍇ‚́uTODOF‚ ‚Ƃŏ‘‚­v‚Ì•”•ªj‚ª‹­’²‚µ‚Ä•\Ž¦‚³‚ê‚Ü‚·B + + {{memo TODOF‚ ‚Ƃŏ‘‚­}} + +memolistƒvƒ‰ƒOƒCƒ“‚ðŽg—p‚·‚é‚ÆŒ»Ý‚̃y[ƒW“à‚ÌmemoƒRƒƒ“ƒg‚ªˆê——•\Ž¦‚³‚êAƒŠƒ“ƒN‚ðƒNƒŠƒbƒN‚·‚é‚Æ‚»‚̃Rƒƒ“ƒg‚ɃWƒƒƒ“ƒv‚·‚邱‚Æ‚ª‚Å‚«‚Ü‚·B + + !!!ƒRƒƒ“ƒgˆê—— + {{memolist}} + +Ž·•M’†‚Ímemolistƒvƒ‰ƒOƒCƒ“‚ðƒTƒCƒhƒƒjƒ…[‚É“ü‚ê‚Ä‚¨‚­‚Æ•Ö—˜‚Á‚Û‚¢‚Å‚·B + +!!ƒ[ƒhƒJƒEƒ“ƒg + +Œ´e‚ÌŽ·•MŽž‚Í•¶Žš”Aƒy[ƒW”‚ðˆÓŽ¯‚·‚é•K—v‚ª‚ ‚éê‡‚ª‚ ‚è‚Ü‚·Bwordcountƒvƒ‰ƒOƒCƒ“‚ÅŒ»Ý•\Ž¦‚µ‚Ä‚¢‚éƒy[ƒW‚Ì•¶Žš”Apagecountƒvƒ‰ƒOƒCƒ“‚Ńy[ƒW”i1ƒy[ƒW2000•¶Žš‚ÅŒvŽZj‚ð•\Ž¦‚·‚邱‚Æ‚ª‚Å‚«‚Ü‚·B + + *•¶Žš”F{{wordcount}} + *ƒy[ƒW”F{{pagecount}} + +‚±‚ê‚àŽ·•M’†‚̓TƒCƒhƒƒjƒ…[‚É“ü‚ê‚Ä‚¨‚­‚Æ‚æ‚¢‚Å‚µ‚傤B + +!!ƒRƒ‰ƒ€‚Ì‹Lq + +–{•¶‚Ì“à—e‚Ƃ͏­‚µŠO‚ê‚é“à—e‚¾‚Á‚½‚èA“Á‚É’ˆÓ‚ª•K—v‚È“_‚È‚Ç‚ðƒRƒ‰ƒ€‚Æ‚µ‚Ä‹Lq‚µ‚½‚¢ê‡‚ª‚ ‚è‚Ü‚·B‚±‚̂悤‚ȏꍇAcolumnƒvƒ‰ƒOƒCƒ“‚ðŽg—p‚µ‚Ü‚·B + + {{column ƒRƒ‰ƒ€‚̃^ƒCƒgƒ‹ + ‚±‚±‚ɃRƒ‰ƒ€“™‚Ì“à—e‚ðWikiŒ`Ž®‚Å‹Lq‚·‚µ‚Ü‚·B + ƒuƒƒbƒNƒvƒ‰ƒOƒCƒ“‚È‚Ì‚Å•¡”s‚Ì‹Lq‚ª‰Â”\‚Å‚·B + }} + diff --git a/takezoe/plugin/book/Title1.pm b/takezoe/plugin/book/Title1.pm new file mode 100644 index 0000000..cef7fbd --- /dev/null +++ b/takezoe/plugin/book/Title1.pm @@ -0,0 +1,45 @@ +################################################################################ +# +#

    ¸«½Ð¤·1¤ËÉÕÍ¿¤¹¤ë¤³¤È¤Ç¸«½Ð¤·ÈÖ¹æ¤òÉÕÍ¿¤¹¤ë¥¤¥ó¥é¥¤¥ó¥×¥é¥°¥¤¥ó¤Ç¤¹¡£

    +#
    +# !!!{{title1}}¸«½Ð¤·1
    +# 
    +# +################################################################################ +package plugin::book::Title1; +#============================================================================== +# ¥³¥ó¥¹¥È¥é¥¯¥¿ +#============================================================================== +sub new { + my $class = shift; + my $self = {}; + return bless $self,$class; +} + +#============================================================================== +# ¥¤¥ó¥é¥¤¥ó¥á¥½¥Ã¥É +#============================================================================== +sub inline { + my $self = shift; + my $wiki = shift; + my $anchor = shift; + + my $chapter = $wiki->get_plugin_instance('plugin::book::Chapter'); + $self->{'count'}++; + + if($anchor eq ''){ + return $chapter->{'chapter'}.'-'.$self->{'count'}.'. '; + } else { + return ''.$chapter->{'chapter'}.'-'.$self->{'count'}.'. '; + } +} + +#============================================================================== +# ¥Õ¥Ã¥¯¥á¥½¥Ã¥É +#============================================================================== +sub hook { + my $self = shift; + $self->{'count'} = 0; +} + +1; diff --git a/takezoe/plugin/book/Title2.pm b/takezoe/plugin/book/Title2.pm new file mode 100644 index 0000000..3d36bfa --- /dev/null +++ b/takezoe/plugin/book/Title2.pm @@ -0,0 +1,47 @@ +################################################################################ +# +#

    ¸«½Ð¤·2¤ËÉÕÍ¿¤¹¤ë¤³¤È¤Ç¸«½Ð¤·ÈÖ¹æ¤òÉÕÍ¿¤¹¤ë¥¤¥ó¥é¥¤¥ó¥×¥é¥°¥¤¥ó¤Ç¤¹¡£

    +#
    +# !!{{title2}}¸«½Ð¤·2
    +# 
    +# +################################################################################ +package plugin::book::Title2; +#============================================================================== +# ¥³¥ó¥¹¥È¥é¥¯¥¿ +#============================================================================== +sub new { + my $class = shift; + my $self = {}; + return bless $self,$class; +} + +#============================================================================== +# ¥¤¥ó¥é¥¤¥ó¥á¥½¥Ã¥É +#============================================================================== +sub inline { + my $self = shift; + my $wiki = shift; + my $anchor = shift; + + my $chapter = $wiki->get_plugin_instance('plugin::book::Chapter'); + my $title1 = $wiki->get_plugin_instance('plugin::book::Title1'); + + $self->{'count'}++; + + if($anchor eq ''){ + return $chapter->{'chapter'}.'-'.$title1->{'count'}.'-'.$self->{'count'}.'. '; + } else { + return ''.$chapter->{'chapter'}.'-'.$title1->{'count'}.'-'.$self->{'count'}.'. '; + } +} + +#============================================================================== +# ¥Õ¥Ã¥¯¥á¥½¥Ã¥É +#============================================================================== +sub hook { + my $self = shift; + $self->{'count'} = 0; +} + +1; diff --git a/takezoe/plugin/book/Title3.pm b/takezoe/plugin/book/Title3.pm new file mode 100644 index 0000000..94f1617 --- /dev/null +++ b/takezoe/plugin/book/Title3.pm @@ -0,0 +1,48 @@ +################################################################################ +# +#

    ¸«½Ð¤·3¤ËÉÕÍ¿¤¹¤ë¤³¤È¤Ç¸«½Ð¤·ÈÖ¹æ¤òÉÕÍ¿¤¹¤ë¥¤¥ó¥é¥¤¥ó¥×¥é¥°¥¤¥ó¤Ç¤¹¡£

    +#
    +# !{{title3}}¸«½Ð¤·3
    +# 
    +# +################################################################################ +package plugin::book::Title3; +#============================================================================== +# ¥³¥ó¥¹¥È¥é¥¯¥¿ +#============================================================================== +sub new { + my $class = shift; + my $self = {}; + return bless $self,$class; +} + +#============================================================================== +# ¥¤¥ó¥é¥¤¥ó¥á¥½¥Ã¥É +#============================================================================== +sub inline { + my $self = shift; + my $wiki = shift; + my $anchor = shift; + + my $chapter = $wiki->get_plugin_instance('plugin::book::Chapter'); + my $title1 = $wiki->get_plugin_instance('plugin::book::Title1'); + my $title2 = $wiki->get_plugin_instance('plugin::book::Title2'); + + $self->{'count'}++; + + if($anchor eq ''){ + return $chapter->{'chapter'}.'-'.$title1->{'count'}.'-'.$title2->{'count'}.'-'.$self->{'count'}.'. '; + } else { + return ''.$chapter->{'chapter'}.'-'.$title1->{'count'}.'-'.$title2->{'count'}.'-'.$self->{'count'}.'. '; + } +} + +#============================================================================== +# ¥Õ¥Ã¥¯¥á¥½¥Ã¥É +#============================================================================== +sub hook { + my $self = shift; + $self->{'count'} = 0; +} + +1; diff --git a/takezoe/plugin/book/Toc.pm b/takezoe/plugin/book/Toc.pm new file mode 100644 index 0000000..147b2d9 --- /dev/null +++ b/takezoe/plugin/book/Toc.pm @@ -0,0 +1,43 @@ +################################################################################ +# +#

    book¥×¥é¥°¥¤¥ó¤Î¸«½Ð¤·ÈÖ¹æ¤ËÂбþ¤·¤¿¥Ú¡¼¥¸¤Î¥¢¥¦¥È¥é¥¤¥ó¤òɽ¼¨¤·¤Þ¤¹¡£

    +#
    +# {{toc}}
    +# 
    +#

    ¥Ú¡¼¥¸Ì¾¤ò»ØÄꤹ¤ë¤³¤È¤Ç¾¤Î¥Ú¡¼¥¸¤Î¥¢¥¦¥È¥é¥¤¥ó¤òɽ¼¨¤¹¤ë¤³¤È¤â¤Ç¤­¤Þ¤¹¡£

    +#
    +# {{toc ¥Ú¡¼¥¸Ì¾}}
    +# 
    +# +################################################################################ +package plugin::book::Toc; +#============================================================================== +# ¥³¥ó¥¹¥È¥é¥¯¥¿ +#============================================================================== +sub new { + my $class = shift; + my $self = {}; + return bless $self,$class; +} + +#============================================================================== +# ¥Ö¥í¥Ã¥¯¥á¥½¥Ã¥É +#============================================================================== +sub paragraph { + my $self = shift; + my $wiki = shift; + my $page = shift; + my $cgi = $wiki->get_CGI; + my $p_cnt = 0; + + $page = $cgi->param("page") unless $page; + + # ¥Ú¡¼¥¸¤Î»²¾È¸¢¸Â¤¬¤¢¤ë¤«¤É¤¦¤«Ä´¤Ù¤ë + unless($wiki->can_show($page)){ + return undef; + } + my $parser = plugin::book::TocParser->new($wiki, $page); + return $parser->outline($wiki->get_page($page)); +} + +1; diff --git a/takezoe/plugin/book/TocParser.pm b/takezoe/plugin/book/TocParser.pm new file mode 100644 index 0000000..ee6f3d6 --- /dev/null +++ b/takezoe/plugin/book/TocParser.pm @@ -0,0 +1,134 @@ +############################################################################### +# +# book¥×¥é¥°¥¤¥ó¤ËÂбþ¤·¤¿¥¢¥¦¥È¥é¥¤¥ó¥Ñ¡¼¥µ +# +############################################################################### +package plugin::book::TocParser; +use strict; +use vars qw(@ISA); +use Wiki::HTMLParser; + +@ISA = qw(Wiki::HTMLParser); + +#============================================================================== +# ¥³¥ó¥¹¥È¥é¥¯¥¿ +#============================================================================== +sub new { + my $class = shift; + my $self = Wiki::HTMLParser->new(shift); + my $page = shift; + $self->{'outline_html'} = ""; + $self->{'outline_level'} = 0; + $self->{'outline_cnt'} = 0; + $self->{'pagename'} = $page; + return bless $self,$class; +} + +#============================================================================== +# ¥Ø¥Ã¥É¥é¥¤¥ó¤Î¤ßÃê½Ð +#============================================================================== +sub l_headline { + my $self = shift; + my $level = shift; + my $obj = shift; + my $text = &Util::delete_tag(join("",@$obj)); + + if($level > $self->{outline_level}){ + while($level!=$self->{outline_level}){ + if($self->{'outline_close_'.($self->{outline_level})} == 1){ + $self->{outline_html} .= "\n"; + $self->{'outline_close_'.($self->{outline_level})} = 0; + } + $self->{outline_html} .= "\n"; + $self->{outline_level}--; + } + } else { + $self->{outline_html} .= "\n"; + } + + $self->{'outline_close_'.$level} = 1; + $self->{outline_html} .= "
  • {pagename})."#p".$self->{outline_cnt}."\">$text"; + $self->{outline_cnt}++; +} + +#============================================================================== +# ¥¢¥¦¥È¥é¥¤¥óɽ¼¨ÍÑHTML¤Î¼èÆÀ +#============================================================================== +sub outline { + my $self = shift; + my $source = shift; + $self->parse($source); + + while($self->{outline_level} != 0){ + if($self->{'outline_close_'.($self->{outline_level})} == 1){ + $self->{outline_html} .= "
  • \n"; + } + $self->{outline_html} .= "\n"; + $self->{outline_level}--; + } + + return $self->{outline_html}; +} + +#============================================================================== +# ¥×¥é¥°¥¤¥ó¤Î²òÀϤò¹Ô¤¦¤È̵¸Â¥ë¡¼¥×¤·¤Æ¤·¤Þ¤¦¤¿¤á +#============================================================================== +sub plugin{ + my $self = shift; + my $plugin = shift; + + if($plugin->{'command'} eq 'title1'){ + $self->{'title1'}++; + $self->{'title2'} = 0; + $self->{'title3'} = 0; + return $self->{'chapter'}.'-'.$self->{'title1'}.'. '; + + } elsif($plugin->{'command'} eq 'title2'){ + $self->{'title2'}++; + $self->{'title3'} = 0; + return $self->{'chapter'}.'-'.$self->{'title1'}.'-'.$self->{'title2'}.'. '; + + } elsif($plugin->{'command'} eq 'title3'){ + $self->{'title3'}++; + return $self->{'chapter'}.'-'.$self->{'title1'}.'-'.$self->{'title2'}.'-'.$self->{'title3'}.'. '; + + } + return undef; +} + +#============================================================================== +# ¥×¥é¥°¥¤¥ó¤Î²òÀϤò¹Ô¤¦¤È̵¸Â¥ë¡¼¥×¤·¤Æ¤·¤Þ¤¦¤¿¤á +#============================================================================== +sub l_plugin{ + my $self = shift; + my $plugin = shift; + + if($plugin->{'command'} eq 'chapter'){ + $self->{'chapter'} = $plugin->{'args'}->[0]; + return undef; + } + + # outline°Ê³°¤Î¾ì¹ç¤Î¤ß½èÍý¤ò¹Ô¤¦ + if($plugin->{command} ne "outline"){ + my $info = $self->{wiki}->get_plugin_info($plugin->{command}); + if($info->{FORMAT} eq "WIKI"){ + return $self->SUPER::l_plugin($plugin); + } + } else { + return undef; + } +} + +1; diff --git a/takezoe/plugin/book/Wordcount.pm b/takezoe/plugin/book/Wordcount.pm new file mode 100644 index 0000000..c74e32a --- /dev/null +++ b/takezoe/plugin/book/Wordcount.pm @@ -0,0 +1,38 @@ +################################################################################ +# +#

    ¸½ºßɽ¼¨¤·¤Æ¤¤¤ë¥Ú¡¼¥¸¤Îʸ»ú¿ô¤òɽ¼¨¤¹¤ë¥¤¥ó¥é¥¤¥ó¥×¥é¥°¥¤¥ó¤Ç¤¹¡£

    +#
    +# ʸ»ú¿ô¡§{{wordcount}}
    +# 
    +#

    °ú¿ô¤Ç¥«¥¦¥ó¥ÈÂоݤΥڡ¼¥¸¤ò»ØÄꤹ¤ë¤³¤È¤â¤Ç¤­¤Þ¤¹¡£

    +#
    +# ʸ»ú¿ô¡§{{wordcount ¥Ú¡¼¥¸Ì¾}}
    +# 
    +# +################################################################################ +package plugin::book::Wordcount; +use Encode qw(decode); +#============================================================================== +# ¥³¥ó¥¹¥È¥é¥¯¥¿ +#============================================================================== +sub new { + my $class = shift; + my $self = {}; + return bless $self,$class; +} + +#============================================================================== +# ¥¤¥ó¥é¥¤¥ó¥á¥½¥Ã¥É +#============================================================================== +sub inline { + my $self = shift; + my $wiki = shift; + my $page = shift; + + $page = $wiki->get_CGI->param('page') unless $page; + my $source = Jcode::convert($wiki->get_page($page), 'utf8', 'euc'); + + return length(decode('utf-8', $source)); +} + +1; diff --git a/takezoe/plugin/book/google-code-prettify/lang-apollo.js b/takezoe/plugin/book/google-code-prettify/lang-apollo.js new file mode 100644 index 0000000..7098baf --- /dev/null +++ b/takezoe/plugin/book/google-code-prettify/lang-apollo.js @@ -0,0 +1,2 @@ +PR.registerLangHandler(PR.createSimpleLexer([["com",/^#[^\n\r]*/,null,"#"],["pln",/^[\t\n\r \xa0]+/,null,"\t\n\r Â\xa0"],["str",/^"(?:[^"\\]|\\[\S\s])*(?:"|$)/,null,'"']],[["kwd",/^(?:ADS|AD|AUG|BZF|BZMF|CAE|CAF|CA|CCS|COM|CS|DAS|DCA|DCOM|DCS|DDOUBL|DIM|DOUBLE|DTCB|DTCF|DV|DXCH|EDRUPT|EXTEND|INCR|INDEX|NDX|INHINT|LXCH|MASK|MSK|MP|MSU|NOOP|OVSK|QXCH|RAND|READ|RELINT|RESUME|RETURN|ROR|RXOR|SQUARE|SU|TCR|TCAA|OVSK|TCF|TC|TS|WAND|WOR|WRITE|XCH|XLQ|XXALQ|ZL|ZQ|ADD|ADZ|SUB|SUZ|MPY|MPR|MPZ|DVP|COM|ABS|CLA|CLZ|LDQ|STO|STQ|ALS|LLS|LRS|TRA|TSQ|TMI|TOV|AXT|TIX|DLY|INP|OUT)\s/, +null],["typ",/^(?:-?GENADR|=MINUS|2BCADR|VN|BOF|MM|-?2CADR|-?[1-6]DNADR|ADRES|BBCON|[ES]?BANK=?|BLOCK|BNKSUM|E?CADR|COUNT\*?|2?DEC\*?|-?DNCHAN|-?DNPTR|EQUALS|ERASE|MEMORY|2?OCT|REMADR|SETLOC|SUBRO|ORG|BSS|BES|SYN|EQU|DEFINE|END)\s/,null],["lit",/^'(?:-*(?:\w|\\[!-~])(?:[\w-]*|\\[!-~])[!=?]?)?/],["pln",/^-*(?:[!-z]|\\[!-~])(?:[\w-]*|\\[!-~])[!=?]?/],["pun",/^[^\w\t\n\r "'-);\\\xa0]+/]]),["apollo","agc","aea"]); diff --git a/takezoe/plugin/book/google-code-prettify/lang-clj.js b/takezoe/plugin/book/google-code-prettify/lang-clj.js new file mode 100644 index 0000000..542a220 --- /dev/null +++ b/takezoe/plugin/book/google-code-prettify/lang-clj.js @@ -0,0 +1,18 @@ +/* + Copyright (C) 2011 Google Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +var a=null; +PR.registerLangHandler(PR.createSimpleLexer([["opn",/^[([{]+/,a,"([{"],["clo",/^[)\]}]+/,a,")]}"],["com",/^;[^\n\r]*/,a,";"],["pln",/^[\t\n\r \xa0]+/,a,"\t\n\r \xa0"],["str",/^"(?:[^"\\]|\\[\S\s])*(?:"|$)/,a,'"']],[["kwd",/^(?:def|if|do|let|quote|var|fn|loop|recur|throw|try|monitor-enter|monitor-exit|defmacro|defn|defn-|macroexpand|macroexpand-1|for|doseq|dosync|dotimes|and|or|when|not|assert|doto|proxy|defstruct|first|rest|cons|defprotocol|deftype|defrecord|reify|defmulti|defmethod|meta|with-meta|ns|in-ns|create-ns|import|intern|refer|alias|namespace|resolve|ref|deref|refset|new|set!|memfn|to-array|into-array|aset|gen-class|reduce|map|filter|find|nil?|empty?|hash-map|hash-set|vec|vector|seq|flatten|reverse|assoc|dissoc|list|list?|disj|get|union|difference|intersection|extend|extend-type|extend-protocol|prn)\b/,a], +["typ",/^:[\dA-Za-z-]+/]]),["clj"]); diff --git a/takezoe/plugin/book/google-code-prettify/lang-css.js b/takezoe/plugin/book/google-code-prettify/lang-css.js new file mode 100644 index 0000000..041e1f5 --- /dev/null +++ b/takezoe/plugin/book/google-code-prettify/lang-css.js @@ -0,0 +1,2 @@ +PR.registerLangHandler(PR.createSimpleLexer([["pln",/^[\t\n\f\r ]+/,null," \t\r\n "]],[["str",/^"(?:[^\n\f\r"\\]|\\(?:\r\n?|\n|\f)|\\[\S\s])*"/,null],["str",/^'(?:[^\n\f\r'\\]|\\(?:\r\n?|\n|\f)|\\[\S\s])*'/,null],["lang-css-str",/^url\(([^"')]*)\)/i],["kwd",/^(?:url|rgb|!important|@import|@page|@media|@charset|inherit)(?=[^\w-]|$)/i,null],["lang-css-kw",/^(-?(?:[_a-z]|\\[\da-f]+ ?)(?:[\w-]|\\\\[\da-f]+ ?)*)\s*:/i],["com",/^\/\*[^*]*\*+(?:[^*/][^*]*\*+)*\//],["com", +/^(?:<\!--|--\>)/],["lit",/^(?:\d+|\d*\.\d+)(?:%|[a-z]+)?/i],["lit",/^#[\da-f]{3,6}/i],["pln",/^-?(?:[_a-z]|\\[\da-f]+ ?)(?:[\w-]|\\\\[\da-f]+ ?)*/i],["pun",/^[^\s\w"']+/]]),["css"]);PR.registerLangHandler(PR.createSimpleLexer([],[["kwd",/^-?(?:[_a-z]|\\[\da-f]+ ?)(?:[\w-]|\\\\[\da-f]+ ?)*/i]]),["css-kw"]);PR.registerLangHandler(PR.createSimpleLexer([],[["str",/^[^"')]+/]]),["css-str"]); diff --git a/takezoe/plugin/book/google-code-prettify/lang-go.js b/takezoe/plugin/book/google-code-prettify/lang-go.js new file mode 100644 index 0000000..fc18dc0 --- /dev/null +++ b/takezoe/plugin/book/google-code-prettify/lang-go.js @@ -0,0 +1 @@ +PR.registerLangHandler(PR.createSimpleLexer([["pln",/^[\t\n\r \xa0]+/,null,"\t\n\r Â\xa0"],["pln",/^(?:"(?:[^"\\]|\\[\S\s])*(?:"|$)|'(?:[^'\\]|\\[\S\s])+(?:'|$)|`[^`]*(?:`|$))/,null,"\"'"]],[["com",/^(?:\/\/[^\n\r]*|\/\*[\S\s]*?\*\/)/],["pln",/^(?:[^"'/`]|\/(?![*/]))+/]]),["go"]); diff --git a/takezoe/plugin/book/google-code-prettify/lang-hs.js b/takezoe/plugin/book/google-code-prettify/lang-hs.js new file mode 100644 index 0000000..9d77b08 --- /dev/null +++ b/takezoe/plugin/book/google-code-prettify/lang-hs.js @@ -0,0 +1,2 @@ +PR.registerLangHandler(PR.createSimpleLexer([["pln",/^[\t-\r ]+/,null,"\t\n \r "],["str",/^"(?:[^\n\f\r"\\]|\\[\S\s])*(?:"|$)/,null,'"'],["str",/^'(?:[^\n\f\r'\\]|\\[^&])'?/,null,"'"],["lit",/^(?:0o[0-7]+|0x[\da-f]+|\d+(?:\.\d+)?(?:e[+-]?\d+)?)/i,null,"0123456789"]],[["com",/^(?:--+[^\n\f\r]*|{-(?:[^-]|-+[^}-])*-})/],["kwd",/^(?:case|class|data|default|deriving|do|else|if|import|in|infix|infixl|infixr|instance|let|module|newtype|of|then|type|where|_)(?=[^\d'A-Za-z]|$)/, +null],["pln",/^(?:[A-Z][\w']*\.)*[A-Za-z][\w']*/],["pun",/^[^\d\t-\r "'A-Za-z]+/]]),["hs"]); diff --git a/takezoe/plugin/book/google-code-prettify/lang-lisp.js b/takezoe/plugin/book/google-code-prettify/lang-lisp.js new file mode 100644 index 0000000..02a30e8 --- /dev/null +++ b/takezoe/plugin/book/google-code-prettify/lang-lisp.js @@ -0,0 +1,3 @@ +var a=null; +PR.registerLangHandler(PR.createSimpleLexer([["opn",/^\(+/,a,"("],["clo",/^\)+/,a,")"],["com",/^;[^\n\r]*/,a,";"],["pln",/^[\t\n\r \xa0]+/,a,"\t\n\r \xa0"],["str",/^"(?:[^"\\]|\\[\S\s])*(?:"|$)/,a,'"']],[["kwd",/^(?:block|c[ad]+r|catch|con[ds]|def(?:ine|un)|do|eq|eql|equal|equalp|eval-when|flet|format|go|if|labels|lambda|let|load-time-value|locally|macrolet|multiple-value-call|nil|progn|progv|quote|require|return-from|setq|symbol-macrolet|t|tagbody|the|throw|unwind)\b/,a], +["lit",/^[+-]?(?:[#0]x[\da-f]+|\d+\/\d+|(?:\.\d+|\d+(?:\.\d*)?)(?:[de][+-]?\d+)?)/i],["lit",/^'(?:-*(?:\w|\\[!-~])(?:[\w-]*|\\[!-~])[!=?]?)?/],["pln",/^-*(?:[_a-z]|\\[!-~])(?:[\w-]*|\\[!-~])[!=?]?/i],["pun",/^[^\w\t\n\r "'-);\\\xa0]+/]]),["cl","el","lisp","scm"]); diff --git a/takezoe/plugin/book/google-code-prettify/lang-lua.js b/takezoe/plugin/book/google-code-prettify/lang-lua.js new file mode 100644 index 0000000..e83a3c4 --- /dev/null +++ b/takezoe/plugin/book/google-code-prettify/lang-lua.js @@ -0,0 +1,2 @@ +PR.registerLangHandler(PR.createSimpleLexer([["pln",/^[\t\n\r \xa0]+/,null,"\t\n\r Â\xa0"],["str",/^(?:"(?:[^"\\]|\\[\S\s])*(?:"|$)|'(?:[^'\\]|\\[\S\s])*(?:'|$))/,null,"\"'"]],[["com",/^--(?:\[(=*)\[[\S\s]*?(?:]\1]|$)|[^\n\r]*)/],["str",/^\[(=*)\[[\S\s]*?(?:]\1]|$)/],["kwd",/^(?:and|break|do|else|elseif|end|false|for|function|if|in|local|nil|not|or|repeat|return|then|true|until|while)\b/,null],["lit",/^[+-]?(?:0x[\da-f]+|(?:\.\d+|\d+(?:\.\d*)?)(?:e[+-]?\d+)?)/i], +["pln",/^[_a-z]\w*/i],["pun",/^[^\w\t\n\r \xa0][^\w\t\n\r "'+=\xa0-]*/]]),["lua"]); diff --git a/takezoe/plugin/book/google-code-prettify/lang-ml.js b/takezoe/plugin/book/google-code-prettify/lang-ml.js new file mode 100644 index 0000000..6df02d7 --- /dev/null +++ b/takezoe/plugin/book/google-code-prettify/lang-ml.js @@ -0,0 +1,2 @@ +PR.registerLangHandler(PR.createSimpleLexer([["pln",/^[\t\n\r \xa0]+/,null,"\t\n\r Â\xa0"],["com",/^#(?:if[\t\n\r \xa0]+(?:[$_a-z][\w']*|``[^\t\n\r`]*(?:``|$))|else|endif|light)/i,null,"#"],["str",/^(?:"(?:[^"\\]|\\[\S\s])*(?:"|$)|'(?:[^'\\]|\\[\S\s])(?:'|$))/,null,"\"'"]],[["com",/^(?:\/\/[^\n\r]*|\(\*[\S\s]*?\*\))/],["kwd",/^(?:abstract|and|as|assert|begin|class|default|delegate|do|done|downcast|downto|elif|else|end|exception|extern|false|finally|for|fun|function|if|in|inherit|inline|interface|internal|lazy|let|match|member|module|mutable|namespace|new|null|of|open|or|override|private|public|rec|return|static|struct|then|to|true|try|type|upcast|use|val|void|when|while|with|yield|asr|land|lor|lsl|lsr|lxor|mod|sig|atomic|break|checked|component|const|constraint|constructor|continue|eager|event|external|fixed|functor|global|include|method|mixin|object|parallel|process|protected|pure|sealed|trait|virtual|volatile)\b/], +["lit",/^[+-]?(?:0x[\da-f]+|(?:\.\d+|\d+(?:\.\d*)?)(?:e[+-]?\d+)?)/i],["pln",/^(?:[_a-z][\w']*[!#?]?|``[^\t\n\r`]*(?:``|$))/i],["pun",/^[^\w\t\n\r "'\xa0]+/]]),["fs","ml"]); diff --git a/takezoe/plugin/book/google-code-prettify/lang-n.js b/takezoe/plugin/book/google-code-prettify/lang-n.js new file mode 100644 index 0000000..6c2e85b --- /dev/null +++ b/takezoe/plugin/book/google-code-prettify/lang-n.js @@ -0,0 +1,4 @@ +var a=null; +PR.registerLangHandler(PR.createSimpleLexer([["str",/^(?:'(?:[^\n\r'\\]|\\.)*'|"(?:[^\n\r"\\]|\\.)*(?:"|$))/,a,'"'],["com",/^#(?:(?:define|elif|else|endif|error|ifdef|include|ifndef|line|pragma|undef|warning)\b|[^\n\r]*)/,a,"#"],["pln",/^\s+/,a," \r\n\t\xa0"]],[["str",/^@"(?:[^"]|"")*(?:"|$)/,a],["str",/^<#[^#>]*(?:#>|$)/,a],["str",/^<(?:(?:(?:\.\.\/)*|\/?)(?:[\w-]+(?:\/[\w-]+)+)?[\w-]+\.h|[a-z]\w*)>/,a],["com",/^\/\/[^\n\r]*/,a],["com",/^\/\*[\S\s]*?(?:\*\/|$)/, +a],["kwd",/^(?:abstract|and|as|base|catch|class|def|delegate|enum|event|extern|false|finally|fun|implements|interface|internal|is|macro|match|matches|module|mutable|namespace|new|null|out|override|params|partial|private|protected|public|ref|sealed|static|struct|syntax|this|throw|true|try|type|typeof|using|variant|virtual|volatile|when|where|with|assert|assert2|async|break|checked|continue|do|else|ensures|for|foreach|if|late|lock|new|nolate|otherwise|regexp|repeat|requires|return|surroundwith|unchecked|unless|using|while|yield)\b/, +a],["typ",/^(?:array|bool|byte|char|decimal|double|float|int|list|long|object|sbyte|short|string|ulong|uint|ufloat|ulong|ushort|void)\b/,a],["lit",/^@[$_a-z][\w$@]*/i,a],["typ",/^@[A-Z]+[a-z][\w$@]*/,a],["pln",/^'?[$_a-z][\w$@]*/i,a],["lit",/^(?:0x[\da-f]+|(?:\d(?:_\d+)*\d*(?:\.\d*)?|\.\d\+)(?:e[+-]?\d+)?)[a-z]*/i,a,"0123456789"],["pun",/^.[^\s\w"-$'./@`]*/,a]]),["n","nemerle"]); diff --git a/takezoe/plugin/book/google-code-prettify/lang-proto.js b/takezoe/plugin/book/google-code-prettify/lang-proto.js new file mode 100644 index 0000000..f006ad8 --- /dev/null +++ b/takezoe/plugin/book/google-code-prettify/lang-proto.js @@ -0,0 +1 @@ +PR.registerLangHandler(PR.sourceDecorator({keywords:"bytes,default,double,enum,extend,extensions,false,group,import,max,message,option,optional,package,repeated,required,returns,rpc,service,syntax,to,true",types:/^(bool|(double|s?fixed|[su]?int)(32|64)|float|string)\b/,cStyleComments:!0}),["proto"]); diff --git a/takezoe/plugin/book/google-code-prettify/lang-scala.js b/takezoe/plugin/book/google-code-prettify/lang-scala.js new file mode 100644 index 0000000..60d034d --- /dev/null +++ b/takezoe/plugin/book/google-code-prettify/lang-scala.js @@ -0,0 +1,2 @@ +PR.registerLangHandler(PR.createSimpleLexer([["pln",/^[\t\n\r \xa0]+/,null,"\t\n\r Â\xa0"],["str",/^"(?:""(?:""?(?!")|[^"\\]|\\.)*"{0,3}|(?:[^\n\r"\\]|\\.)*"?)/,null,'"'],["lit",/^`(?:[^\n\r\\`]|\\.)*`?/,null,"`"],["pun",/^[!#%&(--:-@[-^{-~]+/,null,"!#%&()*+,-:;<=>?@[\\]^{|}~"]],[["str",/^'(?:[^\n\r'\\]|\\(?:'|[^\n\r']+))'/],["lit",/^'[$A-Z_a-z][\w$]*(?![\w$'])/],["kwd",/^(?:abstract|case|catch|class|def|do|else|extends|final|finally|for|forSome|if|implicit|import|lazy|match|new|object|override|package|private|protected|requires|return|sealed|super|throw|trait|try|type|val|var|while|with|yield)\b/], +["lit",/^(?:true|false|null|this)\b/],["lit",/^(?:0(?:[0-7]+|x[\da-f]+)l?|(?:0|[1-9]\d*)(?:(?:\.\d+)?(?:e[+-]?\d+)?f?|l?)|\\.\d+(?:e[+-]?\d+)?f?)/i],["typ",/^[$_]*[A-Z][\d$A-Z_]*[a-z][\w$]*/],["pln",/^[$A-Z_a-z][\w$]*/],["com",/^\/(?:\/.*|\*(?:\/|\**[^*/])*(?:\*+\/?)?)/],["pun",/^(?:\.+|\/)/]]),["scala"]); diff --git a/takezoe/plugin/book/google-code-prettify/lang-sql.js b/takezoe/plugin/book/google-code-prettify/lang-sql.js new file mode 100644 index 0000000..da705b0 --- /dev/null +++ b/takezoe/plugin/book/google-code-prettify/lang-sql.js @@ -0,0 +1,2 @@ +PR.registerLangHandler(PR.createSimpleLexer([["pln",/^[\t\n\r \xa0]+/,null,"\t\n\r Â\xa0"],["str",/^(?:"(?:[^"\\]|\\.)*"|'(?:[^'\\]|\\.)*')/,null,"\"'"]],[["com",/^(?:--[^\n\r]*|\/\*[\S\s]*?(?:\*\/|$))/],["kwd",/^(?:add|all|alter|and|any|as|asc|authorization|backup|begin|between|break|browse|bulk|by|cascade|case|check|checkpoint|close|clustered|coalesce|collate|column|commit|compute|constraint|contains|containstable|continue|convert|create|cross|current|current_date|current_time|current_timestamp|current_user|cursor|database|dbcc|deallocate|declare|default|delete|deny|desc|disk|distinct|distributed|double|drop|dummy|dump|else|end|errlvl|escape|except|exec|execute|exists|exit|fetch|file|fillfactor|for|foreign|freetext|freetexttable|from|full|function|goto|grant|group|having|holdlock|identity|identitycol|identity_insert|if|in|index|inner|insert|intersect|into|is|join|key|kill|left|like|lineno|load|match|merge|national|nocheck|nonclustered|not|null|nullif|of|off|offsets|on|open|opendatasource|openquery|openrowset|openxml|option|or|order|outer|over|percent|plan|precision|primary|print|proc|procedure|public|raiserror|read|readtext|reconfigure|references|replication|restore|restrict|return|revoke|right|rollback|rowcount|rowguidcol|rule|save|schema|select|session_user|set|setuser|shutdown|some|statistics|system_user|table|textsize|then|to|top|tran|transaction|trigger|truncate|tsequal|union|unique|update|updatetext|use|user|using|values|varying|view|waitfor|when|where|while|with|writetext)(?=[^\w-]|$)/i, +null],["lit",/^[+-]?(?:0x[\da-f]+|(?:\.\d+|\d+(?:\.\d*)?)(?:e[+-]?\d+)?)/i],["pln",/^[_a-z][\w-]*/i],["pun",/^[^\w\t\n\r "'\xa0][^\w\t\n\r "'+\xa0-]*/]]),["sql"]); diff --git a/takezoe/plugin/book/google-code-prettify/lang-tex.js b/takezoe/plugin/book/google-code-prettify/lang-tex.js new file mode 100644 index 0000000..ce96fbb --- /dev/null +++ b/takezoe/plugin/book/google-code-prettify/lang-tex.js @@ -0,0 +1 @@ +PR.registerLangHandler(PR.createSimpleLexer([["pln",/^[\t\n\r \xa0]+/,null,"\t\n\r Â\xa0"],["com",/^%[^\n\r]*/,null,"%"]],[["kwd",/^\\[@-Za-z]+/],["kwd",/^\\./],["typ",/^[$&]/],["lit",/[+-]?(?:\.\d+|\d+(?:\.\d*)?)(cm|em|ex|in|pc|pt|bp|mm)/i],["pun",/^[()=[\]{}]+/]]),["latex","tex"]); diff --git a/takezoe/plugin/book/google-code-prettify/lang-vb.js b/takezoe/plugin/book/google-code-prettify/lang-vb.js new file mode 100644 index 0000000..07506b0 --- /dev/null +++ b/takezoe/plugin/book/google-code-prettify/lang-vb.js @@ -0,0 +1,2 @@ +PR.registerLangHandler(PR.createSimpleLexer([["pln",/^[\t\n\r \xa0\u2028\u2029]+/,null,"\t\n\r Â\xa0

"],["str",/^(?:["\u201c\u201d](?:[^"\u201c\u201d]|["\u201c\u201d]{2})(?:["\u201c\u201d]c|$)|["\u201c\u201d](?:[^"\u201c\u201d]|["\u201c\u201d]{2})*(?:["\u201c\u201d]|$))/i,null,'"“”'],["com",/^['\u2018\u2019].*/,null,"'‘’"]],[["kwd",/^(?:addhandler|addressof|alias|and|andalso|ansi|as|assembly|auto|boolean|byref|byte|byval|call|case|catch|cbool|cbyte|cchar|cdate|cdbl|cdec|char|cint|class|clng|cobj|const|cshort|csng|cstr|ctype|date|decimal|declare|default|delegate|dim|directcast|do|double|each|else|elseif|end|endif|enum|erase|error|event|exit|finally|for|friend|function|get|gettype|gosub|goto|handles|if|implements|imports|in|inherits|integer|interface|is|let|lib|like|long|loop|me|mod|module|mustinherit|mustoverride|mybase|myclass|namespace|new|next|not|notinheritable|notoverridable|object|on|option|optional|or|orelse|overloads|overridable|overrides|paramarray|preserve|private|property|protected|public|raiseevent|readonly|redim|removehandler|resume|return|select|set|shadows|shared|short|single|static|step|stop|string|structure|sub|synclock|then|throw|to|try|typeof|unicode|until|variant|wend|when|while|with|withevents|writeonly|xor|endif|gosub|let|variant|wend)\b/i, +null],["com",/^rem.*/i],["lit",/^(?:true\b|false\b|nothing\b|\d+(?:e[+-]?\d+[dfr]?|[dfilrs])?|(?:&h[\da-f]+|&o[0-7]+)[ils]?|\d*\.\d+(?:e[+-]?\d+)?[dfr]?|#\s+(?:\d+[/-]\d+[/-]\d+(?:\s+\d+:\d+(?::\d+)?(\s*(?:am|pm))?)?|\d+:\d+(?::\d+)?(\s*(?:am|pm))?)\s+#)/i],["pln",/^(?:(?:[a-z]|_\w)\w*|\[(?:[a-z]|_\w)\w*])/i],["pun",/^[^\w\t\n\r "'[\]\xa0\u2018\u2019\u201c\u201d\u2028\u2029]+/],["pun",/^(?:\[|])/]]),["vb","vbs"]); diff --git a/takezoe/plugin/book/google-code-prettify/lang-vhdl.js b/takezoe/plugin/book/google-code-prettify/lang-vhdl.js new file mode 100644 index 0000000..128b5b6 --- /dev/null +++ b/takezoe/plugin/book/google-code-prettify/lang-vhdl.js @@ -0,0 +1,3 @@ +PR.registerLangHandler(PR.createSimpleLexer([["pln",/^[\t\n\r \xa0]+/,null,"\t\n\r Â\xa0"]],[["str",/^(?:[box]?"(?:[^"]|"")*"|'.')/i],["com",/^--[^\n\r]*/],["kwd",/^(?:abs|access|after|alias|all|and|architecture|array|assert|attribute|begin|block|body|buffer|bus|case|component|configuration|constant|disconnect|downto|else|elsif|end|entity|exit|file|for|function|generate|generic|group|guarded|if|impure|in|inertial|inout|is|label|library|linkage|literal|loop|map|mod|nand|new|next|nor|not|null|of|on|open|or|others|out|package|port|postponed|procedure|process|pure|range|record|register|reject|rem|report|return|rol|ror|select|severity|shared|signal|sla|sll|sra|srl|subtype|then|to|transport|type|unaffected|units|until|use|variable|wait|when|while|with|xnor|xor)(?=[^\w-]|$)/i, +null],["typ",/^(?:bit|bit_vector|character|boolean|integer|real|time|string|severity_level|positive|natural|signed|unsigned|line|text|std_u?logic(?:_vector)?)(?=[^\w-]|$)/i,null],["typ",/^'(?:active|ascending|base|delayed|driving|driving_value|event|high|image|instance_name|last_active|last_event|last_value|left|leftof|length|low|path_name|pos|pred|quiet|range|reverse_range|right|rightof|simple_name|stable|succ|transaction|val|value)(?=[^\w-]|$)/i,null],["lit",/^\d+(?:_\d+)*(?:#[\w.\\]+#(?:[+-]?\d+(?:_\d+)*)?|(?:\.\d+(?:_\d+)*)?(?:e[+-]?\d+(?:_\d+)*)?)/i], +["pln",/^(?:[a-z]\w*|\\[^\\]*\\)/i],["pun",/^[^\w\t\n\r "'\xa0][^\w\t\n\r "'\xa0-]*/]]),["vhdl","vhd"]); diff --git a/takezoe/plugin/book/google-code-prettify/lang-wiki.js b/takezoe/plugin/book/google-code-prettify/lang-wiki.js new file mode 100644 index 0000000..9b0b448 --- /dev/null +++ b/takezoe/plugin/book/google-code-prettify/lang-wiki.js @@ -0,0 +1,2 @@ +PR.registerLangHandler(PR.createSimpleLexer([["pln",/^[\d\t a-gi-z\xa0]+/,null,"\t Â\xa0abcdefgijklmnopqrstuvwxyz0123456789"],["pun",/^[*=[\]^~]+/,null,"=*~^[]"]],[["lang-wiki.meta",/(?:^^|\r\n?|\n)(#[a-z]+)\b/],["lit",/^[A-Z][a-z][\da-z]+[A-Z][a-z][^\W_]+\b/],["lang-",/^{{{([\S\s]+?)}}}/],["lang-",/^`([^\n\r`]+)`/],["str",/^https?:\/\/[^\s#/?]*(?:\/[^\s#?]*)?(?:\?[^\s#]*)?(?:#\S*)?/i],["pln",/^(?:\r\n|[\S\s])[^\n\r#*=A-[^`h{~]*/]]),["wiki"]); +PR.registerLangHandler(PR.createSimpleLexer([["kwd",/^#[a-z]+/i,null,"#"]],[]),["wiki.meta"]); diff --git a/takezoe/plugin/book/google-code-prettify/lang-xq.js b/takezoe/plugin/book/google-code-prettify/lang-xq.js new file mode 100644 index 0000000..e323ae3 --- /dev/null +++ b/takezoe/plugin/book/google-code-prettify/lang-xq.js @@ -0,0 +1,3 @@ +PR.registerLangHandler(PR.createSimpleLexer([["var pln",/^\$[\w-]+/,null,"$"]],[["pln",/^[\s=][<>][\s=]/],["lit",/^@[\w-]+/],["tag",/^<\/?[a-z](?:[\w-.:]*\w)?|\/?>$/i],["com",/^\(:[\S\s]*?:\)/],["pln",/^[(),/;[\]{}]$/],["str",/^(?:"(?:[^"\\{]|\\[\S\s])*(?:"|$)|'(?:[^'\\{]|\\[\S\s])*(?:'|$))/,null,"\"'"],["kwd",/^(?:xquery|where|version|variable|union|typeswitch|treat|to|then|text|stable|sortby|some|self|schema|satisfies|returns|return|ref|processing-instruction|preceding-sibling|preceding|precedes|parent|only|of|node|namespace|module|let|item|intersect|instance|in|import|if|function|for|follows|following-sibling|following|external|except|every|else|element|descending|descendant-or-self|descendant|define|default|declare|comment|child|cast|case|before|attribute|assert|ascending|as|ancestor-or-self|ancestor|after|eq|order|by|or|and|schema-element|document-node|node|at)\b/], +["typ",/^(?:xs:yearMonthDuration|xs:unsignedLong|xs:time|xs:string|xs:short|xs:QName|xs:Name|xs:long|xs:integer|xs:int|xs:gYearMonth|xs:gYear|xs:gMonthDay|xs:gDay|xs:float|xs:duration|xs:double|xs:decimal|xs:dayTimeDuration|xs:dateTime|xs:date|xs:byte|xs:boolean|xs:anyURI|xf:yearMonthDuration)\b/,null],["fun pln",/^(?:xp:dereference|xinc:node-expand|xinc:link-references|xinc:link-expand|xhtml:restructure|xhtml:clean|xhtml:add-lists|xdmp:zip-manifest|xdmp:zip-get|xdmp:zip-create|xdmp:xquery-version|xdmp:word-convert|xdmp:with-namespaces|xdmp:version|xdmp:value|xdmp:user-roles|xdmp:user-last-login|xdmp:user|xdmp:url-encode|xdmp:url-decode|xdmp:uri-is-file|xdmp:uri-format|xdmp:uri-content-type|xdmp:unquote|xdmp:unpath|xdmp:triggers-database|xdmp:trace|xdmp:to-json|xdmp:tidy|xdmp:subbinary|xdmp:strftime|xdmp:spawn-in|xdmp:spawn|xdmp:sleep|xdmp:shutdown|xdmp:set-session-field|xdmp:set-response-encoding|xdmp:set-response-content-type|xdmp:set-response-code|xdmp:set-request-time-limit|xdmp:set|xdmp:servers|xdmp:server-status|xdmp:server-name|xdmp:server|xdmp:security-database|xdmp:security-assert|xdmp:schema-database|xdmp:save|xdmp:role-roles|xdmp:role|xdmp:rethrow|xdmp:restart|xdmp:request-timestamp|xdmp:request-status|xdmp:request-cancel|xdmp:request|xdmp:redirect-response|xdmp:random|xdmp:quote|xdmp:query-trace|xdmp:query-meters|xdmp:product-edition|xdmp:privilege-roles|xdmp:privilege|xdmp:pretty-print|xdmp:powerpoint-convert|xdmp:platform|xdmp:permission|xdmp:pdf-convert|xdmp:path|xdmp:octal-to-integer|xdmp:node-uri|xdmp:node-replace|xdmp:node-kind|xdmp:node-insert-child|xdmp:node-insert-before|xdmp:node-insert-after|xdmp:node-delete|xdmp:node-database|xdmp:mul64|xdmp:modules-root|xdmp:modules-database|xdmp:merging|xdmp:merge-cancel|xdmp:merge|xdmp:md5|xdmp:logout|xdmp:login|xdmp:log-level|xdmp:log|xdmp:lock-release|xdmp:lock-acquire|xdmp:load|xdmp:invoke-in|xdmp:invoke|xdmp:integer-to-octal|xdmp:integer-to-hex|xdmp:http-put|xdmp:http-post|xdmp:http-options|xdmp:http-head|xdmp:http-get|xdmp:http-delete|xdmp:hosts|xdmp:host-status|xdmp:host-name|xdmp:host|xdmp:hex-to-integer|xdmp:hash64|xdmp:hash32|xdmp:has-privilege|xdmp:groups|xdmp:group-serves|xdmp:group-servers|xdmp:group-name|xdmp:group-hosts|xdmp:group|xdmp:get-session-field-names|xdmp:get-session-field|xdmp:get-response-encoding|xdmp:get-response-code|xdmp:get-request-username|xdmp:get-request-user|xdmp:get-request-url|xdmp:get-request-protocol|xdmp:get-request-path|xdmp:get-request-method|xdmp:get-request-header-names|xdmp:get-request-header|xdmp:get-request-field-names|xdmp:get-request-field-filename|xdmp:get-request-field-content-type|xdmp:get-request-field|xdmp:get-request-client-certificate|xdmp:get-request-client-address|xdmp:get-request-body|xdmp:get-current-user|xdmp:get-current-roles|xdmp:get|xdmp:function-name|xdmp:function-module|xdmp:function|xdmp:from-json|xdmp:forests|xdmp:forest-status|xdmp:forest-restore|xdmp:forest-restart|xdmp:forest-name|xdmp:forest-delete|xdmp:forest-databases|xdmp:forest-counts|xdmp:forest-clear|xdmp:forest-backup|xdmp:forest|xdmp:filesystem-file|xdmp:filesystem-directory|xdmp:exists|xdmp:excel-convert|xdmp:eval-in|xdmp:eval|xdmp:estimate|xdmp:email|xdmp:element-content-type|xdmp:elapsed-time|xdmp:document-set-quality|xdmp:document-set-property|xdmp:document-set-properties|xdmp:document-set-permissions|xdmp:document-set-collections|xdmp:document-remove-properties|xdmp:document-remove-permissions|xdmp:document-remove-collections|xdmp:document-properties|xdmp:document-locks|xdmp:document-load|xdmp:document-insert|xdmp:document-get-quality|xdmp:document-get-properties|xdmp:document-get-permissions|xdmp:document-get-collections|xdmp:document-get|xdmp:document-forest|xdmp:document-delete|xdmp:document-add-properties|xdmp:document-add-permissions|xdmp:document-add-collections|xdmp:directory-properties|xdmp:directory-locks|xdmp:directory-delete|xdmp:directory-create|xdmp:directory|xdmp:diacritic-less|xdmp:describe|xdmp:default-permissions|xdmp:default-collections|xdmp:databases|xdmp:database-restore-validate|xdmp:database-restore-status|xdmp:database-restore-cancel|xdmp:database-restore|xdmp:database-name|xdmp:database-forests|xdmp:database-backup-validate|xdmp:database-backup-status|xdmp:database-backup-purge|xdmp:database-backup-cancel|xdmp:database-backup|xdmp:database|xdmp:collection-properties|xdmp:collection-locks|xdmp:collection-delete|xdmp:collation-canonical-uri|xdmp:castable-as|xdmp:can-grant-roles|xdmp:base64-encode|xdmp:base64-decode|xdmp:architecture|xdmp:apply|xdmp:amp-roles|xdmp:amp|xdmp:add64|xdmp:add-response-header|xdmp:access|trgr:trigger-set-recursive|trgr:trigger-set-permissions|trgr:trigger-set-name|trgr:trigger-set-module|trgr:trigger-set-event|trgr:trigger-set-description|trgr:trigger-remove-permissions|trgr:trigger-module|trgr:trigger-get-permissions|trgr:trigger-enable|trgr:trigger-disable|trgr:trigger-database-online-event|trgr:trigger-data-event|trgr:trigger-add-permissions|trgr:remove-trigger|trgr:property-content|trgr:pre-commit|trgr:post-commit|trgr:get-trigger-by-id|trgr:get-trigger|trgr:document-scope|trgr:document-content|trgr:directory-scope|trgr:create-trigger|trgr:collection-scope|trgr:any-property-content|thsr:set-entry|thsr:remove-term|thsr:remove-synonym|thsr:remove-entry|thsr:query-lookup|thsr:lookup|thsr:load|thsr:insert|thsr:expand|thsr:add-synonym|spell:suggest-detailed|spell:suggest|spell:remove-word|spell:make-dictionary|spell:load|spell:levenshtein-distance|spell:is-correct|spell:insert|spell:double-metaphone|spell:add-word|sec:users-collection|sec:user-set-roles|sec:user-set-password|sec:user-set-name|sec:user-set-description|sec:user-set-default-permissions|sec:user-set-default-collections|sec:user-remove-roles|sec:user-privileges|sec:user-get-roles|sec:user-get-description|sec:user-get-default-permissions|sec:user-get-default-collections|sec:user-doc-permissions|sec:user-doc-collections|sec:user-add-roles|sec:unprotect-collection|sec:uid-for-name|sec:set-realm|sec:security-version|sec:security-namespace|sec:security-installed|sec:security-collection|sec:roles-collection|sec:role-set-roles|sec:role-set-name|sec:role-set-description|sec:role-set-default-permissions|sec:role-set-default-collections|sec:role-remove-roles|sec:role-privileges|sec:role-get-roles|sec:role-get-description|sec:role-get-default-permissions|sec:role-get-default-collections|sec:role-doc-permissions|sec:role-doc-collections|sec:role-add-roles|sec:remove-user|sec:remove-role-from-users|sec:remove-role-from-role|sec:remove-role-from-privileges|sec:remove-role-from-amps|sec:remove-role|sec:remove-privilege|sec:remove-amp|sec:protect-collection|sec:privileges-collection|sec:privilege-set-roles|sec:privilege-set-name|sec:privilege-remove-roles|sec:privilege-get-roles|sec:privilege-add-roles|sec:priv-doc-permissions|sec:priv-doc-collections|sec:get-user-names|sec:get-unique-elem-id|sec:get-role-names|sec:get-role-ids|sec:get-privilege|sec:get-distinct-permissions|sec:get-collection|sec:get-amp|sec:create-user-with-role|sec:create-user|sec:create-role|sec:create-privilege|sec:create-amp|sec:collections-collection|sec:collection-set-permissions|sec:collection-remove-permissions|sec:collection-get-permissions|sec:collection-add-permissions|sec:check-admin|sec:amps-collection|sec:amp-set-roles|sec:amp-remove-roles|sec:amp-get-roles|sec:amp-doc-permissions|sec:amp-doc-collections|sec:amp-add-roles|search:unparse|search:suggest|search:snippet|search:search|search:resolve-nodes|search:resolve|search:remove-constraint|search:parse|search:get-default-options|search:estimate|search:check-options|prof:value|prof:reset|prof:report|prof:invoke|prof:eval|prof:enable|prof:disable|prof:allowed|ppt:clean|pki:template-set-request|pki:template-set-name|pki:template-set-key-type|pki:template-set-key-options|pki:template-set-description|pki:template-in-use|pki:template-get-version|pki:template-get-request|pki:template-get-name|pki:template-get-key-type|pki:template-get-key-options|pki:template-get-id|pki:template-get-description|pki:need-certificate|pki:is-temporary|pki:insert-trusted-certificates|pki:insert-template|pki:insert-signed-certificates|pki:insert-certificate-revocation-list|pki:get-trusted-certificate-ids|pki:get-template-ids|pki:get-template-certificate-authority|pki:get-template-by-name|pki:get-template|pki:get-pending-certificate-requests-xml|pki:get-pending-certificate-requests-pem|pki:get-pending-certificate-request|pki:get-certificates-for-template-xml|pki:get-certificates-for-template|pki:get-certificates|pki:get-certificate-xml|pki:get-certificate-pem|pki:get-certificate|pki:generate-temporary-certificate-if-necessary|pki:generate-temporary-certificate|pki:generate-template-certificate-authority|pki:generate-certificate-request|pki:delete-template|pki:delete-certificate|pki:create-template|pdf:make-toc|pdf:insert-toc-headers|pdf:get-toc|pdf:clean|p:status-transition|p:state-transition|p:remove|p:pipelines|p:insert|p:get-by-id|p:get|p:execute|p:create|p:condition|p:collection|p:action|ooxml:runs-merge|ooxml:package-uris|ooxml:package-parts-insert|ooxml:package-parts|msword:clean|mcgm:polygon|mcgm:point|mcgm:geospatial-query-from-elements|mcgm:geospatial-query|mcgm:circle|math:tanh|math:tan|math:sqrt|math:sinh|math:sin|math:pow|math:modf|math:log10|math:log|math:ldexp|math:frexp|math:fmod|math:floor|math:fabs|math:exp|math:cosh|math:cos|math:ceil|math:atan2|math:atan|math:asin|math:acos|map:put|map:map|map:keys|map:get|map:delete|map:count|map:clear|lnk:to|lnk:remove|lnk:insert|lnk:get|lnk:from|lnk:create|kml:polygon|kml:point|kml:interior-polygon|kml:geospatial-query-from-elements|kml:geospatial-query|kml:circle|kml:box|gml:polygon|gml:point|gml:interior-polygon|gml:geospatial-query-from-elements|gml:geospatial-query|gml:circle|gml:box|georss:point|georss:geospatial-query|georss:circle|geo:polygon|geo:point|geo:interior-polygon|geo:geospatial-query-from-elements|geo:geospatial-query|geo:circle|geo:box|fn:zero-or-one|fn:years-from-duration|fn:year-from-dateTime|fn:year-from-date|fn:upper-case|fn:unordered|fn:true|fn:translate|fn:trace|fn:tokenize|fn:timezone-from-time|fn:timezone-from-dateTime|fn:timezone-from-date|fn:sum|fn:subtract-dateTimes-yielding-yearMonthDuration|fn:subtract-dateTimes-yielding-dayTimeDuration|fn:substring-before|fn:substring-after|fn:substring|fn:subsequence|fn:string-to-codepoints|fn:string-pad|fn:string-length|fn:string-join|fn:string|fn:static-base-uri|fn:starts-with|fn:seconds-from-time|fn:seconds-from-duration|fn:seconds-from-dateTime|fn:round-half-to-even|fn:round|fn:root|fn:reverse|fn:resolve-uri|fn:resolve-QName|fn:replace|fn:remove|fn:QName|fn:prefix-from-QName|fn:position|fn:one-or-more|fn:number|fn:not|fn:normalize-unicode|fn:normalize-space|fn:node-name|fn:node-kind|fn:nilled|fn:namespace-uri-from-QName|fn:namespace-uri-for-prefix|fn:namespace-uri|fn:name|fn:months-from-duration|fn:month-from-dateTime|fn:month-from-date|fn:minutes-from-time|fn:minutes-from-duration|fn:minutes-from-dateTime|fn:min|fn:max|fn:matches|fn:lower-case|fn:local-name-from-QName|fn:local-name|fn:last|fn:lang|fn:iri-to-uri|fn:insert-before|fn:index-of|fn:in-scope-prefixes|fn:implicit-timezone|fn:idref|fn:id|fn:hours-from-time|fn:hours-from-duration|fn:hours-from-dateTime|fn:floor|fn:false|fn:expanded-QName|fn:exists|fn:exactly-one|fn:escape-uri|fn:escape-html-uri|fn:error|fn:ends-with|fn:encode-for-uri|fn:empty|fn:document-uri|fn:doc-available|fn:doc|fn:distinct-values|fn:distinct-nodes|fn:default-collation|fn:deep-equal|fn:days-from-duration|fn:day-from-dateTime|fn:day-from-date|fn:data|fn:current-time|fn:current-dateTime|fn:current-date|fn:count|fn:contains|fn:concat|fn:compare|fn:collection|fn:codepoints-to-string|fn:codepoint-equal|fn:ceiling|fn:boolean|fn:base-uri|fn:avg|fn:adjust-time-to-timezone|fn:adjust-dateTime-to-timezone|fn:adjust-date-to-timezone|fn:abs|feed:unsubscribe|feed:subscription|feed:subscribe|feed:request|feed:item|feed:description|excel:clean|entity:enrich|dom:set-pipelines|dom:set-permissions|dom:set-name|dom:set-evaluation-context|dom:set-domain-scope|dom:set-description|dom:remove-pipeline|dom:remove-permissions|dom:remove|dom:get|dom:evaluation-context|dom:domains|dom:domain-scope|dom:create|dom:configuration-set-restart-user|dom:configuration-set-permissions|dom:configuration-set-evaluation-context|dom:configuration-set-default-domain|dom:configuration-get|dom:configuration-create|dom:collection|dom:add-pipeline|dom:add-permissions|dls:retention-rules|dls:retention-rule-remove|dls:retention-rule-insert|dls:retention-rule|dls:purge|dls:node-expand|dls:link-references|dls:link-expand|dls:documents-query|dls:document-versions-query|dls:document-version-uri|dls:document-version-query|dls:document-version-delete|dls:document-version-as-of|dls:document-version|dls:document-update|dls:document-unmanage|dls:document-set-quality|dls:document-set-property|dls:document-set-properties|dls:document-set-permissions|dls:document-set-collections|dls:document-retention-rules|dls:document-remove-properties|dls:document-remove-permissions|dls:document-remove-collections|dls:document-purge|dls:document-manage|dls:document-is-managed|dls:document-insert-and-manage|dls:document-include-query|dls:document-history|dls:document-get-permissions|dls:document-extract-part|dls:document-delete|dls:document-checkout-status|dls:document-checkout|dls:document-checkin|dls:document-add-properties|dls:document-add-permissions|dls:document-add-collections|dls:break-checkout|dls:author-query|dls:as-of-query|dbk:convert|dbg:wait|dbg:value|dbg:stopped|dbg:stop|dbg:step|dbg:status|dbg:stack|dbg:out|dbg:next|dbg:line|dbg:invoke|dbg:function|dbg:finish|dbg:expr|dbg:eval|dbg:disconnect|dbg:detach|dbg:continue|dbg:connect|dbg:clear|dbg:breakpoints|dbg:break|dbg:attached|dbg:attach|cvt:save-converted-documents|cvt:part-uri|cvt:destination-uri|cvt:basepath|cvt:basename|cts:words|cts:word-query-weight|cts:word-query-text|cts:word-query-options|cts:word-query|cts:word-match|cts:walk|cts:uris|cts:uri-match|cts:train|cts:tokenize|cts:thresholds|cts:stem|cts:similar-query-weight|cts:similar-query-nodes|cts:similar-query|cts:shortest-distance|cts:search|cts:score|cts:reverse-query-weight|cts:reverse-query-nodes|cts:reverse-query|cts:remainder|cts:registered-query-weight|cts:registered-query-options|cts:registered-query-ids|cts:registered-query|cts:register|cts:query|cts:quality|cts:properties-query-query|cts:properties-query|cts:polygon-vertices|cts:polygon|cts:point-longitude|cts:point-latitude|cts:point|cts:or-query-queries|cts:or-query|cts:not-query-weight|cts:not-query-query|cts:not-query|cts:near-query-weight|cts:near-query-queries|cts:near-query-options|cts:near-query-distance|cts:near-query|cts:highlight|cts:geospatial-co-occurrences|cts:frequency|cts:fitness|cts:field-words|cts:field-word-query-weight|cts:field-word-query-text|cts:field-word-query-options|cts:field-word-query-field-name|cts:field-word-query|cts:field-word-match|cts:entity-highlight|cts:element-words|cts:element-word-query-weight|cts:element-word-query-text|cts:element-word-query-options|cts:element-word-query-element-name|cts:element-word-query|cts:element-word-match|cts:element-values|cts:element-value-ranges|cts:element-value-query-weight|cts:element-value-query-text|cts:element-value-query-options|cts:element-value-query-element-name|cts:element-value-query|cts:element-value-match|cts:element-value-geospatial-co-occurrences|cts:element-value-co-occurrences|cts:element-range-query-weight|cts:element-range-query-value|cts:element-range-query-options|cts:element-range-query-operator|cts:element-range-query-element-name|cts:element-range-query|cts:element-query-query|cts:element-query-element-name|cts:element-query|cts:element-pair-geospatial-values|cts:element-pair-geospatial-value-match|cts:element-pair-geospatial-query-weight|cts:element-pair-geospatial-query-region|cts:element-pair-geospatial-query-options|cts:element-pair-geospatial-query-longitude-name|cts:element-pair-geospatial-query-latitude-name|cts:element-pair-geospatial-query-element-name|cts:element-pair-geospatial-query|cts:element-pair-geospatial-boxes|cts:element-geospatial-values|cts:element-geospatial-value-match|cts:element-geospatial-query-weight|cts:element-geospatial-query-region|cts:element-geospatial-query-options|cts:element-geospatial-query-element-name|cts:element-geospatial-query|cts:element-geospatial-boxes|cts:element-child-geospatial-values|cts:element-child-geospatial-value-match|cts:element-child-geospatial-query-weight|cts:element-child-geospatial-query-region|cts:element-child-geospatial-query-options|cts:element-child-geospatial-query-element-name|cts:element-child-geospatial-query-child-name|cts:element-child-geospatial-query|cts:element-child-geospatial-boxes|cts:element-attribute-words|cts:element-attribute-word-query-weight|cts:element-attribute-word-query-text|cts:element-attribute-word-query-options|cts:element-attribute-word-query-element-name|cts:element-attribute-word-query-attribute-name|cts:element-attribute-word-query|cts:element-attribute-word-match|cts:element-attribute-values|cts:element-attribute-value-ranges|cts:element-attribute-value-query-weight|cts:element-attribute-value-query-text|cts:element-attribute-value-query-options|cts:element-attribute-value-query-element-name|cts:element-attribute-value-query-attribute-name|cts:element-attribute-value-query|cts:element-attribute-value-match|cts:element-attribute-value-geospatial-co-occurrences|cts:element-attribute-value-co-occurrences|cts:element-attribute-range-query-weight|cts:element-attribute-range-query-value|cts:element-attribute-range-query-options|cts:element-attribute-range-query-operator|cts:element-attribute-range-query-element-name|cts:element-attribute-range-query-attribute-name|cts:element-attribute-range-query|cts:element-attribute-pair-geospatial-values|cts:element-attribute-pair-geospatial-value-match|cts:element-attribute-pair-geospatial-query-weight|cts:element-attribute-pair-geospatial-query-region|cts:element-attribute-pair-geospatial-query-options|cts:element-attribute-pair-geospatial-query-longitude-name|cts:element-attribute-pair-geospatial-query-latitude-name|cts:element-attribute-pair-geospatial-query-element-name|cts:element-attribute-pair-geospatial-query|cts:element-attribute-pair-geospatial-boxes|cts:document-query-uris|cts:document-query|cts:distance|cts:directory-query-uris|cts:directory-query-depth|cts:directory-query|cts:destination|cts:deregister|cts:contains|cts:confidence|cts:collections|cts:collection-query-uris|cts:collection-query|cts:collection-match|cts:classify|cts:circle-radius|cts:circle-center|cts:circle|cts:box-west|cts:box-south|cts:box-north|cts:box-east|cts:box|cts:bearing|cts:arc-intersection|cts:and-query-queries|cts:and-query-options|cts:and-query|cts:and-not-query-positive-query|cts:and-not-query-negative-query|cts:and-not-query|css:get|css:convert|cpf:success|cpf:failure|cpf:document-set-state|cpf:document-set-processing-status|cpf:document-set-last-updated|cpf:document-set-error|cpf:document-get-state|cpf:document-get-processing-status|cpf:document-get-last-updated|cpf:document-get-error|cpf:check-transition|alert:spawn-matching-actions|alert:rule-user-id-query|alert:rule-set-user-id|alert:rule-set-query|alert:rule-set-options|alert:rule-set-name|alert:rule-set-description|alert:rule-set-action|alert:rule-remove|alert:rule-name-query|alert:rule-insert|alert:rule-id-query|alert:rule-get-user-id|alert:rule-get-query|alert:rule-get-options|alert:rule-get-name|alert:rule-get-id|alert:rule-get-description|alert:rule-get-action|alert:rule-action-query|alert:remove-triggers|alert:make-rule|alert:make-log-action|alert:make-config|alert:make-action|alert:invoke-matching-actions|alert:get-my-rules|alert:get-all-rules|alert:get-actions|alert:find-matching-rules|alert:create-triggers|alert:config-set-uri|alert:config-set-trigger-ids|alert:config-set-options|alert:config-set-name|alert:config-set-description|alert:config-set-cpf-domain-names|alert:config-set-cpf-domain-ids|alert:config-insert|alert:config-get-uri|alert:config-get-trigger-ids|alert:config-get-options|alert:config-get-name|alert:config-get-id|alert:config-get-description|alert:config-get-cpf-domain-names|alert:config-get-cpf-domain-ids|alert:config-get|alert:config-delete|alert:action-set-options|alert:action-set-name|alert:action-set-module-root|alert:action-set-module-db|alert:action-set-module|alert:action-set-description|alert:action-remove|alert:action-insert|alert:action-get-options|alert:action-get-name|alert:action-get-module-root|alert:action-get-module-db|alert:action-get-module|alert:action-get-description|zero-or-one|years-from-duration|year-from-dateTime|year-from-date|upper-case|unordered|true|translate|trace|tokenize|timezone-from-time|timezone-from-dateTime|timezone-from-date|sum|subtract-dateTimes-yielding-yearMonthDuration|subtract-dateTimes-yielding-dayTimeDuration|substring-before|substring-after|substring|subsequence|string-to-codepoints|string-pad|string-length|string-join|string|static-base-uri|starts-with|seconds-from-time|seconds-from-duration|seconds-from-dateTime|round-half-to-even|round|root|reverse|resolve-uri|resolve-QName|replace|remove|QName|prefix-from-QName|position|one-or-more|number|not|normalize-unicode|normalize-space|node-name|node-kind|nilled|namespace-uri-from-QName|namespace-uri-for-prefix|namespace-uri|name|months-from-duration|month-from-dateTime|month-from-date|minutes-from-time|minutes-from-duration|minutes-from-dateTime|min|max|matches|lower-case|local-name-from-QName|local-name|last|lang|iri-to-uri|insert-before|index-of|in-scope-prefixes|implicit-timezone|idref|id|hours-from-time|hours-from-duration|hours-from-dateTime|floor|false|expanded-QName|exists|exactly-one|escape-uri|escape-html-uri|error|ends-with|encode-for-uri|empty|document-uri|doc-available|doc|distinct-values|distinct-nodes|default-collation|deep-equal|days-from-duration|day-from-dateTime|day-from-date|data|current-time|current-dateTime|current-date|count|contains|concat|compare|collection|codepoints-to-string|codepoint-equal|ceiling|boolean|base-uri|avg|adjust-time-to-timezone|adjust-dateTime-to-timezone|adjust-date-to-timezone|abs)\b/], +["pln",/^[\w:-]+/],["pln",/^[\t\n\r \xa0]+/]]),["xq","xquery"]); diff --git a/takezoe/plugin/book/google-code-prettify/lang-yaml.js b/takezoe/plugin/book/google-code-prettify/lang-yaml.js new file mode 100644 index 0000000..c38729b --- /dev/null +++ b/takezoe/plugin/book/google-code-prettify/lang-yaml.js @@ -0,0 +1,2 @@ +var a=null; +PR.registerLangHandler(PR.createSimpleLexer([["pun",/^[:>?|]+/,a,":|>?"],["dec",/^%(?:YAML|TAG)[^\n\r#]+/,a,"%"],["typ",/^&\S+/,a,"&"],["typ",/^!\S*/,a,"!"],["str",/^"(?:[^"\\]|\\.)*(?:"|$)/,a,'"'],["str",/^'(?:[^']|'')*(?:'|$)/,a,"'"],["com",/^#[^\n\r]*/,a,"#"],["pln",/^\s+/,a," \t\r\n"]],[["dec",/^(?:---|\.\.\.)(?:[\n\r]|$)/],["pun",/^-/],["kwd",/^\w+:[\n\r ]/],["pln",/^\w+/]]),["yaml","yml"]); diff --git a/takezoe/plugin/book/google-code-prettify/prettify.css b/takezoe/plugin/book/google-code-prettify/prettify.css new file mode 100644 index 0000000..d44b3a2 --- /dev/null +++ b/takezoe/plugin/book/google-code-prettify/prettify.css @@ -0,0 +1 @@ +.pln{color:#000}@media screen{.str{color:#080}.kwd{color:#008}.com{color:#800}.typ{color:#606}.lit{color:#066}.pun,.opn,.clo{color:#660}.tag{color:#008}.atn{color:#606}.atv{color:#080}.dec,.var{color:#606}.fun{color:red}}@media print,projection{.str{color:#060}.kwd{color:#006;font-weight:bold}.com{color:#600;font-style:italic}.typ{color:#404;font-weight:bold}.lit{color:#044}.pun,.opn,.clo{color:#440}.tag{color:#006;font-weight:bold}.atn{color:#404}.atv{color:#060}}pre.prettyprint{padding:2px;border:1px solid #888}ol.linenums{margin-top:0;margin-bottom:0}li.L0,li.L1,li.L2,li.L3,li.L5,li.L6,li.L7,li.L8{list-style-type:none}li.L1,li.L3,li.L5,li.L7,li.L9{background:#eee} \ No newline at end of file diff --git a/takezoe/plugin/book/google-code-prettify/prettify.js b/takezoe/plugin/book/google-code-prettify/prettify.js new file mode 100644 index 0000000..eef5ad7 --- /dev/null +++ b/takezoe/plugin/book/google-code-prettify/prettify.js @@ -0,0 +1,28 @@ +var q=null;window.PR_SHOULD_USE_CONTINUATION=!0; +(function(){function L(a){function m(a){var f=a.charCodeAt(0);if(f!==92)return f;var b=a.charAt(1);return(f=r[b])?f:"0"<=b&&b<="7"?parseInt(a.substring(1),8):b==="u"||b==="x"?parseInt(a.substring(2),16):a.charCodeAt(1)}function e(a){if(a<32)return(a<16?"\\x0":"\\x")+a.toString(16);a=String.fromCharCode(a);if(a==="\\"||a==="-"||a==="["||a==="]")a="\\"+a;return a}function h(a){for(var f=a.substring(1,a.length-1).match(/\\u[\dA-Fa-f]{4}|\\x[\dA-Fa-f]{2}|\\[0-3][0-7]{0,2}|\\[0-7]{1,2}|\\[\S\s]|[^\\]/g),a= +[],b=[],o=f[0]==="^",c=o?1:0,i=f.length;c122||(d<65||j>90||b.push([Math.max(65,j)|32,Math.min(d,90)|32]),d<97||j>122||b.push([Math.max(97,j)&-33,Math.min(d,122)&-33]))}}b.sort(function(a,f){return a[0]-f[0]||f[1]-a[1]});f=[];j=[NaN,NaN];for(c=0;ci[0]&&(i[1]+1>i[0]&&b.push("-"),b.push(e(i[1])));b.push("]");return b.join("")}function y(a){for(var f=a.source.match(/\[(?:[^\\\]]|\\[\S\s])*]|\\u[\dA-Fa-f]{4}|\\x[\dA-Fa-f]{2}|\\\d+|\\[^\dux]|\(\?[!:=]|[()^]|[^()[\\^]+/g),b=f.length,d=[],c=0,i=0;c=2&&a==="["?f[c]=h(j):a!=="\\"&&(f[c]=j.replace(/[A-Za-z]/g,function(a){a=a.charCodeAt(0);return"["+String.fromCharCode(a&-33,a|32)+"]"}));return f.join("")}for(var t=0,s=!1,l=!1,p=0,d=a.length;p=5&&"lang-"===b.substring(0,5))&&!(o&&typeof o[1]==="string"))c=!1,b="src";c||(r[f]=b)}i=d;d+=f.length;if(c){c=o[1];var j=f.indexOf(c),k=j+c.length;o[2]&&(k=f.length-o[2].length,j=k-c.length);b=b.substring(5);B(l+i,f.substring(0,j),e,p);B(l+i+j,c,C(b,c),p);B(l+i+k,f.substring(k),e,p)}else p.push(l+i,b)}a.e=p}var h={},y;(function(){for(var e=a.concat(m), +l=[],p={},d=0,g=e.length;d=0;)h[n.charAt(k)]=r;r=r[1];n=""+r;p.hasOwnProperty(n)||(l.push(r),p[n]=q)}l.push(/[\S\s]/);y=L(l)})();var t=m.length;return e}function u(a){var m=[],e=[];a.tripleQuotedStrings?m.push(["str",/^(?:'''(?:[^'\\]|\\[\S\s]|''?(?=[^']))*(?:'''|$)|"""(?:[^"\\]|\\[\S\s]|""?(?=[^"]))*(?:"""|$)|'(?:[^'\\]|\\[\S\s])*(?:'|$)|"(?:[^"\\]|\\[\S\s])*(?:"|$))/,q,"'\""]):a.multiLineStrings?m.push(["str",/^(?:'(?:[^'\\]|\\[\S\s])*(?:'|$)|"(?:[^"\\]|\\[\S\s])*(?:"|$)|`(?:[^\\`]|\\[\S\s])*(?:`|$))/, +q,"'\"`"]):m.push(["str",/^(?:'(?:[^\n\r'\\]|\\.)*(?:'|$)|"(?:[^\n\r"\\]|\\.)*(?:"|$))/,q,"\"'"]);a.verbatimStrings&&e.push(["str",/^@"(?:[^"]|"")*(?:"|$)/,q]);var h=a.hashComments;h&&(a.cStyleComments?(h>1?m.push(["com",/^#(?:##(?:[^#]|#(?!##))*(?:###|$)|.*)/,q,"#"]):m.push(["com",/^#(?:(?:define|elif|else|endif|error|ifdef|include|ifndef|line|pragma|undef|warning)\b|[^\n\r]*)/,q,"#"]),e.push(["str",/^<(?:(?:(?:\.\.\/)*|\/?)(?:[\w-]+(?:\/[\w-]+)+)?[\w-]+\.h|[a-z]\w*)>/,q])):m.push(["com",/^#[^\n\r]*/, +q,"#"]));a.cStyleComments&&(e.push(["com",/^\/\/[^\n\r]*/,q]),e.push(["com",/^\/\*[\S\s]*?(?:\*\/|$)/,q]));a.regexLiterals&&e.push(["lang-regex",/^(?:^^\.?|[!+-]|!=|!==|#|%|%=|&|&&|&&=|&=|\(|\*|\*=|\+=|,|-=|->|\/|\/=|:|::|;|<|<<|<<=|<=|=|==|===|>|>=|>>|>>=|>>>|>>>=|[?@[^]|\^=|\^\^|\^\^=|{|\||\|=|\|\||\|\|=|~|break|case|continue|delete|do|else|finally|instanceof|return|throw|try|typeof)\s*(\/(?=[^*/])(?:[^/[\\]|\\[\S\s]|\[(?:[^\\\]]|\\[\S\s])*(?:]|$))+\/)/]);(h=a.types)&&e.push(["typ",h]);a=(""+a.keywords).replace(/^ | $/g, +"");a.length&&e.push(["kwd",RegExp("^(?:"+a.replace(/[\s,]+/g,"|")+")\\b"),q]);m.push(["pln",/^\s+/,q," \r\n\t\xa0"]);e.push(["lit",/^@[$_a-z][\w$@]*/i,q],["typ",/^(?:[@_]?[A-Z]+[a-z][\w$@]*|\w+_t\b)/,q],["pln",/^[$_a-z][\w$@]*/i,q],["lit",/^(?:0x[\da-f]+|(?:\d(?:_\d+)*\d*(?:\.\d*)?|\.\d\+)(?:e[+-]?\d+)?)[a-z]*/i,q,"0123456789"],["pln",/^\\[\S\s]?/,q],["pun",/^.[^\s\w"-$'./@\\`]*/,q]);return x(m,e)}function D(a,m){function e(a){switch(a.nodeType){case 1:if(k.test(a.className))break;if("BR"===a.nodeName)h(a), +a.parentNode&&a.parentNode.removeChild(a);else for(a=a.firstChild;a;a=a.nextSibling)e(a);break;case 3:case 4:if(p){var b=a.nodeValue,d=b.match(t);if(d){var c=b.substring(0,d.index);a.nodeValue=c;(b=b.substring(d.index+d[0].length))&&a.parentNode.insertBefore(s.createTextNode(b),a.nextSibling);h(a);c||a.parentNode.removeChild(a)}}}}function h(a){function b(a,d){var e=d?a.cloneNode(!1):a,f=a.parentNode;if(f){var f=b(f,1),g=a.nextSibling;f.appendChild(e);for(var h=g;h;h=g)g=h.nextSibling,f.appendChild(h)}return e} +for(;!a.nextSibling;)if(a=a.parentNode,!a)return;for(var a=b(a.nextSibling,0),e;(e=a.parentNode)&&e.nodeType===1;)a=e;d.push(a)}var k=/(?:^|\s)nocode(?:\s|$)/,t=/\r\n?|\n/,s=a.ownerDocument,l;a.currentStyle?l=a.currentStyle.whiteSpace:window.getComputedStyle&&(l=s.defaultView.getComputedStyle(a,q).getPropertyValue("white-space"));var p=l&&"pre"===l.substring(0,3);for(l=s.createElement("LI");a.firstChild;)l.appendChild(a.firstChild);for(var d=[l],g=0;g=0;){var h=m[e];A.hasOwnProperty(h)?window.console&&console.warn("cannot override language handler %s",h):A[h]=a}}function C(a,m){if(!a||!A.hasOwnProperty(a))a=/^\s*=o&&(h+=2);e>=c&&(a+=2)}}catch(w){"console"in window&&console.log(w&&w.stack?w.stack:w)}}var v=["break,continue,do,else,for,if,return,while"],w=[[v,"auto,case,char,const,default,double,enum,extern,float,goto,int,long,register,short,signed,sizeof,static,struct,switch,typedef,union,unsigned,void,volatile"], +"catch,class,delete,false,import,new,operator,private,protected,public,this,throw,true,try,typeof"],F=[w,"alignof,align_union,asm,axiom,bool,concept,concept_map,const_cast,constexpr,decltype,dynamic_cast,explicit,export,friend,inline,late_check,mutable,namespace,nullptr,reinterpret_cast,static_assert,static_cast,template,typeid,typename,using,virtual,where"],G=[w,"abstract,boolean,byte,extends,final,finally,implements,import,instanceof,null,native,package,strictfp,super,synchronized,throws,transient"], +H=[G,"as,base,by,checked,decimal,delegate,descending,dynamic,event,fixed,foreach,from,group,implicit,in,interface,internal,into,is,lock,object,out,override,orderby,params,partial,readonly,ref,sbyte,sealed,stackalloc,string,select,uint,ulong,unchecked,unsafe,ushort,var"],w=[w,"debugger,eval,export,function,get,null,set,undefined,var,with,Infinity,NaN"],I=[v,"and,as,assert,class,def,del,elif,except,exec,finally,from,global,import,in,is,lambda,nonlocal,not,or,pass,print,raise,try,with,yield,False,True,None"], +J=[v,"alias,and,begin,case,class,def,defined,elsif,end,ensure,false,in,module,next,nil,not,or,redo,rescue,retry,self,super,then,true,undef,unless,until,when,yield,BEGIN,END"],v=[v,"case,done,elif,esac,eval,fi,function,in,local,set,then,until"],K=/^(DIR|FILE|vector|(de|priority_)?queue|list|stack|(const_)?iterator|(multi)?(set|map)|bitset|u?(int|float)\d*)/,N=/\S/,O=u({keywords:[F,H,w,"caller,delete,die,do,dump,elsif,eval,exit,foreach,for,goto,if,import,last,local,my,next,no,our,print,package,redo,require,sub,undef,unless,until,use,wantarray,while,BEGIN,END"+ +I,J,v],hashComments:!0,cStyleComments:!0,multiLineStrings:!0,regexLiterals:!0}),A={};k(O,["default-code"]);k(x([],[["pln",/^[^]*(?:>|$)/],["com",/^<\!--[\S\s]*?(?:--\>|$)/],["lang-",/^<\?([\S\s]+?)(?:\?>|$)/],["lang-",/^<%([\S\s]+?)(?:%>|$)/],["pun",/^(?:<[%?]|[%?]>)/],["lang-",/^]*>([\S\s]+?)<\/xmp\b[^>]*>/i],["lang-js",/^]*>([\S\s]*?)(<\/script\b[^>]*>)/i],["lang-css",/^]*>([\S\s]*?)(<\/style\b[^>]*>)/i],["lang-in.tag",/^(<\/?[a-z][^<>]*>)/i]]), +["default-markup","htm","html","mxml","xhtml","xml","xsl"]);k(x([["pln",/^\s+/,q," \t\r\n"],["atv",/^(?:"[^"]*"?|'[^']*'?)/,q,"\"'"]],[["tag",/^^<\/?[a-z](?:[\w-.:]*\w)?|\/?>$/i],["atn",/^(?!style[\s=]|on)[a-z](?:[\w:-]*\w)?/i],["lang-uq.val",/^=\s*([^\s"'>]*(?:[^\s"'/>]|\/(?=\s)))/],["pun",/^[/<->]+/],["lang-js",/^on\w+\s*=\s*"([^"]+)"/i],["lang-js",/^on\w+\s*=\s*'([^']+)'/i],["lang-js",/^on\w+\s*=\s*([^\s"'>]+)/i],["lang-css",/^style\s*=\s*"([^"]+)"/i],["lang-css",/^style\s*=\s*'([^']+)'/i],["lang-css", +/^style\s*=\s*([^\s"'>]+)/i]]),["in.tag"]);k(x([],[["atv",/^[\S\s]+/]]),["uq.val"]);k(u({keywords:F,hashComments:!0,cStyleComments:!0,types:K}),["c","cc","cpp","cxx","cyc","m"]);k(u({keywords:"null,true,false"}),["json"]);k(u({keywords:H,hashComments:!0,cStyleComments:!0,verbatimStrings:!0,types:K}),["cs"]);k(u({keywords:G,cStyleComments:!0}),["java"]);k(u({keywords:v,hashComments:!0,multiLineStrings:!0}),["bsh","csh","sh"]);k(u({keywords:I,hashComments:!0,multiLineStrings:!0,tripleQuotedStrings:!0}), +["cv","py"]);k(u({keywords:"caller,delete,die,do,dump,elsif,eval,exit,foreach,for,goto,if,import,last,local,my,next,no,our,print,package,redo,require,sub,undef,unless,until,use,wantarray,while,BEGIN,END",hashComments:!0,multiLineStrings:!0,regexLiterals:!0}),["perl","pl","pm"]);k(u({keywords:J,hashComments:!0,multiLineStrings:!0,regexLiterals:!0}),["rb"]);k(u({keywords:w,cStyleComments:!0,regexLiterals:!0}),["js"]);k(u({keywords:"all,and,by,catch,class,else,extends,false,finally,for,if,in,is,isnt,loop,new,no,not,null,of,off,on,or,return,super,then,true,try,unless,until,when,while,yes", +hashComments:3,cStyleComments:!0,multilineStrings:!0,tripleQuotedStrings:!0,regexLiterals:!0}),["coffee"]);k(x([],[["str",/^[\S\s]+/]]),["regex"]);window.prettyPrintOne=function(a,m,e){var h=document.createElement("PRE");h.innerHTML=a;e&&D(h,e);E({g:m,i:e,h:h});return h.innerHTML};window.prettyPrint=function(a){function m(){for(var e=window.PR_SHOULD_USE_CONTINUATION?l.now()+250:Infinity;p=0){var k=k.match(g),f,b;if(b= +!k){b=n;for(var o=void 0,c=b.firstChild;c;c=c.nextSibling)var i=c.nodeType,o=i===1?o?b:c:i===3?N.test(c.nodeValue)?b:o:o;b=(f=o===b?void 0:o)&&"CODE"===f.tagName}b&&(k=f.className.match(g));k&&(k=k[1]);b=!1;for(o=n.parentNode;o;o=o.parentNode)if((o.tagName==="pre"||o.tagName==="code"||o.tagName==="xmp")&&o.className&&o.className.indexOf("prettyprint")>=0){b=!0;break}b||((b=(b=n.className.match(/\blinenums\b(?::(\d+))?/))?b[1]&&b[1].length?+b[1]:!0:!1)&&D(n,b),d={g:k,h:n,i:b},E(d))}}p