Home > Ruby Archive

[ 1  2 >> ]

Ruby Archive

どっかで聞いたことあると思ったら

Ruby/SDL ってどっかで聞いたことあると思ったら、マリオ作ってたやつか。なるほど

Sinatra ってのは良さげ

昨日教えてもらった「Sinatra」ってのを眺めてみた。これは好きかも。Perl で言うと C::A::P とか、最近だと Nanoa とか Menta とか、そっち系かな
ruby 触りたくなったら、最初にこのあたりから触ってみるか

かずひこサンに会ってきた

第35回 Ruby/Rails勉強会@関西」に行ってきた
RD だったり tDiary だったり HikiDoc だったり、ユーザとしてはわりとお世話になってきているが、自分自身のRuby 的な活動って、後にも先にも recent_photo.rb だけだよなぁ。。。でも、かずひこサンがくるのでしょうがない

。。。ダラダラと長いので、ちょっと分割する

Continue reading

SDL ってすごいな

スーパーマリオブラザーズをRubyで作ってみた - I am Cruby!

Ruby/SDL で作ったマリオ。これはすごいな。ひさびさに感動した。ソースも公開されてるし、他言語への移植版が続々と出てくる。。。かな?

Text::HikiDoc r1_017 公開

Text::HikiDoc r1_017 を公開。「B's Soft」のコーナーからどうぞ

機能的な変更はなくて、Text::HikiDoc::Plugin::texthighlight と Text::HikiDoc::Plugin::vimcolor のリファクタ

Subroutine Text::HikiDoc::_parse_pre redefined

が出てるままリリースして放置してたので、それを直しついでに実装方法も変更

  • Before
package Text::HikiDoc::Plugin::vimcolor;

use strict;
use warnings;

our $VERSION = sprintf "%d.%03d", q$Revision: 1.4 $ =~ /(\d+)/g;

use base 'Exporter';
our @EXPORT = qw(_parse_pre);

use Text::VimColor;

__PACKAGE__->export('Text::HikiDoc', "_parse_pre");

sub _parse_pre {
...
}

1;
  • After
package Text::HikiDoc::Plugin::vimcolor;

use strict;
use warnings;
no warnings 'redefine';

our $VERSION = sprintf "%d.%03d", q$Revision: 1.5 $ =~ /(\d+)/g;

use Text::VimColor;

*Text::HikiDoc::_parse_pre = sub {
...
};

1;

Text::HikiDoc r1_016 公開

Text::HikiDoc r1_016 を公開。「B's Soft」のコーナーからどうぞ。以下変更点

  • プラグイン形式で書式追加できる機能を追加
  • build 時に inc::Module::Install を使うよう変更
  • テストケースを、Test::More から Test::Base に変更

プラグイン機能の追加で、ドキュメント修正してます

本家 hikidoc.rb は 2 ヶ月前にソースコードのハイライトに対応してますが、Perl だけで実装したかったので、こちらでは Text::Highlight もしくは Text::VimColor を利用するように実装。そのため、変換後の HTML が本家と若干違ってしまいました。

非互換部分はプラグインにして影響少なめを心がけましたが、もはや本家との完全互換性とかは無理になりつつあります (^^;

他にもやっときたいことあったんだけど、トドはどんどん増えるし、ひとまず公開ってことで。

Text::HikiDoc r1_010 公開

HikiDoc.pm r1_010 を公開。フルパッケージは「B's Soft」のコーナーからどうぞ。今回のバージョンアップで HikiDoc から Text::HikiDoc に変更したためご注意を。以下変更点

  • to_html で全てのパラメータを指定できるように変更
  • HikiDoc から Text::HikiDoc に変更
  • 文字修飾記述が入れ子構造に対応していなかったバグの修正

バグフィクスの影響で、オリジナルの hikidoc.rb とビミョーな非互換が出てしまったので書き残しておく。が、とりあえずそのままで。

'''''hoge'''''

と記述した場合、hikidoc.rb だと

<strong>''hoge</strong>''

HikiDoc.pm だと

''<strong>hoge</strong>''

HikiDoc.pm r1_006 公開

HikiDoc.pm r1_006 を公開しました。フルパッケージは「B's Soft」のコーナーにおいてあります。

変更点:一行に二つ以上リンクが含まれるとき、最初の一個しか parse していなかった bug を修整

。。。しまった。ついでに Text::HikiDoc にしておけばよかった。。。

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秒)

[ 1  2 >> ]

Home > Ruby Archive

Feeds

Return to page top