asciidoctor 1.5.8 → 2.0.0.rc.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (158) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.adoc +162 -17
  3. data/LICENSE +1 -1
  4. data/README-de.adoc +12 -13
  5. data/README-fr.adoc +11 -12
  6. data/README-jp.adoc +11 -12
  7. data/README-zh_CN.adoc +12 -13
  8. data/README.adoc +6 -7
  9. data/asciidoctor.gemspec +19 -24
  10. data/bin/asciidoctor +5 -4
  11. data/data/reference/syntax.adoc +283 -0
  12. data/data/stylesheets/asciidoctor-default.css +56 -52
  13. data/data/stylesheets/coderay-asciidoctor.css +7 -9
  14. data/lib/asciidoctor.rb +171 -232
  15. data/lib/asciidoctor/abstract_block.rb +96 -105
  16. data/lib/asciidoctor/abstract_node.rb +118 -139
  17. data/lib/asciidoctor/attribute_list.rb +10 -14
  18. data/lib/asciidoctor/block.rb +20 -19
  19. data/lib/asciidoctor/callouts.rb +4 -2
  20. data/lib/asciidoctor/cli.rb +3 -2
  21. data/lib/asciidoctor/cli/invoker.rb +14 -21
  22. data/lib/asciidoctor/cli/options.rb +64 -54
  23. data/lib/asciidoctor/converter.rb +357 -185
  24. data/lib/asciidoctor/converter/composite.rb +40 -48
  25. data/lib/asciidoctor/converter/docbook5.rb +604 -640
  26. data/lib/asciidoctor/converter/html5.rb +949 -963
  27. data/lib/asciidoctor/converter/manpage.rb +569 -548
  28. data/lib/asciidoctor/converter/template.rb +231 -272
  29. data/lib/asciidoctor/core_ext.rb +5 -18
  30. data/lib/asciidoctor/core_ext/float/truncate.rb +19 -0
  31. data/lib/asciidoctor/core_ext/match_data/names.rb +7 -0
  32. data/lib/asciidoctor/core_ext/nil_or_empty.rb +1 -0
  33. data/lib/asciidoctor/core_ext/regexp/is_match.rb +4 -2
  34. data/lib/asciidoctor/document.rb +399 -377
  35. data/lib/asciidoctor/extensions.rb +72 -140
  36. data/lib/asciidoctor/helpers.rb +122 -83
  37. data/lib/asciidoctor/inline.rb +5 -1
  38. data/lib/asciidoctor/list.rb +13 -11
  39. data/lib/asciidoctor/logging.rb +17 -16
  40. data/lib/asciidoctor/parser.rb +390 -423
  41. data/lib/asciidoctor/path_resolver.rb +10 -5
  42. data/lib/asciidoctor/reader.rb +286 -263
  43. data/lib/asciidoctor/rouge_ext.rb +39 -0
  44. data/lib/asciidoctor/section.rb +9 -8
  45. data/lib/asciidoctor/stylesheets.rb +19 -37
  46. data/lib/asciidoctor/substitutors.rb +364 -509
  47. data/lib/asciidoctor/syntax_highlighter.rb +238 -0
  48. data/lib/asciidoctor/syntax_highlighter/coderay.rb +87 -0
  49. data/lib/asciidoctor/syntax_highlighter/highlightjs.rb +26 -0
  50. data/lib/asciidoctor/syntax_highlighter/html_pipeline.rb +10 -0
  51. data/lib/asciidoctor/syntax_highlighter/prettify.rb +27 -0
  52. data/lib/asciidoctor/syntax_highlighter/pygments.rb +149 -0
  53. data/lib/asciidoctor/syntax_highlighter/rouge.rb +129 -0
  54. data/lib/asciidoctor/table.rb +73 -66
  55. data/lib/asciidoctor/timings.rb +4 -2
  56. data/lib/asciidoctor/version.rb +2 -1
  57. data/lib/asciidoctor/writer.rb +30 -0
  58. data/man/asciidoctor.1 +19 -15
  59. data/man/asciidoctor.adoc +14 -12
  60. metadata +69 -216
  61. data/CONTRIBUTING.adoc +0 -185
  62. data/Gemfile +0 -60
  63. data/Rakefile +0 -129
  64. data/bin/asciidoctor-safe +0 -15
  65. data/features/open_block.feature +0 -92
  66. data/features/pass_block.feature +0 -66
  67. data/features/step_definitions.rb +0 -49
  68. data/features/text_formatting.feature +0 -57
  69. data/features/xref.feature +0 -1039
  70. data/lib/asciidoctor/converter/base.rb +0 -59
  71. data/lib/asciidoctor/converter/docbook45.rb +0 -93
  72. data/lib/asciidoctor/converter/factory.rb +0 -226
  73. data/lib/asciidoctor/core_ext/1.8.7/base64/strict_encode64.rb +0 -6
  74. data/lib/asciidoctor/core_ext/1.8.7/concurrent/hash.rb +0 -5
  75. data/lib/asciidoctor/core_ext/1.8.7/hash/key.rb +0 -4
  76. data/lib/asciidoctor/core_ext/1.8.7/io/binread.rb +0 -6
  77. data/lib/asciidoctor/core_ext/1.8.7/io/write.rb +0 -5
  78. data/lib/asciidoctor/core_ext/1.8.7/string/chr.rb +0 -6
  79. data/lib/asciidoctor/core_ext/1.8.7/string/limit_bytesize.rb +0 -29
  80. data/lib/asciidoctor/core_ext/1.8.7/symbol/empty.rb +0 -6
  81. data/lib/asciidoctor/core_ext/1.8.7/symbol/length.rb +0 -6
  82. data/lib/asciidoctor/core_ext/string/limit_bytesize.rb +0 -10
  83. data/test/api_test.rb +0 -1240
  84. data/test/attribute_list_test.rb +0 -242
  85. data/test/attributes_test.rb +0 -1623
  86. data/test/blocks_test.rb +0 -3870
  87. data/test/converter_test.rb +0 -470
  88. data/test/document_test.rb +0 -1853
  89. data/test/extensions_test.rb +0 -1560
  90. data/test/fixtures/asciidoc_index.txt +0 -521
  91. data/test/fixtures/basic-docinfo-footer.html +0 -6
  92. data/test/fixtures/basic-docinfo-footer.xml +0 -8
  93. data/test/fixtures/basic-docinfo.html +0 -1
  94. data/test/fixtures/basic-docinfo.xml +0 -4
  95. data/test/fixtures/basic.asciidoc +0 -5
  96. data/test/fixtures/chapter-a.adoc +0 -3
  97. data/test/fixtures/child-include.adoc +0 -5
  98. data/test/fixtures/circle.svg +0 -9
  99. data/test/fixtures/custom-backends/erb/html5/block_paragraph.html.erb +0 -6
  100. data/test/fixtures/custom-backends/haml/docbook45/block_paragraph.xml.haml +0 -6
  101. data/test/fixtures/custom-backends/haml/html5-tweaks/block_paragraph.html.haml +0 -1
  102. data/test/fixtures/custom-backends/haml/html5/block_paragraph.html.haml +0 -3
  103. data/test/fixtures/custom-backends/haml/html5/block_sidebar.html.haml +0 -5
  104. data/test/fixtures/custom-backends/slim/docbook45/block_paragraph.xml.slim +0 -6
  105. data/test/fixtures/custom-backends/slim/html5/block_paragraph.html.slim +0 -3
  106. data/test/fixtures/custom-backends/slim/html5/block_sidebar.html.slim +0 -5
  107. data/test/fixtures/custom-docinfodir/basic-docinfo.html +0 -1
  108. data/test/fixtures/custom-docinfodir/docinfo.html +0 -1
  109. data/test/fixtures/docinfo-footer.html +0 -1
  110. data/test/fixtures/docinfo-footer.xml +0 -9
  111. data/test/fixtures/docinfo.html +0 -1
  112. data/test/fixtures/docinfo.xml +0 -3
  113. data/test/fixtures/doctime-localtime.adoc +0 -2
  114. data/test/fixtures/dot.gif +0 -0
  115. data/test/fixtures/encoding.asciidoc +0 -13
  116. data/test/fixtures/file-with-missing-include.adoc +0 -1
  117. data/test/fixtures/grandchild-include.adoc +0 -3
  118. data/test/fixtures/hello-asciidoctor.pdf +0 -69
  119. data/test/fixtures/include-file.asciidoc +0 -24
  120. data/test/fixtures/include-file.jsx +0 -8
  121. data/test/fixtures/include-file.ml +0 -3
  122. data/test/fixtures/include-file.xml +0 -5
  123. data/test/fixtures/lists.adoc +0 -96
  124. data/test/fixtures/master.adoc +0 -5
  125. data/test/fixtures/mismatched-end-tag.adoc +0 -7
  126. data/test/fixtures/other-chapters.adoc +0 -11
  127. data/test/fixtures/outer-include.adoc +0 -5
  128. data/test/fixtures/parent-include-restricted.adoc +0 -5
  129. data/test/fixtures/parent-include.adoc +0 -5
  130. data/test/fixtures/sample.asciidoc +0 -30
  131. data/test/fixtures/section-a.adoc +0 -4
  132. data/test/fixtures/stylesheets/custom.css +0 -3
  133. data/test/fixtures/subdir/index.adoc +0 -3
  134. data/test/fixtures/subdir/inner-include.adoc +0 -3
  135. data/test/fixtures/subdir/middle-include.adoc +0 -5
  136. data/test/fixtures/subs-docinfo.html +0 -2
  137. data/test/fixtures/subs.adoc +0 -6
  138. data/test/fixtures/tagged-class-enclosed.rb +0 -25
  139. data/test/fixtures/tagged-class.rb +0 -23
  140. data/test/fixtures/tip.gif +0 -0
  141. data/test/fixtures/unclosed-tag.adoc +0 -3
  142. data/test/fixtures/unexpected-end-tag.adoc +0 -4
  143. data/test/invoker_test.rb +0 -745
  144. data/test/links_test.rb +0 -855
  145. data/test/lists_test.rb +0 -5151
  146. data/test/logger_test.rb +0 -211
  147. data/test/manpage_test.rb +0 -660
  148. data/test/options_test.rb +0 -262
  149. data/test/paragraphs_test.rb +0 -562
  150. data/test/parser_test.rb +0 -742
  151. data/test/paths_test.rb +0 -395
  152. data/test/preamble_test.rb +0 -173
  153. data/test/reader_test.rb +0 -2161
  154. data/test/sections_test.rb +0 -3575
  155. data/test/substitutions_test.rb +0 -2066
  156. data/test/tables_test.rb +0 -2036
  157. data/test/test_helper.rb +0 -447
  158. data/test/text_test.rb +0 -309
