LoginSignup
1
0

More than 5 years have passed since last update.

CrowiのEmacsクライアント

Posted at

Crowiいいですよね〜。愛用しております。
Webのエディタも使いやすいと思うのですが、がりがり長文かくときは、やっぱり普段使いのもので書きたいということで、Emacsクライアントを作ってみました。

インストール

Github: https://github.com/hirocarma/emacs-crowi

$git clone https://github.com/hirocarma/emacs-crowi
  • crowi.elをEmacsのロードパスの通ったところにおいて下さい。
  • curlが必要。
  • 以下の基本的な設定をinit.elに追加してください。
(require 'crowi)
(setq crowi-access-token "xxxxxxxxxxxxxxx") ; User setting -> API settings
(setq crowi-user "crowi username") ;default (getenv "USER")
(setq crowi-uri "http://hogehoge.com:3000") ;default http://localhost:3000

サポートするAPI

  • usres.list
  • pages.list pages.get pages.update pages.create
  • comments.get comments.add
  • attachments.list attachments.add attachments.remove

使いかた

コマンド 説明
crowi-users-list 新しく作成したバッファにユーザリスト(ユーザ名、電子メール)を出力
crowi-pages-list 新しく作成したバッファにCrowiのページのリストを出力
crowi-pages-get 指定したページを新しく作成したバッファに出力
crowi-pages-update-from-buffer バッファの内容でページを更新
crowi-pages-update-from-file ファイルの内容でページを更新
crowi-pages-from-buffer バッファの内容でページを作成
crowi-pages-from-file ファイルからページを作成
crowi-comments-get 新しく作成したバッファにコメント一覧を出力
crowi-comments-add-from-buffer バッファの内容でコメントを追加
crowi-attachments-download 指定したページの添付ファイルをダウンロード
crowi-attachments-add 指定したページに添付ファイルを追加

補完候補

  • Crowiのパスやファイルを指定する場合は、補完候補を表示します。(completing-read)
    必須ではありませんが、helmないしidoの利用をお勧めします。

  • ページを更新したり、コメントを追加したりするときは、ページを指定する必要がありますが、
    その場合、ページのリストをサーバーから取得して、補完候補として表示します。

  • 新たにページを作成するときは、Crowiのパスを指定する必要があります。
    それぞれ親パスとページ名をそれぞれ別に聞いてきます。
    (少なくとも私の場合)既存のパスのどこかに新規に追加したいことが多いので。

  • 作成先の候補を表示するときは、既存のパスを候補に表示するのに加えて、
    "/user/username/memo/YY/MM/DD"も候補として表示します。

    これはCrowiの 'New'ボタンを押したときの挙動の真似です。

*ファイルからページを作成する場合は、ファイル名(basename)を候補として出します。

取得したページや添付ファイルの保存

  • crowi-markdown-save変数をtに設定すると、
    Markdownファイルを crowi-markdown-save-pathに保存します。

  • 保存する際には、Crowiのパス名を維持します。

例:
Crowi path: /user/taro/memo/hogehoge
crowi-markdown-save-path: ~/wiki

download path -> ~/wiki//user/taro/memo/hogehoge.md
  • 添付ファイルはページ名を先頭につけて保存します。
例:
/user/taro/memo/hogehogeの添付ファイルimage.png
crowi-markdown-save-path: ~/wiki

download path -> ~/wiki//user/taro/memo/hogehoge_image.png

カスタマイズ可能な変数

変数 type default
crowi-uri http://localhost:3000 crowiサーバーのuri
crowi-access-token string なし crowiアクセストークン
crowi-user string getenv "USER" crowiユーザー名
crowi-curl string curl curlコマンド
crowi-curl-options string なし Curlコマンドの追加オプション。各オプションはスペース区切り
crowi-markdown-save boolean nil マークダウンをファイルに保存するかどうか
crowi-markdown-save-path string 〜/ wiki Markdownを保存するパス
crowi-attachment-save-path string 〜/ wiki 添付ファイルを保存するパス

キー割り当て例

  • Markdown modeでキーを割り当てる場合
(add-hook 'markdown-mode-hook
          (lambda () (local-set-key "\C-cu" 'crowi-pages-update-from-file)))

ライセンス

MIT

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0