The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
NAME
    Text::HikiDoc - ¡Ö¥Æ¥­¥¹¥È¢ªHTML¡×ÊÑ´¹¥Ä¡¼¥ë 'HikiDoc' ¤Î Perl ¤Ë¤è¤ë¼ÂÁõ

SYNOPSIS
      use Text::HikiDoc;

      # $text = '!Title';
      # $html = '<h1>Title</h1>';

      $obj = Text::HikiDoc->new();
      $html = $obj->to_html($text);

        or

      $obj = Text::HikiDoc->new($text);
      $html = $obj->to_html();

      # $text = "!Title\n----\n!!SubTitle";
      # $html = "<h2>Title</h2>\n<hr />\n<h3>SubTitle</h3>";

      $obj = Text::HikiDoc->new({
                                 string => $text,
                                 level => 2,
                                 empty_element_suffix => ' />',
                                 br_mode => 'true',
                                 table_border => 'false',
                                });

        or

      $obj = Text::HikiDoc->new($text, 2, ' />', 'true', 'false');

      $html = $obj->to_html();

      # $text = "!Title\n----\n!!SubTitle\nhogehoge{{br}}fugafuga";
      # $html = "<h1>Title</h1>\n<hr />\n<h2>SubTitle</h2>\n<p>hogehoge<br />fugafuga</p>\n";

      $obj = Text::HikiDoc->new();
      $obj->enable_plugin('br');
      $html = $obj->to_html($text);

      $obj->enable_plugin('br','ins');
      @plugins = $obj->plugin_list; # br, ins
      $obj->is_enabled('br'); # 1
      $obj->is_enabled('pr'); # 0

DESCRIPTION
    'HikiDoc' ¤Ï¡Ö¥Æ¥­¥¹¥È¢ª HTML¡×ÊÑ´¹¥Ä¡¼¥ë¤Ç¤¹¡£½ñ¤­¤ä¤¹¤¯Æɤߤ䤹¤¤
    ʸˡ¤Î ¥Æ¥­¥¹¥È¤ò¤Þ¤È¤â¤Ê HTML (¤ä XHTML) ¤ËÊÑ´¹¤·¤Þ¤¹¡£
    ¥ª¥ê¥¸¥Ê¥ë¤Î 'HikiDoc' ¤Ï Ruby ¤Ë¤è¤ë¼ÂÁõ¤Ç¤¹¡£

    Ëܥ饤¥Ö¥é¥ê¤Ï¡¢Pure Perl ¤Ë¤è¤ë 'HikiDoc' ¤Î¼ÂÁõ¤Ç¤¹¡£¥ª¥ê¥¸¥Ê¥ë¤Î
    'HikiDoc' ¤È¸ß´¹À­¤òÊݤäƤ¤¤Þ¤¹¡£

