jekyll_href 1.2.11 → 1.2.12
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.md +5 -0
- data/README.md +33 -5
- data/jekyll_href.gemspec +1 -1
- data/lib/href_match.rb +12 -9
- data/lib/href_private.rb +1 -1
- data/lib/href_summary_tag.rb +3 -6
- data/lib/href_tag.rb +4 -9
- data/lib/jekyll_href/version.rb +1 -1
- metadata +5 -5
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA256:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: 9b91d0d8398def7c990920615a1e12f97de4472f5444ae9fc3869504d49084b8
         | 
| 4 | 
            +
              data.tar.gz: 19f84b38dc1f3205763a1be316671bad0ac65a3af25621e5455164f362c39ec8
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: 92e483de85abd7cfdf2aeede0de99d0cc0772d3d112b6652394f04f3f97f52d6aaa2b4f39ac150c02cbd25d0162b56809b8c8dec1a356d5a9777b86d888b21aa
         | 
| 7 | 
            +
              data.tar.gz: fd835168ec7beb443ea70c646aac51cb80b4ab9a9826f881b74ee0af6670ad9ffe74937e3e063f762f44b32d7c060f4c69faeda6d8fe0935fd68525c8d3dbdf2
         | 
    
        data/CHANGELOG.md
    CHANGED
    
    
    
        data/README.md
    CHANGED
    
    | @@ -46,7 +46,22 @@ href_summary: | |
| 46 46 | 
             
              pry_on_href_error: true  # Default value is false
         | 
| 47 47 | 
             
            ```
         | 
| 48 48 |  | 
| 49 | 
            -
            ##  | 
| 49 | 
            +
            ## Suppprted Syntaxes
         | 
| 50 | 
            +
             | 
| 51 | 
            +
            Square brackets in the [BNF notation](https://en.wikipedia.org/wiki/Backus%E2%80%93Naur_form)
         | 
| 52 | 
            +
            below denote optional keyword parameters, and are not meant to be typed.
         | 
| 53 | 
            +
             | 
| 54 | 
            +
            ## Syntax 1 (most verbose, but provides best results and enables implicit matching title)
         | 
| 55 | 
            +
             | 
| 56 | 
            +
            ```html
         | 
| 57 | 
            +
            {% href [match | [follow] [blank|notarget] [summary_exclude]] url="local_page.html" label="text to display" %}
         | 
| 58 | 
            +
            ```
         | 
| 59 | 
            +
             | 
| 60 | 
            +
            1. The url can be #relative, a page in the Jekyll website, or prefaced with a protocol, such as `https:`
         | 
| 61 | 
            +
            2. If `match` is provided, and `label` is not provided, then the title of the matched page is used as the label.
         | 
| 62 | 
            +
             | 
| 63 | 
            +
             | 
| 64 | 
            +
            ## Syntax 2 (requires `url` without embedded spaces)
         | 
| 50 65 |  | 
| 51 66 | 
             
            ```html
         | 
| 52 67 | 
             
            {% href [match | [follow] [blank|notarget] [page_title] [summary_exclude]] url text to display %}
         | 
| @@ -54,10 +69,9 @@ href_summary: | |
| 54 69 |  | 
| 55 70 | 
             
            1. The url must be a single token, without embedded spaces.
         | 
| 56 71 | 
             
            2. The url need not be enclosed in quotes.
         | 
| 57 | 
            -
            3. The square brackets denote optional keyword parameters, and should not be typed.
         | 
| 58 72 |  | 
| 59 73 |  | 
| 60 | 
            -
            ## Syntax  | 
| 74 | 
            +
            ## Syntax 3 (always works)
         | 
| 61 75 |  | 
| 62 76 | 
             
            This syntax is recommended when the URL contains a colon (:).
         | 
| 63 77 |  | 
| @@ -68,10 +82,9 @@ This syntax is recommended when the URL contains a colon (:). | |
| 68 82 |  | 
| 69 83 | 
             
            1. Each of the above examples contain an embedded newline, which is legal.
         | 