@@ -1,6 +1,6 @@
1
1
  = Asciidoctor
2
2
  Dan Allen <https://github.com/mojavelinux[@mojavelinux]>; Sarah White <https://github.com/graphitefriction[@graphitefriction]>; Ryan Waldron <https://github.com/erebor[@erebor]>
3
- v1.5.8, 2018-10-28
3
+ v2.0.0.rc.1, 2019-03-02
4
4
  // settings:
5
5
  :idprefix:
6
6
  :idseparator: -
@@ -17,7 +17,7 @@ ifdef::env-github[]
17
17
  :warning-caption: :warning:
18
18
  endif::[]
19
19
  // Variables:
20
- :release-version: 1.5.8
20
+ :release-version: 2.0.0.rc.1
21
21
  // URIs:
22
22
  :uri-org: https://github.com/asciidoctor
23
23
  :uri-repo: {uri-org}/asciidoctor
@@ -59,7 +59,7 @@ endif::[]
59
59
  // images:
60
60
  :image-uri-screenshot: https://raw.githubusercontent.com/asciidoctor/asciidoctor/master/screenshot.png
61
61
 
62
- {uri-project}/[Asciidoctor] est un processeur de texte et une chaîne de publication _rapide_ et {uri-license}[open source] permettant de convertir du contenu {uri-what-is-asciidoc}[AsciiDoc] en HTML5, DocBook, PDF et d'autres formats.
62
+ {uri-project}/[Asciidoctor] est un processeur de texte et une chaîne de publication _rapide_ et {uri-license}[open source] permettant de convertir du contenu {uri-what-is-asciidoc}[AsciiDoc] en HTML 5, DocBook 5, PDF et d'autres formats.
63
63
  Asciidoctor est écrit en Ruby et fonctionne sur les principaux systèmes d'exploitation.
