isodoc 1.6.4 → 1.6.5
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.github/workflows/rake.yml +1 -1
- data/.rubocop.yml +1 -1
- data/isodoc.gemspec +2 -1
- data/lib/isodoc-yaml/i18n-en.yaml +1 -0
- data/lib/isodoc-yaml/i18n-fr.yaml +1 -0
- data/lib/isodoc-yaml/i18n-zh-Hans.yaml +1 -0
- data/lib/isodoc/convert.rb +3 -1
- data/lib/isodoc/function/blocks.rb +5 -4
- data/lib/isodoc/function/references.rb +32 -51
- data/lib/isodoc/function/section.rb +0 -1
- data/lib/isodoc/function/table.rb +21 -22
- data/lib/isodoc/function/terms.rb +6 -7
- data/lib/isodoc/gem_tasks.rb +8 -9
- data/lib/isodoc/html_convert.rb +5 -1
- data/lib/isodoc/html_function/comments.rb +12 -12
- data/lib/isodoc/html_function/html.rb +2 -2
- data/lib/isodoc/html_function/postprocess.rb +191 -185
- data/lib/isodoc/html_function/sectionsplit.rb +230 -0
- data/lib/isodoc/metadata.rb +22 -20
- data/lib/isodoc/metadata_contributor.rb +31 -28
- data/lib/isodoc/presentation_function/section.rb +39 -1
- data/lib/isodoc/presentation_xml_convert.rb +1 -0
- data/lib/isodoc/version.rb +1 -1
- data/lib/isodoc/xref.rb +2 -0
- data/spec/isodoc/blocks_spec.rb +184 -447
- data/spec/isodoc/cleanup_spec.rb +40 -42
- data/spec/isodoc/i18n_spec.rb +694 -821
- data/spec/isodoc/inline_spec.rb +43 -42
- data/spec/isodoc/metadata_spec.rb +384 -379
- data/spec/isodoc/postproc_spec.rb +53 -6
- data/spec/isodoc/presentation_xml_spec.rb +4 -4
- data/spec/isodoc/ref_spec.rb +5 -5
- data/spec/isodoc/section_spec.rb +216 -199
- data/spec/isodoc/sectionsplit_spec.rb +190 -0
- data/spec/isodoc/table_spec.rb +41 -42
- data/spec/isodoc/terms_spec.rb +1 -1
- data/spec/isodoc/xref_spec.rb +974 -932
- metadata +19 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c645dd63676e96fc3568d9a06b4570a7a33f5df4c330f2bdcdf318220aa1459c
|
4
|
+
data.tar.gz: b63c3a8db1307b3987c5bc1f214d27b2bff20b2a5bd182834b2afd267d9b3598
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: bb2781a07832e45ddb5d85ef75d56f50c114f67b05cc9c1643b677bea19a1a977e020c45b96eff2ec3c729527e43934f88a0a5722defede0ddba92e5c3a0e435
|
7
|
+
data.tar.gz: 806fd47fa7b99aa392e85e2b477ce4211aff48eead6ef3c0e1622f81082a336d05673c4a35286a556b8c912ca8601f784b9e517fc21965c83332988ac28d742f
|
data/.github/workflows/rake.yml
CHANGED
data/.rubocop.yml
CHANGED
data/isodoc.gemspec
CHANGED
@@ -26,7 +26,7 @@ Gem::Specification.new do |spec|
|
|
26
26
|
spec.require_paths = ["lib"]
|
27
27
|
spec.files = `git ls-files`.split("\n")
|
28
28
|
spec.test_files = `git ls-files -- {spec}/*`.split("\n")
|
29
|
-
spec.required_ruby_version = Gem::Requirement.new(">= 2.
|
29
|
+
spec.required_ruby_version = Gem::Requirement.new(">= 2.5.0")
|
30
30
|
|
31
31
|
spec.add_dependency "asciimath"
|
32
32
|
spec.add_dependency "html2doc", "~> 1.1.1"
|
@@ -50,5 +50,6 @@ Gem::Specification.new do |spec|
|
|
50
50
|
spec.add_development_dependency "rubocop", "~> 1.5.2"
|
51
51
|
spec.add_development_dependency "sassc", "~> 2.4.0"
|
52
52
|
spec.add_development_dependency "simplecov", "~> 0.15"
|
53
|
+
spec.add_development_dependency "metanorma-iso"
|
53
54
|
spec.add_development_dependency "timecop", "~> 0.9"
|
54
55
|
end
|
data/lib/isodoc/convert.rb
CHANGED
@@ -37,6 +37,7 @@ module IsoDoc
|
|
37
37
|
# datauriimage: Encode images in HTML output as data URIs
|
38
38
|
# break_up_urls_in_tables: whether to insert spaces in URLs in tables
|
39
39
|
# every 40-odd chars
|
40
|
+
# sectionsplit: split up HTML output on sections
|
40
41
|
# bare: do not insert any prefatory material (coverpage, boilerplate)
|
41
42
|
def initialize(options)
|
42
43
|
@libdir ||= File.dirname(__FILE__) # rubocop:disable Lint/DisjunctiveAssignmentInConstructor
|
@@ -73,6 +74,7 @@ module IsoDoc
|
|
73
74
|
@datauriimage = options[:datauriimage]
|
74
75
|
@suppressheadingnumbers = options[:suppressheadingnumbers]
|
75
76
|
@break_up_urls_in_tables = options[:break_up_urls_in_tables] == "true"
|
77
|
+
@sectionsplit = options[:sectionsplit] == "true"
|
76
78
|
@bare = options[:bare]
|
77
79
|
@termdomain = ""
|
78
80
|
@termexample = false
|
@@ -154,7 +156,7 @@ module IsoDoc
|
|
154
156
|
[docxml, filename, dir]
|
155
157
|
end
|
156
158
|
|
157
|
-
def convert(input_filename, file = nil, debug = false,
|
159
|
+
def convert(input_filename, file = nil, debug = false,
|
158
160
|
output_filename = nil)
|
159
161
|
file = File.read(input_filename, encoding: "utf-8") if file.nil?
|
160
162
|
@openmathdelim, @closemathdelim = extract_delims(file)
|
@@ -14,10 +14,11 @@ module IsoDoc::Function
|
|
14
14
|
end
|
15
15
|
end
|
16
16
|
|
17
|
-
def figure_name_parse(
|
18
|
-
return if name.nil?
|
17
|
+
def figure_name_parse(_node, div, name)
|
18
|
+
return if name.nil?
|
19
|
+
|
19
20
|
div.p **{ class: "FigureTitle", style: "text-align:center;" } do |p|
|
20
|
-
name.children.each { |n| parse(n,
|
21
|
+
name.children.each { |n| parse(n, p) }
|
21
22
|
end
|
22
23
|
end
|
23
24
|
|
@@ -61,7 +62,7 @@ module IsoDoc::Function
|
|
61
62
|
end
|
62
63
|
|
63
64
|
def sourcecode_name_parse(node, div, name)
|
64
|
-
return if name.nil?
|
65
|
+
return if name.nil?
|
65
66
|
|
66
67
|
div.p **{ class: "SourceTitle", style: "text-align:center;" } do |p|
|
67
68
|
name.children.each { |n| parse(n, p) }
|
@@ -10,9 +10,9 @@ module IsoDoc::Function
|
|
10
10
|
end
|
11
11
|
|
12
12
|
# TODO generate formatted ref if not present
|
13
|
-
def nonstd_bibitem(list,
|
14
|
-
list.p **attr_code(iso_bibitem_entry_attrs(
|
15
|
-
ids = bibitem_ref_code(
|
13
|
+
def nonstd_bibitem(list, bib, ordinal, biblio)
|
14
|
+
list.p **attr_code(iso_bibitem_entry_attrs(bib, biblio)) do |ref|
|
15
|
+
ids = bibitem_ref_code(bib)
|
16
16
|
identifiers = render_identifier(ids)
|
17
17
|
if biblio then ref_entry_code(ref, ordinal, identifiers, ids)
|
18
18
|
else
|
@@ -20,21 +20,21 @@ module IsoDoc::Function
|
|
20
20
|
ref << ", #{identifiers[1]}" if identifiers[0] && identifiers[1]
|
21
21
|
end
|
22
22
|
ref << ", " unless biblio && !identifiers[1]
|
23
|
-
reference_format(
|
23
|
+
reference_format(bib, ref)
|
24
24
|
end
|
25
25
|
end
|
26
26
|
|
27
|
-
def std_bibitem_entry(list,
|
28
|
-
list.p **attr_code(iso_bibitem_entry_attrs(
|
29
|
-
identifiers = render_identifier(bibitem_ref_code(
|
27
|
+
def std_bibitem_entry(list, bib, ordinal, biblio)
|
28
|
+
list.p **attr_code(iso_bibitem_entry_attrs(bib, biblio)) do |ref|
|
29
|
+
identifiers = render_identifier(bibitem_ref_code(bib))
|
30
30
|
if biblio then ref_entry_code(ref, ordinal, identifiers, nil)
|
31
31
|
else
|
32
32
|
ref << (identifiers[0] || identifiers[1]).to_s
|
33
33
|
ref << ", #{identifiers[1]}" if identifiers[0] && identifiers[1]
|
34
34
|
end
|
35
|
-
date_note_process(
|
35
|
+
date_note_process(bib, ref)
|
36
36
|
ref << ", " unless biblio && !identifiers[1]
|
37
|
-
reference_format(
|
37
|
+
reference_format(bib, ref)
|
38
38
|
end
|
39
39
|
end
|
40
40
|
|
@@ -45,16 +45,16 @@ module IsoDoc::Function
|
|
45
45
|
t[1] and r << (t[1]).to_s
|
46
46
|
end
|
47
47
|
|
48
|
-
def pref_ref_code(
|
49
|
-
|
48
|
+
def pref_ref_code(bib)
|
49
|
+
bib.at(ns("./docidentifier[not(@type = 'DOI' or @type = 'metanorma' "\
|
50
50
|
"or @type = 'ISSN' or @type = 'ISBN' or @type = 'rfc-anchor')]"))
|
51
51
|
end
|
52
52
|
|
53
53
|
# returns [metanorma, non-metanorma, DOI/ISSN/ISBN] identifiers
|
54
|
-
def bibitem_ref_code(
|
55
|
-
id =
|
56
|
-
id1 = pref_ref_code(
|
57
|
-
id2 =
|
54
|
+
def bibitem_ref_code(bib)
|
55
|
+
id = bib.at(ns("./docidentifier[@type = 'metanorma']"))
|
56
|
+
id1 = pref_ref_code(bib)
|
57
|
+
id2 = bib.at(ns("./docidentifier[@type = 'DOI' or @type = 'ISSN' or "\
|
58
58
|
"@type = 'ISBN']"))
|
59
59
|
return [id, id1, id2] if id || id1 || id2
|
60
60
|
|
@@ -72,20 +72,10 @@ module IsoDoc::Function
|
|
72
72
|
num
|
73
73
|
end
|
74
74
|
|
75
|
-
def render_identifier(
|
76
|
-
[
|
77
|
-
|
78
|
-
|
79
|
-
nil
|
80
|
-
else
|
81
|
-
docid_prefix(id[1]["type"], id[1].text.sub(/^\[/, "").sub(/\]$/, ""))
|
82
|
-
end,
|
83
|
-
if id[2].nil?
|
84
|
-
nil
|
85
|
-
else
|
86
|
-
docid_prefix(id[2]["type"], id[2].text.sub(/^\[/, "").sub(/\]$/, ""))
|
87
|
-
end,
|
88
|
-
]
|
75
|
+
def render_identifier(ident)
|
76
|
+
[bracket_if_num(ident[0]),
|
77
|
+
ident[1].nil? ? nil : ident[1].text.sub(/^\[/, "").sub(/\]$/, ""),
|
78
|
+
ident[2].nil? ? nil : ident[2].text.sub(/^\[/, "").sub(/\]$/, "")]
|
89
79
|
end
|
90
80
|
|
91
81
|
def docid_prefix(prefix, docid)
|
@@ -97,19 +87,20 @@ module IsoDoc::Function
|
|
97
87
|
def omit_docid_prefix(prefix)
|
98
88
|
return true if prefix.nil? || prefix.empty?
|
99
89
|
|
100
|
-
%w(ISO IEC IEV ITU W3C csd metanorma rfc-anchor)
|
90
|
+
%w(ISO IEC IEV ITU W3C csd metanorma repository rfc-anchor)
|
91
|
+
.include? prefix
|
101
92
|
end
|
102
93
|
|
103
|
-
def date_note_process(
|
104
|
-
date_note =
|
94
|
+
def date_note_process(bib, ref)
|
95
|
+
date_note = bib.at(ns("./note[@type = 'Unpublished-Status']"))
|
105
96
|
return if date_note.nil?
|
106
97
|
|
107
98
|
date_note.children.first.replace("<p>#{date_note.content}</p>")
|
108
99
|
footnote_parse(date_note, ref)
|
109
100
|
end
|
110
101
|
|
111
|
-
def iso_bibitem_entry_attrs(
|
112
|
-
{ id:
|
102
|
+
def iso_bibitem_entry_attrs(bib, biblio)
|
103
|
+
{ id: bib["id"], class: biblio ? "Biblio" : "NormRef" }
|
113
104
|
end
|
114
105
|
|
115
106
|
def iso_title(bib)
|
@@ -130,22 +121,21 @@ module IsoDoc::Function
|
|
130
121
|
insert_tab(ref, 1)
|
131
122
|
end
|
132
123
|
|
133
|
-
def reference_format(bib,
|
124
|
+
def reference_format(bib, out)
|
134
125
|
if ftitle = bib.at(ns("./formattedref"))
|
135
|
-
ftitle&.children&.each { |n| parse(n,
|
126
|
+
ftitle&.children&.each { |n| parse(n, out) }
|
136
127
|
else
|
137
|
-
|
138
|
-
|
139
|
-
title&.children&.each { |n| parse(n, i) }
|
128
|
+
out.i do |i|
|
129
|
+
iso_title(bib)&.children&.each { |n| parse(n, i) }
|
140
130
|
end
|
141
131
|
end
|
142
132
|
end
|
143
133
|
|
144
134
|
def is_standard(bib)
|
145
135
|
ret = false
|
136
|
+
drop = %w(metanorma DOI ISSN ISBN)
|
146
137
|
bib.xpath(ns("./docidentifier")).each do |id|
|
147
|
-
next if id["type"].nil? ||
|
148
|
-
%w(metanorma DOI ISSN ISBN).include?(id["type"])
|
138
|
+
next if id["type"].nil? || drop.include?(id["type"])
|
149
139
|
|
150
140
|
ret = true
|
151
141
|
end
|
@@ -180,8 +170,7 @@ module IsoDoc::Function
|
|
180
170
|
clause_name(num, f.at(ns("./title")), div, nil)
|
181
171
|
if f.name == "clause"
|
182
172
|
f.elements.each { |e| parse(e, div) unless e.name == "title" }
|
183
|
-
else
|
184
|
-
biblio_list(f, div, false)
|
173
|
+
else biblio_list(f, div, false)
|
185
174
|
end
|
186
175
|
end
|
187
176
|
num
|
@@ -212,13 +201,5 @@ module IsoDoc::Function
|
|
212
201
|
biblio_list(node, div, true)
|
213
202
|
end
|
214
203
|
end
|
215
|
-
|
216
|
-
def format_ref(ref, prefix, _isopub, _date, _allparts)
|
217
|
-
ref = docid_prefix(prefix, ref)
|
218
|
-
return "[#{ref}]" if ref && /^\d+$/.match(ref) && !prefix &&
|
219
|
-
!/^\[.*\]$/.match(ref)
|
220
|
-
|
221
|
-
ref
|
222
|
-
end
|
223
204
|
end
|
224
205
|
end
|
@@ -165,7 +165,6 @@ module IsoDoc::Function
|
|
165
165
|
out.div **attr_code(id: f["id"]) do |s|
|
166
166
|
clause_name(nil, f.at(ns("./title")) || @i18n.foreword, s,
|
167
167
|
{ class: "ForewordTitle" })
|
168
|
-
# s.h1(**{ class: "ForewordTitle" }) { |h1| h1 << @i18n.foreword }
|
169
168
|
f.elements.each { |e| parse(e, s) unless e.name == "title" }
|
170
169
|
end
|
171
170
|
end
|
@@ -1,17 +1,16 @@
|
|
1
1
|
module IsoDoc::Function
|
2
2
|
module Table
|
3
|
-
|
4
3
|
def table_title_parse(node, out)
|
5
4
|
name = node.at(ns("./name")) or return
|
6
5
|
out.p **{ class: "TableTitle", style: "text-align:center;" } do |p|
|
7
|
-
name
|
6
|
+
name&.children&.each { |n| parse(n, p) }
|
8
7
|
end
|
9
8
|
end
|
10
9
|
|
11
|
-
def thead_parse(node,
|
10
|
+
def thead_parse(node, table)
|
12
11
|
thead = node.at(ns("./thead"))
|
13
12
|
if thead
|
14
|
-
|
13
|
+
table.thead do |h|
|
15
14
|
thead.element_children.each_with_index do |n, i|
|
16
15
|
tr_parse(n, h, i, thead.element_children.size, true)
|
17
16
|
end
|
@@ -19,19 +18,19 @@ module IsoDoc::Function
|
|
19
18
|
end
|
20
19
|
end
|
21
20
|
|
22
|
-
def tbody_parse(node,
|
21
|
+
def tbody_parse(node, table)
|
23
22
|
tbody = node.at(ns("./tbody")) || return
|
24
|
-
|
23
|
+
table.tbody do |h|
|
25
24
|
tbody.element_children.each_with_index do |n, i|
|
26
25
|
tr_parse(n, h, i, tbody.element_children.size, false)
|
27
26
|
end
|
28
27
|
end
|
29
28
|
end
|
30
29
|
|
31
|
-
def tfoot_parse(node,
|
30
|
+
def tfoot_parse(node, table)
|
32
31
|
tfoot = node.at(ns("./tfoot"))
|
33
32
|
if tfoot
|
34
|
-
|
33
|
+
table.tfoot do |h|
|
35
34
|
tfoot.element_children.each_with_index do |n, i|
|
36
35
|
tr_parse(n, h, i, tfoot.element_children.size, false)
|
37
36
|
end
|
@@ -45,23 +44,23 @@ module IsoDoc::Function
|
|
45
44
|
id: node["id"],
|
46
45
|
class: "MsoISOTable",
|
47
46
|
style: "border-width:1px;border-spacing:0;#{width}#{keep_style(node)}",
|
48
|
-
title: node["alt"]
|
47
|
+
title: node["alt"],
|
49
48
|
)
|
50
49
|
end
|
51
50
|
|
52
|
-
def tcaption(node,
|
51
|
+
def tcaption(node, table)
|
53
52
|
return unless node["summary"]
|
54
53
|
|
55
|
-
|
54
|
+
table.caption do |c|
|
56
55
|
c.span **{ style: "display:none" } do |s|
|
57
56
|
s << node["summary"]
|
58
57
|
end
|
59
58
|
end
|
60
59
|
end
|
61
60
|
|
62
|
-
def colgroup(node,
|
61
|
+
def colgroup(node, table)
|
63
62
|
colgroup = node.at(ns("./colgroup")) or return
|
64
|
-
|
63
|
+
table.colgroup do |cg|
|
65
64
|
colgroup.xpath(ns("./col")).each do |c|
|
66
65
|
cg.col **{ style: "width: #{c['width']};" }
|
67
66
|
end
|
@@ -90,19 +89,19 @@ module IsoDoc::Function
|
|
90
89
|
# border-left:#{col.zero? ? "#{SW} 1.5pt;" : "none;"}
|
91
90
|
# border-right:#{SW} #{col == totalcols && !header ? "1.5" : "1.0"}pt;
|
92
91
|
|
93
|
-
def make_tr_attr(
|
94
|
-
style =
|
95
|
-
|
96
|
-
|
97
|
-
rowmax =
|
92
|
+
def make_tr_attr(cell, row, totalrows, header)
|
93
|
+
style = cell.name == "th" ? "font-weight:bold;" : ""
|
94
|
+
cell["align"] and style += "text-align:#{cell['align']};"
|
95
|
+
cell["valign"] and style += "vertical-align:#{cell['valign']};"
|
96
|
+
rowmax = cell["rowspan"] ? row + cell["rowspan"].to_i - 1 : row
|
98
97
|
style += <<~STYLE
|
99
98
|
border-top:#{row.zero? ? "#{SW} 1.5pt;" : 'none;'}
|
100
99
|
border-bottom:#{SW} #{rowmax == totalrows ? '1.5' : '1.0'}pt;
|
101
100
|
STYLE
|
102
|
-
header and scope = (
|
103
|
-
!header and
|
104
|
-
|
105
|
-
{ rowspan:
|
101
|
+
header and scope = (cell["colspan"] ? "colgroup" : "col")
|
102
|
+
!header and cell.name == "th" and scope =
|
103
|
+
(cell["rowspan"] ? "rowgroup" : "row")
|
104
|
+
{ rowspan: cell["rowspan"], colspan: cell["colspan"],
|
106
105
|
style: style.gsub(/\n/, ""), scope: scope }
|
107
106
|
end
|
108
107
|
|
@@ -11,27 +11,27 @@ module IsoDoc::Function
|
|
11
11
|
end
|
12
12
|
|
13
13
|
def deprecated_term_parse(node, out)
|
14
|
-
out.p **{ class: "DeprecatedTerms", style:"text-align:left;" } do |p|
|
14
|
+
out.p **{ class: "DeprecatedTerms", style: "text-align:left;" } do |p|
|
15
15
|
p << l10n("#{@i18n.deprecated}: ")
|
16
16
|
node.children.each { |c| parse(c, p) }
|
17
17
|
end
|
18
18
|
end
|
19
19
|
|
20
20
|
def admitted_term_parse(node, out)
|
21
|
-
out.p **{ class: "AltTerms", style:"text-align:left;" } do |p|
|
21
|
+
out.p **{ class: "AltTerms", style: "text-align:left;" } do |p|
|
22
22
|
node.children.each { |c| parse(c, p) }
|
23
23
|
end
|
24
24
|
end
|
25
25
|
|
26
26
|
def term_parse(node, out)
|
27
|
-
out.p **{ class: "Terms", style:"text-align:left;" } do |p|
|
27
|
+
out.p **{ class: "Terms", style: "text-align:left;" } do |p|
|
28
28
|
node.children.each { |c| parse(c, p) }
|
29
29
|
end
|
30
30
|
end
|
31
31
|
|
32
|
-
def para_then_remainder(first, node,
|
32
|
+
def para_then_remainder(first, node, para, div)
|
33
33
|
if first.name == "p"
|
34
|
-
first.children.each { |n| parse(n,
|
34
|
+
first.children.each { |n| parse(n, para) }
|
35
35
|
node.elements.drop(1).each { |n| parse(n, div) }
|
36
36
|
else
|
37
37
|
node.elements.each { |n| parse(n, div) }
|
@@ -72,7 +72,6 @@ module IsoDoc::Function
|
|
72
72
|
node.children.each { |n| parse(n, out) }
|
73
73
|
end
|
74
74
|
|
75
|
-
def termdocsource_parse(_node, _out)
|
76
|
-
end
|
75
|
+
def termdocsource_parse(_node, _out); end
|
77
76
|
end
|
78
77
|
end
|
data/lib/isodoc/gem_tasks.rb
CHANGED
@@ -12,12 +12,10 @@ module IsoDoc
|
|
12
12
|
|
13
13
|
def install
|
14
14
|
rule ".css" => [proc { |tn| tn.sub(/\.css$/, ".scss") }] do |current_task|
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
notify_borken_compilation(e, current_task)
|
20
|
-
end
|
15
|
+
puts(current_task)
|
16
|
+
compile_scss_task(current_task)
|
17
|
+
rescue StandardError => e
|
18
|
+
notify_borken_compilation(e, current_task)
|
21
19
|
end
|
22
20
|
|
23
21
|
scss_files = Rake::FileList["lib/**/*.scss"]
|
@@ -88,7 +86,7 @@ module IsoDoc
|
|
88
86
|
text
|
89
87
|
.gsub("/* LIQUID_COMMENT", "")
|
90
88
|
.gsub("LIQUID_COMMENT */", "")
|
91
|
-
.gsub('"{{',
|
89
|
+
.gsub('"{{', "{{").gsub('}}"', "}}")
|
92
90
|
end
|
93
91
|
|
94
92
|
def fonts_placeholder
|
@@ -107,7 +105,8 @@ module IsoDoc
|
|
107
105
|
require "sassc"
|
108
106
|
|
109
107
|
isodoc_path = if Gem.loaded_specs["isodoc"]
|
110
|
-
File.join(Gem.loaded_specs["isodoc"].full_gem_path,
|
108
|
+
File.join(Gem.loaded_specs["isodoc"].full_gem_path,
|
109
|
+
"lib", "isodoc")
|
111
110
|
else
|
112
111
|
File.join("lib", "isodoc")
|
113
112
|
end
|
@@ -119,7 +118,7 @@ module IsoDoc
|
|
119
118
|
SassC::Engine.new(fonts_placeholder + sheet_content,
|
120
119
|
syntax: :scss,
|
121
120
|
importer: SasscImporter)
|
122
|
-
|
121
|
+
.render
|
123
122
|
end
|
124
123
|
|
125
124
|
def compile_scss_task(current_task)
|