Bye Bye Moore

猫マンション建築の野望を胸に零細事業主として資本主義の荒波に漕ぎ出したアラサー男の技術メモ

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では

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