review-retrovert 0.9.10 → 0.9.11

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: e21f93fe0df30502c299d24fe3a761d631b1e9cd596df35234dcf756cdb3538e
4
- data.tar.gz: 594ea8b9d78c9da30c8e4915b98665f3c74b61bca108ed29db983616a57153c3
3
+ metadata.gz: 393624484f41bea59ee793d9720b43084058a7d3e3c6c3ad77adbe79b05d400f
4
+ data.tar.gz: 29975b33f89f570df49d12956b42606f24d6e86224d4a495935ad228fb3dceac
5
5
  SHA512:
6
- metadata.gz: 2dd96eb3d003ede0d79444972f09e6d19bd5ecd6e5c84aa2a124bee99eedba47a636b7c6b29d4d215d5a9d7a46fb2918db3a7bc765260df42b282c5d782080a3
7
- data.tar.gz: c40f1bd244de3e41b863a1a4070874fd9e33b02e2c70e62d580cf734282023a35dfdca7401a8aaf1f1ca8a7f06146cca36e70e52b0a59a5d2a9de4ce94b13b56
6
+ metadata.gz: db1bd1b2451f1af8a5ea77829a0781d2ddb755ebaca266f2db5c45adb6a835e1c41fa2baca89d45f625b1c4bcc84faf7c0f093b7344524db24e19a3e21155071
7
+ data.tar.gz: 9d44921e109fb1b9e436c10721c4ef8fb0c0840c8757f201fc71b1fa90dc7611013f79b7c2a1eb8ea686b84b92210fe49fa870ad55ffed0c092a69713a2fc415
@@ -0,0 +1,26 @@
1
+ name: Docker Build
2
+ on: workflow_dispatch
3
+
4
+ jobs:
5
+ push_to_registries:
6
+ runs-on: ubuntu-latest
7
+ steps:
8
+ - name: Check out the repo
9
+ uses: actions/checkout@v2
10
+ - name: Log in to Docker Hub
11
+ uses: docker/login-action@v1
12
+ with:
13
+ username: ${{ secrets.DOCKERHUB_USERNAME }}
14
+ password: ${{ secrets.DOCKERHUB_TOKEN }}
15
+ - name: Push to Docker Hub
16
+ uses: docker/build-push-action@v2
17
+ with:
18
+ push: true
19
+ tags: srzzumix/review-retrovert:latest
20
+ - name: Push to version tag
21
+ env:
22
+ DOCKER_TAG: latest
23
+ IMAGE_NAME: srzzumix/review-retrovert:latest
24
+ DOCKER_REPO: srzzumix/review-retrovert
25
+ run: |
26
+ ./hooks/post_push
@@ -23,4 +23,4 @@ jobs:
23
23
  gem build *.gemspec
24
24
  gem push *.gem
25
25
  env:
26
- GEM_HOST_API_KEY: ${{secrets.RUBYGEMS_AUTH_TOKEN}}
26
+ GEM_HOST_API_KEY: ${{secrets.RUBYGEMS_AUTH_TOKEN}}
@@ -6,6 +6,21 @@ on:
6
6
 
7
7
  name: Retrovert
8
8
  jobs:
9
+ review-starter:
10
+ runs-on: ubuntu-latest
11
+ steps:
12
+ - uses: actions/checkout@v2
13
+ - name: build pdf
14
+ run: |
15
+ docker run --rm -v "$(pwd)/testdata/mybook":/work -w /work kauplan/review2.5 rake preproc pdf
16
+ cp testdata/mybook/mybook.pdf mybook-starter.pdf
17
+ # artifacts
18
+ - name: artifacts
19
+ uses: actions/upload-artifact@v1
20
+ with:
21
+ name: mybook
22
+ path: mybook-starter.pdf
23
+
9
24
  review:
10
25
  runs-on: ubuntu-latest
11
26
  strategy:
data/.gitignore CHANGED
@@ -13,4 +13,3 @@ tmp/
13
13
  .idea
14
14
 
15
15
  *.gem
16
- mybook.pdf
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- review-retrovert (0.9.10)
4
+ review-retrovert (0.9.11)
5
5
  review (>= 3.0.0)
6
6
  thor
7
7
 
@@ -59,7 +59,7 @@ GEM
59
59
  ffi (1.14.2)
60
60
  i18n (1.8.7)
61
61
  concurrent-ruby (~> 1.0)
62
- image_size (2.1.1)
62
+ image_size (2.1.2)
63
63
  middleware (0.1.0)
64
64
  minitest (5.14.3)
65
65
  multi_test (0.1.2)
data/Makefile CHANGED
@@ -14,6 +14,9 @@ test:
14
14
  test-ird:
15
15
  RUBYLIB=lib ./exe/review-retrovert convert --preproc --tabwidth 4 --ird testdata/mybook/config.yml -f tmp/debug
16
16
 
17
+ test-ut:
18
+ RUBYLIB=lib ./exe/review-retrovert convert --preproc --tabwidth 4 testdata/mybook/ut-config.yml -f tmp/debug
19
+
17
20
  REVIEW_VERSION:=latest
18
21
 
19
22
  debug-build:
@@ -22,3 +25,7 @@ debug-build:
22
25
 
23
26
  testdata-pdf:
24
27
  docker run --rm -v ${PWD}/testdata/mybook:/work -w /work kauplan/review2.5 rake pdf
