Permalink
Browse files

improve index logic

  • Loading branch information...
2 parents 533b56c + f9e79d6 commit b85e8275593634f993bdc15aea7dc5014e09d9b9 @kmuto committed Dec 31, 2016
Showing with 1,783 additions and 253 deletions.
  1. +5 −0 .gitignore
  2. +30 −0 .rubocop.yml
  3. +5 −4 .travis.yml
  4. +2 −6 Rakefile
  5. +0 −1 bin/review-compile
  6. +5 −4 bin/review-validate
  7. +82 −0 doc/NEWS.ja.md
  8. +84 −0 doc/NEWS.md
  9. +2 −2 doc/config.yml.sample
  10. +1 −1 doc/config.yml.sample-simple
  11. +14 −0 doc/format.ja.md
  12. +14 −0 doc/format.md
  13. +214 −0 doc/sample.css
  14. +6 −6 lib/epubmaker.rb
  15. +4 −46 lib/epubmaker/epubcommon.rb
  16. +3 −1 lib/epubmaker/epubv2.rb
  17. +3 −25 lib/epubmaker/epubv3.rb
  18. +85 −0 lib/epubmaker/zip_exporter.rb
  19. +4 −4 lib/lineinput.rb
  20. +7 −0 lib/review/book/base.rb
  21. +15 −0 lib/review/builder.rb
  22. +1 −0 lib/review/compiler.rb
  23. +34 −17 lib/review/htmlbuilder.rb
  24. +48 −2 lib/review/htmlutils.rb
  25. +7 −4 lib/review/idgxmlbuilder.rb
  26. +36 −23 lib/review/latexbuilder.rb
  27. +1 −1 lib/review/makerhelper.rb
  28. +11 −0 lib/review/markdownbuilder.rb
  29. +66 −0 lib/review/md2inaobuilder.rb
  30. +94 −83 lib/review/pdfmaker.rb
  31. +0 −4 lib/review/topbuilder.rb
  32. +1 −1 lib/review/version.rb
  33. +1 −0 review.gemspec
  34. +20 −0 templates/LICENSE
  35. +8 −0 templates/README.md
  36. +10 −1 templates/latex/layout.tex.erb
  37. +7 −0 test/assets/test_template.tex
  38. +10 −0 test/run_test.rb
  39. +215 −0 test/sample-book/src/style.css
  40. +1 −1 test/test_book.rb
  41. +51 −0 test/test_epubmaker.rb
  42. +289 −15 test/test_htmlbuilder.rb
  43. +50 −0 test/test_idgxmlbuilder.rb
  44. +24 −0 test/test_latexbuilder.rb
  45. +1 −1 test/test_makerhelper.rb
  46. +6 −0 test/test_markdownbuilder.rb
  47. +75 −0 test/test_md2inaobuilder.rb
  48. +18 −0 test/test_pdfmaker.rb
  49. +113 −0 test/test_zip_exporter.rb
