AsciiDoc エディタ
動機
以前にオンライン AsciiDoc エディタを web サービスとして公開していましたが、ドメインの失効とともにサイトは閉じました。
CodeMirror を使い Vim / Emacs ライクなキーバインドを実装していたものの、やはり操作感は別物であり不満がありました。
そこで今回は公開サービスではなく、個人用サービスとして機能を簡素化し、エディタから簡単に使えるようにしました。
特徴
変換したファイルを /tmp/memoroux で管理する以外、データの保存は何も行いません。
拡張機能については、今後増やす予定です。
個人用と言ってもネット上に公開はされていますので、気になる方は Heroku の環境変数 USERNAME / PASSWORD を設定することで、Basic 認証を設定できるようにしています。
ブラウザでの使い方
Heroku 上に作成したサイトへアクセスし、AsciiDoc の編集を行います。
左のテキストエリアに入力し、画面上部の convert ボタンにより、右に変換結果が表示されます。
API での使い方
私は Emacs を利用しているので、Emacs での使用例を書きます。
Emacs で以下の関数を定義します。その後、AsciiDoc ファイルを編集しては関数を呼び出し、その時に表示されるアドレスをブラウザで開くことで変換結果を確認できます。
なお Emacs のバージョンは、24.5.1 です。
memoroux-host には、作成した Heroku サイトのアドレスを指定してください。
(defvar memoroux-host "https://(app-name).herokuapp.com") (defun adoc () (interactive) (let ((url-request-method "POST") (url-request-extra-headers '(("Content-Type" . "application/json"))) (url-request-data (json-encode-alist `((id . ,(md5 (buffer-file-name))) (content . ,(buffer-string)) (type . "html")))) (url (concat memoroux-host "/convert"))) (switch-to-buffer (url-retrieve-synchronously url)) (goto-char (point-min)) (re-search-forward "\n\n") (princ (concat memoroux-host (assoc-default 'url (json-read-from-string (buffer-substring-no-properties (point) (point-max)))))) (kill-buffer (current-buffer))))