LoginSignup
16
15

More than 5 years have passed since last update.

Qiitaの特定ユーザー・特定タグの記事をテーブル形式のまとめ記事として生成する QiitaMatome gem を作ってみた

Last updated at Posted at 2014-07-02

Qiita API v1 の終了により QiitaMatome は動作しなくなります

Qiita API v1を2017年9月末に廃止します - Qiita Blog

=> しえるさんがQiita APIv2対応をしてくれました!

Qiitaの特定ユーザー・特定タグの記事をテーブル形式のまとめ記事として生成する QiitaMatome gem を作ってみた

概要

Qiitaの特定ユーザー・特定タグの記事のリンクリストを生成する gem を作ってみました。
需要があるかわかりませんが、せっかく作ったので公開します。

利用前提

gem での提供のため、Rubyの環境が必要です。
単体テストに関してはTravis CIで Ruby1.9, Ruby2.0, Ruby2.1 での動作確認済み。
手動での gem の動作確認はRuby2.0で確認済み。

Qiita APIを利用しますが、ユーザー認証が不要な機能しか使っていないため、認証情報は不要です。

経緯

Qiitaで日々 RuboCop の警告に関するエントリを追加したりしていますが、
この際に RuboCop のエントリをまとめた「まとめ記事」も更新しています。

  • このファイルを手動でメンテナンスしたくない
  • 今後も似たようなまとめページを作った際の手間を小さくしたい

ということで、Qiita の API を利用してまとめ記事を自動生成することにしました。
(上記の URL は既に QiitaMatome gem で自動生成された内容になっています)

機能

特定の1人のユーザーの特定の1つのタグに関するまとめ記事をテーブル構造の Markdown で生成します。

以下を設定可能です

  • タイトル
  • 出力対象のユーザー
  • 出力対象のタグ
  • 出力ファイル名

    ※ファイルパスも含む

  • 出力項目

    No、 タイトル、作成日、更新日、ストック数の中から好きな個数、好きな順番で表示可能)

  • 出力順

    タイトル、作成日、更新日、ストック数 のどれか1つの昇順・降順を選択可能

  • 除外記事の設定

    同一タグの記事のうち、まとめ記事から除外したい記事の uuid を配列で指定します

例えば、Rubyのタグの記事を人気順に記事をまとめたいなら、ストック数の降順で

user            "your user name"
tag             "Ruby"
title           "Ruby 人気記事まとめ"
output_file     "./ruby_stocked_desc.md"
sort_type       "stocked_desc"
display_columns [:no, :title, :stock_count]
# 必要に応じて除外記事を設定
# excludes ['97fc9186e59d607b1ecf', '2872f2a27430372d43e4']

のような設定ファイルを作成します。
そして qiitam matome を実行すればまとめ記事が生成されます。

設定ファイルは Ruby の DSL なので、 Ruby のコードを利用することも可能です。
タイトルや出力ファイルに Ruby 経由でシステム日付を設定したりできます。

サンプル

該当 gem で作成した Markdown のファイルのサンプルが以下です。
私の rubocop タグの記事を記事タイトルの昇順でまとめてあります。

gem のインストール

gemコマンド利用時

gem install qiita_matome

bundler利用時

  • 下記を Gemfile に追加
gem 'qiita_matome'
  • bundler の実行
bundle install

その他利用法の詳細など

GitHubのREADMEを参照ください

補足

  • QiitaのAPIに負荷を掛けすぎない程度に利用していただければと思います。

参照

  • RubyGems

  • GitHub

16
15
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
16
15