Sha256: 16d83b7cb5206041a19c27b7e413b8c22b35723210ceb1d968051e887dba42bd

Contents?: true

Size: 526 Bytes

Versions: 26

Compression:

Stored size: 526 Bytes

Contents

# Define a filter for hyphenating long IRIs
Nanoc::Filter.define(:scholar_hyphenate_iri) do |content|
  content = content.dup
  # Replace in-text URLs
  content.gsub! %r{>https?://[^>]+?} do |match|
    hyphenate(match)
  end
  # Replace mandatory links
  content.gsub! %r{<a href="([^"]+)"[^>]*\s+class="mandatory"} do |match|
    %{#{match} data-link-text="#{hyphenate $1}"}
  end
  content
end

# Add zero-width space after slashes and hyphens to allow hyphenation
def hyphenate text
  text.gsub %r{(?<=/|-)}, "\u200B"
end

Version data entries

26 entries across 26 versions & 1 rubygems

Version Path
scholarmarkdown-1.4.0 lib/scholarmarkdown/filter/hyphenate_iri.rb
scholarmarkdown-1.3.1 lib/scholarmarkdown/filter/hyphenate_iri.rb
scholarmarkdown-1.3.0 lib/scholarmarkdown/filter/hyphenate_iri.rb
scholarmarkdown-1.2.0 lib/scholarmarkdown/filter/hyphenate_iri.rb
scholarmarkdown-1.1.0 lib/scholarmarkdown/filter/hyphenate_iri.rb
scholarmarkdown-1.0.0 lib/scholarmarkdown/filter/hyphenate_iri.rb