asciidoctor 2.0.0.rc.2 → 2.0.0.rc.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.adoc +31 -3
- data/README-de.adoc +2 -8
- data/README-fr.adoc +2 -8
- data/README-jp.adoc +2 -2
- data/README-zh_CN.adoc +2 -2
- data/README.adoc +3 -7
- data/data/locale/attributes-fr.adoc +1 -1
- data/data/stylesheets/asciidoctor-default.css +3 -2
- data/lib/asciidoctor.rb +13 -7
- data/lib/asciidoctor/abstract_block.rb +33 -27
- data/lib/asciidoctor/abstract_node.rb +6 -10
- data/lib/asciidoctor/block.rb +4 -4
- data/lib/asciidoctor/cli/options.rb +23 -24
- data/lib/asciidoctor/converter.rb +17 -16
- data/lib/asciidoctor/converter/docbook5.rb +102 -102
- data/lib/asciidoctor/converter/html5.rb +142 -84
- data/lib/asciidoctor/converter/manpage.rb +81 -81
- data/lib/asciidoctor/converter/template.rb +2 -2
- data/lib/asciidoctor/core_ext.rb +1 -0
- data/lib/asciidoctor/core_ext/hash/merge.rb +7 -0
- data/lib/asciidoctor/document.rb +28 -14
- data/lib/asciidoctor/extensions.rb +4 -3
- data/lib/asciidoctor/inline.rb +2 -9
- data/lib/asciidoctor/parser.rb +27 -17
- data/lib/asciidoctor/reader.rb +41 -26
- data/lib/asciidoctor/section.rb +1 -8
- data/lib/asciidoctor/substitutors.rb +125 -124
- data/lib/asciidoctor/syntax_highlighter/highlightjs.rb +1 -1
- data/lib/asciidoctor/table.rb +1 -1
- data/lib/asciidoctor/version.rb +1 -1
- data/man/asciidoctor.1 +4 -4
- data/man/asciidoctor.adoc +1 -1
- metadata +3 -2
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA256:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: 5c6f979786009b69e2cc868e90f1b97a7a62cf7906b6071bba4f7de471230df4
         | 
| 4 | 
            +
              data.tar.gz: b117e749de44c5f099b1f40967165cd6c9792e895ca31fa51b654d87c4c7811f
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: 0a04640a9791301a5007acfcb70c3ed8daaeef605ed1c7e315ee85ba5bca717d7df52dec82870a73aa2d5d84fc6d30d0abe7f9146592b089d2c41bb21e81fe4a
         | 
| 7 | 
            +
              data.tar.gz: 7b7ed4a9107ee200c447c69452b371049d6ea12cd36b2c4b29e3bab752ed2e1f1db24ec741971840a2bb4d2463da5802013f073bbd8ebea2a0885d8fe07f4edb
         | 
    
        data/CHANGELOG.adoc
    CHANGED
    
    | @@ -13,7 +13,7 @@ endif::[] | |
| 13 13 | 
             
            This document provides a high-level view of the changes introduced in Asciidoctor by release.
         | 
| 14 14 | 
             
            For a detailed view of what has changed, refer to the {uri-repo}/commits/master[commit history] on GitHub.
         | 
| 15 15 |  | 
| 16 | 
            -
            == 2.0.0.rc. | 
| 16 | 
            +
            == 2.0.0.rc.3 (2019-03-21) - @mojavelinux
         | 
| 17 17 |  | 
| 18 18 | 
             
            Enhancements / Compliance::
         | 
| 19 19 |  | 
| @@ -47,7 +47,8 @@ Enhancements / Compliance:: | |
| 47 47 | 
             
              * remove the 2-character (i.e., `""`) quote block syntax
         | 
| 48 48 | 
             
              * don't allow block role to inherit from document attribute; only look for role in block attributes (#1944)
         | 
