Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/cognitom/shinkan.today
「新刊トゥデイ」
https://github.com/cognitom/shinkan.today
openbd
Last synced: 3 months ago
JSON representation
「新刊トゥデイ」
- Host: GitHub
- URL: https://github.com/cognitom/shinkan.today
- Owner: cognitom
- Created: 2017-01-31T17:05:59.000Z (almost 8 years ago)
- Default Branch: master
- Last Pushed: 2023-04-18T04:21:30.000Z (over 1 year ago)
- Last Synced: 2024-04-14T15:49:53.744Z (9 months ago)
- Topics: openbd
- Language: JavaScript
- Homepage: http://shinkan.today
- Size: 131 MB
- Stars: 14
- Watchers: 4
- Forks: 1
- Open Issues: 10
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
![新刊トゥデイ](src/images/ogp-image.png)
> 日々新しい本を探す活字中毒な人のため、新刊情報を淡々と表示するサイト## 情報ソース
現在対応している書籍データベースは次の通りです。
- [openBD](https://openbd.jp)
## 開発状況・バグ報告
[イシューリスト](https://github.com/cognitom/shinkan.today/issues)を見てください。バグを発見した場合も、こちらに報告するか、プルリクエストをどうぞ。
## 開発者向け情報
### ディレクトリ構成
- `lib/`: データ更新と、フロントエンドで使うライブラリ (単体テスト可能なもの)
- `src/`: フロントエンドのコードのソース
- `_layouts`: Jekyllのテンプレート
- `tag`: Riotのタグファイル (コンポーネント)
- `dist`: ここに生成したファイルは、`gh-pages`ブランチにデプロイされる
- `book`: 書籍の詳細ページのためのMarkdownファイル。
- `data`: 日付ごとの書籍データを格納したjsonファイルなど。### デプロイの流れ
詳細は、npm scriptsと、[update.js](update.js)を参照。
1. ビルド
- `src`ディレクトリの中身を、`dist`に`rsync`(一部拡張子を除く)
- `rollup`で、`main.js`と`book.js`をそれぞれバンドル。[rollup.config.js](rollup.config.js)参照
- `postcss`で、`global.css`を処理
2. データ更新
- openBDから、ISBN全件(`/coverage/`)を取得
- `ignore.txt`に存在するISBNを除外
- openBDに書誌データの詳細を問い合わせ
- 2週間より前の発売日のものを、`ignore.txt`に追記
- それ以外のものは、Markdown(のフロントマッタ)に吐き出し
- 同時に、日付ごとに振り分けて、jsonファイルに
- さらに、前後2週間 + 2週間についてのインデックスファイルも生成 (各日2件までの書籍データの一部のみ)
3. デプロイ
- GitHub Pagesへデプロイ### 構成のポイント
- 「シェア」できることが必須なので、OGPが使えるよう、書籍ごとに静的なページを用意した。ブランチを少しでも軽くしたいので、HTMLに展開するのではなく、Markdownのフロントマッタに入れている。(HTML化はGitHub側がやってくれる)
- 毎度全件(80万件)の書籍データをダウンロードすると時間がかかってしまうので、2週間以上前に発売された書籍のISBNについては`ignore.txt`ファイル内にキャッシュ。毎日の更新では、ここに含まれないデータのみを取得している。今のところ、1万件以内に収まっている。
- 毎日更新は、Travisのcron jobで自動実行。## ライセンス
AGPL © 2017 Tsutomu Kawamura