Home > Ruby Archive
Ruby Archive
Sinatra ってのは良さげ
昨日教えてもらった「Sinatra」ってのを眺めてみた。これは好きかも。Perl で言うと C::A::P とか、最近だと Nanoa とか Menta とか、そっち系かな
ruby 触りたくなったら、最初にこのあたりから触ってみるか
- Comments: 0
- TrackBacks: 0
かずひこサンに会ってきた
「第35回 Ruby/Rails勉強会@関西」に行ってきた
RD だったり tDiary だったり HikiDoc だったり、ユーザとしてはわりとお世話になってきているが、自分自身のRuby 的な活動って、後にも先にも recent_photo.rb だけだよなぁ。。。でも、かずひこサンがくるのでしょうがない
。。。ダラダラと長いので、ちょっと分割する
- Comments: 0
- TrackBacks: 0
SDL ってすごいな
スーパーマリオブラザーズをRubyで作ってみた - I am Cruby!
Ruby/SDL で作ったマリオ。これはすごいな。ひさびさに感動した。ソースも公開されてるし、他言語への移植版が続々と出てくる。。。かな?
- Comments: 0
- TrackBacks: 0
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;
- Comments: 0
- TrackBacks: 0
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 が本家と若干違ってしまいました。
非互換部分はプラグインにして影響少なめを心がけましたが、もはや本家との完全互換性とかは無理になりつつあります (^^;
他にもやっときたいことあったんだけど、トドはどんどん増えるし、ひとまず公開ってことで。
- Comments: 0
- TrackBacks: 0
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>''
- Comments: 0
- TrackBacks: 0
HikiDoc.pm r1_006 公開
HikiDoc.pm r1_006 を公開しました。フルパッケージは「B's Soft」のコーナーにおいてあります。
変更点:一行に二つ以上リンクが含まれるとき、最初の一個しか parse していなかった bug を修整
。。。しまった。ついでに Text::HikiDoc にしておけばよかった。。。
- Comments: 0
- TrackBacks: 0
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')}}
を下記のように変換します
♥ ♥
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>
- Comments: 0
- TrackBacks: 0
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秒)
- Comments: 0
- TrackBacks: 0
Home > Ruby Archive