org-modeのテキストをqiitaに投稿するgemを作ってみた

![Mac OS X-10.13.3](<https://img.shields.io/badge/MacOSX-10.13.3-brightgreen>) ![ruby-2.7.0p0](<https://img.shields.io/badge/ruby-2.7.0p0-brightgreen>) ![qiita\_org version](<https://img.shields.io/badge/qiitaorg-0.1.8-brightgreen>)

# はじめに


qiita\_orgはQiitaにemacs org-modeで書いたテキストを投稿するgemです．記事の作成から投稿までをcuiでできたらいいなという考えのもと作成しました．

この記事ではqiita\_orgの使用例，インストールと初期設定の方法を書いています．qiita\_orgのコマンドについては[https://qiita.com/yamatoken/items/9314161758e778fd82c0](<https://qiita.com/yamatoken/items/9314161758e778fd82c0>)を参照してください．

注意点:command\_lineを使用しているのでrubyのバージョンは2.4.0以上にしてください．また，emacsのバージョンは26.3以上をお勧めします．

windowsでは以下のような環境で動作の確認はできています．

![OS: Windows 10 home](<https://img.shields.io/badge/Windows10-home-brightgreen>) ![Ubuntu 20.04.1](<https://img.shields.io/badge/Ubuntu-20.04.1-brightgreen>) ![ruby-2.7.1p83](<https://img.shields.io/badge/ruby-2.7.1p83-brightgreen>) 

ただし，qiita template実行時にMacOSでは'n'を入力してください．

# 使用例

まず，org-modeの投稿用テンプレートを取得します．'qiita template'とコマンドを打ち，環境を書き込むかを決めtemplate.orgを作成します．![img](//qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/612049/76dc9d92-3a77-5523-7a21-571f691402bb.png)

すると，このようなorgが作成されます．![img](//qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/612049/4a38e62f-9cae-1bf1-ee51-080706c64f6f.png)

ここのtitle,tagをqiitaに載せる用のものに変更してあとは従来通り本文を書くだけ．

本文が作成できたら，あとは投稿用のコマンドを実行するだけ．試しに限定共有投稿へ投稿してみるとこんな感じ．![img](//qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/612049/3f7179f4-e150-7a63-b8ba-e936b925d7be.png)

ズラズラーっと出ますが，設定がちゃんとできていれば投稿が完了し，Safariで投稿したページが開きます．

投稿した記事にはSouceとしてどこのディレクトリに元のorgテキストがあるか表示されるので，少し前の記事を編集したい時でも便利なはず．．．

# インストール方法

```bash
gem install qiita_org
```

qiitaとうちコマンド一覧が表示されて入れば，無事インストール完了．

# 初期設定

## pandocのインストール

macなら

```bash
brew install pandoc
```

ubuntuなら

```bash
sudo apt update
sudo apt install pandoc
```

## 設定ファイルの作成

```bash
qiita config global
```

とし，設定ファイルをホームディレクトリに作成する．

## Qiitaのアクセストークンの作成方法と設定ファイルへの書き込み

[<https://qiita.com/settings/applications>](<https://qiita.com/settings/applications>)にて

個人用アクセストークンの'新しくトークンを発行する'をクリック．![img](//qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/612049/de93b61e-b42d-8364-7282-ee1bdbd572ad.png)

アクセストークンの説明を書き，スコープのところは画像のように全てにチェックを入れる．その後発行をおす．![img](//qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/612049/7012077d-fba8-e823-d29c-dc93939b4d6b.png)

ページが移動すると個人用アクセストークンのところにアクセストークンが表示されているので，コピーしてください．（この文字列はページを移動すると再表示できなくなるので注意してください．）

ターミナルに戻り，以下のように実行．

```bash
qiita config global access_token 'your accesstoken'
```

'your accesstoken'のところには先ほどコピーしたアクセストークンをペーストしてください．

## 名前の登録

```bash
qiita config global name 'your name'
```

## メールアドレスの登録

```bash
qiita config global email 'your email'
```

## QiitaTeamURLの登録

'teams'というoptionを使うために必要なので，所属しているQiitaTeamがあるのならこの設定を行なってください．なければ設定しなくて大丈夫です．

```bash
qiita config global teams_url 'https://foge.qiita.com/'
```

URLは最後に'/'をつけるのを忘れないように注意してください．

# ox-qmdの設定

ox-qmdについて詳しくは下記の記事を見てください．参照:[Org-modeからQiita準拠のMarkdownをexportするパッケージを作ってみました](<https://qiita.com/0x60df/items/3cde67967e3db30d9afe>)

[<https://github.com/0x60df/ox-qmd>](<https://github.com/0x60df/ox-qmd>)のox-qmd.elを'~/.emacs.d/site\_lisp'に作成してください．

emacsへのPATHを通すには，init.elに以下のように書き足してください．

```el:init.el
;; elファイルの置き場所を設定 
(setq load-path (cons "~/.emacs.d/site_lisp" load-path))

...

(require 'ox-qmd)
(add-to-list 'ox-qmd-language-keyword-alist '("ruby" . "ruby"))
```

# localの設定ファイルを作る方法

複数のTeamに所属している場合や，ディレクトリごとにメールアドレスを設定したい場合があればlocalの設定ファイルを指定できます．

設定ファイルを作りたいディレクトリにて，

```bash
qiita config local set
```

とし，上記の初期設定と同じように書き込んでいくとできます．

------
 - **source** ~/Github/grad_research_20s/yamato/test/qiita_org_manual.org