第3回社内勉強会
reStructuredText勉強会
これは何?
- テキストドキュメントの文書フォーマットの一つ
- こんな感じ
何が嬉しいの?
- ツールを使って変換できる
- rst2html
- そのままウェブページとして公開
- スタイルシートを予め用意しておけば楽チン
- rst2s5
- rst2latex
- rst2xml
- ソースはただ一つ!
- Don't Repeat Yourself!! D・R・Y!! D・R・Y!!(違
- [これはすごい]
他には何が嬉しいの?
- ソースが 読める
- メールにそのまま貼れちゃう
- reStructuredText形式で書かれていたことに
気付かなかったこともあるほど
- [これはすごい]
ちょっと技術寄りの話
- 構造化テキスト
- マークアップ言語
- Pythonの公式文書フォーマット
- 外観は他の「ほとんどプレーンテキストなフォーマット」に似ている
- セマンティクスは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. 項目1
a. 項目1-a
b. 項目1-b
2. 項目2
- 項目1
- 項目1-a
- 項目1-b
- 項目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
> < ^
===== ==
画像
.. 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);
}