64
64
  Pour simplifier l'installation, Asciidoctor est publié au format gem sur {uri-rubygem}[RubyGems.org], et il est également disponible en tant que paquet système sur les principales distributions Linux ainsi que sur macOS.
65
65
  Asciidoctor fonctionne aussi sur la JVM avec {uri-asciidoctorj}[AsciidoctorJ] et dans n'importe quel environnement JavaScript avec {uri-asciidoctorjs}[Asciidoctor.js].
@@ -106,14 +106,14 @@ Vous pouvez aider ce projet en devant un sponsor sur https://opencollective.com/
106
106
 
107
107
  == En un mot
108
108
 
109
- Asciidoctor lit du contenu écrit en texte brut, comme présenté dans la partie gauche de l'image ci-dessous, et le convertit en HTML5, comme présenté dans la partie droite.
110
- Asciidoctor applique une feuille de style par défaut au document HTML5 afin de fournir une expérience de lecture agréable, clé en main.
109
+ Asciidoctor lit du contenu écrit en texte brut, comme présenté dans la partie gauche de l'image ci-dessous, et le convertit en HTML 5, comme présenté dans la partie droite.
110
+ Asciidoctor applique une feuille de style par défaut au document HTML 5 afin de fournir une expérience de lecture agréable, clé en main.
111
111
 
