stepmod-utils 0.1.5 → 0.2.3
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/rake.yml +51 -0
- data/.github/workflows/release.yml +20 -22
- data/Gemfile +2 -0
- data/Makefile +2 -0
- data/README.adoc +136 -2
- data/exe/stepmod-annotate +44 -0
- data/exe/stepmod-annotate-all +39 -0
- data/exe/stepmod-build-resource-docs-cache +19 -0
- data/exe/stepmod-convert-express-description +33 -0
- data/exe/stepmod-convert-express-resource +33 -0
- data/exe/stepmod-extract-terms +62 -13
- data/exe/stepmod-find-express-files +23 -0
- data/lib/stepmod/utils/cleaner.rb +11 -0
- data/lib/stepmod/utils/concept.rb +16 -3
- data/lib/stepmod/utils/converters/a.rb +47 -0
- data/lib/stepmod/utils/converters/blockquote.rb +22 -0
- data/lib/stepmod/utils/converters/br.rb +15 -0
- data/lib/stepmod/utils/converters/bypass.rb +81 -0
- data/lib/stepmod/utils/converters/clause_ref.rb +2 -2
- data/lib/stepmod/utils/converters/code.rb +19 -0
- data/lib/stepmod/utils/converters/comment.rb +16 -0
- data/lib/stepmod/utils/converters/dd.rb +15 -0
- data/lib/stepmod/utils/converters/def.rb +13 -6
- data/lib/stepmod/utils/converters/definition.rb +2 -2
- data/lib/stepmod/utils/converters/dl.rb +31 -0
- data/lib/stepmod/utils/converters/drop.rb +22 -0
- data/lib/stepmod/utils/converters/dt.rb +17 -0
- data/lib/stepmod/utils/converters/em.rb +3 -3
- data/lib/stepmod/utils/converters/em_express_description.rb +22 -0
- data/lib/stepmod/utils/converters/eqn.rb +96 -0
- data/lib/stepmod/utils/converters/example.rb +3 -8
- data/lib/stepmod/utils/converters/express_g.rb +46 -0
- data/lib/stepmod/utils/converters/express_ref.rb +2 -2
- data/lib/stepmod/utils/converters/express_ref_express_description.rb +13 -0
- data/lib/stepmod/utils/converters/ext_description.rb +16 -0
- data/lib/stepmod/utils/converters/ext_descriptions.rb +14 -0
- data/lib/stepmod/utils/converters/fund_cons.rb +15 -0
- data/lib/stepmod/utils/converters/head.rb +22 -0
- data/lib/stepmod/utils/converters/hr.rb +15 -0
- data/lib/stepmod/utils/converters/ignore.rb +16 -0
- data/lib/stepmod/utils/converters/introduction.rb +15 -0
- data/lib/stepmod/utils/converters/module_ref.rb +2 -2
- data/lib/stepmod/utils/converters/note.rb +3 -8
- data/lib/stepmod/utils/converters/ol.rb +7 -6
- data/lib/stepmod/utils/converters/p.rb +21 -0
- data/lib/stepmod/utils/converters/pass_through.rb +13 -0
- data/lib/stepmod/utils/converters/q.rb +16 -0
- data/lib/stepmod/utils/converters/resource.rb +14 -0
- data/lib/stepmod/utils/converters/schema.rb +18 -0
- data/lib/stepmod/utils/converters/schema_diag.rb +14 -0
- data/lib/stepmod/utils/converters/stem.rb +2 -2
- data/lib/stepmod/utils/converters/strong.rb +21 -0
- data/lib/stepmod/utils/converters/sub.rb +16 -0
- data/lib/stepmod/utils/converters/sup.rb +16 -0
- data/lib/stepmod/utils/converters/synonym.rb +2 -2
- data/lib/stepmod/utils/converters/term.rb +2 -2
- data/lib/stepmod/utils/converters/text.rb +68 -0
- data/lib/stepmod/utils/html_to_asciimath.rb +157 -0
- data/lib/stepmod/utils/smrl_description_converter.rb +49 -0
- data/lib/stepmod/utils/smrl_resource_converter.rb +67 -0
- data/lib/stepmod/utils/stepmod_definition_converter.rb +21 -21
- data/lib/stepmod/utils/stepmod_file_annotator.rb +54 -0
- data/lib/stepmod/utils/version.rb +1 -1
- data/migrating_from_cvs.adoc +190 -0
- data/stepmod-utils.gemspec +2 -1
- metadata +70 -8
- data/.github/workflows/macos.yml +0 -39
- data/.github/workflows/ubuntu.yml +0 -53
- data/.github/workflows/windows.yml +0 -41
@@ -0,0 +1,22 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Stepmod
|
4
|
+
module Utils
|
5
|
+
module Converters
|
6
|
+
class Head < ReverseAdoc::Converters::Base
|
7
|
+
def convert(node, state = {})
|
8
|
+
title = extract_title(node)
|
9
|
+
"= #{title}\n:stem:\n\n"
|
10
|
+
end
|
11
|
+
|
12
|
+
def extract_title(node)
|
13
|
+
title = node.at("./title")
|
14
|
+
return "(???)" if title.nil?
|
15
|
+
title.text
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
ReverseAdoc::Converters.register :head, Head.new
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Stepmod
|
4
|
+
module Utils
|
5
|
+
module Converters
|
6
|
+
class Hr < ReverseAdoc::Converters::Base
|
7
|
+
def convert(node, state = {})
|
8
|
+
"\n* * *\n"
|
9
|
+
end
|
10
|
+
end
|
11
|
+
|
12
|
+
ReverseAdoc::Converters.register :hr, Hr.new
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Stepmod
|
4
|
+
module Utils
|
5
|
+
module Converters
|
6
|
+
class Ignore < ReverseAdoc::Converters::Base
|
7
|
+
def convert(node, state = {})
|
8
|
+
'' # noop
|
9
|
+
end
|
10
|
+
end
|
11
|
+
|
12
|
+
ReverseAdoc::Converters.register :colgroup, Ignore.new
|
13
|
+
ReverseAdoc::Converters.register :col, Ignore.new
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Stepmod
|
4
|
+
module Utils
|
5
|
+
module Converters
|
6
|
+
class Introduction < ReverseAdoc::Converters::Base
|
7
|
+
def convert(node, state = {})
|
8
|
+
"\n\n== Introduction\n\n#{treat_children(node, state).strip}\n\n"
|
9
|
+
end
|
10
|
+
end
|
11
|
+
|
12
|
+
ReverseAdoc::Converters.register :introduction, Introduction.new
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
@@ -3,7 +3,7 @@
|
|
3
3
|
module Stepmod
|
4
4
|
module Utils
|
5
5
|
module Converters
|
6
|
-
class ModuleRef <
|
6
|
+
class ModuleRef < ReverseAdoc::Converters::Base
|
7
7
|
def convert(node, _state = {})
|
8
8
|
ref = node['linkend']
|
9
9
|
# #23:
|
@@ -27,7 +27,7 @@ module Stepmod
|
|
27
27
|
ref.squeeze(' ').strip
|
28
28
|
end
|
29
29
|
end
|
30
|
-
|
30
|
+
ReverseAdoc::Converters.register :module_ref, ModuleRef.new
|
31
31
|
end
|
32
32
|
end
|
33
33
|
end
|
@@ -3,17 +3,12 @@
|
|
3
3
|
module Stepmod
|
4
4
|
module Utils
|
5
5
|
module Converters
|
6
|
-
class Note <
|
6
|
+
class Note < ReverseAdoc::Converters::Base
|
7
7
|
def convert(node, state = {})
|
8
|
-
|
9
|
-
[NOTE]
|
10
|
-
--
|
11
|
-
#{treat_children(node, state).strip}
|
12
|
-
--
|
13
|
-
TEMPLATE
|
8
|
+
"\n\n[NOTE]\n--\n#{treat_children(node, state).strip}\n--\n\n"
|
14
9
|
end
|
15
10
|
end
|
16
|
-
|
11
|
+
ReverseAdoc::Converters.register :note, Note.new
|
17
12
|
end
|
18
13
|
end
|
19
14
|
end
|
@@ -3,14 +3,15 @@
|
|
3
3
|
module Stepmod
|
4
4
|
module Utils
|
5
5
|
module Converters
|
6
|
-
class Ol <
|
6
|
+
class Ol < ReverseAdoc::Converters::Base
|
7
7
|
def convert(node, state = {})
|
8
8
|
id = node['id']
|
9
9
|
anchor = id ? "[[#{id}]]\n" : ""
|
10
10
|
ol_count = state.fetch(:ol_count, 0) + 1
|
11
11
|
attrs = ol_attrs(node)
|
12
|
-
res = "\n#{anchor}#{attrs}#{treat_children(node, state.merge(ol_count: ol_count))}"
|
13
|
-
|
12
|
+
res = "\n\n#{anchor}#{attrs}#{treat_children(node, state.merge(ol_count: ol_count))}\n"
|
13
|
+
# Why do we add this?
|
14
|
+
# res = "\n" + res if node.parent && node.parent.name == 'note'
|
14
15
|
res
|
15
16
|
end
|
16
17
|
|
@@ -44,9 +45,9 @@ module Stepmod
|
|
44
45
|
end
|
45
46
|
end
|
46
47
|
|
47
|
-
|
48
|
-
|
49
|
-
|
48
|
+
ReverseAdoc::Converters.register :ol, Ol.new
|
49
|
+
ReverseAdoc::Converters.register :ul, Ol.new
|
50
|
+
ReverseAdoc::Converters.register :dir, Ol.new
|
50
51
|
end
|
51
52
|
end
|
52
53
|
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Stepmod
|
4
|
+
module Utils
|
5
|
+
module Converters
|
6
|
+
class P < ReverseAdoc::Converters::Base
|
7
|
+
def convert(node, state = {})
|
8
|
+
id = node['id']
|
9
|
+
anchor = id ? "[[#{id}]]\n" : ""
|
10
|
+
if state[:tdsinglepara]
|
11
|
+
"#{anchor}#{treat_children(node, state).strip}"
|
12
|
+
else
|
13
|
+
"\n\n#{anchor}#{treat_children(node, state).strip}\n\n"
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
ReverseAdoc::Converters.register :p, P.new
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Stepmod
|
4
|
+
module Utils
|
5
|
+
module Converters
|
6
|
+
class Q < ReverseAdoc::Converters::Base
|
7
|
+
def convert(node, state = {})
|
8
|
+
content = treat_children(node, state)
|
9
|
+
"#{content[/^\s*/]}\"#{content.strip}\"#{content[/\s*$/]}"
|
10
|
+
end
|
11
|
+
end
|
12
|
+
|
13
|
+
ReverseAdoc::Converters.register :q, Q.new
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
@@ -0,0 +1,14 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Stepmod
|
4
|
+
module Utils
|
5
|
+
module Converters
|
6
|
+
class Resource < ReverseAdoc::Converters::Base
|
7
|
+
def convert(node, state = {})
|
8
|
+
treat_children(node, state)
|
9
|
+
end
|
10
|
+
end
|
11
|
+
ReverseAdoc::Converters.register :resource, Resource.new
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Stepmod
|
4
|
+
module Utils
|
5
|
+
module Converters
|
6
|
+
class Schema < ReverseAdoc::Converters::Base
|
7
|
+
def convert(node, state = {})
|
8
|
+
<<~TEMPLATE
|
9
|
+
(*"#{node['name']}"
|
10
|
+
#{treat_children(node, state).strip}
|
11
|
+
*)
|
12
|
+
TEMPLATE
|
13
|
+
end
|
14
|
+
end
|
15
|
+
ReverseAdoc::Converters.register :schema, Schema.new
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
@@ -0,0 +1,14 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Stepmod
|
4
|
+
module Utils
|
5
|
+
module Converters
|
6
|
+
class SchemaDiag < ReverseAdoc::Converters::Base
|
7
|
+
def convert(node, state = {})
|
8
|
+
treat_children(node, state).strip
|
9
|
+
end
|
10
|
+
end
|
11
|
+
ReverseAdoc::Converters.register :schema_diag, SchemaDiag.new
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
@@ -5,7 +5,7 @@ require 'stepmod/utils/converters/em'
|
|
5
5
|
module Stepmod
|
6
6
|
module Utils
|
7
7
|
module Converters
|
8
|
-
class Stem <
|
8
|
+
class Stem < ReverseAdoc::Converters::Base
|
9
9
|
def convert(node, state = {})
|
10
10
|
return Em.new.convert(node, state) if node.text.strip.length > 8
|
11
11
|
|
@@ -13,7 +13,7 @@ module Stepmod
|
|
13
13
|
end
|
14
14
|
end
|
15
15
|
|
16
|
-
|
16
|
+
ReverseAdoc::Converters.register :i, Stem.new
|
17
17
|
end
|
18
18
|
end
|
19
19
|
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Stepmod
|
4
|
+
module Utils
|
5
|
+
module Converters
|
6
|
+
class Strong < ReverseAdoc::Converters::Base
|
7
|
+
def convert(node, state = {})
|
8
|
+
content = treat_children(node, state.merge(already_strong: true))
|
9
|
+
if content.strip.empty? || state[:already_strong]
|
10
|
+
content
|
11
|
+
else
|
12
|
+
"#{content[/^\s*/]}*#{content.strip}*#{content[/\s*$/]}"
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
ReverseAdoc::Converters.register :strong, Strong.new
|
18
|
+
ReverseAdoc::Converters.register :b, Strong.new
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Stepmod
|
4
|
+
module Utils
|
5
|
+
module Converters
|
6
|
+
class Sub < ReverseAdoc::Converters::Base
|
7
|
+
def convert(node, state = {})
|
8
|
+
content = treat_children(node, state)
|
9
|
+
"#{content[/^\s*/]}~#{content.strip}~#{content[/\s*$/]}"
|
10
|
+
end
|
11
|
+
end
|
12
|
+
|
13
|
+
ReverseAdoc::Converters.register :sub, Sub.new
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Stepmod
|
4
|
+
module Utils
|
5
|
+
module Converters
|
6
|
+
class Sup < ReverseAdoc::Converters::Base
|
7
|
+
def convert(node, state = {})
|
8
|
+
content = treat_children(node, state)
|
9
|
+
"#{content[/^\s*/]}^#{content.strip}^#{content[/\s*$/]}"
|
10
|
+
end
|
11
|
+
end
|
12
|
+
|
13
|
+
ReverseAdoc::Converters.register :sup, Sup.new
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
@@ -3,13 +3,13 @@
|
|
3
3
|
module Stepmod
|
4
4
|
module Utils
|
5
5
|
module Converters
|
6
|
-
class Synonym <
|
6
|
+
class Synonym < ReverseAdoc::Converters::Base
|
7
7
|
def convert(node, state = {})
|
8
8
|
"alt:[#{node.text.strip}]"
|
9
9
|
end
|
10
10
|
end
|
11
11
|
|
12
|
-
|
12
|
+
ReverseAdoc::Converters.register :synonym, Synonym.new
|
13
13
|
end
|
14
14
|
end
|
15
15
|
end
|
@@ -5,7 +5,7 @@ require 'stepmod/utils/converters/synonym'
|
|
5
5
|
module Stepmod
|
6
6
|
module Utils
|
7
7
|
module Converters
|
8
|
-
class Term <
|
8
|
+
class Term < ReverseAdoc::Converters::Base
|
9
9
|
def convert(node, state = {})
|
10
10
|
first_child = node.children.find do |child|
|
11
11
|
child.name == 'text' && !child.text.to_s.strip.empty?
|
@@ -23,7 +23,7 @@ module Stepmod
|
|
23
23
|
end
|
24
24
|
end
|
25
25
|
|
26
|
-
|
26
|
+
ReverseAdoc::Converters.register :term, Term.new
|
27
27
|
end
|
28
28
|
end
|
29
29
|
end
|
@@ -0,0 +1,68 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Stepmod
|
4
|
+
module Utils
|
5
|
+
module Converters
|
6
|
+
class Text < ReverseAdoc::Converters::Base
|
7
|
+
def convert(node, state = {})
|
8
|
+
if node.text.strip.empty?
|
9
|
+
treat_empty(node, state)
|
10
|
+
else
|
11
|
+
treat_text(node)
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
private
|
16
|
+
|
17
|
+
def treat_empty(node, state)
|
18
|
+
parent = node.parent.name.to_sym
|
19
|
+
if [:ol, :ul].include?(parent) # Otherwise the identation is broken
|
20
|
+
''
|
21
|
+
elsif state[:tdsinglepara]
|
22
|
+
''
|
23
|
+
elsif node.text == ' ' # Regular whitespace text node
|
24
|
+
' '
|
25
|
+
else
|
26
|
+
''
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
def treat_text(node)
|
31
|
+
text = node.text
|
32
|
+
text = preserve_nbsp(text)
|
33
|
+
# text = remove_border_newlines(text)
|
34
|
+
text = remove_inner_newlines(text)
|
35
|
+
|
36
|
+
text = preserve_keychars_within_backticks(text)
|
37
|
+
text = preserve_tags(text)
|
38
|
+
|
39
|
+
text
|
40
|
+
end
|
41
|
+
|
42
|
+
def preserve_nbsp(text)
|
43
|
+
text.gsub(/\u00A0/, " ")
|
44
|
+
end
|
45
|
+
|
46
|
+
def preserve_tags(text)
|
47
|
+
text.gsub(/[<>]/, '>' => '\>', '<' => '\<')
|
48
|
+
end
|
49
|
+
|
50
|
+
def remove_border_newlines(text)
|
51
|
+
text.gsub(/\A\n+/, '').gsub(/\n+\z/, '')
|
52
|
+
end
|
53
|
+
|
54
|
+
def remove_inner_newlines(text)
|
55
|
+
text.tr("\n\t", ' ').squeeze(' ')
|
56
|
+
end
|
57
|
+
|
58
|
+
def preserve_keychars_within_backticks(text)
|
59
|
+
text.gsub(/`.*?`/) do |match|
|
60
|
+
match.gsub('\_', '_').gsub('\*', '*')
|
61
|
+
end
|
62
|
+
end
|
63
|
+
end
|
64
|
+
|
65
|
+
ReverseAdoc::Converters.register :text, Text.new
|
66
|
+
end
|
67
|
+
end
|
68
|
+
end
|
@@ -0,0 +1,157 @@
|
|
1
|
+
module Stepmod
|
2
|
+
module Utils
|
3
|
+
class HtmlToAsciimath
|
4
|
+
def call(input)
|
5
|
+
return input if input.nil? || input.empty?
|
6
|
+
|
7
|
+
to_asciimath = Nokogiri::HTML.fragment(input, "UTF-8")
|
8
|
+
|
9
|
+
to_asciimath.css('i').each do |math_element|
|
10
|
+
# puts "HTML MATH!! #{math_element.to_xml}"
|
11
|
+
# puts "HTML MATH!! #{math_element.text}"
|
12
|
+
decoded = text_to_asciimath(math_element.text)
|
13
|
+
case decoded.length
|
14
|
+
when 1..12
|
15
|
+
# puts "(#{math_element.text} to => #{decoded})"
|
16
|
+
math_element.replace "stem:[#{decoded}]"
|
17
|
+
when 0
|
18
|
+
math_element.remove
|
19
|
+
else
|
20
|
+
math_element.replace "_#{decoded}_"
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
to_asciimath.css('sub').each do |math_element|
|
25
|
+
case math_element.text.length
|
26
|
+
when 0
|
27
|
+
math_element.remove
|
28
|
+
else
|
29
|
+
math_element.replace "~#{text_to_asciimath(math_element.text)}~"
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
to_asciimath.css('sup').each do |math_element|
|
34
|
+
case math_element.text.length
|
35
|
+
when 0
|
36
|
+
math_element.remove
|
37
|
+
else
|
38
|
+
math_element.replace "^#{text_to_asciimath(math_element.text)}^"
|
39
|
+
end
|
40
|
+
end
|
41
|
+
|
42
|
+
to_asciimath.css('ol').each do |element|
|
43
|
+
element.css('li').each do |li|
|
44
|
+
li.replace ". #{li.text}"
|
45
|
+
end
|
46
|
+
end
|
47
|
+
|
48
|
+
to_asciimath.css('ul').each do |element|
|
49
|
+
element.css('li').each do |li|
|
50
|
+
li.replace "* #{li.text}"
|
51
|
+
end
|
52
|
+
end
|
53
|
+
|
54
|
+
# Replace sans-serif font with monospace
|
55
|
+
to_asciimath.css('font[style*="sans-serif"]').each do |x|
|
56
|
+
x.replace "`#{x.text}`"
|
57
|
+
end
|
58
|
+
|
59
|
+
html_entities_to_stem(
|
60
|
+
to_asciimath.children.to_s.gsub(/\]stem:\[/, '').gsub(/<\/?[uo]l>/, '')
|
61
|
+
)
|
62
|
+
end
|
63
|
+
|
64
|
+
def text_to_asciimath(text)
|
65
|
+
html_entities_to_asciimath(text.decode_html)
|
66
|
+
end
|
67
|
+
|
68
|
+
def html_entities_to_asciimath(x)
|
69
|
+
x.gsub("α", "alpha").
|
70
|
+
gsub("β", "beta").
|
71
|
+
gsub("γ", "gamma").
|
72
|
+
gsub("Γ", "Gamma").
|
73
|
+
gsub("δ", "delta").
|
74
|
+
gsub("Δ", "Delta").
|
75
|
+
gsub("ε", "epsilon").
|
76
|
+
gsub("ϵ", "varepsilon").
|
77
|
+
gsub("ζ", "zeta").
|
78
|
+
gsub("η", "eta").
|
79
|
+
gsub("θ", "theta").
|
80
|
+
gsub("Θ", "Theta").
|
81
|
+
gsub("ϑ", "vartheta").
|
82
|
+
gsub("ι", "iota").
|
83
|
+
gsub("κ", "kappa").
|
84
|
+
gsub("λ", "lambda").
|
85
|
+
gsub("Λ", "Lambda").
|
86
|
+
gsub("μ", "mu").
|
87
|
+
gsub("ν", "nu").
|
88
|
+
gsub("ξ", "xi").
|
89
|
+
gsub("Ξ", "Xi").
|
90
|
+
gsub("π", "pi").
|
91
|
+
gsub("Π", "Pi").
|
92
|
+
gsub("ρ", "rho").
|
93
|
+
gsub("β", "beta").
|
94
|
+
gsub("σ", "sigma").
|
95
|
+
gsub("Σ", "Sigma").
|
96
|
+
gsub("τ", "tau").
|
97
|
+
gsub("υ", "upsilon").
|
98
|
+
gsub("φ", "phi").
|
99
|
+
gsub("Φ", "Phi").
|
100
|
+
gsub("ϕ", "varphi").
|
101
|
+
gsub("χ", "chi").
|
102
|
+
gsub("ψ", "psi").
|
103
|
+
gsub("Ψ", "Psi").
|
104
|
+
gsub("ω", "omega")
|
105
|
+
gsub("χ", "χ").
|
106
|
+
gsub("×", "×").
|
107
|
+
gsub("Σ", "Σ").
|
108
|
+
gsub("ρ", "ρ").
|
109
|
+
gsub("σ", "σ").
|
110
|
+
gsub("λ", "λ").
|
111
|
+
gsub("τ", "τ").
|
112
|
+
gsub("∂", "∂").
|
113
|
+
gsub("≤", "≤").
|
114
|
+
gsub("≥", "≥")
|
115
|
+
end
|
116
|
+
|
117
|
+
def html_entities_to_stem(x)
|
118
|
+
x.gsub("α", "stem:[alpha]").
|
119
|
+
gsub("β", "stem:[beta]").
|
120
|
+
gsub("γ", "stem:[gamma]").
|
121
|
+
gsub("Γ", "stem:[Gamma]").
|
122
|
+
gsub("δ", "stem:[delta]").
|
123
|
+
gsub("Δ", "stem:[Delta]").
|
124
|
+
gsub("ε", "stem:[epsilon]").
|
125
|
+
gsub("ϵ", "stem:[varepsilon]").
|
126
|
+
gsub("ζ", "stem:[zeta]").
|
127
|
+
gsub("η", "stem:[eta]").
|
128
|
+
gsub("θ", "stem:[theta]").
|
129
|
+
gsub("Θ", "stem:[Theta]").
|
130
|
+
gsub("ϑ", "stem:[vartheta]").
|
131
|
+
gsub("ι", "stem:[iota]").
|
132
|
+
gsub("κ", "stem:[kappa]").
|
133
|
+
gsub("λ", "stem:[lambda]").
|
134
|
+
gsub("Λ", "stem:[Lambda]").
|
135
|
+
gsub("μ", "stem:[mu]").
|
136
|
+
gsub("ν", "stem:[nu]").
|
137
|
+
gsub("ξ", "stem:[xi]").
|
138
|
+
gsub("Ξ", "stem:[Xi]").
|
139
|
+
gsub("π", "stem:[pi]").
|
140
|
+
gsub("Π", "stem:[Pi]").
|
141
|
+
gsub("ρ", "stem:[rho]").
|
142
|
+
gsub("β", "stem:[beta]").
|
143
|
+
gsub("σ", "stem:[sigma]").
|
144
|
+
gsub("Σ", "stem:[Sigma]").
|
145
|
+
gsub("τ", "stem:[tau]").
|
146
|
+
gsub("υ", "stem:[upsilon]").
|
147
|
+
gsub("φ", "stem:[phi]").
|
148
|
+
gsub("Φ", "stem:[Phi]").
|
149
|
+
gsub("ϕ", "stem:[varphi]").
|
150
|
+
gsub("χ", "stem:[chi]").
|
151
|
+
gsub("ψ", "stem:[psi]").
|
152
|
+
gsub("Ψ", "stem:[Psi]").
|
153
|
+
gsub("ω", "stem:[omega]")
|
154
|
+
end
|
155
|
+
end
|
156
|
+
end
|
157
|
+
end
|