• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
2012 09-29.yapcasia2012ltthon
 

2012 09-29.yapcasia2012ltthon

on

  • 969 views

@ YAPC::Asia 2012 LT-thon.

@ YAPC::Asia 2012 LT-thon.

Statistics

Views

Total Views
969
Views on SlideShare
714
Embed Views
255

Actions

Likes
1
Downloads
0
Comments
0

3 Embeds 255

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

Accessibility

Categories

Upload Details

Uploaded via as Apple Keynote

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment
  • \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

2012 09-29.yapcasia2012ltthon 2012 09-29.yapcasia2012ltthon Presentation Transcript

  • Textile記法とか Markdown記法とか2012-09-29 YAPC::Asia 2012 LT-thon 岩田 享 / issm
  • using Markdown?
  • using Textile?
  • ですよねーw
  • Textile記法とか Markdown記法とか2012-09-29 YAPC::Asia 2012 LT-thon 岩田 享 / issm
  • アジェンダ自己紹介Textile記法Text::TextileText::Textile::PluggableTextile 記法な Wiki 的 Web アプリまとめ
  • アジェンダ自己紹介Textile記法Text::TextileText::Textile::PluggableTextile 記法な Wiki 的 Web アプリまとめ
  • おまえだれよ?岩田 享 / issm(いわた)http://blog.iss.ms/@issm, qr/issmx{,2}/個人事業 とある「商品」を販売 → 発注 → 発送管理 などするためのシステムを開発していたりPerl / JavaScript CoffeeScript
  • http://www.imasaramario2.com/
  • 入院!
  • Nagoya.pm の方からきまし た!
  • アジェンダ自己紹介Textile記法Text::TextileText::Textile::PluggableTextile 記法な Wiki 的 Web アプリまとめ
  • 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) 等でもサポート
  • Textile記法見出し ▼
  • Textile記法文字装飾 ▼
  • Textile記法リスト ▼
  • Textile記法テーブル ▼
  • アジェンダ自己紹介Textile記法Text::TextileText::Textile::PluggableTextile 記法な Wiki 的 Web アプリまとめ
  • 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は共通のフォーマッティングタスクを簡単にする.
  • 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);
  • Text::Textile% perl -MText::Textile=textile -le print textile("h1. textile syntax")<h1>textile syntax</h1>
  • 簡単ですね!
  • Text::TextileRedmineでは... ▼
  • 記法の独自拡張はアプリケーション側で
  • アジェンダ自己紹介Textile記法Text::TextileText::Textile::PluggableTextile 記法な Wiki 的 Web アプリまとめ
  • Text::Textile::Pluggabl eTextile → HTML 変換の前後に処理を挟めるプラグイン形式で好きなようにできるhttps://github.com/issm/p5-Text-Textile-Pluggable
  • 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);
  • Text::Textile::Pluggabl eプラグインモジュール Text::Textile::Pluggable::Plugin::* pre メソッド → 変換前に処理 post メソッド → 変換後に処理 それぞれ処理後の文字列を返す
  • Text::Textile::Pluggabl epackage Text::Textile::Pluggable::Plugin::Foobar; # 変換前に処理するsub pre { my ($textile, $text) = @_; ... return $text;} # 変換後に処理するsub post { my ($textile, $text) = @_; ... return $text;} 1;
  • 先のRedmineの件を例に
  • 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;
  • 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);
  • シンタックスハイライトしてみる
  • Text::Textile::Pluggabl eGeSHi - Generic Syntax Highlighter http://qbnz.com/highlighter/ written in PHP WordPress プラグイン 「WP-Syntax」
  • Text::Textile::Pluggable::Plugin::SyntaxHighlight::GeSHi https://github.com/issm/p5-Text-Textile-Pluggable-Plugin-SyntaxHighlight- GeSHi
  • Text::Textile::Pluggabl e(ry)::Plugin::SyntaxHighlight::GeSHi bc[lang].. で記述されたコードをハイライト GeSHi な処理をするPHPを `...` で呼び出し
  • Text::Textile::Pluggablwithout plugin ebeforeafter
  • Text::Textile::Pluggablwith plugin ebeforeafter
  • アジェンダ自己紹介Textile記法Text::TextileText::Textile::PluggableTextile 記法な Wiki 的 Web アプリまとめ
  • Textile記法なWiki的Webアプリ SiTeWiki (Simple Textile Wiki) https://github.com/issm/SiTeWiki based on Amon2 Textile記法で記述・保存(変更管理なし) 編集時のプレビュー データディレクトリ指定 データディレクトリ変更監視・表示自動更新
  • Textile記法なWiki的Webアプリ Textile記法で記述・保存
  • Textile記法なWiki的Webアプリ 編集時のプレビュー
  • 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’, );};
  • Textile記法なWiki的Webアプリ 編集時のプレビュー デモ
  • Textile記法なWiki的Webアプリ データディレクトリ指定 config/*.pl+{ datadir => undef, # default ($basedir/data)};+{ datadir => ‘/path/to/your/favorite/directory’,};
  • Textile記法なWiki的Webアプリ データディレクトリ指定 ローカルとデプロイ先とを Dropbox で共有+{ datadir => ‘/Users/issm/Dropbox/sitewiki/data’,}; ローカルでデータを編集するだけでおk
  • Textile記法なWiki的Webアプリ データディレクトリ変更監視・表示自動更新 Filesys::Notify::Simple → 通知スクリプト 通知スクリプト written in PhantomJS WebSocket で「更新された」通知
  • Textile記法なWiki的Webアプリ データディレクトリ変更監視・表示自動更新 デモ
  • アジェンダ自己紹介Textile記法Text::TextileText::Textile::PluggableTextile 記法な Wiki 的 Web アプリまとめ
  • まとめTextile 記法のことも思い出してあげて!Text::Textile::Pluggable ってモジュールを書いてみたTextile 記法を扱える Wiki 的なものを作ってみた WebSocketおもしろい! nginx を前に立てるとうまくいかない><
  • おまけ
  • Text::Markdown::Pluggableもあるよ https://github.com/issm/p5-Text-Markdown-Pluggable
  • ご静聴ありがとうございました!
  • Q?