112
112
  image::{image-uri-screenshot}[Prévisualisation d'une source AsciiDoc et le rendu HTML correspondant]
113
113
 
114
114
  == Le traitement d'AsciiDoc
115
115
 
116
- Asciidoctor lit et analyse la syntaxe du texte écrit en AsciiDoc afin de créer une représentation, sous forme d'arbre, à partir de laquelle des templates sont appliqués pour produire de l'HTML5, du DocBook 5 et des pages de man(uel).
116
+ Asciidoctor lit et analyse la syntaxe du texte écrit en AsciiDoc afin de créer une représentation, sous forme d'arbre, à partir de laquelle des templates sont appliqués pour produire de l'HTML 5, du DocBook 5 et des pages de man(uel).
117
117
 
118
118
  Vous avez la possibilité d'écrire votre propre convertisseur ou de fournir des templates supportant {uri-tilt}[Tilt] pour personnaliser le résultat généré ou pour produire des formats alternatifs.
119
119
 
@@ -121,7 +121,7 @@ Asciidoctor remplace le processeur AsciiDoc original écrit en Python (`asciidoc
121
121
  La suite de tests Asciidoctor possède {uri-tests}[plus de 2,000 tests] afin de garantir la compatibilité avec la syntaxe AsciiDoc.
122
122
 
123
123
  En plus de la syntaxe AsciiDoc standard, Asciidoctor reconnaît des balises additionnelles ainsi que des options de formatage, comme les polices d'icônes (par exemple `+icon:fire[]+`) et des éléments d'interface (par exemple `+button:[Enregistrer]+`).
124
- Asciidoctor offre aussi un thème moderne et « responsive » basé sur {uri-foundation}[Foundation] pour styliser le document HTML5 généré.
124
+ Asciidoctor offre aussi un thème moderne et « responsive » basé sur {uri-foundation}[Foundation] pour styliser le document HTML 5 généré.
125
125
 
126
126
  == Asciidoctor est disponible partout où Ruby est disponible
127
127
 
@@ -137,9 +137,8 @@ Asciidoctor.js est utilisé pour faire fonctionner les extensions AsciiDoc Previ
137
137
 
138
138
  Asciidoctor fonctionne sur Linux, macOS et Windows et requiert une des implémentations suivantes de {uri-ruby}[Ruby] :
139
139
 
140
- * Ruby (MRI/CRuby 1.8.7 - 2.5)
141
- * JRuby (1.7 en mode Ruby 1.8 et 1.9, 9000)
142
- * Rubinius 2.2.x
140
+ * CRuby (aka MRI) 2.3 - 2.6
141
+ * JRuby 9.1 - 9.2
143
142
  * Opal (JavaScript)
144
143
 
145
144
  [CAUTION]
@@ -203,7 +202,7 @@ Ouvrez un terminal et tapez :
203
202
 
204
203
  $ brew install asciidoctor
205
204
 
206
- Homebrew installe la gemme `asciidoctor` dans un répertoire spécifique qui est indépendant des gemmes système.
205
+ Homebrew installe la gemme `asciidoctor` dans un répertoire spécifique qui est indépendant des gemmes système.
207
206
 
208
207
  [#gem-install]
209
208
  === (c) gem install
@@ -428,7 +427,7 @@ L'organisation Asciidoctor sur GitHub:: {uri-org}
428
427
 
429
428
  == Licence
430
429
 
431
- Copyright (C) 2012-2018 Dan Allen, Sarah White et les contributeurs individuels d'Asciidoctor.
430
+ Copyright (C) 2012-2019 Dan Allen, Sarah White et les contributeurs individuels d'Asciidoctor.
432
431
  Une utilisation libre de ce logiciel est autorisée sous les termes de la licence MIT.
433
432
 
434
433
  Consultez le fichier {uri-license}[LICENSE] pour plus de détails.
@@ -1,6 +1,6 @@
1
1
  = Asciidoctor
2
2
  Dan Allen <https://github.com/mojavelinux[@mojavelinux]>; Sarah White <https://github.com/graphitefriction[@graphitefriction]>; Ryan Waldron <https://github.com/erebor[@erebor]>
3
- v1.5.8, 2018-10-28
3
+ v2.0.0.rc.1, 2019-03-02
4
4
  // settings:
5
5
  :page-layout: base
6
6
  :idprefix:
@@ -18,7 +18,7 @@ ifdef::env-github[]
18
18
  :warning-caption: :warning:
19
19
  endif::[]
20
20
  // Variables:
21
- :release-version: 1.5.8
21
+ :release-version: 2.0.0.rc.1
22
22
  // URIs:
23
23
  :uri-org: https://github.com/asciidoctor
24
24
  :uri-repo: {uri-org}/asciidoctor
@@ -60,10 +60,10 @@ endif::[]
60
60
  // images:
61
61
  :image-uri-screenshot: https://raw.githubusercontent.com/asciidoctor/asciidoctor/master/screenshot.png
62
62
 
63
- {uri-project}/[Asciidoctor]は _高速な_ テキストプロセッサで {uri-what-is-asciidoc}[AsciiDoc] をHTML5, DocBook 5(4.5)や他のフォーマットに変換するツールチェインを配布しています.
63
+ {uri-project}/[Asciidoctor]は _高速な_ テキストプロセッサで {uri-what-is-asciidoc}[AsciiDoc] をHTML 5, DocBook 5や他のフォーマットに変換するツールチェインを配布しています.
64
64
  AsciidoctorはRubyで書かれており, RubyGemとしてパッケージされ, {uri-rubygem}[RubyGems.org] で配布されています.
65
65
  gemはいくつかのLinuxディストリビューション, Fedora, Debian, Ubuntuにも含まれています.
66
- Asciidoctorはオープンソース {uri-repo}[hosted on Github] で {uri-license}[the MIT licence]のもとに配布されます.
66
+ Asciidoctorはオープンソース {uri-repo}[hosted on GitHub] で {uri-license}[the MIT licence]のもとに配布されます.
67
67
 
68
68
  ifndef::env-site[]
69
69
  Translations of this document are available in the following languages:
@@ -102,28 +102,27 @@ endif::[]
102
102
 
103
103
  == The Big Picture
104
104
 
105
- Asciidoctorは下図の左側のパネルに示されるように, 平文で書かれた内容を読み, 右のパネルに描かれるようにHTML5に変換します.
106
- Asciidoctorは枠にとらわれない快適なエクスペリエンスのためにデフォルトスタイルシートをHTML5ドキュメントに適用します.
105
+ Asciidoctorは下図の左側のパネルに示されるように, 平文で書かれた内容を読み, 右のパネルに描かれるようにHTML 5に変換します.
106
+ Asciidoctorは枠にとらわれない快適なエクスペリエンスのためにデフォルトスタイルシートをHTML 5ドキュメントに適用します.
107
107
 
108
108
  image::{image-uri-screenshot}[Preview of AsciiDoc source and corresponding rendered HTML]
109
109
 
110
110
  == AsciiDoc Processing
111
- AsciidoctorはAsciiDoc文法で書かれたテキストを読み込み解釈し, それからHTML5, DocBook5(4.5)やman(ual)を出力するために内蔵コンバータセットにパースツリーを渡します.
111
+ AsciidoctorはAsciiDoc文法で書かれたテキストを読み込み解釈し, それからHTML 5, DocBook 5やman(ual)を出力するために内蔵コンバータセットにパースツリーを渡します.
112
112
  生成された出力をカスタマイズ, あるいは追加のフォーマットをつくるためにあなた自身のコンバータを使うことや {uri-tilt}[Tilt]-supported テンプレートを読み込むオプションがあります.
113
113
 
114
114
  NOTE: AsciidoctorはオリジナルのAsciiDoc Pythonプロセッサ(`asciidoc.py`)の完全互換です.
115
115
  Asciidoctorテストスイートは {uri-tests}[> 1,600 tests] をAsciiDoc文法との互換性を保証するために有しています.
116
116
 
117
117
  クラシックなAsciiDoc文法に加えて, Asciidoctorは追加のマークアップとフォントベースのicons(例えば, `+icon:fire[]+`)などのフォーマッティングオプションとUIエレメント(`+button:[Save]+`)を 受け付けます.
118
- AsciidoctorはHTML5出力をスタイルするため, モダンで, {uri-foundation}[Foundation] に基づいたレスポンシブテーマをも提供します.
118
+ AsciidoctorはHTML 5出力をスタイルするため, モダンで, {uri-foundation}[Foundation] に基づいたレスポンシブテーマをも提供します.
119
119
 
120
120
  == Requirements
121
121
 
122
122
  AsciidoctorはLinux, OS X (Mac)とWindowsで動き, 下記の {uri-ruby}[Ruby]実装の一つを必要とします.
123
123
 
124
- * MRI (Ruby 1.8.7, 1.9.3, 2.0, 2.1, 2.2 & 2.3)
125
- * JRuby (1.7 in Ruby 1.8 and 1.9 modes, 9000)
126
- * Rubinius 2.2.x
124
+ * CRuby (aka MRI) 2.3 - 2.6
125
+ * JRuby 9.1 - 9.2
127
126
  * Opal (JavaScript)
128
127
 
129
128
  [CAUTION]
@@ -395,7 +394,7 @@ Asciidoctor organization on GitHub:: {uri-org}
395
394
 
396
395
  == Copyright and Licensing
397
396
 
398
- Copyright (C) 2012-2018 Dan Allen, Ryan Waldron and the Asciidoctor Project.
397
+ Copyright (C) 2012-2019 Dan Allen, Ryan Waldron and the Asciidoctor Project.
399
398
  本ソフトウェアはMITライセンスのもとで自由に使用できます.
400
399
 
401
400
  詳細は {uri-license}[LICENSE] ファイルを参照してください.
@@ -1,6 +1,6 @@
1
1
  = Asciidoctor
2
2
  Dan Allen <https://github.com/mojavelinux[@mojavelinux]>; Sarah White <https://github.com/graphitefriction[@graphitefriction]>; Ryan Waldron <https://github.com/erebor[@erebor]>
3
- v1.5.8, 2018-10-28
3
+ v2.0.0.rc.1, 2019-03-02
4
4
  // settings:
5
5
  :page-layout: base
6
6
  :idprefix:
@@ -18,7 +18,7 @@ ifdef::env-github[]
18
18
  :warning-caption: :warning:
19
19
  endif::[]
20
20
  // Variables:
21
- :release-version: 1.5.8
21
+ :release-version: 2.0.0.rc.1
22
22
  // URIs:
23
23
  :uri-org: https://github.com/asciidoctor
24
24
  :uri-repo: {uri-org}/asciidoctor
@@ -60,7 +60,7 @@ endif::[]
60
60
  // images:
61
61
  :image-uri-screenshot: https://raw.githubusercontent.com/asciidoctor/asciidoctor/master/screenshot.png
62
62
 
63
- {uri-project}/[Asciidoctor] 是一个 _快速_ 文本处理器和发布工具链,它可以将 {uri-what-is-asciidoc}[AsciiDoc] 文档转化成 HTML5、 DocBook 5 (或 4.5) 以及其他格式。
63
+ {uri-project}/[Asciidoctor] 是一个 _快速_ 文本处理器和发布工具链,它可以将 {uri-what-is-asciidoc}[AsciiDoc] 文档转化成 HTML 5、 DocBook 5 以及其他格式。
64
64
  Asciidoctor 由 Ruby 编写,打包成 RubyGem,然后发布到 {uri-rubygem}[RubyGems.org] 上。
65
65
  这个 gem 还被包含道几个 Linux 发行版中,其中包括 Fedora、Debian 和 Ubuntu。
66
66
  Asciidoctor 是开源的,{uri-repo}[代码]托管在 GitHub,遵从 {uri-license}[MIT] 协议。
@@ -101,31 +101,30 @@ endif::[]
101
101
  [#the-big-picture]
102
102
  == 整体概况
103
103
 
104
- Asciidoctor 以纯文本格式读取内容,见下图左边的面板,并将它转换成 HTML5 呈现在右侧面板中。
105
- Asciidoctor 将默认的样式表应用到 HTML5 文档上,提供一个愉快的开箱即用的体验。
104
+ Asciidoctor 以纯文本格式读取内容,见下图左边的面板,并将它转换成 HTML 5 呈现在右侧面板中。
105
+ Asciidoctor 将默认的样式表应用到 HTML 5 文档上,提供一个愉快的开箱即用的体验。
106
106
 
107
107
  image::{image-uri-screenshot}[AsciiDoc 源文预览和相应的 HTML 渲染]
108
108
 
109
109
  [#asciidoc-processing]
110
110
  == AsciiDoc Processing
111
111
 
112
- Asciidoctor 会读取并处理用 AsciiDoc 语法写的文件,然后将解析出来的解析树参数交给内置的转化器去生成 HTML5,DocBook 5 (或 4.5) 或帮助手册页面输出。
112
+ Asciidoctor 会读取并处理用 AsciiDoc 语法写的文件,然后将解析出来的解析树参数交给内置的转化器去生成 HTML 5,DocBook 5 或帮助手册页面输出。
113
113
  你可以选择使用你自己的转化器或者加载 {uri-tilt}[Tilt] - 支持通过模板来自定义输出或产生附加的格式。
114
114
 
115
115
  NOTE: Asciidoctor是为了直接替换原 AsciiDoc Python 处理器(`asciidoc.py`)。
116
116
  Asciidoctor 测试套件含有 {uri-tests}[> 1,600 测试示例] 来确保和 AsciiDoc 语法的兼容性。
117
117
 
118
118
  除了传统的 AsciiDoc 语法,Asciidoctor 还添加额外的标记和格式设置选项,例如 font-based 图标(例如: `+icon:fire[]+`)和 UI 元素(例如: `+button:[Save]+`)。
119
- Asciidoctor 还提供了一个基于 {uri-foundation}[Foundation] 的现代化的、响应式主题来美化 HTML5 输出。
119
+ Asciidoctor 还提供了一个基于 {uri-foundation}[Foundation] 的现代化的、响应式主题来美化 HTML 5 输出。
120
120
 
121
121
  [#requirements]
122
122
  == 要求
123
123
 
124
124
  Asciidoctor 可以运行在 Linux,OSX (Mac) 和 Windows 系统,但需要安装下面任意一个 {uri-ruby}[Ruby] 环境去实现:
125
125
 
126
- * MRI (Ruby 1.8.7, 1.9.3, 2.0, 2.1, 2.2 & 2.3)
127
- * JRuby (1.7 in Ruby 1.8 and 1.9 modes, 9000)
128
- * Rubinius 2.2.x
126
+ * CRuby (aka MRI) 2.3 - 2.6
127
+ * JRuby 9.1 - 9.2
129
128
  * Opal (JavaScript)
130
129
 
131
130
  我们欢迎你来帮助在这些以及其他平台测试 Asciidoctor。
@@ -282,7 +281,7 @@ Runtime Environment (ruby 2.4.1p111 [x86_64-linux]) (lc:UTF-8 fs:UTF-8 in:- ex:U
282
281
  ....
283
282
 
284
283
  Asciidoctor 还提供了一套 API。
285
- 这套 API 是为了整合其他的 Ruby 软件,例如 Rails、Sinatra、Github,甚至其他语言,比如 Java (通过 {uri-asciidoctorj}[AsciidoctorJ]) 和 JavaScript (通过 {uri-asciidoctorjs}[Asciidoctor.js])。
284
+ 这套 API 是为了整合其他的 Ruby 软件,例如 Rails、Sinatra、GitHub,甚至其他语言,比如 Java (通过 {uri-asciidoctorj}[AsciidoctorJ]) 和 JavaScript (通过 {uri-asciidoctorjs}[Asciidoctor.js])。
286
285
 
287
286
  [#command-line-interface-cli]
288
287
  === 命令行(CLI)
@@ -403,7 +402,7 @@ Further information and documentation about Asciidoctor can be found on the proj
403
402
  {uri-project}/[Home] | {uri-news}[News] | {uri-docs}[Docs]
404
403
  endif::[]
405
404
 
406
- Asciidoctor 组织在 Github 托管代码、议案跟踪和相关子项目。
405
+ Asciidoctor 组织在 GitHub 托管代码、议案跟踪和相关子项目。
407
406
 
408
407
  代码库 (git):: {uri-repo}
409
408
  议案跟踪:: {uri-issues}
@@ -412,7 +411,7 @@ Asciidoctor 组织在 Github 托管代码、议案跟踪和相关子项目。
412
411
  [#copyright-and-licensing]
413
412
  == 版权和协议
414
413
 
415
- Copyright (C) 2012-2018 Dan Allen, Ryan Waldron and the Asciidoctor Project.
414
+ Copyright (C) 2012-2019 Dan Allen, Ryan Waldron and the Asciidoctor Project.
416
415
  这个软件的免费使用是在MIT许可条款授予的。
417
416
 
418
417
  请看 {uri-license}[版权声明] 文件来获取更多详细信息。
@@ -1,6 +1,6 @@
1
1
  = Asciidoctor
2
2
  Dan Allen <https://github.com/mojavelinux[@mojavelinux]>; Sarah White <https://github.com/graphitefriction[@graphitefriction]>; Ryan Waldron <https://github.com/erebor[@erebor]>
3
- v1.5.8, 2018-10-28
3
+ v2.0.0.rc.1, 2019-03-02
4
4
  // settings:
5
5
  :idprefix:
6
6
  :idseparator: -
@@ -17,7 +17,7 @@ ifdef::env-github[]
17
17
  :warning-caption: :warning:
18
18
  endif::[]
19
19
  // Variables:
20
- :release-version: 1.5.8
20
+ :release-version: 2.0.0.rc.1
21
21
  // URIs:
22
22
  :uri-org: https://github.com/asciidoctor
23
23
  :uri-repo: {uri-org}/asciidoctor
@@ -143,9 +143,8 @@ It's used to power the AsciiDoc preview extensions for Chrome, Atom, Brackets an
143
143
 
144
144
  Asciidoctor works on Linux, macOS and Windows and requires one of the following implementations of {uri-ruby}[Ruby]:
145
145
 
146
- * Ruby (MRI/CRuby 1.8.7 - 2.5)
147
- * JRuby (1.7 in Ruby 1.8 and 1.9 modes, 9000)
148
- * Rubinius 2.2.x
146
+ * CRuby (aka MRI) 2.3 - 2.6
147
+ * JRuby 9.1 - 9.2
149
148
  * Opal (JavaScript)
150
149
 
151
150
  [CAUTION]
@@ -329,7 +328,7 @@ You should see information about the Asciidoctor version and your Ruby environme
329
328
  [.output,subs=attributes+]
330
329
  ....
331
330
  Asciidoctor {release-version} [https://asciidoctor.org]
332
- Runtime Environment (ruby 2.5.1p57 [x86_64-linux]) (lc:UTF-8 fs:UTF-8 in:- ex:UTF-8)
331
+ Runtime Environment (ruby 2.6.0p0 [x86_64-linux]) (lc:UTF-8 fs:UTF-8 in:- ex:UTF-8)
333
332
  ....
334
333
 
335
334
  Asciidoctor also provides an API.
@@ -456,7 +455,7 @@ Asciidoctor organization on GitHub:: {uri-org}
456
455
 
457
456
  == License
458
457
 
459
- Copyright (C) 2012-2018 Dan Allen, Sarah White and the individual contributors to Asciidoctor.
458
+ Copyright (C) 2012-2019 Dan Allen, Sarah White and the individual contributors to Asciidoctor.
460
459
  Use of this software is granted under the terms of the MIT License.
461
460
 
462
461
  See the {uri-license}[LICENSE] for the full license text.
@@ -1,21 +1,20 @@
1
- # encoding: UTF-8
2
1
  begin
3
- require File.expand_path '../lib/asciidoctor/version', __FILE__
2
+ require_relative 'lib/asciidoctor/version'
4
3
  rescue LoadError
5
4
  require 'asciidoctor/version'
6
5
  end
7
6
 
8
- require 'open3' unless defined? Open3
9
-
10
7
  Gem::Specification.new do |s|
11
8
  s.name = 'asciidoctor'
12
9
  s.version = Asciidoctor::VERSION
13
- s.summary = 'An implementation of the AsciiDoc text processor and publishing toolchain in Ruby'
14
- s.description = 'A fast, open source text processor and publishing toolchain, written in Ruby, for converting AsciiDoc content to HTML5, DocBook 5 (or 4.5) and other formats.'
10
+ s.summary = 'An implementation of the AsciiDoc text processor and publishing toolchain'
11
+ s.description = 'A fast, open source text processor and publishing toolchain for converting AsciiDoc content to HTML 5, DocBook 5, and other formats.'
15
12
  s.authors = ['Dan Allen', 'Sarah White', 'Ryan Waldron', 'Jason Porter', 'Nick Hengeveld', 'Jeremy McAnally']
16
13
  s.email = ['dan.j.allen@gmail.com']
17
- s.homepage = 'http://asciidoctor.org'
14
+ s.homepage = 'https://asciidoctor.org'
18
15
  s.license = 'MIT'
16
+ # NOTE required ruby version is informational only; it's not enforced since it can't be overridden and can cause builds to break
17
+ #s.required_ruby_version = '>= 2.3.0'
19
18
  s.metadata = {
20
19
  'bug_tracker_uri' => 'https://github.com/asciidoctor/asciidoctor/issues',
21
20
  'changelog_uri' => 'https://github.com/asciidoctor/asciidoctor/blob/master/CHANGELOG.adoc',
@@ -25,35 +24,31 @@ Gem::Specification.new do |s|
25
24
 
26
25
  # NOTE the logic to build the list of files is designed to produce a usable package even when the git command is not available
27
26
  files = begin
28
- # NOTE popen3 is used instead of backticks to fail properly when used with JRuby
29
- (result = Open3.popen3('git ls-files -z') {|_, out| out.read }.split %(\0)).empty? ? Dir['**/*'] : result
27
+ (result = `git ls-files -z`.split ?\0).empty? ? Dir['**/*'] : result
30
28
  rescue
31
29
  Dir['**/*']
32
30
  end
33
- s.files = files.grep %r/^(?:(?:data|lib|man)\/.+|Gemfile|Rakefile|LICENSE|(?:CHANGELOG|CONTRIBUTING|README(?:-\w+)?)\.adoc|#{s.name}\.gemspec)$/
31
+ s.files = files.grep %r/^(?:(?:data|lib|man)\/.+|LICENSE|(?:CHANGELOG|README(?:-\w+)?)\.adoc|#{s.name}\.gemspec)$/
34
32
  s.executables = (files.grep %r/^bin\//).map {|f| File.basename f }
35
33
  s.require_paths = ['lib']
36
- s.test_files = files.grep %r/^(?:(?:features|test)\/.+)$/
37
- s.rdoc_options = ['--charset=UTF-8']
38
- s.extra_rdoc_files = ['CHANGELOG.adoc', 'CONTRIBUTING.adoc', 'LICENSE']
34
+ #s.test_files = files.grep %r/^(?:(?:features|test)\/.+)$/
39
35
 
40
36
  # asciimath is needed for testing AsciiMath in DocBook backend
41
37
  s.add_development_dependency 'asciimath', '~> 1.0.0'
42
38
  # coderay is needed for testing syntax highlighting
43
39
  s.add_development_dependency 'coderay', '~> 1.1.0'
44
- s.add_development_dependency 'cucumber', '~> 2.4.0'
45
- # erubis is needed for testing use of alternative eRuby impls
40
+ # concurrent-ruby, haml, slim, and tilt are needed for testing custom templates
41
+ s.add_development_dependency 'concurrent-ruby', '~> 1.1.0'
42
+ s.add_development_dependency 'cucumber', '~> 3.1.0'
43
+ # erubis is needed for testing alternate eRuby impls
46
44
  s.add_development_dependency 'erubis', '~> 2.7.0'
47
- # haml is needed for testing custom templates
48
45
  s.add_development_dependency 'haml', '~> 5.0.0'
49
- s.add_development_dependency 'nokogiri', '~> 1.8.5'
50
- s.add_development_dependency 'rake', '~> 10.0.0'
51
- s.add_development_dependency 'rspec-expectations', '~> 2.14.0'
52
- # slim is needed for testing custom templates
46
+ s.add_development_dependency 'minitest', '~> 5.11.0'
47
+ s.add_development_dependency 'nokogiri', '~> 1.10.0'
48
+ s.add_development_dependency 'rake', '~> 12.3.0'
49
+ # Asciidoctor supports Rouge >= 3
50
+ s.add_development_dependency 'rouge', '~> 3.3.0'
51
+ s.add_development_dependency 'rspec-expectations', '~> 3.8.0'
53
52
  s.add_development_dependency 'slim', '~> 4.0.0'
54
- # concurrent-ruby is defined in Gemfile due to enforcement of minimum required Ruby version
55
- #s.add_development_dependency 'concurrent-ruby', '~> 1.0.0'
56
- # tilt is needed for testing custom templates
57
53
  s.add_development_dependency 'tilt', '~> 2.0.0'
58
- s.add_development_dependency 'minitest', '~> 5.3.0'
59
54
  end
@@ -1,13 +1,14 @@
1
1
  #!/usr/bin/env ruby
2
+ # frozen_string_literal: true
2
3
 
3
- require 'rubygems' unless defined? Gem
4
-
5
- if File.exist?(asciidoctor = (File.expand_path '../../lib/asciidoctor', __FILE__))
4
+ asciidoctor = File.absolute_path '../lib/asciidoctor.rb', __dir__
5
+ if File.exist? asciidoctor
6
6
  require asciidoctor
7
+ require File.join Asciidoctor::LIB_DIR, 'asciidoctor/cli'
7
8
  else
8
9
  require 'asciidoctor'
10
+ require 'asciidoctor/cli'
9
11
  end
10
- require 'asciidoctor/cli'
11
12
 
12
13
  invoker = Asciidoctor::Cli::Invoker.new ARGV
13
14
  GC.start
@@ -0,0 +1,283 @@
1
+ = AsciiDoc Syntax
2
+ :icons: font
3
+ :stem:
4
+ :toc: left
5
+ :url-docs: https://asciidoctor.org/docs
6
+ :url-gem: https://rubygems.org/gems/asciidoctor
7
+
8
+ A brief reference of the most commonly used AsciiDoc syntax.
9
+ You can find the full documentation for the AsciiDoc syntax at {url-docs}.
10
+
11
+ == Paragraphs
12
+
13
+ A normal paragraph.
14
+ Line breaks are not preserved.
15
+ // line comments, which are lines that start with //, are skipped
16
+
17
+ A blank line separates paragraphs.
18
+
19
+ [%hardbreaks]
20
+ This paragraph carries the `hardbreaks` option.
21
+ Notice how line breaks are now preserved.
22
+
23
+ An indented (literal) paragraph disables text formatting,
24
+ preserves spaces and line breaks, and is displayed in a
25
+ monospaced font.
26
+
27
+ [sidebar#id.role]
28
+ A style, ID, and/or role gives a paragraph (or block) special meaning, like this sidebar.
29
+
30
+ NOTE: An admonition paragraph, like this note, grabs the reader's attention.
31
+
32
+ TIP: Convert this document using the `asciidoctor` command to see the output produced from it.
33
+
34
+ == Text Formatting
35
+ :hardbreaks:
36
+
37
+ .Constrained (applied at word boundaries)
38
+ *strong importance* (aka bold)
39
+ _stress emphasis_ (aka italic)
40
+ `literal text` (aka monospaced)
41
+ "`double`" and '`single`' typographic quotes
42
+ +passthrough text+ (substitutions disabled)
43
+ `+literal passthrough text+` (literal text with substitutions disabled)
44
+
45
+ .Unconstrained (applied anywhere)
46
+ **C**reate+**R**ead+**U**pdate+**D**elete
47
+ fan__freakin__tastic
48
+ ``mono``culture
49
+
50
+ .Replacements
51
+ A long time ago in a galaxy far, far away...
52
+ (C) 1976 Arty Artisan
53
+ I believe I shall--no, actually I won't.
54
+
55
+ .Macros
56
+ // where c=specialchars, q=quotes, a=attributes, r=replacements, m=macros, p=post_replacements, etc.
57
+ The European icon:flag[role=blue] is blue & contains pass:[************] arranged in a icon:circle-o[role=yellow].
58
+ The pass:c[->] operator is often referred to as the stabby lambda.
59
+ Since `pass:[++]` has strong priority in AsciiDoc, you can rewrite pass:c,a,r[C++ => C{pp}].
60
+ // activate stem support by adding `:stem:` to the document header
61
+ stem:[sqrt(4) = 2]
62
+
63
+ :!hardbreaks:
64
+ == Attributes
65
+
66
+ // define attributes in the document header; must be flush with left margin
67
+ :name: value
68
+
69
+ You can download and install Asciidoctor {asciidoctor-version} from {url-gem}.
70
+ C{pp} is not required, only Ruby.
71
+ Use a leading backslash to output a word enclosed in curly braces, like \{name}.
72
+
73
+ == Links
74
+
75
+ [%hardbreaks]
76
+ https://example.org/page[A webpage]
77
+ link:../path/to/file.txt[A local file]
78
+ xref:document.adoc[A sibling document]
79
+ mailto:hello@example.org[Email to say hello!]
80
+
81
+ == Anchors
82
+
83
+ [[idname,reference text]]
84
+ // or written using normal block attributes as `[#idname,reftext=reference text]`
85
+ A paragraph (or any block) with an anchor (aka ID) and reftext.
86
+
87
+ See <<idname>> or <<idname,optional text of internal link>>.
88
+
89
+ xref:document.adoc#idname[Jumps to anchor in another document].
90
+
91
+ This paragraph has a footnote.footnote:[This is the text of the footnote.]
92
+
93
+ == Lists
94
+
95
+ === Unordered
96
+
97
+ * level 1
98
+ ** level 2
99
+ *** level 3
100
+ **** level 4
101
+ ***** etc.
102
+ * back at level 1
103
+ +
104
+ Attach a block or paragraph to a list item using a list continuation (which you can enclose in an open block).
105
+
106
+ .Some Authors
107
+ [circle]
108
+ - Edgar Allen Poe
109
+ - Sheri S. Tepper
110
+ - Bill Bryson
111
+
112
+ === Ordered
113
+
114
+ . Step 1
115
+ . Step 2
116
+ .. Step 2a
117
+ .. Step 2b
118
+ . Step 3
119
+
120
+ .Remember your Roman numerals?
121
+ [upperroman]
122
+ . is one
123
+ . is two
124
+ . is three
125
+
126
+ === Checklist
127
+
128
+ * [x] checked
129
+ * [ ] not checked
130
+
131
+ === Callout
132
+
133
+ // enable callout bubbles by adding `:icons: font` to the document header
134
+ [source,ruby]
135
+ ----
136
+ puts 'Hello, World!' # <1>
137
+ ----
138
+ <1> Prints `Hello, World!` to the console.
139
+
140
+ === Description
141
+
142
+ first term:: description of first term
143
+ second term::
144
+ description of second term
145
+
146
+ == Document Structure
147
+
148
+ === Header
149
+
150
+ // header must be flush with left margin
151
+ = Document Title
152
+ Author Name <author@example.org>
153
+ v1.0, 2019-01-01
154
+
155
+ === Sections
156
+
157
+ // must be flush with left margin
158
+ = Document Title (Level 0)
159
+ == Level 1
160
+ === Level 2
161
+ ==== Level 3
162
+ ===== Level 4
163
+ ====== Level 5
164
+ == Back at Level 1
165
+
166
+ === Includes
167
+
168
+ // must be flush with left margin
169
+ include::basics.adoc[]
170
+
171
+ // define -a allow-uri-read to allow content to be read from URI
172
+ include::https://example.org/installation.adoc[]
173
+
174
+ == Blocks
175
+
176
+ --
177
+ open - a general-purpose content wrapper; useful for enclosing content to attach to a list item
178
+ --
179
+
180
+ // recognized types include CAUTION, IMPORTANT, NOTE, TIP, and WARNING
181
+ // enable admonition icons by setting `:icons: font` in the document header
182
+ [NOTE]
183
+ ====
184
+ admonition - a notice for the reader, ranging in severity from a tip to an alert
185
+ ====
186
+
187
+ ====
188
+ example - a demonstration of the concept being documented
189
+ ====
190
+
191
+ ****
192
+ sidebar - auxiliary content that can be read independently of the main content
193
+ ****
194
+
195
+ ....
196
+ literal - an exhibit that features program output
197
+ ....
198
+
199
+ ----
200
+ listing - an exhibit that features program input, source code, or the contents of a file
201
+ ----
202
+
203
+ [source,language]
204
+ ----
205
+ source - a listing that is embellished with (colorized) syntax highlighting
206
+ ----
207
+
208
+ ```language
209
+ fenced code - a shorthand syntax for the source block
210
+ ```
211
+
212
+ [,attribution,citetitle]
213
+ ____
214
+ quote - a quotation or excerpt; attribution with title of source are optional
215
+ ____
216
+
217
+ [verse,attribution,citetitle]
218
+ ____
219
+ verse - a literary excerpt, often a poem; attribution with title of source are optional
220
+ ____
221
+
222
+ ++++
223
+ pass - content passed directly to the output document; often raw HTML
224
+ ++++
225
+
226
+ // activate stem support by adding `:stem:` to the document header
227
+ [stem]
228
+ ++++
229
+ x = y^2
230
+ ++++
231
+
232
+ ////
233
+ comment - content which is not included in the output document
234
+ ////
235
+
236
+ == Tables
237
+
238
+ .Table Attributes
239
+ [cols=>1h;2d,width=50%,frame=topbot]
240
+ |===
241
+ | Attribute Name | Values
242
+
243
+ | options
244
+ | header,footer,autowidth
245
+
246
+ | cols
247
+ | colspec[;colspec;...]
248
+
249
+ | grid
250
+ | all \| cols \| rows \| none
251
+
252
+ | frame
253
+ | all \| sides \| topbot \| none
254
+
255
+ | stripes
256
+ | all \| even \| odd \| none
257
+
258
+ | width
259
+ | (0%..100%)
260
+
261
+ | format
262
+ | psv {vbar} csv {vbar} dsv
263
+ |===
264
+
265
+ == Multimedia
266
+
267
+ image::screenshot.png[block image,800,450]
268
+
269
+ Press image:reload.svg[reload,16,opts=interactive] to reload the page.
270
+
271
+ video::movie.mp4[width=640,start=60,end=140,options=autoplay]
272
+
273
+ video::aHjpOzsQ9YI[youtube]
274
+
275
+ video::300817511[vimeo]
276
+
277
+ == Breaks
278
+
279
+ // thematic break (aka horizontal rule)
280
+ ---
281
+
282
+ // page break
283
+ <<<