metanorma 0.3.8 → 0.3.9
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/Gemfile.lock +5 -4
- data/README.adoc +1 -0
- data/lib/metanorma/compile.rb +21 -0
- data/lib/metanorma/version.rb +1 -1
- data/metanorma.gemspec +1 -0
- metadata +16 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8162aba3ac1d75ae0feca29816f033aa318b6ea07198414dca00faf7e1ab0ae2
|
4
|
+
data.tar.gz: 8ffcb1addda80439b364d9c8b502cec40e0ffa3a113b3fb744bc7354b915f5e0
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: cfcf0e8e9eab44f5838aa487fa1e0bcfc0551b3c2601ce40c8a4886a4946ac404e6fe62853939919fcc4c9003458e62014f3cbb9dc8d3ed205b18b984ed0072d
|
7
|
+
data.tar.gz: d4b10d194fd843cf1238442524e6cf41e0ad1486443bdb7e6706899badd835b5f571774db7f4376d0c49b9d75e4ab8f369e1eef80f55c6b6db6dace41fd7f331
|
data/Gemfile.lock
CHANGED
@@ -3,13 +3,14 @@ PATH
|
|
3
3
|
specs:
|
4
4
|
metanorma (0.3.8)
|
5
5
|
asciidoctor
|
6
|
+
htmlentities
|
6
7
|
|
7
8
|
GEM
|
8
9
|
remote: https://rubygems.org/
|
9
10
|
specs:
|
10
11
|
addressable (2.6.0)
|
11
12
|
public_suffix (>= 2.0.2, < 4.0)
|
12
|
-
algoliasearch (1.
|
13
|
+
algoliasearch (1.26.0)
|
13
14
|
httpclient (~> 2.8, >= 2.8.3)
|
14
15
|
json (>= 1.5.1)
|
15
16
|
asciidoctor (1.5.8)
|
@@ -67,15 +68,15 @@ GEM
|
|
67
68
|
thread_safe
|
68
69
|
uuidtools
|
69
70
|
isoics (0.1.7)
|
70
|
-
json (2.
|
71
|
+
json (2.2.0)
|
71
72
|
liquid (4.0.1)
|
72
|
-
metanorma-iso (1.1.
|
73
|
+
metanorma-iso (1.1.2)
|
73
74
|
asciidoctor (~> 1.5.7)
|
74
75
|
iev (~> 0.2.0)
|
75
76
|
isodoc (~> 0.9.8)
|
76
77
|
metanorma-standoc (~> 1.1.0)
|
77
78
|
ruby-jing
|
78
|
-
metanorma-standoc (1.1.
|
79
|
+
metanorma-standoc (1.1.3)
|
79
80
|
asciidoctor (~> 1.5.7)
|
80
81
|
concurrent-ruby
|
81
82
|
html2doc (~> 0.8.0)
|
data/README.adoc
CHANGED
@@ -144,6 +144,7 @@ Usage: metanorma [options] <file>
|
|
144
144
|
-a, --asciimath Preserve AsciiMath in Metanorma XML, instead of transforming it into MathML
|
145
145
|
-R, --relaton FILENAME Export Relaton XML (bibdata) for this document to FILENAME
|
146
146
|
(Also triggered through -x rxl)
|
147
|
+
-S, --sourcecode DIR Export sourcecode fragments from this document to directory DIR
|
147
148
|
-h, --help Show this message
|
148
149
|
----
|
149
150
|
|
data/lib/metanorma/compile.rb
CHANGED
@@ -1,5 +1,6 @@
|
|
1
1
|
require "fileutils"
|
2
2
|
require "nokogiri"
|
3
|
+
require "htmlentities"
|
3
4
|
|
4
5
|
module Metanorma
|
5
6
|
class Compile
|
@@ -15,6 +16,7 @@ module Metanorma
|
|
15
16
|
extensions = get_extensions(options) or return nil
|
16
17
|
(file, isodoc = process_input(filename, options)) or return nil
|
17
18
|
relaton_export(isodoc, options)
|
19
|
+
sourcecode_export(isodoc, options[:sourcecode])
|
18
20
|
process_extensions(extensions, file, isodoc, options)
|
19
21
|
end
|
20
22
|
|
@@ -31,6 +33,7 @@ module Metanorma
|
|
31
33
|
options[:type] ||= o[:type]&.to_sym
|
32
34
|
dir = filename.sub(%r(/[^/]+$), "/")
|
33
35
|
options[:relaton] ||= "#{dir}/#{o[:relaton]}" if o[:relaton]
|
36
|
+
options[:sourcecode] ||= "#{dir}/#{o[:sourcecode]}" if o[:sourcecode]
|
34
37
|
options[:extension_keys] ||= o[:extensions]&.split(/,[ ]*/)&.map(&:to_sym)
|
35
38
|
options[:extension_keys] = nil if options[:extension_keys] == [:all]
|
36
39
|
options[:format] ||= :asciidoc
|
@@ -115,6 +118,24 @@ module Metanorma
|
|
115
118
|
File.open(options[:relaton], "w:UTF-8") { |f| f.write bibdata.to_xml }
|
116
119
|
end
|
117
120
|
|
121
|
+
def clean_sourcecode(xml)
|
122
|
+
xml.xpath(".//callout | .//annotation | .//xmlns:callout | .//xmlns:annotation").each do |x|
|
123
|
+
x.remove
|
124
|
+
end
|
125
|
+
xml.xpath(".//br | .//xmlns:br").each { |x| x.replace("\n") }
|
126
|
+
HTMLEntities.new.decode(xml.children.to_xml)
|
127
|
+
end
|
128
|
+
|
129
|
+
def sourcecode_export(isodoc, dirname)
|
130
|
+
return unless dirname
|
131
|
+
xml = Nokogiri::XML(isodoc)
|
132
|
+
FileUtils.rm_rf dirname
|
133
|
+
FileUtils.mkdir_p dirname
|
134
|
+
xml.xpath("//sourcecode | //xmlns:sourcecode").each_with_index do |s, i|
|
135
|
+
File.open("#{dirname}/#{i}", "w:UTF-8") { |f| f.write clean_sourcecode(s.dup) }
|
136
|
+
end
|
137
|
+
end
|
138
|
+
|
118
139
|
def process_extensions(extensions, file, isodoc, options)
|
119
140
|
extensions.each do |ext|
|
120
141
|
isodoc_options = @processor.extract_options(file)
|
data/lib/metanorma/version.rb
CHANGED
data/metanorma.gemspec
CHANGED
@@ -25,6 +25,7 @@ Gem::Specification.new do |spec|
|
|
25
25
|
spec.required_ruby_version = '>= 2.3.0'
|
26
26
|
|
27
27
|
spec.add_runtime_dependency 'asciidoctor'
|
28
|
+
spec.add_runtime_dependency 'htmlentities'
|
28
29
|
|
29
30
|
spec.add_development_dependency "bundler", "~> 2.0.1"
|
30
31
|
spec.add_development_dependency "rake", "~> 12.0"
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: metanorma
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.3.
|
4
|
+
version: 0.3.9
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ribose Inc.
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2019-
|
11
|
+
date: 2019-02-25 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: asciidoctor
|
@@ -24,6 +24,20 @@ dependencies:
|
|
24
24
|
- - ">="
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: '0'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: htmlentities
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - ">="
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '0'
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - ">="
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '0'
|
27
41
|
- !ruby/object:Gem::Dependency
|
28
42
|
name: bundler
|
29
43
|
requirement: !ruby/object:Gem::Requirement
|