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をご覧ください。