概要
EmacsのOrgモードで作成した記事を、Qiitaに直接投稿するコマンドを作りました。
インストールすると、 M-x org-sync-qiita-at-point
というコマンドが使えるようになります。記事はOrgモードで作成します。ヘッドラインにタイトル、それと本文を書きます1。公開したい記事のヘッドラインにカーソルを合わせ、コマンドを実行します。すると、サブツリー全体がQiitaに投稿されます。最初は限定公開で投稿されます。
なんなら org-sync-qiita-at-point
をC-c 9 にでもバインドしてお使いください。
このコマンドを作成した理由
Orgモードで作成した記事をQiitaに投稿するのであれば、 qiita_org
という立派なコマンドが既にあります2。
1つのファイルで1つの記事 を書く場合、このコマンドがあれば十分です。
これに対し、 1つのファイルに複数の記事 を書けるようにしたいと思いました。そのほうが、Orgモードの真価が発揮されると考えたためです。
そのため、Qiitaの記事のメタ情報(タグ等)をファイルのプロパティではなく、ヘッドラインに付けられたドローワーによるプロパティに格納するようにしました。
* Qiita記事
** 記事のタイトル
:PROPERTIES:
:QIITA-ID: 684fxxxxxd6a9xxxxx3d
:QIITA-PRIVATE: true
:QIITA-TAGS: org
:QIITA-URL: https://qiita.com/ychubachi/private/684fxxxxxd6a9xxxxx3d
:END:
記事の本文です。
** 別な記事のタイトル
:PROPERTIES:
:QIITA-ID: bc8fxxxxx5959xxxxx15
:QIITA-PRIVATE: false
:QIITA-TAGS: emacs,org,qiita
:QIITA-URL: https://qiita.com/ychubachi/items/bc8fxxxxx5959xxxxx15
:END:
別な記事の本文です。
*** サブタイトル
・・・
このようにすることで、一つのOrgファイルにTODOやらメモやらQiitaの記事やらを混在させることもできるようになります。
また、Emacsから離れることなく、Emacsのコマンドで投稿できるようにしました。そのため、QiitaのAPIをEmacs lispで叩くためのプログラムを書くことにしました。
なお、このコマンドは ox-qmd に依存しています3。作者さん、ありがとうございました。
不具合がございましたらGitHubのissueか、ここのコメントでお知らせください。
おまけ
姉妹品 org-sync-gtasks
もどうぞ。
Footnotes
1 本文がカラだと投稿の際エラーになります。