metanorma-standoc 1.3.2 → 1.3.3

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 7b1329080ec2d0fd0e0a0f14ef3e59ebacf0d3a7eddb0d44510ef16966073705
4
- data.tar.gz: 46051f44a1e660df4357ab06e6018d861698d12679f6002cb46f17d9b0b62684
3
+ metadata.gz: c157670399555bab56fdbdd58841925b41d78286554eed8d9a10ad385d3a17d0
4
+ data.tar.gz: 2d4cb5ef535eb8b5a6ee8903df46f32a7d35089f7fa682c67a3701e0daa3993c
5
5
  SHA512:
6
- metadata.gz: f044364c1ac18e56ee6c186c919d0cd332c5253a6e4cc1bb6bc09bbbf5233c74c6f42d10314c4598305d21e5450c5b29ef57d62b6662394c2137d39c965c7d35
7
- data.tar.gz: f6806351c9621bfb2bfac2ae868593ce9088c4361d99285495368e3faa6550dbcaa0fa4d88fd3f19238536bd32837182470321f3b9734a33f0807d95ca2719e9
6
+ metadata.gz: 6ca6acc2a135f1b13d96600e7b02035e4f1f442f272b9cfc48bf2d4c95eec4a79558a212f592a97509449081cbb390aee4f8f14f0255a4761809108975e2fbb2
7
+ data.tar.gz: 0c94d48235edbdac98bb5dcc5fc8290bf0d0e2a6ea017aa1ac6b496c5b39bf55c3e21265303cd769b85b82cc70a30790d0ede4f5a4b7612fc097d5f5f54da3cc
@@ -9,17 +9,11 @@ rvm:
9
9
  - 2.4
10
10
  - ruby-head
11
11
  before_install:
12
- - nvm install 8
13
- - npm install -g puppeteer
14
- - npm install
15
12
  - curl -L https://cpanmin.us | perl - --sudo App::cpanminus
16
13
  - sudo cpanm --notest LaTeXML@0.8.4
17
14
  - curl -L https://raw.githubusercontent.com/metanorma/metanorma-build-scripts/master/travis.sh | bash
18
- - plantuml -version
19
15
  - gem install bundler -v 2.0.1
20
16
  - bundle update
21
- - if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then sudo bash -c "apt-get update && curl -L https://raw.githubusercontent.com/metanorma/metanorma-linux-setup/master/ubuntu.sh | bash" ; fi
22
- - if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then travis_wait brew install --HEAD https://raw.githubusercontent.com/metanorma/homebrew-metanorma/master/Formula/metanorma.rb ; fi
23
17
  matrix:
24
18
  allow_failures:
25
19
  - rvm: ruby-head
@@ -7,6 +7,7 @@ PATH
7
7
  html2doc (~> 0.8.11)
8
8
  iev (~> 0.2.1)
9
9
  isodoc (~> 1.0.0)
10
+ mimemagic
10
11
  relaton (~> 0.5.0)
11
12
  relaton-iev (~> 0.1.0)
12
13
  ruby-jing
@@ -22,7 +23,7 @@ GEM
22
23
  asciimath (1.0.8)
23
24
  ast (2.4.0)
24
25
  byebug (11.0.1)
25
- cnccs (0.1.3)
26
+ cnccs (0.1.4)
26
27
  coderay (1.1.2)
27
28
  concurrent-ruby (1.1.5)
28
29
  crack (0.4.3)
@@ -35,7 +36,7 @@ GEM
35
36
  multipart-post (>= 1.2, < 3)
36
37
  ffi (1.11.1)
37
38
  formatador (0.2.5)
38
- gb-agencies (0.0.5)
39
+ gb-agencies (0.0.6)
39
40
  guard (2.15.1)
40
41
  formatador (>= 0.2.4)
41
42
  listen (>= 2.7, < 4.0)
@@ -75,7 +76,7 @@ GEM
75
76
  sassc (~> 2)
76
77
  thread_safe
77
78
  uuidtools
78
- isoics (0.1.7)
79
+ isoics (0.1.8)
79
80
  json (2.2.0)
80
81
  liquid (4.0.3)
81
82
  listen (3.1.5)
@@ -90,6 +91,7 @@ GEM
90
91
  mime-types (3.3)
91
92
  mime-types-data (~> 3.2015)
92
93
  mime-types-data (3.2019.0904)
94
+ mimemagic (0.3.3)
93
95
  mini_portile2 (2.4.0)