| 49 49 | 
             
              * split out functionality of -w CLI flag (script warnings) from -v CLI flag (verbose logging) (#3030)
         | 
| 50 | 
            -
              * log possible invalid references at  | 
| 50 | 
            +
              * log possible invalid references at info level (#3030)
         | 
| 51 | 
            +
              * log dropped lines at info level when attribute-missing=drop-line (#2861)
         | 
| 51 52 | 
             
              * use the third argument of AbstractNode#attr / AbstractNode#attr? to set the name of a fallback attribute to look for on the document (#1934)
         | 
| 52 53 | 
             
              * change default value of third argument to Abstractnode#attr / AbstractNode#attr? to nil so attribute doesn't inherit by default (#3059)
         | 
| 53 54 | 
             
              * look for table-frame, table-grid, and table-stripes attributes on document as fallback for frame, grid, and stripes attributes on table (#3059)
         | 
| @@ -64,16 +65,31 @@ Enhancements / Compliance:: | |
| 64 65 | 
             
              * drop verse table cell style (treat as normal table cell) (#3111)
         | 
| 65 66 | 
             
              * allow negated subs to be specified on inline pass macro (#2191)
         | 
| 66 67 | 
             
              * log warning if footnoteref macro is found and compat mode is not enabled (#3114)
         | 
| 68 | 
            +
              * log info message if inline macro processor returns a String value (#3176)
         | 
| 69 | 
            +
              * apply subs to Inline node returned by inline macro processor if subs attribute is specified (#3178)
         | 
| 70 | 
            +
              * add create_inline_pass helper method to base extension processor class (#3178)
         | 
| 67 71 | 
             
              * log debug message instead of warning if block style is unknown (#3092)
         | 
| 68 72 | 
             
              * allow backend to delegate to a registered backend using the syntax synthetic:delegate when using custom templates (e.g., slides:html) (#891)
         | 
| 69 73 | 
             
              * AbstractBlock#find_by looks inside AsciiDoc table cells if traverse_documents selector option is true (#3101)
         | 
| 70 74 | 
             
              * AbstractBlock#find_by finds table cells, which can be selected using the :table_cell context in the selector (#2524)
         | 
| 71 75 | 
             
              * allow ampersand to be used in e-mail address (#2553)
         | 
| 72 76 | 
             
              * propogate ID assigned to inline passthrough (#2912)
         | 
| 77 | 
            +
              * rename control keywords in find_by to better align with the standard NodeFilter terminology
         | 
| 78 | 
            +
              * stop find_by iteration if filter block returns :stop directive
         | 
| 79 | 
            +
              * rename header_footer option to standalone (while still honoring header_footer for backwards compatibility) (#1444)
         | 
| 80 | 
            +
              * replace anchors and xrefs before footnotes (replace footnotes last in macros substitution group)
         | 
| 81 | 
            +
              * apply substitution for custom inline macro before all other macros
         | 
| 82 | 
            +
              * drop indexterms table from document catalog (in preparation for solution to #450 in a 2.x release)
         | 
| 83 | 
            +
              * load additional languages for highlight.js as defined in the comma-separated highlightjs-languages attribute (#3036)
         | 
| 84 | 
            +
              * log warning if conditional expression in ifeval directive is invalid (#3161)
         | 
| 85 | 
            +
              * drop lines that contain an invalid preprocessor directive (#3161)
         | 
| 86 | 
            +
              * rename AbstractBlock#find_by directives; use :prune in place of :skip_children and :reject in place of :skip
         | 
| 87 | 
            +
              * convert example block into details/summary tag set if collapsible option is set; open by default if open option is set (#1699)
         | 
| 73 88 |  | 
| 74 89 | 
             
            Improvements::
         | 
| 75 90 |  | 
| 76 91 | 
             
              * propagate document ID to DocBook output (#3011)
         | 
| 92 | 
            +
              * always store section numeral as string; compute roman numeral for part at assignment time (@vmj)
         | 
| 77 93 | 
             
              * refactor code to use modern Hash syntax
         | 
| 78 94 | 
             
              * define LIB_DIR constant; rename *_PATH constants to *_DIR constants to be consistent with RubyGems terminology (#2764)
         | 
| 79 95 | 
             
              * only define ROOT_DIR if not already defined (for compatibility with Asciidoctor.js)
         | 
| @@ -84,12 +100,15 @@ Improvements:: | |
| 84 100 | 
             
              * ensure linenos class is added to linenos column when source highlighter is pygments and pygments-css=style
         | 
| 85 101 | 
             
              * rename CSS class of Pygments line numbering table to linenotable (to align with Rouge) (#1040)
         | 
| 86 102 | 
             
              * remove unused Converter#convert_with_options method (#2891)
         | 
| 103 | 
            +
              * add -e, --embedded CLI flag as alias for -s, --no-header-footer (require long option to specify eRuby impl) (#1444)
         | 
| 87 104 | 
             
              * don't store the options attribute on the block once the options are parsed (#3051)
         | 
| 88 105 | 
             
              * add an options method on AbstractNode to retrieve the set of option names (#3051)
         | 
| 89 106 | 
             
              * pass :input_mtime option to Document constructor; let Document constructor assign docdate/time/year attributes (#3029)
         | 
| 90 107 | 
             
              * never mutate strings; add a `frozen_string_literal: true` magic comment to top of all Ruby source files (#3054)
         | 
| 91 108 | 
             
              * always use docdate and doctime to compute docyear and docdatetime (#3064)
         | 
| 92 109 | 
             
              * rename PreprocessorReader#exceeded_max_depth? to PreprocessorReader#exceeds_max_depth? and return nil if includes are disabled
         | 
| 110 | 
            +
              * log warning when include directive is not resolved due to missing attribute or blank target; always include warning in output (#2868)
         | 
| 111 | 
            +
              * honor attribute-missing setting when processing include directives and block macros (#2855)
         | 
| 93 112 | 
             
              * stop populating :ids table in document catalog (#3084)
         | 
| 94 113 | 
             
              * always use :refs table in document catalog to look for registered IDs (#3084)
         | 
| 95 114 | 
             
              * don't compute and store reference text in document catalog (#3084)
         | 
| @@ -100,13 +119,17 @@ Improvements:: | |
| 100 119 | 
             
              * add clearer exception message when source data is binary or has invalid encoding (#2884)
         | 
| 101 120 | 
             
              * rename context for table cell and table column to :table_cell and :table_column, respectively
         | 
| 102 121 | 
             
              * rename hardbreaks document attribute to hardbreaks-option; retain hardbreaks as a deprecated alias (#3123)
         | 
| 122 | 
            +
              * extend TLD for implicit e-mail addresses to 5 characters (#3154)
         | 
| 103 123 | 
             
              * truncate with precision (instead of rounding) when computing absolute width for columns in DocBook output (#3131)
         | 
| 104 124 | 
             
              * drop legacy LaTeX math delimiters (e.g, `$..$`) if present (#1339)
         | 
| 125 | 
            +
              * use proper terminology in warning message about mismatched preprocessor directive (#3165)
         | 
| 105 126 | 
             
              * upgrade MathJax to 2.7.5
         | 
| 106 127 |  | 
| 107 128 | 
             
            Bug Fixes::
         | 
| 108 129 |  | 
| 109 130 | 
             
              * fix crash caused by inline passthrough macro with the macros sub clearing the remaining passthrough placeholders (#3089)
         | 
| 131 | 
            +
              * fix crash if ifeval directive is missing expression (#3164)
         | 
| 132 | 
            +
              * prevent relative leveloffset from making section level negative and causing hang (#3152)
         | 
| 110 133 | 
             
              * don't fail to parse Markdown-style quote block that only contains attribution line (#2989)
         | 
| 111 134 | 
             
              * enforce rule that Setext section title must have at least one alphanumeric character; fixes problem w/ block nested inside quote block (#3060)
         | 
| 112 135 | 
             
              * apply header subs to doctitle value when assigning it back to the doctitle document attribute (#3106)
         | 
| @@ -125,7 +148,7 @@ Bug Fixes:: | |
| 125 148 | 
             
              * scope constant lookups (#2764)
         | 
| 126 149 | 
             
              * use byteslice instead of slice to remove BOM from string (#2764)
         | 
| 127 150 | 
             
              * don't fail if value of -a CLI option is empty string or equals sign (#2997)
         | 
| 128 | 
            -
              * allow failure level to be set to  | 
| 151 | 
            +
              * allow failure level of CLI to be set to info
         | 
| 129 152 | 
             
              * Reader#push_include should not fail if data is nil
         | 
| 130 153 | 
             
              * fix deprecated ERB trim mode that was causing warning (#3006)
         | 
| 131 154 | 
             
              * move time anchor after query string on vimeo video to avoid dropping options
         | 
| @@ -134,6 +157,10 @@ Bug Fixes:: | |
| 134 157 | 
             
              * allow outfilesuffix to be soft set from API (#2640)
         | 
| 135 158 | 
             
              * don't split paragraphs in table cell at line that resolves to blank if adjacent to other non-blank lines (#2963)
         | 
| 136 159 | 
             
              * initialize the level to WARN when instantiating the NullLogger
         | 
| 160 | 
            +
              * next_adjacent_block should not fail when called on dlist item (#3133)
         | 
| 161 | 
            +
              * don't suppress browser styles for summary tag; add pointer cursor and panel margin bottom (#3155)
         | 
| 162 | 
            +
              * only consider TLDs in e-mail address that have ASCII alpha characters
         | 
| 163 | 
            +
              * allow underscore in domain of e-mail address
         | 
| 137 164 |  | 
| 138 165 | 
             
            Build / Infrastructure::
         | 
| 139 166 |  | 
| @@ -142,6 +169,7 @@ Build / Infrastructure:: | |
| 142 169 | 
             
              * add Ruby 2.6.0 to build matrix
         | 
| 143 170 | 
             
              * stop running CI job on unsupported versions of Ruby
         | 
| 144 171 | 
             
              * exclude test suite, build script, and Gemfile from gem (#3044)
         | 
| 172 | 
            +
              * split build tasks out into individual files
         | 
| 145 173 |  | 
| 146 174 | 
             
            // tag::compact[]
         | 
| 147 175 | 
             
            == 1.5.8 (2018-10-28) - @mojavelinux
         | 
    
        data/README-de.adoc
    CHANGED
    
    | @@ -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 | 
            -
            v2.0.0.rc. | 
| 3 | 
            +
            v2.0.0.rc.3, 2019-03-21
         | 
| 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: 2.0.0.rc. | 
| 20 | 
            +
            :release-version: 2.0.0.rc.3
         | 
| 21 21 | 
             
            // URIs:
         | 
| 22 22 | 
             
            :uri-org: https://github.com/asciidoctor
         | 
| 23 23 | 
             
            :uri-repo: {uri-org}/asciidoctor
         | 
| @@ -97,12 +97,6 @@ endif::[] | |
| 97 97 |  | 
| 98 98 | 
             
            Wir möchten unseren großzügigen Sponsoren danken, ohne deren Unterstützung Asciidoctor nicht möglich wäre.
         | 
| 99 99 | 
             
            Vielen Dank an die Sponsoren für ihr Engagement zur Verbesserung der technischen Dokumentation!
         | 
| 100 | 
            -
             | 
| 101 | 
            -
            image:https://www.okta.com/sites/all/themes/Okta/images/blog/Logos/Okta_Logo_BrightBlue_Medium.png[Okta,280,link=https://developer.okta.com/signup?utm_source=asciidoctor&utm_medium=logo&utm_campaign=sponsor,title="Add User Auth to Your Apps in Minutes with Okta"]
         | 
| 102 | 
            -
                 
         | 
| 103 | 
            -
            image:https://secure.gravatar.com/avatar/823717a797dbd78ceff7b26aa397f383.png?size=200[OpenDevise,100,link=https://opendevise.com,title="Let the Creators of Asciidoctor and Antora Help You to Accelerate Your Docs"]
         | 
| 104 | 
            -
             | 
| 105 | 
            -
            Unsere Change Makers, https://developer.okta.com/signup?utm_source=asciidoctor&utm_medium=text-link&utm_campaign=sponsor[Okta] und https://opendevise.com[OpenDevise], sowie unsere Strategiesponsoren https://www.khronos.org/[Khronos Group] und Linda Roberts finanzieren Asciidoctor maßgeblich.
         | 
| 106 100 | 
             
            Zusätzliche Mittel werden von unseren https://asciidoctor.org/supporters[Community Backers] zur Verfügung gestellt.
         | 
| 107 101 |  | 
| 108 102 | 
             
            Sie können dieses Projekt unterstützen, indem Sie Sponsor bei https://opencollective.com/asciidoctor[OpenCollective] werden.
         | 
    
        data/README-fr.adoc
    CHANGED
    
    | @@ -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 | 
            -
            v2.0.0.rc. | 
| 3 | 
            +
            v2.0.0.rc.3, 2019-03-21
         | 
| 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: 2.0.0.rc. | 
| 20 | 
            +
            :release-version: 2.0.0.rc.3
         | 
| 21 21 | 
             
            // URIs:
         | 
| 22 22 | 
             
            :uri-org: https://github.com/asciidoctor
         | 
| 23 23 | 
             
            :uri-repo: {uri-org}/asciidoctor
         | 
| @@ -94,12 +94,6 @@ endif::[] | |
| 94 94 |  | 
| 95 95 | 
             
            Nous souhaitons exprimer toute notre reconnaissance à nos généreux sponsors, sans qui Asciidoctor ne pourrait pas exister.
         | 
| 96 96 | 
             
            Merci à vous pour votre engagement dans l'amélioration de la documentation technique !
         | 
| 97 | 
            -
             | 
| 98 | 
            -
            image:https://www.okta.com/sites/all/themes/Okta/images/blog/Logos/Okta_Logo_BrightBlue_Medium.png[Okta,280,link=https://developer.okta.com/signup?utm_source=asciidoctor&utm_medium=logo&utm_campaign=sponsor,title="Add User Auth to Your Apps in Minutes with Okta"]
         | 
| 99 | 
            -
                 
         | 
| 100 | 
            -
            image:https://secure.gravatar.com/avatar/823717a797dbd78ceff7b26aa397f383.png?size=200[OpenDevise,100,link=https://opendevise.com,title="Let the Creators of Asciidoctor and Antora Help You to Accelerate Your Docs"]
         | 
| 101 | 
            -
             | 
| 102 | 
            -
            Asciidoctor est financé majoritairement par nos *Change Makers*, https://developer.okta.com/signup?utm_source=asciidoctor&utm_medium=text-link&utm_campaign=sponsor[Okta] et https://opendevise.com[OpenDevise], ainsi que par nos *Strategy Sponsors*, https://www.khronos.org/[Khronos Group] et Linda Roberts.
         | 
| 103 97 | 
             
            Un apport financier supplémentaire est assuré par https://asciidoctor.org/supporters[la communauté].
         | 
| 104 98 |  | 
| 105 99 | 
             
            Vous pouvez aider ce projet en devant un sponsor sur https://opencollective.com/asciidoctor[OpenCollective].
         | 
    
        data/README-jp.adoc
    CHANGED
    
    | @@ -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 | 
            -
            v2.0.0.rc. | 
| 3 | 
            +
            v2.0.0.rc.3, 2019-03-21
         | 
| 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: 2.0.0.rc. | 
| 21 | 
            +
            :release-version: 2.0.0.rc.3
         | 
| 22 22 | 
             
            // URIs:
         | 
| 23 23 | 
             
            :uri-org: https://github.com/asciidoctor
         | 
| 24 24 | 
             
            :uri-repo: {uri-org}/asciidoctor
         | 
    
        data/README-zh_CN.adoc
    CHANGED
    
    | @@ -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 | 
            -
            v2.0.0.rc. | 
| 3 | 
            +
            v2.0.0.rc.3, 2019-03-21
         | 
| 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: 2.0.0.rc. | 
| 21 | 
            +
            :release-version: 2.0.0.rc.3
         | 
| 22 22 | 
             
            // URIs:
         | 
| 23 23 | 
             
            :uri-org: https://github.com/asciidoctor
         | 
| 24 24 | 
             
            :uri-repo: {uri-org}/asciidoctor
         | 
    
        data/README.adoc
    CHANGED
    
    | @@ -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 | 
            -
            v2.0.0.rc. | 
| 3 | 
            +
            v2.0.0.rc.3, 2019-03-21
         | 
| 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: 2.0.0.rc. | 
| 20 | 
            +
            :release-version: 2.0.0.rc.3
         | 
| 21 21 | 
             
            // URIs:
         | 
| 22 22 | 
             
            :uri-org: https://github.com/asciidoctor
         | 
| 23 23 | 
             
            :uri-repo: {uri-org}/asciidoctor
         | 
| @@ -101,11 +101,7 @@ endif::[] | |
| 101 101 | 
             
            We want to recognize our generous sponsors, without whose support Asciidoctor would not be possible.
         | 
| 102 102 | 
             
            Thank you sponsors for your dedication to improving the state of technical documentation!
         | 
| 103 103 |  | 
| 104 | 
            -
             | 
| 105 | 
            -
                 
         | 
| 106 | 
            -
            image:https://secure.gravatar.com/avatar/823717a797dbd78ceff7b26aa397f383.png?size=200[OpenDevise,100,link=https://opendevise.com,title="Let the Creators of Asciidoctor and Antora Help You to Accelerate Your Docs"]
         | 
| 107 | 
            -
             | 
| 108 | 
            -
            Major funding for Asciidoctor is provided by our *Change Makers*, https://developer.okta.com/signup?utm_source=asciidoctor&utm_medium=text-link&utm_campaign=sponsor[Okta] and https://opendevise.com[OpenDevise], and our *Strategy Sponsors*, https://www.khronos.org/[Khronos Group] and Linda Roberts.
         | 
| 104 | 
            +
            Major funding for Asciidoctor is provided by our *Change Maker*, https://opendevise.com[OpenDevise], our *Strategy Sponsors*, https://www.khronos.org/[Khronos Group] and Linda Roberts, and our *Pull Request Backers*, Brian Dominick, Guillaume Grossetie, and Abel Salgado Romero.
         | 
| 109 105 | 
             
            Additional funding is provided by our https://asciidoctor.org/supporters[Community Backers].
         | 
| 110 106 |  | 
| 111 107 | 
             
            You can support this project by becoming a sponsor on https://opencollective.com/asciidoctor[OpenCollective].
         | 
| @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            /* Asciidoctor default stylesheet | MIT License | https://asciidoctor.org */
         | 
| 2 2 | 
             
            /* Uncomment @import statement when using as custom stylesheet */
         | 
| 3 3 | 
             
            /*@import "https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700";*/
         | 
| 4 | 
            -
            article,aside,details,figcaption,figure,footer,header,hgroup,main,nav,section | 
| 4 | 
            +
            article,aside,details,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}
         | 
| 5 5 | 
             
            audio,canvas,video{display:inline-block}
         | 
| 6 6 | 
             
            audio:not([controls]){display:none;height:0}
         | 
| 7 7 | 
             
            script{display:none!important}
         | 
| @@ -186,7 +186,8 @@ body.toc2.toc-right{padding-left:0;padding-right:20em}} | |
| 186 186 | 
             
            #content h1:hover>a.anchor,#content h1>a.anchor:hover,h2:hover>a.anchor,h2>a.anchor:hover,h3:hover>a.anchor,#toctitle:hover>a.anchor,.sidebarblock>.content>.title:hover>a.anchor,h3>a.anchor:hover,#toctitle>a.anchor:hover,.sidebarblock>.content>.title>a.anchor:hover,h4:hover>a.anchor,h4>a.anchor:hover,h5:hover>a.anchor,h5>a.anchor:hover,h6:hover>a.anchor,h6>a.anchor:hover{visibility:visible}
         | 
| 187 187 | 
             
            #content h1>a.link,h2>a.link,h3>a.link,#toctitle>a.link,.sidebarblock>.content>.title>a.link,h4>a.link,h5>a.link,h6>a.link{color:#ba3925;text-decoration:none}
         | 
| 188 188 | 
             
            #content h1>a.link:hover,h2>a.link:hover,h3>a.link:hover,#toctitle>a.link:hover,.sidebarblock>.content>.title>a.link:hover,h4>a.link:hover,h5>a.link:hover,h6>a.link:hover{color:#a53221}
         | 
| 189 | 
            -
             | 
| 189 | 
            +
            details,.audioblock,.imageblock,.literalblock,.listingblock,.stemblock,.videoblock{margin-bottom:1.25em}
         | 
| 190 | 
            +
            details>summary:first-of-type{cursor:pointer;display:list-item;outline:none;margin-bottom:.75em}
         | 
| 190 191 | 
             
            .admonitionblock td.content>.title,.audioblock>.title,.exampleblock>.title,.imageblock>.title,.listingblock>.title,.literalblock>.title,.stemblock>.title,.openblock>.title,.paragraph>.title,.quoteblock>.title,table.tableblock>.title,.verseblock>.title,.videoblock>.title,.dlist>.title,.olist>.title,.ulist>.title,.qlist>.title,.hdlist>.title{text-rendering:optimizeLegibility;text-align:left;font-family:"Noto Serif","DejaVu Serif",serif;font-size:1rem;font-style:italic}
         | 
| 191 192 | 
             
            table.tableblock.fit-content>caption.title{white-space:nowrap;width:0}
         | 
| 192 193 | 
             
            .paragraph.lead>p,#preamble>.sectionbody>[class="paragraph"]:first-of-type p{font-size:1.21875em;line-height:1.6;color:rgba(0,0,0,.85)}
         | 
    
        data/lib/asciidoctor.rb
    CHANGED
    
    | @@ -831,7 +831,7 @@ module Asciidoctor | |
| 831 831 | 
             
                #
         | 
| 832 832 | 
             
                #   doc.writer@example.com
         | 
| 833 833 | 
             
                #
         | 
| 834 | 
            -
                InlineEmailRx = %r(([\\>:/])?#{CG_WORD}(?:&|[#{CC_WORD}.%+-])*@#{CG_ALNUM}[#{CC_ALNUM}.-] | 
| 834 | 
            +
                InlineEmailRx = %r(([\\>:/])?#{CG_WORD}(?:&|[#{CC_WORD}.%+-])*@#{CG_ALNUM}[#{CC_ALNUM}_.-]*\.[a-zA-Z]{2,5}\b)
         | 
| 835 835 |  | 
| 836 836 | 
             
                # Matches an inline footnote macro, which is allowed to span multiple lines.
         | 
| 837 837 | 
             
                #
         | 
| @@ -1188,7 +1188,7 @@ module Asciidoctor | |
| 1188 1188 | 
             
                # foo--bar
         | 
| 1189 1189 | 
             
                [/(#{CG_WORD})\\?--(?=#{CG_WORD})/, '—​', :leading],
         | 
| 1190 1190 | 
             
                # ellipsis
         | 
| 1191 | 
            -
                [/\\?\.\.\./, '…​', : | 
| 1191 | 
            +
                [/\\?\.\.\./, '…​', :none],
         | 
| 1192 1192 | 
             
                # right single quote
         | 
| 1193 1193 | 
             
                [/\\?`'/, '’', :none],
         | 
| 1194 1194 | 
             
                # apostrophe (inside a word)
         | 
| @@ -1221,7 +1221,7 @@ module Asciidoctor | |
| 1221 1221 | 
             
              #
         | 
| 1222 1222 | 
             
              # Returns the Document
         | 
| 1223 1223 | 
             
              def load input, options = {}
         | 
| 1224 | 
            -
                options = options. | 
| 1224 | 
            +
                options = options.merge
         | 
| 1225 1225 |  | 
| 1226 1226 | 
             
                if (timings = options[:timings])
         | 
| 1227 1227 | 
             
                  timings.start :read
         | 
| @@ -1233,7 +1233,9 @@ module Asciidoctor | |
| 1233 1233 |  | 
| 1234 1234 | 
             
                if !(attrs = options[:attributes])
         | 
| 1235 1235 | 
             
                  attrs = {}
         | 
| 1236 | 
            -
                elsif ::Hash === attrs | 
| 1236 | 
            +
                elsif ::Hash === attrs
         | 
| 1237 | 
            +
                  attrs = attrs.merge
         | 
| 1238 | 
            +
                elsif (defined? ::Java::JavaUtil::Map) && ::Java::JavaUtil::Map === attrs
         | 
| 1237 1239 | 
             
                  attrs = attrs.dup
         | 
| 1238 1240 | 
             
                elsif ::Array === attrs
         | 
| 1239 1241 | 
             
                  attrs = {}.tap do |accum|
         | 
| @@ -1351,7 +1353,7 @@ module Asciidoctor | |
| 1351 1353 | 
             
              # Returns the Document object if the converted String is written to a
         | 
| 1352 1354 | 
             
              # file, otherwise the converted String
         | 
| 1353 1355 | 
             
              def convert input, options = {}
         | 
| 1354 | 
            -
                options = options. | 
| 1356 | 
            +
                options = options.merge
         | 
| 1355 1357 | 
             
                options.delete(:parse)
         | 
| 1356 1358 | 
             
                to_file = options.delete(:to_file)
         | 
| 1357 1359 | 
             
                to_dir = options.delete(:to_dir)
         | 
| @@ -1375,8 +1377,12 @@ module Asciidoctor | |
| 1375 1377 | 
             
                  write_to_target = (stream_output = to_file.respond_to? :write) ? false : (options[:to_file] = to_file)
         | 
| 1376 1378 | 
             
                end
         | 
| 1377 1379 |  | 
| 1378 | 
            -
                unless options.key? : | 
| 1379 | 
            -
                   | 
| 1380 | 
            +
                unless options.key? :standalone
         | 
| 1381 | 
            +
                  if write_to_same_dir || write_to_target
         | 
| 1382 | 
            +
                    options[:standalone] = true
         | 
| 1383 | 
            +
                  elsif options.key? :header_footer
         | 
| 1384 | 
            +
                    options[:standalone] = options[:header_footer]
         | 
| 1385 | 
            +
                  end
         | 
| 1380 1386 | 
             
                end
         | 
| 1381 1387 |  | 
| 1382 1388 | 
             
                # NOTE outfile may be controlled by document attributes, so resolve outfile after loading
         | 
| @@ -23,10 +23,6 @@ class AbstractBlock < AbstractNode | |
| 23 23 | 
             
              # Only assigned to formal block (block with title) if corresponding caption attribute is present.
         | 
| 24 24 | 
             
              attr_accessor :numeral
         | 
| 25 25 |  | 
| 26 | 
            -
              # Deprecated: Legacy property to get/set the numeral of this block.
         | 
| 27 | 
            -
              alias number numeral
         | 
| 28 | 
            -
              alias number= numeral=
         | 
| 29 | 
            -
             | 
| 30 26 | 
             
              # Public: Gets/Sets the location in the AsciiDoc source where this block begins.
         | 
| 31 27 | 
             
              attr_accessor :source_location
         | 
| 32 28 |  | 
| @@ -142,16 +138,19 @@ class AbstractBlock < AbstractNode | |
| 142 138 | 
             
                @next_section_index > 0
         | 
| 143 139 | 
             
              end
         | 
| 144 140 |  | 
| 145 | 
            -
              #  | 
| 146 | 
            -
               | 
| 141 | 
            +
              # Deprecated: Legacy property to get the String or Integer numeral of this section.
         | 
| 142 | 
            +
              def number
         | 
| 143 | 
            +
                (Integer @numeral) rescue @numeral
         | 
| 144 | 
            +
              end
         | 
| 145 | 
            +
             | 
| 146 | 
            +
              # Public: Walk the document tree and find all block-level nodes that match the specified selector (context, style, id,
         | 
| 147 | 
            +
              # role, and/or custom filter).
         | 
| 147 148 | 
             
              #
         | 
| 148 | 
            -
              # If a Ruby block is given, it's  | 
| 149 | 
            -
              #  | 
| 150 | 
            -
              # filter returns  | 
| 151 | 
            -
              # filter returns : | 
| 152 | 
            -
              # filter  | 
| 153 | 
            -
              # are rejected. If no selector or filter block is supplied, all block-level
         | 
| 154 | 
            -
              # nodes in the tree are returned.
         | 
| 149 | 
            +
              # If a Ruby block is given, it's applied as a supplemental filter. If the filter returns true (which implies :accept),
         | 
| 150 | 
            +
              # the node is accepted and node traversal continues. If the filter returns false (which implies :skip), the node is
         | 
| 151 | 
            +
              # skipped, but its children are still visited. If the filter returns :reject, the node and all its descendants are
         | 
| 152 | 
            +
              # rejected. If the filter returns :prune, the node is accepted, but its descendants are rejected. If no selector
         | 
| 153 | 
            +
              # or filter block is supplied, all block-level nodes in the tree are returned.
         | 
| 155 154 | 
             
              #
         | 
| 156 155 | 
             
              # Examples
         | 
| 157 156 | 
             
              #
         | 
| @@ -179,7 +178,13 @@ class AbstractBlock < AbstractNode | |
| 179 178 | 
             
              # Move to the next adjacent block in document order. If the current block is the last
         | 
| 180 179 | 
             
              # item in a list, this method will return the following sibling of the list block.
         | 
| 181 180 | 
             
              def next_adjacent_block
         | 
| 182 | 
            -
                 | 
| 181 | 
            +
                unless @context == :document
         | 
| 182 | 
            +
                  if (p = @parent).context == :dlist && @context == :list_item
         | 
| 183 | 
            +
                    (sib = p.items[(p.items.find_index {|terms, desc| (terms.include? self) || desc == self }) + 1]) ? sib : p.next_adjacent_block
         | 
| 184 | 
            +
                  else
         | 
| 185 | 
            +
                    (sib = p.blocks[(p.blocks.find_index self) + 1]) ? sib : p.next_adjacent_block
         | 
| 186 | 
            +
                  end
         | 
| 187 | 
            +
                end
         | 
| 183 188 | 
             
              end
         | 
| 184 189 |  | 
| 185 190 | 
             
              # Public: Get the Array of child Section objects
         | 
| @@ -397,16 +402,12 @@ class AbstractBlock < AbstractNode | |
| 397 402 | 
             
                if (like = section.numbered)
         | 
| 398 403 | 
             
                  if (sectname = section.sectname) == 'appendix'
         | 
| 399 404 | 
             
                    section.numeral = @document.counter 'appendix-number', 'A'
         | 
| 400 | 
            -
                     | 
| 401 | 
            -
                      section.caption = %(#{caption} #{section.numeral}: )
         | 
| 402 | 
            -
                    else
         | 
| 403 | 
            -
                      section.caption = %(#{section.numeral}. )
         | 
| 404 | 
            -
                    end
         | 
| 405 | 
            +
                    section.caption = (caption = @document.attributes['appendix-caption']) ? %(#{caption} #{section.numeral}: ) : %(#{section.numeral}. )
         | 
| 405 406 | 
             
                  # NOTE currently chapters in a book doctype are sequential even for multi-part books (see #979)
         | 
| 406 407 | 
             
                  elsif sectname == 'chapter' || like == :chapter
         | 
| 407 | 
            -
                    section.numeral = @document.counter 'chapter-number', 1
         | 
| 408 | 
            +
                    section.numeral = (@document.counter 'chapter-number', 1).to_s
         | 
| 408 409 | 
             
                  else
         | 
| 409 | 
            -
                    section.numeral = @next_section_ordinal
         | 
| 410 | 
            +
                    section.numeral = sectname == 'part' ? (Helpers.int_to_roman @next_section_ordinal) : @next_section_ordinal.to_s
         | 
| 410 411 | 
             
                    @next_section_ordinal += 1
         | 
| 411 412 | 
             
                  end
         | 
| 412 413 | 
             
                end
         | 
| @@ -440,23 +441,28 @@ class AbstractBlock < AbstractNode | |
| 440 441 | 
             
                    (!(style_selector = selector[:style]) || style_selector == @style) &&
         | 
| 441 442 | 
             
                    (!(role_selector = selector[:role]) || (has_role? role_selector)) &&
         | 
| 442 443 | 
             
                    (!(id_selector = selector[:id]) || id_selector == @id)
         | 
| 443 | 
            -
                  if  | 
| 444 | 
            -
                    block_given? && !(yield self) ? result.clear : (result.replace [self])
         | 
| 445 | 
            -
                    raise ::StopIteration
         | 
| 446 | 
            -
                  elsif block_given?
         | 
| 444 | 
            +
                  if block_given?
         | 
| 447 445 | 
             
                    if (verdict = yield self)
         | 
| 448 446 | 
             
                      case verdict
         | 
| 449 | 
            -
                      when : | 
| 447 | 
            +
                      when :prune
         | 
| 450 448 | 
             
                        result << self
         | 
| 449 | 
            +
                        raise ::StopIteration if id_selector
         | 
| 451 450 | 
             
                        return result
         | 
| 452 | 
            -
                      when : | 
| 451 | 
            +
                      when :reject
         | 
| 452 | 
            +
                        raise ::StopIteration if id_selector
         | 
| 453 453 | 
             
                        return result
         | 
| 454 | 
            +
                      when :stop
         | 
| 455 | 
            +
                        raise ::StopIteration
         | 
| 454 456 | 
             
                      else
         | 
| 455 457 | 
             
                        result << self
         | 
| 458 | 
            +
                        raise ::StopIteration if id_selector
         | 
| 456 459 | 
             
                      end
         | 
| 460 | 
            +
                    elsif id_selector
         | 
| 461 | 
            +
                      raise ::StopIteration
         | 
| 457 462 | 
             
                    end
         | 
| 458 463 | 
             
                  else
         | 
| 459 464 | 
             
                    result << self
         | 
| 465 | 
            +
                    raise ::StopIteration if id_selector
         | 
| 460 466 | 
             
                  end
         | 
| 461 467 | 
             
                end
         | 
| 462 468 | 
             
                case @context
         | 
| @@ -25,19 +25,15 @@ class AbstractNode | |
| 25 25 | 
             
              attr_reader :parent
         | 
| 26 26 |  | 
| 27 27 | 
             
              def initialize parent, context, opts = {}
         | 
| 28 | 
            +
                # document is a special case, should refer to itself
         | 
| 28 29 | 
             
                if context == :document
         | 
| 29 | 
            -
                   | 
| 30 | 
            -
             | 
| 31 | 
            -
             | 
| 32 | 
            -
                  if parent
         | 
| 33 | 
            -
                    @document, @parent = parent.document, parent
         | 
| 34 | 
            -
                  else
         | 
| 35 | 
            -
                    @document = @parent = nil
         | 
| 36 | 
            -
                  end
         | 
| 30 | 
            +
                  @document = self
         | 
| 31 | 
            +
                elsif parent
         | 
| 32 | 
            +
                  @document = (@parent = parent).document
         | 
| 37 33 | 
             
                end
         | 
| 38 34 | 
             
                @node_name = (@context = context).to_s
         | 
| 39 | 
            -
                #  | 
| 40 | 
            -
                @attributes = (opts | 
| 35 | 
            +
                # NOTE the value of the :attributes option may be nil on an Inline node
         | 
| 36 | 
            +
                @attributes = (attrs = opts[:attributes]) ? attrs.merge : {}
         | 
| 41 37 | 
             
                @passthroughs = []
         | 
| 42 38 | 
             
              end
         | 
| 43 39 |  |