asciidoctor 1.5.2 → 1.5.3

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of asciidoctor might be problematic. Click here for more details.

Files changed (62) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.adoc +107 -1
  3. data/LICENSE.adoc +1 -1
  4. data/README.adoc +155 -230
  5. data/Rakefile +2 -1
  6. data/bin/asciidoctor +5 -1
  7. data/data/stylesheets/asciidoctor-default.css +37 -29
  8. data/data/stylesheets/coderay-asciidoctor.css +3 -3
  9. data/features/text_formatting.feature +2 -0
  10. data/lib/asciidoctor.rb +46 -21
  11. data/lib/asciidoctor/abstract_block.rb +14 -8
  12. data/lib/asciidoctor/abstract_node.rb +77 -24
  13. data/lib/asciidoctor/attribute_list.rb +1 -1
  14. data/lib/asciidoctor/block.rb +2 -3
  15. data/lib/asciidoctor/cli/options.rb +14 -15
  16. data/lib/asciidoctor/converter/docbook45.rb +8 -8
  17. data/lib/asciidoctor/converter/docbook5.rb +25 -17
  18. data/lib/asciidoctor/converter/factory.rb +6 -1
  19. data/lib/asciidoctor/converter/html5.rb +159 -117
  20. data/lib/asciidoctor/converter/manpage.rb +671 -0
  21. data/lib/asciidoctor/converter/template.rb +24 -17
  22. data/lib/asciidoctor/document.rb +89 -47
  23. data/lib/asciidoctor/extensions.rb +22 -21
  24. data/lib/asciidoctor/helpers.rb +73 -16
  25. data/lib/asciidoctor/list.rb +26 -5
  26. data/lib/asciidoctor/parser.rb +179 -122
  27. data/lib/asciidoctor/path_resolver.rb +6 -10
  28. data/lib/asciidoctor/reader.rb +37 -34
  29. data/lib/asciidoctor/stylesheets.rb +16 -10
  30. data/lib/asciidoctor/substitutors.rb +98 -21
  31. data/lib/asciidoctor/table.rb +21 -17
  32. data/lib/asciidoctor/timings.rb +3 -3
  33. data/lib/asciidoctor/version.rb +1 -1
  34. data/man/asciidoctor.1 +155 -89
  35. data/man/asciidoctor.adoc +19 -11
  36. data/test/attributes_test.rb +86 -0
  37. data/test/blocks_test.rb +203 -15
  38. data/test/converter_test.rb +15 -2
  39. data/test/document_test.rb +290 -36
  40. data/test/extensions_test.rb +22 -3
  41. data/test/fixtures/circle.svg +8 -0
  42. data/test/fixtures/subs-docinfo.html +2 -0
  43. data/test/fixtures/subs.adoc +7 -0
  44. data/test/invoker_test.rb +25 -0
  45. data/test/links_test.rb +17 -0
  46. data/test/lists_test.rb +173 -0
  47. data/test/options_test.rb +2 -2
  48. data/test/paragraphs_test.rb +2 -2
  49. data/test/parser_test.rb +56 -13
  50. data/test/reader_test.rb +35 -3
  51. data/test/sections_test.rb +59 -0
  52. data/test/substitutions_test.rb +53 -14
  53. data/test/tables_test.rb +158 -2
  54. data/test/test_helper.rb +7 -2
  55. metadata +22 -11
  56. data/benchmark/benchmark.rb +0 -129
  57. data/benchmark/sample-data/mdbasics.adoc +0 -334
  58. data/lib/asciidoctor/opal_ext.rb +0 -26
  59. data/lib/asciidoctor/opal_ext/comparable.rb +0 -38
  60. data/lib/asciidoctor/opal_ext/dir.rb +0 -13
  61. data/lib/asciidoctor/opal_ext/error.rb +0 -2
  62. data/lib/asciidoctor/opal_ext/file.rb +0 -145
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 9c5d135474454be23b11dfdcc8b7d24d55e4638f
4
- data.tar.gz: 909678f3db8d1468040ee56257e16910093d2f8c
3
+ metadata.gz: a857dce69d16ef03cf2656e438592e7b4288911d
4
+ data.tar.gz: 280c4d0c306c1d8c85d3cb9b94e668f9ba801294
5
5
  SHA512:
6
- metadata.gz: 8c5883d45569bc9d4e5d55ba38abd919d6526f2762bccb28115d75ead73915b7688d75562f20ea65810fe0f2ff8f9d192cc4cbc96874acc857a86d8d704b725a
7
- data.tar.gz: 3a8425493fe73e4125d43351e4a7f08df1c7ddbd927977efa36700b28f4665eb9f65dd0416c3d10240a464683a67a2f848e748a2186b6140f77836e1e16c5802
6
+ metadata.gz: 29bd21c0ccf661f589a654ceb2f9ac802f8dc142d7dd2b45df848a0b31de9d20aaacfaa3811de1e814e99375c249a2a3b519f2a83bc98c221a7d83f6494b3736
7
+ data.tar.gz: 1fa873cb165907d58c18ad586a0581952ab4797045685eb7b75e0c65cbedeb0f8a21982427c597becbd0118c0ed33ae8b30cdbf7d6cb2295919ca8588e1f53f3
@@ -11,6 +11,112 @@ endif::[]
11
11
  This document provides a high-level view of the changes introduced in Asciidoctor by release.
12
12
  For a detailed view of what has changed, refer to the https://github.com/asciidoctor/asciidoctor/commits/master[commit history] on GitHub.
13
13
 
