Qiita
ShellScript
curl
org-mode
jq

(8 投稿記念) Qiita に投稿した記事の振り返り (2018/04/14 版)

過去の投稿記事を振り返る目的

2018 年はノウハウを Qiita に投稿することにした。

投稿して自己満足で終わることを避けるため、これまで投稿した記事の振り返りを行う。

そして、今後のコンテンツの内容の充実に役立てるようにしたい。この改善サイクルを回すことにより、 いいねが増える と嬉しい。

投稿した記事のタイトルといいねの数を抽出するサンプルコード

いつも通り、「QIITA_TOKEN」の変数に事前に取得したトークンを設定しておくこととする。

早速、投稿した記事の「ID」と「いいねの数」と「タイトルの文字列」を抽出するコードを作成する。

curl --silent \
  --header "Authorization: Bearer ${QIITA_TOKEN}" \
  "https://qiita.com/api/v2/authenticated_user/items?page=1&per_page=20" \
  | jq -c '.[] | [.id, .likes_count, .title]'

実行例

上記のコマンドを実行すると、以下のような結果が得られる。

["1e05d46545dfe54a287a",1,"Pandoc のバージョンアップで表が壊れて焦った話"]
["6515643c296a6103f45e",3,"(全俺感動)(Jupyter) 紙のノートを超えた Jupyter Notebook を使う方法"]
["e4d4d993628692c55b70",3,"(Python)(jinja2) 設定ファイルの値をテンプレートに埋め込んで出力する方法"]
["de071916fa0278adaf96",1,"(8 投稿記念) Qiita に投稿した記事の振り返り (2018/02/08 版)"]
["f4fa4f99d8a1b85fa521",2,"(Qiita API v2 活用) Qiita の記事を API 経由で取得する方法"]
["27486f34edaf3ff183a1",1,"(Qiita API v2 活用) Qiita のユーザーを API 経由で取得する方法"]
["3862cf968d807497eef8",0,"(Qiita API v2 活用) Qiita のタグ情報を API 経由で取得する方法"]
["0237be30dc6537677b30",3,"(Qiita API v2 活用) 記事を「効率的」に Qiita に投稿する方法"]

いいね順にソートして org-mode の表出力するサンプルコート

次の一手として、いいねが多い順にソートして、Emacs の org-mode の表のフォーマットで出力するコードを作成する。

DATAS=$(curl --silent \
  --header "Authorization: Bearer ${QIITA_TOKEN}" \
  "https://qiita.com/api/v2/authenticated_user/items?page=1&per_page=20" \
  | jq '. | sort_by(-.likes_count)' \
  | jq -c '.[] | [.likes_count, .url, .title]')
i=1
while read -r data; do
  [ ${i} -eq 1 ] && echo "|likes|title|"
  IFS=',' read -r like url title \
    <<< "$(echo ${data} | jq -r .[] | paste -s -d ',')"
  echo "|${like}|[[${url}][${title}]]|"
  i=$((i+1))
done <<EOF
${DATAS}
EOF

実行例

上記のコードを実行すると、以下のような出力が得られる。

likes title
3 (全俺感動)(Jupyter) 紙のノートを超えた Jupyter Notebook を使う方法
3 (Python)(jinja2) 設定ファイルの値をテンプレートに埋め込んで出力する方法
3 (Qiita API v2 活用) 記事を「効率的」に Qiita に投稿する方法
2 (Qiita API v2 活用) Qiita の記事を API 経由で取得する方法
1 Pandoc のバージョンアップで表が壊れて焦った話
1 (8 投稿記念) Qiita に投稿した記事の振り返り (2018/02/08 版)
1 (Qiita API v2 活用) Qiita のユーザーを API 経由で取得する方法
0 (Qiita API v2 活用) Qiita のタグ情報を API 経由で取得する方法

これで org-mode の表出力ができるようになった (ちょっと、力技になったが、、、)。

自分の記事のタイトルといいねの数の抽出結果の分析

Python 系の記事を書くと「いいね」がもらえる噂を聞いたので、Python が絡む記事を投稿してみたところ、ShellScript 関連の記事を一気に追い抜いてしまった。

特に Jupyter Notebook の記事は大躍進。きがついたら、「Jupyter Notebook」から「Jupyter Lab」に進化していた。

上記の記事は、シェルスクリプトでスマートにコントリビューションを抽出していて良い記事だと思っていたが、こうやってみると反響が少ない。

分析を踏まえた今後のアクションプラン

さて、今後の方針についてまとめる。

  • 記事数を 10 記事に増やす
  • 投稿した記事のグルーピングを行う
  • 10 記事投稿した段階で、github でも公開を行う