review-retrovert 0.9.10 → 0.10.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.editorconfig +1 -1
- data/.gitignore +0 -1
- data/.pinact.yaml +12 -0
- data/.ruby-version +1 -1
- data/Dockerfile +2 -1
- data/Dockerfile.local +13 -0
- data/Gemfile.lock +62 -35
- data/Makefile +7 -0
- data/README.md +2 -1
- data/Rakefile +9 -0
- data/aqua.yaml +20 -0
- data/hooks/post_push +14 -1
- data/lib/review/retrovert/cli.rb +10 -2
- data/lib/review/retrovert/converter.rb +106 -20
- data/lib/review/retrovert/reviewdef.rb +29 -0
- data/lib/review/retrovert/sty/review-utbook.cls +7 -0
- data/lib/review/retrovert/version.rb +1 -1
- data/lib/review/retrovert/yamlconfig.rb +38 -1
- data/review-retrovert.gemspec +18 -4
- data/zizmor.yml +5 -0
- metadata +54 -121
- data/.github/FUNDING.yml +0 -4
- data/.github/workflows/release.yml +0 -26
- data/.github/workflows/retrovert.yml +0 -76
- data/testdata/mybook/.gitignore +0 -9
- data/testdata/mybook/.textlintrc +0 -11
- data/testdata/mybook/README.md +0 -43
- data/testdata/mybook/Rakefile +0 -24
- data/testdata/mybook/catalog.yml +0 -60
- data/testdata/mybook/config-noretrovert.yml +0 -404
- data/testdata/mybook/config-retrovert.yml +0 -16
- data/testdata/mybook/config-starter.yml +0 -264
- data/testdata/mybook/config.yml +0 -404
- data/testdata/mybook/contents/00-preface.re +0 -129
- data/testdata/mybook/contents/01-install.re +0 -305
- data/testdata/mybook/contents/02-tutorial.re +0 -1228
- data/testdata/mybook/contents/03-syntax.re +0 -4610
- data/testdata/mybook/contents/04-customize.re +0 -1064
- data/testdata/mybook/contents/05-faq.re +0 -606
- data/testdata/mybook/contents/06-bestpractice.re +0 -1343
- data/testdata/mybook/contents/91-compare.re +0 -418
- data/testdata/mybook/contents/92-filelist.re +0 -125
- data/testdata/mybook/contents/93-background.re +0 -267
- data/testdata/mybook/contents/99-postface.re +0 -39
- data/testdata/mybook/contents/r0-inner.re +0 -2
- data/testdata/mybook/contents/r0-root.re +0 -31
- data/testdata/mybook/contents/table.csv +0 -4
- data/testdata/mybook/contents/test.txt +0 -1
- data/testdata/mybook/css/normalize.css +0 -349
- data/testdata/mybook/css/webstyle.css +0 -692
- data/testdata/mybook/data/terms.txt +0 -3
- data/testdata/mybook/data/words.txt +0 -15
- data/testdata/mybook/images/03-syntax/favicon-16x16.png +0 -0
- data/testdata/mybook/images/03-syntax/figure_heretop.png +0 -0
- data/testdata/mybook/images/03-syntax/index-page.png +0 -0
- data/testdata/mybook/images/03-syntax/order-detail.png +0 -0
- data/testdata/mybook/images/03-syntax/tw-icon1.jpg +0 -0
- data/testdata/mybook/images/03-syntax/tw-icon2.jpg +0 -0
- data/testdata/mybook/images/03-syntax/tw-icon3.jpg +0 -0
- data/testdata/mybook/images/03-syntax/tw-icon4.jpg +0 -0
- data/testdata/mybook/images/04-customize/caption_pagebreak.png +0 -0
- data/testdata/mybook/images/04-customize/chaptitlepage_sample.png +0 -0
- data/testdata/mybook/images/04-customize/section_decoration_samples.png +0 -0
- data/testdata/mybook/images/05-faq/codeblock_rpadding1.png +0 -0
- data/testdata/mybook/images/05-faq/codeblock_rpadding2.png +0 -0
- data/testdata/mybook/images/05-faq/dummy-image.png +0 -0
- data/testdata/mybook/images/06-bestpractice/figure_heretop.png +0 -0
- data/testdata/mybook/images/06-bestpractice/font_beramono.png +0 -0
- data/testdata/mybook/images/06-bestpractice/heading_design1.png +0 -0
- data/testdata/mybook/images/06-bestpractice/heading_design2.png +0 -0
- data/testdata/mybook/images/06-bestpractice/margin_book.png +0 -0
- data/testdata/mybook/images/06-bestpractice/multiline-title.png +0 -0
- data/testdata/mybook/images/06-bestpractice/preface_numbered.png +0 -0
- data/testdata/mybook/images/06-bestpractice/program_border.png +0 -0
- data/testdata/mybook/images/06-bestpractice/sechead_design_4.png +0 -0
- data/testdata/mybook/images/06-bestpractice/section_title_wlines.png +0 -0
- data/testdata/mybook/images/06-bestpractice/titlepage-samples.png +0 -0
- data/testdata/mybook/images/93-background/bug913.png +0 -0
- data/testdata/mybook/images/93-background/slide2.png +0 -0
- data/testdata/mybook/images/avatar-b.png +0 -0
- data/testdata/mybook/images/avatar-g.png +0 -0
- data/testdata/mybook/images/avatar-r.png +0 -0
- data/testdata/mybook/images/caution-icon.png +0 -0
- data/testdata/mybook/images/cover_a5.pdf +0 -0
- data/testdata/mybook/images/cover_b5.pdf +0 -0
- data/testdata/mybook/images/info-icon.png +0 -0
- data/testdata/mybook/images/tw-icon.jpg +0 -0
- data/testdata/mybook/images/warning-icon.png +0 -0
- data/testdata/mybook/layouts/layout.epub.erb +0 -29
- data/testdata/mybook/layouts/layout.html5.erb +0 -108
- data/testdata/mybook/layouts/layout.tex.erb +0 -432
- data/testdata/mybook/layouts/layout.tex.erb.orig +0 -386
- data/testdata/mybook/lib/hooks/beforetexcompile.rb +0 -55
- data/testdata/mybook/lib/ruby/review-book.rb +0 -64
- data/testdata/mybook/lib/ruby/review-builder.rb +0 -1342
- data/testdata/mybook/lib/ruby/review-cli.rb +0 -58
- data/testdata/mybook/lib/ruby/review-compiler.rb +0 -1176
- data/testdata/mybook/lib/ruby/review-epubbuilder.rb +0 -33
- data/testdata/mybook/lib/ruby/review-epubmaker.rb +0 -609
- data/testdata/mybook/lib/ruby/review-htmlbuilder.rb +0 -949
- data/testdata/mybook/lib/ruby/review-latexbuilder.rb +0 -1065
- data/testdata/mybook/lib/ruby/review-maker.rb +0 -346
- data/testdata/mybook/lib/ruby/review-markdownbuilder.rb +0 -945
- data/testdata/mybook/lib/ruby/review-markdownmaker.rb +0 -91
- data/testdata/mybook/lib/ruby/review-monkeypatch.rb +0 -93
- data/testdata/mybook/lib/ruby/review-pdfmaker.rb +0 -546
- data/testdata/mybook/lib/ruby/review-textbuilder.rb +0 -36
- data/testdata/mybook/lib/ruby/review-tocparser.rb +0 -285
- data/testdata/mybook/lib/ruby/review-webmaker.rb +0 -448
- data/testdata/mybook/lib/tasks/mytasks.rake +0 -31
- data/testdata/mybook/lib/tasks/review.rake +0 -156
- data/testdata/mybook/lib/tasks/review.rake.orig +0 -72
- data/testdata/mybook/lib/tasks/starter.rake +0 -470
- data/testdata/mybook/locale.yml +0 -6
- data/testdata/mybook/review-ext.rb +0 -206
- data/testdata/mybook/sty/indexstyle.ist +0 -25
- data/testdata/mybook/sty/jumoline.sty +0 -310
- data/testdata/mybook/sty/mycolophon.sty +0 -81
- data/testdata/mybook/sty/mystyle.sty +0 -8
- data/testdata/mybook/sty/mytextsize.sty +0 -90
- data/testdata/mybook/sty/mytitlepage.sty +0 -126
- data/testdata/mybook/sty/review-base.sty +0 -276
- data/testdata/mybook/sty/reviewmacro.sty +0 -60
- data/testdata/mybook/sty/starter-codeblock.sty +0 -463
- data/testdata/mybook/sty/starter-color.sty +0 -134
- data/testdata/mybook/sty/starter-font.sty +0 -112
- data/testdata/mybook/sty/starter-heading.sty +0 -561
- data/testdata/mybook/sty/starter-misc.sty +0 -894
- data/testdata/mybook/sty/starter-note.sty +0 -180
- data/testdata/mybook/sty/starter-section.sty +0 -262
- data/testdata/mybook/sty/starter-talklist.sty +0 -105
- data/testdata/mybook/sty/starter-toc.sty +0 -72
- data/testdata/mybook/sty/starter-util.sty +0 -35
- data/testdata/mybook/sty/starter.sty +0 -36
- data/testdata/mybook/style.css +0 -597
|
@@ -1,91 +0,0 @@
|
|
|
1
|
-
# -*- coding: utf-8 -*-
|
|
2
|
-
|
|
3
|
-
require 'pathname'
|
|
4
|
-
|
|
5
|
-
require_relative './review-cli'
|
|
6
|
-
require_relative './review-maker'
|
|
7
|
-
require_relative './review-markdownbuilder'
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
module ReVIEW
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
class MarkdownMaker < Maker
|
|
14
|
-
|
|
15
|
-
SCRIPT_NAME = "review-markdownmaker"
|
|
16
|
-
|
|
17
|
-
def generate()
|
|
18
|
-
@build_dir = make_build_dir()
|
|
19
|
-
begin
|
|
20
|
-
book = load_book() # also loads 'review-ext.rb'
|
|
21
|
-
converter = ReVIEW::Converter.new(book, new_builder())
|
|
22
|
-
errors = create_input_files(converter, book)
|
|
23
|
-
if errors && !errors.empty?
|
|
24
|
-
handle_compile_errors(errors)
|
|
25
|
-
end
|
|
26
|
-
return @build_dir
|
|
27
|
-
ensure
|
|
28
|
-
end
|
|
29
|
-
end
|
|
30
|
-
|
|
31
|
-
protected
|
|
32
|
-
|
|
33
|
-
def new_builder()
|
|
34
|
-
return ReVIEW::MarkdownBuilder.new
|
|
35
|
-
end
|
|
36
|
-
|
|
37
|
-
def make_build_dir()
|
|
38
|
-
dir = "#{@config['bookname']}-md"
|
|
39
|
-
if !File.directory?(dir)
|
|
40
|
-
Dir.mkdir(dir)
|
|
41
|
-
else
|
|
42
|
-
Dir.glob("#{dir}/*").each {|x| FileUtils.rm_rf(x) }
|
|
43
|
-
end
|
|
44
|
-
return dir
|
|
45
|
-
end
|
|
46
|
-
|
|
47
|
-
def create_input_files(converter, book)
|
|
48
|
-
errors = []
|
|
49
|
-
book.each_input_file do |part, chap|
|
|
50
|
-
if part
|
|
51
|
-
err = output_chaps(converter, part.name) if part.file?
|
|
52
|
-
elsif chap
|
|
53
|
-
filename = File.basename(chap.path, '.*')
|
|
54
|
-
err = output_chaps(converter, filename)
|
|
55
|
-
end
|
|
56
|
-
errors << err if err
|
|
57
|
-
end
|
|
58
|
-
return errors
|
|
59
|
-
end
|
|
60
|
-
|
|
61
|
-
def output_chaps(converter, filename)
|
|
62
|
-
contdir = @config['contentdir']
|
|
63
|
-
infile = "#{filename}.re"
|
|
64
|
-
infile = File.join(contdir, infile) if contdir.present?
|
|
65
|
-
outfile = "#{filename}.md"
|
|
66
|
-
$stderr.puts "compiling #{outfile}"
|
|
67
|
-
begin
|
|
68
|
-
converter.convert(infile, File.join(@build_dir, outfile))
|
|
69
|
-
nil
|
|
70
|
-
## 文法エラーだけキャッチし、それ以外のエラーはキャッチしないよう変更
|
|
71
|
-
## (LATEXBuilderで起こったエラーのスタックトレースを表示する)
|
|
72
|
-
rescue ApplicationError => ex
|
|
73
|
-
warn "compile error in #{outfile} (#{ex.class})"
|
|
74
|
-
warn colored_errmsg(ex.message)
|
|
75
|
-
ex.message
|
|
76
|
-
end
|
|
77
|
-
end
|
|
78
|
-
|
|
79
|
-
def handle_compile_errors(errors)
|
|
80
|
-
return if errors.nil? || errors.empty?
|
|
81
|
-
if @config['ignore-errors']
|
|
82
|
-
$stderr.puts 'compile error, but try to generate PDF file'
|
|
83
|
-
else
|
|
84
|
-
error 'compile error, No PDF file output.'
|
|
85
|
-
end
|
|
86
|
-
end
|
|
87
|
-
|
|
88
|
-
end
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
end
|
|
@@ -1,93 +0,0 @@
|
|
|
1
|
-
# -*- coding: utf-8 -*-
|
|
2
|
-
|
|
3
|
-
##
|
|
4
|
-
## change ReVIEW source code
|
|
5
|
-
##
|
|
6
|
-
|
|
7
|
-
require_relative './review-book' ## Book::Baseクラスを修正
|
|
8
|
-
require_relative './review-compiler' ## Compilerクラスを修正
|
|
9
|
-
require_relative './review-builder' ## Builderクラスを修正
|
|
10
|
-
require_relative './review-latexbuilder' ## LaTeX用の機能を修正
|
|
11
|
-
require_relative './review-htmlbuilder' ## HTML用の機能を修正
|
|
12
|
-
require_relative './review-textbuilder' ## テキスト用の機能を修正
|
|
13
|
-
#require_relative './review-pdfmaker' ## PDF用の機能を修正 (for Rake task)
|
|
14
|
-
require_relative './review-epubbuilder' ## テキスト用の機能を修正
|
|
15
|
-
require_relative './review-webmaker' ## Webページ用の機能を修正
|
|
16
|
-
require_relative './review-tocparser' ## Web用目次作成機能を修正
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
module ReVIEW
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
Book::Base.class_eval do
|
|
23
|
-
|
|
24
|
-
## 環境変数 $STARTER_CHAPTER で指定された章だけをコンパイルするよう改造
|
|
25
|
-
def each_input_file()
|
|
26
|
-
env_starter = ENV['STARTER_CHAPTER']
|
|
27
|
-
env_starter = nil unless env_starter.present?
|
|
28
|
-
found = false
|
|
29
|
-
self.parts.each do |part|
|
|
30
|
-
yield part, nil if part.name.present? && !env_starter
|
|
31
|
-
part.chapters.each do |chap|
|
|
32
|
-
next if env_starter && env_starter != chap.name
|
|
33
|
-
found = true
|
|
34
|
-
yield nil, chap
|
|
35
|
-
end
|
|
36
|
-
end
|
|
37
|
-
if env_starter && !found
|
|
38
|
-
raise "ERROR: chapter file '#{env_starter}.re' not found. ($STARTER_CHAPTER='#{env_starter}')"
|
|
39
|
-
end
|
|
40
|
-
nil
|
|
41
|
-
end
|
|
42
|
-
|
|
43
|
-
end
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
class PDFMaker
|
|
47
|
-
|
|
48
|
-
### original: 2.4, 2.5
|
|
49
|
-
#def call_hook(hookname)
|
|
50
|
-
# return if !@config['pdfmaker'].is_a?(Hash) || @config['pdfmaker'][hookname].nil?
|
|
51
|
-
# hook = File.absolute_path(@config['pdfmaker'][hookname], @basehookdir)
|
|
52
|
-
# if ENV['REVIEW_SAFE_MODE'].to_i & 1 > 0
|
|
53
|
-
# warn 'hook configuration is prohibited in safe mode. ignored.'
|
|
54
|
-
# else
|
|
55
|
-
# system_or_raise("#{hook} #{Dir.pwd} #{@basehookdir}")
|
|
56
|
-
# end
|
|
57
|
-
#end
|
|
58
|
-
### /original
|
|
59
|
-
|
|
60
|
-
def call_hook(hookname) # review-pdfmaker がエラーにならないために
|
|
61
|
-
d = @config['pdfmaker']
|
|
62
|
-
return unless d.is_a?(Hash)
|
|
63
|
-
return unless d[hookname]
|
|
64
|
-
if ENV['REVIEW_SAFE_MODE'].to_i & 1 > 0
|
|
65
|
-
warn 'hook configuration is prohibited in safe mode. ignored.'
|
|
66
|
-
return
|
|
67
|
-
end
|
|
68
|
-
## hookname が文字列の配列なら、それらを全部実行する
|
|
69
|
-
basehookdir = @basehookdir
|
|
70
|
-
[d[hookname]].flatten.each do |hook|
|
|
71
|
-
script = File.absolute_path(hook, basehookdir)
|
|
72
|
-
## 拡張子が .rb なら、rubyコマンドで実行する(ファイルに実行属性がなくてもよい)
|
|
73
|
-
if script.end_with?('.rb')
|
|
74
|
-
ruby = ruby_fullpath()
|
|
75
|
-
ruby = "ruby" unless File.exist?(ruby)
|
|
76
|
-
system_or_raise(ruby, script, Dir.pwd, basehookdir)
|
|
77
|
-
else
|
|
78
|
-
system_or_raise(script, Dir.pwd, basehookdir)
|
|
79
|
-
end
|
|
80
|
-
end
|
|
81
|
-
end
|
|
82
|
-
|
|
83
|
-
private
|
|
84
|
-
def ruby_fullpath
|
|
85
|
-
require 'rbconfig'
|
|
86
|
-
c = RbConfig::CONFIG
|
|
87
|
-
return File.join(c['bindir'], c['ruby_install_name']) + c['EXEEXT'].to_s
|
|
88
|
-
end
|
|
89
|
-
|
|
90
|
-
end unless defined?(Maker)
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
end
|