Methods
  new
    HikiDoc ¥ª¥Ö¥¸¥§¥¯¥È¤òÀ¸À®¤·¤Þ¤¹¡£²¼µ­¤Î¥Ñ¥é¥á¡¼¥¿¤ò»ØÄê¤Ç¤­¤Þ¤¹¡£

    string
        ÊÑ´¹¤¹¤ë¥Æ¥­¥¹¥È¥Ç¡¼¥¿¤Ç¤¹¡£

    level
        <h1>¡Á<h6> ¥¿¥°¤ËÊÑ´¹¤¹¤ëºÝ¤Î¥ì¥Ù¥ë»ØÄê¤Ç¤¹¡£¥Ç¥Õ¥©¥ë¥È¤Ï 1 ¤Ç¤¹¡£
        2 ¤òÀßÄꤹ¤ì¤Ð¡¢HTMLÊÑ´¹»þ <h2> ¤«¤é»Ï¤á¤Þ¤¹¡£

    empty_element_suffix
        ÊÄ¥¿¥°¤¬¤Ê¤¤¥¿¥° (<hr> ¤ä <br>¤Ê¤É) ¤ÎÊĤ¸Êý¤ò»ØÄꤷ¤Þ¤¹¡£¥Ç¥Õ¥©
        ¥ë¥È¤Ï¡Ö />¡×¤Ç¤¹¡£<hr />¤Î¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£<hr> ¤È¤·¤¿¤¤¾ì¹ç¤Ï
        ¡Ö>¡×¤òÀßÄꤷ¤Æ¤¯¤À¤µ¤¤¡£

    br_mode
        br_mode ¤ò¡Ötrue¡×¤Ë¤¹¤ë¤È¡¢<p></p> Æâ¤Î²þ¹Ô¤ò <br> ¤ËÊÑ´¹¤·¤Þ¤¹¡£
        ¥Ç¥Õ¥©¥ë¥È¤Ï¡Öfalse¡×¤Ç¤¹¡£

        ¤³¤Î¥Ñ¥é¥á¡¼¥¿¤Ï¡¢Ëܥ饤¥Ö¥é¥êÆȼ«¤Î³ÈÄ¥¤Ç¤¹¡£

    table_border
        table_border ¤ò¡Ötrue¡×¤Ë¤¹¤ë¤È <table border="1"> ¤Ë¡¢¡Öfalse¡×
        ¤Ë¤¹¤ë¤È <table> ¤ËÊÑ´¹¤·¤Þ¤¹¡£¥Ç¥Õ¥©¥ë¥È¤Ï¡Ötrue¡×¤Ç¤¹¡£

        ¤³¤Î¥Ñ¥é¥á¡¼¥¿¤Ï¡¢Ëܥ饤¥Ö¥é¥êÆȼ«¤Î³ÈÄ¥¤Ç¤¹¡£

  to_html
    HTML ¤ËÊÑ´¹¤·¤Þ¤¹¡£

    string
        ÊÑ´¹¤¹¤ë¥Æ¥­¥¹¥È¥Ç¡¼¥¿¤Ç¤¹¡£¤â¤· new ¤È to_html ¤ÎξÊý¤Ç string
        ¤òÀßÄꤷ¤¿¾ì¹ç¤Ï¡¢to_html ¤ÎÊý¤¬Í¥À褵¤ì¤Þ¤¹¡£

  enable_plugin(@args)
    ¥×¥é¥°¥¤¥ó¤òÍ­¸ú¤Ë¤·¤Þ¤¹¡£¡Ö@args¡×¤Ï¥×¥é¥°¥¤¥ó¤Î̾Á°¥ê¥¹¥È¤Ç¤¹

  plugin_list
    Í­¸ú¤Ë¤Ê¤Ã¤Æ¤¤¤ë¥×¥é¥°¥¤¥ó¤Î̾Á°¥ê¥¹¥È¤òÊÖ¤·¤Þ¤¹

  is_enabled($str)
    ¥×¥é¥°¥¤¥ó $str ¤¬Í­¸ú¤«¤É¤¦¤« 1 ¤« 0 ¤ÇÊÖ¤·¤Þ¤¹¡£Í­¸ú¤Ê¤é 1 ¤òÊÖ¤·
    ¤Þ¤¹

