2012 09-29.yapcasia2012ltthon
Upcoming SlideShare
Loading in...5
×

Like this? Share it with your network

Share

2012 09-29.yapcasia2012ltthon

  • 1,077 views
Uploaded on

@ YAPC::Asia 2012 LT-thon.

@ YAPC::Asia 2012 LT-thon.

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
1,077
On Slideshare
821
From Embeds
256
Number of Embeds
3

Actions

Shares
Downloads
0
Comments
0
Likes
1

Embeds 256

http://blog.iss.ms 250
http://port.iss.ms 5
https://twitter.com 1

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n

Transcript

  • 1. Textile記法とか Markdown記法とか2012-09-29 YAPC::Asia 2012 LT-thon 岩田 享 / issm
  • 2. using Markdown?
  • 3. using Textile?
  • 4. ですよねーw
  • 5. Textile記法とか Markdown記法とか2012-09-29 YAPC::Asia 2012 LT-thon 岩田 享 / issm
  • 6. アジェンダ自己紹介Textile記法Text::TextileText::Textile::PluggableTextile 記法な Wiki 的 Web アプリまとめ
  • 7. アジェンダ自己紹介Textile記法Text::TextileText::Textile::PluggableTextile 記法な Wiki 的 Web アプリまとめ
  • 8. おまえだれよ?岩田 享 / issm(いわた)http://blog.iss.ms/@issm, qr/issmx{,2}/個人事業 とある「商品」を販売 → 発注 → 発送管理 などするためのシステムを開発していたりPerl / JavaScript CoffeeScript
  • 9. http://www.imasaramario2.com/
  • 10. 入院!
  • 11. Nagoya.pm の方からきまし た!
  • 12. アジェンダ自己紹介Textile記法Text::TextileText::Textile::PluggableTextile 記法な Wiki 的 Web アプリまとめ
  • 13. Textile記法「(軽量)マークアップ言語」の1つ http://textile.sitemonks.com/ http://en.wikipedia.org/wiki/Textile_(markup_language) http://en.wikipedia.org/wiki/ Lightweight_markup_language特定のシンプルな記述によるテキストをHTMLに変換Redmine や GitHub (Wiki) 等でもサポート
  • 14. Textile記法見出し ▼
  • 15. Textile記法文字装飾 ▼
  • 16. Textile記法リスト ▼
  • 17. Textile記法テーブル ▼
  • 18. アジェンダ自己紹介Textile記法Text::TextileText::Textile::PluggableTextile 記法な Wiki 的 Web アプリまとめ
  • 19. Text::Textilehttp://search.cpan.org/dist/Text-Textile/“Text::Textile is a Perl-basedimplementation of Dean Allens Textilesyntax. Textile is shorthand for doingcommon formatting tasks.”Text::Textileは,Dean Allen によるTextile記法のPerl実装である.Textileは共通のフォーマッティングタスクを簡単にする.
  • 20. Text::Textile 手続き的use Text::Textile qw/textile/;my $text = ‘h1. textile syntax’;my $html = textile($text); オブジェクト指向use Text::Textile;my $textile = Text::Textile->new;my $text = ‘h1. textile syntax’;my $html = $textile->process($text);
  • 21. Text::Textile% perl -MText::Textile=textile -le print textile("h1. textile syntax")<h1>textile syntax</h1>
  • 22. 簡単ですね!
  • 23. Text::TextileRedmineでは... ▼
  • 24. 記法の独自拡張はアプリケーション側で
  • 25. アジェンダ自己紹介Textile記法Text::TextileText::Textile::PluggableTextile 記法な Wiki 的 Web アプリまとめ
  • 26. Text::Textile::Pluggabl eTextile → HTML 変換の前後に処理を挟めるプラグイン形式で好きなようにできるhttps://github.com/issm/p5-Text-Textile-Pluggable
  • 27. Text::Textile::Pluggabl e 手続き的use Text::Textile::Pluggable qw/textile/;my $text = ‘h1. textile syntax’;my $html = textile($text, [qw/Foobar/]); オブジェクト指向use Text::Textile;my $textile = Text::Textile::Pluggable->new( plugins => [qw/Foobar/],);my $text = ‘h1. textile syntax’;my $html = $textile->process($text);
  • 28. Text::Textile::Pluggabl eプラグインモジュール Text::Textile::Pluggable::Plugin::* pre メソッド → 変換前に処理 post メソッド → 変換後に処理 それぞれ処理後の文字列を返す
  • 29. Text::Textile::Pluggabl epackage Text::Textile::Pluggable::Plugin::Foobar; # 変換前に処理するsub pre { my ($textile, $text) = @_; ... return $text;} # 変換後に処理するsub post { my ($textile, $text) = @_; ... return $text;} 1;
  • 30. 先のRedmineの件を例に
  • 31. Text::Textile::Pluggabl epackage (ry)::Plugin::RedmineLinks; # 変換前処理はないので定義は不要sub post { my ($textile, $text) = @_; $text =~ s{(#d+)}{ <a href=”...”>$1</a> }egx; $text =~ s{commit:([0-9a-f]{8})}{ <a href=”...”>$1</a> }egx; return $text;} 1;
  • 32. Text::Textile::Pluggabl e こんな感じで...use Text::Textile;my $textile = Text::Textile::Pluggable->new( plugins => [qw/RedmineLinks/],);my $text = << ‘...’;チケットへのリンク: #1234コミットへのリンク: commit:abcd1234...my $html = $textile->process($text);
  • 33. シンタックスハイライトしてみる
  • 34. Text::Textile::Pluggabl eGeSHi - Generic Syntax Highlighter http://qbnz.com/highlighter/ written in PHP WordPress プラグイン 「WP-Syntax」
  • 35. Text::Textile::Pluggable::Plugin::SyntaxHighlight::GeSHi https://github.com/issm/p5-Text-Textile-Pluggable-Plugin-SyntaxHighlight- GeSHi
  • 36. Text::Textile::Pluggabl e(ry)::Plugin::SyntaxHighlight::GeSHi bc[lang].. で記述されたコードをハイライト GeSHi な処理をするPHPを `...` で呼び出し
  • 37. Text::Textile::Pluggablwithout plugin ebeforeafter
  • 38. Text::Textile::Pluggablwith plugin ebeforeafter
  • 39. アジェンダ自己紹介Textile記法Text::TextileText::Textile::PluggableTextile 記法な Wiki 的 Web アプリまとめ
  • 40. Textile記法なWiki的Webアプリ SiTeWiki (Simple Textile Wiki) https://github.com/issm/SiTeWiki based on Amon2 Textile記法で記述・保存(変更管理なし) 編集時のプレビュー データディレクトリ指定 データディレクトリ変更監視・表示自動更新
  • 41. Textile記法なWiki的Webアプリ Textile記法で記述・保存
  • 42. Textile記法なWiki的Webアプリ 編集時のプレビュー
  • 43. Textile記法なWiki的Webアプリ 編集時のプレビュー use PocketIO;use PocketIO;use Plack::Builder;use SiTeWiki::Web::WebSocketHandler;builder { mount ‘/socket.io/’ => PocketIO->new( class => ‘SiTeWiki::Web::WebSocketHandler’, method => ‘run’, );};
  • 44. Textile記法なWiki的Webアプリ 編集時のプレビュー デモ
  • 45. Textile記法なWiki的Webアプリ データディレクトリ指定 config/*.pl+{ datadir => undef, # default ($basedir/data)};+{ datadir => ‘/path/to/your/favorite/directory’,};
  • 46. Textile記法なWiki的Webアプリ データディレクトリ指定 ローカルとデプロイ先とを Dropbox で共有+{ datadir => ‘/Users/issm/Dropbox/sitewiki/data’,}; ローカルでデータを編集するだけでおk
  • 47. Textile記法なWiki的Webアプリ データディレクトリ変更監視・表示自動更新 Filesys::Notify::Simple → 通知スクリプト 通知スクリプト written in PhantomJS WebSocket で「更新された」通知
  • 48. Textile記法なWiki的Webアプリ データディレクトリ変更監視・表示自動更新 デモ
  • 49. アジェンダ自己紹介Textile記法Text::TextileText::Textile::PluggableTextile 記法な Wiki 的 Web アプリまとめ
  • 50. まとめTextile 記法のことも思い出してあげて!Text::Textile::Pluggable ってモジュールを書いてみたTextile 記法を扱える Wiki 的なものを作ってみた WebSocketおもしろい! nginx を前に立てるとうまくいかない><
  • 51. おまけ
  • 52. Text::Markdown::Pluggableもあるよ https://github.com/issm/p5-Text-Markdown-Pluggable
  • 53. ご静聴ありがとうございました!
  • 54. Q?