history

青木日記 RSS

<前の日 | この月 | 次の日>

2005-11-26

Parsec

Haskell のパーサコンビネータがやばいくらい面白い。これはいいなあ。 花谷さん訳の「Parsec, 高速なコンビネータパーサ」を見ながらやってます。

http://www.lab2.kuis.kyoto-u.ac.jp/~hanatani/tmp/Parsec.html

(22:50)

Text.Html

Haskell 標準ライブラリの Text.Html の出力がなんか嫌だ。 エレメントに大文字使うな! インデントなんてせんでいい!

~ % cat html.hs
 
import Text.Html
 
main = putStr . show $
        [ (h1 $ stringToHtml "string"), (p $ stringToHtml "body") ]
 
~ % ghc-6.4.1 -package text html.hs -o html && ./html
<H1>
   string
</H1>
<P>
   body
</P>

この pretty print を止める方法はないものか……。

(22:58)

Text.Html (2)

お願いだから dt に bold を入れないでください。

(23:18)

Text.Html (3)

おいおいおい、href 作っても URL はエスケープしてくれないのかよ。 なんだよそれ。ほとんどそれだけを当てにしてライブラリ使ってたのに。

Text.Html 捨て!

Network.URI

URI を Network の下に置くのはいかがなものか。

それはともあれ、URL が含まれてるテキストを Parsec でパースしたいんだけど、 なんかうまい方法はないのだろうか。こんなのしか思いつかないよ……。

url = do a <- string "http"
         b <- option "" (string "s")
         c <- string "://"
         d <- many1 urlChar
         return $ concat [a,b,c,d]
 
urlChar = alphaNum <|> oneOf ";/?:@&=+$,-_.!~*'#%"  -- omit '(' and ')'

(02:53)

成果物

とりあえず今日の成果

~/c/xxxxxx % cat src
= テストページ
 
普通のパラグラフな感じで
 
まあ普通の WikiName だったり http://www.example.com だったり
 
* 箇条書き
* あいてむ
* アイテム
 
# 番号付きだ
# ナンバー
 
:単語:説明かもしれない
:Alpha:DEC
:SPARC:Sun
:Itanium:Intel
:Opteron:AMD
 
~/c/xxxxxx % nkf -e src | ./compile
<h1> テストページ</h1>
<p>普通のパラグラフな感じで</p>
<p>まあ普通の <a href="WikiName.html">WikiName</a> だったり <a href="http://www.example.com">http://www.example.com</a> だったり</p>
<ul><li> 箇条書き</li>
<li> あいてむ</li>
<li> アイテム</li>
</ul>
<ol><li> 番号付きだ</li>
<li> ナンバー</li>
</ol>
<dl><dt>単語</dt>
<dd>説明かもしれない</dd>
<dt>Alpha</dt>
<dd>DEC</dd>
<dt>SPARC</dt>
<dd>Sun</dd>
<dt>Itanium</dt>
<dd>Intel</dd>
<dt>Opteron</dt>
<dd>AMD</dd>
</dl>

うーむちょっと余分な空白が……。

(03:06)

本日のツッコミ(全6件) [ツッコミを入れる]
向井 (2005-11-27 00:13)

それ以前に Text.Html は HTML 3.2 なのが……。
そろそろ 4.x か XHTML になってほしいところではありますが。

青木 (2005-11-27 02:54)

あ、やっぱりそうなんですか。
このへん誰も使ってないんですかねえ。

向井 (2005-11-27 15:29)

補足ですが、 WASH を使えば xhtml が生成されます。

青木 (2005-11-27 19:24)

なるほど。WASH のほうがよさげですね。
できるだけ外部ライブラリは使いたくなかったんですが、
これはしょうがないかなあ。

shelarcy (2005-11-27 21:18)

実は個人的な XHTML 対応版があります。積極的に開発陣にアピールしないと置き換えられなそうですが……
http://www.cs.chalmers.se/~bringert/darcs/haskell-xhtml/

shelarcy (2005-11-27 21:20)

あっ、Bj&#246;rn Bringert さんによる、ね。
> 個人的な XHTML 対応版

名前
メールアドレス

<前の日 | この月 | 次の日>
2002|04|05|06|07|08|09|10|11|12|
2003|01|02|03|04|05|06|07|08|09|10|11|12|
2004|01|02|03|04|05|06|07|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|04|05|06|09|10|
2009|07|
2010|09|

Copyright (c) 2002-2007 青木峰郎 / Minero Aoki. All rights reserved. LIRS