View
@@ -34,3 +34,8 @@ Gemfile.lock
# IntelliJ
.idea
+
+# Editor
+#*#
+*~
+#.bak
View
@@ -12,6 +12,9 @@ Lint/BlockAlignment:
Lint/EndAlignment:
Enabled: AlignWith
+Lint/EmptyWhen:
+ Enabled: false
+
Performance/ReverseEach:
Enabled: true
@@ -67,6 +70,24 @@ Style/NumericPredicate:
Style/TernaryParentheses:
Enabled: false
+Style/VariableNumber:
+ Enabled: false
+
+Style/FrozenStringLiteralComment:
+ Enabled: false
+
+MultilineMethodCallBraceLayout:
+ Enabled: false
+
+Style/SafeNavigation:
+ Enabled: false
+
+Style/EmptyMethod:
+ Enabled: false
+
+Style/HashSyntax:
+ Enabled: false
+
##################### Metrics ##################################
Metrics/ClassLength:
@@ -94,3 +115,12 @@ Metrics/AbcSize:
Exclude:
- "bin/review-*"
- "test/**/*"
+
+### shoud be < 25
+Metrics/BlockLength:
+ CountComments: false # count full line comments?
+ Max: 50
+ Exclude:
+ - 'Rakefile'
+ - '**/*.rake'
+ - 'test/**/*.rb'
View
@@ -5,10 +5,11 @@ before_install:
- gem update bundler
rvm:
- - 2.0.0
- - 2.1.*
- - 2.2.*
- - 2.3.1
+ - 2.0
+ - 2.1
+ - 2.2
+ - 2.3.3
+ - 2.4.0
## - ruby-head
addons:
View
@@ -6,7 +6,6 @@ rescue LoadError
end
require 'rubygems'
-require 'rake/testtask'
require 'rake/clean'
task :default => [:test, :rubocop]
@@ -20,11 +19,8 @@ task :rubocop do
end
end
-Rake::TestTask.new("test") do |t|
- t.libs << "test"
- t.test_files = Dir.glob("test/**/test_*.rb")
- t.verbose = true
- t.warning = false
+task :test do
+ ruby("test/run_test.rb")
end
begin
View
@@ -53,7 +53,6 @@ def _main
opts.on('-c', '--check', 'Check manuscript') { check_only = true }
opts.on('--level=LVL', 'Section level to append number.') {|lvl| config["secnolevel"] = lvl.to_i }
opts.on('--toclevel=LVL', 'Section level to append number.') {|lvl| config["toclevel"] = lvl.to_i }
- opts.on('--nolfinxml', 'Do not insert LF in XML. (idgxml)') { config["nolf"] = true }
opts.on('--structuredxml', 'Produce XML with structured sections. (idgxml)') { config["structuredxml"] = true }
opts.on('--table=WIDTH', 'Default table width. (idgxml)') {|tbl| config["tableopt"] = tbl }
opts.on('--listinfo', 'Append listinfo tag to lists to indicate begin/end. (idgxml)') { config["listinfo"] = true }
View
@@ -1,5 +1,5 @@
#!/usr/bin/env ruby
-# Copyright (c) 2010-2014 Kenshi Muto
+# Copyright (c) 2010-2016 Kenshi Muto
#
# This program is free software
# You can distribute or modify this program under the terms of
@@ -16,20 +16,20 @@ ln = 0
ARGF.each {|line|
ln += 1
- if line =~ /\A\/\/([a-z]+).+\{/
+ if line =~ /\A\/\/([a-z]+)\{\s*\Z/ || line =~ /\A\/\/([a-z]+)\[.+?\{\s*\Z/
# block
_block = $1
puts "#{ln}: block #{_block} started, but previous block #{block} didn't close yet." unless block.nil?
block = _block
elsif line =~ /\A\/\/\}/
- puts "#{ln}: block seen ended, but not opened." if block.nil?
+ puts "#{ln}: block ended, but not opened." if block.nil?
block = nil
maxcolcount = 0
colcount = 0
elsif line =~ /\A(\d+\.)\s+/
# number
unless ["list", "emlist", "listnum", "emlistnum", "cmd", "image", "table"].include?(block)
- puts "#{ln}: found $1 without the head space. Is it correct?"
+ puts "#{ln}: found '#{$1}' without the head space. Is it correct?"
end
elsif line =~ /\A\*\s+/
# itemize
@@ -41,6 +41,7 @@ ARGF.each {|line|
puts "#{ln}: found itemized list or numbered list in #{block}. Is it correct?"
end
elsif block == "table"
+ next if line.start_with?('#@')
if line !~ /\A\-\-\-\-\-/
# table
colcount = line.split("\t").size
View
@@ -1,3 +1,85 @@
+# Version 2.1.0 の主な変更点
+
+## 新機能
+
+* review-init: Gemfileを生成するようにしました([#650])
+* HTMLBuilder: リスト内で言語別のclassを生成するようにしました([#666])
+* HTMLBuilder: image同様indepimageでも<div>要素にid属性を追加しました
+* MD2INAOBuilder: 新builderとしてMD2INAOBuilderを追加しました ([#671])
+* MARKDOWNBuilder, MD2INAOBuilder: ルビに対応しました ([#671])
+* TEXTBuilder: `@<hd>`に対応しました([#648])
+* TOPBuilder: `@<comment>{}`に対応しました ([#625], [#627])
+
+## 非互換の変更
+
+## バグ修正
+
+* review-validate: ブロックや表内でのコメントの挙動と、メッセージを修正しました
+* LATEXBuilder: config.ymlで`rights`が空の場合に対応しました ([#653])
+* LATEXBuilder: config.ymlとlocale.ymlの値のエスケープを修正しました ([#642])
+* PDFMaker: AI, EPS, TIFFの画像に対応しました ([#675])
+* PDFMaker: フックからフルパスを取得できるよう @basehookdir を追加しました ([#662])
+* EPUBMaker: dc:identifierが空になってしまうバグを修正しました ([#636])
+* EPUBMaker: coverファイルの拡張子がxhtmlになってしまうバグを修正しました ([#618])
+* WEBMaker: リンクを修正しました ([#645])
+* WEBMaker: 部がファイルでない場合のリンクを修正しました ([#639], [#641])
+* I18n: format_number_headerので`%pJ`の扱いを修正しました ([#628])
+
+## 機能強化
+
+* LATEXBuilder: pLaTeXでもpxjahyper packageを使うようにしました([#640])
+* LATEXBuilder: `layout.tex.erb`を改良しました([#617])
+* LATEXBuilder: locale.ymlで指定されたキーワードを使うようにしました ([#629])
+* IDGXMLBuilder: コラムの埋め込み目次情報のXMLインストラクションを修正しました ([#634])
+* IDGXMLBuilder: //emlistで空のcaptionができるバグを修正しました ([#633])
+* Rakefile: `preproc`タスクを追加しました ([#630])
+
+## ドキュメント
+
+* 「EPUBローカルルールへの対応方法」のドキュメントを英訳しました
+* 「review-preprocユーザガイド(preproc(.ja).md)」を追加しました ([#632])
+* config.yml: `csl`の例を追加しました
+* config.yml: シンプルなサンプルファイル(config.yml.sample-simple)を追加しました ([#626])
+
+## その他
+
+* templates/以下のテンプレートファイルのライセンスを他の文書内に取り込みやすくするため、MIT licenseにしました([#663])
+* rubocopの新しい警告を抑制しました
+
+## コントリビューターのみなさん
+
+* [@kazken3](https://github.com/kazken3)
+* [@vvakame](https://github.com/vvakame)
+* [@masarakki](https://github.com/masarakki)
+* [@munepi](https://github.com/munepi)
+* [@znz](https://github.com/znz)
+
+[#675]: https://github.com/kmuto/review/issues/
+[#671]: https://github.com/kmuto/review/issues/
+[#666]: https://github.com/kmuto/review/issues/
+[#663]: https://github.com/kmuto/review/issues/
+[#662]: https://github.com/kmuto/review/issues/
+[#653]: https://github.com/kmuto/review/issues/
+[#650]: https://github.com/kmuto/review/issues/
+[#648]: https://github.com/kmuto/review/issues/
+[#645]: https://github.com/kmuto/review/issues/
+[#642]: https://github.com/kmuto/review/issues/
+[#641]: https://github.com/kmuto/review/issues/
+[#640]: https://github.com/kmuto/review/issues/
+[#638]: https://github.com/kmuto/review/issues/
+[#636]: https://github.com/kmuto/review/issues/
+[#634]: https://github.com/kmuto/review/issues/
+[#633]: https://github.com/kmuto/review/issues/
+[#632]: https://github.com/kmuto/review/issues/
+[#630]: https://github.com/kmuto/review/issues/
+[#629]: https://github.com/kmuto/review/issues/
+[#628]: https://github.com/kmuto/review/issues/
+[#627]: https://github.com/kmuto/review/issues/
+[#626]: https://github.com/kmuto/review/issues/
+[#625]: https://github.com/kmuto/review/issues/
+[#618]: https://github.com/kmuto/review/issues/
+[#617]: https://github.com/kmuto/review/issues/
+
# Version 2.0.0の主な変更点
## 新機能
View
@@ -1,3 +1,87 @@
+# Version 2.1.0
+
+## New Features
+
+* review-init: generate Gemfile ([#650])
+* HTMLBuilder: add language specified class in list ([#666])
+* HTMLBuilder: set id to <div> of indepimage as same as image
+* MD2INAOBuilder: support new builder MD2INAOBuilder ([#671])
+* MARKDOWNBuilder, MD2INAOBuilder: support ruby ([#671])
+* TEXTBuilder: support `@<hd>` ([#648])
+* TOPBuilder: support `@<comment>{}` ([#625], [#627])
+
+## Breaking Changes
+
+## Bug Fixes
+
+* review-validate: fix parsing blocks and comments in tables, and messages
+* LATEXBuilder: fix when rights is null in config.yml ([#653])
+* LATEXBuilder: escaping values from config.yml and locale.yml([#642])
+* PDFMaker: support AI, EPS, and TIFF on pdfmaker correctly ([#675])
+* PDFMaker: fix hooks; add @basehookdir and use it to get fullpath ([#662])
+* EPUBMaker: fix missing default dc:identifier value ([#636])
+* EPUBMaker: ext. of cover file should be "xhtml" in EPUB ([#618])
+* WEBMaker: fix broken link ([#645])
+* WEBMaker: fix when Part has no "*.re" file ([#641])
+* I18n: fix `%pJ` in format_number_header ([#628])
+
+## Enhancements
+
+* LATEXBuilder: use pxjahyper package in pLaTeX ([#640])
+* LATEXBuilder: Enhanced implementation of `layout.tex.erb` ([#617])
+* LATEXBuilder: fix to use keywords in locale.yml ([#629])
+* IDGXMLBuilder: add instruction to column headline for toc ([#634])
+* IDGXMLBuilder: fix to avoid empty caption in //emlist ([#633])
+* Rakefile: add task `preproc` ([#630])
+* ReVIEW::Location: add test ([#638])
+
+## Docs
+
+* add customize_epub.md
+* add preproc(.ja).md ([#632])
+* config.yml: add `csl` in sample
+* config.yml: add simplified sample ([#626])
+
+## Others
+
+* license of template fils are MIT license([#663])
+* rubocop: suppress warnings of rubocop
+
+## Contributors
+
+* [@kazken3](https://github.com/kazken3)
+* [@vvakame](https://github.com/vvakame)
+* [@masarakki](https://github.com/masarakki)
+* [@munepi](https://github.com/munepi)
+* [@znz](https://github.com/znz)
+
+[#675]: https://github.com/kmuto/review/issues/
+[#671]: https://github.com/kmuto/review/issues/
+[#666]: https://github.com/kmuto/review/issues/
+[#663]: https://github.com/kmuto/review/issues/
+[#662]: https://github.com/kmuto/review/issues/
+[#653]: https://github.com/kmuto/review/issues/
+[#650]: https://github.com/kmuto/review/issues/
+[#648]: https://github.com/kmuto/review/issues/
+[#645]: https://github.com/kmuto/review/issues/
+[#642]: https://github.com/kmuto/review/issues/
+[#641]: https://github.com/kmuto/review/issues/
+[#640]: https://github.com/kmuto/review/issues/
+[#638]: https://github.com/kmuto/review/issues/
+[#636]: https://github.com/kmuto/review/issues/
+[#634]: https://github.com/kmuto/review/issues/
+[#633]: https://github.com/kmuto/review/issues/
+[#632]: https://github.com/kmuto/review/issues/
+[#630]: https://github.com/kmuto/review/issues/
+[#629]: https://github.com/kmuto/review/issues/
+[#628]: https://github.com/kmuto/review/issues/
+[#627]: https://github.com/kmuto/review/issues/
+[#626]: https://github.com/kmuto/review/issues/
+[#625]: https://github.com/kmuto/review/issues/
+[#618]: https://github.com/kmuto/review/issues/
+[#617]: https://github.com/kmuto/review/issues/
+
+
# Version 2.0.0
## New Features
@@ -172,9 +172,9 @@ secnolevel: 2
# fontdir内から取り込まれる対象となるファイル拡張子。省略した場合は以下
# font_ext: ["ttf", "woff", "otf"]
-# ソースコードハイライトを利用する (pygmentsには外部gemが必要)
+# ソースコードハイライトを利用する (rouge,pygmentsには外部gemが必要)
# highlight:
-# html: "pygments"
+# html: "rouge"
# latex: "listings"
# カタログファイル名を指定する
@@ -51,7 +51,7 @@ colophon: true
## Syntax Highlighting
highlight:
- html: "pygments"
+ html: "rouge"
latex: "listings"
## for HTML
View
@@ -221,6 +221,20 @@ puts "hello world!"
他章のリストを参照するには、後述の「章ID」を指定し、たとえば `@<list>{advanced|main}`(`advanced.re` ファイルの章にあるリスト `main` を参照する)と記述します。
+### 行番号の指定
+
+行番号を指定した番号から始めるには、`//firstlinenum`を使います。
+
+例:
+
+```review
+//firstlinenum[100]
+//listnum[hello][ハローワールド][ruby]{
+puts "hello world!"
+//}
+```
+
+
### ソースコード専用の引用
ソースコードを引用するには次のように記述します。
View
@@ -252,6 +252,20 @@ such as `@<list>{main}`.
When you refer a list in the other chapter, you can use an ID with chapter ID, such like `@<list>{advanced|main}`, to refer a list `main` in `advanced.re`.
+### define line number of first line in code block
+
+If you want to start with specified number as line number, you can use `firstlinenum` command.
+
+Usage:
+
+```review
+//firstlinenum[100]
+//listnum[hello][helloworld][ruby]{
+puts "hello world!"
+//}
+```
+
+
### Quoting Source Code
`//source` is for quoting source code. filename is mandatory.
Oops, something went wrong.

0 comments on commit b85e827

Please sign in to comment.