asciidoctor-boost 0.1.4 → 0.1.5

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 856ae649c2d2eb2478738bd7c4b4513bae84c39acb90919264b97d332355119b
4
- data.tar.gz: fe2bff1d33d3a61d70680b4a68c4874de71d3f1e732e13e2805d5e2e21340466
3
+ metadata.gz: cc36671574d2dbb27181bdfd41fbb3215ae537ae007efc04414df02d8c9249ed
4
+ data.tar.gz: d391b4741b1c524aebd323dfa6ec29f96a6b59f8cfb17d94ccff46f2cf94c90b
5
5
  SHA512:
6
- metadata.gz: cfca5177c11bb90254ef2138f6ab21481baa5069950a5677a3108ee838f1bd40315f19b2561e07892ae88d375609a34947a33950f713dd6e5930300e086b8e40
7
- data.tar.gz: 9bf9eddcccb416a92662fb9d4aaef6386a7cff11888bf6d968e8809d27f295180783138a6786e9420ba507818025a90b5d40a1dc0ce107b3f9c1f19f2d0645d1
6
+ metadata.gz: b97dfd29b4dd276d9c86cd018205db330690c2de43ba5d705d1ae01109310c17bf348aea1c850627c963df1b407e7cc1e60ab27ab7ec26326ab282177837cfbc
7
+ data.tar.gz: defbf6d0e572e52e9c9cf78d713d160457d86d167e4593cc7e37462fb05603a4fb91cfe8fc98cded048ba7d919a206b81e2ed1f1d2721c229537560d2d97104c
@@ -12,11 +12,44 @@ require 'asciidoctor/extensions'
12
12
  class PhraseInlineMacro < Asciidoctor::Extensions::InlineMacroProcessor
13
13
  use_dsl
14
14
  named :boost_phrase
15
- name_positional_attributes 'text'
15
+ name_positional_attributes 'text', 'link'
16
16
 
17
17
  def process(parent, target, attrs)
18
- node = create_inline parent, :quoted, attrs['text'], type: :unquoted
19
- node.add_role target
20
- node
18
+ role = target
19
+ text = attrs['text'] || target
20
+ link = attrs['link']
21
+ backend = parent.document.backend
22
+
23
+ if link && !link.strip.empty?
24
+ process_with_link(parent, role, text, link, backend)
25
+ else
26
+ process_without_link(parent, role, text)
27
+ end
28
+ end
29
+
30
+ private
31
+
32
+ def process_with_link(parent, role, text, link, backend)
33
+ if backend == 'html5'
34
+ generate_html_output(role, link, text)
35
+ else
36
+ create_anchor_with_role(parent, role, text, link)
37
+ end
38
+ end
39
+
40
+ def process_without_link(parent, role, text)
41
+ span_node = create_inline parent, :quoted, text, type: :unquoted
42
+ span_node.add_role role
43
+ span_node
44
+ end
45
+
46
+ def generate_html_output(role, link, text)
47
+ %(<span class="#{role}"><a href="#{link}">#{text}</a></span>)
48
+ end
49
+
50
+ def create_anchor_with_role(parent, role, text, link)
51
+ anchor_node = create_inline parent, :anchor, text, type: :link, target: link
52
+ anchor_node.add_role role
53
+ anchor_node
21
54
  end
22
55
  end
data/lib/version.rb CHANGED
@@ -6,5 +6,5 @@
6
6
  # frozen_string_literal: true
7
7
 
8
8
  module Boost
9
- VERSION = '0.1.4'
9
+ VERSION = '0.1.5'
10
10
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: asciidoctor-boost
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.4
4
+ version: 0.1.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dave O'Connor