パスワードを忘れた? アカウント作成
657103 journal

ADの日記: テキスト文書マークアッププログラム 3

日記 by AD
お勉強を兼ねてテキスト文書を自動置換してHTMLにValidな形式にするスクリプトを書いてみた…が、不満だった。

そもそもあれは私専用に書いたスクリプトだったから、謎のお約束が多すぎた。主要なHTMLの要素に対してはほぼ参照記号を用意されている仕様だった。

例えば「<p>は*、</p>は:」「<li>は\,</li>は|」といった具合に、すべてを置換に頼っていたスクリプトだった。(それがそもそもの仕様だといえばそれまでだが^^;)

今回書いている変換プログラムはできる限り「置換」を使わない見ようというコンセプトで書いている。特に簡素な文書であれば「置換記号」0個を目指したい。というよりも、リストなどの関係で「置換のためだけの記号」0個を目指すとなりそうだ。

現時点で問題になっているのは、スクリプト作成時にも問題になったものだが、変換前のプレーンテキストに明示記号を配置しなければ事実上判別不能なのが「リストの入れ子」だ。

それと、リストについては順序つきリストを

1.
2.
3.

といった文字列で判別するという形で試作中で
挙列リストについては





という文字列で判別するようにし、自然言語のままでも意図が通じる置換記号にしようと考えている。
処理系が纏まればこれらリストなどの判別記号を設定ファイルを外部から読み込んでユーザー定義の書式で要素を判別できるようにする。
小数点の値などを表記している場合を考慮し、"."や"・"という文字を発見した場合、前後の文字を読みに行きフラグを立てる処理を行う。…ってので今のところ進行中。テストの段階で仕様自体のバグが発見されないことを祈るばかりw

まあ、理想は兎も角、現時点で一番問題になっているのは定義リスト(DL)だ。UL,OLと異なり定義リストは自然言語で意味が通じるような固有の文字列が思い浮かばない。
DL内部のDT,DDについてはLIの応用が出来そうなので問題ないが、DL自身をどう定義しようか^^;

ああ、テーブルについては自然言語でタイプする方が困難なので後回しw
私の第一目標は、文字列で構成された文書をHTMLの要素記号でマークアップすることなので、複雑な(というか、私が使わないw)Tableとかは正直余力があればということになる。

[追記]
文書に対して、あるアルゴリズムだけで要素記号を補えるならばTimはHTMLの要素記号は定義しなかっただろうし、そもそもコンピュータが要素を認識できないから要素記号がある。

どこまで記号を使わないで文書の要素を判別できるか?
また、何処まで自然言語の文書のままで変換できるか?
記号を使うとすれば、何処まで簡略化できるか?

現在の仕様予定では、書式によってはダメダメだ。しかし、このプログラムは変換支援プログラムの予定だから、それでいいのかもしれない。

ああ、仕様がエラーな悪寒。
されどコードは増えてゆくw
この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
  • by __hage (7886) on 2003年10月24日 23時15分 (#420897)
    お勉強ということなんで実例を挙げてもしょうがないかもしれませんが、普通のテキストに見えて実はマークアップしてるという、同じような線を狙ったものにRD [rubyist.net]ってのがあります。個人的にはインライン要素がそれっぽくない(どう見ても普通のテキストには見えない)のが不満なんですけど。ブロック要素はかなりそれっぽいです。

    こいつの処理系は「Just Another RD Site [www2.pos.to]」にあります。

    ご参考までに。

    # ちゃんとA要素閉じてるだろうか。心配(汗
    • by AD (8507) on 2003年10月26日 19時06分 (#421641) ホームページ 日記
      教えていただいてありがとうございます。

      一応前回はPerlで書いたんで、今回はCでとか言うわけのわからない作業をしていますが、処理系は参考にさせてもらいます。でも、Rubyの文法を覚えておかないの処理系もわからんか^^;

      ああ、でも私が作っているブツのコンセプトはRDほど高度なもんじゃないです。単なるコンバータですから。

      久々にプログラムをイジってみてますが、やっぱりプログラミングって半分ぐらい「調べる力」でできてるんですね(できれば半分は優しさでできていて欲しかった。バ○ァリンのようにwww)
      --
      --労使曰く、ひとごとを尽くして神頼み--
      親コメント
      • by __hage (7886) on 2003年11月01日 20時54分 (#425292)
        Cでテキストの処理はすごいです。もう私にはCでそれをやる気力はないですね。以前はCしかなかったんでばりばり書いてましたけど、もうトシだな :)

        プログラミングが調べる力だってのは全くそのとおりだと私も思います。資料を何とか見つけ出す能力、読んで理解する能力などなど、そういう手間をハナから抛棄した「プログラマ」ってのでまともなコードを書けるやつに会った試しがありません。

        優しさはなかなか無理でしょうね。大体において奴らは他人の揚げ足を取るのが得意ですから。細かいミスも見逃さないとてもいやな奴らです。意図を汲まず書いたとおりに解釈しやがるもんなあ :)
        親コメント
typodupeerror

アレゲはアレゲ以上のなにものでもなさげ -- アレゲ研究家

読み込み中...