stepmod-utils 0.1.5 → 0.2.3
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 +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
|