94
96
  multipart-post (2.1.1)
95
97
  nenv (0.3.0)
@@ -112,7 +114,7 @@ GEM
112
114
  rb-fsevent (0.10.3)
113
115
  rb-inotify (0.10.0)
114
116
  ffi (~> 1.0)
115
- relaton (0.5.4)
117
+ relaton (0.5.5)
116
118
  relaton-gb (~> 0.6.0)
117
119
  relaton-iec (~> 0.4.0)
118
120
  relaton-ietf (~> 0.6.0)
@@ -120,33 +122,33 @@ GEM
120
122
  relaton-itu (~> 0.3.0)
121
123
  relaton-nist (~> 0.3.0)
122
124
  relaton-ogc (~> 0.1.0)
123
- relaton-bib (0.3.6)
125
+ relaton-bib (0.3.8)
124
126
  addressable
125
127
  nokogiri
126
- relaton-gb (0.6.3)
128
+ relaton-gb (0.6.4)
127
129
  cnccs (~> 0.1.1)
128
130
  gb-agencies (~> 0.0.1)
129
131
  relaton-iso-bib (~> 0.3.0)
130
- relaton-iec (0.4.4)
132
+ relaton-iec (0.4.6)
131
133
  addressable
132
134
  relaton-iso-bib (~> 0.3.0)
133
- relaton-ietf (0.6.4)
135
+ relaton-ietf (0.6.5)
134
136
  relaton-bib (~> 0.3.0)
135
137
  relaton-iev (0.1.1)
136
138
  relaton (~> 0.5.0)
137
- relaton-iso (0.6.5)
139
+ relaton-iso (0.6.6)
138
140
  relaton-iec (~> 0.4.0)
139
141
  relaton-iso-bib (~> 0.3.0)
140
- relaton-iso-bib (0.3.5)
142
+ relaton-iso-bib (0.3.7)
141
143
  isoics (~> 0.1.6)
142
144
  relaton-bib (~> 0.3.0)
143
145
  ruby_deep_clone (~> 0.8.0)
144
- relaton-itu (0.3.3)
146
+ relaton-itu (0.3.4)
145
147
  relaton-iso-bib (~> 0.3.0)
146
- relaton-nist (0.3.4)
148
+ relaton-nist (0.3.5)
147
149
  relaton-bib (~> 0.3.0)
148
150
  rubyzip
149
- relaton-ogc (0.1.0)
151
+ relaton-ogc (0.1.1)
150
152
  faraday
151
153
  relaton-iso-bib (~> 0.3.0)
152
154
  roman-numerals (0.3.0)
@@ -175,12 +177,12 @@ GEM
175
177
  ruby-progressbar (1.10.1)
176
178
  ruby_deep_clone (0.8.0)
177
179
  ruby_dep (1.5.0)
178
- rubyzip (1.2.4)
180
+ rubyzip (2.0.0)
179
181
  safe_yaml (1.0.5)
180
- sassc (2.2.0)
182
+ sassc (2.2.1)
181
183
  ffi (~> 1.9)
182
184
  shellany (0.0.1)
183
- simplecov (0.17.0)
185
+ simplecov (0.17.1)
184
186
  docile (~> 1.1)
185
187
  json (>= 1.8, < 3)
186
188
  simplecov-html (~> 0.10.0)
@@ -194,7 +196,7 @@ GEM
194
196
  unicode2latex (0.0.2)
195
197
  uuidtools (2.1.5)
196
198
  vcr (5.0.0)
197
- webmock (3.7.2)
199
+ webmock (3.7.5)
198
200
  addressable (>= 2.3.6)
199
201
  crack (>= 0.3.2)
200
202
  hashdiff (>= 0.4.0, < 2.0.0)
@@ -16,6 +16,7 @@ module Asciidoctor
16
16
  inline_macro Asciidoctor::Standoc::AltTermInlineMacro
17
17
  inline_macro Asciidoctor::Standoc::DeprecatedTermInlineMacro
18
18
  inline_macro Asciidoctor::Standoc::DomainTermInlineMacro
19
+ inline_macro Asciidoctor::Standoc::HTML5RubyMacro
19
20
  block Asciidoctor::Standoc::ToDoAdmonitionBlock
20
21
  treeprocessor Asciidoctor::Standoc::ToDoInlineAdmonitionBlock
21
22
  block Asciidoctor::Standoc::PlantUMLBlockMacro
@@ -120,7 +121,7 @@ module Asciidoctor
120
121
  def init_iev_caches(node)
