reverse_adoc 1.0.1 → 2.0.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.
Files changed (105) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +3 -3
  3. data/README.adoc +4 -294
  4. data/Rakefile +2 -13
  5. data/reverse_adoc.gemspec +2 -20
  6. metadata +5 -246
  7. data/.editorconfig +0 -15
  8. data/.github/workflows/rake.yml +0 -15
  9. data/.gitignore +0 -10
  10. data/.hound.yml +0 -5
  11. data/.rubocop.yml +0 -10
  12. data/LICENSE.txt +0 -25
  13. data/exe/reverse_adoc +0 -70
  14. data/exe/w2a +0 -72
  15. data/lib/reverse_adoc/cleaner.rb +0 -113
  16. data/lib/reverse_adoc/config.rb +0 -54
  17. data/lib/reverse_adoc/converters/a.rb +0 -42
  18. data/lib/reverse_adoc/converters/aside.rb +0 -16
  19. data/lib/reverse_adoc/converters/audio.rb +0 -29
  20. data/lib/reverse_adoc/converters/base.rb +0 -100
  21. data/lib/reverse_adoc/converters/blockquote.rb +0 -27
  22. data/lib/reverse_adoc/converters/br.rb +0 -15
  23. data/lib/reverse_adoc/converters/bypass.rb +0 -81
  24. data/lib/reverse_adoc/converters/code.rb +0 -56
  25. data/lib/reverse_adoc/converters/div.rb +0 -18
  26. data/lib/reverse_adoc/converters/drop.rb +0 -22
  27. data/lib/reverse_adoc/converters/em.rb +0 -55
  28. data/lib/reverse_adoc/converters/figure.rb +0 -25
  29. data/lib/reverse_adoc/converters/h.rb +0 -42
  30. data/lib/reverse_adoc/converters/head.rb +0 -23
  31. data/lib/reverse_adoc/converters/hr.rb +0 -15
  32. data/lib/reverse_adoc/converters/ignore.rb +0 -16
  33. data/lib/reverse_adoc/converters/img.rb +0 -93
  34. data/lib/reverse_adoc/converters/li.rb +0 -17
  35. data/lib/reverse_adoc/converters/mark.rb +0 -21
  36. data/lib/reverse_adoc/converters/math.rb +0 -31
  37. data/lib/reverse_adoc/converters/ol.rb +0 -64
  38. data/lib/reverse_adoc/converters/p.rb +0 -23
  39. data/lib/reverse_adoc/converters/pass_through.rb +0 -13
  40. data/lib/reverse_adoc/converters/pre.rb +0 -55
  41. data/lib/reverse_adoc/converters/q.rb +0 -16
  42. data/lib/reverse_adoc/converters/strong.rb +0 -52
  43. data/lib/reverse_adoc/converters/sub.rb +0 -16
  44. data/lib/reverse_adoc/converters/sup.rb +0 -16
  45. data/lib/reverse_adoc/converters/table.rb +0 -69
  46. data/lib/reverse_adoc/converters/td.rb +0 -83
  47. data/lib/reverse_adoc/converters/text.rb +0 -65
  48. data/lib/reverse_adoc/converters/th.rb +0 -14
  49. data/lib/reverse_adoc/converters/tr.rb +0 -22
  50. data/lib/reverse_adoc/converters/video.rb +0 -29
  51. data/lib/reverse_adoc/converters.rb +0 -32
  52. data/lib/reverse_adoc/errors.rb +0 -10
  53. data/lib/reverse_adoc/html_converter.rb +0 -61
  54. data/lib/reverse_adoc/version.rb +0 -3
  55. data/lib/reverse_adoc.rb +0 -27
  56. data/spec/assets/anchors.html +0 -30
  57. data/spec/assets/basic.html +0 -61
  58. data/spec/assets/code.html +0 -22
  59. data/spec/assets/escapables.html +0 -17
  60. data/spec/assets/external_images.docx +0 -0
  61. data/spec/assets/external_images.html +0 -35
  62. data/spec/assets/from_the_wild.html +0 -23
  63. data/spec/assets/full_example.html +0 -49
  64. data/spec/assets/html_fragment.html +0 -3
  65. data/spec/assets/lists.html +0 -137
  66. data/spec/assets/minimum.html +0 -4
  67. data/spec/assets/paragraphs.html +0 -24
  68. data/spec/assets/quotation.html +0 -12
  69. data/spec/assets/tables.html +0 -99
  70. data/spec/assets/unknown_tags.html +0 -9
  71. data/spec/bin/reverse_adoc_spec.rb +0 -33
  72. data/spec/bin/w2a_spec.rb +0 -35
  73. data/spec/components/anchors_spec.rb +0 -32
  74. data/spec/components/basic_spec.rb +0 -63
  75. data/spec/components/code_spec.rb +0 -25
  76. data/spec/components/escapables_spec.rb +0 -30
  77. data/spec/components/from_the_wild_spec.rb +0 -15
  78. data/spec/components/html_fragment_spec.rb +0 -9
  79. data/spec/components/lists_spec.rb +0 -90
  80. data/spec/components/paragraphs_spec.rb +0 -14
  81. data/spec/components/quotation_spec.rb +0 -12
  82. data/spec/components/tables_spec.rb +0 -42
  83. data/spec/components/unknown_tags_spec.rb +0 -41
  84. data/spec/lib/reverse_adoc/cleaner_spec.rb +0 -180
  85. data/spec/lib/reverse_adoc/config_spec.rb +0 -25
  86. data/spec/lib/reverse_adoc/converters/aside_spec.rb +0 -11
  87. data/spec/lib/reverse_adoc/converters/audio_spec.rb +0 -15
  88. data/spec/lib/reverse_adoc/converters/blockquote_spec.rb +0 -23
  89. data/spec/lib/reverse_adoc/converters/br_spec.rb +0 -9
  90. data/spec/lib/reverse_adoc/converters/code_spec.rb +0 -15
  91. data/spec/lib/reverse_adoc/converters/div_spec.rb +0 -15
  92. data/spec/lib/reverse_adoc/converters/figure_spec.rb +0 -10
  93. data/spec/lib/reverse_adoc/converters/img_spec.rb +0 -25
  94. data/spec/lib/reverse_adoc/converters/li_spec.rb +0 -11
  95. data/spec/lib/reverse_adoc/converters/mark_spec.rb +0 -10
  96. data/spec/lib/reverse_adoc/converters/p_spec.rb +0 -10
  97. data/spec/lib/reverse_adoc/converters/pre_spec.rb +0 -43
  98. data/spec/lib/reverse_adoc/converters/q_spec.rb +0 -10
  99. data/spec/lib/reverse_adoc/converters/strong_spec.rb +0 -21
  100. data/spec/lib/reverse_adoc/converters/text_spec.rb +0 -67
  101. data/spec/lib/reverse_adoc/converters/video_spec.rb +0 -15
  102. data/spec/lib/reverse_adoc/converters_spec.rb +0 -22
  103. data/spec/lib/reverse_adoc.rb +0 -90
  104. data/spec/spec_helper.rb +0 -25
  105. data/spec/support/shell_helpers.rb +0 -15
