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 を利用してひな形を生成しています