Develop and Download Open Source Software

Browse CVS Repository

Contents of /mixedmark/mm2xhtml/memo.txt

Parent Directory Parent Directory | Revision Log Revision Log | View Revision Graph Revision Graph


Revision 1.24 - (show annotations) (download)
Tue Jun 12 13:42:26 2007 UTC (16 years, 10 months ago) by ksaito0717
Branch: MAIN
CVS Tags: HEAD
Changes since 1.23: +5 -0 lines
File MIME type: text/plain
fix.

1 ----------------------------------------
2 (2007,06/12)さらに、オリジナルMarkdownと
3 python-markdownの違い。python-markdownでは
4 <div/>が上手く処理されないかもしれない。
5 <div></div>と書けばなんとか行ける。
6 ----------------------------------------
7 (2007,06/04)
8 python-markdownでは、<https://test.org>の
9 表記が上手く<a>タグに変換されないことが判明。
10 httpsだとだめで、httpだと大丈夫。どうしよう。
11
12 前から気が付いていたけど、safariだとmmServer -s5の
13 ときの表示が上手くいかない、PloneのMixedMarkなら
14 大丈夫かと思いきや、定義リストが入ってるとだめに
15 なるかもしれない。いまいち原因がはっきりしない。
16 ----------------------------------------
17 (2007,05/28,2)
18 以下を参考に、tableと定義リストの拡張を書きなおした
19 ほうが良いでしょう。self.md._handleInline(t)のような
20 関数でインラインがちゃんと処理できるようです。
21 <http://k7a.org/2006/oct/30/table-extension-python-markdown/>
22 <http://k7a.org/media/ul/md16/mdx_tables.py>
23 ----------------------------------------
24 (2007,05/28)
25 どういうことか、markdown.pyでは、<div>を
26 正しく扱ってくれていない気がする。より具体的には
27 </div>が<p></div></p>とかに変換されてしまう。
28 どうしよう。いや!!,間違いでした.<!-- -->の
29 扱いが本家のmarkdownとちょっと違っていただけの
30 ことでした.このぐらいは許容範囲内でしょう.
31 けっこう<!-- -->使いまくっていたので,以前の
32 ファイルをチェックしないとだめですね.もう少し
33 詳しく書くと,pythonのmarkdownでは<!--と-->の間
34 に空行は入れられないということ.でないと段落に
35 なってしまう.よく考えるとpythonのmarkdownのほうが
36 良い扱いになっているとも考えられるね.
37
38 それと、リストを表記するときのインデントが4でないと
39 リストの中のリストにならないというのも違っていた。
40 今までインデント2にしていたのが多いのでだいぶ書き
41 なおさないといけないかも。
42 ----------------------------------------
43 (2007,05/25)Distutilsためし中.
44 itex2MMLを拡張モジュールにするわけだが,
45 完全にC言語忘れてる.メモリが溢れたりしないか
46 再確認するべし.
47 ----------------------------------------
48 (2007,05/24)
49 むむ。python-markdownの開発がとどこおりなく
50 進んでいるようだ。また戻してみることも検討して
51 みるべし。そうなってくるとDistutils対応も
52 考えることができそうである。
53 memo <http://www.freewisdom.org/projects/python-markdown/>
54 memo <http://www.python.jp/doc/release/dist/>
55 memo <http://www.python.jp/doc/release/ext/>
56 memo <http://www.okisoft.co.jp/esc/cygwin-15c.html>
57 ----------------------------------------
58 (2007,05/23)
59 RDFをHTMLのheadの中に入れるように変更した。
60
61 -c0, -c1, ...というオプションでチャプター
62 ごとの出力をさせるように変更途中。まだ不完全。
63
64 @(include,url)を処理するためのモジュール作成。
65 でも中身はからっぽ。
66
67 ----------------------------------------
68 Graphvizの機能をmmServerに追加した。
69 linuxならパッケージ、WindowsはGraphvizの
70 本家、MacOSXはちょっと古いみたいなのだが、
71 本家でも紹介されている
72 <http://www.pixelglow.com/graphviz/>を
73 使うことを仮定している。しかも、インストール
74 場所はデフォルトの場所だと仮定している。
75 (MacOSXのfinkでgraphvizをインストールしたら、
76 フォントの指定が上手くいかなかった。これは、
77 /usr/X11R6/lib/X11/TTF/からフォントを探す
78 かららしい。)
79
80 ----------------------------------------
81 エンティティが消えるバグを直したと思ったら、
82 文字列中の「&」と「>」と「"」が自動でエンティティに
83 変換されてしまうという不都合がおこっていた。
84 これをスマートに解決する方法がみつからなかった
85 ので、以前のバグも含めてヘナチョコなプログラム
86 で対応した。
87
88 その方法とは半角の&を全角の&に置き換えてから
89 DOMの処理をして処理が終ったらもとにもどす。
90 という方法。それと「>」が自動的にエンティティに
91 変換されてしまうので変換された「&amp;gt;」と
92 「&amp;quot;」を「>」と「"」に戻す。
93
94 このようにヘナチョコなので、全角の&を使った
95 文章(って、この文章がそうだろ)などで微妙な
96 弊害が出る。あと気が付いていないは不都合は
97 ないだろうか?なんとかスマートな方法が見付かれ
98 ば良いのだが…
99
100 ----------------------------------------
101 DOMを使っていろいろ処理するための準備を
102 した.「@(...)」という表記を特別なものとして、
103 この括弧の中にいろいろ入れて処理内容を
104 表現することにする。とりあえずはidとclass
105 属性を付ける処理を実現するべし。
106
107 * @(id,test):現在のテキストを囲んでいる
108 ELEMENTにid="test"という属性を付ける。
109 * @(id1,test):現在のテキストを囲んでいる
110 ELEMENTを囲んでいるELEMENTにid="test"
111 という属性を付ける。
112 * @(id2,test):現在のテキストを囲んでいる
113 ELEMENTを囲んでいるELEMENTを囲んでいる
114 ELEMENTにid="test"という属性を付ける。
115 * @(id2,test):現在のテキストを囲んでいる
116 ELEMENTを囲んでいるELEMENTを囲んでいる
117 ELEMENTを囲んでいるELEMENTに
118 id="test"という属性を付ける。
119 * @(class,test):現在のテキストを囲んでいる
120 ELEMENTにclass="test"という属性を付ける。
121 * @(class1,test):現在のテキストを囲んでいる
122 ELEMENTを囲んでいるELEMENTにclass="test"
123 という属性を付ける。
124 * @(class2,test):現在のテキストを囲んでいる
125 ELEMENTを囲んでいるELEMENTを囲んでいる
126 ELEMENTにclass="test"という属性を付ける。
127 * @(class2,test):現在のテキストを囲んでいる
128 ELEMENTを囲んでいるELEMENTを囲んでいる
129 ELEMENTを囲んでいるELEMENTに
130 class="test"という属性を付ける。
131
132 基本的に@(...)の形式はDOMで言うところの
133 テキストノードに記述されるものとする。
134 ただし、例外として`<img>`タグのalt属性の
135 中にも書くことができることにするかな。
136
137 エラー処理をまったく書いていない。
138
139 バカなので@(...)の形式を正規表現で書く時に
140 バックスラッシュでエスケープした`\@(...)`
141 の形式を除外できなかった。なので、この文章の
142 中で@(...)の説明をする時には全角のアットマーク
143 を使ってる。バカすぎる。
144
145 ----------------------------------------
146
147 &Sum;とか&yen;などのエンティティが消える
148 バグをなんとか直した.
149 エンティティが消えるのはDOMの標準の動作の
150 ようで,javaのxercesならDocumentBuilderだか
151 のAPIでエンティティの処理をしないように設定
152 できるのだが,Pythonのminidomではよくわから
153 なかった.それで,むりむりMixedMarkで使い
154 そうなエンティティをDTDで宣言して,正しく
155 処理されるようにした.あまり美しくない.
156
157 ----------------------------------------
158
159 MarkdownとiTexの数式を使ったテキストをxhtmlに変換する
160 スクリプト
161
162 cssの設定で、media属性を付けることができるように
163 改良すべきでしょう。(当然省略も可)
164
165 javascriptが指定できるようにしたいね。
166
167 ついでにmetaタグも入れれるようにしたいけど、
168 ここまでくるとmizedmarkのploneコンテンツの
169 メタデータ多すぎやしないか?
170
171 bodyのonload属性もたまにコントロールしたくなるね。
172
173 以下のものが必要で,OSにインストールされて
174 いなければならない.
175 ・perl
176 ・python
177 ・cwm(Python Semantic Web)
178
179 今のプログラムだとcwmが必須になっているので、
180 オプショナルということにするか、パッケージに
181 最初から入れてあげないと面倒すぎるかも
182
183 itex2MMLはmozillaのページで紹介されているやつ(i)が本家だが,
184 MovableType用にメンテナンスされている方(ii)のitex2MMLが
185 良いようである.
186
187 (i)http://pear.math.pitt.edu/mathzilla/itex2mml.html
188 (ii)http://golem.ph.utexas.edu/~distler/blog/itex2MML.html
189
190 この4つの変換プログラムを実行する順番がポイント
191 今のところ(1)pukiwikiDL,(2)pukiwikiTable.py,
192 (3)itex2MML,(4)Markdown.plの順番が妥当な気がする.
193
194 3,4の順番はMovableTypeのやつでそうしてるので、
195 それで良いはず。
196
197 -----------------------------------------------------------
198 テキストをDefinition List(定義リスト:
199 <dl><dt></dt><dd></dd></dl>)に変換するPythonモジュール.
200 基本的にpukiwikiの文法にしたがう.ただ,まだまだ
201 pukiwikiの定義リストの全機能にはとどかない.
202 1)多段のリストはまだサポートしていない.
203 2)~を使って,段落を<dd>に含めることができない.
204
205 http://pukiwiki.sourceforge.jp/?整形ルール
206
207 一応,setup.pyも作った
208 python setup.py install
209 とやってインストール
210
211 -----------------------------------------------------------------------
212 以下pukiwikiの定義リストの整形ルールのコピペ。
213 でも,これは厳密に守っているわけではない.
214
215 : 定義語 | 説明文
216
217 行頭を : で始め、| 記号で区切ると、定義リストになります。
218 定義リストは :、::、::: の3段階あります。定義リストの定義語、
219 説明文は省略することができます。複数の連続した定義リストを記述し、
220 2つ目以降の定義語を省略することで1つの定義語に対する複数の説明文を
221 記述することができます。
222
223 * 行中に | がないと定義リストにはなりません。
224 * 定義語・説明文は、インライン要素のみ記述することができます。
225 * 定義リストは、他のブロック要素の子要素になることができます。
226 他のリスト構造の子要素にする場合は、レベルを1段増やして記述します。
227 引用文の子要素にする場合は、レベルを増やさずに記述します。
228 * | の直後に ~ を記述すると段落を子要素にすることができます。
229 * 定義リストは、定義リストの次の行に他のブロック要素を記述することで、
230 他のブロック要素を子要素にすることができます。
231 -----------------------------------------------------------------------
232 テキストを表に変換するPythonモジュール
233 基本的にpukiwikiの文法にしたがう.
234 http://pukiwiki.sourceforge.jp/?整形ルール
235 改良点として,一つの表に|と,の両方が使える.
236 意図は,形式の表に|形式の書式が使えるようにする。
237 結構pukiwikiとの互換性も高いと思う。
238
239 一応,setup.pyも作った
240 python setup.py install
241 とやってインストール
242
243 -----------------------------------------------------------------------
244 以下pukiwikiの表の整形ルールのコピペ
245
246 表組み ?
247
248 | インライン要素 | インライン要素 |
249
250 行頭から | でインライン要素を区切ることで表組みになりま
251 す。
252
253 ・ 各要素の先頭に下記の記述子を指定できます。
254
255 LEFT:
256 CENTER:
257 RIGHT:
258 BGCOLOR(色):
259 COLOR(色):
260 SIZE(サイズ):
261
262 □ 要素の表示位置及び背景色・文字色・文字サイズ(px
263 単位)を指定します。デフォルトは左寄せになります
264
265 表組みの 各セルの要素の配置に 関するサンプル
266 左寄せ センタリング 右寄せ
267 右寄せ 左寄せ センタリング
268 ・ 行末にcを記述すると、書式指定行となります。書式指定
269 行では、次の記述子が指定できます。
270
271 LEFT:
272 CENTER:
273 RIGHT:
274 BGCOLOR(色):
275 COLOR(色):
276 SIZE(サイズ):
277
278 □ 記述子の後ろに数値を記述すると、セル幅がpx単位
279 で指定できます。
280
281 ・ 行末にhを記述すると、ヘッダ行(thead)になります。
282 ・ 行末にfを記述すると、フッタ行(tfoot)になります。
283 ・ セル内のインライン要素の先頭に~を付けると、ヘッダ
284 (th)になります。
285 ・ セル内に > を単独で記述すると右のセルと連結します
286 (colspan)。
287 ・ セル内に ~ を単独で記述すると上のセルと連結します
288 (rowspan)。
289
290 ・ 表組みは、他のブロック要素の子要素になることができ
291 ます。
292 ・ 表組みは、他のブロック要素を子要素にすることができ
293 ません。
294
295 ?
296
297 CSV形式の表組み ?
298
299 ,データ,データ,?
300
301 行頭でカンマ(,)を記述し、インライン要素をカンマ区切りで
302 記述すると表組みになります。
303
304 ・ インライン要素はダブルクォーテーション(")で囲むこと
305 ができます。ダブルクォーテーションで囲むことで、カ
306 ンマ(,)を含むインライン要素を記述できます。
307 ・ ダブルクォーテーション(")で囲んだデータの中で、ダブ
308 ルクォーテーションを2つ("")続けることで、ダブルクォ
309 ーテーション(")を含むインライン要素を記述できます。
310 ・ インライン要素の代わりにイコールを2つ(==)記述すると
311 、colspanを意味します。
312 ・ インライン要素の左に1つ以上の半角空白文字を記述する
313 と右寄せに、インライン要素の左右に1つ以上の半角空白
314 文字を記述するとセンタリングになります。
315
316 ・ 表組みは、他のブロック要素の子要素になることができ
317 ます。
318 ・ 表組みは、他のブロック要素を子要素にすることができ
319 ません。
320
321

Back to OSDN">Back to OSDN
ViewVC Help
Powered by ViewVC 1.1.26