Plugin
    Text::HikiDoc ¤Ï¥×¥é¥°¥¤¥ó¤Ë¤è¤ë³ÈÄ¥¤¬²Äǽ¤Ç¤¹¡£enable_plugin() ¤ò
    »È¤Ã¤Æ¡¢¥×¥é¥°¥¤¥ó¤òÍ­¸ú¤Ë¤Ç¤­¤Þ¤¹

  Text::HikiDoc::Plugin::aa
          {{aa "
                       (__)
                      (oo)
               /-------\/
              / |     ||
             *  ||----||
                ~~    ~~
          "}}

          ¤ò²¼µ­¤Î¤è¤¦¤ËÊÑ´¹¤·¤Þ¤¹

          <pre class="ascii-art">
                       (__)
                      (oo)
               /-------\/
              / |     ||
             *  ||----||
                ~~    ~~
          </pre>

          Text::HikiDoc::Plugin::texthighlight ¤« Text::HikiDoc::Plugin::vimcolor
          ¤¬Í­¸ú¤Ê¤é¡¢²¼µ­¤Î¤è¤¦¤Ë½ñ¤¯»ö¤â¤Ç¤­¤Þ¤¹

          <<< aa
                       (__)
                      (oo)
               /-------\/
              / |     ||
             *  ||----||
                ~~    ~~
          >>>

  Text::HikiDoc::Plugin::br
        {{br}}

        ¤ò²¼µ­¤Î¤è¤¦¤ËÊÑ´¹¤·¤Þ¤¹

        <br />

  Text::HikiDoc::Plugin::e
        {{e('hearts')}} {{e('9829')}}

        ¤ò²¼µ­¤Î¤è¤¦¤ËÊÑ´¹¤·¤Þ¤¹

        &hearts; &#9829;

  Text::HikiDoc::Plugin::ins
        {{ins 'insert part'}}

        ¤ò²¼µ­¤Î¤è¤¦¤ËÊÑ´¹¤·¤Þ¤¹

        <ins>insert part</ins>

  Text::HikiDoc::Plugin::sub
        H{{sub('2')}}O

        ¤ò²¼µ­¤Î¤è¤¦¤ËÊÑ´¹¤·¤Þ¤¹

        H<sub>2</sub>O

  Text::HikiDoc::Plugin::sup
        2{{sup(3)}}=8

        ¤ò²¼µ­¤Î¤è¤¦¤ËÊÑ´¹¤·¤Þ¤¹

        2<sup>3</sup>=8

  Text::HikiDoc::Plugin::texthighlight
        pre ¤Ë¡¢Text::Highlight ¤ò»È¤Ã¤¿¥·¥ó¥¿¥Ã¥¯¥¹¥Ï¥¤¥é¥¤¥È¤òÄɲä·¤Þ¤¹

        ²¼µ­¤Îɽµ­¤Ï¡¢Perl ¤Î¥½¡¼¥¹¥³¡¼¥É¤È¤·¤Æ¥Ï¥¤¥é¥¤¥È¤µ¤ì¤Þ¤¹¡£
        ¡Ö<<< Perl¡×¤Î¤«¤ï¤ê¤Ë¡Ö<<<¡×¤Èµ­½Ò¤¹¤ì¤Ð¡¢¥Ï¥¤¥é¥¤¥È¤µ¤ì¤Ê¤¤Ä̾ï
        ¤Î pre ¤Ë¤Ê¤ê¤Þ¤¹

          <<< Perl
          sub dummy {
              $string = shift;
  
              $string =~ /$PLUGIN_RE/;
              print "s:$string\tm:$1\ta:$2\n";
              $a = $2;
              $a =~ s/^\s*(.*)\s*$/$1/;
  
              if ( $a =~ /($PLUGIN_RE)/ ) {
                  &hoge($a);
              }
              return $string;
          }
          >>>

        NOTE: ¤³¤Î¥×¥é¥°¥¤¥ó¤Î¼ÂÁõÊýË¡¤Ï¾­ÍèÊѤï¤ë¤«¤â¤·¤ì¤Þ¤»¤ó

  Text::HikiDoc::Plugin::vimcolor
        pre ¤Ë¡¢Text::VimColor ¤ò»È¤Ã¤¿¥·¥ó¥¿¥Ã¥¯¥¹¥Ï¥¤¥é¥¤¥È¤òÄɲä·¤Þ¤¹

        NOTE: ¤³¤Î¥×¥é¥°¥¤¥ó¤Î¼ÂÁõÊýË¡¤Ï¾­ÍèÊѤï¤ë¤«¤â¤·¤ì¤Þ¤»¤ó

SEE ALSO
    ËÜ²È 'HikiDoc' ¥µ¥¤¥È
        http://http://projects.netlab.jp/hikidoc/

    Text::HikiDoc::Plugin
    Text::HikiDoc::Plugin::aa
    Text::HikiDoc::Plugin::br
    Text::HikiDoc::Plugin::e
    Text::HikiDoc::Plugin::ins
    Text::HikiDoc::Plugin::sub
    Text::HikiDoc::Plugin::sup
    Text::HikiDoc::Plugin::texthighlight
    Text::HikiDoc::Plugin::vimcolor

AUTHORS
    ¥ª¥ê¥¸¥Ê¥ë¤Î 'HikiDoc' ¤Ï¤«¤º¤Ò¤³»á <kazuhiko@fdiary.net> ¤Ë¤è¤Ã¤Æ
    ºî¤é¤ì¤Þ¤·¤¿¡£

    Ëܥ饤¥Ö¥é¥ê¤ÎËÜ¥ê¥ê¡¼¥¹¤Ï¡¢Àîü °ìÆ» (Higemaru) <kawabata@cpan.org>
    ¤Ë¤è¤Ã¤Æºî¤é¤ì¤Þ¤·¤¿¡£
    http://haro.jp/

COPYRIGHT AND LICENSE
    This library 'HikiDoc.pm' is free software; you can redistribute it
    and/or modify it under the same terms as Perl itself.

    Copyright (C) 2006- Kawabata, Kazumichi (Higemaru) <kawabata@cpan.org>