bibi publish
説明
Bibi CLIは Bibi というEPUBリーダーアプリケーションで作業するためのコマンドラインツールです。現在提供しているのは bibi publish コマンドのみです。
bibi publishはEPUBファイルをS3にアップロードし、Bibiでというで閲覧可能にするコマンドラインツールです。
機能
-
EPUBドキュメント内のファイルをAmazon S3上のBibiのbookshelfディレクトリーにアップロード
-
EPUB閲覧用のHTMLファイルを作成してS3にアップロード
使用例
% bibi publish moby-dick.epub
% bibi publish moby-dick.epub moby-dick-book
% bibi publish --bibi=s3://yourbucket/subdir/bibi moby-dick.epub moby-dick-book
前提条件
-
AWSアカウント
-
S3バケットにファイルをアップロード可能な環境
-
アクセス可能で静的ウェブサイトホスティングように設定されたS3バケット
-
AWS CLIとその設定
インストール
% gem install bibi-publish
概要
予行
bibi publishは --dry-run オプションをサポートしています。これはアップロード予定のファイルを表示はするが実際にはアップロードしないというオプションです。
% bibi publish --bibi=s3://yourbucket/subdir/bibi path/to/moby-dick.epub moby-dick-book --dry-run
与えられたバケットとパスへのアップロード
% bibi publish --bibi=s3://yourbucket/subdir/bibi path/to/moby-dick.epub
これは次のことを行います。
-
moby-dick.epubというEPUBファイル内のファイルをs3://yourbucket/subdir/bibi-bookshelf/moby-dickへアップロード -
Bibiを使ってこのEPUBドキュメントを読むためのHTMLファイルを
s3://yourbucket/subdir/bibi/moby-dick.htmlへアップロード
以下の点に注目してください。
-
bibi-bookshelfというbookshelfディレクトリーはbibi publishが自動的に決定する -
moby-dickというbookshelfのサブディレクトリーは、moby-dick.epubという与えられたEPUBファイルからbibi publishが自動的に決定する
Bibi bookshelf下のディレクトリー名の指定
% bibi publish --bibi=s3://yourbucket/subdir/bibi path/to/moby-dick.epub moby-dick-book
page-blanch-book という第二引数はS3上のサブディレクトリーとHTMLファイル名に使われます。つまり以下のようになります。
-
s3://yourbucket/subdir/bibi-bookshelf/moby-dickではなくs3://yourbucket/subdir/bibi-bookshelf/moby-dick-book -
s3://yourbucket/subdir/bibi/moby-dick.htmlではなくs3://yourbucket/subdir/bibi/moby-dick-book.html
HTMLを生成しない
% bibi publish --bibi=s3://yourbucket/subdir/bibi --no-page path/to/moby-dick.epub moby-dick-book
コマンドに --no-page オプションを渡してください。
Bibiの通常のURIである https://s3.your-region.amazonaws.com/yourbucket/subdir/bibi/?book=moby-dick-book に行くことでEPUBを閲覧することはできます。
生成するHTMLへの任意のフラグメントの挿入
bibi publishは <head> と <body> の終わりに、それぞれ --head-end オプションと --body-end オプションで指定されたファイルからHTMLフラグメントを挿入します。
BibiのHTMLのhead要素に生成プログラムの名前を挿入したいとしましょう。
% cat ./generator.html
<meta name="generator" content="bibi publish">
--head-end オプションでこのファイルへのパスを指定します。
% bibi publish --bibi=s3://yourbucket/subdir/bibi --head-end=./generator.html path/to/moby-dick.epub
これでHTMLファイルにHTMLフラグメントが挿入されます。
% curl -s https://s3.your-region.amazonaws.com/yourbucket/subdir/bibi/moby-dick.html | rg -B3 -A3 '</head>'
<meta name="generator" content="bibi publish">
</head>
<body data-bibi-book="moby-dick">
--body-end オプションは指定されたファイルのHTMLフラグメントをHTMLの </body> の直前に挿入します。
設定
~/.config/bibi/publish.toml というファイルで、TOML形式でbibi publishの設定をすることができます。 --bibi や --bookshelf といった特定のオプションを毎回指定するのを避けるために特に有用です。
例えばこうです。
~/.config/bibi/publish.toml
# `default` table is used by default
[default]
bibi = "s3://yourbucket/subdir/bibi"
bookshelf = "s3://yourbucket/epubs"
page = true
これはコマンドラインオプションで --bibi=s3://yourbucket/subdir/bibi と --bookshelf=s3://yourbucket/epubs 、 --page を渡すのと同等です。
状況に応じて設定を切り替えたい場合は、別のテーブルを追加して --option オプションでそれを指定します。
~/.config/bibi/publish.toml
[production]
bibi = "s3://your-production-bucket/bibi"
[staging]
bibi = "s3://your-staging-bucket/bibi"
% bibi publish --profile=staging moby-dick.epub
現在サポートしているキーは bibi 、 bookshelf 、 page 、 head_end 、 body_end です。
AWSプロファイル
環境変数 AWS_PROFILE を使用してください。
% AWS_PROFILE=publicbibi bibi publish path/to/doc.epub
参考
著作権
Copyright (c) 2020 Kitaiti Makoto
詳細はCOPYINGをご覧ください。