@@ -1,16 +0,0 @@
1
- module ReverseAdoc
2
- module Converters
3
- class Sup < Base
4
- def to_coradoc(node, state = {})
5
- content = treat_children(node, state)
6
- Coradoc::Element::Inline::Superscript.new(content)
7
- end
8
-
9
- def convert(node, state = {})
10
- Coradoc::Generator.gen_adoc(to_coradoc(node, state))
11
- end
12
- end
13
-
14
- register :sup, Sup.new
15
- end
16
- end
@@ -1,69 +0,0 @@
1
- module ReverseAdoc
2
- module Converters
3
- class Table < Base
4
- def to_coradoc(node, state = {})
5
- id = node["id"]
6
- title = extract_title(node)
7
- attrs = style(node)
8
- content = treat_children_coradoc(node, state)
9
- Coradoc::Element::Table.new(title, content, { id: id, attrs: attrs })
10
- end
11
-
12
- def convert(node, state = {})
13
- Coradoc::Generator.gen_adoc(to_coradoc(node, state))
14
- end
15
-
16
- def extract_title(node)
17
- title = node.at("./caption")
18
- return "" if title.nil?
19
-
20
- treat_children(title, {})
21
- end
22
-
23
- def frame(node)
24
- case node["frame"]
25
- when "void"
26
- "none"
27
- when "hsides"
28
- "topbot"
29
- when "vsides"
30
- "sides"
31
- when "box", "border"
32
- "all"
33
- end
34
- end
35
-
36
- def rules(node)
37
- case node["rules"]
38
- when "all"
39
- "all"
40
- when "rows"
41
- "rows"
42
- when "cols"
43
- "cols"
44
- when "none"
45
- "none"
46
- end
47
- end
48
-
49
- def style(node)
50
- attrs = Coradoc::Element::AttributeList.new
51
- # Width is disabled on tables for now. (From #88)
52
- # attrs.add_named("width", node["width"]) if node["width"]
53
-
54
- frame_attr = frame(node)
55
- attrs.add_named("frame", frame_attr) if frame_attr
56
-
57
- rules_attr = rules(node)
58
- attrs.add_named("rules", rules_attr) if rules_attr
59
-
60
- # This line should be removed.
61
- return "" if attrs.empty?
62
-
63
- attrs
64
- end
65
- end
66
-
67
- register :table, Table.new
68
- end
69
- end
@@ -1,83 +0,0 @@
1
- module ReverseAdoc
2
- module Converters
3
- class Td < Base
4
- def to_coradoc(node, state = {})
5
- # convert(node, state)
6
- id = node["id"]
7
- colrowattr = colrow(node["colspan"], node["rowspan"])
8
- alignattr = alignstyle(node)
9
- style = cellstyle(node)
10
-
11
- singlepara = node.elements.size == 1 && node.elements.first.name == "p"
12
- state[:tdsinglepara] = singlepara if singlepara
13
-
14
- adoccell = node.at(".//ul | .//ol | .//pre | .//blockquote | .//br | .//hr") ||
15
- node.at(".//p") && !singlepara
16
-
17
- style = "a" if adoccell
18
- delim = adoccell ? "\n" : " "
19
- content = treat_children_coradoc(node, state)
20
- options = {}.tap do |hash|
21
- hash[:id] = id
22
- hash[:colrowattr] = colrowattr
23
- hash[:alignattr] = alignattr
24
- hash[:style] = style
25
- hash[:content] = content
26
- hash[:delim] = delim
27
- end
28
-
29
- Coradoc::Element::Table::Cell.new(options)
30
- end
31
-
32
- def convert(node, state = {})
33
- Coradoc::Generator.gen_adoc(to_coradoc(node, state))
34
- end
35
-
36
- def cellstyle(_node)
37
- ""
38
- end
39
-
40
- def colrow(colspan, rowspan)
41
- if colspan && rowspan && colspan != "1" && rowspan != "1"
42
- "#{colspan}.#{rowspan}+"
43
- elsif colspan && colspan != "1"
44
- "#{colspan}+"
45
- elsif rowspan && rowspan != "1"
46
- ".#{rowspan}+"
47
- else
48
- ""
49
- end
50
- end
51
-
52
- def alignstyle(node)
53
- align = node["align"]
54
- valign = node["valign"]
55
- a = case align
56
- when "left" then "<"
57
- when "center" then "^"
58
- when "right" then ">"
59
- else
60
- ""
61
- end
62
- v = case valign
63
- when "top" then "<"
64
- when "middle" then "^"
65
- when "bottom" then ">"
66
- else
67
- ""
68
- end
69
- if align && valign
70
- "#{a}.#{v}"
71
- elsif align
72
- a
73
- elsif valign
74
- ".#{v}"
75
- else
76
- ""
77
- end
78
- end
79
- end
80
-
81
- register :td, Td.new
82
- end
83
- end
@@ -1,65 +0,0 @@
1
- module ReverseAdoc
2
- module Converters
3
- class Text < Base
4
- def to_coradoc(node, state = {})
5
- return treat_empty(node, state) if node.text.strip.empty?
6
-
7
- Coradoc::Element::TextElement.new(treat_text(node))
8
- end
9
-
10
- def convert(node, state = {})
11
- Coradoc::Generator.gen_adoc(to_coradoc(node, state))
12
- end
13
-
14
- private
15
-
16
- def treat_empty(node, state)
17
- parent = node.parent.name.to_sym
18
- if %i[ol ul].include?(parent) # Otherwise the identation is broken
19
- ""
20
- elsif state[:tdsinglepara]
21
- ""
22
- elsif node.text == " " # Regular whitespace text node
23
- " "
24
- else
25
- ""
26
- end
27
- end
28
-
29
- def treat_text(node)
30
- text = node.text
31
- text = preserve_nbsp(text)
32
- text = remove_border_newlines(text)
33
- text = remove_inner_newlines(text)
34
- text = escape_keychars(text)
35
-
36
- text = preserve_keychars_within_backticks(text)
37
- escape_links(text)
38
- end
39
-
40
- def preserve_nbsp(text)
41
- text.gsub(/\u00A0/, "&nbsp;")
42
- end
43
-
44
- def escape_links(text)
45
- text.gsub(/<<([^>]*)>>/, "\\<<\\1>>")
46
- end
47
-
48
- def remove_border_newlines(text)
49
- text.gsub(/\A\n+/, "").gsub(/\n+\z/, "")
50
- end
51
-
52
- def remove_inner_newlines(text)
53
- text.tr("\n\t", " ").squeeze(" ")
54
- end
55
-
56
- def preserve_keychars_within_backticks(text)
57
- text.gsub(/`.*?`/) do |match|
58
- match.gsub('\_', "_").gsub('\*', "*")
59
- end
60
- end
61
- end
62
-
63
- register :text, Text.new
64
- end
65
- end
@@ -1,14 +0,0 @@
1
- module ReverseAdoc
2
- module Converters
3
- class Th < Td
4
- def cellstyle(node)
5
- # this is the header row
6
- return "" if node.parent.previous_element.nil?
7
-
8
- "h"
9
- end
10
- end
11
-
12
- register :th, Th.new
13
- end
14
- end
@@ -1,22 +0,0 @@
1
- module ReverseAdoc
2
- module Converters
3
- class Tr < Base
4
- def to_coradoc(node, state = {})
5
- content = treat_children_coradoc(node, state)
6
- header = table_header_row?(node)
7
- Coradoc::Element::Table::Row.new(content, header)
8
- end
9
-
10
- def convert(node, state = {})
11
- Coradoc::Generator.gen_adoc(to_coradoc(node, state))
12
- end
13
-
14
- def table_header_row?(node)
15
- # node.element_children.all? {|child| child.name.to_sym == :th}
16
- node.previous_element.nil?
17
- end
18
- end
19
-
20
- register :tr, Tr.new
21
- end
22
- end
@@ -1,29 +0,0 @@
1
- module ReverseAdoc
2
- module Converters
3
- class Video < Base
4
- def to_coradoc(node, _state = {})
5
- src = node["src"]
6
- id = node["id"]
7
- title = extract_title(node)
8
- attributes = Coradoc::Element::AttributeList.new
9
- options = options(node)
10
- attributes.add_named("options", options) if options.any?
11
- Coradoc::Element::Video.new(title, id: id, src: src,
12
- attributes: attributes)
13
- end
14
-
15
- def convert(node, state = {})
16
- Coradoc::Generator.gen_adoc(to_coradoc(node, state))
17
- end
18
-
19
- def options(node)
20
- autoplay = node["autoplay"]
21
- loop_attr = node["loop"]
22
- controls = node["controls"]
23
- [autoplay, loop_attr, controls].compact
24
- end
25
- end
26
-
27
- register :video, Video.new
28
- end
29
- end
@@ -1,32 +0,0 @@
1
- module ReverseAdoc
2
- module Converters
3
- def self.register(tag_name, converter)
4
- @@converters ||= {}
5
- @@converters[tag_name.to_sym] = converter
6
- end
7
-
8
- def self.unregister(tag_name)
9
- @@converters.delete(tag_name.to_sym)
10
- end
11
-
12
- def self.lookup(tag_name)
13
- @@converters[tag_name.to_sym] or default_converter(tag_name)
14
- end
15
-
16
- def self.default_converter(tag_name)
17
- case ReverseAdoc.config.unknown_tags.to_sym
18
- when :pass_through
19
- ReverseAdoc::Converters::PassThrough.new
20
- when :drop
21
- ReverseAdoc::Converters::Drop.new
22
- when :bypass
23
- ReverseAdoc::Converters::Bypass.new
24
- when :raise
25
- raise UnknownTagError, "unknown tag: #{tag_name}"
26
- else
27
- raise InvalidConfigurationError,
28
- "unknown value #{ReverseAdoc.config.unknown_tags.inspect} for ReverseAdoc.config.unknown_tags"
29
- end
30
- end
31
- end
32
- end
@@ -1,10 +0,0 @@
1
- module ReverseAdoc
2
- class Error < StandardError
3
- end
4
-
5
- class UnknownTagError < Error
6
- end
7
-
8
- class InvalidConfigurationError < Error
9
- end
10
- end
@@ -1,61 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require_relative "converters/a"
4
- require_relative "converters/aside"
5
- require_relative "converters/audio"
6
- require_relative "converters/blockquote"
7
- require_relative "converters/br"
8
- require_relative "converters/bypass"
9
- require_relative "converters/code"
10
- require_relative "converters/div"
11
- require_relative "converters/drop"
12
- require_relative "converters/em"
13
- require_relative "converters/figure"
14
- require_relative "converters/h"
15
- require_relative "converters/head"
16
- require_relative "converters/hr"
17
- require_relative "converters/ignore"
18
- require_relative "converters/img"
19
- require_relative "converters/mark"
20
- require_relative "converters/li"
21
- require_relative "converters/ol"
22
- require_relative "converters/p"
23
- require_relative "converters/pass_through"
24
- require_relative "converters/pre"
25
- require_relative "converters/q"
26
- require_relative "converters/strong"
27
- require_relative "converters/sup"
28
- require_relative "converters/sub"
29
- require_relative "converters/table"
30
- require_relative "converters/td"
31
- require_relative "converters/th"
32
- require_relative "converters/text"
33
- require_relative "converters/tr"
34
- require_relative "converters/video"
35
- require_relative "converters/math"
36
-
37
- module ReverseAdoc
38
- class HtmlConverter
39
- def self.to_coradoc(input, options = {})
40
- root = case input
41
- when String
42
- Nokogiri::HTML(input).root
43
- when Nokogiri::XML::Document
44
- input.root
45
- when Nokogiri::XML::Node
46
- input
47
- end
48
-
49
- return "" unless root
50
-
51
- ReverseAdoc.config.with(options) do
52
- ReverseAdoc::Converters.lookup(root.name).to_coradoc(root)
53
- end
54
- end
55
-
56
- def self.convert(input, options = {})
57
- result = Coradoc::Generator.gen_adoc(to_coradoc(input, options))
58
- ReverseAdoc.cleaner.tidy(result)
59
- end
60
- end
61
- end
@@ -1,3 +0,0 @@
1
- module ReverseAdoc
2
- VERSION = "1.0.1".freeze
3
- end
data/lib/reverse_adoc.rb DELETED
@@ -1,27 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require "digest"
4
- require "nokogiri"
5
- require_relative "reverse_adoc/version"
6
- require_relative "reverse_adoc/errors"
7
- require_relative "reverse_adoc/cleaner"
8
- require_relative "reverse_adoc/config"
9
- require_relative "reverse_adoc/converters"
10
- require_relative "reverse_adoc/converters/base"
11
- require_relative "reverse_adoc/html_converter"
12
-
13
- module ReverseAdoc
14
- def self.convert(input, options = {})
15
- ReverseAdoc::HtmlConverter.convert(input, options)
16
- end
17
-
18
- def self.config
19
- @config ||= Config.new
20
- yield @config if block_given?
21
- @config
22
- end
23
-
24
- def self.cleaner
25
- @cleaner ||= Cleaner.new
26
- end
27
- end
@@ -1,30 +0,0 @@
1
- <html>
2
- <body>
3
- some text...
4
- <a href="http://foobar.com">Foobar</a>
5
- <a href="http://foobar.com" title="f***** up beyond all recognition">Fubar</a>
6
- <a href="http://foobar.com" title="f***** up beyond all redemption"/>
7
- <a href="http://strong.foobar.com"><strong>Strong foobar</strong></a>
8
- There should be space before but not after the anchor (<a href="http://foobar.com">stripped</a>).
9
-
10
- do not ignore <a href="foo.html"> </a> anchor tags with no link text
11
- link <a href="#content">internal jumplinks</a> with anchors
12
- link <a href="#content2"/>internal jumplinks without anchors
13
- treat <a id="content">anchor tags with no href</a> as bookmarks
14
-
15
- some text...
16
-
17
- <a href="#a__b spaced">Double __ anchor with space</a>
18
-
19
- Double __ anchor with space <a id="a__b spaced"/>
20
-
21
- <a id="_Toc12345"/>
22
-
23
- <img src="http://foobar.com/logo.png">
24
- <img alt="foobar image" src="http://foobar.com/foobar.png">
25
- <img alt="foobar image 2" title="this is the foobar image 2" src="http://foobar.com/foobar2.png">
26
- some text...
27
-
28
- <h1><a id="a__Foreword"></a>Text</h1>
29
- </body>
30
- </html>
@@ -1,61 +0,0 @@
1
- <html>
2
- <body>
3
- plain text
4
- <h1>h1</h1>
5
- <h1 id="A">h1 with anchor</h1>
6
- <h2>h2</h2>
7
- <h3>h3</h3>
8
- <h4>h4</h4>
9
- <h5>h5</h5>
10
- <h6>h6</h6>
11
-
12
- <em>em tag content</em>
13
- before <em></em> and after empty em tags
14
- before <em> </em> and after em tags containing whitespace
15
- before <em> <em> <br /> </em> </em> and after em tags containing whitespace
16
- <em><em>double em tags</em></em>
17
- <p><em><em>double em tags in p tag</em></em></p>
18
- a<em> em with leading and trailing </em>whitespace
19
- a<em>
20
- em with extra leading and trailing
21
- </em>whitespace
22
-
23
- <strong>strong tag content</strong>
24
- before <strong></strong> and after empty strong tags
25
- before <strong> </strong> and after strong tags containing whitespace
26
- before <strong> <strong> <br /> </strong> </strong> and after strong tags containing whitespace
27
- <strong><strong>double strong tags</strong></strong>
28
- <p><strong><strong>double strong tags in p tag</strong></strong></p>
29
- before
30
- <strong>
31
- <strong>
32
- double strong tags containing whitespace
33
- </strong>
34
- </strong> after
35
- a<strong> strong with leading and trailing </strong>whitespace
36
- a<strong>
37
- strong with extra leading and trailing
38
- </strong>whitespace
39
-
40
- constrai<strong>ned</strong> strong
41
- constrai<i>ned</i> italic
42
-
43
- <b>b tag content</b>
44
- <i>i tag content</i>
45
-
46
- H<sub>2</sub>O
47
- A<sup>2</sup>B
48
-
49
- br tags become double space followed by newline<br/>
50
-
51
- before hr
52
- <hr/>
53
- after hr
54
-
55
- <div>section 1</div>
56
- <div>section 2</div>
57
-
58
- ignore <abbr>abbr</abbr>
59
-
60
- </body>
61
- </html>
@@ -1,22 +0,0 @@
1
- <html>
2
- <body>
3
- <pre>pre block</pre>
4
- <code>code block</code>
5
- <pre><code>pre code block</code></pre>
6
-
7
- <p>Paragraph with inline <code>code</code> block</p>
8
-
9
- <pre><code>var this;
10
- this.is("A multi line code block")
11
- console.log("Yup, it is")
12
- </code></pre>
13
-
14
- Code with indentation:
15
- <pre><code>tell application "Foo"
16
- beep
17
- end tell
18
- </code></pre>
19
-
20
- </body>
21
- </html>
22
-
@@ -1,17 +0,0 @@
1
- <html>
2
- <body>
3
- some text...
4
-
5
- **two asterisks**
6
- ***three asterisks***
7
- ***three *and*the* asterisc*word and asterisc**multword asterisks***
8
- __two underscores__
9
- ___three underscores___
10
- ___three__underscores___ and another_undersocre
11
-
12
- some text...
13
-
14
- <pre><code>var theoretical_max_infin = 1.0;</code></pre>
15
-
16
- </body>
17
- </html>
Binary file
@@ -1,35 +0,0 @@
1
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1 plus MathML 2.0//EN" "http://www.w3.org/Math/DTD/mathml2/xhtml-math11-f.dtd">
2
- <?xml version="1.0" encoding="UTF-8"??><html xmlns="http://www.w3.org/1999/xhtml" style="margin: 0;">
3
- <!--This file was converted to xhtml by LibreOffice - see http://cgit.freedesktop.org/libreoffice/core/tree/filter/source/xslt for the code.--><head profile="http://dublincore.org/documents/dcmi-terms/">
4
- <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=utf-8">
5
- <meta name="DCTERMS.title" content="" xml:lang="en-US">
6
- <meta name="DCTERMS.language" content="en-US" scheme="DCTERMS.RFC4646">
7
- <meta name="DCTERMS.source" content="http://xml.openoffice.org/odf2xhtml">
8
- <meta name="DCTERMS.creator" content="Nick Nicholas">
9
- <meta name="DCTERMS.issued" content="2019-11-21T08:48:00" scheme="DCTERMS.W3CDTF">
10
- <meta name="DCTERMS.contributor" content="Nick Nicholas">
11
- <meta name="DCTERMS.modified" content="2019-11-21T10:01:00" scheme="DCTERMS.W3CDTF">
12
- <meta name="DCTERMS.provenance" content="" xml:lang="en-US">
13
- <meta name="DCTERMS.subject" content="," xml:lang="en-US">
14
- <link rel="schema.DC" href="http://purl.org/dc/elements/1.1/" hreflang="en">
15
- <link rel="schema.DCTERMS" href="http://purl.org/dc/terms/" hreflang="en">
16
- <link rel="schema.DCTYPE" href="http://purl.org/dc/dcmitype/" hreflang="en">
17
- <link rel="schema.DCAM" href="http://purl.org/dc/dcam/" hreflang="en">
18
- </head>
19
- <body dir="ltr" style="max-width: 21.001cm; margin: 2.54cm 3.175cm;">
20
- <h1 class="P3" style="clear: both; color: #2f5496; font-size: 16pt; font-family: Calibri Light; writing-mode: lr-tb; margin: 0.423cm 0 0cm;" align="left ! important">
21
- <a id="a__Hello" style="margin: 0;"><span style="margin: 0;"></span></a><span class="T1" style="margin: 0;">Hello</span>
22
- </h1>
23
- <p class="P1" style="font-size: 12pt; font-family: Calibri; writing-mode: lr-tb; margin: 0;" align="left ! important"> </p>
24
- <p class="Standard" style="font-size: 12pt; font-family: Calibri; writing-mode: lr-tb; margin: 0;" align="left ! important"><span class="T1" style="margin: 0;">H</span><h1 class="T3" style="vertical-align: super; font-size: 58%; margin: 0;">2</h1><span class="T1" style="margin: 0;">0</span></p>
25
- <p class="P1" style="font-size: 12pt; font-family: Calibri; writing-mode: lr-tb; margin: 0;" align="left ! important"> </p>
26
- <!--Next 'div' was a 'text:p'.--><div class="Standard" style="font-size: 12pt; font-family: Calibri; writing-mode: lr-tb; margin: 0;" align="left ! important">
27
- <!--Next ' span' is a draw:frame. --><span style="margin: 0;"><math xmlns="http://www.w3.org/1998/Math/MathML" display="block" style="margin: 0;"><mrow style="margin: 0;"><mrow style="margin: 0;"><mrow style="margin: 0;"></mrow><mrow style="margin: 0;"><mi style="margin: 0;">i</mi><mo stretchy="false" style="margin: 0;">=</mo><mn style="margin: 0;">1</mn></mrow></mrow><mrow style="margin: 0;"><mrow style="margin: 0;"></mrow><mi style="margin: 0;">n</mi><msubsup style="margin: 0;"><mi style="margin: 0;">β</mi><mn style="margin: 0;">2</mn><mi style="margin: 0;">i</mi></msubsup></mrow></mrow></math></span>
28
- </div>
29
- <div style="clear: both; line-height: 0; width: 0; height: 0; margin: 0; padding: 0;"> </div>
30
- <!--Next 'div' was a 'text:p'.--><div class="Standard" style="font-size: 12pt; font-family: Calibri; writing-mode: lr-tb; margin: 0;" align="left ! important">
31
- <a id="_GoBack" style="margin: 0;"></a><!--Next ' span' is a draw:frame. --><span style="height: 1.764cm; margin: 0cm; padding: 0; border: none; width: 1.764cm; font-size: 12pt; font-family: Calibri; text-align: center; vertical-align: top; background-color: transparent;" class="fr1" id="Εικόνα_2"><img style="height: 1.764cm; width: 1.764cm; margin: 0;" alt="" src="data:image/gif;base64,R0lGODlhZABkAIAAAAAAAP///ywAAAAAZABkAEAC+4yPqcvtD6OctNqLs968XwCGokd24kidYckuKri9cFvKQCzTdG7x+u+y+YDECqqIzByTzKbzCY1Kp9Sq9eoQKrTY1Ev57TJsuLA4Meylz8HTxMz2LOPFOR1ov+v3/L7/DxgoOEj4IcRVeLA2Bue3CEHGF2nYyDaJcWn5+LZ5lamm0tf5MHpWilYJ6INymmiQ52q0EqsBSythews5qwt60wscLDxMXGx8jJysvMzc7PwM7XmYWzh9SPuJmuq43Raq2ooQbpUdMT5Vbn4ela7+fdfu/h4Xv9stfS/vBr+uPa+Zz94/gPvADCRY0FdCfgdxBezSr1+Vh+Iaclu4KoSiKGsSL9YTRu1YSGMji5UkdnJYSpC8nq0M9hJYzF4zo9m8iTOnzigFAAAh/tNUaGlzIGZpbGUgd2FzIGNyZWF0ZWQgYnkNDUdyYXBoaWMgV29ya3Nob3CZIFByb2Zlc3Npb25hbCAyLjBhDQ1mcm9tIEFsY2hlbXkgTWluZHdvcmtzIEluYy4NaHR0cDovL3d3dy5taW5kd29ya3Nob3AuY29tDQ1UaGlzIGltYWdlIG1heSBoYXZlIGJlZW4gY3JlYXRlZCBieQ1hIHBhcnR5IG90aGVyIHRoYW4gQWxjaGVteSBNaW5kd29ya3MgSW5jLg0NVXNlIG5vIGhvb2tzADs="></span>
32
- </div>
33
- <div style="clear: both; line-height: 0; width: 0; height: 0; margin: 0; padding: 0;"> </div>
34
- </body>
35
- </html>
@@ -1,23 +0,0 @@
1
- <p>
2
- <strong>
3
- <strong>
4
- .<br />
5
- </strong>
6
- *** intentcast
7
- </strong>
8
- : logo design
9
- <strong>
10
- <strong>
11
- <br />
12
- </strong>
13
- </strong>
14
- <strong>
15
- <strong>
16
- .
17
- </strong>
18
- </strong>
19
- </p>
20
-
21
- <a href="example.com/foo_bar">
22
- <img src="example.com/foo_bar.png"> I\_AM\_HELPFUL
23
- </a>