121
122
  unless (@no_isobib_cache || @no_isobib)
122
123
  node.attr("local-cache-only") or
123
- @iev_globalname = global_ievcache_name
124
+ @iev_globalname = global_ievcache_name
124
125
  @iev_localname = local_ievcache_name(node.attr("local-cache") ||
125
126
  node.attr("local-cache-only"))
126
127
  if node.attr("flush-caches")
@@ -194,6 +194,14 @@
194
194
  <data type="boolean"/>
195
195
  </attribute>
196
196
  </optional>
197
+ <optional>
198
+ <attribute name="subsequence"/>
199
+ </optional>
200
+ <optional>
201
+ <attribute name="inequality">
202
+ <data type="boolean"/>
203
+ </attribute>
204
+ </optional>
197
205
  <ref name="stem"/>
198
206
  <optional>
199
207
  <ref name="dl"/>
@@ -247,6 +255,9 @@
247
255
  <data type="boolean"/>
248
256
  </attribute>
249
257
  </optional>
258
+ <optional>
259
+ <attribute name="subsequence"/>
260
+ </optional>
250
261
  <optional>
251
262
  <attribute name="lang"/>
252
263
  </optional>
@@ -291,9 +302,15 @@
291
302
  <data type="boolean"/>
292
303
  </attribute>
293
304
  </optional>
305
+ <optional>
306
+ <attribute name="subsequence"/>
307
+ </optional>
294
308
  <optional>
295
309
  <attribute name="alt"/>
296
310
  </optional>
311
+ <optional>
312
+ <attribute name="summary"/>
313
+ </optional>
297
314
  <optional>
298
315
  <attribute name="uri">
299
316
  <data type="anyURI"/>
@@ -423,6 +440,9 @@
423
440
  <data type="boolean"/>
424
441
  </attribute>
425
442
  </optional>
443
+ <optional>
444
+ <attribute name="subsequence"/>
445
+ </optional>
426
446
  <oneOrMore>
427
447
  <choice>
428
448
  <ref name="formula"/>
@@ -486,6 +506,9 @@
486
506
  <data type="boolean"/>
487
507
  </attribute>
488
508
  </optional>
509
+ <optional>
510
+ <attribute name="subsequence"/>
511
+ </optional>
489
512
  <optional>
490
513
  <ref name="source"/>
491
514
  </optional>
@@ -497,6 +520,8 @@
497
520
  </optional>
498
521
  <choice>
499
522
  <ref name="image"/>
523
+ <ref name="video"/>
524
+ <ref name="audio"/>
500
525
  <ref name="pre"/>
501
526
  <zeroOrMore>
502
527
  <ref name="figure"/>
@@ -792,7 +817,7 @@
792
817
  </element>
793
818
  </define>
794
819
  <define name="video">
795
- <element name="image">
820
+ <element name="video">
796
821
  <attribute name="id">
797
822
  <data type="ID"/>
798
823
  </attribute>
@@ -833,7 +858,7 @@
833
858
  </element>
834
859
  </define>
835
860
  <define name="audio">
836
- <element name="image">
861
+ <element name="audio">
837
862
  <attribute name="id">
838
863
  <data type="ID"/>
839
864
  </attribute>
@@ -12,7 +12,15 @@ module Asciidoctor
12
12
 
13
13
  def id_unnum_attr(node)
14
14
  attr_code( id: Utils::anchor_or_uuid(node),
15
- unnumbered: node.option?("unnumbered") ? "true" : nil )
15
+ unnumbered: node.option?("unnumbered") ? "true" : nil,
16
+ subsequence: node.attr("subsequence") )
17
+ end
18
+
19
+ def formula_attr(node)
20
+ attr_code( id: Utils::anchor_or_uuid(node),
21
+ inequality: node.option?("inequality") ? "true" : nil,
22
+ unnumbered: node.option?("unnumbered") ? "true" : nil,
23
+ subsequence: node.attr("subsequence") )
16
24
  end
17
25
 
18
26
  # open block is a container of multiple blocks,
@@ -42,7 +50,7 @@ module Asciidoctor
42
50
  def stem(node)
43
51
  stem_content = node.lines.join("\n")
44
52
  noko do |xml|
45
- xml.formula **id_unnum_attr(node) do |s|
53
+ xml.formula **formula_attr(node) do |s|
46
54
  stem_parse(stem_content, s, node.style.to_sym)
47
55
  end
48
56
  end
