root/docs/holidays-l/03reStructuredText.txt

Revision 1079, 8.3 kB (checked in by holidays-l, 14 months ago)

added charset into svn:mime-type

  • Property svn:mime-type set to text/plain; charset=utf-8
Line 
1.. -*- mode: RST -*-
2.. RST2S5FLAGS=--theme-url=ui/scala_gfx
3
4===============
5第3回社内勉強会
6===============
7
8----------------------
9reStructuredText勉強会
10----------------------
11
12これは何?
13==========
14
15- テキストドキュメントの文書フォーマットの一つ
16
17- こんな感じ
18
19  - `ソース <03reStructuredText.txt>`_
20
21何が嬉しいの?
22==============
23
24- ツールを使って変換できる
25
26  - rst2html
27
28    - そのままウェブページとして公開
29    - スタイルシートを予め用意しておけば楽チン
30
31  - rst2s5
32
33    - プレゼンができます → `デモ <03reStructuredText.x.html>`_
34    - S5の話は後ほど
35
36  - rst2latex
37
38    - 論文っぽくできる
39    - 印刷の時にいいかも
40
41  - rst2xml
42
43    - プログラムとかXSLT作って自由に変換
44
45- ソースはただ一つ!
46
47  - Don't Repeat Yourself!! D・R・Y!! D・R・Y!!(違
48
49- **[これはすごい]**
50
51他には何が嬉しいの?
52====================
53
54- ソースが **読める**
55
56  - メールにそのまま貼れちゃう
57  - reStructuredText形式で書かれていたことに
58    気付かなかったこともあるほど
59
60- **[これはすごい]**
61
62ちょっと技術寄りの話
63====================
64
65- 構造化テキスト
66- マークアップ言語
67
68  - テキストに構造を与える
69  - テキストに意味付けを行う
70
71- Pythonの公式文書フォーマット
72
73  - 先のツール群はPython製の `Docutils(Documentation Utilities) <http://docutils.sourceforge.net/>`_ に含まれている
74
75- 外観は他の「ほとんどプレーンテキストなフォーマット」に似ている
76
77  - Wiki類
78  - はてな記法
79
80- セマンティクスはXMLに似ている
81
82何が違う?
83==========
84
85- HTML
86
87  - 手で書くのはちょっと大変
88
89- XML
90
91  - 人間が手で書くもんじゃない
92
93    - 当初の「XMLはHuman Readableだ」って話は絶対嘘だと思う
94    - XMLで書かれた設定ファイルとか読みたくないし
95
96  - マークアップのルールどうする?
97
98- YAML
99
100  - 書くのは比較的楽
101  - マークアップのルールどうする?
102  - シンプル過ぎて細かいマークアップが大変
103
104何が違う?
105==========
106
107- DocBook
108
109  - XMLベース
110  - 書くのが **超本気で** しんどい!
111
112    - HTMLで足りないと思う要素全部作っちゃいました♪みたいなノリ
113    - XHTML1.1より酷いぉ(^ω^;)
114
115- TeX,LaTeX
116
117  - 書くの難しい
118  - マクロで拡張
119
120    - 先輩から受け継ぐ伝統のマクロ
121    - マクロの嵐
122    - ソース汚い
123
124文書構造
125========
126
127::
128
129  ============
130  文書タイトル
131  ============
132
133  ----------------
134  文書サブタイトル
135  ----------------
136
137  第1章
138  =====
139
140  第1節
141  -----
142
143
144``= - ` : ' " ~ ^ _ * + # < >`` どれ使ってもいい
145
146段落
147====
148::
149
150  段落
151
152    引用段落
153
154  段落
155
156段落
157
158  引用段落
159
160段落
161
162- 空行大事
163- インデント大事
164
165句要素
166======
167
168+--------------------+----------------+---------+
169|reStructuredText    |HTML            |HTML要素 |
170+====================+================+=========+
171|\*強調\*            |*強調*          |em       |
172+--------------------+----------------+---------+
173|\*\*より強い強調\*\*|**より強い強調**|strong   |
174+--------------------+----------------+---------+
175
176- 他にもあるけどあんま使わないので省略
177
178リスト - 順不同リスト
179=====================
180
181::
182
183  - 項目1
184  - 項目2
185
186    - 項目2-1
187    - 項目2-2
188
189  - 項目3
190
191- 項目1
192- 項目2
193
194  - 項目2-1
195  - 項目2-2
196
197- 項目3
198
199``+ *`` なども使える
200
201リスト - 序列リスト
202===================
203
204::
205
206  1. 項目1
207
208     a. 項目1-a
209     b. 項目1-b
210
211  2. 項目2
212
2131. 項目1
214
215   a. 項目1-a
216   b. 項目1-b
217
2182. 項目2
219
220``A.  I.  i.  (1)  1)`` なども使える
221
222リスト - 定義リスト
223===================
224::
225
226  定義名1
227    定義1の内容
228
229  定義名2
230    定義2の内容
231
232定義名1
233  定義1の内容
234
235定義名2
236  定義2の内容
237
238整形済みブロック
239================
240::
241
242  ::
243
244    - *整形* **済み**
245
246::
247
248  - *整形* **済み**
249
250
251==
252::
253
254  +--+--+--+
255  |a |b |c |
256  +==+==+==+
257  |1 |2 |v |
258  +--+--+  +
259  |>  < |^ |
260  +--+--+--+
261
262+--+--+--+
263|a |b |c |
264+==+==+==+
265|1 |2 |v |
266+--+--+  +
267|>  < |^ |
268+--+--+--+
269
270シンプルな表
271============
272::
273
274  == == ==
275  a  b  c
276  == == ==
277  1  2  v
278  >  <  ^
279  ===== ==
280
281== == ==
282a  b  c
283== == ==
2841  2  v
285>  <  ^
286===== ==
287
288- シンプル
289- 縦につなげることができない
290
291リンク
292======
293::
294
295  `Example Web Page <http://example.com>`_
296
297`Example Web Page <http://example.com>`_
298
299画像
300====
301
302::
303
304  .. image:: ui/scala_gfx/audio_on.png
305
306.. image:: ui/scala_gfx/audio_on.png
307
308- ``.. ○○::`` ← ディレクティブ
309- 拡張も可能
310
311その他
312======
313
314罫線
315  ``----``
316
317脚注
318  ``[1]_``
319
320自動採番脚注
321  ``[#]_``
322  ``[*]_``
323
324コメント
325  ::
326
327    .. コメント
328       ここもコメント
329
330エスケープ
331  \\\*強調じゃない\\\*
332
333S5
334==
335
336- **S** imple **S** tandards-based **S** lide **S** how **S** ystem
337- 特殊なidやclassを付加した1枚のHTMLがあれば
338  スライド式のプレゼンテーションができる
339
340  - 資料をそのままウェブで公開できる
341  - 見る方は特殊なプラグイン・ソフトウェアが不要(ブラウザさえあれば見れる)
342
343- Q.他にも似たようなツールはいっぱいあるけど何故S5?
344
345  - A.reStructuredTextから簡単に生成できるから
346
347S5 Reloaded
348===========
349
350- このプレゼンは `S5 Reloaded 1.3b7` を使用してます
351- モダンブラウザに対応
352
353  - 対応ブラウザ
354
355    - SeaMonkey
356    - Mozilla
357    - Firefox
358    - Netscape
359    - K-Meleon
360    - Epiphany
361    - Camino
362    - Safari
363    - Shiira
364    - Konqueror
365    - Opera 9
366
367  - つまり、IE **以外** (笑)
368  - IEは対応作業中らしい
369
370S5(S5 Reloaded)の使い方
371=======================
372
373- uiフォルダを直下にコピー
374- rst2s5でS5ファイルを作る
375
376  - ``--theme-url=テーマ`` でテーマを指定できる
377  - テーマ自作も可能
378
379- テーマ切り替えデモ
380
381注意
382----
383
384- S5 Reloaded は application/xhtml+xml では動かない(><)のでtext/htmlで。
385
386  - 拡張子を.xhtmlではなく.x.htmlにしてます
387
3883分で作る即興プレゼンアプリ
389===========================
390
391- `3分で作る即興プレゼンアプリ <http://localhost:3000/>`_
392
393  - Catalyst
394     ソース::
395
396       sub rst2s5 : Local {
397           my ( $self, $c ) = @_;
398           use IO::All;
399           $c->req->param('rst') > io('/tmp/rst');
400           my $s5 = `rst2s5.py /tmp/rst`;
401           $c->res->body($s5);
402       }
403
404終わりに
405========
406ご清聴ありがとうございました。
407
408- リンク集
409
410  - `reStructuredText <http://docutils.sourceforge.net/rst.html>`_
411  - `S5: A Simple Standards-Based Slide Show System <http://meyerweb.com/eric/tools/s5/>`_
412  - `S5 Reloaded . Enhanced version of the browser-based presentation slideshow system <http://www.netzgesta.de/S5/>`_
413
414.. raw:: html
415
416   <script type="text/javascript">
417   var head = document.getElementsByTagName('head')[0];
418   var configuration = {tranSitions:true,
419                        fadeDuration:500,
420                        incrDuration:250,
421                        autoMatic:false,
422                        playLoop:true,
423                        playDelay:10,
424                        audioSupport:true,
425                        audioVolume:100,
426                        audioError:true,
427                        audioDebug:false};
428   for (var name in configuration) {
429       var meta = document.createElement('meta');
430       meta.setAttribute('name', name);
431       meta.setAttribute('content', configuration[name]);
432       head.appendChild(meta);
433   }
434
435   var e=document.getElementsByTagName('ul');
436   for (var i = 0; i < e.length; ++i) {
437      e[i].className += ' incremental';
438      // e[i].className += ' scale fs90';
439   }
440
441   try {
442       var style = document.createElement('style');
443       style.innerHTML = ['* {font-family: "MS PGothic",sans-serif}'
444                         ,'pre,tt {font-family: "MS Gothic",monospace}'
445                         ,'.slide pre {color:black}'
446                         ,'.slide tt {color:black}'
447                         ,'.slide .incremental, .slide .incremental *, .slide .incremental *:after {visibility: hidden;}'
448                         ].join('\n');
449       head.appendChild(style);
450   } catch(e) {}
451   </script>
Note: See TracBrowser for help on using the browser.