oo2md2tex 0.0.15 → 0.0.16
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/bin/oo2text +26 -7
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1f66a21735bad0d49f64f38ccb929b6689889320
|
4
|
+
data.tar.gz: ea9b18b7b1a9635b372f7d7f5e654d6b39f6a3c9
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7bfb984938eb696d137939e85be91e4c91bc6a0413d24180d20b074917c53f4668c5750311cec448a244ce8ace8631da4d516f4f72edb318e83785589e05a384
|
7
|
+
data.tar.gz: 84bdb11e919e10560144bc05d78f8b2b21f40c1cb735bee69113219e3c7a480403f7c6bb4479e1aff5da8fcf8cfca4757332780b29d0daa28ace01e2264f0b90
|
data/bin/oo2text
CHANGED
@@ -21,6 +21,8 @@ require 'nokogiri'
|
|
21
21
|
require 'zlib'
|
22
22
|
require 'zip'
|
23
23
|
require 'stringio'
|
24
|
+
require 'awesome_print'
|
25
|
+
require 'pry-byebug'
|
24
26
|
|
25
27
|
module OmniOutliner
|
26
28
|
|
@@ -31,6 +33,7 @@ module OmniOutliner
|
|
31
33
|
@in_lit = false
|
32
34
|
@in_item = false
|
33
35
|
@in_style = false
|
36
|
+
@in_root = false
|
34
37
|
@str = ""
|
35
38
|
super
|
36
39
|
end
|
@@ -44,6 +47,10 @@ module OmniOutliner
|
|
44
47
|
@in_item = true if name == "item"
|
45
48
|
@in_style = true if name == "style"
|
46
49
|
@in_lit = true if name == "lit"
|
50
|
+
if name == "root"
|
51
|
+
@in_root = true
|
52
|
+
@str = ""
|
53
|
+
end
|
47
54
|
if name == "cell"
|
48
55
|
# if it is a hyperlink, use name part as part of output
|
49
56
|
if n = attrs.find{|a| a[0] == "name"}
|
@@ -62,7 +69,7 @@ module OmniOutliner
|
|
62
69
|
end
|
63
70
|
if name == "values"
|
64
71
|
@str.gsub(/\n/, '')
|
65
|
-
puts @str
|
72
|
+
puts @str if @in_root
|
66
73
|
@str = ""
|
67
74
|
end
|
68
75
|
end
|
@@ -93,6 +100,7 @@ module OmniOutliner
|
|
93
100
|
class V5
|
94
101
|
class Item
|
95
102
|
attr_reader :attrs
|
103
|
+
attr_accessor :is_root
|
96
104
|
|
97
105
|
def initialize(attrs, text)
|
98
106
|
@attrs = attrs
|
@@ -101,12 +109,12 @@ module OmniOutliner
|
|
101
109
|
end
|
102
110
|
|
103
111
|
def add(rank, item)
|
104
|
-
rank = "0" if rank == ""
|
105
|
-
@children[rank.
|
112
|
+
rank = "0" if rank.nil? || rank == ""
|
113
|
+
@children[rank.hex] = item
|
106
114
|
end
|
107
115
|
|
108
116
|
def print_all
|
109
|
-
puts @text
|
117
|
+
puts @text unless @is_root
|
110
118
|
@children.keys.sort.each {|k| @children[k].print_all}
|
111
119
|
end
|
112
120
|
end
|
@@ -120,6 +128,8 @@ module OmniOutliner
|
|
120
128
|
@str = ""
|
121
129
|
@items = {}
|
122
130
|
@id_stack = []
|
131
|
+
@attrs_stack = []
|
132
|
+
@in_items = false
|
123
133
|
super
|
124
134
|
end
|
125
135
|
|
@@ -138,17 +148,24 @@ module OmniOutliner
|
|
138
148
|
@in_style = true if name == "style"
|
139
149
|
@in_lit = true if name == "lit"
|
140
150
|
@in_item = true if name == "item"
|
151
|
+
@in_items = true if name == "items"
|
141
152
|
if name == "cell"
|
142
153
|
# if it is a hyperlink, use name part as part of output
|
143
154
|
if @attrs.has_key?("name")
|
144
155
|
@str += @attrs["name"]
|
145
156
|
end
|
146
157
|
end
|
147
|
-
|
158
|
+
if name == "item"
|
159
|
+
@id_stack.push(@id)
|
160
|
+
@attrs_stack.push(@attrs)
|
161
|
+
end
|
148
162
|
end
|
149
163
|
|
150
164
|
def end_element(name)
|
151
|
-
|
165
|
+
if name == "item"
|
166
|
+
@id = @id_stack.pop
|
167
|
+
@attrs = @attrs_stack.pop
|
168
|
+
end
|
152
169
|
@in_column = false if name == "column"
|
153
170
|
@in_style = false if name == "style"
|
154
171
|
if name == "item"
|
@@ -158,14 +175,16 @@ module OmniOutliner
|
|
158
175
|
@str = ""
|
159
176
|
end
|
160
177
|
if name == "lit"
|
161
|
-
@str += "\n"
|
178
|
+
@str += "\n" if @in_items
|
162
179
|
@in_lit = false
|
163
180
|
end
|
164
181
|
if name == "outline" # final output
|
165
182
|
@root = nil
|
183
|
+
puts "#{@items.count} items"
|
166
184
|
@items.each do |id, item|
|
167
185
|
if item.attrs["is-root"] == "yes"
|
168
186
|
@root = item
|
187
|
+
@root.is_root = true
|
169
188
|
elsif pid = item.attrs["parent-id"]
|
170
189
|
@items[pid].add(item.attrs["rank"], item)
|
171
190
|
else
|