14
+ == 1.5.3 (2015-10-31) - @mojavelinux
15
+
16
+ Enhancements::
17
+ * add support for interactive & inline SVGs (#1301, #1224)
18
+ * add built-in manpage backend (@davidgamba) (#651)
19
+ * create Mallard backend; asciidoctor/asciidoctor-mallard (@bk2204) (#425)
20
+ * add AsciiMath to MathML converter to support AsciiMath in DocBook converter (@pepijnve) (#954)
21
+ * allow text of selected lines to be highlighted in source block by Pygments or CodeRay (#1429)
22
+ * use value of `docinfo` attribute to control docinfo behavior (#1510)
23
+ * add `docinfosubs` attribute to control which substitutions are performed on docinfo files (@mogztter) (#405)
24
+ * add title accessor as alias to main on Document::Title (@rmannibucau) (#1350)
25
+ * make XrefInlineRx regexp more permissive (Mathieu Boespflug) (#844)
26
+
27
+ Improvements::
28
+ * load JavaScript and CSS at the end of HTML document (@mogztter) (#1238)
29
+ * list available backends in help text (@plaindocs) (#1271)
30
+ * properly expand tabs in literal text (#1170, #841)
31
+ * add `source-indent` as document attribute (@mogztter) (#1169)
32
+ * upgrade MathJax to 2.5.3 (#1329)
33
+ * upgrade Font Awesome to 4.4.0 (@mogztter) (#1465)
34
+ * upgrade highlight.js to 8.6 (now 8.9.1) (#1390)
35
+ * don't abort if syntax highlighter isn't available (#1253)
36
+ * insert docinfo footer below footer div (#1503)
37
+ * insert toc at default location in embeddable HTML (#1443)
38
+ * replace _ and - in generated alt text for inline images
39
+ * restore attributes to header attributes after parse (#1255)
40
+ * allow docdate and doctime to be overridden (#1495)
41
+ * add CSS class `.center` for center block alignment (#1456)
42
+ * recognize U+2022 as alternative marker for unordered lists (@mogztter) (#1177)
43
+ * allow videos to work for local files by prepending asset-uri-scheme (Chris) (#1320)
44
+ * always assign playlist param when loop option is enabled for YouTube video
45
+ * parse isolated version in revision line (@bk2204) (#790)
46
+ * autoload Tilt when template converter is instantiated (#1313)
47
+ * don't overwrite existing id entry in references table (#1256)
48
+ * use outfilesuffix attribute defined in header when resolving outfile (#1412)
49
+ * make AsciiDoc safe mode option on Slim engine match document (#1347)
50
+ * honor htmlsyntax attribute when backend is html/html5 (#1530)
51
+ * tighten spacing of wrapped lines in TOC (#1542)
52
+ * tune padding around table cells in horizontal dlist (#1418)
53
+ * load Droid Sans Mono 700 in default stylesheet
54
+ * set line height of table cells used for syntax highlighting
55
+ * set font-family of kbd; refine styling (#1423)
56
+ * extract condition into `quote_lines?` method (@mogztter)
57
+ * extract inline code into `read_paragraph` method (@mogztter)
58
+ * parent of block in ListItem should be ListItem (#1359)
59
+ * add helper methods to List and ListItem (#1551)
60
+ * add method `AbstractNode#add_role` and `AbstractNode#remove_role` (@robertpanzer) (#1366)
61
+ * introduce helper methods for sniffing URIs (#1422)
62
+ * add helper to calculate basename without file extension
63
+ * document `-I` and `-r` options in the manual page (@bk2204)
64
+ * fix `+--help+` output text for `-I` (@bk2204)
65
+ * don't require open-uri-cached if already loaded
66
+ * do not attempt to scan pattern of non-existent directory
67
+
68
+ Compliance::
69
+ * use `<sup>` for footnote reference in text instead of `<span>` (#1523)
70
+ * fix alignment of wrapped text in footnote (#1524)
71
+ * include full stop after footnote number in embeddable HTML
72
+ * show manpage title & name section in embeddable HTML (#1179)
73
+ * resolve missing attribute in ifeval to empty string (#1387)
74
+ * support unbreakable & breakable options on table (rockyallen) (#1140)
75
+
76
+ Bug fixes::
77
+ * don't truncate exception stack in `Asciidoctor.load` (#1248)
78
+ * don't fail to save cause of Java exception (@robertpanzer) (#1458)
79
+ * fix precision error in timings report (#1342)
80
+ * resolve regexp for inline macro lazily (#1336)
81
+ * block argument to `find_by` should filter results (#1393)
82
+ * strip comment lines in indented text of dlist item (#1537)
83
+ * preserve escaped delimiter at end of line in a table (#1306)
84
+ * correctly calculate colnames for implicit columns (#1556)
85
+ * don't crash if colspan exceeds colspec (#1460)
86
+ * account for empty records in colspec (#1375)
87
+ * ignore empty cols attribute on table
88
+ * use `.inspect` to print MathJax delimiters (again) (#1198)
89
+ * use while loop instead of begin/while loop to address bug in Asciidoctor.js (#1408)
90
+ * force encoding of attribute values passed from cli (#1191)
91
+ * don't copy css if stylesheet or stylesdir is a URI (#1400)
92
+ * fix invalid color value in default CodeRay theme
93
+ * built-in writer no longer fails if output is nil (#1544)
94
+ * custom template engine options should take precedence
95
+ * fallback to require with a non-relative path to support Debian package (@mogztter)
96
+ * pass opts to recursive invocations of `PathResolver#system_path`
97
+ * fix and test external links in docbook backend
98
+ * use format symbol `:html` instead of `:html5` for Slim to fix warnings
99
+ * fix documentation for inline_macro and block_macro (Andrea Bedini)
100
+ * fix grammar in warning messages regarding thread_safe gem
101
+
102
+ Infrastructure::
103
+ * migrate opal_ext from core to Asciidoctor.js (#1517)
104
+ * add Ruby 2.2 to CI build; only specify minor Ruby versions
105
+ * enable containerized builds on Travis CI
106
+ * add config to run CI build on AppVeyor
107
+ * exclude benchmark folder from gem (#1522)
108
+
109
+ Distribution Packages::
110
+
111
+ * http://rubygems.org/gems/asciidoctor[RubyGem (asciidoctor)]
112
+ * https://apps.fedoraproject.org/packages/rubygem-asciidoctor[Fedora (rubygem-asciidoctor)]
113
+ * http://packages.debian.org/sid/asciidoctor[Debian (asciidoctor)]
114
+ * http://packages.ubuntu.com/saucy/asciidoctor[Ubuntu (asciidoctor)]
115
+
116
+ https://github.com/asciidoctor/asciidoctor/issues?q=milestone%3Av1.5.3[issues resolved] |
117
+ https://github.com/asciidoctor/asciidoctor/releases/tag/v1.5.3[git tag] |
118
+ https://github.com/asciidoctor/asciidoctor/compare/v1.5.2...v1.5.3[full diff]
119
+
14
120
  == 1.5.2 (2014-11-27) - @mojavelinux
15
121
 
16
122
  Enhancements::
@@ -63,7 +169,7 @@ Distribution Packages::
63
169
 
64
170
  https://github.com/asciidoctor/asciidoctor/issues?q=milestone%3Av1.5.2[issues resolved] |
65
171
  https://github.com/asciidoctor/asciidoctor/releases/tag/v1.5.2[git tag] |
66
- https://github.com/asciidoctor/asciidoctor/compare/v1.5.0...v1.5.2[full diff]
172
+ https://github.com/asciidoctor/asciidoctor/compare/v1.5.1...v1.5.2[full diff]
67
173
 
68
174
  == 1.5.1 (2014-09-29) - @mojavelinux
69
175
 
@@ -1,6 +1,6 @@
1
1
  .The MIT License
2
2
  ....
3
- Copyright (C) 2012-2014 Dan Allen, Ryan Waldron and the Asciidoctor Project
3
+ Copyright (C) 2012-2015 Dan Allen, Ryan Waldron and the Asciidoctor Project
4
4
 
5
5
  Permission is hereby granted, free of charge, to any person obtaining a copy
6
6
  of this software and associated documentation files (the "Software"), to deal
@@ -1,18 +1,20 @@
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.3, 2015-10-31
3
4
  // settings:
4
5
  :page-layout: base
5
6
  :idprefix:
6
- ifdef::env-github[:idprefix: user-content-]
7
7
  :idseparator: -
8
8
  :source-language: ruby
9
9
  :language: {source-language}
10
+ ifdef::env-github[:badges:]
10
11
  // URIs:
11
12
  :uri-org: https://github.com/asciidoctor
12
13
  :uri-repo: {uri-org}/asciidoctor
13
14
  :uri-asciidoctorj: {uri-org}/asciidoctorj
14
15
  :uri-asciidoctorjs: {uri-org}/asciidoctor.js
15
16
  :uri-project: http://asciidoctor.org
17
+ ifdef::awestruct-version[:uri-project: link:]
16
18
  :uri-docs: {uri-project}/docs
17
19
  :uri-news: {uri-project}/news
18
20
  :uri-manpage: {uri-project}/man/asciidoctor
@@ -30,7 +32,7 @@ endif::[]
30
32
  :uri-tests: {uri-rel-tree-base}test
31
33
  :uri-discuss: http://discuss.asciidoctor.org
32
34
  :uri-irc: irc://irc.freenode.org/#asciidoctor
33
- :uri-rubygem: http://rubygems.org/gems/asciidoctor
35
+ :uri-rubygem: https://rubygems.org/gems/asciidoctor
34
36
  :uri-what-is-asciidoc: {uri-docs}/what-is-asciidoc
35
37
  :uri-user-manual: {uri-docs}/user-manual
36
38
  :uri-install-doc: {uri-docs}/install-toolchain
@@ -42,16 +44,24 @@ endif::[]
42
44
  :uri-freesoftware: https://www.gnu.org/philosophy/free-sw.html
43
45
  :uri-foundation: http://foundation.zurb.com
44
46
  :uri-tilt: https://github.com/rtomayko/tilt
47
+ :uri-ruby: https://ruby-lang.org
45
48
  // images:
46
49
  :image-uri-screenshot: https://raw.githubusercontent.com/asciidoctor/asciidoctor/master/screenshot.png
47
50
 
48
- {uri-project}[Asciidoctor] is a _fast_ text processor and publishing toolchain for converting {uri-what-is-asciidoc}[AsciiDoc] content to HTML5, DocBook 5 (or 4.5) and other formats.
51
+ {uri-project}/[Asciidoctor] is a _fast_ text processor and publishing toolchain for converting {uri-what-is-asciidoc}[AsciiDoc] content to HTML5, DocBook 5 (or 4.5) and other formats.
49
52
  Asciidoctor is written in Ruby, packaged as a RubyGem and published to {uri-rubygem}[RubyGems.org].
50
53
  The gem is also included in several Linux distributions, including Fedora, Debian and Ubuntu.
51
- Asciidoctor is open source, {uri-repo}[hosted on GitHub] and released under the MIT license.
54
+ Asciidoctor is open source, {uri-repo}[hosted on GitHub] and released under {uri-license}[the MIT license].
52
55
 
53
- [TIP]
54
- ====
56
+ .Key documentation
57
+ [.compact]
58
+ * {uri-docs}/what-is-asciidoc[What is Asciidoc?]
59
+ * {uri-docs}/asciidoc-writers-guide[AsciiDoc Writer's Guide]
60
+ * {uri-docs}/asciidoc-syntax-quick-reference[AsciiDoc Syntax Reference]
61
+ * {uri-docs}/user-manual[Asciidoctor User Manual]
62
+
63
+ .Where Ruby goes, Asciidoctor follows
64
+ ****
55
65
  You can run Asciidoctor on the JVM using JRuby.
56
66
  To invoke the Asciidoctor API directly from Java and other JVM languages, use {uri-asciidoctorj}[AsciidoctorJ].
57
67
  There are plugins available, based on AsciidoctorJ, that integrate the Asciidoctor processor into Apache Maven, Gradle or Javadoc builds.
@@ -59,27 +69,21 @@ There are plugins available, based on AsciidoctorJ, that integrate the Asciidoct
59
69
  Asciidoctor also runs in JavaScript.
60
70
  We use http://opalrb.org[Opal] to transcompile the Ruby source to JavaScript to produce {uri-asciidoctorjs}[Asciidoctor.js], a fully-functional version of Asciidoctor that works in any JavaScript environment, such as a web browser or Node.js.
61
71
  Asciidoctor.js is used to power the AsciiDoc preview extensions for Chrome, Atom, Brackets and other web-based tooling.
62
- ====
72
+ ****
63
73
 
64
- .Key documentation
65
- [square]
66
- * {uri-docs}/what-is-asciidoc[What is Asciidoc?]
67
- * {uri-docs}/asciidoc-writers-guide[AsciiDoc Writer's Guide]
68
- * {uri-docs}/asciidoc-syntax-quick-reference[AsciiDoc Syntax Reference]
69
- * {uri-docs}/user-manual[Asciidoctor User Manual]
70
-
71
- ifdef::env-github[]
72
- .*Project Health*
73
- image:http://img.shields.io/travis/asciidoctor/asciidoctor/master.svg[Build Status, link=https://travis-ci.org/asciidoctor/asciidoctor]
74
- //image:http://img.shields.io/coveralls/asciidoctor/asciidoctor/master.svg[Coverage Status, link=https://coveralls.io/r/asciidoctor/asciidoctor]
74
+ ifdef::badges[]
75
+ .*Project health*
76
+ image:https://img.shields.io/travis/asciidoctor/asciidoctor/master.svg[Build Status (Travis CI), link=https://travis-ci.org/asciidoctor/asciidoctor]
77
+ image:https://ci.appveyor.com/api/projects/status/ifplu67oxvgn6ceq/branch/master?svg=true&amp;passingText=green%20bar&amp;failingText=%23fail&amp;pendingText=building%2E%2E%2E[Build Status (AppVeyor), link=https://ci.appveyor.com/project/asciidoctor/asciidoctor]
78
+ //image:https://img.shields.io/coveralls/asciidoctor/asciidoctor/master.svg[Coverage Status, link=https://coveralls.io/r/asciidoctor/asciidoctor]
75
79
  image:https://codeclimate.com/github/asciidoctor/asciidoctor/badges/gpa.svg[Code Climate, link="https://codeclimate.com/github/asciidoctor/asciidoctor"]
76
- image:http://inch-ci.org/github/asciidoctor/asciidoctor.svg?branch=master[Inline docs, link="http://inch-ci.org/github/asciidoctor/asciidoctor"]
77
- endif::env-github[]
80
+ image:https://inch-ci.org/github/asciidoctor/asciidoctor.svg?branch=master[Inline docs, link="https://inch-ci.org/github/asciidoctor/asciidoctor"]
81
+ endif::[]
78
82
 
79
83
  == The Big Picture
80
84
 
81
85
  Asciidoctor reads content written in plain text, as shown in the panel on the left in the image below, and converts it to HTML5, as shown rendered in the right panel.
82
- Asciidoctor adds a default stylesheet to the HTML5 document, as shown, to provide a pleasant out-of-the-box experience.
86
+ Asciidoctor applies a default stylesheet to the HTML5 document to provide a pleasant out-of-the-box experience.
83
87
 
84
88
  image::{image-uri-screenshot}[Preview of AsciiDoc source and corresponding rendered HTML]
85
89
 
@@ -89,17 +93,17 @@ Asciidoctor reads and parses text written in the AsciiDoc syntax, then feeds the
89
93
  You have the option of writing your own converter or providing {uri-tilt}[Tilt]-supported templates to customize the generated output or produce alternative formats.
90
94
 
91
95
  NOTE: Asciidoctor is a drop-in replacement for the original AsciiDoc Python processor (`asciidoc.py`).
92
- The Asciidoctor test suite has {uri-tests}[> 1,500 tests] to ensure compatibility with the AsciiDoc syntax.
96
+ The Asciidoctor test suite has {uri-tests}[> 1,600 tests] to ensure compatibility with the AsciiDoc syntax.
93
97
 
94
- In addition to the standard AsciiDoc syntax, Asciidoctor recognizes additional markup and formatting options, such as font-based icons (e.g., [x-]`icon:fire[]`) and UI elements (e.g., [x-]`button:[Save]`).
98
+ In addition to the standard AsciiDoc syntax, Asciidoctor recognizes additional markup and formatting options, such as font-based icons (e.g., `+icon:fire[]+`) and UI elements (e.g., `+button:[Save]+`).
95
99
  Asciidoctor also offers a modern, responsive theme based on {uri-foundation}[Foundation] to style the HTML5 output.
96
100
 
97
101
  == Requirements
98
102
 
99
- Asciidoctor works on Linux, OSX (Mac) and Windows and requires one of the following implementations of Ruby:
103
+ Asciidoctor works on Linux, OSX (Mac) and Windows and requires one of the following implementations of {uri-ruby}[Ruby]:
100
104
 
101
- * MRI (Ruby 1.8.7, 1.9.3, 2.0.0 & 2.1.2)
102
- * JRuby 1.7 (Ruby 1.8 and 1.9 modes)
105
+ * MRI (Ruby 1.8.7, 1.9.3, 2.0, 2.1 & 2.2)
106
+ * JRuby 1.7 (Ruby 1.8 and 1.9 modes) & 9000
103
107
  * Rubinius 2.2.x
104
108
  * Opal (JavaScript)
105
109
 
@@ -116,7 +120,7 @@ If you need the latest version, you can always fallback to using the `gem` comma
116
120
 
117
121
  === (a) gem install
118
122
 
119
- Open a terminal and type: (without the leading `$`)
123
+ Open a terminal and type (excluding the leading `$`):
120
124
 
121
125
  $ gem install asciidoctor
122
126
 
@@ -129,7 +133,7 @@ If you want to install a pre-release version (e.g., a release candidate), use:
129
133
  ====
130
134
  If you have an earlier version of Asciidoctor installed, you can update it using:
131
135
 
132
- $ gem upgrade asciidoctor
136
+ $ gem update asciidoctor
133
137
 
134
138
  If you install a new version of the gem using `gem install` instead of gem update, you'll have multiple versions installed.
135
139
  If that's the case, use the following gem command to remove the old versions:
@@ -147,7 +151,7 @@ If that's the case, use the following gem command to remove the old versions:
147
151
  source 'https://rubygems.org'
148
152
  gem 'asciidoctor'
149
153
  # or specify the version explicitly
150
- # gem 'asciidoctor', '1.5.0'
154
+ # gem 'asciidoctor', '1.5.3'
151
155
  ----
152
156
 
153
157
  . Save the Gemfile
@@ -156,19 +160,19 @@ gem 'asciidoctor'
156
160
  $ bundle
157
161
 
158
162
  To upgrade the gem, specify the new version in the Gemfile and run `bundle` again.
159
- Using `bundle update` is not recommended as it will also update other gems, which may not be the desired result.
163
+ Using `bundle update` is *not* recommended as it will also update other gems, which may not be the desired result.
160
164
 
161
165
  === (c) Linux package managers
162
166
 
163
- ==== Yum (Fedora 18 or greater)
167
+ ==== Yum (Fedora 21 or greater)
164
168
 
165
- To install the gem on Fedora 18 or greater using yum, open a terminal and type:
169
+ To install the gem on Fedora 21 or greater using yum, open a terminal and type:
166
170
 
167
- $ sudo yum install -y rubygem-asciidoctor
171
+ $ sudo yum install -y asciidoctor
168
172
 
169
173
  To upgrade the gem, use:
170
174
 
171
- $ sudo yum update -y rubygem-asciidoctor
175
+ $ sudo yum update -y asciidoctor
172
176
 
173
177
  TIP: Your Fedora system may be configured to automatically update packages, in which case no action is required by you to update the gem.
174
178
 
@@ -200,8 +204,8 @@ You should see information about the Asciidoctor version and your Ruby environme
200
204
 
201
205
  [.output]
202
206
  ....
203
- Asciidoctor 1.5.0 [http://asciidoctor.org]
204
- Runtime Environment (ruby 2.1.2p95 (2014-05-08 revision 45877) [x86_64-linux])
207
+ Asciidoctor 1.5.3 [http://asciidoctor.org]
208
+ Runtime Environment (ruby 2.2.2p95 [x86_64-linux]) (lc:UTF-8 fs:UTF-8 in:- ex:UTF-8)
205
209
  ....
206
210
 
207
211
  Asciidoctor also provides an API.
@@ -241,18 +245,18 @@ require 'asciidoctor'
241
245
  You can then convert an AsciiDoc source file to an HTML file using:
242
246
 
243
247
  [source]
244
- Asciidoctor.convert_file 'README.adoc', to_file: true, safe: 'safe'
248
+ Asciidoctor.convert_file 'README.adoc', to_file: true, safe: :safe
245
249
 
246
250
  WARNING: When using Asciidoctor via the API, the default safe mode is `:secure`.
247
251
  In secure mode, several core features are disabled, including the `include` directive.
248
- If you want to enable these features, you'll need to explicitly set the safe mode to `server` (recommended) or `safe`.
252
+ If you want to enable these features, you'll need to explicitly set the safe mode to `:server` (recommended) or `:safe`.
249
253
 
250
254
  You can also convert an AsciiDoc string to embeddable HTML (for inserting in an HTML page) using:
251
255
 
252
256
  [source]
253
257
  ----
254
258
  content = '_Zen_ in the art of writing http://asciidoctor.org[AsciiDoc].'
255
- Asciidoctor.convert content, safe: 'safe'
259
+ Asciidoctor.convert content, safe: :safe
256
260
  ----
257
261
 
258
262
  If you want the full HTML document, enable the `header_footer` option as follows:
@@ -260,7 +264,7 @@ If you want the full HTML document, enable the `header_footer` option as follows
260
264
  [source]
261
265
  ----
262
266
  content = '_Zen_ in the art of writing http://asciidoctor.org[AsciiDoc].'
263
- html = Asciidoctor.convert content, header_footer: true, safe: 'safe'
267
+ html = Asciidoctor.convert content, header_footer: true, safe: :safe
264
268
  ----
265
269
 
266
270
  If you need access to the parsed document, you can split the conversion into discrete steps:
@@ -268,15 +272,19 @@ If you need access to the parsed document, you can split the conversion into dis
268
272
  [source]
269
273
  ----
270
274
  content = '_Zen_ in the art of writing http://asciidoctor.org[AsciiDoc].'
271
- document = Asciidoctor.load content, header_footer: true, safe: 'safe'
275
+ document = Asciidoctor.load content, header_footer: true, safe: :safe
272
276
  puts document.doctitle
273
277
  html = document.convert
274
278
  ----
275
279
 
276
- Keep in mind, if you don't like the output Asciidoctor produces, _you can change it!_
277
- Asciidoctor supports custom {uri-tilt}[Tilt]-supported templates, which to allow you customize the output piecemeal, or custom converters, which give you 100% control over the output.
280
+ Keep in mind that if you don't like the output Asciidoctor produces, _you can change it!_
281
+ Asciidoctor supports custom converters that can handle converting from the parsed document to the generated output.
282
+
283
+ One easy way to customize the output piecemeal is by using the template converter.
284
+ The template converter allows you uses supply a {uri-tilt}[Tilt]-supported template file to handle converting any node in the document.
278
285
 
279
- For more information about how to use the API or to customize the output, see the {uri-user-manual}[user manual].
286
+ However you go about it, you _can_ have 100% control over the output.
287
+ For more information about how to use the API or to customize the output, refer to the {uri-user-manual}[user manual].
280
288
 
281
289
  == Contributing
282
290
 
@@ -310,13 +318,14 @@ We encourage you to ask questions and discuss any aspects of the project on the
310
318
 
311
319
  Mailing list:: {uri-discuss}
312
320
  Twitter (Chat):: #asciidoctor hashtag
321
+ Gitter (Chat):: image:https://badges.gitter.im/Join%20In.svg[Gitter, link=https://gitter.im/asciidoctor/asciidoctor]
313
322
  IRC (Chat):: {uri-irc}[#asciidoctor] on FreeNode IRC
314
323
 
324
+ ifdef::env-github[]
315
325
  Further information and documentation about Asciidoctor can be found on the project's website.
316
326
 
317
- Home:: {uri-project}
318
- News:: {uri-news}
319
- Docs:: {uri-docs}
327
+ {uri-project}/[Home] | {uri-news}[News] | {uri-docs}[Docs]
328
+ endif::[]
320
329
 
321
330
  The Asciidoctor organization on GitHub hosts the project's source code, issue tracker, and sub-projects.
322
331
 
@@ -326,20 +335,115 @@ Asciidoctor organization on GitHub:: {uri-org}
326
335
 
327
336
  == Copyright and Licensing
328
337
 
329
- Copyright (C) 2012-2014 Dan Allen, Ryan Waldron and the Asciidoctor Project.
338
+ Copyright (C) 2012-2015 Dan Allen, Ryan Waldron and the Asciidoctor Project.
330
339
  Free use of this software is granted under the terms of the MIT License.
331
340
 
332
341
  See the {uri-license}[LICENSE] file for details.
333
342
 
334
343
  == Authors
335
344
 
336
- *Asciidoctor* is lead by https://github.com/mojavelinux[Dan Allen] and https://github.com/graphitefriction[Sarah White] and has received contributions from {uri-contributors}[many other individuals] in Asciidoctor's awesome community.
345
+ *Asciidoctor* is led by https://github.com/mojavelinux[Dan Allen] and https://github.com/graphitefriction[Sarah White] and has received contributions from {uri-contributors}[many other individuals] in Asciidoctor's awesome community.
337
346
  The project was initiated in 2012 by https://github.com/erebor[Ryan Waldron] and based on {uri-prototype}[a prototype] written by https://github.com/nickh[Nick Hengeveld].
338
347
 
339
348
  *AsciiDoc* was started by Stuart Rackham and has received contributions from many other individuals in the AsciiDoc community.
340
349
 
341
350
  == Changelog
342
351
 
352
+ == 1.5.3 (2015-10-31) - @mojavelinux
353
+
354
+ Enhancements::
355
+ * add support for interactive & inline SVGs (#1301, #1224)
356
+ * add built-in manpage backend (@davidgamba) (#651)
357
+ * create Mallard backend; asciidoctor/asciidoctor-mallard (@bk2204) (#425)
358
+ * add AsciiMath to MathML converter to support AsciiMath in DocBook converter (@pepijnve) (#954)
359
+ * allow text of selected lines to be highlighted in source block by Pygments or CodeRay (#1429)
360
+ * use value of `docinfo` attribute to control docinfo behavior (#1510)
361
+ * add `docinfosubs` attribute to control which substitutions are performed on docinfo files (@mogztter) (#405)
362
+ * add title accessor as alias to main on Document::Title (@rmannibucau) (#1350)
363
+ * make XrefInlineRx regexp more permissive (Mathieu Boespflug) (#844)
364
+
365
+ Improvements::
366
+ * load JavaScript and CSS at the end of HTML document (@mogztter) (#1238)
367
+ * list available backends in help text (@plaindocs) (#1271)
368
+ * properly expand tabs in literal text (#1170, #841)
369
+ * add `source-indent` as document attribute (@mogztter) (#1169)
370
+ * upgrade MathJax to 2.5.3 (#1329)
371
+ * upgrade Font Awesome to 4.4.0 (@mogztter) (#1465)
372
+ * upgrade highlight.js to 8.6 (now 8.9.1) (#1390)
373
+ * don't abort if syntax highlighter isn't available (#1253)
374
+ * insert docinfo footer below footer div (#1503)
375
+ * insert toc at default location in embeddable HTML (#1443)
376
+ * replace _ and - in generated alt text for inline images
377
+ * restore attributes to header attributes after parse (#1255)
378
+ * allow docdate and doctime to be overridden (#1495)
379
+ * add CSS class `.center` for center block alignment (#1456)
380
+ * recognize U+2022 as alternative marker for unordered lists (@mogztter) (#1177)
381
+ * allow videos to work for local files by prepending asset-uri-scheme (Chris) (#1320)
382
+ * always assign playlist param when loop option is enabled for YouTube video
383
+ * parse isolated version in revision line (@bk2204) (#790)
384
+ * autoload Tilt when template converter is instantiated (#1313)
385
+ * don't overwrite existing id entry in references table (#1256)
386
+ * use outfilesuffix attribute defined in header when resolving outfile (#1412)
387
+ * make AsciiDoc safe mode option on Slim engine match document (#1347)
388
+ * honor htmlsyntax attribute when backend is html/html5 (#1530)
389
+ * tighten spacing of wrapped lines in TOC (#1542)
390
+ * tune padding around table cells in horizontal dlist (#1418)
391
+ * load Droid Sans Mono 700 in default stylesheet
392
+ * set line height of table cells used for syntax highlighting
393
+ * set font-family of kbd; refine styling (#1423)
394
+ * extract condition into `quote_lines?` method (@mogztter)
395
+ * extract inline code into `read_paragraph` method (@mogztter)
396
+ * parent of block in ListItem should be ListItem (#1359)
397
+ * add helper methods to List and ListItem (#1551)
398
+ * add method `AbstractNode#add_role` and `AbstractNode#remove_role` (@robertpanzer) (#1366)
399
+ * introduce helper methods for sniffing URIs (#1422)
400
+ * add helper to calculate basename without file extension
401
+ * document `-I` and `-r` options in the manual page (@bk2204)
402
+ * fix `+--help+` output text for `-I` (@bk2204)
403
+ * don't require open-uri-cached if already loaded
404
+ * do not attempt to scan pattern of non-existent directory
405
+
406
+ Compliance::
407
+ * use `<sup>` for footnote reference in text instead of `<span>` (#1523)
408
+ * fix alignment of wrapped text in footnote (#1524)
409
+ * include full stop after footnote number in embeddable HTML
410
+ * show manpage title & name section in embeddable HTML (#1179)
411
+ * resolve missing attribute in ifeval to empty string (#1387)
412
+ * support unbreakable & breakable options on table (rockyallen) (#1140)
413
+
414
+ Bug fixes::
415
+ * don't truncate exception stack in `Asciidoctor.load` (#1248)
416
+ * don't fail to save cause of Java exception (@robertpanzer) (#1458)
417
+ * fix precision error in timings report (#1342)
418
+ * resolve regexp for inline macro lazily (#1336)
419
+ * block argument to `find_by` should filter results (#1393)
420
+ * strip comment lines in indented text of dlist item (#1537)
421
+ * preserve escaped delimiter at end of line in a table (#1306)
422
+ * correctly calculate colnames for implicit columns (#1556)
423
+ * don't crash if colspan exceeds colspec (#1460)
424
+ * account for empty records in colspec (#1375)
425
+ * ignore empty cols attribute on table
426
+ * use `.inspect` to print MathJax delimiters (again) (#1198)
427
+ * use while loop instead of begin/while loop to address bug in Asciidoctor.js (#1408)
428
+ * force encoding of attribute values passed from cli (#1191)
429
+ * don't copy css if stylesheet or stylesdir is a URI (#1400)
430
+ * fix invalid color value in default CodeRay theme
431
+ * built-in writer no longer fails if output is nil (#1544)
432
+ * custom template engine options should take precedence
433
+ * fallback to require with a non-relative path to support Debian package (@mogztter)
434
+ * pass opts to recursive invocations of `PathResolver#system_path`
435
+ * fix and test external links in docbook backend
436
+ * use format symbol `:html` instead of `:html5` for Slim to fix warnings
437
+ * fix documentation for inline_macro and block_macro (Andrea Bedini)
438
+ * fix grammar in warning messages regarding thread_safe gem
439
+
440
+ Infrastructure::
441
+ * migrate opal_ext from core to Asciidoctor.js (#1517)
442
+ * add Ruby 2.2 to CI build; only specify minor Ruby versions
443
+ * enable containerized builds on Travis CI
444
+ * add config to run CI build on AppVeyor
445
+ * exclude benchmark folder from gem (#1522)
446
+
343
447
  == 1.5.2 (2014-11-27) - @mojavelinux
344
448
 
345
449
  Enhancements::
@@ -350,13 +454,13 @@ Enhancements::
350
454
 
351
455
  Improvements::
352
456
 
353
- * recognize `--` as valid line comment for callout numbers; make line comment configurable (#1068)
457
+ * recognize `+--+` as valid line comment for callout numbers; make line comment configurable (#1068)
354
458
  * upgrade highlight.js to version 8.4 (#1216)
355
459
  * upgrade Font Awesome to version 4.2.0 (@clojens) (#1201)
356
460
  * define JAVASCRIPT_PLATFORM constant to simplify conditional logic in the JavaScript environment (#897)
357
461
  * provide access to destination directory, outfile and outdir via Document object (#1203)
358
462
  * print encoding information in version report produced by `asciidoctor -v` (#1210)
359
- * add intrinsic attribute named `cpp` with value `C++` (#1208)
463
+ * add intrinsic attribute named `cpp` with value `pass:[C++]` (#1208)
360
464
  * preserve URI targets passed to `stylesheet` and related attributes (#1192)
361
465
  * allow numeric characters in block attribute name (#1103)
362
466
  * support custom YouTube playlists (#1105)
@@ -403,183 +507,4 @@ Improvements::
403
507
  * add test for usage of image block macro with data URI
404
508
  * use badges from shields.io in README
405
509
 
406
- === 1.5.0 (2014-08-12) - @mojavelinux
407
-
408
- Performance::
409
-
410
- * 10% increase in speed compared to 0.1.4
411
- * rewrite built-in converters in Ruby instead of ERB
412
-
413
- Enhancements::
414
-
415
- * introduce new curved quote syntax (pass:["`double quotes`"], pass:['`single quotes`']) if compat-mode attribute not set (#1046)
416
- * add single curved quote replacement for pass:[`'] (#715)
417
- * use backtick (pass:[`]) for monospaced text if compat-mode attribute not set (#714, #718)
418
- * use single and double plus (pass:[+], pass:[++]) for inline passthrough if compat-mode attribute not set (#714, #718)
419
- * disable single quotes as formatting marks for emphasized text if compat-mode attribute not set (#717)
420
- * enable compat-mode by default if document has atx-style doctitle
421
- * output phrase surrounded by # as marked text (i.e., <mark>) (#225)
422
- * add MathJax integration and corresponding blocks and macros (#492, #760)
423
- * switch to open source fonts (Open Sans, Noto Serif and Droid Sans Mono) in default stylesheet, major refinements to theme (#879)
424
- * embed remote images when data-uri and allow-uri-read attributes are set (#612)
425
- * support leveloffset on include directive and honor relative leveloffset values (#530)
426
- * switch default docbook backend to docbook5 (@bk2204) (#554)
427
- * added hide-uri-scheme attribute to hide uri scheme in automatic links (#800)
428
- * allow substitutions to be incrementally added & removed (#522)
429
- * add compatibility with Opal, add shim compat library, use compatibility regexp, require libraries properly (@mogztter) (#679, #836, #846)
430
- * output XHTML when backend is xhtml or xhtml5 (#494)
431
- * add shorthand subs and specialchars as an alias for specialcharacters (#579)
432
- * deprecate toc2 attribute in favor of position and placement values on toc attribute (e.g., toc=left) (#706)
433
- * add source map (file and line number) information to blocks (#861)
434
- * write to file by default if input is file (#907)
435
- * add -r and -I flags from ruby command to asciidoctor command for loading additional libraries (#574)
436
- * support backslash (\) as line continuation character in the value of an attribute entry (#1022)
437
- * disable subs on pass block by default (#737)
438
- * add basic support for resolving xref target from reftext (#589)
439
- * add time range anchor to video element (#886)
440
- * match implicit URLs that use the file scheme (#853)
441
- * added sectnumlevels to control depth of section numbering (#549)
442
- * add hardbreaks option to block (#630)
443
- * sub attributes in manname (e.g., pass:[{docname}])
444
- * warn on reference to missing attribute if attribute-missing is "warn"
445
- * only enable toc macro if toc is enabled and toc-placement attribute has the value macro (#706)
446
- * add sectnums attribute as alternative alias to numbered attribute (#684)
447
-
448
- Improvements::
449
-
450
- * don't select lines that contain a tag directive when including tagged lines, make tag regexp more strict (#1027)
451
- * use https scheme for assets by default
452
- * upgrade to Font Awesome 4.1 (@mogztter) (#752)
453
- * improve print styles, add print styles for book doctype (@leif81) (#997, #952)
454
- * add proper grid and frame styles for tables (@leif81) (#569)
455
- * use glyphs for checkboxes when not using font icons (#878)
456
- * prefer source-language attribute over language attribute for defining default source language (#888)
457
- * pass document as first argument to process method on Preprocessor
458
- * don't parse link attributes when linkattrs is set unless text contains equal sign
459
- * detect bare links, mark with bare class; don't repeat URL of bare link in print styles
460
- * allow Treeprocessor#process method to replace tree (#1035)
461
- * add AbstractNode#find_by method to locate nodes in tree (#862)
462
- * add API for parsing title and subtitle (#1000)
463
- * add use_fallback option to doctitle, document method
464
- * constrain subscript & superscript markup (#564, #936)
465
- * match cell specs when cell separator is customized (#985)
466
- * use stylesheet to set default table width (#975)
467
- * display nested elements correctly in toc (@kenfinnigan) (#967)
468
- * add support for id attribute on links (@mogztter) (#935)
469
- * add support for title attribute on links (@aslakknutsen)
470
- * add -t flag to cli to control output of timing information (@mogztter) (#909)
471
- * rewrite converter API (#778)
472
- * rewrite extensions to support extension instances for AsciidoctorJ (#804)
473
- * integrate thread_safe gem (#638)
474
- * allow inline macro extensions that define a custom regexp to be matched (#792)
475
- * make Reader#push_include work with default file, path and dir (@bk2204) (#743)
476
- * honor custom outfilesuffix and introduce relfileprefix (#801)
477
- * add author and copyright to meta in HTML5 backend (#838)
478
- * output attribution in front of citetitle for quote and verse blocks
479
- * recognize float style with shorthand syntax outside block (#818)
480
- * honor background color in syntax highlighting themes (#813)
481
- * print runtime environment in version output, support -v as version flag (#785)
482
- * unwrap preamble if standalone (#533)
483
- * drop leading & trailing blank lines in verbatim & raw content (#724)
484
- * remove trailing endlines from source data (#727)
485
- * add flag to cli to suppress warnings (#557)
486
- * emit warning if tag(s) not found in include file (#639)
487
- * use <th> element for vertical table headers instead of header class (@davidgamba) (#738)
488
- * share select references between AsciiDoc-style cell & main document (#729)
489
- * number chapters sequentially, always (#685)
490
- * add vbar attribute, make brvbar resolve properly (#643)
491
- * add implicit user-home attribute that resolves to user's home directory (#629)
492
- * enable sidebar toc for small screens (#628)
493
- * add square brackets around button in HTML output (#631)
494
- * make language hover text work for all languages in listing block
495
- * set background color on toc2 to cover scrolling content (@neher)
496
- * make document parsing a discrete step, make Reader accessible as property on Document
497
- * allow custom converter to set backend info such as outfilesuffix and htmlsyntax
498
- * report an informative error message when a converter cannot be resolved (@mogztter)
499
- * add conum class to b element when icons are disabled, make conum CSS selector more specific
500
- * expose Document object to extension point IncludeProcessor (@aslakknutsen)
501
- * style audioblock title, simplify rules for block titles
502
- * alias :name_attributes to :positional_attributes in extension DSL
503
- * upgrade to highlight.js 7.4 (and later 8.0) (@mogztter) (#756)
504
-
505
- Compliance::
506
-
507
- * only include xmlns in docbook45 backend if xmlns attribute is specified (#929)
508
- * add xmlns attribute for xhtml output (@bk2204)
509
- * warn if table without a body is converted to DocBook (#961)
510
- * wrap <para> around admonition inside example block in DocBook 4.5 (#931)
511
- * use <informalfigure> if block image doesn't have a title (#927)
512
- * fix invalid docbook when adding role to formatted text (#956)
513
- * move all compliance flags to Compliance module (#624)
514
- * add compliance setting to control use of shorthand property syntax (#789)
515
- * wrap top-level content inside preamble in DocBook backend when doctype is book (#971)
516
- * escape special chars in image alt text (#972)
517
- * set starting number in ordered list for docbook (@megathaum) (#925)
518
- * match word characters in regular expressions as defined by Unicode (#892)
519
- * put source language class names on child code element of pre element (#921)
520
- * ignore case of attribute in conditional directives (#903)
521
- * allow attribute entry to reset / reseed counter (#870)
522
- * allow doctype to be set in AsciiDoc table cell (#863)
523
- * match URL macro following entity (@jmbruel) (#819)
524
- * handle BOM when normalizing source (#824)
525
- * don't output revhistory if revdate is not set (#802)
526
- * perform normal subs on verse content (#799)
527
- * automatically wrap part intro content in partintro block, emit warning if part is invalid (#768)
528
- * force encoding of docinfo content to UTF-8 (#773)
529
- * add scaling & alignment attributes to block image in DocBook backend (#763)
530
- * add support for pass:[anchor:<id>[<reftext>\]] macro (#531)
531
- * substitute anchor and xref macros in footnotes (#676)
532
- * remove all string mutation operations for compatibility with Opal (#735)
533
- * honor reftext defined in embedded section title anchor (#697)
534
- * allow spaces in reftext defined in block anchor (#695)
535
- * use reftext of section or block in text of xref link (#693)
536
- * number sections in appendix using appendix number (#683)
537
- * unescape escaped square closing bracket in footnote text (#677)
538
- * support quoted index terms that may contain commas (#597)
539
- * don't assign role attribute if quoted text has no roles (#647)
540
- * disallow quoted values in block and inline anchors
541
- * add % to scaledwidth if no units given
542
- * ignore block attribute with unquoted value None
543
- * preserve entity references with 5 digits
544
-
545
- Bug Fixes::
546
-
547
- * resolve relative paths relative to base_dir in unsafe mode (#690)
548
- * properly handle nested passthroughs (#1034)
549
- * don't clobber outfilesuffix attribute if locked (#1024)
550
- * correctly calculate columns if colspan used in first row of table (#924)
551
- * pass theme to Pygments when pygments-css=style (#919)
552
- * fallback to text lexer when using pygments for source highlighting (#987)
553
- * only make special section if style is specified (#917)
554
- * an unresolved footnote ref should not crash processor (#876)
555
- * rescue failure to resolve ::Dir.home (#896)
556
- * recognize Windows UNC path as absolute and preserve it (#806)
557
- * adjust file glob to account for backslash in Windows paths (#805)
558
- * don't match e-mail address inside URL (#866)
559
- * test include directive resolves file with space in name (#798)
560
- * return nil from Reader#push_include and Reader#pop_include methods (#745)
561
- * fixed broken passthroughs caused by source highlighting (#720)
562
- * copy custom stylesheet if linkcss is set (#300)
563
- * honor list continuations for indented, nested list items (#664)
564
- * fix syntax errors in converters (@jljouannic)
565
- * fix iconfont-remote setting
566
- * fix syntax error (target -> node.target) in Docbook 5 converter (@jf647)
567
- * output and style HTML for toc macro correctly
568
-
569
- Infrastructure::
570
-
571
- * add Ruby 2.1 to list of supported platforms
572
- * reenable rbx in Travis build
573
- * switch tests to minitest (@ktdreyer)
574
- * update RPM for Fedora Rawhide (@ktdreyer)
575
- * refactor unit tests so they work in RubyMine (@cmoulliard)
576
- * add preliminary benchmark files to repository (#1021)
577
- * clean out old fixtures from test suite (#960)
578
- * add initial Cucumber test infrastructure (#731)
579
- * use gem tasks from Bundler in Rakefile (#654)
580
- * build gemspec files using git ls-tree (#653)
581
- * use in-process web server for URI tests
582
- * update manpage to reflect updates in 1.5.0
583
- * rework README (@mogztter) (#651)
584
-
585
510
  Refer to the {uri-changelog}[CHANGELOG] for a complete list of changes in older releases.