cheepub 0.9.0 → 0.14.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.github/workflows/ruby.yml +33 -0
- data/README.md +25 -1
- data/Rakefile +1 -1
- data/cheepub.gemspec +9 -8
- data/lib/cheepub.rb +5 -0
- data/lib/cheepub/asset_store.rb +59 -0
- data/lib/cheepub/content.rb +4 -14
- data/lib/cheepub/converter/cheehtml.rb +29 -0
- data/lib/cheepub/converter/cheelatex.rb +19 -0
- data/lib/cheepub/ext_hash.rb +12 -0
- data/lib/cheepub/generator/epub.rb +25 -7
- data/lib/cheepub/generator/latex.rb +16 -2
- data/lib/cheepub/i18n.rb +131 -0
- data/lib/cheepub/nav.rb +5 -1
- data/lib/cheepub/version.rb +1 -1
- data/lib/kramdown/parser/cheemarkdown.rb +1 -1
- data/samples/anausa_perter/anausa_peterno_hanashi.md +164 -0
- data/samples/anausa_perter/fig51344_01.png +0 -0
- data/samples/anausa_perter/fig51344_02.png +0 -0
- data/samples/anausa_perter/fig51344_03.png +0 -0
- data/samples/anausa_perter/fig51344_04.png +0 -0
- data/samples/anausa_perter/fig51344_05.png +0 -0
- data/samples/anausa_perter/fig51344_06.png +0 -0
- data/samples/anausa_perter/fig51344_07.png +0 -0
- data/samples/anausa_perter/fig51344_08.png +0 -0
- data/samples/anausa_perter/fig51344_09.png +0 -0
- data/samples/anausa_perter/fig51344_10.png +0 -0
- data/samples/anausa_perter/fig51344_11.png +0 -0
- data/samples/anausa_perter/fig51344_12.png +0 -0
- data/samples/anausa_perter/fig51344_13.png +0 -0
- data/samples/anausa_perter/fig51344_14.png +0 -0
- data/samples/anausa_perter/fig51344_15.png +0 -0
- data/samples/anausa_perter/fig51344_16.png +0 -0
- data/samples/anausa_perter/fig51344_17.png +0 -0
- data/samples/anausa_perter/fig51344_18.png +0 -0
- data/samples/anausa_perter/fig51344_19.png +0 -0
- data/samples/anausa_perter/fig51344_20.png +0 -0
- data/samples/anausa_perter/fig51344_21.png +0 -0
- data/samples/anausa_perter/fig51344_22.png +0 -0
- data/samples/anausa_perter/fig51344_23.png +0 -0
- data/samples/anausa_perter/fig51344_24.png +0 -0
- data/samples/anausa_perter/fig51344_25.png +0 -0
- data/samples/anausa_perter/fig51344_26.png +0 -0
- data/samples/anausa_perter/fig51344_27.png +0 -0
- data/samples/anausa_perter/fig51344_28.png +0 -0
- data/samples/anausa_perter/fig51344_29.png +0 -0
- data/samples/sangetsuki_colophon.md +67 -0
- data/templates/colophon.xhtml.erb +70 -0
- metadata +75 -27
- data/.travis.yml +0 -10
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1015b4ec48bfa86664b7f668a72577449950595770dadae33c5a5ae3b179ceb6
|
4
|
+
data.tar.gz: 35098a489d44ab31873a55fa7c570c5a745a576df2f7e8ccc2da7179a708ec41
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f997970ac3bf3630ad99307995c2e1f20dc0e4b45a265efe3d19b1ecab791497c3ee528928016feda0d681d132b72b6efbb50bc481ed7795c7fa7104f648ffa0
|
7
|
+
data.tar.gz: 912c3634e3f2a5023de7ce9474de30e1225a6069578c97313ad636dc6acae895f69e6209edfd077efca3b50f2c09928e782b231f3d6171366b94c98d4b77a780
|
@@ -0,0 +1,33 @@
|
|
1
|
+
# This workflow uses actions that are not certified by GitHub.
|
2
|
+
# They are provided by a third-party and are governed by
|
3
|
+
# separate terms of service, privacy policy, and support
|
4
|
+
# documentation.
|
5
|
+
# This workflow will download a prebuilt Ruby version, install dependencies and run tests with Rake
|
6
|
+
# For more information see: https://github.com/marketplace/actions/setup-ruby-jruby-and-truffleruby
|
7
|
+
|
8
|
+
name: Ruby
|
9
|
+
|
10
|
+
on:
|
11
|
+
push:
|
12
|
+
branches: [ master ]
|
13
|
+
pull_request:
|
14
|
+
branches: [ master ]
|
15
|
+
|
16
|
+
jobs:
|
17
|
+
test:
|
18
|
+
|
19
|
+
runs-on: ubuntu-latest
|
20
|
+
|
21
|
+
steps:
|
22
|
+
- uses: actions/checkout@v2
|
23
|
+
- name: Set up Ruby
|
24
|
+
# To automatically get bug fixes and new Ruby versions for ruby/setup-ruby,
|
25
|
+
# change this to (see https://github.com/ruby/setup-ruby#versioning):
|
26
|
+
# uses: ruby/setup-ruby@v1
|
27
|
+
uses: ruby/setup-ruby@ec106b438a1ff6ff109590de34ddc62c540232e0
|
28
|
+
with:
|
29
|
+
ruby-version: 2.6
|
30
|
+
- name: Install dependencies
|
31
|
+
run: bundle install
|
32
|
+
- name: Run tests
|
33
|
+
run: bundle exec rake
|
data/README.md
CHANGED
@@ -1,6 +1,8 @@
|
|
1
1
|
# Cheepub
|
2
2
|
|
3
|
-
[![Gem Version](https://badge.fury.io/rb/cheepub.svg)](https://badge.fury.io/rb/cheepub)
|
3
|
+
[![Gem Version](https://badge.fury.io/rb/cheepub.svg)](https://badge.fury.io/rb/cheepub)
|
4
|
+
[![Build Status](https://github.com/takahashim/cheepub/workflows/Ruby/badge.svg)](https://github.com/takahashim/cheepub/actions)
|
5
|
+
[![Maintainability](https://api.codeclimate.com/v1/badges/15d5db3048b9067703a6/maintainability)](https://codeclimate.com/github/takahashim/cheepub/maintainability)
|
4
6
|
|
5
7
|
|
6
8
|
Cheepub is EPUB/PDF generator from Markdown. When you have markdown file, you can generate EPUB3 file with just one command: `cheepub sample.md`.
|
@@ -93,9 +95,31 @@ In a little district west of Washington Square the streets have run crazy and br
|
|
93
95
|
* lastModified: last modified date-time
|
94
96
|
* pageDirection: `ltr` (horizontal) or `rtl` (vertical)
|
95
97
|
* titlepage: add titlepage
|
98
|
+
* colophone: add colophon page
|
99
|
+
* colophone_before, colophone_after: some notes before/after colophon table
|
100
|
+
* (LaTeX) latexCommand: command name of LaTeX (`uplatex` or `lualatex`)
|
101
|
+
* (LaTeX) documentClass: document class and options. (ex. `["jlreq", "tate,book,a4paper,twocolumn,openany"]`)
|
102
|
+
|
96
103
|
|
97
104
|
## History
|
98
105
|
|
106
|
+
### 0.13.0
|
107
|
+
|
108
|
+
- update `kramdown`, `gepub` and `rb_latex`
|
109
|
+
|
110
|
+
### 0.12.0
|
111
|
+
|
112
|
+
- support colophon_(before|after) in EPUB
|
113
|
+
|
114
|
+
### 0.11.0
|
115
|
+
|
116
|
+
- support titlepage in LaTeX
|
117
|
+
- support colophon in LaTeX
|
118
|
+
|
119
|
+
### 0.10.0
|
120
|
+
|
121
|
+
- support Images in EPUB
|
122
|
+
|
99
123
|
### 0.9.0
|
100
124
|
|
101
125
|
- support Markdown (pipe) table
|
data/Rakefile
CHANGED
data/cheepub.gemspec
CHANGED
@@ -8,8 +8,8 @@ Gem::Specification.new do |spec|
|
|
8
8
|
spec.authors = ["takahashim"]
|
9
9
|
spec.email = ["maki@rubycolor.org"]
|
10
10
|
|
11
|
-
spec.summary = "Simple EPUB generator from Markdown"
|
12
|
-
spec.description = %q{Simple EPUB generator from Markdown. Inspired by denden converter}
|
11
|
+
spec.summary = "Simple EPUB/PDF generator from Markdown"
|
12
|
+
spec.description = %q{Simple EPUB/PDF generator from Markdown. Inspired by denden converter}
|
13
13
|
spec.homepage = "https://github.com/takahashim/cheepub"
|
14
14
|
|
15
15
|
spec.files = `git ls-files -z`.split("\x0").reject do |f|
|
@@ -19,17 +19,18 @@ Gem::Specification.new do |spec|
|
|
19
19
|
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
20
20
|
spec.require_paths = ["lib"]
|
21
21
|
|
22
|
-
spec.add_dependency "gepub", "~> 0.
|
23
|
-
spec.add_dependency "kramdown"
|
22
|
+
spec.add_dependency "gepub", "~> 1.0.2"
|
23
|
+
spec.add_dependency "kramdown"
|
24
|
+
spec.add_dependency "kramdown-parser-gfm", "~> 1.0.1"
|
24
25
|
spec.add_dependency "clamp", "~> 1.2"
|
25
26
|
spec.add_dependency "oga", "~> 2.15"
|
26
27
|
spec.add_dependency "coderay"
|
27
28
|
spec.add_dependency "rouge"
|
28
|
-
spec.add_dependency "rb_latex"
|
29
|
+
spec.add_dependency "rb_latex"
|
29
30
|
|
30
|
-
spec.add_development_dependency "rufo"
|
31
|
-
spec.add_development_dependency "bundler"
|
32
|
-
spec.add_development_dependency "rake"
|
31
|
+
spec.add_development_dependency "rufo"
|
32
|
+
spec.add_development_dependency "bundler"
|
33
|
+
spec.add_development_dependency "rake"
|
33
34
|
spec.add_development_dependency "test-unit", "~> 3.2"
|
34
35
|
spec.add_development_dependency "test-unit-notify"
|
35
36
|
spec.add_development_dependency "terminal-notifier"
|
data/lib/cheepub.rb
CHANGED
@@ -10,6 +10,7 @@ require "cheepub/version"
|
|
10
10
|
require "cheepub/error"
|
11
11
|
require "cheepub/ext_hash"
|
12
12
|
require "cheepub/markdown"
|
13
|
+
require "kramdown"
|
13
14
|
require "kramdown/parser/cheemarkdown"
|
14
15
|
require "cheepub/cli"
|
15
16
|
require "cheepub/generator"
|
@@ -20,7 +21,11 @@ require "cheepub/heading_parser"
|
|
20
21
|
require "cheepub/heading_item"
|
21
22
|
require "cheepub/nav"
|
22
23
|
require "cheepub/converter/cheelatex"
|
24
|
+
require "cheepub/converter/cheehtml"
|
25
|
+
require "cheepub/asset_store"
|
26
|
+
require "cheepub/i18n"
|
23
27
|
|
24
28
|
module Cheepub
|
25
29
|
TEMPLATES_DIR = File.join(File.dirname(__FILE__), "../templates")
|
30
|
+
IMAGE_DIR = "images"
|
26
31
|
end
|
@@ -0,0 +1,59 @@
|
|
1
|
+
require 'digest/sha2'
|
2
|
+
require 'base64'
|
3
|
+
require 'fileutils'
|
4
|
+
require 'tmpdir'
|
5
|
+
require 'pathname'
|
6
|
+
require 'open-uri'
|
7
|
+
|
8
|
+
module Cheepub
|
9
|
+
class AssetStore
|
10
|
+
def initialize(asset_dir, base_dir)
|
11
|
+
@store = {}
|
12
|
+
@asset_dir = Pathname.new(asset_dir)
|
13
|
+
@base_dir = Pathname.new(base_dir || ".")
|
14
|
+
end
|
15
|
+
|
16
|
+
def store(src, dir)
|
17
|
+
ext = File.extname(src)
|
18
|
+
if src =~ /^(https?:|\/)/
|
19
|
+
img_content = open(src){|f| f.read}
|
20
|
+
else
|
21
|
+
img_content = open(File.join(@base_dir, src)){|f| f.read}
|
22
|
+
end
|
23
|
+
img_path = asset_file_path(img_content, dir, ext)
|
24
|
+
if !@store[src]
|
25
|
+
@store[src] = img_path
|
26
|
+
FileUtils.mkdir_p(img_path.dirname.to_s)
|
27
|
+
File.write(img_path.to_s, img_content)
|
28
|
+
end
|
29
|
+
img_path.relative_path_from(@asset_dir)
|
30
|
+
end
|
31
|
+
|
32
|
+
def clear
|
33
|
+
FileUtils.remove_entry_secure(@asset_dir.to_s)
|
34
|
+
end
|
35
|
+
|
36
|
+
def [](key)
|
37
|
+
@store[key]
|
38
|
+
end
|
39
|
+
|
40
|
+
def []=(key,val)
|
41
|
+
@store[key] = val
|
42
|
+
end
|
43
|
+
|
44
|
+
def each_relpath_and_content(&proc)
|
45
|
+
@store.each do |key, val|
|
46
|
+
path = val.relative_path_from(@asset_dir)
|
47
|
+
content = File.read(val)
|
48
|
+
yield path.to_s, content
|
49
|
+
end
|
50
|
+
end
|
51
|
+
|
52
|
+
def asset_file_path(content, dir, ext)
|
53
|
+
hash_val = Digest::SHA256.digest(content)
|
54
|
+
basename = Base64.urlsafe_encode64(hash_val).gsub(/=/,"")
|
55
|
+
path = @asset_dir + dir + "#{basename}#{ext}"
|
56
|
+
path
|
57
|
+
end
|
58
|
+
end
|
59
|
+
end
|
data/lib/cheepub/content.rb
CHANGED
@@ -2,6 +2,7 @@ require 'yaml'
|
|
2
2
|
|
3
3
|
module Cheepub
|
4
4
|
class Content
|
5
|
+
include Enumerable
|
5
6
|
using Cheepub::ExtHash
|
6
7
|
|
7
8
|
SEPARATOR_PATTERN = /\n\n(?:\={3,}|\-{6,})\s*\n\n/m
|
@@ -18,20 +19,9 @@ module Cheepub
|
|
18
19
|
@pages = separate_pages(@body)
|
19
20
|
end
|
20
21
|
|
21
|
-
def
|
22
|
-
@pages.
|
23
|
-
|
24
|
-
|
25
|
-
def each_content_with_filename(ext)
|
26
|
-
if ext == "xhtml"
|
27
|
-
target = :to_html
|
28
|
-
elsif ext == "tex"
|
29
|
-
target = :to_latex
|
30
|
-
else
|
31
|
-
raise Cheepub::Error, "invalid ext: #{ext}"
|
32
|
-
end
|
33
|
-
converted_pages(target).each_with_index do |page, idx|
|
34
|
-
yield page, "bodymatter_#{idx}.#{ext}"
|
22
|
+
def each
|
23
|
+
@pages.each do |page|
|
24
|
+
yield page
|
35
25
|
end
|
36
26
|
end
|
37
27
|
|
@@ -0,0 +1,29 @@
|
|
1
|
+
module Cheepub
|
2
|
+
module Converter
|
3
|
+
module CheeHtml
|
4
|
+
|
5
|
+
def initialize(root, options)
|
6
|
+
super
|
7
|
+
@asset_store = @options[:asset_store]
|
8
|
+
end
|
9
|
+
|
10
|
+
def convert_img(el, indent)
|
11
|
+
if !@options[:ignore_images]
|
12
|
+
replace_img_path(el)
|
13
|
+
end
|
14
|
+
super
|
15
|
+
end
|
16
|
+
|
17
|
+
def replace_img_path(el)
|
18
|
+
src = el.attr['src']
|
19
|
+
img_path = @asset_store.store(src, Cheepub::IMAGE_DIR)
|
20
|
+
el.attr['src'] = img_path
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
class Kramdown::Converter::Html
|
27
|
+
attr_reader :asset_store
|
28
|
+
prepend Cheepub::Converter::CheeHtml
|
29
|
+
end
|
@@ -14,6 +14,25 @@ module Cheepub
|
|
14
14
|
end
|
15
15
|
end
|
16
16
|
|
17
|
+
def convert_standalone_image(el, opts, img)
|
18
|
+
"#{img}\n"
|
19
|
+
end
|
20
|
+
|
21
|
+
def convert_img(el, opts)
|
22
|
+
line = el.options[:location]
|
23
|
+
angle = @options[:page_direction] == "rtl" ? 90 : 0
|
24
|
+
if el.attr['src'] =~ /^(https?|ftps?):\/\//
|
25
|
+
warning("Cannot include non-local image#{line ? " (line #{line})" : ''}")
|
26
|
+
''
|
27
|
+
elsif !el.attr['src'].empty?
|
28
|
+
@data[:packages] << 'graphicx'
|
29
|
+
"#{latex_link_target(el)}\\includegraphics[angle=#{angle}]{#{el.attr['src']}}"
|
30
|
+
else
|
31
|
+
warning("Cannot include image with empty path#{line ? " (line #{line})" : ''}")
|
32
|
+
''
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
17
36
|
def convert_codeblock(el, opts)
|
18
37
|
show_whitespace = el.attr['class'].to_s =~ /\bshow-whitespaces\b/
|
19
38
|
lang = extract_code_language(el.attr)
|
data/lib/cheepub/ext_hash.rb
CHANGED
@@ -14,6 +14,18 @@ module Cheepub
|
|
14
14
|
def key_to_sym(key)
|
15
15
|
(key.to_sym rescue nil) || key
|
16
16
|
end
|
17
|
+
|
18
|
+
def deep_merge!(other_hash, &block)
|
19
|
+
merge!(other_hash) do |key, this_val, other_val|
|
20
|
+
if this_val.is_a?(Hash) && other_val.is_a?(Hash)
|
21
|
+
this_val.dup.deep_merge!(other_val, &block)
|
22
|
+
elsif block_given?
|
23
|
+
block.call(key, this_val, other_val)
|
24
|
+
else
|
25
|
+
other_val
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
17
29
|
end
|
18
30
|
end
|
19
31
|
end
|
@@ -11,6 +11,8 @@ module Cheepub
|
|
11
11
|
def initialize(src, params = Hash.new)
|
12
12
|
super
|
13
13
|
@book = GEPUB::Book.new
|
14
|
+
@asset_store = AssetStore.new(Dir.mktmpdir("cheepub"), @src ? File.dirname(@src) : nil)
|
15
|
+
params[:asset_store] = @asset_store
|
14
16
|
end
|
15
17
|
|
16
18
|
def output_file(params)
|
@@ -33,22 +35,23 @@ module Cheepub
|
|
33
35
|
## book.date= params[:date] || Time.now
|
34
36
|
@book.add_date(params[:date] || Time.now, nil)
|
35
37
|
@book.lastmodified = params[:lastModified] || Time.now
|
36
|
-
@book.page_progression_direction = params[:pageDirection]
|
38
|
+
@book.page_progression_direction = params[:pageDirection] || "ltr"
|
37
39
|
style_content = apply_template("style.css.erb")
|
38
40
|
@book.add_item("style.css").add_raw_content(style_content)
|
39
41
|
@book.ordered do
|
40
42
|
make_titlepage(params)
|
41
43
|
nav = Cheepub::Nav.new(@content)
|
42
44
|
@book.add_item('nav.xhtml', nil,nil,'properties'=>['nav']).add_raw_content(nav.to_html)
|
43
|
-
@content.
|
45
|
+
@content.each_with_index do |file, idx|
|
46
|
+
html = Cheepub::Markdown.new(file, asset_store: @asset_store).to_html
|
47
|
+
filename = "bodymatter_#{idx}.xhtml"
|
44
48
|
@book.add_item(filename).add_raw_content(html)
|
45
49
|
end
|
50
|
+
make_colophon(params)
|
51
|
+
end
|
52
|
+
@asset_store.each_relpath_and_content do |path, content|
|
53
|
+
@book.add_item(path).add_raw_content(content)
|
46
54
|
end
|
47
|
-
end
|
48
|
-
|
49
|
-
def apply_template(template_file)
|
50
|
-
template = File.read(File.join(Cheepub::TEMPLATES_DIR, template_file))
|
51
|
-
return ERB.new(template).result(binding)
|
52
55
|
end
|
53
56
|
|
54
57
|
def make_titlepage(params)
|
@@ -57,6 +60,21 @@ module Cheepub
|
|
57
60
|
@book.add_item("titlepage.xhtml").add_raw_content(titlepage_content)
|
58
61
|
end
|
59
62
|
end
|
63
|
+
|
64
|
+
def make_colophon(params)
|
65
|
+
if params[:colophon]
|
66
|
+
@colophon = params[:colophon]
|
67
|
+
@colophon_before = params[:colophon_before] || ""
|
68
|
+
@colophon_after = params[:colophon_after] || ""
|
69
|
+
content = apply_template("colophon.xhtml.erb")
|
70
|
+
@book.add_item("colophon.xhtml").add_raw_content(content)
|
71
|
+
end
|
72
|
+
end
|
73
|
+
|
74
|
+
def apply_template(template_file)
|
75
|
+
template = File.read(File.join(Cheepub::TEMPLATES_DIR, template_file))
|
76
|
+
return ERB.new(template).result(binding)
|
77
|
+
end
|
60
78
|
end
|
61
79
|
end
|
62
80
|
end
|
@@ -28,7 +28,7 @@ module Cheepub
|
|
28
28
|
parse_creator(params[:creator])
|
29
29
|
##@maker.language = params[:language] || 'ja'
|
30
30
|
@maker.publisher = params[:publisher] if params[:publisher]
|
31
|
-
@maker.date= params[:date] || Time.now
|
31
|
+
@maker.date = params[:date] || Time.now
|
32
32
|
@maker.lastmodified = params[:lastModified] || Time.now
|
33
33
|
@maker.page_progression_direction = params[:pageDirection]
|
34
34
|
if params.key?(:latexCommand)
|
@@ -41,7 +41,21 @@ module Cheepub
|
|
41
41
|
if params[:documentClass]
|
42
42
|
@maker.document_class = params[:documentClass]
|
43
43
|
end
|
44
|
-
|
44
|
+
if params[:titlepage]
|
45
|
+
@maker.titlepage = params[:titlepage]
|
46
|
+
end
|
47
|
+
if params[:colophon]
|
48
|
+
@maker.colophon = params[:colophon]
|
49
|
+
end
|
50
|
+
if params[:colophon_before]
|
51
|
+
@maker.colophon_before = params[:colophon_before].gsub(/\n/m, "\\par ") + "\\vspace{5mm} \\par\n"
|
52
|
+
end
|
53
|
+
if params[:colophon_after]
|
54
|
+
@maker.colophon_after = params[:colophon_after].gsub(/\n/m, "\\par ")
|
55
|
+
end
|
56
|
+
@content.each_with_index do |file, idx|
|
57
|
+
content = Cheepub::Markdown.new(file, page_direction: params[:pageDirection]).to_latex
|
58
|
+
filename = "bodymatter_#{idx}.tex"
|
45
59
|
@maker.add_item(filename, content)
|
46
60
|
end
|
47
61
|
end
|
data/lib/cheepub/i18n.rb
ADDED
@@ -0,0 +1,131 @@
|
|
1
|
+
require 'cheepub/ext_hash'
|
2
|
+
|
3
|
+
module Cheepub
|
4
|
+
class I18n
|
5
|
+
using Cheepub::ExtHash
|
6
|
+
|
7
|
+
## some codes are from Ruby's I18n https://github.com/svenfuchs/i18n/
|
8
|
+
|
9
|
+
class InterpolateError < ArgumentError
|
10
|
+
def initialize(key, values, str)
|
11
|
+
@key, @values, @str = key, values, str
|
12
|
+
super "missing interpolation argument #{key.inspect} in #{str.inspect} (#{values.inspect} given)"
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
class InvalidLocaleData < ArgumentError
|
17
|
+
attr_reader :filename
|
18
|
+
def initialize(filename, exception_message)
|
19
|
+
@filename, @exception_message = filename, exception_message
|
20
|
+
super "can not load translations from #{filename}: #{exception_message}"
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
INTERPOLATION_PATTERN = %r<(?:%%|%\{([A-Za-z0-9_]+)\})>
|
25
|
+
|
26
|
+
def self.load_path=(path)
|
27
|
+
@i18n.load_path = path
|
28
|
+
end
|
29
|
+
|
30
|
+
def self.load_path
|
31
|
+
@i18n.load_path ||= []
|
32
|
+
@i18n.load_path
|
33
|
+
end
|
34
|
+
|
35
|
+
def self.available_locales=(locales)
|
36
|
+
@i18n.available_locales = locales
|
37
|
+
end
|
38
|
+
|
39
|
+
def self.available_locales
|
40
|
+
@i18n.available_locales
|
41
|
+
end
|
42
|
+
|
43
|
+
def self.default_locale=(locale)
|
44
|
+
@i18n.default_locale = locale
|
45
|
+
end
|
46
|
+
|
47
|
+
def self.t(*args)
|
48
|
+
key = args.shift
|
49
|
+
@i18n.translate(key, args)
|
50
|
+
end
|
51
|
+
|
52
|
+
@i18n = self.new
|
53
|
+
|
54
|
+
attr_accessor :load_path, :available_locales, :default_locale
|
55
|
+
|
56
|
+
def initialize
|
57
|
+
@translations = {}
|
58
|
+
@available_locales = [:ja, :en]
|
59
|
+
@default_locales = :en
|
60
|
+
end
|
61
|
+
|
62
|
+
def load_files(*files)
|
63
|
+
filenames = I18n.load_path if filenames.empty?
|
64
|
+
filenames.each { |filename| load_data(filename) }
|
65
|
+
end
|
66
|
+
|
67
|
+
def load_data(file)
|
68
|
+
begin
|
69
|
+
data = nil
|
70
|
+
if file.kind_of?(Hash)
|
71
|
+
data = file
|
72
|
+
else
|
73
|
+
content = File.read(file)
|
74
|
+
data = YAML.safe_load(content)
|
75
|
+
end
|
76
|
+
data.symbolize_keys!
|
77
|
+
pp data
|
78
|
+
data.each { |locale, d| store_translations(locale, d || {}) }
|
79
|
+
rescue => e
|
80
|
+
raise InvalidLocaleData.new(file, e.inspect)
|
81
|
+
end
|
82
|
+
end
|
83
|
+
|
84
|
+
def store_translations(locale, data)
|
85
|
+
locale = locale.to_sym
|
86
|
+
if !I18n.available_locales.include?(locale)
|
87
|
+
return data
|
88
|
+
end
|
89
|
+
translations[locale] ||= {}
|
90
|
+
data.symbolize_keys!
|
91
|
+
translations[locale].deep_merge!(data)
|
92
|
+
end
|
93
|
+
|
94
|
+
def translations
|
95
|
+
@translations
|
96
|
+
end
|
97
|
+
|
98
|
+
def translate(key, options = {})
|
99
|
+
locale ||= @default_locale
|
100
|
+
entry = lookup(locale, key)
|
101
|
+
interpolate(entry, options)
|
102
|
+
end
|
103
|
+
|
104
|
+
alias_method :t, :translate
|
105
|
+
|
106
|
+
def lookup(locale, key)
|
107
|
+
translations[locale][key] rescue nil
|
108
|
+
end
|
109
|
+
|
110
|
+
def interpolate(str, values)
|
111
|
+
return "" if str.nil?
|
112
|
+
str.gsub(INTERPOLATION_PATTERN) do |match|
|
113
|
+
if match == '%%'
|
114
|
+
'%'
|
115
|
+
else
|
116
|
+
key = $1.to_sym
|
117
|
+
if values.key?(key)
|
118
|
+
values[key]
|
119
|
+
else
|
120
|
+
raise I18n::InterpolateError.new(key, values, str)
|
121
|
+
end
|
122
|
+
end
|
123
|
+
end
|
124
|
+
end
|
125
|
+
end
|
126
|
+
|
127
|
+
I18n.load_path += Dir["../../locale/*.yml"]
|
128
|
+
I18n.available_locales = [:en, :ja]
|
129
|
+
I18n.default_locale = :ja
|
130
|
+
|
131
|
+
end
|
data/lib/cheepub/nav.rb
CHANGED
@@ -28,7 +28,11 @@ module Cheepub
|
|
28
28
|
end
|
29
29
|
|
30
30
|
def make_file_list
|
31
|
-
@content.
|
31
|
+
@content.map.with_index do |file, idx|
|
32
|
+
html = Cheepub::Markdown.new(file, ignore_images: true).to_html
|
33
|
+
filename = "bodymatter_#{idx}.xhtml"
|
34
|
+
[filename, html]
|
35
|
+
end.to_a
|
32
36
|
end
|
33
37
|
end
|
34
38
|
end
|
data/lib/cheepub/version.rb
CHANGED
@@ -0,0 +1,164 @@
|
|
1
|
+
---
|
2
|
+
author: ベアトリクス・ポッター
|
3
|
+
title: あなうさピーターのはなし
|
4
|
+
creator:
|
5
|
+
trl: おおくぼゆう
|
6
|
+
publisher: 青空文庫
|
7
|
+
license: CC-BY 2.1 JP http://creativecommons.org/licenses/by/2.1/jp/
|
8
|
+
---
|
9
|
+
|
10
|
+
# あなうさピーターのはなし
|
11
|
+
|
12
|
+
## THE TALE OF PETER RABBIT
|
13
|
+
|
14
|
+
## ベアトリクス・ポッター Beatrix Potter
|
15
|
+
|
16
|
+
## おおくぼゆう やく
|
17
|
+
|
18
|
+
|
19
|
+
![表紙絵](fig51344_01.png)
|
20
|
+
|
21
|
+
--------
|
22
|
+
|
23
|
+
![口絵1](fig51344_02.png)
|
24
|
+
![口絵2](fig51344_03.png)
|
25
|
+
|
26
|
+
![挿絵1](fig51344_04.png)
|
27
|
+
|
28
|
+
むかしむかし あるところに 4ひきの こうさぎが おりました。 なまえは それぞれ
|
29
|
+
フロプシー、
|
30
|
+
モプシー、
|
31
|
+
カトンテル、
|
32
|
+
ピーターです。
|
33
|
+
|
34
|
+
4ひきは おかあさんと いっしょに とってもおおきな モミのきの したにある あなのなかに すんでいました。
|
35
|
+
|
36
|
+
![挿絵2](fig51344_05.png)
|
37
|
+
|
38
|
+
あるひの あさ、 あなうさママが いいました。
|
39
|
+
|
40
|
+
「さあ おまえたち、 のはらのなかや こみちのさきで あそんでらっしゃい。 でも、 マグレガーおじさんの おにわには いっちゃダメよ。 むかし おとうさんが そこで ひょんなことから マグレガーおばさんに つかまって パイに されたんだから。」
|
41
|
+
|
42
|
+
![挿絵3](fig51344_06.png)
|
43
|
+
|
44
|
+
「いってらっしゃい、 きを つけるのよ。 おかあさん、 るすに してるから。」
|
45
|
+
|
46
|
+
![挿絵4](fig51344_07.png)
|
47
|
+
|
48
|
+
それから あなうさママは かごと かさを てにもって、 もりの むこうの パンやさんへ むかいました。 かったのは 1きんの くろパンと ぶどうパンを 5つです。
|
49
|
+
|
50
|
+
![挿絵5](fig51344_08.png)
|
51
|
+
|
52
|
+
フロプシーと モプシーと カトンテルは とっても いいこでしたので、 こみちを くだって クロイチゴつみに でかけました。
|
53
|
+
|
54
|
+
![挿絵6](fig51344_09.png)
|
55
|
+
|
56
|
+
けれども ピーターは ひどく やんちゃでしたので、 そのまま マグレガーおじさんの おにわに いちもくさん、 いりぐちの さくの したを むりくり くぐりぬけたのです!
|
57
|
+
|
58
|
+
![挿絵7](fig51344_10.png)
|
59
|
+
|
60
|
+
すぐさま レタスと インゲンを かじって おまけに ハツカダイコンまで。
|
61
|
+
|
62
|
+
![挿絵8](fig51344_11.png)
|
63
|
+
|
64
|
+
すると どうも きぶんが わるくなったので おくすりの パセリを さがすことに しました。
|
65
|
+
|
66
|
+
![挿絵9](fig51344_12.png)
|
67
|
+
|
68
|
+
ところが キュウリの なえばこを まわったところで でくわしたのが、 なんと マグレガーおじさん!
|
69
|
+
|
70
|
+
![挿絵10](fig51344_13.png)
|
71
|
+
|
72
|
+
マグレガーおじさんは よつんばいで キャベツのなえを うえていたのですが、 とびあがって ピーターを おいかけます。 くわを ふりふり さけぶのです。 「まてえ、 ぬすっと!」
|
73
|
+
|
74
|
+
![挿絵11](fig51344_14.png)
|
75
|
+
|
76
|
+
ピーターは もう びっくりして ふるえあがって にわじゅうを かけまわりました。 それというのも いりぐちが どこにあったのか わからなくなったのです。
|
77
|
+
しかも キャベツばたけで くつを かたっぽ、 ジャガイモばたけで もうかたっぽを なくしてしまいました。
|
78
|
+
|
79
|
+
![挿絵12](fig51344_15.png)
|
80
|
+
|
81
|
+
くつも ないので よつあしで はしると ぐんぐん はやくなって、 うまくいけば にげられたと おもうのですが、 うんわるく スグリの あみに つっこんでしまい、 うわぎの おおきな ボタンが ひっかかってしまったのです。 ちなみに あおの うわぎで しんちゅうの ボタンつき おろしたての ものでした。
|
82
|
+
|
83
|
+
![挿絵13](fig51344_16.png)
|
84
|
+
|
85
|
+
ぼくは もう しぬんだな、 ピーターは おおつぶの なみだを ながしました。 でも そのなきごえが たまたま やさしい すずめたちにも きこえて、 そして あわてて そばに とんできて あきらめないでと いうのです。
|
86
|
+
|
87
|
+
![挿絵14](fig51344_17.png)
|
88
|
+
|
89
|
+
マグレガーおじさんが やってきて もってきた ふるいを ピーターの うえから ぱっと かぶせようと しましたが、 ピーターは すんでのところで うわぎを ぬぎぬぎ あとに のこして にげだしました。
|
90
|
+
|
91
|
+
![挿絵15](fig51344_18.png)
|
92
|
+
|
93
|
+
そして ものおきごやに かけこんで じょうろのなかに とびこみました。 とってもいい かくればだと おもったのに みずが たくさん はいっているなんて。
|
94
|
+
|
95
|
+
![挿絵16](fig51344_19.png)
|
96
|
+
|
97
|
+
マグレガーおじさんには まるわかりでした。 ピーターは ぜったい ものおきごやの どこかに いる。 もしかすると うえきばちの なかかもしれない。 やがて そろりと もちあげて ひとつずつ なかを みるのです。
|
98
|
+
まさに そのとき ピーターが くしゃみを ——「はっくしゅん!」 マグレガーおじさんが たちまち ちかづきます。
|
99
|
+
|
100
|
+
![挿絵17](fig51344_20.png)
|
101
|
+
|
102
|
+
あしで ふみつけられそうに なりましたが、 ピーターは まどの そとへと とびだして ついでに うえきを 3つ たおしました。 まどが ちいさすぎたので、 マグレガーおじさんも ピーターを おいかけるのを あきらめて のらしごとへ もどることに しました。
|
103
|
+
|
104
|
+
![挿絵18](fig51344_21.png)
|
105
|
+
|
106
|
+
ピーターは ほっとして こしを おちつけます。 いきも きれぎれ、 こころも ぶるぶる、 どっちへいったら いいのか ちっとも わかりません。 しかも じょうろのなかに いたので もう ずぶぬれです。
|
107
|
+
しばらくして うろちょろ しはじめましたが、 とぼとぼ —— とぼとぼ —— ゆっくりと あるいて きょろきょろ。
|
108
|
+
|
109
|
+
![挿絵19](fig51344_22.png)
|
110
|
+
|
111
|
+
かべに ドアを みつけましたが、 かぎが しまっていて したを くぐりぬけようにも ぷっくりした こうさぎの とおる すきまは ありません。
|
112
|
+
おかあさんねずみが いしの とぐちを はいったり でたりして きのなかで まっている かぞくに おまめを はこんでいます。 ピーターは そのねずみに いりぐちへの いきかたを ききましたが、 くちに おおきな おまめを くわえていましたので ねずみは なにも へんじが できません。 ただ くびを ふるだけなので、 ピーターは なみだが でてきました。
|
113
|
+
|
114
|
+
![挿絵20](fig51344_23.png)
|
115
|
+
|
116
|
+
それから おにわを つっきって かえりみちを さがそうと しましたが、 よけいに まよってしまいました。 やがて マグレガーおじさんが みずくみをする ためいけのところへ たどりつきます。 しろい ねこが きんぎょを じっと にらんでいて ぴくりとも うごきませんが ときたま しっぽの さきが いきものみたいに くねくねと していました。 ピーターは そっとしておくのが いちばんだと おもいました。 いとこの ばにばにベンジャミンくんから ねこのことは それなりに きいていたのです。
|
117
|
+
|
118
|
+
![挿絵21](fig51344_24.png)
|
119
|
+
|
120
|
+
ものおきごやに もどろうとすると いきなり すぐそばから くわの おとが きこえてきました。 さっくり、 さくさく、 さっくり。 ピーターは しげみのしたを あたふたと はしりまわります。 けれども なんということも ないので すぐに でていって ておしぐるまの うえへ のぼり ようすを うかがってみました。 まず みえたのが タマネギばたけを たがやす マグレガーおじさん、 ピーターには せなかを むけていて なんと そのむこうに いりぐちが あるのです!
|
121
|
+
|
122
|
+
![挿絵22](fig51344_25.png)
|
123
|
+
|
124
|
+
ピーターは おとも たてずに ておしぐるまを おりて ぜんそくりょくで はしりだしました。 クロスグリの しげみのうら まっすぐ みちを すすみます。 かどのところで マグレガーおじさんに みつかりましたが ピーターは かまいません。 いりぐちのしたに すべりこんで とうとう にわのそと、 もりに はいれば あんぜんです。
|
125
|
+
|
126
|
+
![挿絵23](fig51344_26.png)
|
127
|
+
|
128
|
+
マグレガーおじさんは ちいさな うわぎと くつを ぼうに ひっかけ からすよけの かかしに しました。 ピーターは そのままずっと はしりっぱなしで ふりかえることもなく おおきな モミのきの おうちまで かえりました。
|
129
|
+
|
130
|
+
![挿絵24](fig51344_27.png)
|
131
|
+
|
132
|
+
もう くたくたなので うさぎあなの ふかふかした やわらかい つちの じめんに ねっころがると まぶたが すぐに おちます。 おかあさんは おりょうりの さいちゅうで てが はなせませんでしたが、 みにつけていたものは どうしたのかしらと くびを かしげました。 つい このあいだも うわぎと くつを なくしたっていうのに。
|
133
|
+
|
134
|
+
![挿絵25](fig51344_28.png)
|
135
|
+
|
136
|
+
なんといったら いいのか、 ピーターは そのひの ばんは ずっと ぐあいが よくありませんでした。 おかあさんは ベッドに ねかしつけ カモミールの おちゃを つくってあげました。 ピーターへの おくすりと いうわけです!
|
137
|
+
「ねるまえに おおさじいっぱい のむこと。」
|
138
|
+
|
139
|
+
![挿絵26](fig51344_29.png)
|
140
|
+
|
141
|
+
かたや フロプシーと モプシーと カトンテルは ばんごはんに パンと ぎゅうにゅうと クロイチゴを たべました。
|
142
|
+
|
143
|
+
|
144
|
+
{: text-right}
|
145
|
+
(おしまい)
|
146
|
+
|
147
|
+
------
|
148
|
+
|
149
|
+
翻訳の底本:Beatrix Potter (1902) "The Tale of Peter Rabbit"
|
150
|
+
上記の翻訳底本は、著作権が失効しています。
|
151
|
+
2009(平成21)年11月12日翻訳
|
152
|
+
2010(平成22)年2月10日修正
|
153
|
+
2011(平成23)年8月9日微修正
|
154
|
+
2013(平成25)年9月1日修正
|
155
|
+
※この翻訳は[「クリエイティブ・コモンズ 表示 2.1 日本 ライセンス」(http://creativecommons.org/licenses/by/2.1/jp/)](http://creativecommons.org/licenses/by/2.1/jp/)によって公開されています。
|
156
|
+
[![Creative Commons License](http://i.creativecommons.org/l/by/2.1/jp/88x31.png)](http://creativecommons.org/licenses/by/2.1/jp/)
|
157
|
+
上記のライセンスに従って、訳者に断りなく自由に利用・複製・再配布することができます。
|
158
|
+
※翻訳についてのお問い合わせは、青空文庫ではなく、[訳者本人(http://www.alz.jp/221b/)](http://www.alz.jp/221b/)までお願いします。
|
159
|
+
翻訳者:大久保ゆう
|
160
|
+
2014年3月26日作成
|
161
|
+
青空文庫収録ファイル:
|
162
|
+
このファイルは、著作権者自らの意思により、インターネットの図書館、[青空文庫(http://www.aozora.gr.jp/)](http://www.aozora.gr.jp/)に収録されています。
|
163
|
+
|
164
|
+
原文: [https://www.aozora.gr.jp/cards/001505/card51344.html](https://www.aozora.gr.jp/cards/001505/card51344.html)
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
@@ -0,0 +1,67 @@
|
|
1
|
+
---
|
2
|
+
title: 山月記
|
3
|
+
author: 中島 敦
|
4
|
+
publisher: 青空文庫
|
5
|
+
pageDirection: rtl
|
6
|
+
license: public domain
|
7
|
+
colophon_before: "一九九八年十一月十二日 公開\n二〇一〇年十一月 二日 修正"
|
8
|
+
colophon_after: "青空文庫作成ファイル\nこのファイルは、インターネットの図書館、青空文庫(http://www.aozora.gr.jp/)で作られました。入力、校正、制作にあたったのは、ボランティアの皆さんです。\n(原文: https://www.aozora.gr.jp/cards/000119/card624.html)"
|
9
|
+
colophon:
|
10
|
+
著 者: 中島 敦
|
11
|
+
底 本:
|
12
|
+
- 「李陵・山月記」新潮文庫、新潮社
|
13
|
+
- 一九六九(昭和四十四)年九月二〇日発行
|
14
|
+
入 力: 平松大樹
|
15
|
+
校 正: 林めぐみ
|
16
|
+
発 行: 青空文庫
|
17
|
+
---
|
18
|
+
|
19
|
+
# 山月記
|
20
|
+
|
21
|
+
{隴西|ろうさい}の{李徴|りちょう}は博学{才穎|さいえい}、天宝の末年、若くして名を{虎榜|こぼう}に連ね、ついで{江南尉|こうなんい}に補せられたが、性、{狷介|けんかい}、{自|みずか}ら{恃|たの}むところ{頗|すこぶ}る厚く、{賤吏|せんり}に甘んずるを{潔|いさぎよ}しとしなかった。いくばくもなく官を退いた後は、{故山|こざん}、{虢略|かくりゃく}に{帰臥|きが}し、人と{交|まじわり}を絶って、ひたすら詩作に{耽|ふけ}った。下吏となって長く{膝|ひざ}を俗悪な大官の前に屈するよりは、詩家としての名を死後百年に{遺|のこ}そうとしたのである。しかし、文名は容易に揚らず、生活は日を{逐|お}うて苦しくなる。李徴は{漸|ようや}く{焦躁|しょうそう}に駆られて来た。この{頃|ころ}からその{容貌|ようぼう}も{峭刻|しょうこく}となり、肉落ち骨{秀|ひい}で、眼光のみ{徒|いたず}らに{炯々|けいけい}として、{曾|かつ}て進士に{登第|とうだい}した頃の{豊頬|ほうきょう}の美少年の{俤|おもかげ}は、{何処|どこ}に求めようもない。数年の後、貧窮に{堪|た}えず、妻子の衣食のために{遂|つい}に節を屈して、再び東へ赴き、一地方官吏の職を奉ずることになった。一方、これは、{己|おのれ}の詩業に半ば絶望したためでもある。曾ての同輩は既に{遥|はる}か高位に進み、彼が昔、鈍物として{歯牙|しが}にもかけなかったその連中の下命を拝さねばならぬことが、往年の{儁才|しゅんさい}李徴の自尊心を{如何|いか}に{傷|きずつ}けたかは、想像に{難|かた}くない。彼は{怏々|おうおう}として楽しまず、{狂悖|きょうはい}の性は{愈々|いよいよ}抑え{難|がた}くなった。一年の後、公用で旅に出、{汝水|じょすい}のほとりに宿った時、遂に発狂した。{或|ある}夜半、急に顔色を変えて寝床から起上ると、何か訳の分らぬことを叫びつつそのまま下にとび下りて、{闇|やみ}の中へ{駈出|かけだ}した。彼は二度と{戻|もど}って来なかった。附近の山野を捜索しても、何の手掛りもない。その後李徴がどうなったかを知る者は、{誰|だれ}もなかった。
|
22
|
+
|
23
|
+
翌年、{監察御史|かんさつぎょし}、{陳郡|ちんぐん}の{袁傪|えんさん}という者、勅命を奉じて{嶺南|れいなん}に{使|つかい}し、{途|みち}に{商於|しょうお}の地に宿った。次の朝{未|ま}だ暗い{中|うち}に出発しようとしたところ、駅吏が言うことに、これから先の道に{人喰虎|ひとくいどら}が出る{故|ゆえ}、旅人は白昼でなければ、通れない。今はまだ朝が早いから、今少し待たれたが{宜|よろ}しいでしょうと。袁傪は、しかし、{供廻|ともまわ}りの多勢なのを恃み、駅吏の言葉を{斥|しりぞ}けて、出発した。残月の光をたよりに林中の草地を通って行った時、果して一匹の{猛虎|もうこ}が{叢|くさむら}の中から躍り出た。虎は、あわや袁傪に躍りかかるかと見えたが、{忽|たちま}ち身を{飜|ひるがえ}して、元の叢に隠れた。叢の中から人間の声で「あぶないところだった」と繰返し{呟|つぶや}くのが聞えた。その声に袁傪は聞き{憶|おぼ}えがあった。{驚懼|きょうく}の中にも、彼は{咄嗟|とっさ}に思いあたって、叫んだ。「その声は、我が友、李徴子ではないか?」袁傪は李徴と同年に進士の第に登り、友人の少かった李徴にとっては、最も親しい友であった。温和な袁傪の性格が、{峻峭|しゅんしょう}な李徴の性情と衝突しなかったためであろう。
|
24
|
+
|
25
|
+
叢の中からは、{暫|しばら}く返辞が無かった。しのび泣きかと思われる{微|かす}かな声が時々{洩|も}れるばかりである。ややあって、低い声が答えた。「如何にも自分は隴西の李徴である」と。
|
26
|
+
|
27
|
+
袁傪は恐怖を忘れ、馬から下りて叢に近づき、{懐|なつ}かしげに{久闊|きゅうかつ}を叙した。そして、{何故|なぜ}叢から出て来ないのかと問うた。李徴の声が答えて言う。自分は今や異類の身となっている。どうして、おめおめと{故人|とも}の前にあさましい姿をさらせようか。かつ又、自分が姿を現せば、必ず君に{畏怖嫌厭|いふけんえん}の情を起させるに決っているからだ。しかし、今、図らずも故人に{遇|あ}うことを得て、{愧赧|きたん}の念をも忘れる程に懐かしい。どうか、ほんの暫くでいいから、我が醜悪な今の外形を{厭|いと}わず、曾て君の友李徴であったこの自分と話を交してくれないだろうか。
|
28
|
+
|
29
|
+
後で考えれば不思議だったが、その時、袁傪は、この超自然の怪異を、実に素直に{受容|うけい}れて、少しも怪もうとしなかった。彼は部下に命じて行列の進行を{停|と}め、自分は叢の{傍|かたわら}に立って、見えざる声と対談した。都の{噂|うわさ}、旧友の消息、袁傪が現在の地位、それに対する李徴の祝辞。青年時代に親しかった者同志の、あの隔てのない語調で、それ{等|ら}が語られた後、袁傪は、李徴がどうして今の身となるに至ったかを{訊|たず}ねた。草中の声は次のように語った。
|
30
|
+
|
31
|
+
今から一年程前、自分が旅に出て汝水のほとりに泊った夜のこと、一睡してから、ふと{眼|め}を覚ますと、戸外で誰かが我が名を呼んでいる。声に応じて外へ出て見ると、声は闇の中から{頻|しき}りに自分を招く。覚えず、自分は声を追うて走り出した。無我夢中で駈けて行く中に、{何時|いつ}しか途は山林に入り、しかも、知らぬ間に自分は左右の手で地を{攫|つか}んで走っていた。何か{身体|からだ}中に力が{充|み}ち満ちたような感じで、軽々と岩石を跳び越えて行った。気が付くと、手先や{肱|ひじ}のあたりに毛を生じているらしい。少し明るくなってから、谷川に臨んで姿を映して見ると、既に虎となっていた。自分は初め眼を信じなかった。次に、これは夢に違いないと考えた。夢の中で、これは夢だぞと知っているような夢を、自分はそれまでに見たことがあったから。どうしても夢でないと悟らねばならなかった時、自分は{茫然|ぼうぜん}とした。そうして{懼|おそ}れた。全く、どんな事でも起り得るのだと思うて、深く懼れた。しかし、何故こんな事になったのだろう。分らぬ。全く何事も我々には{判|わか}らぬ。理由も分らずに押付けられたものを大人しく受取って、理由も分らずに生きて行くのが、我々生きものの*さだめ*だ。自分は{直|す}ぐに死を{想|おも}うた。しかし、その時、眼の前を一匹の{兎|うさぎ}が駈け過ぎるのを見た途端に、自分の中の*人間*は忽ち姿を消した。再び自分の中の*人間*が目を覚ました時、自分の口は兎の血に{塗|まみ}れ、あたりには兎の毛が散らばっていた。これが虎としての最初の経験であった。それ以来今までにどんな所行をし続けて来たか、それは到底語るに忍びない。ただ、一日の中に必ず数時間は、人間の心が{還|かえ}って来る。そういう時には、曾ての日と同じく、人語も{操|あやつ}れれば、複雑な思考にも堪え得るし、{経書|けいしょ}の章句を{誦|そら}んずることも出来る。その人間の心で、虎としての{己|おのれ}の{残虐|ざんぎゃく}な{行|おこない}のあとを見、己の運命をふりかえる時が、最も情なく、恐しく、{憤|いきどお}ろしい。しかし、その、人間にかえる数時間も、日を経るに従って次第に短くなって行く。今までは、どうして虎などになったかと怪しんでいたのに、この間ひょいと気が付いて見たら、{己|おれ}はどうして以前、人間だったのかと考えていた。これは恐しいことだ。今少し{経|た}てば、{己|おれ}の中の人間の心は、獣としての習慣の中にすっかり{埋|うも}れて消えて{了|しま}うだろう。ちょうど、古い宮殿の{礎|いしずえ}が次第に土砂に埋没するように。そうすれば、しまいに己は自分の過去を忘れ果て、一匹の虎として狂い廻り、今日のように途で君と出会っても{故人|とも}と認めることなく、君を裂き{喰|くろ}うて何の悔も感じないだろう。一体、獣でも人間でも、もとは何か{他|ほか}のものだったんだろう。初めはそれを憶えているが、次第に忘れて了い、初めから今の形のものだったと思い込んでいるのではないか? いや、そんな事はどうでもいい。己の中の人間の心がすっかり消えて了えば、恐らく、その方が、己は*しあわせ*になれるだろう。だのに、己の中の人間は、その事を、この上なく恐しく感じているのだ。ああ、全く、どんなに、恐しく、{哀|かな}しく、切なく思っているだろう! 己が人間だった記憶のなくなることを。この気持は誰にも分らない。誰にも分らない。己と同じ身の上に成った者でなければ。ところで、そうだ。己がすっかり人間でなくなって了う前に、一つ頼んで置きたいことがある。
|
32
|
+
|
33
|
+
袁傪はじめ一行は、息をのんで、{叢中|そうちゅう}の声の語る不思議に聞入っていた。声は続けて言う。
|
34
|
+
|
35
|
+
他でもない。自分は元来詩人として名を成す積りでいた。しかも、業{未|いま}だ成らざるに、この運命に立至った。曾て作るところの詩数百{篇|ぺん}、{固|もと}より、まだ世に行われておらぬ。遺稿の所在も{最早|もはや}判らなくなっていよう。ところで、その中、今も{尚|なお}{記誦|きしょう}せるものが数十ある。これを我が{為|ため}に伝録して{戴|いただ}きたいのだ。何も、これに{仍|よ}って一人前の詩人{面|づら}をしたいのではない。作の巧拙は知らず、とにかく、産を破り心を狂わせてまで自分が{生涯|しょうがい}それに執着したところのものを、一部なりとも後代に伝えないでは、死んでも死に切れないのだ。
|
36
|
+
|
37
|
+
袁傪は部下に命じ、筆を執って叢中の声に{随|したが}って書きとらせた。李徴の声は叢の中から朗々と響いた。長短{凡|およ}そ三十篇、格調高雅、意趣卓逸、一読して作者の才の非凡を思わせるものばかりである。しかし、袁傪は感嘆しながらも{漠然|ばくぜん}と次のように感じていた。{成程|なるほど}、作者の素質が第一流に属するものであることは疑いない。しかし、このままでは、第一流の作品となるのには、{何処|どこ}か(非常に微妙な点に{於|おい}て)欠けるところがあるのではないか、と。
|
38
|
+
|
39
|
+
旧詩を吐き終った李徴の声は、突然調子を変え、自らを{嘲|あざけ}るか{如|ごと}くに言った。
|
40
|
+
|
41
|
+
{羞|はずか}しいことだが、今でも、こんな*あさましい*身と成り果てた今でも、{己|おれ}は、己の詩集が{長安|ちょうあん}風流人士の机の上に置かれている様を、夢に見ることがあるのだ。{岩窟|がんくつ}の中に横たわって見る夢にだよ。{嗤|わら}ってくれ。詩人に成りそこなって虎になった哀れな男を。(袁傪は昔の青年李徴の{自嘲癖|じちょうへき}を思出しながら、哀しく聞いていた。)そうだ。お笑い草ついでに、今の{懐|おもい}を即席の詩に述べて見ようか。この虎の中に、まだ、曾ての李徴が生きている*しるし*に。
|
42
|
+
|
43
|
+
袁傪は又下吏に命じてこれを書きとらせた。その詩に言う。
|
44
|
+
|
45
|
+
偶因狂疾成殊類 災患相仍不可逃
|
46
|
+
今日爪牙誰敢敵 当時声跡共相高
|
47
|
+
我為異物蓬茅下 君已乗軺気勢豪
|
48
|
+
此夕渓山対明月 不成長嘯但成嘷
|
49
|
+
|
50
|
+
時に、残月、光{冷|ひや}やかに、白露は地に{滋|しげ}く、樹間を渡る冷風は既に暁の近きを告げていた。人々は最早、事の奇異を忘れ、粛然として、この詩人の{薄倖|はっこう}を嘆じた。李徴の声は再び続ける。
|
51
|
+
|
52
|
+
{何故|なぜ}こんな運命になったか判らぬと、先刻は言ったが、しかし、考えように{依|よ}れば、思い当ることが全然ないでもない。人間であった時、{己|おれ}は努めて人との{交|まじわり}を避けた。人々は己を{倨傲|きょごう}だ、尊大だといった。実は、それが{殆|ほとん}ど{羞恥心|しゅうちしん}に近いものであることを、人々は知らなかった。{勿論|もちろん}、曾ての{郷党|きょうとう}の鬼才といわれた自分に、自尊心が無かったとは{云|い}わない。しかし、それは{臆病|おくびょう}な自尊心とでもいうべきものであった。己は詩によって名を成そうと思いながら、進んで師に就いたり、求めて詩友と交って{切磋琢磨|せっさたくま}に努めたりすることをしなかった。かといって、又、己は俗物の間に{伍|ご}することも{潔|いさぎよ}しとしなかった。共に、我が臆病な自尊心と、尊大な羞恥心との{所為|せい}である。{己|おのれ}の{珠|たま}に{非|あら}ざることを{惧|おそ}れるが{故|ゆえ}に、{敢|あえ}て刻苦して{磨|みが}こうともせず、又、己の珠なるべきを半ば信ずるが故に、{碌々|ろくろく}として{瓦|かわら}に伍することも出来なかった。{己|おれ}は次第に世と離れ、人と遠ざかり、{憤悶|ふんもん}と{慙恚|ざんい}とによって{益々|ますます}{己|おのれ}の内なる臆病な自尊心を飼い*ふとらせる*結果になった。人間は誰でも猛獣使であり、その猛獣に当るのが、各人の性情だという。{己|おれ}の場合、この尊大な羞恥心が猛獣だった。虎だったのだ。これが己を損い、妻子を苦しめ、友人を傷つけ、果ては、己の外形をかくの如く、内心にふさわしいものに変えて了ったのだ。今思えば、全く、己は、己の{有|も}っていた{僅|わず}かばかりの才能を空費して了った訳だ。人生は何事をも{為|な}さぬには余りに長いが、何事かを為すには余りに短いなどと口先ばかりの警句を{弄|ろう}しながら、事実は、才能の不足を{暴露|ばくろ}するかも知れないとの{卑怯|ひきょう}な{危惧|きぐ}と、刻苦を{厭|いと}う怠惰とが己の{凡|すべ}てだったのだ。己よりも遥かに乏しい才能でありながら、それを専一に磨いたがために、堂々たる詩家となった者が幾らでもいるのだ。虎と成り果てた今、己は{漸|ようや}くそれに気が付いた。それを思うと、己は今も胸を{灼|や}かれるような悔を感じる。己には最早人間としての生活は出来ない。たとえ、今、己が頭の中で、どんな優れた詩を作ったにしたところで、どういう手段で発表できよう。まして、己の頭は{日毎|ひごと}に虎に近づいて行く。どうすればいいのだ。己の空費された過去は? 己は{堪|たま}らなくなる。そういう時、己は、向うの山の頂の{巖|いわ}に上り、{空谷|くうこく}に向って{吼|ほ}える。この胸を灼く悲しみを誰かに訴えたいのだ。己は昨夕も、{彼処|あそこ}で月に向って{咆|ほ}えた。誰かにこの苦しみが分って{貰|もら}えないかと。しかし、獣どもは己の声を聞いて、{唯|ただ}、{懼|おそ}れ、ひれ伏すばかり。山も{樹|き}も月も露も、一匹の虎が怒り狂って、{哮|たけ}っているとしか考えない。天に躍り地に伏して嘆いても、誰一人己の気持を分ってくれる者はない。ちょうど、人間だった頃、己の傷つき{易|やす}い内心を誰も理解してくれなかったように。己の毛皮の{濡|ぬ}れたのは、夜露のためばかりではない。
|
53
|
+
|
54
|
+
漸く{四辺|あたり}の暗さが薄らいで来た。木の間を伝って、{何処|どこ}からか、{暁角|ぎょうかく}が哀しげに響き始めた。
|
55
|
+
|
56
|
+
最早、別れを告げねばならぬ。酔わねばならぬ時が、(虎に還らねばならぬ時が)近づいたから、と、李徴の声が言った。だが、お別れする前にもう一つ頼みがある。それは我が妻子のことだ。{彼等|かれら}は{未|ま}だ{虢略|かくりゃく}にいる。固より、己の運命に就いては知る{筈|はず}がない。君が南から帰ったら、己は既に死んだと彼等に告げて貰えないだろうか。決して今日のことだけは明かさないで欲しい。厚かましいお願だが、彼等の孤弱を{憐|あわ}れんで、今後とも{道塗|どうと}に{飢凍|きとう}することのないように計らって戴けるならば、自分にとって、{恩倖|おんこう}、これに過ぎたるは{莫|な}い。
|
57
|
+
|
58
|
+
言終って、叢中から{慟哭|どうこく}の声が聞えた。袁もまた涙を{泛|うか}べ、{欣|よろこ}んで李徴の意に{副|そ}いたい{旨|むね}を答えた。李徴の声はしかし{忽|たちま}ち又先刻の自嘲的な調子に{戻|もど}って、言った。
|
59
|
+
|
60
|
+
本当は、{先|ま}ず、この事の方を先にお願いすべきだったのだ、己が人間だったなら。飢え凍えようとする妻子のことよりも、{己|おのれ}の乏しい詩業の方を気にかけているような男だから、こんな獣に身を{堕|おと}すのだ。
|
61
|
+
|
62
|
+
そうして、{附加|つけくわ}えて言うことに、袁傪が嶺南からの帰途には決してこの{途|みち}を通らないで欲しい、その時には自分が酔っていて{故人|とも}を認めずに襲いかかるかも知れないから。又、今別れてから、前方百歩の所にある、あの丘に上ったら、{此方|こちら}を振りかえって見て貰いたい。自分は今の姿をもう一度お目に掛けよう。勇に誇ろうとしてではない。我が醜悪な姿を示して、{以|もっ}て、再び{此処|ここ}を過ぎて自分に会おうとの気持を君に起させない為であると。
|
63
|
+
|
64
|
+
袁傪は叢に向って、{懇|ねんご}ろに別れの言葉を述べ、馬に上った。叢の中からは、又、{堪|た}え得ざるが如き{悲泣|ひきゅう}の声が{洩|も}れた。袁傪も幾度か叢を振返りながら、涙の中に出発した。
|
65
|
+
|
66
|
+
一行が丘の上についた時、彼等は、言われた通りに振返って、先程の林間の草地を{眺|なが}めた。忽ち、一匹の虎が草の茂みから道の上に躍り出たのを彼等は見た。虎は、既に白く光を失った月を仰いで、二声三声{咆哮|ほうこう}したかと思うと、又、元の叢に躍り入って、再びその姿を見なかった。
|
67
|
+
|
@@ -0,0 +1,70 @@
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
+
<!DOCTYPE html>
|
3
|
+
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:epub="http://www.idpf.org/2007/ops" xml:lang="ja" lang="ja">
|
4
|
+
<head>
|
5
|
+
<meta charset="utf-8" />
|
6
|
+
<link rel="stylesheet" href="style.css" type="text/css" />
|
7
|
+
<style type="text/css">
|
8
|
+
html {
|
9
|
+
-epub-writing-mode: horizontal-tb;
|
10
|
+
-webkit-writing-mode: horizontal-tb;
|
11
|
+
writing-mode: horizontal-tb;
|
12
|
+
font-family: sans-serif;
|
13
|
+
}
|
14
|
+
h1, h2, h3 {
|
15
|
+
font-size: 1em;
|
16
|
+
}
|
17
|
+
.colophonpage {
|
18
|
+
margin: 0 auto;
|
19
|
+
width: 100%;
|
20
|
+
text-align: center;
|
21
|
+
}
|
22
|
+
.colophon-table {
|
23
|
+
margin: 0 auto;
|
24
|
+
text-align: center;
|
25
|
+
}
|
26
|
+
.colophon-table th {
|
27
|
+
font-size: 1em;
|
28
|
+
font-weight: normal;
|
29
|
+
font-family: serif, sans-serif;
|
30
|
+
}
|
31
|
+
.colophon-title-main {
|
32
|
+
font-size: 1.2em;
|
33
|
+
font-weight: normal;
|
34
|
+
}
|
35
|
+
.colophon-creator {
|
36
|
+
margin: 0 auto;
|
37
|
+
padding: 1em 0;
|
38
|
+
border:solid #999;
|
39
|
+
border-width:1px 0 0 0;
|
40
|
+
margin: 0 auto;
|
41
|
+
font-size: 1em;
|
42
|
+
line-height: 1.2;
|
43
|
+
font-family: serif, sans-serif;
|
44
|
+
width: 70%;
|
45
|
+
}
|
46
|
+
</style>
|
47
|
+
<title><%= @book.title %></title>
|
48
|
+
</head>
|
49
|
+
<body class="backmatter" epub:type="backmatter">
|
50
|
+
<section class="colophonpage" epub:type="colophonpage" title="奥付">
|
51
|
+
<div class="colophon-title-before"></div>
|
52
|
+
<div class="colophon-title-main">
|
53
|
+
<h1 class="maintitle" epub:type="title"><%= @book.title %></h1>
|
54
|
+
</div>
|
55
|
+
<div class="titlepage-title-after"></div>
|
56
|
+
<div class="colophon-table-before">
|
57
|
+
<p><%= @colophon_before.gsub(/\n/m, "<br />") %></p>
|
58
|
+
</div>
|
59
|
+
<table class="colophon-table">
|
60
|
+
<% @colophon.each do |key, val| %>
|
61
|
+
<% val = val.join("<br />") if val.kind_of?(Array) %>
|
62
|
+
<tr><th><%= key %></th><td><%= val %></td></tr>
|
63
|
+
<% end %>
|
64
|
+
</table>
|
65
|
+
<div class="colophon-table-after">
|
66
|
+
<p><%= @colophon_after.gsub(/\n/m, "<br />") %></p>
|
67
|
+
</div>
|
68
|
+
</section>
|
69
|
+
</body>
|
70
|
+
</html>
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: cheepub
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.14.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- takahashim
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2020-11-17 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: gepub
|
@@ -16,28 +16,42 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version:
|
19
|
+
version: 1.0.2
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version:
|
26
|
+
version: 1.0.2
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: kramdown
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - ">="
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '0'
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - ">="
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '0'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: kramdown-parser-gfm
|
29
43
|
requirement: !ruby/object:Gem::Requirement
|
30
44
|
requirements:
|
31
45
|
- - "~>"
|
32
46
|
- !ruby/object:Gem::Version
|
33
|
-
version:
|
47
|
+
version: 1.0.1
|
34
48
|
type: :runtime
|
35
49
|
prerelease: false
|
36
50
|
version_requirements: !ruby/object:Gem::Requirement
|
37
51
|
requirements:
|
38
52
|
- - "~>"
|
39
53
|
- !ruby/object:Gem::Version
|
40
|
-
version:
|
54
|
+
version: 1.0.1
|
41
55
|
- !ruby/object:Gem::Dependency
|
42
56
|
name: clamp
|
43
57
|
requirement: !ruby/object:Gem::Requirement
|
@@ -98,58 +112,58 @@ dependencies:
|
|
98
112
|
name: rb_latex
|
99
113
|
requirement: !ruby/object:Gem::Requirement
|
100
114
|
requirements:
|
101
|
-
- - "
|
115
|
+
- - ">="
|
102
116
|
- !ruby/object:Gem::Version
|
103
|
-
version: 0
|
117
|
+
version: '0'
|
104
118
|
type: :runtime
|
105
119
|
prerelease: false
|
106
120
|
version_requirements: !ruby/object:Gem::Requirement
|
107
121
|
requirements:
|
108
|
-
- - "
|
122
|
+
- - ">="
|
109
123
|
- !ruby/object:Gem::Version
|
110
|
-
version: 0
|
124
|
+
version: '0'
|
111
125
|
- !ruby/object:Gem::Dependency
|
112
126
|
name: rufo
|
113
127
|
requirement: !ruby/object:Gem::Requirement
|
114
128
|
requirements:
|
115
|
-
- - "
|
129
|
+
- - ">="
|
116
130
|
- !ruby/object:Gem::Version
|
117
|
-
version: '0
|
131
|
+
version: '0'
|
118
132
|
type: :development
|
119
133
|
prerelease: false
|
120
134
|
version_requirements: !ruby/object:Gem::Requirement
|
121
135
|
requirements:
|
122
|
-
- - "
|
136
|
+
- - ">="
|
123
137
|
- !ruby/object:Gem::Version
|
124
|
-
version: '0
|
138
|
+
version: '0'
|
125
139
|
- !ruby/object:Gem::Dependency
|
126
140
|
name: bundler
|
127
141
|
requirement: !ruby/object:Gem::Requirement
|
128
142
|
requirements:
|
129
|
-
- - "
|
143
|
+
- - ">="
|
130
144
|
- !ruby/object:Gem::Version
|
131
|
-
version: '
|
145
|
+
version: '0'
|
132
146
|
type: :development
|
133
147
|
prerelease: false
|
134
148
|
version_requirements: !ruby/object:Gem::Requirement
|
135
149
|
requirements:
|
136
|
-
- - "
|
150
|
+
- - ">="
|
137
151
|
- !ruby/object:Gem::Version
|
138
|
-
version: '
|
152
|
+
version: '0'
|
139
153
|
- !ruby/object:Gem::Dependency
|
140
154
|
name: rake
|
141
155
|
requirement: !ruby/object:Gem::Requirement
|
142
156
|
requirements:
|
143
|
-
- - "
|
157
|
+
- - ">="
|
144
158
|
- !ruby/object:Gem::Version
|
145
|
-
version: '
|
159
|
+
version: '0'
|
146
160
|
type: :development
|
147
161
|
prerelease: false
|
148
162
|
version_requirements: !ruby/object:Gem::Requirement
|
149
163
|
requirements:
|
150
|
-
- - "
|
164
|
+
- - ">="
|
151
165
|
- !ruby/object:Gem::Version
|
152
|
-
version: '
|
166
|
+
version: '0'
|
153
167
|
- !ruby/object:Gem::Dependency
|
154
168
|
name: test-unit
|
155
169
|
requirement: !ruby/object:Gem::Requirement
|
@@ -192,7 +206,7 @@ dependencies:
|
|
192
206
|
- - ">="
|
193
207
|
- !ruby/object:Gem::Version
|
194
208
|
version: '0'
|
195
|
-
description: Simple EPUB generator from Markdown. Inspired by denden converter
|
209
|
+
description: Simple EPUB/PDF generator from Markdown. Inspired by denden converter
|
196
210
|
email:
|
197
211
|
- maki@rubycolor.org
|
198
212
|
executables:
|
@@ -200,8 +214,8 @@ executables:
|
|
200
214
|
extensions: []
|
201
215
|
extra_rdoc_files: []
|
202
216
|
files:
|
217
|
+
- ".github/workflows/ruby.yml"
|
203
218
|
- ".gitignore"
|
204
|
-
- ".travis.yml"
|
205
219
|
- Gemfile
|
206
220
|
- LICENSE
|
207
221
|
- README.md
|
@@ -212,8 +226,10 @@ files:
|
|
212
226
|
- doc/README_ja.md
|
213
227
|
- exe/cheepub
|
214
228
|
- lib/cheepub.rb
|
229
|
+
- lib/cheepub/asset_store.rb
|
215
230
|
- lib/cheepub/cli.rb
|
216
231
|
- lib/cheepub/content.rb
|
232
|
+
- lib/cheepub/converter/cheehtml.rb
|
217
233
|
- lib/cheepub/converter/cheelatex.rb
|
218
234
|
- lib/cheepub/error.rb
|
219
235
|
- lib/cheepub/ext_hash.rb
|
@@ -223,14 +239,46 @@ files:
|
|
223
239
|
- lib/cheepub/heading_item.rb
|
224
240
|
- lib/cheepub/heading_parser.rb
|
225
241
|
- lib/cheepub/heading_parser/handler.rb
|
242
|
+
- lib/cheepub/i18n.rb
|
226
243
|
- lib/cheepub/markdown.rb
|
227
244
|
- lib/cheepub/nav.rb
|
228
245
|
- lib/cheepub/version.rb
|
229
246
|
- lib/kramdown/parser/cheemarkdown.rb
|
230
247
|
- misc/conv_entity.rb
|
231
248
|
- misc/conv_ruby.rb
|
249
|
+
- samples/anausa_perter/anausa_peterno_hanashi.md
|
250
|
+
- samples/anausa_perter/fig51344_01.png
|
251
|
+
- samples/anausa_perter/fig51344_02.png
|
252
|
+
- samples/anausa_perter/fig51344_03.png
|
253
|
+
- samples/anausa_perter/fig51344_04.png
|
254
|
+
- samples/anausa_perter/fig51344_05.png
|
255
|
+
- samples/anausa_perter/fig51344_06.png
|
256
|
+
- samples/anausa_perter/fig51344_07.png
|
257
|
+
- samples/anausa_perter/fig51344_08.png
|
258
|
+
- samples/anausa_perter/fig51344_09.png
|
259
|
+
- samples/anausa_perter/fig51344_10.png
|
260
|
+
- samples/anausa_perter/fig51344_11.png
|
261
|
+
- samples/anausa_perter/fig51344_12.png
|
262
|
+
- samples/anausa_perter/fig51344_13.png
|
263
|
+
- samples/anausa_perter/fig51344_14.png
|
264
|
+
- samples/anausa_perter/fig51344_15.png
|
265
|
+
- samples/anausa_perter/fig51344_16.png
|
266
|
+
- samples/anausa_perter/fig51344_17.png
|
267
|
+
- samples/anausa_perter/fig51344_18.png
|
268
|
+
- samples/anausa_perter/fig51344_19.png
|
269
|
+
- samples/anausa_perter/fig51344_20.png
|
270
|
+
- samples/anausa_perter/fig51344_21.png
|
271
|
+
- samples/anausa_perter/fig51344_22.png
|
272
|
+
- samples/anausa_perter/fig51344_23.png
|
273
|
+
- samples/anausa_perter/fig51344_24.png
|
274
|
+
- samples/anausa_perter/fig51344_25.png
|
275
|
+
- samples/anausa_perter/fig51344_26.png
|
276
|
+
- samples/anausa_perter/fig51344_27.png
|
277
|
+
- samples/anausa_perter/fig51344_28.png
|
278
|
+
- samples/anausa_perter/fig51344_29.png
|
232
279
|
- samples/jlreq-readme-ja.md
|
233
280
|
- samples/sangetsuki.md
|
281
|
+
- samples/sangetsuki_colophon.md
|
234
282
|
- samples/thelastleaf.md
|
235
283
|
- samples/thelastleaf_ja.md
|
236
284
|
- samples/thelastleaf_ja_luatex.md
|
@@ -238,6 +286,7 @@ files:
|
|
238
286
|
- samples/yume_juya_luatex.md
|
239
287
|
- templates/bodymatter.html.erb
|
240
288
|
- templates/bodymatter.tex.erb
|
289
|
+
- templates/colophon.xhtml.erb
|
241
290
|
- templates/nav.xhtml.erb
|
242
291
|
- templates/style.css.erb
|
243
292
|
- templates/titlepage.xhtml.erb
|
@@ -259,9 +308,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
259
308
|
- !ruby/object:Gem::Version
|
260
309
|
version: '0'
|
261
310
|
requirements: []
|
262
|
-
|
263
|
-
rubygems_version: 2.7.3
|
311
|
+
rubygems_version: 3.1.2
|
264
312
|
signing_key:
|
265
313
|
specification_version: 4
|
266
|
-
summary: Simple EPUB generator from Markdown
|
314
|
+
summary: Simple EPUB/PDF generator from Markdown
|
267
315
|
test_files: []
|