SlideShare a Scribd company logo
1 of 20
お手軽Web書誌リストチャレンジ
~List.js, Jekyll, GitHub Pages~
2021年9月Code4Lib JAPANライトニングトーク
東京大学情報システム部・前田 朗
GitHub PagesのJekyllとList.jsを使うこ
とで、簡単にごく小規模なWeb書誌
リストができることに気づきました。
もちろん、他にも手法もありますし、この手法もすでに前例が
ありそうにも思いましたが、自分としては面白かったのでその
話を。
使った技術及びサービス
• List.js
• HTML中のリストを処理するためのJavaScriptライブラリ
• Jekyll
• 静的サイトジェネレーターのひとつ
• テンプレートにデータを渡すことでWebページを生成する
• GitHub Pages
• GitHubの静的サイト公開機能
• Jekyllが組み込みで使える
つくりかた
GitHub Pagesで静的サイトを
•GitHubのリポジトリをGitHub PagesでWeb
サイトとして公開する
•その際、 GitHub Pages組み込みの静的サ
イトジェネレーター Jekyll を使う設定にす
る
あとはGitHubにファイル3つアップするだけ
(サンプルは後述しますが、たいしたことはしていません)
• 書誌テキストデータ
• YAMLで試したが、CSVなどの形式でもいけるはず
• HTML
• 上記書誌テキストデータ用のHTMLテンプレート(Jekyll)記述
• List.jsコードの埋め込み
• キーワード絞り込み対象class属性の指定
• 1ページごとの表示件数の指定
• CSS
• ページネーションのスタイルを整えるだけのスタイル指定
つくってみたサンプルページ
•GitHub Pagesで作ったサンプルページ
•https://maedaak.github.io/listjs_jikyll-test
•サンプルページのソースファイル
•https://github.com/maedaak/listjs_jikyll-test
このページで使っているサンプル図書リストは、国立情報学研究所の
「NII総合目録データベース(NACSIS-CAT)」(CC-BYライセンス)を元にしています。
画面イメージ
ページのメイン部分
書誌リスト中の
1レコード
書誌リスト中の
ページ切り替え
文字列による絞り込み
入力文字列
書誌リストの絞
り込み結果
うちわけ
_data/books.yml
YAML形式書誌データ
• YAMLでフィールドの繰り返し
すらない、単純な書誌リスト
を作成
• CSVなどほかの形式でもい
けるはず
index.html
Jekyllのテンプレートによるリスト生成と、
List.jsによるページネーション・文字列による絞り込み
Jekyllのテンプレートによるリスト生成
• YAMLを<ul><li>でリ
スト化
• 1レコード中の各項
目を<dl><dt><dd>
に当てはたが、この
あたりは自由
• classはキーワード
絞り込み設定で使う
List.jsユーザーコード
• valueNamesで文字列絞
り込み対象classを指定
• pageで1ページごとの表
示件数を指定
• コードはList.jsのサイトに
あったサンプルがベース。
前田の工夫はiOS対応
のコード追加のみ
css/4listjs.css
4listjs.css
• ページネーションの体裁
を整えるだけのCSS
• テストサイトでは、
BootStrapも使っており、
その機能で対応できる
個所はコメントアウトして
いる
関連リンク
• GitHub PagesでJekyll
• https://jekyllrb.com/docs/github-pages/
• List.js
• https://listjs.com
• What’s New? Deploying a Library New Titles Page with
Minimal Programming (code4lib journal)
• https://journal.code4lib.org/articles/12199
ご清聴ありがとうございました

More Related Content

Similar to お手軽Web書誌リストチャレンジ ~List.js, Jekyll, GitHub Pages~

WebAppDev勉強会 #4
WebAppDev勉強会 #4WebAppDev勉強会 #4
WebAppDev勉強会 #4Kohei Noda
 
Git hub pagesで告知サイトを作ってみた
Git hub pagesで告知サイトを作ってみたGit hub pagesで告知サイトを作ってみた
Git hub pagesで告知サイトを作ってみたSoudai Sone
 
Rubyで作るtwitter風webアプリケーション
Rubyで作るtwitter風webアプリケーションRubyで作るtwitter風webアプリケーション
Rubyで作るtwitter風webアプリケーションNaoto Hori
 
Docker 再入門 2016 update
Docker 再入門 2016 updateDocker 再入門 2016 update
Docker 再入門 2016 updateShiojiri Ohhara
 
@s_ssk13さん向けGitHub入門
@s_ssk13さん向けGitHub入門@s_ssk13さん向けGitHub入門
@s_ssk13さん向けGitHub入門Takashi Imagire
 
Ember コミュニティとわたし
Ember コミュニティとわたしEmber コミュニティとわたし
Ember コミュニティとわたしRyunosuke SATO
 
GitHub最新情報キャッチアップ 2023年6月
GitHub最新情報キャッチアップ 2023年6月GitHub最新情報キャッチアップ 2023年6月
GitHub最新情報キャッチアップ 2023年6月Kazumi IWANAGA
 
Android アプリを Jenkins でビルドして GitHub に “リリース” を作る
Android アプリを Jenkins でビルドして GitHub に “リリース” を作るAndroid アプリを Jenkins でビルドして GitHub に “リリース” を作る
Android アプリを Jenkins でビルドして GitHub に “リリース” を作るYu Nobuoka
 
