stepmod-utils 0.4.13 → 0.5.0
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/.github/workflows/release.yml +4 -3
- data/exe/stepmod-annotate-all +5 -4
- data/exe/stepmod-convert-express-description +4 -6
- data/exe/stepmod-convert-express-resource +4 -6
- data/exe/stepmod-extract-concepts +5 -4
- data/exe/stepmod-srl-migrate +53 -21
- data/exe/stepmod-validate-express +13 -15
- data/lib/stepmod/utils/change.rb +47 -4
- data/lib/stepmod/utils/change_collection.rb +1 -1
- data/lib/stepmod/utils/change_edition.rb +6 -6
- data/lib/stepmod/utils/changes_extractor.rb +46 -10
- data/lib/stepmod/utils/concept.rb +12 -10
- data/lib/stepmod/utils/converters/blockquote.rb +0 -2
- data/lib/stepmod/utils/converters/def.rb +4 -4
- data/lib/stepmod/utils/converters/dt.rb +1 -1
- data/lib/stepmod/utils/converters/em_express_description.rb +8 -7
- data/lib/stepmod/utils/converters/eqn.rb +8 -6
- data/lib/stepmod/utils/converters/express_figure.rb +1 -1
- data/lib/stepmod/utils/converters/express_g.rb +1 -1
- data/lib/stepmod/utils/converters/express_table.rb +1 -1
- data/lib/stepmod/utils/converters/ext_description.rb +2 -1
- data/lib/stepmod/utils/converters/figure.rb +5 -5
- data/lib/stepmod/utils/converters/module_ref.rb +3 -5
- data/lib/stepmod/utils/converters/module_ref_express_description.rb +3 -7
- data/lib/stepmod/utils/converters/ol.rb +7 -7
- data/lib/stepmod/utils/converters/stepmod_ext_description.rb +3 -3
- data/lib/stepmod/utils/converters/strong.rb +12 -11
- data/lib/stepmod/utils/converters/term.rb +0 -1
- data/lib/stepmod/utils/express_bibdata.rb +6 -2
- data/lib/stepmod/utils/html_to_asciimath.rb +80 -80
- data/lib/stepmod/utils/parsers/mapping_table_parser.rb +31 -0
- data/lib/stepmod/utils/parsers/models/a.rb +40 -0
- data/lib/stepmod/utils/parsers/models/aa.rb +53 -0
- data/lib/stepmod/utils/parsers/models/ae.rb +54 -0
- data/lib/stepmod/utils/parsers/models/aimelt.rb +21 -0
- data/lib/stepmod/utils/parsers/models/alt.rb +19 -0
- data/lib/stepmod/utils/parsers/models/alt_map.rb +46 -0
- data/lib/stepmod/utils/parsers/models/alt_scmap.rb +34 -0
- data/lib/stepmod/utils/parsers/models/b.rb +58 -0
- data/lib/stepmod/utils/parsers/models/bigeqn.rb +55 -0
- data/lib/stepmod/utils/parsers/models/bold.rb +52 -0
- data/lib/stepmod/utils/parsers/models/bom_ref.rb +21 -0
- data/lib/stepmod/utils/parsers/models/constraint.rb +19 -0
- data/lib/stepmod/utils/parsers/models/dd.rb +86 -0
- data/lib/stepmod/utils/parsers/models/description.rb +86 -0
- data/lib/stepmod/utils/parsers/models/dl.rb +24 -0
- data/lib/stepmod/utils/parsers/models/dt.rb +86 -0
- data/lib/stepmod/utils/parsers/models/eqn.rb +57 -0
- data/lib/stepmod/utils/parsers/models/example.rb +84 -0
- data/lib/stepmod/utils/parsers/models/express_extref.rb +21 -0
- data/lib/stepmod/utils/parsers/models/express_ref.rb +21 -0
- data/lib/stepmod/utils/parsers/models/figure.rb +30 -0
- data/lib/stepmod/utils/parsers/models/i.rb +52 -0
- data/lib/stepmod/utils/parsers/models/img.rb +25 -0
- data/lib/stepmod/utils/parsers/models/imgarea.rb +23 -0
- data/lib/stepmod/utils/parsers/models/li.rb +86 -0
- data/lib/stepmod/utils/parsers/models/mapping_table.rb +26 -0
- data/lib/stepmod/utils/parsers/models/module_ref.rb +21 -0
- data/lib/stepmod/utils/parsers/models/note.rb +84 -0
- data/lib/stepmod/utils/parsers/models/ol.rb +25 -0
- data/lib/stepmod/utils/parsers/models/p.rb +56 -0
- data/lib/stepmod/utils/parsers/models/refpath.rb +23 -0
- data/lib/stepmod/utils/parsers/models/refpath_extend.rb +23 -0
- data/lib/stepmod/utils/parsers/models/rules.rb +19 -0
- data/lib/stepmod/utils/parsers/models/sc.rb +36 -0
- data/lib/stepmod/utils/parsers/models/screen.rb +55 -0
- data/lib/stepmod/utils/parsers/models/source.rb +21 -0
- data/lib/stepmod/utils/parsers/models/sub.rb +52 -0
- data/lib/stepmod/utils/parsers/models/sup.rb +52 -0
- data/lib/stepmod/utils/parsers/models/table.rb +29 -0
- data/lib/stepmod/utils/parsers/models/td.rb +98 -0
- data/lib/stepmod/utils/parsers/models/th.rb +98 -0
- data/lib/stepmod/utils/parsers/models/title.rb +53 -0
- data/lib/stepmod/utils/parsers/models/tr.rb +26 -0
- data/lib/stepmod/utils/parsers/models/tt.rb +68 -0
- data/lib/stepmod/utils/parsers/models/ul.rb +21 -0
- data/lib/stepmod/utils/parsers/models.rb +0 -0
- data/lib/stepmod/utils/parsers/types/string_without_indent.rb +17 -0
- data/lib/stepmod/utils/parsers.rb +4 -0
- data/lib/stepmod/utils/smrl_description_converter.rb +2 -1
- data/lib/stepmod/utils/smrl_resource_converter.rb +2 -1
- data/lib/stepmod/utils/stepmod_file_annotator.rb +14 -7
- data/lib/stepmod/utils/term.rb +1 -1
- data/lib/stepmod/utils/terms_extractor.rb +33 -31
- data/lib/stepmod/utils/version.rb +1 -1
- data/stepmod-utils.gemspec +4 -3
- metadata +76 -13
|
@@ -6,12 +6,10 @@ module Stepmod
|
|
|
6
6
|
class Blockquote < Stepmod::Utils::Converters::Base
|
|
7
7
|
def convert(node, state = {})
|
|
8
8
|
id = node["id"]
|
|
9
|
-
anchor = id ? "[[#{id}]]\n" : ""
|
|
10
9
|
cite = node["cite"]
|
|
11
10
|
attrs = cite ? "[quote, #{cite}]\n" : ""
|
|
12
11
|
content = treat_children(node, state).strip
|
|
13
12
|
content = ReverseAdoc.cleaner.remove_newlines(content)
|
|
14
|
-
# "\n\n> " << content.lines.to_a.join('> ') << "\n\n"
|
|
15
13
|
"\n\n#{attrs}____\n" << content.lines.to_a.join("") << "\n____\n\n"
|
|
16
14
|
end
|
|
17
15
|
end
|
|
@@ -50,13 +50,13 @@ module Stepmod
|
|
|
50
50
|
def additional_block(node)
|
|
51
51
|
# Treat first `p` tag as an `alt` block, metanorma/stepmod-utils#9
|
|
52
52
|
first_child_tag = node
|
|
53
|
-
|
|
54
|
-
|
|
53
|
+
.children
|
|
54
|
+
.find { |n| n.is_a?(Nokogiri::XML::Element) }
|
|
55
55
|
return unless can_transform_to_alt?(first_child_tag)
|
|
56
56
|
|
|
57
57
|
result = Stepmod::Utils::Converters::Synonym
|
|
58
|
-
|
|
59
|
-
|
|
58
|
+
.new
|
|
59
|
+
.convert(first_child_tag)
|
|
60
60
|
|
|
61
61
|
first_child_tag.remove
|
|
62
62
|
"#{result}\n\n"
|
|
@@ -13,18 +13,19 @@ module Stepmod
|
|
|
13
13
|
def italic_converted(node, state)
|
|
14
14
|
cloned_node = node.clone
|
|
15
15
|
equations = extract_equations(cloned_node)
|
|
16
|
-
content = treat_children(cloned_node,
|
|
16
|
+
content = treat_children(cloned_node,
|
|
17
|
+
state.merge(already_italic: true))
|
|
17
18
|
equation_content = equations.map do |equation|
|
|
18
19
|
treat(equation, state.merge(equation: true, already_italic: true))
|
|
19
20
|
end
|
|
20
21
|
|
|
21
22
|
content = if state[:equation] && state[:convert_bold_and_italics]
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
23
|
+
"ii(#{content.strip})"
|
|
24
|
+
elsif content.strip.empty? || state[:already_italic] || state[:equation]
|
|
25
|
+
content
|
|
26
|
+
else
|
|
27
|
+
"#{content[/^\s*/]}_#{content.strip}_#{content[/\s*$/]}"
|
|
28
|
+
end
|
|
28
29
|
|
|
29
30
|
[content, equation_content].compact.join("")
|
|
30
31
|
end
|
|
@@ -26,8 +26,8 @@ module Stepmod
|
|
|
26
26
|
|
|
27
27
|
def definition_node?(node)
|
|
28
28
|
first_strong_node = node
|
|
29
|
-
|
|
30
|
-
|
|
29
|
+
.children
|
|
30
|
+
.find do |n|
|
|
31
31
|
return false if !n.text? && n.name != "b"
|
|
32
32
|
|
|
33
33
|
n.name == "b"
|
|
@@ -39,8 +39,8 @@ module Stepmod
|
|
|
39
39
|
|
|
40
40
|
def definition_converted(cloned_node, state)
|
|
41
41
|
first_strong_node = cloned_node
|
|
42
|
-
|
|
43
|
-
|
|
42
|
+
.children
|
|
43
|
+
.find do |n|
|
|
44
44
|
return false if !n.text? && n.name != "b"
|
|
45
45
|
|
|
46
46
|
n.name == "b"
|
|
@@ -56,7 +56,8 @@ module Stepmod
|
|
|
56
56
|
|
|
57
57
|
def stem_converted(cloned_node, state)
|
|
58
58
|
remove_tags_not_in_context(cloned_node) unless state[:convert_bold_and_italics]
|
|
59
|
-
internal_content = treat_children(cloned_node,
|
|
59
|
+
internal_content = treat_children(cloned_node,
|
|
60
|
+
state.merge(equation: true))
|
|
60
61
|
content = Stepmod::Utils::HtmlToAsciimath.new.call(internal_content)
|
|
61
62
|
res = <<~TEMPLATE
|
|
62
63
|
#{source_type_comment(cloned_node)}
|
|
@@ -107,7 +108,8 @@ module Stepmod
|
|
|
107
108
|
end
|
|
108
109
|
|
|
109
110
|
def log_equation(node, state, equation_converted)
|
|
110
|
-
equation_converted_with_bold_and_italics = stem_converted(node.clone,
|
|
111
|
+
equation_converted_with_bold_and_italics = stem_converted(node.clone,
|
|
112
|
+
state.merge(convert_bold_and_italics: true))
|
|
111
113
|
|
|
112
114
|
return if equation_converted_with_bold_and_italics == equation_converted
|
|
113
115
|
|
|
@@ -3,7 +3,8 @@ module Stepmod
|
|
|
3
3
|
module Converters
|
|
4
4
|
class ExtDescription < Stepmod::Utils::Converters::Base
|
|
5
5
|
def convert(node, state = {})
|
|
6
|
-
state = state.merge(schema_name: node["linkend"],
|
|
6
|
+
state = state.merge(schema_name: node["linkend"],
|
|
7
|
+
non_flanking_whitesapce: true)
|
|
7
8
|
child_text = treat_children(node, state).strip
|
|
8
9
|
|
|
9
10
|
<<~TEMPLATE
|
|
@@ -20,11 +20,11 @@ module Stepmod
|
|
|
20
20
|
return "" if state[:no_notes_examples]
|
|
21
21
|
|
|
22
22
|
# Set ID to "figure-id" in case of conflicts
|
|
23
|
-
node[
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
23
|
+
node["id"] = if node["id"]
|
|
24
|
+
self.class.pattern(state, node["id"])
|
|
25
|
+
else
|
|
26
|
+
self.class.pattern(state, node["number"])
|
|
27
|
+
end
|
|
28
28
|
|
|
29
29
|
super(node, state)
|
|
30
30
|
end
|
|
@@ -7,7 +7,6 @@ module Stepmod
|
|
|
7
7
|
def convert(node, _state = {})
|
|
8
8
|
link_end = node["linkend"].to_s.split(":")
|
|
9
9
|
ref_id = link_end.last
|
|
10
|
-
parts = link_end.last.split(".")
|
|
11
10
|
text = node.text.gsub(/\s/, " ").squeeze(" ").strip
|
|
12
11
|
schema = link_end.first
|
|
13
12
|
|
|
@@ -16,7 +15,7 @@ module Stepmod
|
|
|
16
15
|
_state[:schema_and_entity] = schema
|
|
17
16
|
end
|
|
18
17
|
|
|
19
|
-
|
|
18
|
+
case link_end[1]
|
|
20
19
|
when "1_scope", "introduction"
|
|
21
20
|
# When we see this:
|
|
22
21
|
# <module_ref linkend="functional_usage_view:1_scope">Functional usage view</module_ref>
|
|
@@ -66,12 +65,11 @@ module Stepmod
|
|
|
66
65
|
create_ref(Table.pattern(_state, ref_id), text)
|
|
67
66
|
end
|
|
68
67
|
else
|
|
69
|
-
puts "[module_ref]: encountered unknown <module_ref> tag, #{link_end.join(
|
|
70
|
-
raise StandardError.new("[module_ref]: encountered unknown <module_ref> tag, #{link_end.join(
|
|
68
|
+
puts "[module_ref]: encountered unknown <module_ref> tag, #{link_end.join(':')}"
|
|
69
|
+
raise StandardError.new("[module_ref]: encountered unknown <module_ref> tag, #{link_end.join(':')}")
|
|
71
70
|
end
|
|
72
71
|
|
|
73
72
|
# puts "[module_ref] #{result}"
|
|
74
|
-
result
|
|
75
73
|
end
|
|
76
74
|
|
|
77
75
|
private
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
|
|
2
1
|
require "stepmod/utils/converters/figure"
|
|
3
2
|
require "stepmod/utils/converters/table"
|
|
4
3
|
|
|
@@ -8,13 +7,11 @@ module Stepmod
|
|
|
8
7
|
class ModuleRefExpressDescription < Stepmod::Utils::Converters::Base
|
|
9
8
|
def convert(node, _state = {})
|
|
10
9
|
link_end = node["linkend"].to_s.split(":")
|
|
11
|
-
ref_id = link_end.last
|
|
12
|
-
parts = link_end.last.split(".")
|
|
13
10
|
text = node.text.gsub(/\s/, " ").squeeze(" ").strip
|
|
14
11
|
|
|
15
12
|
# puts "linkend #{node["linkend"]}"
|
|
16
13
|
|
|
17
|
-
|
|
14
|
+
case link_end[1]
|
|
18
15
|
when "1_scope", "introduction"
|
|
19
16
|
# When we see this:
|
|
20
17
|
# <module_ref linkend="functional_usage_view:1_scope">Functional usage view</module_ref>
|
|
@@ -41,12 +38,11 @@ module Stepmod
|
|
|
41
38
|
# ISO 10303-2 does not contain figures and tables, ignore
|
|
42
39
|
""
|
|
43
40
|
else
|
|
44
|
-
puts "[module_ref_express_description]: encountered unknown <module_ref> tag, #{link_end.join(
|
|
45
|
-
raise StandardError.new("[module_ref_express_description]: encountered unknown <module_ref> tag, #{link_end.join(
|
|
41
|
+
puts "[module_ref_express_description]: encountered unknown <module_ref> tag, #{link_end.join(':')}"
|
|
42
|
+
raise StandardError.new("[module_ref_express_description]: encountered unknown <module_ref> tag, #{link_end.join(':')}")
|
|
46
43
|
end
|
|
47
44
|
|
|
48
45
|
# puts "[module_ref] #{result}"
|
|
49
|
-
result
|
|
50
46
|
end
|
|
51
47
|
end
|
|
52
48
|
ReverseAdoc::Converters.register :module_ref,
|
|
@@ -20,13 +20,13 @@ module Stepmod
|
|
|
20
20
|
end
|
|
21
21
|
|
|
22
22
|
def number_style(node)
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
23
|
+
case node["style"]
|
|
24
|
+
when "1" then "arabic"
|
|
25
|
+
when "A" then "upperalpha"
|
|
26
|
+
when "a" then "loweralpha"
|
|
27
|
+
when "I" then "upperroman"
|
|
28
|
+
when "i" then "lowerroman"
|
|
29
|
+
end
|
|
30
30
|
end
|
|
31
31
|
|
|
32
32
|
def ol_attrs(node)
|
|
@@ -22,8 +22,8 @@ module Stepmod
|
|
|
22
22
|
first_child =~ /include:?\s*\Z/ ||
|
|
23
23
|
first_child =~ /of:?\s*\Z/ ||
|
|
24
24
|
first_child =~ /[:;]\s*\Z/
|
|
25
|
-
|
|
26
|
-
|
|
25
|
+
) &&
|
|
26
|
+
child_text =~ /\n\n\*/
|
|
27
27
|
|
|
28
28
|
# Only taking the first paragraph of the definition
|
|
29
29
|
child_text = first_child
|
|
@@ -32,7 +32,7 @@ module Stepmod
|
|
|
32
32
|
# TEMP: Remove any whitespace (" ", not newlines) after an immediate
|
|
33
33
|
# newline due to:
|
|
34
34
|
# https://github.com/metanorma/iso-10303-2/issues/71
|
|
35
|
-
if
|
|
35
|
+
if /\n\ +/.match?(child_text)
|
|
36
36
|
child_text = child_text.gsub(/\n\ +/, "\n")
|
|
37
37
|
end
|
|
38
38
|
|
|
@@ -15,22 +15,23 @@ module Stepmod
|
|
|
15
15
|
def bold_converted(node, state)
|
|
16
16
|
cloned_node = node.clone
|
|
17
17
|
equations = extract_equations(cloned_node)
|
|
18
|
-
content = treat_children(cloned_node,
|
|
18
|
+
content = treat_children(cloned_node,
|
|
19
|
+
state.merge(already_strong: true))
|
|
19
20
|
equation_content = equations.map do |equation|
|
|
20
21
|
treat(equation, state.merge(equation: true, already_strong: true))
|
|
21
22
|
end
|
|
22
23
|
|
|
23
24
|
content = if state[:equation] && state[:convert_bold_and_italics]
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
25
|
+
"bb(#{content.strip})"
|
|
26
|
+
elsif content.strip.empty? || state[:already_strong] || state[:equation]
|
|
27
|
+
content
|
|
28
|
+
else
|
|
29
|
+
strong_tag = state[:non_flanking_whitesapce] ? "**" : "*"
|
|
30
|
+
handle_express_escape_seq(
|
|
31
|
+
node,
|
|
32
|
+
"#{content[/^\s*/]}#{strong_tag}#{content.strip}#{strong_tag}#{content[/\s*$/]}",
|
|
33
|
+
)
|
|
34
|
+
end
|
|
34
35
|
|
|
35
36
|
[content, equation_content].compact.join("")
|
|
36
37
|
end
|
|
@@ -26,8 +26,12 @@ module Stepmod
|
|
|
26
26
|
@pub_year = pubid.year&.to_i
|
|
27
27
|
elsif !schema.version.nil?
|
|
28
28
|
@part = schema.version.items.find { |i| i.name == "part" }.value&.to_i
|
|
29
|
-
@version = schema.version.items.find
|
|
30
|
-
|
|
29
|
+
@version = schema.version.items.find do |i|
|
|
30
|
+
i.name == "part"
|
|
31
|
+
end.value&.to_i
|
|
32
|
+
@pub_year = schema.version.items.find do |i|
|
|
33
|
+
i.name == "part"
|
|
34
|
+
end.value&.to_i
|
|
31
35
|
else
|
|
32
36
|
raise "PublishedInfoNotFound"
|
|
33
37
|
end
|
|
@@ -68,90 +68,90 @@ module Stepmod
|
|
|
68
68
|
|
|
69
69
|
def html_entities_to_asciimath(x)
|
|
70
70
|
x.gsub("α", "alpha")
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
71
|
+
.gsub("β", "beta")
|
|
72
|
+
.gsub("γ", "gamma")
|
|
73
|
+
.gsub("Γ", "Gamma")
|
|
74
|
+
.gsub("δ", "delta")
|
|
75
|
+
.gsub("Δ", "Delta")
|
|
76
|
+
.gsub("ε", "epsilon")
|
|
77
|
+
.gsub("ϵ", "varepsilon")
|
|
78
|
+
.gsub("ζ", "zeta")
|
|
79
|
+
.gsub("η", "eta")
|
|
80
|
+
.gsub("θ", "theta")
|
|
81
|
+
.gsub("Θ", "Theta")
|
|
82
|
+
.gsub("ϑ", "vartheta")
|
|
83
|
+
.gsub("ι", "iota")
|
|
84
|
+
.gsub("κ", "kappa")
|
|
85
|
+
.gsub("λ", "lambda")
|
|
86
|
+
.gsub("Λ", "Lambda")
|
|
87
|
+
.gsub("μ", "mu")
|
|
88
|
+
.gsub("ν", "nu")
|
|
89
|
+
.gsub("ξ", "xi")
|
|
90
|
+
.gsub("Ξ", "Xi")
|
|
91
|
+
.gsub("π", "pi")
|
|
92
|
+
.gsub("Π", "Pi")
|
|
93
|
+
.gsub("ρ", "rho")
|
|
94
|
+
.gsub("β", "beta")
|
|
95
|
+
.gsub("σ", "sigma")
|
|
96
|
+
.gsub("Σ", "Sigma")
|
|
97
|
+
.gsub("τ", "tau")
|
|
98
|
+
.gsub("υ", "upsilon")
|
|
99
|
+
.gsub("φ", "phi")
|
|
100
|
+
.gsub("Φ", "Phi")
|
|
101
|
+
.gsub("ϕ", "varphi")
|
|
102
|
+
.gsub("χ", "chi")
|
|
103
|
+
.gsub("ψ", "psi")
|
|
104
|
+
.gsub("Ψ", "Psi")
|
|
105
|
+
.gsub("ω", "omega")
|
|
106
|
+
.gsub("χ", "χ")
|
|
107
|
+
.gsub("×", "×")
|
|
108
|
+
.gsub("Σ", "Σ")
|
|
109
|
+
.gsub("ρ", "ρ")
|
|
110
|
+
.gsub("σ", "σ")
|
|
111
|
+
.gsub("λ", "λ")
|
|
112
|
+
.gsub("τ", "τ")
|
|
113
|
+
.gsub("∂", "∂")
|
|
114
|
+
.gsub("≤", "≤")
|
|
115
|
+
.gsub("≥", "≥")
|
|
116
116
|
end
|
|
117
117
|
|
|
118
118
|
def html_entities_to_stem(x)
|
|
119
119
|
x.gsub("α", "stem:[alpha]")
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
120
|
+
.gsub("β", "stem:[beta]")
|
|
121
|
+
.gsub("γ", "stem:[gamma]")
|
|
122
|
+
.gsub("Γ", "stem:[Gamma]")
|
|
123
|
+
.gsub("δ", "stem:[delta]")
|
|
124
|
+
.gsub("Δ", "stem:[Delta]")
|
|
125
|
+
.gsub("ε", "stem:[epsilon]")
|
|
126
|
+
.gsub("ϵ", "stem:[varepsilon]")
|
|
127
|
+
.gsub("ζ", "stem:[zeta]")
|
|
128
|
+
.gsub("η", "stem:[eta]")
|
|
129
|
+
.gsub("θ", "stem:[theta]")
|
|
130
|
+
.gsub("Θ", "stem:[Theta]")
|
|
131
|
+
.gsub("ϑ", "stem:[vartheta]")
|
|
132
|
+
.gsub("ι", "stem:[iota]")
|
|
133
|
+
.gsub("κ", "stem:[kappa]")
|
|
134
|
+
.gsub("λ", "stem:[lambda]")
|
|
135
|
+
.gsub("Λ", "stem:[Lambda]")
|
|
136
|
+
.gsub("μ", "stem:[mu]")
|
|
137
|
+
.gsub("ν", "stem:[nu]")
|
|
138
|
+
.gsub("ξ", "stem:[xi]")
|
|
139
|
+
.gsub("Ξ", "stem:[Xi]")
|
|
140
|
+
.gsub("π", "stem:[pi]")
|
|
141
|
+
.gsub("Π", "stem:[Pi]")
|
|
142
|
+
.gsub("ρ", "stem:[rho]")
|
|
143
|
+
.gsub("β", "stem:[beta]")
|
|
144
|
+
.gsub("σ", "stem:[sigma]")
|
|
145
|
+
.gsub("Σ", "stem:[Sigma]")
|
|
146
|
+
.gsub("τ", "stem:[tau]")
|
|
147
|
+
.gsub("υ", "stem:[upsilon]")
|
|
148
|
+
.gsub("φ", "stem:[phi]")
|
|
149
|
+
.gsub("Φ", "stem:[Phi]")
|
|
150
|
+
.gsub("ϕ", "stem:[varphi]")
|
|
151
|
+
.gsub("χ", "stem:[chi]")
|
|
152
|
+
.gsub("ψ", "stem:[psi]")
|
|
153
|
+
.gsub("Ψ", "stem:[Psi]")
|
|
154
|
+
.gsub("ω", "stem:[omega]")
|
|
155
155
|
end
|
|
156
156
|
end
|
|
157
157
|
end
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
module Stepmod
|
|
2
|
+
module Utils
|
|
3
|
+
module Parsers
|
|
4
|
+
module Models
|
|
5
|
+
end
|
|
6
|
+
end
|
|
7
|
+
end
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
require_relative "models/mapping_table"
|
|
11
|
+
|
|
12
|
+
module Stepmod
|
|
13
|
+
module Utils
|
|
14
|
+
module Parsers
|
|
15
|
+
class MappingTableParser
|
|
16
|
+
def self.parse(node)
|
|
17
|
+
new(node).parse
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
def initialize(node)
|
|
21
|
+
@node = node
|
|
22
|
+
@xml = node.to_xml
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
def parse
|
|
26
|
+
Models::MappingTable.from_xml(@xml)
|
|
27
|
+
end
|
|
28
|
+
end
|
|
29
|
+
end
|
|
30
|
+
end
|
|
31
|
+
end
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
require "shale"
|
|
2
|
+
|
|
3
|
+
require_relative "b"
|
|
4
|
+
require_relative "bold"
|
|
5
|
+
require_relative "i"
|
|
6
|
+
require_relative "sub"
|
|
7
|
+
require_relative "sup"
|
|
8
|
+
require_relative "tt"
|
|
9
|
+
|
|
10
|
+
module Stepmod
|
|
11
|
+
module Utils
|
|
12
|
+
module Parsers
|
|
13
|
+
module Models
|
|
14
|
+
class A < Shale::Mapper
|
|
15
|
+
attribute :content, Shale::Type::String
|
|
16
|
+
attribute :href, Shale::Type::String
|
|
17
|
+
attribute :i, Italic, collection: true
|
|
18
|
+
attribute :b, B, collection: true
|
|
19
|
+
attribute :sub, Sub, collection: true
|
|
20
|
+
attribute :sup, Sup, collection: true
|
|
21
|
+
attribute :tt, Tt, collection: true
|
|
22
|
+
attribute :bold, Bold, collection: true
|
|
23
|
+
|
|
24
|
+
xml do
|
|
25
|
+
root "a"
|
|
26
|
+
|
|
27
|
+
map_content to: :content
|
|
28
|
+
map_attribute "href", to: :href
|
|
29
|
+
map_element "i", to: :i
|
|
30
|
+
map_element "b", to: :b
|
|
31
|
+
map_element "sub", to: :sub
|
|
32
|
+
map_element "sup", to: :sup
|
|
33
|
+
map_element "tt", to: :tt
|
|
34
|
+
map_element "bold", to: :bold
|
|
35
|
+
end
|
|
36
|
+
end
|
|
37
|
+
end
|
|
38
|
+
end
|
|
39
|
+
end
|
|
40
|
+
end
|