「新刊トゥデイ」
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
lib
src
test
.gitignore
.travis.yml
README.md
deploy-key.enc
package-lock.json
package.json
rollup.config.js
update.js

README.md

新刊トゥデイ

日々新しい本を探す活字中毒な人のため、新刊情報を淡々と表示するサイト

情報ソース

現在対応している書籍データベースは次の通りです。

開発状況・バグ報告

イシューリストを見てください。バグを発見した場合も、こちらに報告するか、プルリクエストをどうぞ。

開発者向け情報

ディレクトリ構成

  • lib/: データ更新と、フロントエンドで使うライブラリ (単体テスト可能なもの)
  • src/: フロントエンドのコードのソース
    • _layouts: Jekyllのテンプレート
    • tag: Riotのタグファイル (コンポーネント)
  • dist: ここに生成したファイルは、gh-pagesブランチにデプロイされる
    • book: 書籍の詳細ページのためのMarkdownファイル。
    • data: 日付ごとの書籍データを格納したjsonファイルなど。

デプロイの流れ

詳細は、npm scriptsと、update.jsを参照。

  1. ビルド
  • srcディレクトリの中身を、distrsync(一部拡張子を除く)
  • rollupで、main.jsbook.jsをそれぞれバンドル。rollup.config.js参照
  • postcssで、global.cssを処理
  1. データ更新
  • openBDから、ISBN全件(/coverage/)を取得
  • ignore.txtに存在するISBNを除外
  • openBDに書誌データの詳細を問い合わせ
  • 2週間より前の発売日のものを、ignore.txtに追記
  • それ以外のものは、Markdown(のフロントマッタ)に吐き出し
  • 同時に、日付ごとに振り分けて、jsonファイルに
  • さらに、前後2週間 + 2週間についてのインデックスファイルも生成 (各日2件までの書籍データの一部のみ)
  1. デプロイ
  • GitHub Pagesへデプロイ

構成のポイント

  • 「シェア」できることが必須なので、OGPが使えるよう、書籍ごとに静的なページを用意した。ブランチを少しでも軽くしたいので、HTMLに展開するのではなく、Markdownのフロントマッタに入れている。(HTML化はGitHub側がやってくれる)
  • 毎度全件(80万件)の書籍データをダウンロードすると時間がかかってしまうので、2週間以上前に発売された書籍のISBNについてはignore.txtファイル内にキャッシュ。毎日の更新では、ここに含まれないデータのみを取得している。今のところ、1万件以内に収まっている。
  • 毎日更新は、Travisのcron jobで自動実行。

ライセンス

AGPL © 2017 Tsutomu Kawamura