@@ -51,13 +59,11 @@ module Asciidoctor
51
59
  def sidebar_attrs(node)
52
60
  date = node.attr("date") || Date.today.iso8601.gsub(/\+.*$/, "")
53
61
  date += "T00:00:00Z" unless /T/.match date
54
- {
55
- reviewer: node.attr("reviewer") || node.attr("source") || "(Unknown)",
62
+ { reviewer: node.attr("reviewer") || node.attr("source") || "(Unknown)",
56
63
  id: Utils::anchor_or_uuid(node),
57
64
  date: date,
58
65
  from: node.attr("from"),
59
- to: node.attr("to") || node.attr("from"),
60
- }
66
+ to: node.attr("to") || node.attr("from") }
61
67
  end
62
68
 
63
69
  def sidebar(node)
@@ -72,11 +78,9 @@ module Asciidoctor
72
78
  def todo_attrs(node)
73
79
  date = node.attr("date") || Date.today.iso8601.gsub(/\+.*$/, "")
74
80
  date += "T00:00:00Z" unless /T/.match date
75
- {
76
- reviewer: node.attr("reviewer") || node.attr("source") || "(Unknown)",
81
+ { reviewer: node.attr("reviewer") || node.attr("source") || "(Unknown)",
77
82
  id: Utils::anchor_or_uuid(node),
78
- date: date,
79
- }
83
+ date: date }
80
84
  end
81
85
 
82
86
  def todo(node)
@@ -141,9 +145,8 @@ module Asciidoctor
141
145
  def example(node)
142
146
  return term_example(node) if in_terms?
143
147
  role = node.role || node.attr("style")
144
- return requirement(node, "recommendation") if role == "recommendation"
145
- return requirement(node, "requirement") if role == "requirement"
146
- return requirement(node, "permission") if role == "permission"
148
+ %w(recommendation requirement permission).include?(role) and
149
+ return requirement(node, role)
147
150
  noko do |xml|
148
151
  xml.example **id_unnum_attr(node) do |ex|
149
152
  wrap_in_para(node, ex)
@@ -162,6 +165,7 @@ module Asciidoctor
162
165
  end
163
166
 
164
167
  def datauri(uri)
168
+ return uri if /^data:/.match(uri)
165
169
  types = MIME::Types.type_for(@localdir + uri)
166
170
  type = types ? types.first.to_s : 'text/plain; charset="utf-8"'
167
171
  bin = File.open(@localdir + uri, 'rb') {|io| io.read}
@@ -171,10 +175,12 @@ module Asciidoctor
171
175
 
172
176
  def image_attributes(node)
173
177
  uri = node.image_uri (node.attr("target") || node.target)
