QiitaMatome
Qiitaのまとめページジェネレーター
概要
Qiitaの特定ユーザー、特定タグのリンクを一覧化したまとめ記事を生成する。
前提
-
認証不要(認証不要APIである、
GET /api/v2/users/:url_name/items
のみを利用する) -
任意のユーザーの任意の1つのタグに限定してまとめ記事を作成する
※基本的には自分のユーザーのまとめを作ることを想定しています
確認済み環境
- ruby 2.0.0p451 環境にて動作確認済み
サブコマンド
コマンド | ショートカット | 内容 |
---|---|---|
init | i | 設定ファイル( Qiitamatome )を出力 |
matome | m | まとめ記事の生成。実行するためには事前に Qiitamatome を生成、編集する必要がある |
help | h | ヘルプの表示 |
version | v | バージョンの表示 |
設定ファイルについて
RubyのDSLで作成されています。
ファイル名は Qiitamatome
qiitam init
もしくは
qiitam i
でテンプレートを生成できます。
Gemfileのような感覚でご利用ください。
Rubyの内部DSLになっているので、Rubyのコードを利用することも可能です。
例えば、出力ファイルの名前に現在時刻を埋め込んだり、など。
設定ファイル自動生成時の内容
# encoding: utf-8
# Set your qiita user name
# user is required
# user allow only String
user "your value"
# Set your matome target tag name
# tag is required
# tag allow only String
tag "your value"
# Set your matome title
# title is required
# title allow only String
title "your value"
# Set your matome file's output path
# output_file is required
# output_file allow only String
# output_file's default value => "matome.md"
output_file "matome.md"
# Set your matome sort type. you can choose created_at_asc/desc, updated_at_asc/desc, title_asc/desc, likes_count_asc/desc
# sort_type allow only String
# sort_type's default value => "created_at_desc"
sort_type "created_at_desc"
# Set your matome display columns. you can choose :title, :created_at, :updated_at, :likes_count and :no
# display_columns allow only Array
# display_columns's default value => [:no, :title, :created_at, :likes_count]
display_columns [:no, :title, :created_at, :likes_count]
# Set your matome exclude files
# excludes allow only Array
# excludes's default value => []
excludes []
設定項目一覧
設定キー | 必須 | デフォルト | 内容 |
---|---|---|---|
user | ○ | なし | 対象ユーザー |
tag | ○ | なし | 対象タグ |
title | ○ | なし | まとめ記事タイトル |
output_file | ○ | matome.md | 出力パス |
sort_type | × | created_at_desc | まとめ記事内のソート順。詳しくはソート種別参照 |
display_columns | × | [:no, :title, :created_at, :likes_count] | まとめ記事の表示項目指定。指定順に並ぶ。詳しくは表示項目参照 |
exclude | × | [id1, id2...] | 除外記事ID(uuid)を配列で指定。例えば、まとめ記事自信を除外するために指定 |
ソート種別
種別 | 内容 |
---|---|
created_at_asc | 初回投稿日昇順 |
created_at_desc | 初回投稿日降順 |
updated_at_asc | 更新日昇順 |
updated_at_desc | 更新日降順 |
title_asc | 記事タイトル昇順 |
title_desc | 記事タイトル降順 |
likes_count_asc | いいね数昇順 |
likes_count_desc | いいね数降順。つまり人気記事順 |
表示項目
項目名 | 内容 |
---|---|
:title | 記事タイトル。該当記事へのリンクになる |
:created_at | 初回投稿日 「YYYY/MM/DD hh:mi:ss」 フォーマット |
:updated_at | 更新日 「YYYY/MM/DD hh:mi:ss」 フォーマット |
:likes_count | いいね数 |
:no | 連番 |
インストール
Add this line to your application's Gemfile:
gem 'qiita_matome'
And then execute:
$ bundle
Or install it yourself as:
$ gem install qiita_matome
使用手順の例
- 設定ファイル( Qiitamatome )の生成
$ qiitam init
または
$ qiitam i
- 設定ファイル( Qiitamatome )を編集
ユーザー tbpgr の rubocop タグの記事をまとめ記事として出力します。
user "tbpgr"
tag "rubocop"
title "RuboCop まとめ タイトル昇順"
output_file "./matome_title_asc.md"
sort_type "title_asc"
display_columns [:no, :title, :created_at, :likes_count]
# まとめ記事を除外
excludes ['edbfecb6a6789dd54f47']
- まとめ記事作成を実行
$ qiitam matome
または
$ qiitam m
- 結果を確認
$ cat ./matome_title_asc.md
# 内容が表示される
出力サンプル
History
- version 0.0.1 : 2014/07/03 : first release
Contributing
- Fork it ( https://github.com/tbpgr/qiita_matome/fork )
- Create your feature branch (
git checkout -b my-new-feature
) - Commit your changes (
git commit -am 'Add some feature'
) - Push to the branch (
git push origin my-new-feature
) - Create a new Pull Request
補足
- この gem は dslable gem を利用して作成しています
- この gem のテストクラスは rspec_piccolo gem を利用してひな形を生成しています