Firebase & BigQuery で Android アプリの成⻑を支える
Firebase & BigQuery で Android アプリの成⻑を支えるFirebase & BigQuery で Android アプリの成⻑を支える
Firebase & BigQuery で Android アプリの成⻑を支える健一 辰濱
 
はじめての Go 言語のプロジェクトを AWS Lambda + API Gateway でやったのでパッケージ構成を晒すよ
はじめての Go 言語のプロジェクトを AWS Lambda + API Gateway でやったのでパッケージ構成を晒すよはじめての Go 言語のプロジェクトを AWS Lambda + API Gateway でやったのでパッケージ構成を晒すよ
はじめての Go 言語のプロジェクトを AWS Lambda + API Gateway でやったのでパッケージ構成を晒すよShohei Okada
 
静的サイトで書誌1万件チャレンジ.pptx
静的サイトで書誌1万件チャレンジ.pptx静的サイトで書誌1万件チャレンジ.pptx
静的サイトで書誌1万件チャレンジ.pptxgenroku
 
CIBC workshop by imagire
CIBC workshop by imagireCIBC workshop by imagire
CIBC workshop by imagireTakashi Imagire
 
GitHub Appsと回帰テストフロー
GitHub Appsと回帰テストフローGitHub Appsと回帰テストフロー
GitHub Appsと回帰テストフローYosuke Kurami
 
Git hubで雑誌記事を執筆するのは間違っているだろうか
Git hubで雑誌記事を執筆するのは間違っているだろうかGit hubで雑誌記事を執筆するのは間違っているだろうか
Git hubで雑誌記事を執筆するのは間違っているだろうかKakigi Katuyuki
 

Similar to お手軽Web書誌リストチャレンジ ~List.js, Jekyll, GitHub Pages~ (20)

WebAppDev勉強会 #4
WebAppDev勉強会 #4WebAppDev勉強会 #4
WebAppDev勉強会 #4
 
Git hub pagesで告知サイトを作ってみた
Git hub pagesで告知サイトを作ってみたGit hub pagesで告知サイトを作ってみた
Git hub pagesで告知サイトを作ってみた
 
GitHub Handson
GitHub HandsonGitHub Handson
GitHub Handson
 
Ppl
PplPpl
Ppl
 
Rubyで作るtwitter風webアプリケーション
Rubyで作るtwitter風webアプリケーションRubyで作るtwitter風webアプリケーション
Rubyで作るtwitter風webアプリケーション
 
Docker 再入門 2016 update
Docker 再入門 2016 updateDocker 再入門 2016 update
Docker 再入門 2016 update
 
@s_ssk13さん向けGitHub入門
@s_ssk13さん向けGitHub入門@s_ssk13さん向けGitHub入門
@s_ssk13さん向けGitHub入門
 
Git 20100724
Git 20100724Git 20100724
Git 20100724
 
Ember コミュニティとわたし
Ember コミュニティとわたしEmber コミュニティとわたし
Ember コミュニティとわたし
 
GitHub最新情報キャッチアップ 2023年6月
GitHub最新情報キャッチアップ 2023年6月GitHub最新情報キャッチアップ 2023年6月
GitHub最新情報キャッチアップ 2023年6月
 
Android アプリを Jenkins でビルドして GitHub に “リリース” を作る
Android アプリを Jenkins でビルドして GitHub に “リリース” を作るAndroid アプリを Jenkins でビルドして GitHub に “リリース” を作る
Android アプリを Jenkins でビルドして GitHub に “リリース” を作る
 
Firebase & BigQuery で Android アプリの成⻑を支える
Firebase & BigQuery で Android アプリの成⻑を支えるFirebase & BigQuery で Android アプリの成⻑を支える
Firebase & BigQuery で Android アプリの成⻑を支える
 
Yesod(at FPM2012)
Yesod(at FPM2012)Yesod(at FPM2012)
Yesod(at FPM2012)
 
はじめての Go 言語のプロジェクトを AWS Lambda + API Gateway でやったのでパッケージ構成を晒すよ
はじめての Go 言語のプロジェクトを AWS Lambda + API Gateway でやったのでパッケージ構成を晒すよはじめての Go 言語のプロジェクトを AWS Lambda + API Gateway でやったのでパッケージ構成を晒すよ
はじめての Go 言語のプロジェクトを AWS Lambda + API Gateway でやったのでパッケージ構成を晒すよ
 
HTML5 for IA
HTML5 for IAHTML5 for IA
HTML5 for IA
 
静的サイトで書誌1万件チャレンジ.pptx
静的サイトで書誌1万件チャレンジ.pptx静的サイトで書誌1万件チャレンジ.pptx
静的サイトで書誌1万件チャレンジ.pptx
 
JavaScript 研修
JavaScript 研修JavaScript 研修
JavaScript 研修
 
CIBC workshop by imagire
CIBC workshop by imagireCIBC workshop by imagire
CIBC workshop by imagire
 
GitHub Appsと回帰テストフロー
GitHub Appsと回帰テストフローGitHub Appsと回帰テストフロー
GitHub Appsと回帰テストフロー
 
Git hubで雑誌記事を執筆するのは間違っているだろうか
Git hubで雑誌記事を執筆するのは間違っているだろうかGit hubで雑誌記事を執筆するのは間違っているだろうか
Git hubで雑誌記事を執筆するのは間違っているだろうか
 

お手軽Web書誌リストチャレンジ ~List.js, Jekyll, GitHub Pages~