Submit Search
Upload
Markdownもはじめよう
•
72 likes
•
34,802 views
masayoshi takahashi
Follow
SphinxCon JP 2014での発表資料です。
Read less
Read more
Technology
Report
Share
Report
Share
1 of 59
Download now
Download to read offline
Recommended
Consumer Driven Contractsで REST API/マイクロサービスをテスト #m3tech
Consumer Driven Contractsで REST API/マイクロサービスをテスト #m3tech
Toshiaki Maki
何となく勉強した気分になれるパーサ入門
何となく勉強した気分になれるパーサ入門
masayoshi takahashi
プログラムを高速化する話
プログラムを高速化する話
京大 マイコンクラブ
3種類のTEE比較(Intel SGX, ARM TrustZone, RISC-V Keystone)
3種類のTEE比較(Intel SGX, ARM TrustZone, RISC-V Keystone)
Kuniyasu Suzaki
テスト文字列に「うんこ」と入れるな
テスト文字列に「うんこ」と入れるな
Kentaro Matsui
20分くらいでわかった気分になれるC++20コルーチン
20分くらいでわかった気分になれるC++20コルーチン
yohhoy
いまさら聞けないarmを使ったNEONの基礎と活用事例
いまさら聞けないarmを使ったNEONの基礎と活用事例
Fixstars Corporation
理解して使いこなすDjangoのForm機能(2021 Django Congress発表資料)
理解して使いこなすDjangoのForm機能(2021 Django Congress発表資料)
KyutatsuNishiura
Recommended
Consumer Driven Contractsで REST API/マイクロサービスをテスト #m3tech
Consumer Driven Contractsで REST API/マイクロサービスをテスト #m3tech
Toshiaki Maki
何となく勉強した気分になれるパーサ入門
何となく勉強した気分になれるパーサ入門
masayoshi takahashi
プログラムを高速化する話
プログラムを高速化する話
京大 マイコンクラブ
3種類のTEE比較(Intel SGX, ARM TrustZone, RISC-V Keystone)
3種類のTEE比較(Intel SGX, ARM TrustZone, RISC-V Keystone)
Kuniyasu Suzaki
テスト文字列に「うんこ」と入れるな
テスト文字列に「うんこ」と入れるな
Kentaro Matsui
20分くらいでわかった気分になれるC++20コルーチン
20分くらいでわかった気分になれるC++20コルーチン
yohhoy
いまさら聞けないarmを使ったNEONの基礎と活用事例
いまさら聞けないarmを使ったNEONの基礎と活用事例
Fixstars Corporation
理解して使いこなすDjangoのForm機能(2021 Django Congress発表資料)
理解して使いこなすDjangoのForm機能(2021 Django Congress発表資料)
KyutatsuNishiura
メタプログラミングって何だろう
メタプログラミングって何だろう
Kota Mizushima
ゲーム開発者のための C++11/C++14
ゲーム開発者のための C++11/C++14
Ryo Suzuki
ゲームAI製作のためのワークショップ(III)
ゲームAI製作のためのワークショップ(III)
Youichiro Miyake
Redmine にいろいろ埋め込んでみた
Redmine にいろいろ埋め込んでみた
Kohei Nakamura
普通の人が勉強会で発表するために必要な準備のすべて~入門パブリック・スピーキング
普通の人が勉強会で発表するために必要な準備のすべて~入門パブリック・スピーキング
Masahito Zembutsu
Nmapの真実
Nmapの真実
abend_cve_9999_0001
正規表現リテラルは本当に必要なのか?
正規表現リテラルは本当に必要なのか?
kwatch
ドキュメントを作りたくなってしまう魔法のツールSphinx
ドキュメントを作りたくなってしまう魔法のツールSphinx
Takayuki Shimizukawa
心理的安全性を 0から80ぐらいに上げた話
心理的安全性を 0から80ぐらいに上げた話
Yusuke Hisatsu
誰でも見やすいパワーポイントを作るための パワーポイントバイブル
誰でも見やすいパワーポイントを作るための パワーポイントバイブル
Jun Akizaki
こんなに使える!今どきのAPIドキュメンテーションツール
こんなに使える!今どきのAPIドキュメンテーションツール
dcubeio
Webアプリを並行開発する際のマイグレーション戦略
Webアプリを並行開発する際のマイグレーション戦略
Takayuki Shimizukawa
非ITの宿泊業なのに、なぜDXを推進できるのか?
非ITの宿泊業なのに、なぜDXを推進できるのか?
崇介 藤井
イベント駆動プログラミングとI/O多重化
イベント駆動プログラミングとI/O多重化
Gosuke Miyashita
RESTfulとは
RESTfulとは
星影 月夜
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
Takuto Wada
GPUが100倍速いという神話をぶち殺せたらいいな ver.2013
GPUが100倍速いという神話をぶち殺せたらいいな ver.2013
Ryo Sakamoto
Marp入門
Marp入門
Rui Watanabe
チャットコミュニケーションの問題と心理的安全性の課題 #EOF2019
チャットコミュニケーションの問題と心理的安全性の課題 #EOF2019
Tokoroten Nakayama
プログラミング初心者がOpenCVと機械学習でOCRエンジン自作に挑戦する話
プログラミング初心者がOpenCVと機械学習でOCRエンジン自作に挑戦する話
marika_hotani
SIerでもSphinxを使いたい!総括
SIerでもSphinxを使いたい!総括
kk_Ataka
Sphinx拡張 探訪 2014 #sphinxjp
Sphinx拡張 探訪 2014 #sphinxjp
Takeshi Komiya
More Related Content
What's hot
メタプログラミングって何だろう
メタプログラミングって何だろう
Kota Mizushima
ゲーム開発者のための C++11/C++14
ゲーム開発者のための C++11/C++14
Ryo Suzuki
ゲームAI製作のためのワークショップ(III)
ゲームAI製作のためのワークショップ(III)
Youichiro Miyake
Redmine にいろいろ埋め込んでみた
Redmine にいろいろ埋め込んでみた
Kohei Nakamura
普通の人が勉強会で発表するために必要な準備のすべて~入門パブリック・スピーキング
普通の人が勉強会で発表するために必要な準備のすべて~入門パブリック・スピーキング
Masahito Zembutsu
Nmapの真実
Nmapの真実
abend_cve_9999_0001
正規表現リテラルは本当に必要なのか?
正規表現リテラルは本当に必要なのか?
kwatch
ドキュメントを作りたくなってしまう魔法のツールSphinx
ドキュメントを作りたくなってしまう魔法のツールSphinx
Takayuki Shimizukawa
心理的安全性を 0から80ぐらいに上げた話
心理的安全性を 0から80ぐらいに上げた話
Yusuke Hisatsu
誰でも見やすいパワーポイントを作るための パワーポイントバイブル
誰でも見やすいパワーポイントを作るための パワーポイントバイブル
Jun Akizaki
こんなに使える!今どきのAPIドキュメンテーションツール
こんなに使える!今どきのAPIドキュメンテーションツール
dcubeio
Webアプリを並行開発する際のマイグレーション戦略
Webアプリを並行開発する際のマイグレーション戦略
Takayuki Shimizukawa
非ITの宿泊業なのに、なぜDXを推進できるのか?
非ITの宿泊業なのに、なぜDXを推進できるのか?
崇介 藤井
イベント駆動プログラミングとI/O多重化
イベント駆動プログラミングとI/O多重化
Gosuke Miyashita
RESTfulとは
RESTfulとは
星影 月夜
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
Takuto Wada
GPUが100倍速いという神話をぶち殺せたらいいな ver.2013
GPUが100倍速いという神話をぶち殺せたらいいな ver.2013
Ryo Sakamoto
Marp入門
Marp入門
Rui Watanabe
チャットコミュニケーションの問題と心理的安全性の課題 #EOF2019
チャットコミュニケーションの問題と心理的安全性の課題 #EOF2019
Tokoroten Nakayama
プログラミング初心者がOpenCVと機械学習でOCRエンジン自作に挑戦する話
プログラミング初心者がOpenCVと機械学習でOCRエンジン自作に挑戦する話
marika_hotani
What's hot
(20)
メタプログラミングって何だろう
メタプログラミングって何だろう
ゲーム開発者のための C++11/C++14
ゲーム開発者のための C++11/C++14
ゲームAI製作のためのワークショップ(III)
ゲームAI製作のためのワークショップ(III)
Redmine にいろいろ埋め込んでみた
Redmine にいろいろ埋め込んでみた
普通の人が勉強会で発表するために必要な準備のすべて~入門パブリック・スピーキング
普通の人が勉強会で発表するために必要な準備のすべて~入門パブリック・スピーキング
Nmapの真実
Nmapの真実
正規表現リテラルは本当に必要なのか?
正規表現リテラルは本当に必要なのか?
ドキュメントを作りたくなってしまう魔法のツールSphinx
ドキュメントを作りたくなってしまう魔法のツールSphinx
心理的安全性を 0から80ぐらいに上げた話
心理的安全性を 0から80ぐらいに上げた話
誰でも見やすいパワーポイントを作るための パワーポイントバイブル
誰でも見やすいパワーポイントを作るための パワーポイントバイブル
こんなに使える!今どきのAPIドキュメンテーションツール
こんなに使える!今どきのAPIドキュメンテーションツール
Webアプリを並行開発する際のマイグレーション戦略
Webアプリを並行開発する際のマイグレーション戦略
非ITの宿泊業なのに、なぜDXを推進できるのか?
非ITの宿泊業なのに、なぜDXを推進できるのか?
イベント駆動プログラミングとI/O多重化
イベント駆動プログラミングとI/O多重化
RESTfulとは
RESTfulとは
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
GPUが100倍速いという神話をぶち殺せたらいいな ver.2013
GPUが100倍速いという神話をぶち殺せたらいいな ver.2013
Marp入門
Marp入門
チャットコミュニケーションの問題と心理的安全性の課題 #EOF2019
チャットコミュニケーションの問題と心理的安全性の課題 #EOF2019
プログラミング初心者がOpenCVと機械学習でOCRエンジン自作に挑戦する話
プログラミング初心者がOpenCVと機械学習でOCRエンジン自作に挑戦する話
Viewers also liked
SIerでもSphinxを使いたい!総括
SIerでもSphinxを使いたい!総括
kk_Ataka
Sphinx拡張 探訪 2014 #sphinxjp
Sphinx拡張 探訪 2014 #sphinxjp
Takeshi Komiya
APIドキュメントの話 #sphinxjp
APIドキュメントの話 #sphinxjp
Takeshi Komiya
Oktavia全文検索エンジン - SphinxCon JP 2014
Oktavia全文検索エンジン - SphinxCon JP 2014
Yoshiki Shibukawa
Sphinx HTML Theme Hacks
Sphinx HTML Theme Hacks
Shoji KUMAGAI
Sphinxで社内勉強会(Git)の 資料を作ってみた
Sphinxで社内勉強会(Git)の 資料を作ってみた
Taku SHIMIZU
Sphinx で手軽に作るドキュメント
Sphinx で手軽に作るドキュメント
Go Yamada
ドキュメントシステムはこれを使え2015年版
ドキュメントシステムはこれを使え2015年版
Keiichiro Shikano
Viewers also liked
(8)
SIerでもSphinxを使いたい!総括
SIerでもSphinxを使いたい!総括
Sphinx拡張 探訪 2014 #sphinxjp
Sphinx拡張 探訪 2014 #sphinxjp
APIドキュメントの話 #sphinxjp
APIドキュメントの話 #sphinxjp
Oktavia全文検索エンジン - SphinxCon JP 2014
Oktavia全文検索エンジン - SphinxCon JP 2014
Sphinx HTML Theme Hacks
Sphinx HTML Theme Hacks
Sphinxで社内勉強会(Git)の 資料を作ってみた
Sphinxで社内勉強会(Git)の 資料を作ってみた
Sphinx で手軽に作るドキュメント
Sphinx で手軽に作るドキュメント
ドキュメントシステムはこれを使え2015年版
ドキュメントシステムはこれを使え2015年版
Similar to Markdownもはじめよう
マジカルsvnとキュアgit
マジカルsvnとキュアgit
Takafumi ONAKA
月刊ライトニングトーク 12月号
月刊ライトニングトーク 12月号
Masaki Yamamoto
Doctypeという黒魔術の話
Doctypeという黒魔術の話
亮 門屋
Git & GitHub & kintone でウルトラハッピー!
Git & GitHub & kintone でウルトラハッピー!
ymmt
Bpstudy26
Bpstudy26
monjudoh
ドキュメントの話、しませんか? #428rk01
ドキュメントの話、しませんか? #428rk01
Takeshi Komiya
Mongo dbを知ろう devlove関西
Mongo dbを知ろう devlove関西
Ryuji Tamagawa
Markdownでドキュメント作成
Markdownでドキュメント作成
Yasuyuki Fujikawa
とある Perl Monger の働き方
とある Perl Monger の働き方
Yusuke Wada
3週連続DDDその2 深いモデルの探求(ドメイン駆動設計 第3部)
3週連続DDDその2 深いモデルの探求(ドメイン駆動設計 第3部)
増田 亨
作る人から作りながら運用する人になっていく
作る人から作りながら運用する人になっていく
Ryo Mitoma
Yapc2012ltthon
Yapc2012ltthon
Junya Murabe
RDB経験者に送るMongoDBの勘所(db tech showcase tokyo 2013)
RDB経験者に送るMongoDBの勘所(db tech showcase tokyo 2013)
Ryuji Tamagawa
Rails+Markdownでなにかつくる
Rails+Markdownでなにかつくる
Hirata Tomoko
Mrubyの始め方
Mrubyの始め方
Masaki Muranaka
Janog31 bof-pattern-sasaki-01
Janog31 bof-pattern-sasaki-01
Ken SASAKI
MariaDBのススメ
MariaDBのススメ
UmedaTakefumi
Lineにおけるspring frameworkの活用
Lineにおけるspring frameworkの活用
Tokuhiro Matsuno
サンタクロースを支えるIT技術 @M_Ishikawa #yapcasia
サンタクロースを支えるIT技術 @M_Ishikawa #yapcasia
Masayuki Ishikawa
programming camp 2008, Debug
programming camp 2008, Debug
Hiro Yoshioka
Similar to Markdownもはじめよう
(20)
マジカルsvnとキュアgit
マジカルsvnとキュアgit
月刊ライトニングトーク 12月号
月刊ライトニングトーク 12月号
Doctypeという黒魔術の話
Doctypeという黒魔術の話
Git & GitHub & kintone でウルトラハッピー!
Git & GitHub & kintone でウルトラハッピー!
Bpstudy26
Bpstudy26
ドキュメントの話、しませんか? #428rk01
ドキュメントの話、しませんか? #428rk01
Mongo dbを知ろう devlove関西
Mongo dbを知ろう devlove関西
Markdownでドキュメント作成
Markdownでドキュメント作成
とある Perl Monger の働き方
とある Perl Monger の働き方
3週連続DDDその2 深いモデルの探求(ドメイン駆動設計 第3部)
3週連続DDDその2 深いモデルの探求(ドメイン駆動設計 第3部)
作る人から作りながら運用する人になっていく
作る人から作りながら運用する人になっていく
Yapc2012ltthon
Yapc2012ltthon
RDB経験者に送るMongoDBの勘所(db tech showcase tokyo 2013)
RDB経験者に送るMongoDBの勘所(db tech showcase tokyo 2013)
Rails+Markdownでなにかつくる
Rails+Markdownでなにかつくる
Mrubyの始め方
Mrubyの始め方
Janog31 bof-pattern-sasaki-01
Janog31 bof-pattern-sasaki-01
MariaDBのススメ
MariaDBのススメ
Lineにおけるspring frameworkの活用
Lineにおけるspring frameworkの活用
サンタクロースを支えるIT技術 @M_Ishikawa #yapcasia
サンタクロースを支えるIT技術 @M_Ishikawa #yapcasia
programming camp 2008, Debug
programming camp 2008, Debug
More from masayoshi takahashi
osc2019tokyospring
osc2019tokyospring
masayoshi takahashi
Ruby25: Rubyの1/4世紀
Ruby25: Rubyの1/4世紀
masayoshi takahashi
Code for 選挙とWikidata
Code for 選挙とWikidata
masayoshi takahashi
青空文庫と式年遷宮アーキテクチャ: 青空文庫200周年に向けて
青空文庫と式年遷宮アーキテクチャ: 青空文庫200周年に向けて
masayoshi takahashi
青空文庫テキストフォーマットについて (aozorahack)
青空文庫テキストフォーマットについて (aozorahack)
masayoshi takahashi
Aozorahack20161106
Aozorahack20161106
masayoshi takahashi
aozorahack hackathon #1
aozorahack hackathon #1
masayoshi takahashi
TdX#01 RubyKaigiの作り方
TdX#01 RubyKaigiの作り方
masayoshi takahashi
aozorahackと青空文庫の現状とこれから (OSC 2016 Tokyo/Spring)
aozorahackと青空文庫の現状とこれから (OSC 2016 Tokyo/Spring)
masayoshi takahashi
オープンソースとプラットフォームとお金
オープンソースとプラットフォームとお金
masayoshi takahashi
Webと電子書籍の話
Webと電子書籍の話
masayoshi takahashi
Re:VIEW新パーサ現状確認(2015年2月版)
Re:VIEW新パーサ現状確認(2015年2月版)
masayoshi takahashi
How To Become A Rubyist
How To Become A Rubyist
masayoshi takahashi
新・ReVIEWパーサについて
新・ReVIEWパーサについて
masayoshi takahashi
電子出版はどこを 目指すのか・技術書編
電子出版はどこを 目指すのか・技術書編
masayoshi takahashi
The History of Ruby; 20th Anniversary Ed.
The History of Ruby; 20th Anniversary Ed.
masayoshi takahashi
lldecade2012
lldecade2012
masayoshi takahashi
mruby for embedded systems
mruby for embedded systems
masayoshi takahashi
mrubyのすすめ
mrubyのすすめ
masayoshi takahashi
「執筆のためのエレベータピッチ」のテンプレート
「執筆のためのエレベータピッチ」のテンプレート
masayoshi takahashi
More from masayoshi takahashi
(20)
osc2019tokyospring
osc2019tokyospring
Ruby25: Rubyの1/4世紀
Ruby25: Rubyの1/4世紀
Code for 選挙とWikidata
Code for 選挙とWikidata
青空文庫と式年遷宮アーキテクチャ: 青空文庫200周年に向けて
青空文庫と式年遷宮アーキテクチャ: 青空文庫200周年に向けて
青空文庫テキストフォーマットについて (aozorahack)
青空文庫テキストフォーマットについて (aozorahack)
Aozorahack20161106
Aozorahack20161106
aozorahack hackathon #1
aozorahack hackathon #1
TdX#01 RubyKaigiの作り方
TdX#01 RubyKaigiの作り方
aozorahackと青空文庫の現状とこれから (OSC 2016 Tokyo/Spring)
aozorahackと青空文庫の現状とこれから (OSC 2016 Tokyo/Spring)
オープンソースとプラットフォームとお金
オープンソースとプラットフォームとお金
Webと電子書籍の話
Webと電子書籍の話
Re:VIEW新パーサ現状確認(2015年2月版)
Re:VIEW新パーサ現状確認(2015年2月版)
How To Become A Rubyist
How To Become A Rubyist
新・ReVIEWパーサについて
新・ReVIEWパーサについて
電子出版はどこを 目指すのか・技術書編
電子出版はどこを 目指すのか・技術書編
The History of Ruby; 20th Anniversary Ed.
The History of Ruby; 20th Anniversary Ed.
lldecade2012
lldecade2012
mruby for embedded systems
mruby for embedded systems
mrubyのすすめ
mrubyのすすめ
「執筆のためのエレベータピッチ」のテンプレート
「執筆のためのエレベータピッチ」のテンプレート
Recently uploaded
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
Ryo Sasaki
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
danielhu54
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Yuma Ohgami
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
iPride Co., Ltd.
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
taisei2219
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
Toru Tamaki
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
sugiuralab
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
Toru Tamaki
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
Toru Tamaki
Recently uploaded
(9)
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
Markdownもはじめよう
1.
Markdownも はじめよう 2014/10/26 SphinxCon
JP 2014 株式会社達人出版会/一般社団法人日本Rubyの会 高橋征義 @takahashim
2.
自己紹介 • 高橋征義
• Re:VIEWコミッタ • 株式会社達人出版会代表取締役 • ITエンジニア向け電子書籍の制作・販売 • 一般社団法人日本Rubyの会代表理事 • Sphinx歴はたしなみ程度 • 原稿書くのに使えないかなあ…と調べてみたくらい
3.
4.
本日のお題
5.
Markdown
6.
2日前に発売された WEB+DB PRESS
Vol.83に 「もっと知りたい! Markdown」 という原稿を書きました
7.
本日のお題 •Markdownの概要 •Markdownの方言問題
•Markdown→reST変換
8.
本日のお題 •Markdownの概要 •Markdownの方言問題
•MarkdownをreSTにする
9.
Markdownを 使ったことのない方?
10.
Markdownとは • John
Gruber氏が2004年に開発 • 「Daring Fireball」というブログで有名 • Aaron Swartz氏が協力 • 「読みやすく書きやすい」+(X)HTMLに変換で きる • 開発は10年近く絶賛停止中
11.
記法と処理系の名前 記法処理系 reSTの
場合reST Docutils MDの 場合Markdown Markdown (Markdown.pl)
12.
MarkdownはreSTを参考にしている •1991年: setext
(Ian Feldman) • 1993年: HTML 1.0 • 1995年: HTML 2.0 • 1998年: XML 1.0 / HTML 4.01 • 2001年: XHTML 1.1 •2002年: reStructuredText •2004年: Markdown ※StructuredTextはいつか分からず…
13.
機能面での比較 • (オリジナルの)Markdownに比べると、
reStructuredTextの方が圧倒的にリッチ • 後発なのになぜ?
14.
目的の違い 記法主要な(特徴的な)目的 reST
プログラムのドキュメント (docstrings等) Markdown Webコンテンツ (ブログ記事等) Re:VIEW 紙の書籍 (コンピュータ書等) 広く使われる記法には「強いポリシー」がある (ことが多い。cf. “Opinionated Software”)
15.
【宣伝】Re:VIEWのご紹介 • 一言で言うと「Sphinxみたいなやつ」
• 青木峰郎氏が『Rubyソースコード完全解説』などの書 籍執筆時、自分用に開発し、後にOSS化されたもの(現 在は武藤健志氏がメインのメンテナ) • 知名度では圧倒的にSphinxの方が高いが、HTML、 EPUB、LaTeXの他にも、InDesign(IDGXML)への変換 が可能なため、日本での商業出版の利用例は多い • 達人出版会では基本的にRe:VIEWで制作している • https://github.com/kmuto/review
16.
Markdownの長所 • 読みやすい
& 書きやすい • 「プレーンテキストのメール」 • 複雑で読みづらい記法を使わせない • HTMLが素で書ける • いざとなればだいたい何でも書ける • ツールが充実 • 数は力
17.
Markdownの欠点 • マークアップの制限がきつい
• directiveのような(あると便利でも)文書と して読みづらい記法が許されない • HTMLに頼ると収拾がつかなくなりがち • もうHTMLで書いた方が早いのでは的な • 作者に保守発展させる気がなさそう • 独自拡張の横行→方言問題に
18.
本日のお題 •Markdownの概要 •Markdownの方言問題
•MarkdownをreSTにする
19.
Markdownの処理系 • 山ほどある
• 一言語に複数あるのが当たり前 • Rubyの場合、kramdown、RedCarpet、 RDiscount、Maruku、Blueclothなど • 当然のように全部挙動が違う
20.
Markdownの方言 • 処理系の違い(開発言語の違い)
•記法の解釈の違い (独自解釈) •記法の構文の違い(独自拡張)
21.
記法の解釈の違い • 箇条書きの入れ子問題
• 強調の入れ子問題 • 大文字DIV問題 • リスト中のコメントをどうするか問題 • リストと後続行のインデント問題 • 改行、空行の扱い • その他もろもろ
22.
箇条書きの入れ子 *foo *bar
*buz 基本は4インデントだが、それ以外の インデントの場合が未規定のため、 どうなるかは処理系によってまちまち。
23.
強調の入れ子 *a **b
*a **b** a* b** a* そもそもインラインとして認識されるか それとも「*」と認識されるかどうかから して処理系依存
24.
http://johnmacfarlane.net/babelmark2/?text=*a+**b+*a+**b**+a*+b**+a*
25.
大文字DIVの挙動 <DIV> hi
</DIV> Markdown.plやPHP Markdown Extra ではなぜか<p><div>hi</div></p> となる。Pandoc、RedCarpet、Python- Markdownでは<div>hi</div>
26.
結局何が問題なのか • 処理系が乱立
• 正しい仕様がない • (↑この辺まではよくある話、まあ仕方ない) • 正しい仕様を決めようとしない • そもそものオリジナルの挙動が微妙なのに開発 が止まっており、変更されない • 誰かに引き継いだりもしない
27.
記法の構文の違い • テーブル記法
• コードブロック記法 • 脚注記法 • 絵文字 • チェックリスト • この辺はgithub方言かも 詳しい記法の話は省略します (Markdownのイベントというわけでもないので…)
28.
jgm • John
MacFarlane • Pandoc、peg-markdown、 Babelmark2の作者 • http://johnmacfarlane.net/ 本職はUCBの哲学科の教授(専門は言語哲学や 数理論理学)、というか学科長?らしい • 哲学の先生がHaskellもCもJSも書くUCBやばい • CommonMarkの中心人物の一人
29.
Pandoc • 汎用文書変換器
• 当然のようにreSTにも対応 • Markdownには特にこだわりが • 多様なオプション類 • 詳しくは後ほど • http://johnmacfarlane.net/pandoc/
30.
peg-markdown • Cで書かれたMarkdownパーサ
• 構文はPEGで記述されている • jgmなりの「形式的仕様」 • https://github.com/jgm/peg-markdown
31.
Babelmark 2 •
様々なMarkdown実装の違いを一覧する • Markdown実装はWebサービスAPIになってい て、Ajaxで各サーバから変換結果を取得して表 示する • http://johnmacfarlane.net/babelmark2/
32.
Pandocでのオプション • Pandocで指定できるMarkdownは4種類ある
• markdown (Pandoc独自) • markdown_strict (オリジナルに限定) • markdown_phpextra (PHP Markdown Extra互換) • markdown_github (GitHub互換) • さらに細かい指定も可能
33.
Pandocオプション例1 • hard_line_breaks:
改行を<br/>にする • ignore_line_breaks: 改行を完全に無視する (空白にもせず連結する、東アジア向け?) • autolink_bare_uris: URLをリンクにする • mmd_header_identifiers: MultiMarkdown 互換のヘッダID記法を有効にする
34.
Pandocオプション例2 • yaml_metadata_block:
YAMLで文書冒頭に メタデータが書ける • all_symbols_escapable: あらゆる文字がで エスケープできる(標準は限られた記号のみ) • intraword_underscores: 単語内の「_」を強 調記法と解釈しないようにする • markdown_in_html_blocks: HTMLブロック 内のMarkdown記法を有効にする • footnotes: 脚注を有効にする
35.
Pandocオプション例3 • blank_before_header:
#で始まる見出し行の直前が 空行でなければ見出しにしない • header_attributes: 見出しに属性を付けられる • auto_identifiers: 見出しに自動でidを振る • fenced_code_blocks: GitHubとかのコードブロック 記法を有効にする • line_blocks: reSTの「|」の引用記法を有効にする • fancy_lists: 英字やローマ数字を連番リストにできる • startnum: 連番リストの最初の数値を変えられる • definition_lists: 定義リストを有効にする
36.
Pandocのテーブル記法 • これまた4種類ある
• シンプルテーブル simple_tables • マルチラインテーブル multiline_tables • グリッドテーブル grid_tables • パイプテーブル pipe_tables • table_captions: テーブルのキャプションを有効
37.
Pandocオプション例 • 要するに記法の有無・解釈の違いに対応するた
めにオプションだらけになる • Markdown文書を正しく解釈してもらうにはオ プションも交換する必要がある • つらい世界…
38.
CommonMark • 2014年8月に勃発
• Markdown Discuss MLからの流れかも • Markdownの標準化運動 • 当初Standard Markdownという名前だった • Jeff Atwoodとjgmが中心(?) • 名前が出てるのは2人以外にも数名いる • John Gruberは関わっていない
39.
http://commonmark.org/
40.
Coding Horror •
Jeff Atwoodのブログ • 2009/12/29: Responsible Open Source Code Parenting • “Which leads me to the biggest problem with Markdown: John Gruber.” • 2012/10/25: The Future of Markdown • 標準化の提案 • 5年越しの動き
41.
http://blog.codinghorror.com/responsible-open-source-code-parenting/
42.
http://blog.codinghorror.com/the-future-of-markdown/
43.
CommonMarkの仕様 • 仕様の厳密化
• HTMLへのマッピングとして規定 • オリジナルとは微妙な違いはある • オリジナルから拡張は基本しない • 今後の課題 • でもいくつかこっそり追加してある • PandocのMarkdownぽい • 拡張はなし • markdown_strictでもない
44.
CommonMarkの今後 • 仕様案は10/24にv0.4が公開
• 議論等は掲示板とgithubで進んでいる • 細かい提案は出てるがどうまとめるのか不明 • 少なくともGitHubやStackExchangeの挙動 は変更されていない模様 • ロードマップ非公開、リリース予定時期も不明 • とにかく今後に期待、というところ
45.
本日のお題 •Markdownの概要 •Markdownの方言問題
•MarkdownをreSTにする
46.
PandocでMD→reST • Pandocを使えばMarkdownもreSTにもできる
• 「Markdownで書いてたんだけど…」 「Markdownしか知らないんだけど…」 みたいなことを言われても、Sphinxに取り込め る(はず)
47.
Pandocをはじめよう $ pandoc
-f markdown_github -t rst foo.md
48.
Pandocをさらに拡張 • Markdown+謎の独自記法で書かれた文書を
reSTにしたい!
49.
http://qiita.com/r7kamura/items/faf2189a32e1eaa1a5d4
50.
51.
HTML::Pipelineとか • MarkdownからいったんHTMLを変換
• その変換結果のHTMLに対して独自記法の変換 を行う • HTMLじゃないと使えない…… • TeXとかTeXとか • そこでPandocですよ!
52.
Pandocフィルタ • Pandocは変換結果のASTをJSONに吐き出せる
• Markdown → AST → JSON • さらにJSONを入力にして変換することもでき る • JSON → AST → (reST等) • JSONを加工するフィルタを書けば拡張できる
53.
Pandocフィルタ • 例:
絵文字フィルタ (GitHub風) • とりあえずUnicode絵文字に変換してみる • RubyにはEmotというライブラリがあるので それを使うことに(Python力が低くてすみま せん…)
54.
$ pandoc -f
markdown -t json emoji.md > emoji.json
55.
56.
https://github.com/takahashim/emo_pandoc
57.
$ pandoc -f
markdown -t rst --filter emo_pandoc emoji.md
58.
まとめ • Markdownはいろいろあって大変
• 事前に「どのMarkdown」を決めないと交換 できなくなる危険性 • プロジェクトリーダーはしっかりするべき • 続けるか、後進に任せるか、終わらせるか • Pandocはいろいろすごい • UCBやばい
59.
ついでに(勝手に)宣伝 http://texconf14.tumblr.com/
Download now