.. -*- mode: RST -*- .. RST2S5FLAGS=--theme-url=ui/scala_gfx =============== 第3回社内勉強会 =============== ---------------------- reStructuredText勉強会 ---------------------- これは何? ========== - テキストドキュメントの文書フォーマットの一つ - こんな感じ - `ソース <03reStructuredText.txt>`_ 何が嬉しいの? ============== - ツールを使って変換できる - rst2html - そのままウェブページとして公開 - スタイルシートを予め用意しておけば楽チン - rst2s5 - プレゼンができます → `デモ <03reStructuredText.x.html>`_ - S5の話は後ほど - rst2latex - 論文っぽくできる - 印刷の時にいいかも - rst2xml - プログラムとかXSLT作って自由に変換 - ソースはただ一つ! - Don't Repeat Yourself!! D・R・Y!! D・R・Y!!(違 - **[これはすごい]** 他には何が嬉しいの? ==================== - ソースが **読める** - メールにそのまま貼れちゃう - reStructuredText形式で書かれていたことに 気付かなかったこともあるほど - **[これはすごい]** ちょっと技術寄りの話 ==================== - 構造化テキスト - マークアップ言語 - テキストに構造を与える - テキストに意味付けを行う - Pythonの公式文書フォーマット - 先のツール群はPython製の `Docutils(Documentation Utilities) `_ に含まれている - 外観は他の「ほとんどプレーンテキストなフォーマット」に似ている - Wiki類 - はてな記法 - セマンティクスはXMLに似ている 何が違う? ========== - HTML - 手で書くのはちょっと大変 - XML - 人間が手で書くもんじゃない - 当初の「XMLはHuman Readableだ」って話は絶対嘘だと思う - XMLで書かれた設定ファイルとか読みたくないし - マークアップのルールどうする? - YAML - 書くのは比較的楽 - マークアップのルールどうする? - シンプル過ぎて細かいマークアップが大変 何が違う? ========== - DocBook - XMLベース - 書くのが **超本気で** しんどい! - HTMLで足りないと思う要素全部作っちゃいました♪みたいなノリ - XHTML1.1より酷いぉ(^ω^;) - TeX,LaTeX - 書くの難しい - マクロで拡張 - 先輩から受け継ぐ伝統のマクロ - マクロの嵐 - ソース汚い 文書構造 ======== :: ============ 文書タイトル ============ ---------------- 文書サブタイトル ---------------- 第1章 ===== 第1節 ----- ``= - ` : ' " ~ ^ _ * + # < >`` どれ使ってもいい 段落 ==== :: 段落 引用段落 段落 段落 引用段落 段落 - 空行大事 - インデント大事 句要素 ====== +--------------------+----------------+---------+ |reStructuredText |HTML |HTML要素 | +====================+================+=========+ |\*強調\* |*強調* |em | +--------------------+----------------+---------+ |\*\*より強い強調\*\*|**より強い強調**|strong | +--------------------+----------------+---------+ - 他にもあるけどあんま使わないので省略 リスト - 順不同リスト ===================== :: - 項目1 - 項目2 - 項目2-1 - 項目2-2 - 項目3 - 項目1 - 項目2 - 項目2-1 - 項目2-2 - 項目3 ``+ *`` なども使える リスト - 序列リスト =================== :: 1. 項目1 a. 項目1-a b. 項目1-b 2. 項目2 1. 項目1 a. 項目1-a b. 項目1-b 2. 項目2 ``A. I. i. (1) 1)`` なども使える リスト - 定義リスト =================== :: 定義名1 定義1の内容 定義名2 定義2の内容 定義名1 定義1の内容 定義名2 定義2の内容 整形済みブロック ================ :: :: - *整形* **済み** :: - *整形* **済み** 表 == :: +--+--+--+ |a |b |c | +==+==+==+ |1 |2 |v | +--+--+ + |> < |^ | +--+--+--+ +--+--+--+ |a |b |c | +==+==+==+ |1 |2 |v | +--+--+ + |> < |^ | +--+--+--+ シンプルな表 ============ :: == == == a b c == == == 1 2 v > < ^ ===== == == == == a b c == == == 1 2 v > < ^ ===== == - シンプル - 縦につなげることができない リンク ====== :: `Example Web Page `_ `Example Web Page `_ 画像 ==== :: .. image:: ui/scala_gfx/audio_on.png .. image:: ui/scala_gfx/audio_on.png - ``.. ○○::`` ← ディレクティブ - 拡張も可能 その他 ====== 罫線 ``----`` 脚注 ``[1]_`` 自動採番脚注 ``[#]_`` ``[*]_`` コメント :: .. コメント ここもコメント エスケープ \\\*強調じゃない\\\* S5 == - **S** imple **S** tandards-based **S** lide **S** how **S** ystem - 特殊なidやclassを付加した1枚のHTMLがあれば スライド式のプレゼンテーションができる - 資料をそのままウェブで公開できる - 見る方は特殊なプラグイン・ソフトウェアが不要(ブラウザさえあれば見れる) - Q.他にも似たようなツールはいっぱいあるけど何故S5? - A.reStructuredTextから簡単に生成できるから S5 Reloaded =========== - このプレゼンは `S5 Reloaded 1.3b7` を使用してます - モダンブラウザに対応 - 対応ブラウザ - SeaMonkey - Mozilla - Firefox - Netscape - K-Meleon - Epiphany - Camino - Safari - Shiira - Konqueror - Opera 9 - つまり、IE **以外** (笑) - IEは対応作業中らしい S5(S5 Reloaded)の使い方 ======================= - uiフォルダを直下にコピー - rst2s5でS5ファイルを作る - ``--theme-url=テーマ`` でテーマを指定できる - テーマ自作も可能 - テーマ切り替えデモ 注意 ---- - S5 Reloaded は application/xhtml+xml では動かない(><)のでtext/htmlで。 - 拡張子を.xhtmlではなく.x.htmlにしてます 3分で作る即興プレゼンアプリ =========================== - `3分で作る即興プレゼンアプリ `_ - Catalyst ソース:: sub rst2s5 : Local { my ( $self, $c ) = @_; use IO::All; $c->req->param('rst') > io('/tmp/rst'); my $s5 = `rst2s5.py /tmp/rst`; $c->res->body($s5); } 終わりに ======== ご清聴ありがとうございました。 - リンク集 - `reStructuredText `_ - `S5: A Simple Standards-Based Slide Show System `_ - `S5 Reloaded . Enhanced version of the browser-based presentation slideshow system `_ .. raw:: html