過去の投稿記事を振り返る目的
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
実行例
上記のコードを実行すると、以下のような出力が得られる。
これで org-mode の表出力ができるようになった (ちょっと、力技になったが、、、)。
自分の記事のタイトルといいねの数の抽出結果の分析
Python 系の記事を書くと「いいね」がもらえる噂を聞いたので、Python が絡む記事を投稿してみたところ、ShellScript 関連の記事を一気に追い抜いてしまった。
特に Jupyter Notebook の記事は大躍進。きがついたら、「Jupyter Notebook」から「Jupyter Lab」に進化していた。
上記の記事は、シェルスクリプトでスマートにコントリビューションを抽出していて良い記事だと思っていたが、こうやってみると反響が少ない。
分析を踏まえた今後のアクションプラン
さて、今後の方針についてまとめる。
- 記事数を 10 記事に増やす
- 投稿した記事のグルーピングを行う
- 10 記事投稿した段階で、github でも公開を行う