Home > HikiDoc Archive

[ << < 1  2  3  4  5  6 ]

HikiDoc Archive

HikiDoc.pm 公開

HikiDoc.pm を公開しました。「B's Soft」のコーナーにおいてあります。

ついでに日記に「HikiDoc」というカテゴリを作った。これで多少はまじめにメンテする。。。かもしれない。
ともあれ、オリジナルの作者、かずひこ氏に感謝。

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; ♥

  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) <oneroad@mac.com>
    によって作られました。
    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) <oneroad@mac.com>

HikiDoc.pm その後

先日

結果オーライじゃなくてロジックもできるだけ本家と同じような感じにする (本家のバージョンアップに追随しやすくするため) ことを心がけ、目標は今月中リリースってことで。

などと言っていた HikiDoc.pm だが、とりあえず test_hikidoc.rb は全て ok になったし、TextFormattinRules.ja の parse 結果は hikidoc.rb と同じになった。目標よりも早くできたので、ちょっとコード見直して、せっかくだから Makefile.PL とかも準備して、それから後悔しよう。

後悔するのかよ orz - 髭。 (2006年05月23日 10時24分47秒)
月刊カメラマンの大谷です。初めまして。弊誌7月号(6月20日)にて、「デジタルフォトライフに役立つフリーウェア」を企画しております。 - 大谷惠基 (2006年05月23日 14時34分45秒)
つきましては、OneRenamerを紹介させていただきたくメールいたしました。何卒ご了承のほど、お願い申し上げます。 - 大谷惠基 (2006年05月23日 14時35分47秒)
了解しました。ありがとうございます。 - 髭。 (2006年05月23日 17時42分46秒)

HikiDoc.pm

元々電算写植屋だったからかもしれないが、ワープロが嫌いだ。レポートとかをどうやって書いてるかというと、最近はFreeStyleWiki上で書いてて、その前はrdtoolを使っていた。

特に不満もなかったのだが、先日「rdtool みたいにコマンドラインで使いたいときも結構あるよなぁ」と感じ、「最近 Wiki とか流行ったし、いろんな書式があるだろう」と、ちょっと調べてみた。あんまりいろんなことができる必要はない。機能的にちょうどよくても、書式が自分の感性と合わないとダメ。

結果、一番良さげだったのがHikiDoc。では移行しようと思ったが、一つ難点が。ruby がはいってなくて自分で勝手にインストールとかできない環境がある。。。Perl 版誰か作ってないかな。。。なさそうだな。。。自分で作るか。

結果オーライじゃなくてロジックもできるだけ本家と同じような感じにする (本家のバージョンアップに追随しやすくするため) ことを心がけ、目標は今月中リリースってことで。

[ << < 1  2  3  4  5  6 ]

Home > HikiDoc Archive

Feeds

Return to page top