html2doc 0.8.9 → 0.8.10
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.travis.yml +12 -12
- data/Gemfile.lock +7 -9
- data/README.adoc +9 -8
- data/appveyor.yml +30 -0
- data/html2doc.gemspec +1 -2
- data/lib/html2doc/math.rb +8 -7
- data/lib/html2doc/version.rb +1 -1
- data/spec/html2doc_spec.rb +244 -230
- metadata +4 -18
- data/lib/html2doc/mathml2omml.xsl +0 -3822
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d6f39dba753a7c5dd51015dae21f9ea71e236786c11bb0dd36b91e9865e0c312
|
4
|
+
data.tar.gz: 5cdaae58206a346c6d160fe881d1a9f8a2bb28f4c6e71d81570d5f4b90ab607b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: cc6685a80b9b18c21eaf3720e15dd31ce7e9395e4649238ea8b54c34949c95c9b204b6205bd8e33fae2439f847330442b37b2108401ddb35f18281f57cbb184d
|
7
|
+
data.tar.gz: 8c992042353b57b39b906a73a4a5af33965033a25b6e198a2eb96835683d0bc36791641006cd0119e8375ba36fde95a07261438fb2a01f0b1bff758f45045a51
|
data/.travis.yml
CHANGED
@@ -1,16 +1,16 @@
|
|
1
|
-
dist: trusty
|
2
1
|
language: ruby
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
2
|
+
cache: bundler
|
3
|
+
os:
|
4
|
+
- linux
|
5
|
+
- osx
|
8
6
|
rvm:
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
7
|
+
- 2.5
|
8
|
+
- 2.4
|
9
|
+
- 2.3
|
10
|
+
- ruby-head
|
11
|
+
before_install:
|
12
|
+
- gem install bundler -v 2.0.1
|
13
|
+
- bundle update
|
14
14
|
matrix:
|
15
15
|
allow_failures:
|
16
|
-
- rvm: ruby-head
|
16
|
+
- rvm: ruby-head
|
data/Gemfile.lock
CHANGED
@@ -1,13 +1,12 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
html2doc (0.8.
|
4
|
+
html2doc (0.8.10)
|
5
5
|
asciimath (~> 1.0.7)
|
6
6
|
htmlentities (~> 4.3.4)
|
7
7
|
image_size
|
8
8
|
mime-types
|
9
9
|
nokogiri
|
10
|
-
ruby-xslt
|
11
10
|
thread_safe
|
12
11
|
uuidtools
|
13
12
|
|
@@ -40,7 +39,7 @@ GEM
|
|
40
39
|
rspec (>= 2.99.0, < 4.0)
|
41
40
|
htmlentities (4.3.4)
|
42
41
|
image_size (2.0.0)
|
43
|
-
json (2.
|
42
|
+
json (2.2.0)
|
44
43
|
listen (3.1.5)
|
45
44
|
rb-fsevent (~> 0.9, >= 0.9.4)
|
46
45
|
rb-inotify (~> 0.9, >= 0.9.7)
|
@@ -49,16 +48,16 @@ GEM
|
|
49
48
|
method_source (0.9.2)
|
50
49
|
mime-types (3.2.2)
|
51
50
|
mime-types-data (~> 3.2015)
|
52
|
-
mime-types-data (3.
|
51
|
+
mime-types-data (3.2019.0331)
|
53
52
|
mini_portile2 (2.4.0)
|
54
53
|
nenv (0.3.0)
|
55
|
-
nokogiri (1.10.
|
54
|
+
nokogiri (1.10.2)
|
56
55
|
mini_portile2 (~> 2.4.0)
|
57
56
|
notiffany (0.1.1)
|
58
57
|
nenv (~> 0.1)
|
59
58
|
shellany (~> 0.0)
|
60
|
-
parallel (1.
|
61
|
-
parser (2.6.
|
59
|
+
parallel (1.17.0)
|
60
|
+
parser (2.6.2.1)
|
62
61
|
ast (~> 2.4.0)
|
63
62
|
powerpack (0.1.2)
|
64
63
|
pry (0.12.2)
|
@@ -92,7 +91,6 @@ GEM
|
|
92
91
|
ruby-progressbar (~> 1.7)
|
93
92
|
unicode-display_width (~> 1.0, >= 1.0.1)
|
94
93
|
ruby-progressbar (1.10.0)
|
95
|
-
ruby-xslt (0.9.10)
|
96
94
|
ruby_dep (1.5.0)
|
97
95
|
shellany (0.0.1)
|
98
96
|
simplecov (0.16.1)
|
@@ -103,7 +101,7 @@ GEM
|
|
103
101
|
thor (0.20.3)
|
104
102
|
thread_safe (0.3.6)
|
105
103
|
timecop (0.9.1)
|
106
|
-
unicode-display_width (1.
|
104
|
+
unicode-display_width (1.5.0)
|
107
105
|
uuidtools (2.1.5)
|
108
106
|
|
109
107
|
PLATFORMS
|
data/README.adoc
CHANGED
@@ -1,8 +1,9 @@
|
|
1
1
|
= Html2Doc
|
2
2
|
|
3
3
|
image:https://img.shields.io/gem/v/html2doc.svg["Gem Version", link="https://rubygems.org/gems/html2doc"]
|
4
|
-
image:https://img.shields.io/travis/
|
5
|
-
image:https://
|
4
|
+
image:https://img.shields.io/travis/metanorma/html2doc/master.svg["Build Status", link="https://travis-ci.org/metanorma/html2doc"]
|
5
|
+
image:https://ci.appveyor.com/api/projects/status/reqae7y99cfd0yod?svg=true["Appveyor Build Status", link="https://ci.appveyor.com/project/ribose/html2doc"]
|
6
|
+
image:https://codeclimate.com/github/metanorma/html2doc/badges/gpa.svg["Code Climate", link="https://codeclimate.com/github/metanorma/html2doc"]
|
6
7
|
|
7
8
|
== Purpose
|
8
9
|
|
@@ -10,9 +11,9 @@ Gem to convert an HTML document into a Word document (.doc) format. This is inte
|
|
10
11
|
|
11
12
|
== Origin
|
12
13
|
|
13
|
-
This gem originated out of https://github.com/
|
14
|
+
This gem originated out of https://github.com/metanorma/metanorma-iso, which creates a Word document from a automatically generated HTML document (created in turn by processing Asciidoc).
|
14
15
|
|
15
|
-
This work is driven by the Word document generation procedure documented in http://sebsauvage.net/wiki/doku.php?id=word_document_generation. For more on the approach taken, and on alternative approaches, see https://github.com/
|
16
|
+
This work is driven by the Word document generation procedure documented in http://sebsauvage.net/wiki/doku.php?id=word_document_generation. For more on the approach taken, and on alternative approaches, see https://github.com/metanorma/html2doc/wiki/Why-not-docx%3F
|
16
17
|
|
17
18
|
== Functions
|
18
19
|
|
@@ -30,7 +31,7 @@ The gem currently does the following:
|
|
30
31
|
* Inject Microsoft Word-specific CSS into the HTML document. If a CSS file is not supplied, the CSS file used is at `lib/html2doc/wordstyle.css` is used by default. Microsoft Word HTML has particular requirements from its CSS, and you should review the sample CSS before replacing it with your own. (This generic CSS can be overridden by CSS already in the HTML document, since the generic CSS is injected at the top of the document.)
|
31
32
|
* Bundle up the local images, the HTML file of the document proper, and the `header.html` file representing header/footer information, into a MIME file, and save that file to disk (so that Microsoft Word can deal with it as a Word file.)
|
32
33
|
|
33
|
-
For a representative generator of HTML that uses this gem in postprocessing, see https://github.com/
|
34
|
+
For a representative generator of HTML that uses this gem in postprocessing, see https://github.com/metanorma/metanorma-iso
|
34
35
|
|
35
36
|
== Constraints
|
36
37
|
|
@@ -57,7 +58,7 @@ Html2Doc.process(result, filename: filename, stylesheet: stylesheet, header_file
|
|
57
58
|
result:: is the Html document to be converted into Word, as a string.
|
58
59
|
filename:: is the name the document is to be saved as, without a file suffix
|
59
60
|
stylesheet:: is the full path filename of the CSS stylesheet for Microsoft Word-specific styles. If this is not provided, the program will used the default stylesheet included in the gem, `lib/html2doc/wordstyle.css`. The stylsheet provided must match this stylesheet; you can obtain one by saving a Word document with your desired styles to HTML, and extracting the style definitions from the HTML document header.
|
60
|
-
header_filename:: is the filename of the HTML document containing header and footer for the document, as well as footnote/endnote separators; if there is none, use nil. To generate your own such document, save a Word document with headers/footers and/or footnote/endnote separators as an HTML document; the `header.html` will be in the `{filename}.fld` folder generated along with the HTML. A sample file is available at https://github.com/
|
61
|
+
header_filename:: is the filename of the HTML document containing header and footer for the document, as well as footnote/endnote separators; if there is none, use nil. To generate your own such document, save a Word document with headers/footers and/or footnote/endnote separators as an HTML document; the `header.html` will be in the `{filename}.fld` folder generated along with the HTML. A sample file is available at https://github.com/metanorma/metanorma-iso/blob/master/lib/asciidoctor/iso/word/header.html
|
61
62
|
dir:: is the folder that any ancillary files (images, headers, filelist) are to be saved to. If not provided, it will be created as `{filename}_files`. Anything in the directory will be attached to the Word document; so this folder should only contain the images that accompany the document. (If the images are elsewhere on the local drive, the gem will move them into the folder. External URL images are left alone, and are not downloaded.)
|
62
63
|
asciimathdelims:: are the AsciiMath delimiters used in the text (an array of an opening and a closing delimiter). If none are provided, no AsciiMath conversion is attempted.
|
63
64
|
liststyles:: a hash of list style labels in Word CSS, which are used to define the behaviour of list item labels (e.g. _i)_ vs _i._). The gem recognises the hash keys `ul`, `ol`. So if the appearance of an ordered list's item labels in the supplied stylesheet is governed by style `@list l1` (e.g. `@list l1:level1 {mso-level-text:"%1\)";}` appears in the stylesheet), call the method with `liststyles:{ol: "l1"}`.
|
@@ -75,7 +76,7 @@ $ bin/html2doc --header header.html --stylesheet stylesheet.css filename.html
|
|
75
76
|
|
76
77
|
=== Converting document output to "`Native Word`" (`.docx`)
|
77
78
|
|
78
|
-
The generated Word document is not quite in the most "`native`" format used by Word, `.docx`: it outputs the older `.doc` format. (See https://github.com/
|
79
|
+
The generated Word document is not quite in the most "`native`" format used by Word, `.docx`: it outputs the older `.doc` format. (See https://github.com/metanorma/html2doc/wiki/Why-not-docx%3F for the reasons why.)
|
79
80
|
|
80
81
|
Here are the steps to convert our output into native-`docx`.
|
81
82
|
|
@@ -126,4 +127,4 @@ By default, mathematical formulas that are the only content of their paragraph a
|
|
126
127
|
|
127
128
|
== Example
|
128
129
|
|
129
|
-
The `spec/examples` directory includes `rice.doc` and its source files: this Word document has been generated from `rice.html` through a call to html2doc from https://github.com/
|
130
|
+
The `spec/examples` directory includes `rice.doc` and its source files: this Word document has been generated from `rice.html` through a call to html2doc from https://github.com/metanorma/metanorma-iso. (The source document `rice.html` was itself generated from Asciidoc, rather than being hand-crafted.)
|
data/appveyor.yml
ADDED
@@ -0,0 +1,30 @@
|
|
1
|
+
version: '{build}'
|
2
|
+
|
3
|
+
environment:
|
4
|
+
matrix:
|
5
|
+
- RUBY_VERSION: 25
|
6
|
+
- RUBY_VERSION: 24
|
7
|
+
- RUBY_VERSION: 23
|
8
|
+
- RUBY_VERSION: _trunk
|
9
|
+
|
10
|
+
matrix:
|
11
|
+
allow_failures:
|
12
|
+
- RUBY_VERSION: _trunk
|
13
|
+
|
14
|
+
install:
|
15
|
+
- ps: . { iwr -useb https://raw.githubusercontent.com/metanorma/metanorma-build-scripts/master/appveyor.ps1 } | iex
|
16
|
+
- refreshenv
|
17
|
+
|
18
|
+
build_script:
|
19
|
+
- set PATH=C:\Ruby%RUBY_VERSION%\bin;%PATH%
|
20
|
+
- bundle update
|
21
|
+
- bundle install
|
22
|
+
|
23
|
+
before_test:
|
24
|
+
- ruby -v
|
25
|
+
- gem -v
|
26
|
+
- bundle -v
|
27
|
+
|
28
|
+
test_script:
|
29
|
+
- bundle exec rake
|
30
|
+
|
data/html2doc.gemspec
CHANGED
@@ -16,7 +16,7 @@ Gem::Specification.new do |spec|
|
|
16
16
|
This gem is in active development.
|
17
17
|
DESCRIPTION
|
18
18
|
|
19
|
-
spec.homepage = "https://github.com/
|
19
|
+
spec.homepage = "https://github.com/metanorma/html2doc"
|
20
20
|
spec.licenses = ["CC-BY-SA-3.0", "BSD-2-Clause"]
|
21
21
|
|
22
22
|
spec.bindir = "bin"
|
@@ -31,7 +31,6 @@ Gem::Specification.new do |spec|
|
|
31
31
|
spec.add_dependency "nokogiri"
|
32
32
|
spec.add_dependency "thread_safe"
|
33
33
|
spec.add_dependency "uuidtools"
|
34
|
-
spec.add_dependency "ruby-xslt"
|
35
34
|
spec.add_dependency "asciimath", "~> 1.0.7"
|
36
35
|
|
37
36
|
spec.add_development_dependency "bundler", "~> 2.0.1"
|
data/lib/html2doc/math.rb
CHANGED
@@ -2,12 +2,8 @@ require "uuidtools"
|
|
2
2
|
require "asciimath"
|
3
3
|
require "htmlentities"
|
4
4
|
require "nokogiri"
|
5
|
-
require "xml/xslt"
|
6
5
|
|
7
6
|
module Html2Doc
|
8
|
-
@xslt = XML::XSLT.new
|
9
|
-
@xslt.xsl = File.read(File.join(File.dirname(__FILE__), "mathml2omml.xsl"))
|
10
|
-
@xslt.xsl = File.read(File.join(File.dirname(__FILE__), "mml2omml.xsl"), encoding: "utf-8")
|
11
7
|
@xsltemplate = Nokogiri::XSLT(File.read(File.join(File.dirname(__FILE__), "mml2omml.xsl"), encoding: "utf-8"))
|
12
8
|
|
13
9
|
def self.asciimath_to_mathml1(x)
|
@@ -33,7 +29,7 @@ module Html2Doc
|
|
33
29
|
x1.children = x
|
34
30
|
end
|
35
31
|
m.add_namespace(nil, "http://www.w3.org/1998/Math/MathML")
|
36
|
-
m
|
32
|
+
m
|
37
33
|
end
|
38
34
|
|
39
35
|
def self.mathml_to_ooml(docxml)
|
@@ -41,8 +37,13 @@ module Html2Doc
|
|
41
37
|
m = docxml.xpath("//*[local-name() = 'math']")
|
42
38
|
m.each_with_index do |x, i|
|
43
39
|
warn "Math OOXML #{i} of #{m.size}" if i % 100 == 0 && m.size > 500 && i > 0
|
44
|
-
|
45
|
-
|
40
|
+
element = ooxml_cleanup(x, docnamespaces)
|
41
|
+
|
42
|
+
doc = Nokogiri::XML::Document::new()
|
43
|
+
doc.root = element
|
44
|
+
|
45
|
+
ooxml = @xsltemplate.transform(doc).to_s.
|
46
|
+
gsub(/<\?[^>]+>\s*/, "").
|
46
47
|
gsub(/ xmlns(:[^=]+)?="[^"]+"/, "").
|
47
48
|
gsub(%r{<(/)?([a-z])}, "<\\1m:\\2")
|
48
49
|
ooxml = uncenter(x, ooxml)
|
data/lib/html2doc/version.rb
CHANGED
data/spec/html2doc_spec.rb
CHANGED
@@ -1,10 +1,12 @@
|
|
1
|
+
require "base64"
|
2
|
+
|
1
3
|
def html_input(x)
|
2
4
|
<<~HTML
|
3
5
|
<html><head><title>blank</title>
|
4
6
|
<meta name="Originator" content="Me"/>
|
5
7
|
</head>
|
6
8
|
<body>
|
7
|
-
|
9
|
+
#{x}
|
8
10
|
</body></html>
|
9
11
|
HTML
|
10
12
|
end
|
@@ -15,7 +17,7 @@ def html_input_no_title(x)
|
|
15
17
|
<meta name="Originator" content="Me"/>
|
16
18
|
</head>
|
17
19
|
<body>
|
18
|
-
|
20
|
+
#{x}
|
19
21
|
</body></html>
|
20
22
|
HTML
|
21
23
|
end
|
@@ -24,7 +26,7 @@ def html_input_empty_head(x)
|
|
24
26
|
<<~HTML
|
25
27
|
<html><head></head>
|
26
28
|
<body>
|
27
|
-
|
29
|
+
#{x}
|
28
30
|
</body></html>
|
29
31
|
HTML
|
30
32
|
end
|
@@ -65,7 +67,7 @@ def word_body(x, fn)
|
|
65
67
|
<<~BODY
|
66
68
|
<body>
|
67
69
|
#{x}
|
68
|
-
#{fn}</body></html>
|
70
|
+
#{fn}</body></html>
|
69
71
|
BODY
|
70
72
|
end
|
71
73
|
|
@@ -73,7 +75,7 @@ WORD_FTR1 = <<~FTR
|
|
73
75
|
------=_NextPart_
|
74
76
|
Content-Location: file:///C:/Doc/test_files/filelist.xml
|
75
77
|
Content-Transfer-Encoding: base64
|
76
|
-
Content-Type:
|
78
|
+
Content-Type: #{Html2Doc::mime_type('filelist.xml')}
|
77
79
|
|
78
80
|
PHhtbCB4bWxuczpvPSJ1cm46c2NoZW1hcy1taWNyb3NvZnQtY29tOm9mZmljZTpvZmZpY2UiPgog
|
79
81
|
ICAgICAgIDxvOk1haW5GaWxlIEhSZWY9Ii4uL3Rlc3QuaHRtIi8+ICA8bzpGaWxlIEhSZWY9ImZp
|
@@ -86,194 +88,18 @@ WORD_FTR2 = <<~FTR
|
|
86
88
|
------=_NextPart_
|
87
89
|
Content-Location: file:///C:/Doc/test_files/filelist.xml
|
88
90
|
Content-Transfer-Encoding: base64
|
89
|
-
Content-Type:
|
91
|
+
Content-Type: #{Html2Doc::mime_type('filelist.xml')}
|
90
92
|
PHhtbCB4bWxuczpvPSJ1cm46c2NoZW1hcy1taWNyb3NvZnQtY29tOm9mZmljZTpvZmZpY2UiPgog
|
91
93
|
ICAgICAgIDxvOk1haW5GaWxlIEhSZWY9Ii4uL3Rlc3QuaHRtIi8+ICA8bzpGaWxlIEhSZWY9ImZp
|
92
94
|
bGVsaXN0LnhtbCIvPgogIDxvOkZpbGUgSFJlZj0iaGVhZGVyLmh0bWwiLz4KPC94bWw+Cg==
|
93
95
|
------=_NextPart_
|
94
|
-
Content-Location: file:///C:/Doc/test_files/header.html
|
95
|
-
Content-Transfer-Encoding: base64
|
96
|
-
Content-Type: text/html charset="utf-8"
|
97
|
-
PGh0bWwgeG1sbnM6dj0idXJuOnNjaGVtYXMtbWljcm9zb2Z0LWNvbTp2bWwiDQp4bWxuczpvPSJ1
|
98
|
-
cm46c2NoZW1hcy1taWNyb3NvZnQtY29tOm9mZmljZTpvZmZpY2UiDQp4bWxuczp3PSJ1cm46c2No
|
99
|
-
ZW1hcy1taWNyb3NvZnQtY29tOm9mZmljZTp3b3JkIg0KeG1sbnM6bT0iaHR0cDovL3NjaGVtYXMu
|
100
|
-
bWljcm9zb2Z0LmNvbS9vZmZpY2UvMjAwNC8xMi9vbW1sIg0KeG1sbnM6bXY9Imh0dHA6Ly9tYWNW
|
101
|
-
bWxTY2hlbWFVcmkiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwIj4NCg0K
|
102
|
-
PGhlYWQ+DQo8bWV0YSBuYW1lPVRpdGxlIGNvbnRlbnQ9IiI+DQo8bWV0YSBuYW1lPUtleXdvcmRz
|
103
|
-
IGNvbnRlbnQ9IiI+DQo8bWV0YSBodHRwLWVxdWl2PUNvbnRlbnQtVHlwZSBjb250ZW50PSJ0ZXh0
|
104
|
-
L2h0bWw7IGNoYXJzZXQ9dXRmLTgiPg0KPG1ldGEgbmFtZT1Qcm9nSWQgY29udGVudD1Xb3JkLkRv
|
105
|
-
Y3VtZW50Pg0KPG1ldGEgbmFtZT1HZW5lcmF0b3IgY29udGVudD0iTWljcm9zb2Z0IFdvcmQgMTUi
|
106
|
-
Pg0KPG1ldGEgbmFtZT1PcmlnaW5hdG9yIGNvbnRlbnQ9Ik1pY3Jvc29mdCBXb3JkIDE1Ij4NCjxs
|
107
|
-
aW5rIGlkPU1haW4tRmlsZSByZWw9TWFpbi1GaWxlIGhyZWY9IkZJTEVOQU1FLmh0bWwiPg0KPCEt
|
108
|
-
LVtpZiBndGUgbXNvIDldPjx4bWw+DQogPG86c2hhcGVkZWZhdWx0cyB2OmV4dD0iZWRpdCIgc3Bp
|
109
|
-
ZG1heD0iMjA0OSIvPg0KPC94bWw+PCFbZW5kaWZdLS0+DQo8L2hlYWQ+DQoNCjxib2R5IGxhbmc9
|
110
|
-
RU4gbGluaz1ibHVlIHZsaW5rPSIjOTU0RjcyIj4NCg0KPGRpdiBzdHlsZT0nbXNvLWVsZW1lbnQ6
|
111
|
-
Zm9vdG5vdGUtc2VwYXJhdG9yJyBpZD1mcz4NCg0KPHAgY2xhc3M9TXNvTm9ybWFsIHN0eWxlPSdt
|
112
|
-
YXJnaW4tYm90dG9tOjBjbTttYXJnaW4tYm90dG9tOi4wMDAxcHQ7bGluZS1oZWlnaHQ6DQpub3Jt
|
113
|
-
YWwnPjxzcGFuIGxhbmc9RU4tR0I+PHNwYW4gc3R5bGU9J21zby1zcGVjaWFsLWNoYXJhY3Rlcjpm
|
114
|
-
b290bm90ZS1zZXBhcmF0b3InPjwhW2lmICFzdXBwb3J0Rm9vdG5vdGVzXT4NCg0KPGhyIGFsaWdu
|
115
|
-
PWxlZnQgc2l6ZT0xIHdpZHRoPSIzMyUiPg0KDQo8IVtlbmRpZl0+PC9zcGFuPjwvc3Bhbj48L3A+
|
116
|
-
DQoNCjwvZGl2Pg0KDQo8ZGl2IHN0eWxlPSdtc28tZWxlbWVudDpmb290bm90ZS1jb250aW51YXRp
|
117
|
-
b24tc2VwYXJhdG9yJyBpZD1mY3M+DQoNCjxwIGNsYXNzPU1zb05vcm1hbCBzdHlsZT0nbWFyZ2lu
|
118
|
-
LWJvdHRvbTowY207bWFyZ2luLWJvdHRvbTouMDAwMXB0O2xpbmUtaGVpZ2h0Og0Kbm9ybWFsJz48
|
119
|
-
c3BhbiBsYW5nPUVOLUdCPjxzcGFuIHN0eWxlPSdtc28tc3BlY2lhbC1jaGFyYWN0ZXI6Zm9vdG5v
|
120
|
-
dGUtY29udGludWF0aW9uLXNlcGFyYXRvcic+PCFbaWYgIXN1cHBvcnRGb290bm90ZXNdPg0KDQo8
|
121
|
-
aHIgYWxpZ249bGVmdCBzaXplPTE+DQoNCjwhW2VuZGlmXT48L3NwYW4+PC9zcGFuPjwvcD4NCg0K
|
122
|
-
PC9kaXY+DQoNCjxkaXYgc3R5bGU9J21zby1lbGVtZW50OmVuZG5vdGUtc2VwYXJhdG9yJyBpZD1l
|
123
|
-
cz4NCg0KPHAgY2xhc3M9TXNvTm9ybWFsIHN0eWxlPSdtYXJnaW4tYm90dG9tOjBjbTttYXJnaW4t
|
124
|
-
Ym90dG9tOi4wMDAxcHQ7bGluZS1oZWlnaHQ6DQpub3JtYWwnPjxzcGFuIGxhbmc9RU4tR0I+PHNw
|
125
|
-
YW4gc3R5bGU9J21zby1zcGVjaWFsLWNoYXJhY3Rlcjpmb290bm90ZS1zZXBhcmF0b3InPjwhW2lm
|
126
|
-
ICFzdXBwb3J0Rm9vdG5vdGVzXT4NCg0KPGhyIGFsaWduPWxlZnQgc2l6ZT0xIHdpZHRoPSIzMyUi
|
127
|
-
Pg0KDQo8IVtlbmRpZl0+PC9zcGFuPjwvc3Bhbj48L3A+DQoNCjwvZGl2Pg0KDQo8ZGl2IHN0eWxl
|
128
|
-
PSdtc28tZWxlbWVudDplbmRub3RlLWNvbnRpbnVhdGlvbi1zZXBhcmF0b3InIGlkPWVjcz4NCg0K
|
129
|
-
PHAgY2xhc3M9TXNvTm9ybWFsIHN0eWxlPSdtYXJnaW4tYm90dG9tOjBjbTttYXJnaW4tYm90dG9t
|
130
|
-
Oi4wMDAxcHQ7bGluZS1oZWlnaHQ6DQpub3JtYWwnPjxzcGFuIGxhbmc9RU4tR0I+PHNwYW4gc3R5
|
131
|
-
bGU9J21zby1zcGVjaWFsLWNoYXJhY3Rlcjpmb290bm90ZS1jb250aW51YXRpb24tc2VwYXJhdG9y
|
132
|
-
Jz48IVtpZiAhc3VwcG9ydEZvb3Rub3Rlc10+DQoNCjxociBhbGlnbj1sZWZ0IHNpemU9MT4NCg0K
|
133
|
-
PCFbZW5kaWZdPjwvc3Bhbj48L3NwYW4+PC9wPg0KDQo8L2Rpdj4NCg0KPGRpdiBzdHlsZT0nbXNv
|
134
|
-
LWVsZW1lbnQ6aGVhZGVyJyBpZD1laDE+DQoNCjxwIGNsYXNzPU1zb0hlYWRlciBhbGlnbj1sZWZ0
|
135
|
-
IHN0eWxlPSd0ZXh0LWFsaWduOmxlZnQ7bGluZS1oZWlnaHQ6MTIuMHB0Ow0KbXNvLWxpbmUtaGVp
|
136
|
-
Z2h0LXJ1bGU6ZXhhY3RseSc+PHNwYW4gbGFuZz1FTi1HQj5JU08vSUVDJm5ic3A7Q0QgMTczMDEt
|
137
|
-
MToyMDE2KEUpPC9zcGFuPjwvcD4NCg0KPC9kaXY+DQoNCjxkaXYgc3R5bGU9J21zby1lbGVtZW50
|
138
|
-
OmhlYWRlcicgaWQ9aDE+DQoNCjxwIGNsYXNzPU1zb0hlYWRlciBzdHlsZT0nbWFyZ2luLWJvdHRv
|
139
|
-
bToxOC4wcHQnPjxzcGFuIGxhbmc9RU4tR0INCnN0eWxlPSdmb250LXNpemU6MTAuMHB0O21zby1i
|
140
|
-
aWRpLWZvbnQtc2l6ZToxMS4wcHQ7Zm9udC13ZWlnaHQ6bm9ybWFsJz7CqQ0KSVNPL0lFQyZuYnNw
|
141
|
-
OzIwMTYmbmJzcDvigJMgQWxsIHJpZ2h0cyByZXNlcnZlZDwvc3Bhbj48c3BhbiBsYW5nPUVOLUdC
|
142
|
-
DQpzdHlsZT0nZm9udC13ZWlnaHQ6bm9ybWFsJz48bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQoNCjwv
|
143
|
-
ZGl2Pg0KDQo8ZGl2IHN0eWxlPSdtc28tZWxlbWVudDpmb290ZXInIGlkPWVmMT4NCg0KPHAgY2xh
|
144
|
-
c3M9TXNvRm9vdGVyIHN0eWxlPSdtYXJnaW4tdG9wOjEyLjBwdDtsaW5lLWhlaWdodDoxMi4wcHQ7
|
145
|
-
bXNvLWxpbmUtaGVpZ2h0LXJ1bGU6DQpleGFjdGx5Jz48IS0tW2lmIHN1cHBvcnRGaWVsZHNdPjxi
|
146
|
-
IHN0eWxlPSdtc28tYmlkaS1mb250LXdlaWdodDpub3JtYWwnPjxzcGFuDQpsYW5nPUVOLUdCIHN0
|
147
|
-
eWxlPSdmb250LXNpemU6MTAuMHB0O21zby1iaWRpLWZvbnQtc2l6ZToxMS4wcHQnPjxzcGFuDQpz
|
148
|
-
dHlsZT0nbXNvLWVsZW1lbnQ6ZmllbGQtYmVnaW4nPjwvc3Bhbj48c3Bhbg0Kc3R5bGU9J21zby1z
|
149
|
-
cGFjZXJ1bjp5ZXMnPsKgPC9zcGFuPlBBR0U8c3BhbiBzdHlsZT0nbXNvLXNwYWNlcnVuOnllcyc+
|
150
|
-
wqDCoA0KPC9zcGFuPlwqIE1FUkdFRk9STUFUIDxzcGFuIHN0eWxlPSdtc28tZWxlbWVudDpmaWVs
|
151
|
-
ZC1zZXBhcmF0b3InPjwvc3Bhbj48L3NwYW4+PC9iPjwhW2VuZGlmXS0tPjxiDQpzdHlsZT0nbXNv
|
152
|
-
LWJpZGktZm9udC13ZWlnaHQ6bm9ybWFsJz48c3BhbiBsYW5nPUVOLUdCIHN0eWxlPSdmb250LXNp
|
153
|
-
emU6MTAuMHB0Ow0KbXNvLWJpZGktZm9udC1zaXplOjExLjBwdCc+PHNwYW4gc3R5bGU9J21zby1u
|
154
|
-
by1wcm9vZjp5ZXMnPjI8L3NwYW4+PC9zcGFuPjwvYj48IS0tW2lmIHN1cHBvcnRGaWVsZHNdPjxi
|
155
|
-
DQpzdHlsZT0nbXNvLWJpZGktZm9udC13ZWlnaHQ6bm9ybWFsJz48c3BhbiBsYW5nPUVOLUdCIHN0
|
156
|
-
eWxlPSdmb250LXNpemU6MTAuMHB0Ow0KbXNvLWJpZGktZm9udC1zaXplOjExLjBwdCc+PHNwYW4g
|
157
|
-
c3R5bGU9J21zby1lbGVtZW50OmZpZWxkLWVuZCc+PC9zcGFuPjwvc3Bhbj48L2I+PCFbZW5kaWZd
|
158
|
-
LS0+PHNwYW4NCmxhbmc9RU4tR0Igc3R5bGU9J2ZvbnQtc2l6ZToxMC4wcHQ7bXNvLWJpZGktZm9u
|
159
|
-
dC1zaXplOjExLjBwdCc+PHNwYW4NCnN0eWxlPSdtc28tdGFiLWNvdW50OjEnPsKgwqDCoMKgwqDC
|
160
|
-
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
|
161
|
-
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
|
162
|
-
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
|
163
|
-
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
|
164
|
-
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
|
165
|
-
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgPC9zcGFuPsKpDQpJ
|
166
|
-
U08vSUVDJm5ic3A7MjAxNiZuYnNwO+KAkyBBbGwgcmlnaHRzIHJlc2VydmVkPG86cD48L286cD48
|
167
|
-
L3NwYW4+PC9wPg0KDQo8L2Rpdj4NCg0KPGRpdiBzdHlsZT0nbXNvLWVsZW1lbnQ6aGVhZGVyJyBp
|
168
|
-
ZD1laDI+DQoNCjxwIGNsYXNzPU1zb0hlYWRlciBhbGlnbj1sZWZ0IHN0eWxlPSd0ZXh0LWFsaWdu
|
169
|
-
OmxlZnQ7bGluZS1oZWlnaHQ6MTIuMHB0Ow0KbXNvLWxpbmUtaGVpZ2h0LXJ1bGU6ZXhhY3RseSc+
|
170
|
-
PHNwYW4gbGFuZz1FTi1HQj5JU08vSUVDJm5ic3A7Q0QgMTczMDEtMToyMDE2KEUpPC9zcGFuPjwv
|
171
|
-
cD4NCg0KPC9kaXY+DQoNCjxkaXYgc3R5bGU9J21zby1lbGVtZW50OmhlYWRlcicgaWQ9aDI+DQoN
|
172
|
-
CjxwIGNsYXNzPU1zb0hlYWRlciBhbGlnbj1yaWdodCBzdHlsZT0ndGV4dC1hbGlnbjpyaWdodDts
|
173
|
-
aW5lLWhlaWdodDoxMi4wcHQ7DQptc28tbGluZS1oZWlnaHQtcnVsZTpleGFjdGx5Jz48c3BhbiBs
|
174
|
-
YW5nPUVOLUdCPklTTy9JRUMmbmJzcDtDRCAxNzMwMS0xOjIwMTYoRSk8L3NwYW4+PC9wPg0KDQo8
|
175
|
-
L2Rpdj4NCg0KPGRpdiBzdHlsZT0nbXNvLWVsZW1lbnQ6Zm9vdGVyJyBpZD1lZjI+DQoNCjxwIGNs
|
176
|
-
YXNzPU1zb0Zvb3RlciBzdHlsZT0nbGluZS1oZWlnaHQ6MTIuMHB0O21zby1saW5lLWhlaWdodC1y
|
177
|
-
dWxlOmV4YWN0bHknPjwhLS1baWYgc3VwcG9ydEZpZWxkc10+PHNwYW4NCmxhbmc9RU4tR0Igc3R5
|
178
|
-
bGU9J2ZvbnQtc2l6ZToxMC4wcHQ7bXNvLWJpZGktZm9udC1zaXplOjExLjBwdCc+PHNwYW4NCnN0
|
179
|
-
eWxlPSdtc28tZWxlbWVudDpmaWVsZC1iZWdpbic+PC9zcGFuPjxzcGFuDQpzdHlsZT0nbXNvLXNw
|
180
|
-
YWNlcnVuOnllcyc+wqA8L3NwYW4+UEFHRTxzcGFuIHN0eWxlPSdtc28tc3BhY2VydW46eWVzJz7C
|
181
|
-
oMKgDQo8L3NwYW4+XCogTUVSR0VGT1JNQVQgPHNwYW4gc3R5bGU9J21zby1lbGVtZW50OmZpZWxk
|
182
|
-
LXNlcGFyYXRvcic+PC9zcGFuPjwvc3Bhbj48IVtlbmRpZl0tLT48c3Bhbg0KbGFuZz1FTi1HQiBz
|
183
|
-
dHlsZT0nZm9udC1zaXplOjEwLjBwdDttc28tYmlkaS1mb250LXNpemU6MTEuMHB0Jz48c3Bhbg0K
|
184
|
-
c3R5bGU9J21zby1uby1wcm9vZjp5ZXMnPmlpPC9zcGFuPjwvc3Bhbj48IS0tW2lmIHN1cHBvcnRG
|
185
|
-
aWVsZHNdPjxzcGFuDQpsYW5nPUVOLUdCIHN0eWxlPSdmb250LXNpemU6MTAuMHB0O21zby1iaWRp
|
186
|
-
LWZvbnQtc2l6ZToxMS4wcHQnPjxzcGFuDQpzdHlsZT0nbXNvLWVsZW1lbnQ6ZmllbGQtZW5kJz48
|
187
|
-
L3NwYW4+PC9zcGFuPjwhW2VuZGlmXS0tPjxzcGFuIGxhbmc9RU4tR0INCnN0eWxlPSdmb250LXNp
|
188
|
-
emU6MTAuMHB0O21zby1iaWRpLWZvbnQtc2l6ZToxMS4wcHQnPjxzcGFuIHN0eWxlPSdtc28tdGFi
|
189
|
-
LWNvdW50Og0KMSc+wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
|
190
|
-
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
|
191
|
-
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
|
192
|
-
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
|
193
|
-
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
|
194
|
-
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
|
195
|
-
wqDCoMKgwqDCoCA8L3NwYW4+wqkNCklTTy9JRUMmbmJzcDsyMDE2Jm5ic3A74oCTIEFsbCByaWdo
|
196
|
-
dHMgcmVzZXJ2ZWQ8bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQoNCjwvZGl2Pg0KDQo8ZGl2IHN0eWxl
|
197
|
-
PSdtc28tZWxlbWVudDpmb290ZXInIGlkPWYyPg0KDQo8cCBjbGFzcz1Nc29Gb290ZXIgc3R5bGU9
|
198
|
-
J2xpbmUtaGVpZ2h0OjEyLjBwdCc+PHNwYW4gbGFuZz1FTi1HQg0Kc3R5bGU9J2ZvbnQtc2l6ZTox
|
199
|
-
MC4wcHQ7bXNvLWJpZGktZm9udC1zaXplOjExLjBwdCc+wqkgSVNPL0lFQyZuYnNwOzIwMTYmbmJz
|
200
|
-
cDvigJMgQWxsDQpyaWdodHMgcmVzZXJ2ZWQ8c3BhbiBzdHlsZT0nbXNvLXRhYi1jb3VudDoxJz7C
|
201
|
-
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
|
202
|
-
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
|
203
|
-
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
|
204
|
-
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
|
205
|
-
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
|
206
|
-
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCA8L3Nw
|
207
|
-
YW4+PC9zcGFuPjwhLS1baWYgc3VwcG9ydEZpZWxkc10+PHNwYW4NCmxhbmc9RU4tR0Igc3R5bGU9
|
208
|
-
J2ZvbnQtc2l6ZToxMC4wcHQ7bXNvLWJpZGktZm9udC1zaXplOjExLjBwdCc+PHNwYW4NCnN0eWxl
|
209
|
-
PSdtc28tZWxlbWVudDpmaWVsZC1iZWdpbic+PC9zcGFuPiBQQUdFPHNwYW4gc3R5bGU9J21zby1z
|
210
|
-
cGFjZXJ1bjp5ZXMnPsKgwqANCjwvc3Bhbj5cKiBNRVJHRUZPUk1BVCA8c3BhbiBzdHlsZT0nbXNv
|
211
|
-
LWVsZW1lbnQ6ZmllbGQtc2VwYXJhdG9yJz48L3NwYW4+PC9zcGFuPjwhW2VuZGlmXS0tPjxzcGFu
|
212
|
-
DQpsYW5nPUVOLUdCIHN0eWxlPSdmb250LXNpemU6MTAuMHB0O21zby1iaWRpLWZvbnQtc2l6ZTox
|
213
|
-
MS4wcHQnPjxzcGFuDQpzdHlsZT0nbXNvLW5vLXByb29mOnllcyc+aWlpPC9zcGFuPjwvc3Bhbj48
|
214
|
-
IS0tW2lmIHN1cHBvcnRGaWVsZHNdPjxzcGFuDQpsYW5nPUVOLUdCIHN0eWxlPSdmb250LXNpemU6
|
215
|
-
MTAuMHB0O21zby1iaWRpLWZvbnQtc2l6ZToxMS4wcHQnPjxzcGFuDQpzdHlsZT0nbXNvLWVsZW1l
|
216
|
-
bnQ6ZmllbGQtZW5kJz48L3NwYW4+PC9zcGFuPjwhW2VuZGlmXS0tPjxzcGFuIGxhbmc9RU4tR0IN
|
217
|
-
CnN0eWxlPSdmb250LXNpemU6MTAuMHB0O21zby1iaWRpLWZvbnQtc2l6ZToxMS4wcHQnPjxvOnA+
|
218
|
-
PC9vOnA+PC9zcGFuPjwvcD4NCg0KPC9kaXY+DQoNCjxkaXYgc3R5bGU9J21zby1lbGVtZW50OmZv
|
219
|
-
b3RlcicgaWQ9ZWYzPg0KDQo8cCBjbGFzcz1Nc29Gb290ZXIgc3R5bGU9J21hcmdpbi10b3A6MTIu
|
220
|
-
MHB0O2xpbmUtaGVpZ2h0OjEyLjBwdDttc28tbGluZS1oZWlnaHQtcnVsZToNCmV4YWN0bHknPjwh
|
221
|
-
LS1baWYgc3VwcG9ydEZpZWxkc10+PGIgc3R5bGU9J21zby1iaWRpLWZvbnQtd2VpZ2h0Om5vcm1h
|
222
|
-
bCc+PHNwYW4NCmxhbmc9RU4tR0Igc3R5bGU9J2ZvbnQtc2l6ZToxMC4wcHQ7bXNvLWJpZGktZm9u
|
223
|
-
dC1zaXplOjExLjBwdCc+PHNwYW4NCnN0eWxlPSdtc28tZWxlbWVudDpmaWVsZC1iZWdpbic+PC9z
|
224
|
-
cGFuPjxzcGFuDQpzdHlsZT0nbXNvLXNwYWNlcnVuOnllcyc+wqA8L3NwYW4+UEFHRTxzcGFuIHN0
|
225
|
-
eWxlPSdtc28tc3BhY2VydW46eWVzJz7CoMKgDQo8L3NwYW4+XCogTUVSR0VGT1JNQVQgPHNwYW4g
|
226
|
-
c3R5bGU9J21zby1lbGVtZW50OmZpZWxkLXNlcGFyYXRvcic+PC9zcGFuPjwvc3Bhbj48L2I+PCFb
|
227
|
-
ZW5kaWZdLS0+PGINCnN0eWxlPSdtc28tYmlkaS1mb250LXdlaWdodDpub3JtYWwnPjxzcGFuIGxh
|
228
|
-
bmc9RU4tR0Igc3R5bGU9J2ZvbnQtc2l6ZToxMC4wcHQ7DQptc28tYmlkaS1mb250LXNpemU6MTEu
|
229
|
-
MHB0Jz48c3BhbiBzdHlsZT0nbXNvLW5vLXByb29mOnllcyc+Mjwvc3Bhbj48L3NwYW4+PC9iPjwh
|
230
|
-
LS1baWYgc3VwcG9ydEZpZWxkc10+PGINCnN0eWxlPSdtc28tYmlkaS1mb250LXdlaWdodDpub3Jt
|
231
|
-
YWwnPjxzcGFuIGxhbmc9RU4tR0Igc3R5bGU9J2ZvbnQtc2l6ZToxMC4wcHQ7DQptc28tYmlkaS1m
|
232
|
-
b250LXNpemU6MTEuMHB0Jz48c3BhbiBzdHlsZT0nbXNvLWVsZW1lbnQ6ZmllbGQtZW5kJz48L3Nw
|
233
|
-
YW4+PC9zcGFuPjwvYj48IVtlbmRpZl0tLT48c3Bhbg0KbGFuZz1FTi1HQiBzdHlsZT0nZm9udC1z
|
234
|
-
aXplOjEwLjBwdDttc28tYmlkaS1mb250LXNpemU6MTEuMHB0Jz48c3Bhbg0Kc3R5bGU9J21zby10
|
235
|
-
YWItY291bnQ6MSc+wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
|
236
|
-
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
|
237
|
-
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
|
238
|
-
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
|
239
|
-
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
|
240
|
-
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
|
241
|
-
wqDCoMKgwqDCoCA8L3NwYW4+wqkNCklTTy9JRUMmbmJzcDsyMDE2Jm5ic3A74oCTIEFsbCByaWdo
|
242
|
-
dHMgcmVzZXJ2ZWQ8bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQoNCjwvZGl2Pg0KDQo8ZGl2IHN0eWxl
|
243
|
-
PSdtc28tZWxlbWVudDpmb290ZXInIGlkPWYzPg0KDQo8cCBjbGFzcz1Nc29Gb290ZXIgc3R5bGU9
|
244
|
-
J2xpbmUtaGVpZ2h0OjEyLjBwdCc+PHNwYW4gbGFuZz1FTi1HQg0Kc3R5bGU9J2ZvbnQtc2l6ZTox
|
245
|
-
MC4wcHQ7bXNvLWJpZGktZm9udC1zaXplOjExLjBwdCc+wqkgSVNPL0lFQyZuYnNwOzIwMTYmbmJz
|
246
|
-
cDvigJMgQWxsDQpyaWdodHMgcmVzZXJ2ZWQ8c3BhbiBzdHlsZT0nbXNvLXRhYi1jb3VudDoxJz7C
|
247
|
-
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
|
248
|
-
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
|
249
|
-
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
|
250
|
-
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
|
251
|
-
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
|
252
|
-
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIDwv
|
253
|
-
c3Bhbj48L3NwYW4+PCEtLVtpZiBzdXBwb3J0RmllbGRzXT48Yg0Kc3R5bGU9J21zby1iaWRpLWZv
|
254
|
-
bnQtd2VpZ2h0Om5vcm1hbCc+PHNwYW4gbGFuZz1FTi1HQiBzdHlsZT0nZm9udC1zaXplOjEwLjBw
|
255
|
-
dDsNCm1zby1iaWRpLWZvbnQtc2l6ZToxMS4wcHQnPjxzcGFuIHN0eWxlPSdtc28tZWxlbWVudDpm
|
256
|
-
aWVsZC1iZWdpbic+PC9zcGFuPg0KUEFHRTxzcGFuIHN0eWxlPSdtc28tc3BhY2VydW46eWVzJz7C
|
257
|
-
oMKgIDwvc3Bhbj5cKiBNRVJHRUZPUk1BVCA8c3Bhbg0Kc3R5bGU9J21zby1lbGVtZW50OmZpZWxk
|
258
|
-
LXNlcGFyYXRvcic+PC9zcGFuPjwvc3Bhbj48L2I+PCFbZW5kaWZdLS0+PGINCnN0eWxlPSdtc28t
|
259
|
-
YmlkaS1mb250LXdlaWdodDpub3JtYWwnPjxzcGFuIGxhbmc9RU4tR0Igc3R5bGU9J2ZvbnQtc2l6
|
260
|
-
ZToxMC4wcHQ7DQptc28tYmlkaS1mb250LXNpemU6MTEuMHB0Jz48c3BhbiBzdHlsZT0nbXNvLW5v
|
261
|
-
LXByb29mOnllcyc+Mzwvc3Bhbj48L3NwYW4+PC9iPjwhLS1baWYgc3VwcG9ydEZpZWxkc10+PGIN
|
262
|
-
CnN0eWxlPSdtc28tYmlkaS1mb250LXdlaWdodDpub3JtYWwnPjxzcGFuIGxhbmc9RU4tR0Igc3R5
|
263
|
-
bGU9J2ZvbnQtc2l6ZToxMC4wcHQ7DQptc28tYmlkaS1mb250LXNpemU6MTEuMHB0Jz48c3BhbiBz
|
264
|
-
dHlsZT0nbXNvLWVsZW1lbnQ6ZmllbGQtZW5kJz48L3NwYW4+PC9zcGFuPjwvYj48IVtlbmRpZl0t
|
265
|
-
LT48c3Bhbg0KbGFuZz1FTi1HQiBzdHlsZT0nZm9udC1zaXplOjEwLjBwdDttc28tYmlkaS1mb250
|
266
|
-
LXNpemU6MTEuMHB0Jz48bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQoNCjwvZGl2Pg0KDQo8L2JvZHk+
|
267
|
-
DQoNCjwvaHRtbD4NCg==
|
268
|
-
|
269
|
-
------=_NextPart_--
|
270
96
|
FTR
|
271
97
|
|
272
98
|
WORD_FTR3 = <<~FTR
|
273
99
|
------=_NextPart_
|
274
100
|
Content-Location: file:///C:/Doc/test_files/filelist.xml
|
275
101
|
Content-Transfer-Encoding: base64
|
276
|
-
Content-Type:
|
102
|
+
Content-Type: #{Html2Doc::mime_type('filelist.xml')}
|
277
103
|
|
278
104
|
PHhtbCB4bWxuczpvPSJ1cm46c2NoZW1hcy1taWNyb3NvZnQtY29tOm9mZmljZTpvZmZpY2UiPgog
|
279
105
|
ICAgICAgIDxvOk1haW5GaWxlIEhSZWY9Ii4uL3Rlc3QuaHRtIi8+ICA8bzpGaWxlIEhSZWY9IjFh
|
@@ -286,6 +112,214 @@ Content-Type: image/png
|
|
286
112
|
------=_NextPart_--
|
287
113
|
FTR
|
288
114
|
|
115
|
+
HEADERHTML = <<~FTR
|
116
|
+
<html xmlns:v="urn:schemas-microsoft-com:vml"
|
117
|
+
xmlns:o="urn:schemas-microsoft-com:office:office"
|
118
|
+
xmlns:w="urn:schemas-microsoft-com:office:word"
|
119
|
+
xmlns:m="http://schemas.microsoft.com/office/2004/12/omml"
|
120
|
+
xmlns:mv="http://macVmlSchemaUri" xmlns="http://www.w3.org/TR/REC-html40">
|
121
|
+
<head>
|
122
|
+
<meta name=Title content="">
|
123
|
+
<meta name=Keywords content="">
|
124
|
+
<meta http-equiv=Content-Type content="text/html; charset=utf-8">
|
125
|
+
<meta name=ProgId content=Word.Document>
|
126
|
+
<meta name=Generator content="Microsoft Word 15">
|
127
|
+
<meta name=Originator content="Microsoft Word 15">
|
128
|
+
<link id=Main-File rel=Main-File href="FILENAME.html">
|
129
|
+
<!--[if gte mso 9]><xml>
|
130
|
+
<o:shapedefaults v:ext="edit" spidmax="2049"/>
|
131
|
+
</xml><![endif]-->
|
132
|
+
</head>
|
133
|
+
<body lang=EN link=blue vlink="#954F72">
|
134
|
+
<div style='mso-element:footnote-separator' id=fs>
|
135
|
+
<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
|
136
|
+
normal'><span lang=EN-GB><span style='mso-special-character:footnote-separator'><![if !supportFootnotes]>
|
137
|
+
<hr align=left size=1 width="33%">
|
138
|
+
<![endif]></span></span></p>
|
139
|
+
</div>
|
140
|
+
<div style='mso-element:footnote-continuation-separator' id=fcs>
|
141
|
+
<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
|
142
|
+
normal'><span lang=EN-GB><span style='mso-special-character:footnote-continuation-separator'><![if !supportFootnotes]>
|
143
|
+
<hr align=left size=1>
|
144
|
+
<![endif]></span></span></p>
|
145
|
+
</div>
|
146
|
+
<div style='mso-element:endnote-separator' id=es>
|
147
|
+
<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
|
148
|
+
normal'><span lang=EN-GB><span style='mso-special-character:footnote-separator'><![if !supportFootnotes]>
|
149
|
+
<hr align=left size=1 width="33%">
|
150
|
+
<![endif]></span></span></p>
|
151
|
+
</div>
|
152
|
+
<div style='mso-element:endnote-continuation-separator' id=ecs>
|
153
|
+
<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
|
154
|
+
normal'><span lang=EN-GB><span style='mso-special-character:footnote-continuation-separator'><![if !supportFootnotes]>
|
155
|
+
<hr align=left size=1>
|
156
|
+
<![endif]></span></span></p>
|
157
|
+
</div>
|
158
|
+
<div style='mso-element:header' id=eh1>
|
159
|
+
<p class=MsoHeader align=left style='text-align:left;line-height:12.0pt;
|
160
|
+
mso-line-height-rule:exactly'><span lang=EN-GB>ISO/IEC&nbsp;CD 17301-1:2016(E)</span></p>
|
161
|
+
</div>
|
162
|
+
<div style='mso-element:header' id=h1>
|
163
|
+
<p class=MsoHeader style='margin-bottom:18.0pt'><span lang=EN-GB
|
164
|
+
style='font-size:10.0pt;mso-bidi-font-size:11.0pt;font-weight:normal'>©
|
165
|
+
ISO/IEC&nbsp;2016&nbsp;– All rights reserved</span><span lang=EN-GB
|
166
|
+
style='font-weight:normal'><o:p></o:p></span></p>
|
167
|
+
</div>
|
168
|
+
<div style='mso-element:footer' id=ef1>
|
169
|
+
<p class=MsoFooter style='margin-top:12.0pt;line-height:12.0pt;mso-line-height-rule:
|
170
|
+
exactly'><!--[if supportFields]><b style='mso-bidi-font-weight:normal'><span
|
171
|
+
lang=EN-GB style='font-size:10.0pt;mso-bidi-font-size:11.0pt'><span
|
172
|
+
style='mso-element:field-begin'></span><span
|
173
|
+
style='mso-spacerun:yes'> </span>PAGE<span style='mso-spacerun:yes'>  
|
174
|
+
</span>\\* MERGEFORMAT <span style='mso-element:field-separator'></span></span></b><![endif]--><b
|
175
|
+
style='mso-bidi-font-weight:normal'><span lang=EN-GB style='font-size:10.0pt;
|
176
|
+
mso-bidi-font-size:11.0pt'><span style='mso-no-proof:yes'>2</span></span></b><!--[if supportFields]><b
|
177
|
+
style='mso-bidi-font-weight:normal'><span lang=EN-GB style='font-size:10.0pt;
|
178
|
+
mso-bidi-font-size:11.0pt'><span style='mso-element:field-end'></span></span></b><![endif]--><span
|
179
|
+
lang=EN-GB style='font-size:10.0pt;mso-bidi-font-size:11.0pt'><span
|
180
|
+
style='mso-tab-count:1'>                                                                                                                                                                           </span>©
|
181
|
+
ISO/IEC&nbsp;2016&nbsp;– All rights reserved<o:p></o:p></span></p>
|
182
|
+
</div>
|
183
|
+
<div style='mso-element:header' id=eh2>
|
184
|
+
<p class=MsoHeader align=left style='text-align:left;line-height:12.0pt;
|
185
|
+
mso-line-height-rule:exactly'><span lang=EN-GB>ISO/IEC&nbsp;CD 17301-1:2016(E)</span></p>
|
186
|
+
</div>
|
187
|
+
<div style='mso-element:header' id=h2>
|
188
|
+
<p class=MsoHeader align=right style='text-align:right;line-height:12.0pt;
|
189
|
+
mso-line-height-rule:exactly'><span lang=EN-GB>ISO/IEC&nbsp;CD 17301-1:2016(E)</span></p>
|
190
|
+
</div>
|
191
|
+
<div style='mso-element:footer' id=ef2>
|
192
|
+
<p class=MsoFooter style='line-height:12.0pt;mso-line-height-rule:exactly'><!--[if supportFields]><span
|
193
|
+
lang=EN-GB style='font-size:10.0pt;mso-bidi-font-size:11.0pt'><span
|
194
|
+
style='mso-element:field-begin'></span><span
|
195
|
+
style='mso-spacerun:yes'> </span>PAGE<span style='mso-spacerun:yes'>  
|
196
|
+
</span>\\* MERGEFORMAT <span style='mso-element:field-separator'></span></span><![endif]--><span
|
197
|
+
lang=EN-GB style='font-size:10.0pt;mso-bidi-font-size:11.0pt'><span
|
198
|
+
style='mso-no-proof:yes'>ii</span></span><!--[if supportFields]><span
|
199
|
+
lang=EN-GB style='font-size:10.0pt;mso-bidi-font-size:11.0pt'><span
|
200
|
+
style='mso-element:field-end'></span></span><![endif]--><span lang=EN-GB
|
201
|
+
style='font-size:10.0pt;mso-bidi-font-size:11.0pt'><span style='mso-tab-count:
|
202
|
+
1'>                                                                                                                                                                           </span>©
|
203
|
+
ISO/IEC&nbsp;2016&nbsp;– All rights reserved<o:p></o:p></span></p>
|
204
|
+
</div>
|
205
|
+
<div style='mso-element:footer' id=f2>
|
206
|
+
<p class=MsoFooter style='line-height:12.0pt'><span lang=EN-GB
|
207
|
+
style='font-size:10.0pt;mso-bidi-font-size:11.0pt'>© ISO/IEC&nbsp;2016&nbsp;– All
|
208
|
+
rights reserved<span style='mso-tab-count:1'>                                                                                                                                                                          </span></span><!--[if supportFields]><span
|
209
|
+
lang=EN-GB style='font-size:10.0pt;mso-bidi-font-size:11.0pt'><span
|
210
|
+
style='mso-element:field-begin'></span> PAGE<span style='mso-spacerun:yes'>  
|
211
|
+
</span>\\* MERGEFORMAT <span style='mso-element:field-separator'></span></span><![endif]--><span
|
212
|
+
lang=EN-GB style='font-size:10.0pt;mso-bidi-font-size:11.0pt'><span
|
213
|
+
style='mso-no-proof:yes'>iii</span></span><!--[if supportFields]><span
|
214
|
+
lang=EN-GB style='font-size:10.0pt;mso-bidi-font-size:11.0pt'><span
|
215
|
+
style='mso-element:field-end'></span></span><![endif]--><span lang=EN-GB
|
216
|
+
style='font-size:10.0pt;mso-bidi-font-size:11.0pt'><o:p></o:p></span></p>
|
217
|
+
</div>
|
218
|
+
<div style='mso-element:footer' id=ef3>
|
219
|
+
<p class=MsoFooter style='margin-top:12.0pt;line-height:12.0pt;mso-line-height-rule:
|
220
|
+
exactly'><!--[if supportFields]><b style='mso-bidi-font-weight:normal'><span
|
221
|
+
lang=EN-GB style='font-size:10.0pt;mso-bidi-font-size:11.0pt'><span
|
222
|
+
style='mso-element:field-begin'></span><span
|
223
|
+
style='mso-spacerun:yes'> </span>PAGE<span style='mso-spacerun:yes'>  
|
224
|
+
</span>\\* MERGEFORMAT <span style='mso-element:field-separator'></span></span></b><![endif]--><b
|
225
|
+
style='mso-bidi-font-weight:normal'><span lang=EN-GB style='font-size:10.0pt;
|
226
|
+
mso-bidi-font-size:11.0pt'><span style='mso-no-proof:yes'>2</span></span></b><!--[if supportFields]><b
|
227
|
+
style='mso-bidi-font-weight:normal'><span lang=EN-GB style='font-size:10.0pt;
|
228
|
+
mso-bidi-font-size:11.0pt'><span style='mso-element:field-end'></span></span></b><![endif]--><span
|
229
|
+
lang=EN-GB style='font-size:10.0pt;mso-bidi-font-size:11.0pt'><span
|
230
|
+
style='mso-tab-count:1'>                                                                                                                                                                           </span>©
|
231
|
+
ISO/IEC&nbsp;2016&nbsp;– All rights reserved<o:p></o:p></span></p>
|
232
|
+
</div>
|
233
|
+
<div style='mso-element:footer' id=f3>
|
234
|
+
<p class=MsoFooter style='line-height:12.0pt'><span lang=EN-GB
|
235
|
+
style='font-size:10.0pt;mso-bidi-font-size:11.0pt'>© ISO/IEC&nbsp;2016&nbsp;– All
|
236
|
+
rights reserved<span style='mso-tab-count:1'>                                                                                                                                                                           </span></span><!--[if supportFields]><b
|
237
|
+
style='mso-bidi-font-weight:normal'><span lang=EN-GB style='font-size:10.0pt;
|
238
|
+
mso-bidi-font-size:11.0pt'><span style='mso-element:field-begin'></span>
|
239
|
+
PAGE<span style='mso-spacerun:yes'>   </span>\\* MERGEFORMAT <span
|
240
|
+
style='mso-element:field-separator'></span></span></b><![endif]--><b
|
241
|
+
style='mso-bidi-font-weight:normal'><span lang=EN-GB style='font-size:10.0pt;
|
242
|
+
mso-bidi-font-size:11.0pt'><span style='mso-no-proof:yes'>3</span></span></b><!--[if supportFields]><b
|
243
|
+
style='mso-bidi-font-weight:normal'><span lang=EN-GB style='font-size:10.0pt;
|
244
|
+
mso-bidi-font-size:11.0pt'><span style='mso-element:field-end'></span></span></b><![endif]--><span
|
245
|
+
lang=EN-GB style='font-size:10.0pt;mso-bidi-font-size:11.0pt'><o:p></o:p></span></p>
|
246
|
+
</div>
|
247
|
+
</body>
|
248
|
+
</html>
|
249
|
+
FTR
|
250
|
+
|
251
|
+
ASCII_MATH=<<~FTR
|
252
|
+
<m:nary>
|
253
|
+
<m:naryPr>
|
254
|
+
<m:chr m:val="∑"></m:chr>
|
255
|
+
<m:limLoc m:val="undOvr"></m:limLoc>
|
256
|
+
<m:grow m:val="on"></m:grow>
|
257
|
+
<m:subHide m:val="off"></m:subHide>
|
258
|
+
<m:supHide m:val="off"></m:supHide>
|
259
|
+
</m:naryPr>
|
260
|
+
<m:sub>
|
261
|
+
<m:r>
|
262
|
+
<m:t>i=1</m:t>
|
263
|
+
</m:r>
|
264
|
+
</m:sub>
|
265
|
+
<m:sup>
|
266
|
+
<m:r>
|
267
|
+
<m:t>n</m:t>
|
268
|
+
</m:r>
|
269
|
+
</m:sup>
|
270
|
+
<m:e>
|
271
|
+
<m:sSup>
|
272
|
+
<m:e>
|
273
|
+
<m:r>
|
274
|
+
<m:t>i</m:t>
|
275
|
+
</m:r>
|
276
|
+
</m:e>
|
277
|
+
<m:sup>
|
278
|
+
<m:r>
|
279
|
+
<m:t>3</m:t>
|
280
|
+
</m:r>
|
281
|
+
</m:sup>
|
282
|
+
</m:sSup>
|
283
|
+
</m:e>
|
284
|
+
</m:nary>
|
285
|
+
<m:r>
|
286
|
+
<m:t>=</m:t>
|
287
|
+
</m:r>
|
288
|
+
<m:sSup>
|
289
|
+
<m:e>
|
290
|
+
<m:r>
|
291
|
+
<m:t>(</m:t>
|
292
|
+
</m:r>
|
293
|
+
<m:f>
|
294
|
+
<m:fPr>
|
295
|
+
<m:type m:val="bar"></m:type>
|
296
|
+
</m:fPr>
|
297
|
+
<m:num>
|
298
|
+
<m:r>
|
299
|
+
<m:t>n</m:t>
|
300
|
+
</m:r>
|
301
|
+
<m:r>
|
302
|
+
<m:t>(n+1)</m:t>
|
303
|
+
</m:r>
|
304
|
+
</m:num>
|
305
|
+
<m:den>
|
306
|
+
<m:r>
|
307
|
+
<m:t>2</m:t>
|
308
|
+
</m:r>
|
309
|
+
</m:den>
|
310
|
+
</m:f>
|
311
|
+
<m:r>
|
312
|
+
<m:t>)</m:t>
|
313
|
+
</m:r>
|
314
|
+
</m:e>
|
315
|
+
<m:sup>
|
316
|
+
<m:r>
|
317
|
+
<m:t>2</m:t>
|
318
|
+
</m:r>
|
319
|
+
</m:sup>
|
320
|
+
</m:sSup>
|
321
|
+
FTR
|
322
|
+
|
289
323
|
DEFAULT_STYLESHEET = File.read("lib/html2doc/wordstyle.css", encoding: "utf-8").freeze
|
290
324
|
|
291
325
|
def guid_clean(x)
|
@@ -357,8 +391,16 @@ RSpec.describe Html2Doc do
|
|
357
391
|
|
358
392
|
it "processes a header" do
|
359
393
|
Html2Doc.process(html_input(""), filename: "test", header_file: "spec/header.html")
|
360
|
-
|
361
|
-
|
394
|
+
html = guid_clean(File.read("test.doc", encoding: "utf-8"))
|
395
|
+
hdr = Base64.decode64(html.sub(%r{^.*Content-Location: file:///C:/Doc/test_files/header.html}, "").
|
396
|
+
sub(%r{^.*Content-Type: text/html charset="utf-8"}m, "").
|
397
|
+
sub(%r{------=_NextPart_--.*$}m, "")).force_encoding("UTF-8")
|
398
|
+
#expect(hdr.gsub(/\xa0/, " ")).to match_fuzzy(HEADERHTML)
|
399
|
+
expect(HTMLEntities.new.encode(hdr, :hexadecimal).
|
400
|
+
gsub(/\</, "<").gsub(/\>/, ">").gsub(/\'/, "'").gsub(/\"/, '"').
|
401
|
+
gsub(/\
/, "
").gsub(/\
/, "\n")).to match_fuzzy(HEADERHTML)
|
402
|
+
expect(html.sub(%r{Content-Location: file:///C:/Doc/test_files/header.html.*$}m, "")).
|
403
|
+
to match_fuzzy(<<~OUTPUT)
|
362
404
|
#{WORD_HDR} #{DEFAULT_STYLESHEET.gsub(/FILENAME/, "test")}
|
363
405
|
#{WORD_HDR_END} #{word_body("", '<div style="mso-element:footnote-list"/>')} #{WORD_FTR2}
|
364
406
|
OUTPUT
|
@@ -387,23 +429,17 @@ RSpec.describe Html2Doc do
|
|
387
429
|
expect(guid_clean(File.read("test.doc", encoding: "utf-8"))).
|
388
430
|
to match_fuzzy(<<~OUTPUT)
|
389
431
|
#{WORD_HDR} #{DEFAULT_STYLESHEET} #{WORD_HDR_END}
|
390
|
-
#{word_body(
|
432
|
+
#{word_body("
|
391
433
|
<div><m:oMath>
|
392
|
-
|
393
|
-
<m:r
|
394
|
-
|
395
|
-
<m:
|
396
|
-
|
397
|
-
<m:
|
398
|
-
|
399
|
-
<m:r><m:t>n</m:t></m:r>
|
400
|
-
<m:r><m:t>(n+1)</m:t></m:r>
|
401
|
-
</m:num><m:den><m:r><m:t>2</m:t></m:r></m:den></m:f>
|
402
|
-
<m:r><m:t>)</m:t></m:r>
|
403
|
-
</m:e><m:sup><m:r><m:t>2</m:t></m:r></m:sup></m:sSup>
|
404
|
-
<m:r><m:rPr><m:nor></m:nor></m:rPr><m:t>"integer"</m:t></m:r>
|
434
|
+
#{ASCII_MATH}
|
435
|
+
<m:r>
|
436
|
+
<m:rPr>
|
437
|
+
<m:nor></m:nor>
|
438
|
+
</m:rPr>
|
439
|
+
<m:t>\"integer\"</m:t>
|
440
|
+
</m:r>
|
405
441
|
</m:oMath>
|
406
|
-
|
442
|
+
</div>", '<div style="mso-element:footnote-list"/>')}
|
407
443
|
#{WORD_FTR1}
|
408
444
|
OUTPUT
|
409
445
|
end
|
@@ -413,22 +449,11 @@ RSpec.describe Html2Doc do
|
|
413
449
|
expect(guid_clean(File.read("test.doc", encoding: "utf-8"))).
|
414
450
|
to match_fuzzy(<<~OUTPUT)
|
415
451
|
#{WORD_HDR} #{DEFAULT_STYLESHEET} #{WORD_HDR_END}
|
416
|
-
#{word_body(
|
417
|
-
<div style
|
418
|
-
|
419
|
-
<m:r><m:t>i=1</m:t></m:r>
|
420
|
-
</m:sub><m:sup><m:r><m:t>n</m:t></m:r></m:sup><m:e><m:sSup><m:e><m:r><m:t>i</m:t></m:r></m:e><m:sup><m:r><m:t>3</m:t></m:r></m:sup></m:sSup></m:e></m:nary>
|
421
|
-
<m:r><m:t>=</m:t></m:r>
|
422
|
-
<m:sSup><m:e>
|
423
|
-
<m:r><m:t>(</m:t></m:r>
|
424
|
-
<m:f><m:fPr><m:type m:val="bar"></m:type></m:fPr><m:num>
|
425
|
-
<m:r><m:t>n</m:t></m:r>
|
426
|
-
<m:r><m:t>(n+1)</m:t></m:r>
|
427
|
-
</m:num><m:den><m:r><m:t>2</m:t></m:r></m:den></m:f>
|
428
|
-
<m:r><m:t>)</m:t></m:r>
|
429
|
-
</m:e><m:sup><m:r><m:t>2</m:t></m:r></m:sup></m:sSup>
|
452
|
+
#{word_body("
|
453
|
+
<div style=\"text-align:left;\"><m:oMathPara><m:oMathParaPr><m:jc m:val=\"left\"/></m:oMathParaPr><m:oMath>
|
454
|
+
#{ASCII_MATH}
|
430
455
|
</m:oMath>
|
431
|
-
</m:oMathPara></div>
|
456
|
+
</m:oMathPara></div>", '<div style="mso-element:footnote-list"/>')}
|
432
457
|
#{WORD_FTR1}
|
433
458
|
OUTPUT
|
434
459
|
end
|
@@ -438,22 +463,11 @@ RSpec.describe Html2Doc do
|
|
438
463
|
expect(guid_clean(File.read("test.doc", encoding: "utf-8"))).
|
439
464
|
to match_fuzzy(<<~OUTPUT)
|
440
465
|
#{WORD_HDR} #{DEFAULT_STYLESHEET} #{WORD_HDR_END}
|
441
|
-
#{word_body(
|
442
|
-
<div style
|
443
|
-
|
444
|
-
<m:r><m:t>i=1</m:t></m:r>
|
445
|
-
</m:sub><m:sup><m:r><m:t>n</m:t></m:r></m:sup><m:e><m:sSup><m:e><m:r><m:t>i</m:t></m:r></m:e><m:sup><m:r><m:t>3</m:t></m:r></m:sup></m:sSup></m:e></m:nary>
|
446
|
-
<m:r><m:t>=</m:t></m:r>
|
447
|
-
<m:sSup><m:e>
|
448
|
-
<m:r><m:t>(</m:t></m:r>
|
449
|
-
<m:f><m:fPr><m:type m:val="bar"></m:type></m:fPr><m:num>
|
450
|
-
<m:r><m:t>n</m:t></m:r>
|
451
|
-
<m:r><m:t>(n+1)</m:t></m:r>
|
452
|
-
</m:num><m:den><m:r><m:t>2</m:t></m:r></m:den></m:f>
|
453
|
-
<m:r><m:t>)</m:t></m:r>
|
454
|
-
</m:e><m:sup><m:r><m:t>2</m:t></m:r></m:sup></m:sSup>
|
466
|
+
#{word_body("
|
467
|
+
<div style=\"text-align:right;\"><m:oMathPara><m:oMathParaPr><m:jc m:val=\"right\"/></m:oMathParaPr><m:oMath>
|
468
|
+
#{ASCII_MATH}
|
455
469
|
</m:oMath>
|
456
|
-
</m:oMathPara></div>
|
470
|
+
</m:oMathPara></div>", '<div style="mso-element:footnote-list"/>')}
|
457
471
|
#{WORD_FTR1}
|
458
472
|
OUTPUT
|
459
473
|
end
|