EPUBの構造を詳細に見てみる
(株)三陽社 メディア開発室
田嶋 淳
http://densyodamasii.com/
http://densyodamasii.com/
会社でのおしごと
• 主にDTPデータからのEPUB作成(オーダーメイド
的な案件が多い)
• マニュアル作成/社内EPUB作成業務用アプリ制作
• 外部での宣伝活動etc
本日の概要
• EPUBの内容を詳細に見てみる
• EPUBを解凍してみる
• OPFの内容を見てみる
• InDesignデータからのXML→XHTMLの生成
• XHTMLファイルを効率的に編集する
• テキストエディタでの正規表現
• Perlを利用した置換処理
EPUBの内容を詳細に見てみる
zip -0 -X ../出力ファイル名.epub mimetype;zip -r ../出力ファイ
ル名.epub * -x mimetype */.DS_Store */*/.DS_Store
*/*/*/.DS_Store';
EPUBは解凍は簡単だが圧縮して作成するのはちょっと大変
ターミナルでのEPUB圧縮コマンド例は以下
電書協ガイド仕様のEPUBのファイル構成
itemフォルダの内容
OPF内部の構成
ヘ
ッ
ダ
書
誌
情
報
ManifestSpine
実験① manifestの項目をひとつ消したらどうなるか
実験② spineの並び順を変えたらどうなるか
InDesignデータからの
XML→XHTMLの生成
作業フロー全体の中のここ
→デモをご覧ください
XHTMLファイルを効率的に編集する
テキストエディタでの正規表現
基礎的な正規表現パターンマッチの例
font-[0-9][0-9][0-9]per
「font-085per」「font-050per」「font-100per」
など「font-」「per」で挟まれた3桁の数字のパターン全てにマッチする
見出しの体裁を正規表現で一括変更
検索文字列:>([0-9]).([0-9]).([0-9]) (.*?)</h3>
置換文字列:>$1-$2-$3<span class="font-120per mfont">▶$4</span></h3>
検索文字列のそれぞれの「(〜)」でマッチした部分を記憶しておき(
キャプチャ)、置換文字列の「$1〜$4」に代入。
一括で同様の<h3>見出しのテキスト全てが置き換わる
↓
正規表現の肯定/否定先読み
[0-9]+(?=[年月日])
肯定先読み:連続する半角数字のうち直後に「年/月/日」があるものにマッチ
[0-9]+(?![年月日])
否定先読み:連続する半角数字のうち直後に「年/月/日」がないものにマッチ
直前に指定の文字列があるもの/ないものにマッチさせる記法(後読
み)もあるが、miは非対応。Perlなどの中では使える。
miの「マルチファイル検索」
検索結果が下に一覧で出る。クリックでファイルを開き、該当箇所に飛ぶ
Perlを利用した置換処理
Perlを使った相互リンクの注の連番処理記述例
my $num = 1;
while (/<a class="cyu" href="#ref-c1-2-XX"><span class="key" id="key-c1-2-XX">
[▶XX]/){
my $mynum = sprintf("%02d", $num);
s/<a class="cyu" href="#ref-c1-2-XX"><span class="key" id="key-c1-2-XX">[▶XX
]/<a class="cyu" href="#ref-c1-2-$mynum"><span class="key" id="key-c1-2-
$mynum">[▶$mynum]/;
$num++;
}
my $num = 1;
while (/<p id="ref-c1-2-XX"><a class="cyu" href="#key-c1-2-XX">[▶XX]/){
my $mynum = sprintf("%02d", $num);
s/<p id="ref-c1-2-XX"><a class="cyu" href="#key-c1-2-XX">[▶XX]/<p id="ref-
c1-2-$mynum"><a class="cyu" href="#key-c1-2-$mynum">[▶$mynum]/;
$num++;
}
Perlのtr構文を使った「禁じられた遊び」
tr/ぁ-ん/ァ-ン/;
tr構文の実用的な使用例
Pro書体などJIS90字形のものにInDesignの「印刷標準字体」の機能で
字形補正をかけているパターンの補正用。BMP内の置換のみ。
tr/侠倶剥呑唖嘘噛嚢填屏屡幷痩繋漣煉溺/俠俱剝吞啞噓嚙囊塡屛屢幷瘦繫漣煉溺/;
ご静聴ありがとうございました

More Related Content

PDF
いいパブッ!! - よくわかるEPUB 3
PDF
かたログッ!! - 本をネットに解き放て
PDF
EPUB3 固定レイアウト徹底解説
PDF
いいパブッ!! はじめてのEPUB 3
PDF
EPUBのナビゲーションを理解しよう
PDF
つながる本 つながる人 - HTML Conference 2015
PDF
書籍解説 “What is EPUB 3?” & “Accessible EPUB 3”
PDF
JEPA 11月度定例会資料
いいパブッ!! - よくわかるEPUB 3
かたログッ!! - 本をネットに解き放て
EPUB3 固定レイアウト徹底解説
いいパブッ!! はじめてのEPUB 3
EPUBのナビゲーションを理解しよう
つながる本 つながる人 - HTML Conference 2015
書籍解説 “What is EPUB 3?” & “Accessible EPUB 3”
JEPA 11月度定例会資料

What's hot (15)

PDF
20121024 sakai epubsem_accessibility
PPTX
Drupalテーマとthemingの基礎
PPTX
D8でコンテンツをレイアウトする手法について
PPTX
Drupal のコア要素を知る ~構築を支える道具立て~
PDF
Drupal、group、quiz、webformを利用したeラーニングサイト「sqt」
PPTX
[BurpSuiteJapan]HTTP基礎入門
PPTX
JSON:APIについてざっくり入門
PPTX
DrupalにおけるJSON:APIの注意点
PPTX
CMSMix Sapporo vol.3 (Drupal の回)
PDF
Html5でword pressテーマを作るよ!
PPTX
DBFluteハンズオンで学んだこと etc.
PDF
ゼロからつくるWord pressテーマ第5回 後編
PDF
How to-write-book-by-markdown
PPTX
Web 09
PDF
LibreOfficeで電子書籍を創ろう
20121024 sakai epubsem_accessibility
Drupalテーマとthemingの基礎
D8でコンテンツをレイアウトする手法について
Drupal のコア要素を知る ~構築を支える道具立て~
Drupal、group、quiz、webformを利用したeラーニングサイト「sqt」
[BurpSuiteJapan]HTTP基礎入門
JSON:APIについてざっくり入門
DrupalにおけるJSON:APIの注意点
CMSMix Sapporo vol.3 (Drupal の回)
Html5でword pressテーマを作るよ!
DBFluteハンズオンで学んだこと etc.
ゼロからつくるWord pressテーマ第5回 後編
How to-write-book-by-markdown
Web 09
LibreOfficeで電子書籍を創ろう
Ad

Viewers also liked (7)

PDF
Webと出版と、CSSの未来の話
PDF
8 29 slide_tajima
PDF
EDUPUB Profile解説
PDF
IMS/GLC Caliper
PDF
ツイートボタンから画像付きツイートをツイートさせる方法
PDF
IMS/GLC 2015 東京セミナー報告とCaliper 1.0
PDF
でんでんコンバーターによるEPUB制作
Webと出版と、CSSの未来の話
8 29 slide_tajima
EDUPUB Profile解説
IMS/GLC Caliper
ツイートボタンから画像付きツイートをツイートさせる方法
IMS/GLC 2015 東京セミナー報告とCaliper 1.0
でんでんコンバーターによるEPUB制作
Ad

Similar to 電書ラボ公開セミナー2016年10月「EPUBの構造を詳細に見てみる」 (20)

PDF
ドキュメントの継続的改善―Sphinxを使いながら
PDF
JEPA 4月度定例会資料 0412
PDF
eZ Publish勉強会2013年3月「eZ Publishの構築を簡単に!」
PDF
JEPA 4月度定例会資料0409a
PDF
OSS開発勉強会-01B
PDF
レンタルサーバで今すぐ始めるWEB開発
PDF
DevLOVE iPhoneアプリ勉強会
PPTX
Sphinxの使い方事例
PDF
ReVIEWを用いたPDFとEPUBへの変換について
PDF
Ocs2012 tokyo/spring plone
PDF
Products.PloneOrg
PDF
達人出版会のご紹介(技術編)
PDF
動的なILの生成と編集
PDF
Cloudn PaaSチームのChatOps実践
PDF
Ocs2013 tokyo spring_plone
PDF
達人出版会からPHPの本を出版しよう
PDF
ユーザ・デザイナーから見たPlone CMSのアピールポイント
PDF
2011年10月21日
PDF
OSSとクラウドによるコンピューティングモデルの変化
ODP
Koedooff20100710(第95回) - Linux でePub ファイルの作成、閲覧 -
ドキュメントの継続的改善―Sphinxを使いながら
JEPA 4月度定例会資料 0412
eZ Publish勉強会2013年3月「eZ Publishの構築を簡単に!」
JEPA 4月度定例会資料0409a
OSS開発勉強会-01B
レンタルサーバで今すぐ始めるWEB開発
DevLOVE iPhoneアプリ勉強会
Sphinxの使い方事例
ReVIEWを用いたPDFとEPUBへの変換について
Ocs2012 tokyo/spring plone
Products.PloneOrg
達人出版会のご紹介(技術編)
動的なILの生成と編集
Cloudn PaaSチームのChatOps実践
Ocs2013 tokyo spring_plone
達人出版会からPHPの本を出版しよう
ユーザ・デザイナーから見たPlone CMSのアピールポイント
2011年10月21日
OSSとクラウドによるコンピューティングモデルの変化
Koedooff20100710(第95回) - Linux でePub ファイルの作成、閲覧 -

電書ラボ公開セミナー2016年10月「EPUBの構造を詳細に見てみる」