28
+
29
+ testdata-ut-pdf:
30
+ # rm -rf ./testdata/mybook/mybook-ut-pdf
31
+ docker run --rm -v ${PWD}/testdata/mybook:/work -w /work -e config=ut-config.yml kauplan/review2.5 rake pdf
data/README.md CHANGED
@@ -1,6 +1,7 @@
1
1
  [![Gem Version](https://badge.fury.io/rb/review-retrovert.svg)](https://badge.fury.io/rb/review-retrovert)
2
2
  [![Retrovert](https://github.com/srz-zumix/review-retrovert/actions/workflows/retrovert.yml/badge.svg?branch=master)](https://github.com/srz-zumix/review-retrovert/actions/workflows/retrovert.yml)
3
- [![Docker Cloud Build Status](https://img.shields.io/docker/cloud/build/srzzumix/review-retrovert.svg)](https://hub.docker.com/r/srzzumix/review-retrovert/)
3
+ [![Docker Build](https://github.com/srz-zumix/review-retrovert/actions/workflows/docker-build.yml/badge.svg)](https://github.com/srz-zumix/review-retrovert/actions/workflows/docker-build.yml)
4
+ [![Docker Pulls](https://img.shields.io/docker/pulls/srzzumix/review-retrovert)](https://hub.docker.com/r/srzzumix/review-retrovert)
4
5
 
5
6
  # ReVIEW::Retrovert
6
7
 
@@ -11,8 +11,10 @@ module ReVIEW
11
11
  method_option "tabwidth", desc: 'Preproc tabwidth option value', type: :numeric, default: 0
12
12
  method_option "table-br-replace", desc: '@<br>{} in table replace string (Default: empty)', type: :string, default: ''
13
13
  method_option "table-empty-replace", desc: 'empty cell(.) in table replace string (Default full-width space)', type: :string, default: ' '
14
- method_option "ird", desc: 'for IRD', type: :boolean
15
- method_option "no-image", desc: 'donot copy image', type: :boolean
14
+ method_option "ird", desc: 'For IRD', type: :boolean
15
+ method_option "no-update", desc: 'Do not Re:VIEW update', type: :boolean
16
+ method_option "no-image", desc: 'Do not copy image', type: :boolean
17
+ method_option "no-delegate-yaml", desc: 'review-retrovert creates an inherited file if the config.yml/catalog.yml file does not exist. Not done if no-delegate-yaml option is specified', type: :boolean
16
18
  def convert(review_starter_configfile, outdir)
17
19
  Converter.execute(review_starter_configfile, outdir, options)
18
20
  end
@@ -122,8 +122,6 @@ module ReVIEW
122
122
  @configs.rewrite_yml('contentdir', '.')
123
123
  @configs.rewrite_yml('hook_beforetexcompile', 'null')
124
124
  @configs.rewrite_yml('texstyle', '["reviewmacro"]')
125
- pagesize = @config['starter']['pagesize'].downcase
126
- jsbook_config = "media=print,paper=#{pagesize}"
127
125
 
128
126
  # words
129
127
  words_files = @config['words_file']
@@ -146,12 +144,41 @@ module ReVIEW
146
144
  FileUtils.copy(File.join(@basedir, makeindex_dic), File.join(outdir, makeindex_dic))
147
145
  end
148
146
 
147
+ # texdocumentclass
148
+ pagesize = @config['starter']['pagesize'].downcase
149
+ book_configs = [
150
+ "media=print",
151
+ "paper=#{pagesize}"
152
+ ]
153
+
154
+ texdocumentclass = @config['texdocumentclass']
155
+ book_style = texdocumentclass[0]
156
+ if book_style == "jsbook"
157
+ book_style = "review-jsbook"
158
+ elsif book_style == "utbook"
159
+ book_style = "review-utbook"
160
+ FileUtils.cp(File.join(__dir__, 'sty/review-utbook.cls'), File.join(outdir, 'sty/review-utbook.cls'))
161
+ end
162
+ origin_book_configs = texdocumentclass[1].split(',')
163
+ book_configs.concat origin_book_configs.select { |c| !ReViewDef::review_jsbook_invalid_configs().include?(c) }
164
+
149
165
  if @ird
150
166
  # # リュウミン Pr6N R-KL 12.5Q 22H (9pt = 12.7Q 15.5pt = 21.8Q(H))
151
167
  # texdocumentclass: ["review-jsbook", "media=ebook,openany,paper=b5,fontsize=9pt,baselineskip=15.5pt,head_space=15mm,gutter=22mm,footskip=16mm,line_length=45zw,number_of_lines=38"]
152
- jsbook_config = "media=ebook,openany,paper=b5,fontsize=9pt,baselineskip=15.5pt,head_space=15mm,gutter=22mm,footskip=16mm,line_length=45zw,number_of_lines=38"
153
- end
154
- @configs.rewrite_yml_array('texdocumentclass', "[\"review-jsbook\", \"#{jsbook_config}\"]")
168
+ book_config = [
169
+ "media=ebook",
170
+ "openany",
171
+ "paper=b5",
172
+ "fontsize=9pt",
173
+ "baselineskip=15.5pt",
174
+ "head_space=15mm",
175
+ "gutter=22mm",
176
+ "footskip=16mm",
177
+ "line_length=45zw",
178
+ "number_of_lines=38"
179
+ ]
180
+ end
181
+ @configs.rewrite_yml_array('texdocumentclass', "[\"#{book_style}\", \"#{book_configs.join(',')}\"]")
155
182
  if @config.key?('retrovert')
156
183
  @config['retrovert'].each{ |k,v|
157
184
  unless v..is_a?(Hash)
@@ -584,6 +611,7 @@ module ReVIEW
584
611
  replace_compatible_block_command_outline(content, 'output', 'list', 3)
585
612
  replace_compatible_block_command_to_outside(content, 'sideimage', 'image', 1, '[]')
586
613
  replace_block_command_outline(content, 'abstract', 'lead', true)
614
+ delete_block_command(content, 'makechaptitlepage')
587
615
  delete_block_command(content, 'vspace')
588
616
  delete_block_command(content, 'needvspace')
589
617
  delete_block_command(content, 'clearpage')
@@ -706,6 +734,7 @@ module ReVIEW
706
734
  delete_inline_command(content, 'userinput')
707
735
  delete_inline_command(content, 'weak')
708
736
  delete_inline_command(content, 'cursor')
737
+ delete_inline_command(content, 'foldhere')
709
738
  # font size
710
739
  delete_inline_command(content, 'small')
711
740
  delete_inline_command(content, 'xsmall')
@@ -725,12 +754,6 @@ module ReVIEW
725
754
  content.gsub!(/@<href>{(.*?)#.*?,(.*?)}/, '@<href>{\1,\2}')
726
755
  content.gsub!(/@<href>{(.*?)#.*?}/, '@<href>{\1}')
727
756
  linkurl_footnote = @config['starter']['linkurl_footnote']
728
- # table 内の @ コマンドは不安定らしい
729
- while !content.gsub!(/(\/\/table.*)@<br>{}(.*?\/\/})/m, "\\1#{Regexp.escape(@table_br_replace)}\\2").nil? do
730
- end
731
- # 空セルが2行になることがあるらしい
732
- while !content.gsub!(/(\/\/table.*\s)\.(\s.*?\/\/})/m, "\\1#{Regexp.escape(@table_empty_replace)}\\2").nil? do
733
- end
734
757
  # noop を最後に消すためにダミーに変える
735
758
  content.gsub!('@<nop>$$', '@<dummynop>$must_be_replace_nop$')
736
759
  content.gsub!('@<nop>||', '@<dummynop>|must_be_replace_nop|')
@@ -787,9 +810,20 @@ module ReVIEW
787
810
  m.gsub(/@<br>({}|\$\$|\|\|)/, '@<fnbr>\1')
788
811
  }
789
812
 
813
+ content.gsub!(/(\/\/table.*?{.*?\/\/})/m) { |m|
814
+ # table 内の @ コマンドは不安定らしい
815
+ m.gsub!('@<br>{}', "#{Regexp.escape(@table_br_replace)}")
816
+ # 空セルが2行になることがあるらしい
817
+ m.gsub!(/(\s)\.(\s)/, "\\1#{Regexp.escape(@table_empty_replace)}\\2")
818
+ m
819
+ }
820
+
790
821
  content.gsub!(/(.*)@<br>({}|\$\$|\|\|)$/, "\\1\n\n")
791
822
  content.gsub!(/(.*)@<br>({}|\$\$|\|\|)(.*)$/, "\\1\n\n\\2")
792
- content.gsub!(/@<fnbr>({}|\$\$|\|\|)/, '@<br>\1')
823
+
824
+ content.gsub!('@<fnbr>{}', '@<br>{}')
825
+ content.gsub!('@<fnbr>$$', '@<br>$$')
826
+ content.gsub!('@<fnbr>||', '@<br>||')
793
827
  end
794
828
 
795
829
  # nop replace must be last step
@@ -943,16 +977,30 @@ module ReVIEW
943
977
  update_sty(outdir, options)
944
978
  update_ext(outdir, options)
945
979
 
946
- pwd = Dir.pwd
947
- Dir.chdir(outdir)
948
- updater = ReVIEW::Update.new
949
- updater.force = true
950
- # updater.backup = false
951
- begin
952
- updater.execute()
953
- rescue
980
+ unless options['no-delegate-config']
981
+ unless File.exist?(File.join(outdir, 'config.yml'))
982
+ root_config = File.open(File.join(outdir, 'config.yml'), 'w')
983
+ root_config.puts("review_version: #{ReVIEW::VERSION}")
984
+ root_config.puts("inherit: [\"#{File.basename(yamlfile)}\"]")
985
+ end
986
+ unless File.exist?(File.join(outdir, 'catalog.yml'))
987
+ catalogfile = @config['catalogfile']
988
+ FileUtils.copy(File.join(@basedir, catalogfile), File.join(outdir, 'catalog.yml'))
989
+ end
990
+ end
991
+
992
+ unless options['no-update']
993
+ pwd = Dir.pwd
994
+ Dir.chdir(outdir)
995
+ updater = ReVIEW::Update.new
996
+ updater.force = true
997
+ # updater.backup = false
998
+ begin
999
+ updater.execute()
1000
+ rescue
1001
+ end
1002
+ Dir.chdir(pwd)
954
1003
  end
955
- Dir.chdir(pwd)
956
1004
 
957
1005
  if options['preproc']
958
1006
  info 'preproc'
@@ -44,6 +44,35 @@ module ReVIEW
44
44
  ]
45
45
  end
46
46
 
47
+ def review_jsbook_invalid_configs()
48
+ [
49
+ "uplatex",
50
+ "autodetect-engine",
51
+ "papersize",
52
+ "titlepage",
53
+ "notitlepage",
54
+ "usemag",
55
+ "nomag",
56
+ "nomag*",
57
+ "a4j",
58
+ "a5j",
59
+ "b4j",
60
+ "b5j",
61
+ "winjis",
62
+ "mingoth",
63
+ "jis",
64
+ "disablejfam",
65
+ "a4paper",
66
+ "a5paper",
67
+ "b4paper",
68
+ "b5paper",
69
+ "letterpaper",
70
+ "tombo",
71
+ "tombow",
72
+ "mentuke",
73
+ ]
74
+ end
75
+
47
76
  # キャプションを取得する
48
77
  def get_caption(line)
49
78
  m = line.match(/^\/\/(\w+?)((\[#{r_option_inner}\])*)([$|{])*$/)
@@ -0,0 +1,7 @@
1
+ \LoadClass{utbook}
2
+
3
+ \newif\if@reclscover \@reclscovertrue
4
+ \newif\ifrecls@coverfitpage \recls@coverfitpagefalse
5
+ \newif\ifrecls@serialpage \recls@serialpagefalse
6
+
7
+ \newcommand{\headfont}
@@ -1,5 +1,5 @@
1
1
  module ReVIEW
2
2
  module Retrovert
3
- VERSION = "0.9.10"
3
+ VERSION = "0.9.11"
4
4
  end
5
5
  end
@@ -7,3 +7,7 @@ rubygems/*
7
7
  tmp/*
8
8
  mybook-pdf/*
9
9
  mybook-md/*
10
+ mybook-ut-pdf/*
11
+ mybook-ut-md/*
12
+ mybook.pdf
13
+ mybook-ut.pdf
@@ -1,3 +1,5 @@
1
+ //makechaptitlepage[toc=on]
2
+
1
3
  = Retrovert テスト用
2
4
 
3
5
  //blankline
@@ -17,9 +19,17 @@ test@<br>{}
17
19
  //table[][][csv=on,file=contents/table.csv]{
18
20
  //}
19
21
 
20
- === コマンド
22
+ //table[][]{
23
+ A B
24
+ --------------
25
+ a b@<br>{}b
26
+ . X
27
+ X .
28
+ //}
29
+
30
+ ==={subsubtest} コマンド
21
31
 
22
- ===={subsubtest} Secref テスト用
32
+ ==== Secref テスト用
23
33
 
24
34
  secref: @<secref>{subsubtest}
25
35
  secref: @<secref>{r0-root|subsubtest}
@@ -29,3 +39,11 @@ secref: @<secref>{01-install|RubyとTeXLiveのインストール}
29
39
  ==== footnote bar
30
40
 
31
41
  //footnote[fnbar][test@<br>{}hoge]
42
+
43
+ ==== others
44
+
45
+ //terminal{
46
+ Test @<foldhere>{} foldhere
47
+ //}
48
+
49
+ @<ruby>{虎空棘魚, タイガーシーラカンス}
@@ -0,0 +1,5 @@
1
+ = 縦書きテスト
2
+
3
+ 縦書きテストです
4
+ 5 + 5 = @<tcy>{10}
5
+ @<tcy>{YES}
@@ -28,9 +28,13 @@
28
28
  %% ・ページに左右がないので、「texdocumentclass:」に"oneside"を指定する。
29
29
  %%
30
30
 
31
+ \def\inv@mag{1}
32
+
31
33
  %% 本文の幅を設定
32
34
  \setlength{\textwidth}{\starter@textwidth} % 例:'39zw' なら全角39文字分
33
- \setlength{\fullwidth}{\textwidth} % ヘッダの幅を本文と同じにする
35
+ \ifdefined\fullwidth
36
+ \setlength{\fullwidth}{\textwidth} % ヘッダの幅を本文と同じにする
37
+ \fi
34
38
 
35
39
  %% 左右の余白幅を自動設定
36
40
  \setlength{\oddsidemargin}{\paperwidth} % 紙の幅から
@@ -33,3 +33,7 @@
33
33
  \rule[#1]{0pt}{0pt}% % 幅のない縦線を引く。引くスペースがなければ改ページされる。
34
34
  \vspace{-#1}\par% % もとの位置に戻る
35
35
  }
36
+
37
+ \ifdefined\rensuji\else
38
+ \newcommand\rensuji[1]{#1}
39
+ \fi
@@ -0,0 +1,26 @@
1
+ \renewcommand{\centering}{}
2
+ \newcommand{\HUGE}{}
3
+ \newcommand{\plainifnotempty}{}
4
+ \newif\if@omit@number
5
+ \newdimen\jsc@tocl@width
6
+
7
+ \newdimen\fullwidth
8
+
9
+ \newcommand{\seename}{}
10
+
11
+ \renewcommand{\appendix}{\par
12
+ \setcounter{chapter}{0}%
13
+ \setcounter{section}{0}%
14
+ \gdef\@chapapp{\appendixname}%
15
+ \gdef\@chappos{}%
16
+ \gdef\thechapter{\@Alph\c@chapter}}
17
+
18
+
19
+ \renewcommand{\thechapter}{\@arabic\c@chapter}
20
+ \renewcommand{\thesection}{\thechapter.\@arabic\c@section}
21
+ \renewcommand{\thesubsection}{\thesection.\@arabic\c@subsection}
22
+ \renewcommand{\thesubsubsection}{%
23
+ \thesubsection.\@arabic\c@subsubsection}
24
+
25
+ \usepackage[japanese,nohints]{minitoc}
26
+ \renewcommand{\minitoc}{}
@@ -0,0 +1,61 @@
1
+ # -*- coding: utf-8 -*-
2
+
3
+ ##
4
+ ## 注:タブ文字を使わないこと(使うとエラーになる)
5
+ ##
6
+
7
+ ## まえがき
8
+ PREDEF:
9
+ - 00-preface.re
10
+
11
+ ## 本文
12
+ CHAPS:
13
+ - 01-install.re
14
+ - 02-tutorial.re
15
+ - 03-syntax.re
16
+ - 04-customize.re
17
+ - 05-faq.re
18
+ - 06-bestpractice.re
19
+ - r0-root.re
20
+ - ut.re
21
+
22
+ ## 付録
23
+ APPENDIX:
24
+ - 91-compare.re
25
+ - 92-filelist.re
26
+ - 93-background.re
27
+
28
+ ## あとがき
29
+ POSTDEF:
30
+ - 99-postface.re
31
+
32
+ ##
33
+ ## 【Tips】
34
+ ##
35
+ ## ・付録やまえがきやあとがきがなければ、空にする。
36
+ ## 例:
37
+ ##
38
+ ## PREDEF:
39
+ ##
40
+ ## CHAPS:
41
+ ## - 01-install.re
42
+ ##
43
+ ## APPENDIX:
44
+ ##
45
+ ## POSTDEF:
46
+ ##
47
+ ##
48
+ ## ・第I部、第II部、…のように「部」を使うには、次のようにする。
49
+ ## (部タイトルの最後に半角の「:」をつけることに注意)
50
+ ##
51
+ ## CHAPS:
52
+ ## - 初級編:
53
+ ## - 01-install.re
54
+ ## - 02-tutorial.re
55
+ ## - 中級編:
56
+ ## - 03-syntax.re
57
+ ## - 04-customize.re
58
+ ## - 上級編:
59
+ ## - 05-faq.re
60
+ ## - 06-bestpractice.re
61
+ ##
@@ -0,0 +1,3 @@
1
+ starter:
2
+ nombre: off
3
+ subsection_decoration: none
@@ -0,0 +1,404 @@
1
+ # review-epubmaker向けの設定ファイルの例。
2
+ # yamlファイルをRe:VIEWファイルのある場所に置き、
3
+ # 「review-epubmaker yamlファイル」を実行すると、<bookname>.epubファイルが
4
+ # 生成されます。
5
+ # このファイルはUTF-8エンコーディングで記述してください。
6
+
7
+ # この設定ファイルでサポートするRe:VIEWのバージョン番号。
8
+ # major versionが違うときにはエラーを出す。
9
+ review_version: 2.0
10
+
11
+ # ほかの設定ファイルの継承を指定できる。同じパラメータに異なる値がある場合は、
12
+ # 呼び出し元の値が優先される。
13
+ # A.yml、B.ymlのパラメータを継承する例。A.ymlとB.ymlに同じパラメータがある
14
+ # 場合、B.ymlの値が優先される。さらに今このファイルに同じパラメータがあるなら、
15
+ # その値がB.ymlよりも優先される。
16
+ # 同様にA.yml、B.yml内でさらにinherit:パラメータを使うこともできる。
17
+ # inherit: ["A.yml", "B.yml"]
18
+ inherit: ["config-starter.yml", "config-retrovert.yml", "ut-config-starter.yml"]
19
+
20
+ # ブック名(ファイル名になるもの。ASCII範囲の文字を使用)
21
+ bookname: mybook-ut
22
+ # 記述言語。省略した場合はja
23
+ language: ja
24
+
25
+ # 書名
26
+ # 読みを入れる例 booktitle: {name: "Re:VIEW EPUBサンプル", file-as: "リビューイーパブサンプル"}
27
+ # (タイトルやサブタイトルが長い場合は、好みの箇所に改行を入れてください。)
28
+ booktitle: |-
29
+ はじめてのXXX入門
30
+ subtitle: |-
31
+ 概念と基本操作を2時間でマスター!
32
+
33
+ # 著者名。「, 」で区切って複数指定できる
34
+ # 読みを入れる例 aut: [{name: "青木峰郎", file-as: "アオキミネロウ"}, {name: "武藤健志", file-as: "ムトウケンシ"}, {name: "高橋征義", file-as: "タカハシマサヨシ"}, {name: "角征典", file-as: "カドマサノリ"}]
35
+ aut:
36
+ - name: カウプラン機関極東支部
37
+ file-as: カウプランキカンキョクトウシブ
38
+
39
+ # (Starter拡張) 奥付に載せるデータ。現在はPDFのみ対応。
40
+ additional:
41
+ # 技書博では発行責任者とその連絡先が必須になった。
42
+ # 詳しくはこのページを参照:
43
+ # https://esa-pages.io/p/sharing/13039/posts/115/7fbe936149a836eac678.html#奥付の記載
44
+ - key: 発行者 # サークル名ではなく個人名(ペンネーム可)
45
+ value:
46
+ - key: 連絡先 # メールアドレス推奨
47
+ value:
48
+ ### 連絡先の例:
49
+ #value:
50
+ # - xxxxx@example.com # メールアドレス
51
+ # - https://www.example.com/ # WebサイトURL
52
+ # - "@xxxxx" # Twitterアカウント(先頭に '@' をつけること)
53
+
54
+ # 以下はオプション
55
+ # 以下はオプション(autと同じように配列書式で複数指定可能)。
56
+ # 読みの指定はaut:の例を参照。
57
+ # a-が付いているものはcreator側、
58
+ # 付いていないものはcontributor側(二次協力者)に入る
59
+ # a-adp, adp: 異なるメディア向けに作り直した者
60
+ # a-ann, ann: 注釈記述者
61
+ # a-arr, arr: アレンジした者
62
+ # a-art, art: グラフィックデザインおよび芸術家
63
+ # a-asn, asn: 関連・かつての所有者・関係者
64
+ # a-aqt, aqt: 大きく引用された人物
65
+ # a-aft, aft: 後書き・奥付の責任者
66
+ # a-aui, aui: 序論・序文・前書きの責任者
67
+ # a-ant, ant: 目録責任者
68
+ # a-bkp, bkp: メディア制作責任者
69
+ # a-clb, clb: 限定参加または補足者
70
+ # a-cmm, cmm: 解釈・分析・考察者
71
+ # a-csl, csl: 監修者
72
+ # a-dsr, dsr: デザイナ
73
+ # a-edt, edt: 編集者
74
+ # a-ill, ill: イラストレータ
75
+ # a-lyr, lyr: 歌詞作成者
76
+ # a-mdc, mdc: メタデータセットの一次的責任者
77
+ # a-mus, mus: 音楽家
78
+ # a-nrt, nrt: 語り手
79
+ # a-oth, oth: その他
80
+ # a-pht, pht: 撮影責任者
81
+ # a-pbl, pbl: 出版社(発行所)
82
+ # a-prt, prt: 印刷所
83
+ prt: ○○印刷所
84
+ # a-red, red: 項目の枠組起草者
85
+ # a-rev, rev: 評論者
86
+ # a-spn, spn: 援助者
87
+ # a-ths, ths: 監督者
88
+ # a-trc, trc: 筆記・タイプ作業者
89
+ # a-trl, trl: 翻訳者
90
+
91
+ # 刊行日(省略した場合は実行時の日付)
92
+ date: 2021-07-10
93
+ # 発行年月。YYYY-MM-DD形式による配列指定。省略した場合はdateを使用する
94
+ # 複数指定する場合は次のように記述する
95
+ # [["初版第1刷の日付", "初版第2刷の日付"], ["第2版第1刷の日付"]]
96
+ # 日付の後ろを空白文字で区切り、任意の文字列を置くことも可能。
97
+ history:
98
+ - # 初版
99
+ - 2021-07-10 ver 1.0 (技術書典11)
100
+ # [experimental] 新刊を頒布したイベント名(例:「技術書典6(2019年春)新刊」)
101
+ pubevent_name: 技術書典11(2021年夏)新刊
102
+ # 権利表記(配列で複数指定可)
103
+ rights: (C) 2021 カウプラン機関極東支部
104
+ # description: 説明
105
+ # subject: 短い説明用タグ(配列で複数指定可)
106
+ # type: 書籍のカテゴリーなど(配列で複数指定可)
107
+ # format: メディアタイプおよび特徴(配列で複数指定可)
108
+ # source: 出版物生成の重要なリソース情報(配列で複数指定可)
109
+ # relation: 補助的リソース(配列で複数指定可)
110
+ # coverage: 内容の範囲や領域(配列で複数指定可)
111
+
112
+ # デバッグフラグ。nullでないときには一時ファイルをカレントディレクトリに作成し、削除もしない
113
+ debug: true
114
+
115
+ # 固有IDに使用するドメイン。指定しない場合には、時刻に基づくランダムUUIDが入る
116
+ # urnid: urn:uid:http://example.com/book-title/
117
+ #
118
+ # ISBN。省略した場合はurnidが入る
119
+ # isbn: null
120
+ #
121
+ # HTMLファイルの拡張子(省略した場合はhtml)
122
+ # htmlext: html
123
+ #
124
+ # CSSファイル(配列で複数指定可)
125
+ stylesheet: ["style.css"]
126
+
127
+ # ePUBのバージョン (2か3)
128
+ # epubversion: 2
129
+ #
130
+ # HTMLのバージョン (4か5。epubversionを3にしたときには5にする)
131
+ # htmlversion: 4
132
+
133
+ # 目次として抽出する見出しレベル
134
+ toclevel: 3 # (部と)章と節と項(小節)を目次に載せる
135
+
136
+ # 採番の設定。採番させたくない見出しには「==[nonum]」のようにnonum指定をする
137
+ #
138
+ # 本文でセクション番号を表示する見出しレベル
139
+ secnolevel: 2 # 章 (Chapter) と節 (Section) にだけ番号をつける
140
+ #secnolevel: 3 # 項 (Subsection) にも番号をつける
141
+
142
+ # 以下のsecnolevelはまだ未実装。
143
+ # 前付でセクション番号を表示する見出しレベル(未実装)
144
+ # pre_secnolevel: 0
145
+ #
146
+ # 後付(付録)でセクション番号を表示する見出しレベル(未実装)
147
+ # post_secnolevel: 1
148
+ #
149
+ # 部番号を表示する見出しレベル(未実装)
150
+ # part_secnolevel: 1
151
+
152
+ # 本文中に目次ページを作成するか。省略した場合はnull (作成しない)
153
+ toc: true
154
+
155
+ # EPUB2標準の目次(NCX)以外に物理目次ファイルを作成するか。省略した場合はnull (作成しない)
156
+ # ePUB3においてはこの設定によらず必ず作成される
157
+ # mytoc: true
158
+
159
+ # 表紙にするHTMLファイル。ファイル名を指定すると表紙として入る
160
+ # cover: null
161
+ #
162
+ # 表紙に配置し、書籍の影絵にも利用する画像ファイル。省略した場合はnull (画像を使わない)。画像ディレクトリ内に置いてもディレクトリ名は不要(例: cover.jpg)
163
+ #coverimage: cover.jpg
164
+ #
165
+ # 表紙の後に大扉ページを作成するか。省略した場合はtrue (作成する)
166
+ titlepage: true
167
+ #
168
+ # 自動生成される大扉ページを上書きするファイル。ファイル名を指定すると大扉として入る (PDFMaker向けにはLaTeXソース断片、EPUBMaker向けにはHTMLファイル)
169
+ # titlefile: null
170
+ #
171
+ # 原書大扉ページにするHTMLファイル。ファイル名を指定すると原書大扉として入る (PDFMaker向けにはLaTeXソース断片、EPUBMaker向けにはHTMLファイル)
172
+ # originaltitlefile: null
173
+ #
174
+ # 権利表記ページファイル。ファイル名を指定すると権利表記として入る (PDFMaker向けにはLaTeXソース断片、EPUBMaker向けにはHTMLファイル)
175
+ # creditfile: null
176
+
177
+ # 奥付を作成するか。デフォルトでは作成されない。trueを指定するとデフォルトの奥付、ファイル名を指定するとそれがcolophon.htmlとしてコピーされる
178
+ # colophon: null
179
+
180
+ # 裏表紙データファイル (PDFMaker向けにはLaTeXソース断片、EPUBMaker向けにはHTMLファイル)
181
+ # backcover: null
182
+
183
+ # プロフィールページファイル (PDFMaker向けにはLaTeXソース断片、EPUBMaker向けにはHTMLファイル)。ファイル名を指定すると著者紹介として入る
184
+ # profile: null
185
+ # プロフィールページの目次上の見出し
186
+ # profiletitle: 著者紹介
187
+
188
+ # 広告ファイル。ファイル名を指定すると広告として入る (PDFMaker向けにはLaTeXソース断片、EPUBMaker向けにはHTMLファイル)
189
+ # advfile: null
190
+
191
+ # 取り込む画像が格納されているディレクトリ。省略した場合は以下
192
+ # imagedir: images
193
+
194
+ # 取り込むフォントが格納されているディレクトリ。省略した場合は以下
195
+ # fontdir: fonts
196
+
197
+ # imagedir内から取り込まれる対象となるファイル拡張子。省略した場合は以下
198
+ # image_ext: ["png", "gif", "jpg", "jpeg", "svg", "ttf", "woff", "otf"]
199
+
200
+ # fontdir内から取り込まれる対象となるファイル拡張子。省略した場合は以下
201
+ # font_ext: ["ttf", "woff", "otf"]
202
+
203
+ # ソースコードハイライトを利用する (rouge,pygmentsには外部gemが必要)
204
+ # highlight:
205
+ # html: "rouge"
206
+ # latex: "listings"
207
+
208
+ # カタログファイル名を指定する
209
+ catalogfile: ut-catalog.yml
210
+
211
+ # reファイルを格納するディレクトリ。デフォルト値は null。
212
+ # 値にたとえば「contents」を指定すると、reファイルはすべて「contents」
213
+ # ディレクトリに置かなければならず、カレントディレクトリには一切置いては
214
+ # ならない。
215
+ # contentdir: null
216
+ contentdir: contents
217
+
218
+ # @<w>命令で使用する単語ファイルのパス。文字コードは必ずUTF-8。
219
+ # CSV形式 (*.csv) とタブ区切りテキスト (*.txt または *.tsv) が利用可能。
220
+ words_file: data/words.txt # [f1.csv, f2.txt] のように複数指定も可能
221
+
222
+ # 1ページの行数文字数と1kbごとのページ数を用紙サイズで指定する(A5 or B5)。
223
+ # page_metric: A5
224
+ #
225
+ # あるいは、配列で指定することもできる
226
+ # 各数字の意味は、順にリストの行数、リストの1行字数、テキストの行数、テキストの1行字数、1kバイト毎のページ数
227
+ # page_metric: [40,80,40,80,2]
228
+
229
+ # ページ送りの送り方向、page-progression-directionの値("ltr"|"rtl"|"default")
230
+ # direction: "ltr"
231
+
232
+ # EPUBのOPFへの固有の追加ルール
233
+ # <package>要素に追加する名前空間
234
+ # opf_prefix: {ebpaj: "http://www.ebpaj.jp/"}
235
+ # 追加する<meta>要素のプロパティとその値
236
+ # opf_meta: {"ebpaj:guide-version": "1.1.3"}
237
+
238
+ # 以下のパラメータを有効にするときには、
239
+ # epubmaker:
240
+ # パラメータ: 値
241
+ # パラメータ: 値
242
+ # ...
243
+ # という構成にする必要がある(インデントさせる)
244
+
245
+ epubmaker:
246
+ # HTMLファイルの拡張子
247
+ htmlext: xhtml
248
+ #
249
+ # 目次を要素の階層表現にしない。省略した場合(null)は階層化する。
250
+ # 特に部扉が入るなどの理由で、構成によっては階層化目次でepubcheckに
251
+ # パスしない目次ができるが、そのようなときにはこれをtrueにする
252
+ # flattoc: null
253
+ #
254
+ # 目次のインデントレベルをスペース文字で表現する(flattocがtrueのときのみ)
255
+ # flattocindent: true
256
+ #
257
+ # NCX目次の見出しレベルごとの飾り(配列で設定)。EPUB3ではNCXは作られない
258
+ # ncxindent:
259
+ #-
260
+ #- -
261
+ # フックは、各段階で介入したいときのプログラムを指定する。自動で適切な引数が渡される
262
+ # プログラムには実行権限が必要
263
+ # ファイル変換処理の前に実行するプログラム。スタイルシートのコンパイルをしたいときなどに利用する。
264
+ # 渡される引数1=作業用展開ディレクトリ
265
+ # hook_beforeprocess: null
266
+ #
267
+ # 前付の作成後に実行するプログラム。作業用展開ディレクトリにある目次ファイル(toc-html.txt)を操作したいときなどに利用する。
268
+ # 渡される引数1=作業用展開ディレクトリ
269
+ # hook_afterfrontmatter: null
270
+ #
271
+ # 本文の変換後に実行するプログラム。作業用展開ディレクトリにある目次ファイル(toc-html.txt)を操作したいときなどに利用する。
272
+ # 渡される引数1=作業用展開ディレクトリ
273
+ # hook_afterbody: null
274
+ #
275
+ # 後付の作成後に実行するプログラム。作業用展開ディレクトリにある目次ファイル(toc-html.txt)を操作したいときなどに利用する。
276
+ # 渡される引数1=作業用展開ディレクトリ
277
+ # hook_afterbackmatter: null
278
+ #
279
+ # 画像およびフォントをコピーした後に実行するプログラム。別の画像やフォントを追加したいときなどに利用する。
280
+ # 渡される引数1=作業用展開ディレクトリ
281
+ # hook_aftercopyimage: null
282
+ #
283
+ # ePUB zipアーカイブ直前に実行するプログラム。メタ情報などを加工したいときなどに利用する。
284
+ # 渡される引数1=ePUB準備ディレクトリ
285
+ # hook_prepack: null
286
+ #
287
+ # 変換したHTMLファイルおよびCSSを解析して厳密に使用している画像ファイルだけを取り込むか。デフォルトはnull(imagesディレクトリすべてを取り込む)
288
+ # なお、フォント、カバー、広告についてはこの設定によらずディレクトリ内のものがすべて取り込まれる
289
+ # verify_target_images: null
290
+ #
291
+ # verify_target_imagesがtrueの状態において、解析で発見されなくても強制的に取り込むファイルの相対パスの配列
292
+ # force_include_images: []
293
+ #
294
+ # 画像ファイルの縦x横の最大ピクセル数許容値
295
+ # image_maxpixels: 4000000
296
+ #
297
+ # Re:VIEWファイル名を使わず、前付にpre01,pre02...、本文にchap01,chap02l...、後付にpost01,post02...という名前付けルールにするか
298
+ # rename_for_legacy: null
299
+ #
300
+ # ePUBアーカイブの非圧縮実行
301
+ # zip_stage1: "zip -0Xq"
302
+ #
303
+ # ePUBアーカイブの圧縮実行
304
+ # zip_stage2: "zip -Xr9Dq"
305
+ #
306
+ # ePUBアーカイブに追加するパス(デフォルトはmimetype、META-INF、OEBPS)
307
+ # zip_addpath: null
308
+ #
309
+ # EPUBで表紙をコンテンツに含めるか。デフォルトでは作成されない。yesにするとiBooks等でも最初に表紙が表示されるようになる
310
+ # cover_linear: null
311
+ #
312
+ # @<href>タグでの外部リンクを禁止し、地の文にする(falseで禁止する)
313
+ # externallink: true
314
+ #
315
+ # epubmaker:階層を使うものはここまで
316
+
317
+ # LaTeX用のスタイルファイル(styディレクトリ以下に置くこと)
318
+ texstyle: [reviewmacro, ut, starter, mytitlepage, mycolophon, mystyle]
319
+ #
320
+ # LaTeX用のdocumentclassを指定する
321
+ # texdocumentclass: ["jsbook", "uplatex,oneside"]
322
+ # 用紙サイズとフォントサイズは config-starter.yml で指定するので、'a5j' や '9pt' などは指定しないこと
323
+ texdocumentclass: ["utbook",
324
+ #"dvipdfmx,uplatex,papersize,twoside,openright" # 右起こし
325
+ #"dvipdfmx,uplatex,papersize,twoside,openany" # 両起こし
326
+ #"dvipdfmx,uplatex,papersize,oneside,openany" # 両起こし(タブレット向け)
327
+ "dvipdfmx,uplatex,papersize,oneside,openright"
328
+ ]
329
+ #
330
+ # LaTeX用のコマンドを指定する
331
+ texcommand: uplatex
332
+ #
333
+ # LaTeXのコマンドに渡すオプションを指定する
334
+ # texoptions: null
335
+ texoptions: "-halt-on-error -file-line-error" # エラー時にインタラクティブモードにしない、エラー箇所はファイル名つきで表示
336
+ #
337
+ # LaTeX用のdvi変換コマンドを指定する(dvipdfmx)
338
+ dvicommand: dvipdfmx
339
+ #
340
+ # LaTeX用のdvi変換コマンドのオプションを指定する
341
+ dvioptions: "-q -d 5 -z 3" # -z 9 だと画像を最大圧縮する(ただし時間がかかる)
342
+
343
+ # 以下のパラメータを有効にするときには、
344
+ # pdfmaker:
345
+ # パラメータ: 値
346
+ # パラメータ: 値
347
+ # ...
348
+ # という構成にする必要がある(インデントさせる)
349
+ #
350
+ pdfmaker:
351
+ #
352
+ # TeXコンパイル前に実行するプログラム。変換後のTeXソースを調整したいときに使用する。
353
+ # 渡される引数1=作業用展開ディレクトリ、引数2=呼び出しを実行したディレクトリ
354
+ # hook_beforetexcompile: null
355
+ hook_beforetexcompile: [lib/hooks/beforetexcompile.rb]
356
+ #
357
+ # TeXコンパイル後に実行するプログラム。索引作業をして再度コンパイルしたいときなどに使用する。
358
+ # 渡される引数1=作業用展開ディレクトリ、引数2=呼び出しを実行したディレクトリ
359
+ # hook_aftertexcompile: null
360
+ #
361
+ # PDF(book.pdf)作成後に実行するプログラム。PDFに加工を施したいときに使用する。
362
+ # 渡される引数1=作業用展開ディレクトリ、引数2=呼び出しを実行したディレクトリ
363
+ # hook_afterdvipdf: null
364
+ #
365
+ # 画像のscale=X.Xという指定を画像拡大縮小率からページ最大幅の相対倍率に変換します。
366
+ # image_scale2width: true
367
+ #
368
+ # 索引
369
+ makeindex: # true なら本の巻末に索引をつける
370
+ # 索引作成コマンドの設定
371
+ makeindex_command: upmendex # 索引を生成するコマンド(デフォルト値:mendex)
372
+ makeindex_options: "-q -g" # 索引見出しを「あ か さ た な は …」にする
373
+ #makeindex_options: "-q" # 索引見出しを「あ い う え お か …」にする
374
+ #makeindex_options: "-f -r -I utf8" # (参考:Re:VIEWでのデフォルト値)
375
+ makeindex_sty: sty/indexstyle.ist # スタイルファイル
376
+ makeindex_dic: data/terms.txt # 用語の読み仮名が書かれたファイル
377
+ makeindex_mecab: false # 読み仮名を形態素解析で自動取得するか?
378
+ makeindex_mecab_opts: "-Oyomi" # 形態素解析エンジン「MeCab」のオプション
379
+ #
380
+ # 奥付を作成するか。trueを指定するとデフォルトの奥付、ファイル名を指定するとそれがcolophon.htmlとしてコピーされる
381
+ colophon: true
382
+ #
383
+ # 表紙に配置し、書籍の影絵にも利用する画像ファイル。同人誌の印刷では一般的に、表紙は本文と別ファイルにするので、ここはnullにする。
384
+ #coverimage: null
385
+ #
386
+ ### 【注意】次の設定項目は config-starter.yml に移動し、項目名も変わりました。
387
+ ### ・coverpdf_files: => frontcover_pdffile:
388
+ ### ・backcoverpdf_files: => backcover_pdffile:
389
+ ### ・coverpdf_option: => includepdf_option:
390
+ #
391
+ # pdfmaker:階層を使うものはここまで
392
+
393
+ ## @<chapref>{} や @<hd>{} で、章(Chapter)や節(Section)へのリンクを作成
394
+ ## (Re:VIEW の機能だがドキュメントには未記載?)
395
+ chapterlink: true
396
+
397
+
398
+ ## Webページ用の設定
399
+ webmaker:
400
+ htmlext: html # HTMLファイルの拡張子
401
+ htmlversion: 5 # HTMLのバージョン
402
+ stylesheet: # 「css」フォルダ内のCSSファイル
403
+ - normalize.css
404
+ - webstyle.css
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: review-retrovert
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.9.10
4
+ version: 0.9.11
5
5
  platform: ruby
6
6
  authors:
7
7
  - srz_zumix
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2021-07-27 00:00:00.000000000 Z
11
+ date: 2021-08-22 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: thor
@@ -106,6 +106,7 @@ files:
106
106
  - ".editorconfig"
107
107
  - ".gitattributes"
108
108
  - ".github/FUNDING.yml"
109
+ - ".github/workflows/docker-build.yml"
109
110
  - ".github/workflows/release.yml"
110
111
  - ".github/workflows/retrovert.yml"
111
112
  - ".gitignore"
@@ -133,6 +134,7 @@ files:
133
134
  - lib/review/retrovert/reviewdef.rb
134
135
  - lib/review/retrovert/sty/ird.sty.erb
135
136
  - lib/review/retrovert/sty/review-retrovert-custom.sty.erb
137
+ - lib/review/retrovert/sty/review-utbook.cls
136
138
  - lib/review/retrovert/utils.rb
137
139
  - lib/review/retrovert/version.rb
138
140
  - lib/review/retrovert/yamlconfig.rb
@@ -164,6 +166,7 @@ files:
164
166
  - testdata/mybook/contents/r0-root.re
165
167
  - testdata/mybook/contents/table.csv
166
168
  - testdata/mybook/contents/test.txt
169
+ - testdata/mybook/contents/ut.re
167
170
  - testdata/mybook/css/normalize.css
168
171
  - testdata/mybook/css/webstyle.css
169
172
  - testdata/mybook/data/terms.txt
@@ -250,7 +253,11 @@ files:
250
253
  - testdata/mybook/sty/starter-toc.sty
251
254
  - testdata/mybook/sty/starter-util.sty
252
255
  - testdata/mybook/sty/starter.sty
256
+ - testdata/mybook/sty/ut.sty
253
257
  - testdata/mybook/style.css
258
+ - testdata/mybook/ut-catalog.yml
259
+ - testdata/mybook/ut-config-starter.yml
260
+ - testdata/mybook/ut-config.yml
254
261
  homepage: https://github.com/srz-zumix/review-retrovert
255
262
  licenses:
256
263
  - MIT