NAME Aozora2Epub - Convert Aozora Bunko XHTML to EPUB SYNOPSIS use Aozora2Epub; my $book = Aozora2Epub->new("https://www.aozora.gr.jp/cards/000262/files/48074_40209.html"); $book->to_epub; # åˆæœ¬ã®ä½œæˆ $book = Aozora2Epub->new(); $book->append("000879/card179.html"); # è—ªã®ä¸ $book->append("000879/card127.html"); # 羅生門 $book->title('芥å·ç«œä¹‹ä»‹ä½œå“集'); $book->to_epub; DESCRIPTION Aozora2Epub ã¯é’空文庫ã®XHTMLå½¢å¼ã®æœ¬ã‚’EPUBã«å¤‰æ›ã™ã‚‹ãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«ã§ã™ã€‚ ç°¡å˜ã«åˆæœ¬ã‚’生æˆã™ã‚‹ãŸã‚ã®ã‚¤ãƒ³ã‚¿ãƒ•ã‚§ãƒ¼ã‚¹ã‚‚æä¾›ã—ã¦ã„ã¾ã™ã€‚ METHODS new my $book = Aozora2Epub->new($book_url); my $book = Aozora2Epub->new($xhtml_string); my $book = Aozora2Epub->new(); # 空ã®ãƒ‰ã‚ュメントを作る $bool_urlã§æŒ‡å®šã—ãŸé’空文庫ã®æœ¬ã‚’èªã¿è¾¼ã¿ã¾ã™ã€‚ ã‚ã‚‹ã„ã¯ã€æ–‡å—列ã¨ã—ã¦æŒ‡å®šã•ã‚ŒãŸæ•´å½¢å¼ã®XHTMLを本ã®å†…容ã¨ã—ã¦èªã¿è¾¼ã¿ã¾ã™ã€‚ 本ã¯ä»¥ä¸‹ã®ã„ãšã‚Œã‹ã®å½¢å¼ã§æŒ‡å®šã—ã¾ã™ã€‚ ã„ãšã‚Œã‚‚ã€URLå…ˆé ã® https://www.aozora.gr.jp/cards/ã®éƒ¨åˆ†ã‚’çœç•¥ã™ã‚‹ã“ã¨ãŒå¯èƒ½ã§ã™ã€‚ 図書カードã®URL é’空文庫ã®å›³æ›¸ã‚«ãƒ¼ãƒ‰ã®URLã§ã™ã€‚以下ã«ä¾‹ã‚’示ã—ã¾ã™ã€‚ https://www.aozora.gr.jp/cards/001569/card59761.html 001569/card59761.html # URLã®å…ˆé 部分をçœç•¥ XHTMLã®URL é’空文庫ã®XHTMLファイルã®URLã§ã™ã€‚以下ã«ä¾‹ã‚’示ã—ã¾ã™ã€‚ https://www.aozora.gr.jp/cards/001569/files/59761_74795.html 001569/files/59761_74795.html # URLã®å…ˆé 部分をçœç•¥ append $book->append($book_url); $book->append($book_url, title=>"第2部"); $book->append($book_url, title=>"第2部", title_level=>1); # <h1>第2部</h1>ã‚’ä»˜åŠ $book->append($xhtml_string); 指定ã—ãŸæœ¬ã®å†…å®¹ã‚’è¿½åŠ ã—ã¾ã™ã€‚本ã®æŒ‡å®šæ–¹æ³•ã¯newメソッドã¨åŒã˜ã§ã™ã€‚ è¿½åŠ ã•ã‚Œã‚‹æœ¬ã®ã‚¿ã‚¤ãƒˆãƒ«ãŒã€è¿½åŠ ã•ã‚Œã‚‹æœ¬ã®å†…容ã®å…ˆé ã« <h2>タイトル</h2> ã¨ã„ã†å½¢ã§ä»˜åŠ ã•ã‚Œã¾ã™ã€‚ titleオプションã«ã‚ˆã£ã¦ã€ã“ã®ã‚¿ã‚¤ãƒˆãƒ«ã‚’指定ã™ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚ title=>''ã¨ã™ã‚‹ã¨ã€ãƒ˜ãƒƒãƒ€è¦ç´ ã‚’è¿½åŠ ã—ã¾ã›ã‚“。 title_levelオプションã§ã€ä»˜åŠ ã•ã‚Œã‚‹ãƒ˜ãƒƒãƒ€è¦ç´ ã®ãƒ¬ãƒ™ãƒ«ã‚’変更ã™ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚ title $book->title; # タイトルをå–å¾— $book->title('éšç†é›†'); # タイトルをè¨å®š タイトルをå–å¾—/è¨å®šã—ã¾ã™ã€‚ author $book->author; # 著者をå–å¾— $book->author('山田太郎'); # 著者をè¨å®š 著者をå–å¾—/è¨å®šã—ã¾ã™ã€‚ bib_info $book->bib_info; # 奥付ã®å†…容をå–å¾— $book->bib_info(undef); # 奥付を消去 奥付ã®å†…容をå–å¾—/è¨å®šã—ã¾ã™ã€‚ undefã‚’è¨å®šã—ã¦å¥¥ä»˜ã‚’消去ã™ã‚‹ã¨ã€EPUBã«å¥¥ä»˜ãŒå«ã¾ã‚Œãªããªã‚Šã¾ã™ã€‚ to_epub $book->to_epub(); $book->to_epub(output=>'my.epub', cover=>'mycover.jpg'); EPUBを出力ã—ã¾ã™ã€‚オプションã¯ä»¥ä¸‹ã®é€šã‚Šã§ã™ã€‚ output 出力ã™ã‚‹EPUBファイルã®ãƒ‘スを指定ã—ã¾ã™ã€‚デフォルトã¯æœ¬ã®ã‚¿ã‚¤ãƒˆãƒ«.epubã§ã™ã€‚ cover 表紙ã®ã‚¤ãƒ¡ãƒ¼ã‚¸ãƒ•ã‚¡ã‚¤ãƒ«ã‚’指定ã—ã¾ã™ã€‚JPEGファイルã§ãªã‘ã‚Œã°ãªã‚Šã¾ã›ã‚“。 指定ã—ãªã„å ´åˆã¯ã€è¡¨ç´™ã‚¤ãƒ¡ãƒ¼ã‚¸ã‚’æŒãŸãªã„EPUBãŒå‡ºåŠ›ã•ã‚Œã¾ã™ã€‚ as_html my $html = $book->as_html; 本ã®å†…容をHTMLã§è¿”ã—ã¾ã™ã€‚ åˆæœ¬ã®ä½œæˆ 最もシンプルãªã®ã¯ã€åˆæœ¬ã«å«ã‚ãŸã„本をappendã§é€£çµã—ã¦è¡Œãã“ã¨ã§ã™ã€‚ my $book = Aozora2Epub->new(); $book->append("000879/card179.html"); # è—ªã®ä¸ $book->append("000879/card127.html"); # 羅生門 $book->title('芥å·ç«œä¹‹ä»‹ä½œå“集'); $book->to_epub; タイトルã¯ã»ã¨ã‚“ã©ã®å ´åˆã€æ˜Žç¤ºçš„ã«è¨å®šã™ã‚‹ã“ã¨ã«ãªã‚‹ã§ã—ょã†ã€‚ 上記ã®ä¾‹ã§ã‚¿ã‚¤ãƒˆãƒ«ã‚’è¨å®šã—ãªã‹ã£ãŸå ´åˆã€åˆæœ¬ã®ã‚¿ã‚¤ãƒˆãƒ«ã¯æœ€åˆã®æœ¬ã®ã‚¿ã‚¤ãƒˆãƒ«ã€ã¤ã¾ã‚Šã€Œè—ªã®ä¸ã€ã«ãªã‚Šã¾ã™ã€‚ 以下ã¯ã€å°‘ã—å‡ã£ãŸä¾‹ã§ã™ã€‚ my $book = Aozora2Epub->new(); $book->title('春å¤ç§‹å†¬æ–™ç†çŽ‹å›½'); # é’空文庫ã®æœ¬ã®ã‚¿ã‚¤ãƒˆãƒ«ã¯ "「春å¤ç§‹å†¬ã€€æ–™ç†çŽ‹å›½ã€åºã«ã‹ãˆã¦" ãªã®ã§ã€ã‚¿ã‚¤ãƒˆãƒ«ã‚’変更ã™ã‚‹ $book->append("001403/card59653.html", title=>'åºã«ã‹ãˆã¦'); $book->append(q{<h1 class="tobira">æ–™ç†ã™ã‚‹å¿ƒ</h1>}); # ä¸æ‰‰ã‚’入れる $book->append("001403/card54984.html"); # é“ã¯æ¬¡ç¬¬ã«ç‹ã— $book->append("001403/card50009.html"); # æ–™ç†ã®ç¬¬ä¸€æ© $book->append(q{<h1 class="tobira">ãŠèŒ¶æ¼¬ã®å‘³</h1>}); # ä¸æ‰‰ã‚’入れる $book->append("001403/card54975.html"); # ç´è±†ã®èŒ¶æ¼¬ $book->append("001403/card54976.html"); # æµ·è‹”ã®èŒ¶æ¼¬ # é’空文庫ã®æœ¬ã®ã‚¿ã‚¤ãƒˆãƒ«ã¯ "å°ç”Ÿã®ã‚ã‘ãã‚Œ" ãªã®ã§å¤‰æ›´ã™ã‚‹ã€‚ # 「ãŠèŒ¶æ¼¬ã®å‘³ã€ã®ã‚µãƒ–セクションã«ãªã‚‰ãªã„様㫠title_level も指定ã™ã‚‹ $book->append("001403/card49981.html", title=>'ã‚ã¨ãŒã', title_level=>1); $book->to_epub; 上記ã®ã‚³ãƒ¼ãƒ‰ã¯ã€ä»¥ä¸‹ã®æ§‹é€ ã®epubを出力ã—ã¾ã™ã€‚ åºã«ã‹ãˆã¦ æ–™ç†ã™ã‚‹å¿ƒ é“ã¯æ¬¡ç¬¬ã«ç‹ã— æ–™ç†ã®ç¬¬ä¸€æ© ãŠèŒ¶æ¼¬ã®å‘³ ç´è±†ã®èŒ¶æ¼¬ã‘ æµ·è‹” ã‚ã¨ãŒã é’空文庫ファイルã®ã‚ャッシュ é’空文庫ã‹ã‚‰ãƒ•ã‚¡ã‚¤ãƒ«ã‚’å–å¾—ã™ã‚‹éš›ã«ã€~/.aozora2epub ã«ã‚ャッシュã—ã¾ã™ã€‚ ã“ã‚Œã¯ç’°å¢ƒå¤‰æ•° AOZORA2EPUB_CACHE ã§æŒ‡å®šã—ãŸãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªã«å¤‰æ›´ã™ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚ ã‚ャッシュã•ã‚ŒãŸãƒ•ã‚¡ã‚¤ãƒ«ã¯30日間有効ã§ã€ãれをéŽãŽã‚‹ã¨è‡ªå‹•çš„ã«å‰Šé™¤ã•ã‚Œã¾ã™ã€‚ AUTHOR Yoshimasa Ueno <saltyduck@gmail.com> COPYRIGHT Copyright 2024- Yoshimasa Ueno LICENSE This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself. SEE ALSO aozora2epub é’空文庫 <https://www.aozora.gr.jp/>