Skip to content

Orgで作成した記事を一瞬でEmacsからQiitaに投稿するコマンド

License

Notifications You must be signed in to change notification settings

ychubachi/org-sync-qiita

Repository files navigation

https://coveralls.io/repos/github/ychubachi/org-sync-qiita/badge.svg?branch=main

org-sync-qiita

Emacs Orgで作成した記事を一瞬でQiitaに投稿するコマンドです。

利用の流れ

アクセストークンを取得する

こちらのページからアクセストークンを取得します。

手順は次のとおりです。

  • 説明に「org-sync-qiita」と書く
  • スコープは「read_qiita」と「write_qiita」
  • 「発行する」ボタンを押す
  • アクセストークンが表示されるので、 復活の呪文のごとく紙にメモする クリップボードにコピーしておきましょう。

記事を書く

Emacsを使い、次のようにOrgで記事を書きます。

* 記事のタイトル
記事の本文です。
** サブタイトル1
記事の本文です。
** サブタイトル2
記事の本文です。

記事を限定公開する

カーソルを「記事のタイトル」のヘッドライン(最初の行)に合わせて M-x org-sync-qiita-at-point と打ちます。

ミニバッファにアクセストークンを入力します。

Qiita access-token: xxxxxxxxxxx (←Qiitaのアクセストークン)

GPGで暗号化して保存するため、パスワードを聞かれますので任意のものを入力してください。

その後、次の通りヘッドラインにプロパティが追加されます。

* 記事のタイトル
:PROPERTIES:
:QIITA-ID: 684fxxxxxd6a9xxxxx3d
:QIITA-PRIVATE: true
:QIITA-TAGS: org
:QIITA-URL: https://qiita.com/ychubachi/private/684fxxxxxd6a9xxxxx3d
:END:

記事の本文です。

「QIITA-URL」プロパティのリンクを開くと「限定公開」で記事が投稿できていることが分かります。

記事を更新する

その後、本文を執筆し、再度 M-x org-sync-qiita-at-point を実行すると記事が更新されます。2回目以降は、カーソルがサブタイトル以下の本文中にあっても正しく動作します。

タグはディフォルトで「org」が付きます。変更するには QIITA-TAGS にカンマ区切りで入力してください。

記事を公開する

記事が完成したら、 QIITA-PRIVATE タグを false に書き換えてください。 M-x org-sync-qiita-at-point を実行すると記事が公開されます。

導入方法

init.elに次の設定を行ってください。MELPA等に登録していないので、GitHubから ダウンロードしてください。

straight.el をお使いの場合

(straight-use-package '(org-sync-qiita :type git :host github
                                       :repo "ychubachi/org-sync-qiita"))

leaf.el と組み合わせるなら

(leaf org-sync-qiita
  :straight (org-sync-qiita :type git :host github
                            :repo "ychubachi/org-sync-qiita"))

カスタマイズ

暗号化したアクセストークンは次のファイルに保存されます。

~/.emacs.d/qiita.plstore

変更したい場合、変数 org-sync-qiita-access-token-file を変えてください。

このファイルはGnuPGで暗号化されます。 次の設定を行うと、パスワードをEmacsのミニバッファで入力でき便利です。

(setq epg-pinentry-mode 'loopback)

制限事項

About

Orgで作成した記事を一瞬でEmacsからQiitaに投稿するコマンド

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published