| 70 84 | 
             
            2. The url must be enclosed by either single or double quotes.
         | 
| 71 | 
            -
            3. The square brackets denote optional keyword parameters, and should not be typed.
         | 
| 72 85 |  | 
| 73 86 |  | 
| 74 | 
            -
            ## Syntax  | 
| 87 | 
            +
            ## Syntax 4 (implicit URL)
         | 
| 75 88 |  | 
| 76 89 | 
             
            ```html
         | 
| 77 90 | 
             
            {% href [match | [follow] [blank|notarget] [page_title] [summary_exclude]] [shy|wbr] www.domain.com %}
         | 
| @@ -287,6 +300,21 @@ Expands to: | |
| 287 300 |  | 
| 288 301 | 
             
               Substitutions are only made to the URL, not to the linked text.
         | 
| 289 302 |  | 
| 303 | 
            +
            8. Dollar signs
         | 
| 304 | 
            +
             | 
| 305 | 
            +
               If the URL has a dollar sign in it, jekyll_href will attempt to replace an environment variable with its value.
         | 
| 306 | 
            +
               That will likely fail silently. To work around the problem, replace dollar signs in URLs with $.
         | 
| 307 | 
            +
             | 
| 308 | 
            +
               For example, given this URL:
         | 
| 309 | 
            +
               https://ammonite.io/#import$ivy
         | 
| 310 | 
            +
               rewrite as:
         | 
| 311 | 
            +
               https://ammonite.io/#import$ivy.
         | 
| 312 | 
            +
             | 
| 313 | 
            +
               Here is a complete invocation:
         | 
| 314 | 
            +
             | 
| 315 | 
            +
               {% href url="https://ammonite.io/#import$ivy"
         | 
| 316 | 
            +
                       label="<code>import $ivy</code>" %}
         | 
| 317 | 
            +
             | 
| 290 318 |  | 
| 291 319 | 
             
            ## References Generation
         | 
| 292 320 |  | 
    
        data/jekyll_href.gemspec
    CHANGED
    
    | @@ -33,6 +33,6 @@ Gem::Specification.new do |spec| | |
| 33 33 | 
             
              spec.add_dependency 'ipaddress'
         | 
| 34 34 | 
             
              spec.add_dependency 'jekyll', '>= 3.5.0'
         | 
| 35 35 | 
             
              spec.add_dependency 'jekyll_all_collections'
         | 
| 36 | 
            -
              spec.add_dependency 'jekyll_plugin_support', '>= 1.0. | 
| 36 | 
            +
              spec.add_dependency 'jekyll_plugin_support', '>= 1.0.2'
         | 
| 37 37 | 
             
              spec.add_dependency 'typesafe_enum'
         | 
| 38 38 | 
             
            end
         | 
    
        data/lib/href_match.rb
    CHANGED
    
    | @@ -2,19 +2,23 @@ module JekyllSupport | |
| 2 2 | 
             
              class HRefTag
         | 
| 3 3 | 
             
                private
         | 
| 4 4 |  | 
| 5 | 
            -
                def compute_link_and_text | 
| 6 | 
            -
                   | 
| 7 | 
            -
                  case  | 
| 5 | 
            +
                def compute_link_and_text
         | 
| 6 | 
            +
                  page_matches = @site.all_collections.map.select { |page| page.url&.include? @path }
         | 
| 7 | 
            +
                  case page_matches.length
         | 
| 8 8 | 
             
                  when 0
         | 
| 9 | 
            -
                     | 
| 9 | 
            +
                    msg = "HRef error: No url matches '#{@link}', found on line #{@line_number} (after front matter) of #{@path}"
         | 
| 10 | 
            +
                    @logger.error { msg }
         | 
| 11 | 
            +
                    abort msg if @die_if_nomatch
         | 
| 12 | 
            +
                    @text = "<i class='h_ref_error'>#{@link} is not available</i>"
         | 
| 10 13 | 
             
                    @link_save = @link = '#'
         | 
| 11 | 
            -
                    @text = "<i>#{@link} is not available</i>"
         | 
| 12 14 | 
             
                  when 1
         | 
| 13 | 
            -
                    @link =  | 
| 15 | 
            +
                    @link = page_matches.first.url
         | 
| 14 16 | 
             
                    @link = "#{@link}##{@fragment}" if @fragment
         | 
| 15 17 | 
             
                    @link_save = @link
         | 
| 18 | 
            +
                    @text = page_matches.first.title unless @label
         | 
| 16 19 | 
             
                  else
         | 
| 17 | 
            -
                     | 
| 20 | 
            +
                    logger.error { "Error: More than one url matched '#{@path}': #{url_matches.join(', ')}" }
         | 
| 21 | 
            +
                    exit! 2
         | 
| 18 22 | 
             
                  end
         | 
| 19 23 | 
             
                end
         | 
| 20 24 |  | 
| @@ -31,8 +35,7 @@ module JekyllSupport | |
| 31 35 | 
             
                    END_DEBUG
         | 
| 32 36 | 
             
                  end
         | 
| 33 37 |  | 
| 34 | 
            -
                   | 
| 35 | 
            -
                  compute_link_and_text(all_urls)
         | 
| 38 | 
            +
                  compute_link_and_text
         | 
| 36 39 | 
             
                end
         | 
| 37 40 | 
             
              end
         | 
| 38 41 | 
             
            end
         | 
    
        data/lib/href_private.rb
    CHANGED
    
    | @@ -26,7 +26,7 @@ module JekyllSupport | |
| 26 26 | 
             
                      <pre>{% href #{@argument_string.strip} %}</pre>
         | 
| 27 27 | 
             
                  END_MESSAGE
         | 
| 28 28 | 
             
                  @logger.error { JekyllSupport::JekyllPluginHelper.remove_html_tags msg.strip }
         | 
| 29 | 
            -
                  "<div class=' | 
| 29 | 
            +
                  "<div class='h_ref_error'>HRefError: #{msg}</div>"
         | 
| 30 30 | 
             
                end
         | 
| 31 31 |  | 
| 32 32 | 
             
                # Sets @follow, @helper, @match, @path, @target, @url, @hyphenation
         | 
    
        data/lib/href_summary_tag.rb
    CHANGED
    
    | @@ -40,13 +40,10 @@ module JekyllSupport | |
| 40 40 | 
             
                    #{@helper.attribute if @helper.attribution && have_refs}
         | 
| 41 41 | 
             
                  END_RENDER
         | 
| 42 42 | 
             
                rescue HRefError => e # jekyll_plugin_support handles StandardError
         | 
| 43 | 
            -
                  e. | 
| 44 | 
            -
                   | 
| 45 | 
            -
                  @logger.error "#{e.class} raised #{msg}"
         | 
| 46 | 
            -
                  binding.pry if @pry_on_img_error # rubocop:disable Lint/Debugger
         | 
| 47 | 
            -
                  raise e if @die_on_href_error
         | 
| 43 | 
            +
                  @logger.error { e.logger_message }
         | 
| 44 | 
            +
                  exit! 1 if @die_on_demo_block_error
         | 
| 48 45 |  | 
| 49 | 
            -
                   | 
| 46 | 
            +
                  e.html_message
         | 
| 50 47 | 
             
                end
         | 
| 51 48 |  | 
| 52 49 | 
             
                def render_global_refs
         | 
    
        data/lib/href_tag.rb
    CHANGED
    
    | @@ -46,7 +46,7 @@ module JekyllSupport | |
| 46 46 |  | 
| 47 47 | 
             
                  @helper_save = @helper.clone
         | 
| 48 48 | 
             
                  globals_update(@helper.argv, linkk) # Sets @link and @text, might clear @follow and @target
         | 
| 49 | 
            -
                  handle_match( | 
| 49 | 
            +
                  handle_match(linkk) if @match # Sets @text if not set by now
         | 
| 50 50 | 
             
                  raise HrefError, '@link_type was not set' if @link_type == LinkType::UNKNOWN
         | 
| 51 51 |  | 
| 52 52 | 
             
                  save_summary
         | 
| @@ -54,15 +54,10 @@ module JekyllSupport | |
| 54 54 | 
             
                  style = " style='#{@style}'" if @style
         | 
| 55 55 | 
             
                  "<a href='#{@link}'#{klass}#{style}#{@target}#{@follow}>#{@text}</a>"
         | 
| 56 56 | 
             
                rescue HRefError => e # jekyll_plugin_support handles StandardError
         | 
| 57 | 
            -
                   | 
| 58 | 
            -
                   | 
| 59 | 
            -
                  @text = "<div class='href_error'>#{msg}</div>"
         | 
| 60 | 
            -
                  e.shorten_backtrace
         | 
| 61 | 
            -
                  @logger.error "#{e.class} raised #{msg}"
         | 
| 62 | 
            -
                  binding.pry if @pry_on_img_error # rubocop:disable Lint/Debugger
         | 
| 63 | 
            -
                  raise e if @die_on_href_error
         | 
| 57 | 
            +
                  @logger.error { e.logger_message }
         | 
| 58 | 
            +
                  exit 1 if @die_on_demo_tag_error
         | 
| 64 59 |  | 
| 65 | 
            -
                   | 
| 60 | 
            +
                  e.html_message
         | 
| 66 61 | 
             
                end
         | 
| 67 62 |  | 
| 68 63 | 
             
                def to_s
         | 
    
        data/lib/jekyll_href/version.rb
    CHANGED
    
    
    
        metadata
    CHANGED
    
    | @@ -1,14 +1,14 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: jekyll_href
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 1.2. | 
| 4 | 
            +
              version: 1.2.12
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - Mike Slinn
         | 
| 8 8 | 
             
            autorequire:
         | 
| 9 9 | 
             
            bindir: exe
         | 
| 10 10 | 
             
            cert_chain: []
         | 
| 11 | 
            -
            date: 2024- | 
| 11 | 
            +
            date: 2024-08-20 00:00:00.000000000 Z
         | 
| 12 12 | 
             
            dependencies:
         | 
| 13 13 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 14 14 | 
             
              name: ipaddress
         | 
| @@ -58,14 +58,14 @@ dependencies: | |
| 58 58 | 
             
                requirements:
         | 
| 59 59 | 
             
                - - ">="
         | 
| 60 60 | 
             
                  - !ruby/object:Gem::Version
         | 
| 61 | 
            -
                    version: 1.0. | 
| 61 | 
            +
                    version: 1.0.2
         | 
| 62 62 | 
             
              type: :runtime
         | 
| 63 63 | 
             
              prerelease: false
         | 
| 64 64 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 65 65 | 
             
                requirements:
         | 
| 66 66 | 
             
                - - ">="
         | 
| 67 67 | 
             
                  - !ruby/object:Gem::Version
         | 
| 68 | 
            -
                    version: 1.0. | 
| 68 | 
            +
                    version: 1.0.2
         | 
| 69 69 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 70 70 | 
             
              name: typesafe_enum
         | 
| 71 71 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| @@ -136,7 +136,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement | |
| 136 136 | 
             
                - !ruby/object:Gem::Version
         | 
| 137 137 | 
             
                  version: '0'
         | 
| 138 138 | 
             
            requirements: []
         | 
| 139 | 
            -
            rubygems_version: 3.5. | 
| 139 | 
            +
            rubygems_version: 3.5.17
         | 
| 140 140 | 
             
            signing_key:
         | 
| 141 141 | 
             
            specification_version: 4
         | 
| 142 142 | 
             
            summary: Generates an 'a href' tag, possibly with target='_blank' and rel='nofollow'.
         |