Bye Bye Moore

PoCソルジャーな零細事業主が作業メモを残すブログ

elnodeを使えば...EmacsをWEBサーバ化できる

Emacs勢は何でもEmacsでやりたがります。
当然WEBサーバだって作りたがるわけです。

最初の例_単独で駆動させる

(defun my-elnode-hello-world-handler (httpcon)
   (elnode-http-start httpcon 200 '("Content-Type" . "text/html"))
   (elnode-http-return 
       httpcon 
       "<html><body><h1>Hello Elnode!!</h1></body></html>"))
(elnode-start 'my-elnode-hello-world-handler :port 8028 :host "localhost")
M-x eval-buffer

これでブラウザで確認できます。

M-x elnode-stop<RET>8028

で止められます。
この形式だと、

$ emacs -l -p app.el

で呼び出すだけで実行可能です。
この場合はemacsを閉じると止まります。

次の例_ちゃんとemacs-lispっぽく書く

先ほどの例だと全部入りな上、必要な時に呼び出せないので書き換えます。

(defun my-elnode2-handler (httpcon)
   (elnode-http-start httpcon 200 '("Content-Type" . "text/html"))
   (elnode-http-return 
       httpcon 
       "<html><body><h1>Hello Elnode Sample2!!</h1></body></html>"))
M-x eval-buffer

の後、

M-x elpa-start<RET>my-elnode2-handler<RET>8000<RET>localhost

でブラウザで確認できます。
この形式にすれば別のelファイルから呼び出せます。
自動化や便利ツールの作成が捗りますね...ッ!

続きは公式チュートリアルで!

その他の例は公式チュートリアルからどうぞ。

  • Orgモードのファイルをコンパイルして書き込む
  • cssとの連動
  • リクエストのパース

等々、愉快な

elnode/elnode_tutorial.creole at master · nicferrier/elnode · GitHub

elnodeの末恐ろしいこれから

node.jsにインスパイアされたとあって、
実装は全体的にイマドキな感じです。
現行バージョンは0.9.9です。
将来バージョンである1.0.0では

に対応するなどと
脳味噌が溶けてるとしか思えない発言があり恐怖に震えています。