isodoc 2.0.3 → 2.0.4
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/lib/isodoc/presentation_function/image.rb +3 -4
- data/lib/isodoc/presentation_function/inline.rb +7 -1
- data/lib/isodoc/version.rb +1 -1
- data/spec/isodoc/blocks_spec.rb +12 -76
- data/spec/isodoc/inline_spec.rb +37 -0
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1a9645f7c8069398010a6b360e94069382fec990f4d8c2563e2c35ccde801b45
|
4
|
+
data.tar.gz: 3209942625f1f64ba90e9de9dfd1780de61368d227830cbdc36e65046697eb06
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: cdee63b9b9d3e2b0b4b4fa7b1dea74f5faa50c07d5ed3637744f5f52521821554513f3f4812bd57e5de9c0f6c61c4e73005be0d46127f39347f0f19e5912915c
|
7
|
+
data.tar.gz: 4d01286691c228c29100d79f78bb7f819a832fe05a730f56a8416422a1e59eb70c6a900242fb41fd631a63592600f3950e8dbe8079f1731754738a0aed8d6d4c
|
@@ -65,15 +65,14 @@ module IsoDoc
|
|
65
65
|
uri = svg_to_emf_uri(node)
|
66
66
|
ret = svg_to_emf_filename(uri)
|
67
67
|
File.exists?(ret) and return ret
|
68
|
-
exe = inkscape_installed? or
|
68
|
+
exe = inkscape_installed? or raise "Inkscape missing in PATH, unable" \
|
69
|
+
"to convert EMF to SVG. Aborting."
|
69
70
|
uri = Metanorma::Utils::external_path uri
|
70
71
|
exe = Metanorma::Utils::external_path exe
|
71
72
|
system(%(#{exe} --export-type="emf" #{uri})) and
|
72
73
|
return Metanorma::Utils::datauri(ret)
|
73
74
|
|
74
|
-
|
75
|
-
|
76
|
-
nil
|
75
|
+
raise %(Fail on #{exe} --export-type="emf" #{uri})
|
77
76
|
end
|
78
77
|
|
79
78
|
def svg_to_emf_uri(node)
|
@@ -69,7 +69,8 @@ module IsoDoc
|
|
69
69
|
c1 = non_locality_elems(node).select { |c| !c.text? || /\S/.match(c) }
|
70
70
|
return unless c1.empty?
|
71
71
|
|
72
|
-
link = anchor_linkend(node, docid_l10n(node["target"] ||
|
72
|
+
link = anchor_linkend(node, docid_l10n(node["target"] ||
|
73
|
+
expand_citeas(node["citeas"])))
|
73
74
|
link += eref_localities(node.xpath(ns("./locality | ./localityStack")),
|
74
75
|
link, node)
|
75
76
|
non_locality_elems(node).each(&:remove)
|
@@ -78,6 +79,11 @@ module IsoDoc
|
|
78
79
|
# so not <origin bibitemid="ISO7301" citeas="ISO 7301">
|
79
80
|
# <locality type="section"><reference>3.1</reference></locality></origin>
|
80
81
|
|
82
|
+
def expand_citeas(text)
|
83
|
+
text.nil? and return text
|
84
|
+
HTMLEntities.new.decode(text.gsub(/&#x/, "&#"))
|
85
|
+
end
|
86
|
+
|
81
87
|
def eref_localities(refs, target, node)
|
82
88
|
ret = ""
|
83
89
|
refs.each_with_index do |r, i|
|
data/lib/isodoc/version.rb
CHANGED
data/spec/isodoc/blocks_spec.rb
CHANGED
@@ -925,87 +925,23 @@ RSpec.describe IsoDoc do
|
|
925
925
|
.to receive(:inkscape_installed?)
|
926
926
|
|
927
927
|
input = <<~INPUT
|
928
|
-
|
929
|
-
<preface><foreword>
|
930
|
-
<figure id="figureA-1">
|
931
|
-
<image src="spec/assets/odf.svg" mimetype="image/svg+xml"/>
|
932
|
-
<image src="spec/assets/odf1.svg" mimetype="image/svg+xml"/>
|
933
|
-
<image src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxMDAgMTAwIj4KICA8Y2lyY2xlIGZpbGw9IiMwMDkiIHI9IjQ1IiBjeD0iNTAiIGN5PSI1MCIvPgogIDxwYXRoIGQ9Ik0zMywyNkg3OEEzNywzNywwLDAsMSwzMyw4M1Y1N0g1OVY0M0gzM1oiIGZpbGw9IiNGRkYiLz4KPC9zdmc+Cg==" id="_d3731866-1a07-435a-a6c2-1acd41023a4e" mimetype="image/svg+xml" height="auto" width="auto"/>
|
934
|
-
</figure>
|
935
|
-
</foreword></preface>
|
936
|
-
</iso-standard>
|
937
|
-
INPUT
|
938
|
-
presxml = <<~OUTPUT
|
939
|
-
<iso-standard xmlns='http://riboseinc.com/isoxml' type='presentation'>
|
928
|
+
<iso-standard xmlns="http://riboseinc.com/isoxml">
|
940
929
|
<preface>
|
941
|
-
<foreword
|
942
|
-
<figure id=
|
943
|
-
<
|
944
|
-
<image src=
|
945
|
-
|
946
|
-
</image>
|
947
|
-
<image src='spec/assets/odf1.svg' mimetype='image/svg+xml'/>
|
948
|
-
<image src='' id='_d3731866-1a07-435a-a6c2-1acd41023a4e' mimetype='image/svg+xml' height='auto' width='auto'>
|
949
|
-
<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'>
|
950
|
-
<circle fill='#009' r='45' cx='50' cy='50'/>
|
951
|
-
<path d='M33,26H78A37,37,0,0,1,33,83V57H59V43H33Z' fill='#FFF'/>
|
952
|
-
</svg>
|
953
|
-
</image>
|
930
|
+
<foreword>
|
931
|
+
<figure id="figureA-1">
|
932
|
+
<image src="spec/assets/odf.svg" mimetype="image/svg+xml"/>
|
933
|
+
<image src="spec/assets/odf1.svg" mimetype="image/svg+xml"/>
|
934
|
+
<image src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxMDAgMTAwIj4KICA8Y2lyY2xlIGZpbGw9IiMwMDkiIHI9IjQ1IiBjeD0iNTAiIGN5PSI1MCIvPgogIDxwYXRoIGQ9Ik0zMywyNkg3OEEzNywzNywwLDAsMSwzMyw4M1Y1N0g1OVY0M0gzM1oiIGZpbGw9IiNGRkYiLz4KPC9zdmc+Cg==" id="_d3731866-1a07-435a-a6c2-1acd41023a4e" mimetype="image/svg+xml" height="auto" width="auto"/>
|
954
935
|
</figure>
|
955
936
|
</foreword>
|
956
937
|
</preface>
|
957
938
|
</iso-standard>
|
958
|
-
|
959
|
-
|
960
|
-
|
961
|
-
|
962
|
-
|
963
|
-
|
964
|
-
</head>
|
965
|
-
<body lang='EN-US' link='blue' vlink='#954F72'>
|
966
|
-
<div class='WordSection1'>
|
967
|
-
<p> </p>
|
968
|
-
</div>
|
969
|
-
<p>
|
970
|
-
<br clear='all' class='section'/>
|
971
|
-
</p>
|
972
|
-
<div class='WordSection2'>
|
973
|
-
<p>
|
974
|
-
<br clear='all' style='mso-special-character:line-break;page-break-before:always'/>
|
975
|
-
</p>
|
976
|
-
<div>
|
977
|
-
<h1 class='ForewordTitle'>Foreword</h1>
|
978
|
-
<div id='figureA-1' class='figure'>
|
979
|
-
<img src='spec/assets/odf.emf'/>
|
980
|
-
<img src='spec/assets/odf1.svg'/>
|
981
|
-
<img src='' height='auto' width='auto'/>
|
982
|
-
<p class='FigureTitle' style='text-align:center;'>Figure 1</p>
|
983
|
-
</div>
|
984
|
-
</div>
|
985
|
-
<p> </p>
|
986
|
-
</div>
|
987
|
-
<p>
|
988
|
-
<br clear='all' class='section'/>
|
989
|
-
</p>
|
990
|
-
<div class='WordSection3'>
|
991
|
-
<p class='zzSTDTitle1'/>
|
992
|
-
</div>
|
993
|
-
</body>
|
994
|
-
</html>
|
995
|
-
OUTPUT
|
996
|
-
expect(xmlpp(IsoDoc::PresentationXMLConvert.new({})
|
997
|
-
.convert("test", input, true)
|
998
|
-
.gsub(/</, "<")
|
999
|
-
.gsub(%r{data:application/x-msmetafile[^"']+},
|
1000
|
-
"data:application/x-msmetafile")))
|
1001
|
-
.to be_equivalent_to xmlpp(presxml
|
1002
|
-
.gsub(%r{data:application/x-msmetafile[^"']+},
|
1003
|
-
"data:application/x-msmetafile"))
|
1004
|
-
expect(xmlpp(strip_guid(IsoDoc::WordConvert.new({})
|
1005
|
-
.convert("test", presxml, true)
|
1006
|
-
.gsub(/['"][^'".]+(?<!odf1)(?<!odf)\.svg['"]/, "'_.svg'")
|
1007
|
-
.gsub(/mso-bookmark:_Ref\d+/, "mso-bookmark:_Ref"))))
|
1008
|
-
.to be_equivalent_to xmlpp(output)
|
939
|
+
INPUT
|
940
|
+
expect do
|
941
|
+
IsoDoc::PresentationXMLConvert.new({})
|
942
|
+
.convert("test", input, true)
|
943
|
+
end.to raise_error("Inkscape missing in PATH, unable" \
|
944
|
+
"to convert EMF to SVG. Aborting.")
|
1009
945
|
end
|
1010
946
|
end
|
1011
947
|
|
data/spec/isodoc/inline_spec.rb
CHANGED
@@ -1782,4 +1782,41 @@ RSpec.describe IsoDoc do
|
|
1782
1782
|
expect(xmlpp(IsoDoc::HtmlConvert.new({})
|
1783
1783
|
.convert("test", input, true))).to be_equivalent_to xmlpp(output)
|
1784
1784
|
end
|
1785
|
+
|
1786
|
+
it "processes formatting in eref/@citeas" do
|
1787
|
+
input = <<~INPUT
|
1788
|
+
<itu-standard xmlns="https://www.calconnect.org/standards/itu">
|
1789
|
+
<preface>
|
1790
|
+
<foreword id='_' obligation='informative'>
|
1791
|
+
<title>Foreword</title>
|
1792
|
+
<p id='_'>
|
1793
|
+
<eref type='inline' bibitemid='iso124' citeas='[&#x3c;strong&#x3e;A&#x3c;/strong&#x3e;.&#x3c;fn reference=&#x22;1&#x22;&#x3e;&#xa; &#x3c;p&#x3e;hello&#x3c;/p&#x3e;&#xa;&#x3c;/fn&#x3e;]'/>
|
1794
|
+
</p>
|
1795
|
+
</foreword>
|
1796
|
+
</preface>
|
1797
|
+
</itu-standard>
|
1798
|
+
INPUT
|
1799
|
+
output = <<~OUTPUT
|
1800
|
+
<itu-standard xmlns='https://www.calconnect.org/standards/itu' type='presentation'>
|
1801
|
+
<preface>
|
1802
|
+
<foreword id='_' obligation='informative' displayorder='1'>
|
1803
|
+
<title>Foreword</title>
|
1804
|
+
<p id='_'>
|
1805
|
+
<eref type='inline' bibitemid='iso124' citeas='[&#x3c;strong&#x3e;A&#x3c;/strong&#x3e;.&#x3c;fn reference=&#x22;1&#x22;&#x3e;&#xa; &#x3c;p&#x3e;hello&#x3c;/p&#x3e;&#xa;&#x3c;/fn&#x3e;]'>
|
1806
|
+
[
|
1807
|
+
<strong>A</strong>
|
1808
|
+
.
|
1809
|
+
<fn reference='1'>
|
1810
|
+
<p>hello</p>
|
1811
|
+
</fn>
|
1812
|
+
]
|
1813
|
+
</eref>
|
1814
|
+
</p>
|
1815
|
+
</foreword>
|
1816
|
+
</preface>
|
1817
|
+
</itu-standard>
|
1818
|
+
OUTPUT
|
1819
|
+
expect(xmlpp(IsoDoc::PresentationXMLConvert.new({})
|
1820
|
+
.convert("test", input, true))).to be_equivalent_to xmlpp(output)
|
1821
|
+
end
|
1785
1822
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: isodoc
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.0.
|
4
|
+
version: 2.0.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ribose Inc.
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-02-
|
11
|
+
date: 2022-02-21 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: asciimath
|