174
- types = MIME::Types.type_for(uri)
178
+ types = /^data:/.match(uri) ? datauri2mime(uri) : MIME::Types.type_for(uri)
179
+ type = types.first.to_s
180
+ uri = uri.sub(%r{^data:image/\*;}, "data:#{type};")
175
181
  { src: @datauriimage ? datauri(uri) : uri,
176
182
  id: Utils::anchor_or_uuid,
177
- mimetype: types.first.to_s,
183
+ mimetype: type,
178
184
  height: node.attr("height") || "auto",
179
185
  width: node.attr("width") || "auto" ,
180
186
  filename: node.attr("filename"),
@@ -182,9 +188,8 @@ module Asciidoctor
182
188
  end
183
189
 
184
190
  def figure_title(node, f)
185
- unless node.title.nil?
186
- f.name { |name| name << node.title }
187
- end
191
+ return if node.title.nil?
192
+ f.name { |name| name << node.title }
188
193
  end
189
194
 
190
195
  def image(node)
@@ -238,11 +243,9 @@ module Asciidoctor
238
243
  end
239
244
 
240
245
  def listing_attrs(node)
241
- {
242
- lang: node.attr("language"),
246
+ { lang: node.attr("language"),
243
247
  id: Utils::anchor_or_uuid(node),
244
- filename: node.attr("filename")
245
- }
248
+ filename: node.attr("filename") }
246
249
  end
247
250
 
248
251
  # NOTE: html escaping is performed by Nokogiri
@@ -16,7 +16,7 @@ module Asciidoctor
16
16
  def textcleanup(result)
17
17
  text = result.flatten.map { |l| l.sub(/\s*$/, "") } * "\n"
18
18
  if !@keepasciimath
19
- text = text.gsub(%r{<stem type="AsciiMath">(.+?)</stem>},
19
+ text = text.gsub(%r{<stem type="AsciiMath">(.+?)</stem>}m,
20
20
  '<amathstem>\1</amathstem>')
21
21
  text = Html2Doc.
22
22
  asciimath_to_mathml(text, ['<amathstem>', "</amathstem>"]).
@@ -243,8 +243,11 @@ module Asciidoctor
243
243
  xmldoc.xpath("//stem[@type = 'MathML']").each do |x|
244
244
  next if x.children.any? { |y| y.element? }
245
245
  math = x.text.gsub(/&lt;/, "<").gsub(/&gt;/, ">").gsub(/&quot;/, '"').
246
- gsub(/&amp;/, "&").gsub(/<[^:\/]+:/, "<").gsub(/<\/[^:]+:/, "</").
247
- gsub(/ xmlns[^>]+/, "").
246
+ gsub(/&apos;/, "'").gsub(/&amp;/, "&").
247
+ gsub(/<[^: \r\n\t\/]+:/, "<").
248
+ gsub(/<\/[^ \r\n\t:]+:/, "</").
249
+ gsub(/ xmlns[^>"']+/, "").
250
+ gsub(/<math /, '<math xmlns="http://www.w3.org/1998/Math/MathML" ').
248
251
  gsub(/<math>/, '<math xmlns="http://www.w3.org/1998/Math/MathML">')
249
252
  x.children = math
250
253
  end
@@ -195,11 +195,12 @@ module Asciidoctor
195
195
 
196
196
  def metadata_getrelation(node, xml, type)
197
197
  docs = node.attr(type) || return
198
- docs.split(/,/).each do |d|
198
+ docs.split(/;\s*/).each do |d|
199
+ id = d.split(/,\s*/)
199
200
  xml.relation **{ type: relation_normalise(type) } do |r|
200
201
  fetch_ref(r, d, nil, {}) or r.bibitem do |b|
201
- b.title "--"
202
- b.docidentifier d
202
+ b.title id[1] ? id[1] : "--"
203
+ b.docidentifier id[0]
203
204
  end
204
205
  end
205
206
  end
@@ -16,8 +16,7 @@ module Asciidoctor
16
16
  end
17
17
  end
18
18
 
19
- class DeprecatedTermInlineMacro <
20
- Asciidoctor::Extensions::InlineMacroProcessor
19
+ class DeprecatedTermInlineMacro < Asciidoctor::Extensions::InlineMacroProcessor
21
20
  use_dsl
22
21
  named :deprecated
23
22
  parse_content_as :text
@@ -41,6 +40,32 @@ module Asciidoctor
41
40
  end
42
41
  end
43
42
 
43
+ class HTML5RubyMacro < Asciidoctor::Extensions::InlineMacroProcessor
44
+ use_dsl
45
+ named :ruby
46
+ parse_content_as :text
47
+
48
+ option :pos_attrs, %w(rpbegin rt rpend)
49
+
50
+ def process(parent, target, attributes)
51
+ rpbegin = '('
52
+ rpend = ')'
53
+ if attributes.size == 1 and attributes.key?("text")
54
+ rt = attributes["text"]
55
+ elsif attributes.size == 2 and attributes.key?(1) and attributes.key?("rpbegin")
56
+ # for example, html5ruby:楽聖少女[がくせいしょうじょ]
57
+ rt = attributes[1]
58
+ rt ||= ""
59
+ else
60
+ rpbegin = attributes['rpbegin']
61
+ rt = attributes['rt']
62
+ rpend = attributes['rpend']
63
+ end
64
+
65
+ %(<ruby>#{target}<rp>#{rpbegin}</rp><rt>#{rt}</rt><rp>#{rpend}</rp></ruby>)
66
+ end
67
+ end
68
+
44
69
  class ToDoAdmonitionBlock < Extensions::BlockProcessor
45
70
  use_dsl
46
71
  named :TODO
@@ -93,7 +118,7 @@ module Asciidoctor
93
118
  # finish erlier then dot, as result png file maybe not created yet after plantuml finish
94
119
  sleep(2) if Gem.win_platform?
95
120
  outfile = parent.image_uri("#{fn}.png")
96
- if outfile == "#{fn}.png"
121
+ if outfile == "#{fn}.png"
97
122
  (Pathname.new("plantuml") + "#{fn}.png").to_s
98
123
  else
99
124
  FileUtils.mv (Pathname.new(localdir) + "plantuml" + "#{fn}.png").to_s,