myoutline 0.2.1 → 0.3.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.
- checksums.yaml +4 -4
- checksums.yaml.gz.sig +0 -0
- data/lib/myoutline.rb +72 -25
- data.tar.gz.sig +0 -0
- metadata +42 -2
- metadata.gz.sig +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: efb9af4d7dcfa27f317ee3d832df291e617c10f0
|
4
|
+
data.tar.gz: eb9f2b405e4cc0d4a8a8eea37ef7a477917060dc
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6ff486f872144eecafa450529d20e034cfa72fb61de51b723e040ee71d458b1cdc7f6de7befd28fc8b362613f527dbb878b63af0bbf227833b7f37a772e45a18
|
7
|
+
data.tar.gz: f13de27b4ded08cad7452b1063c8ab0b67e853c10698516f495a0b6b362de572e1afbc56a952690b3b57cf4348fa406594d0535afd4cb1a195fabc75e37ba0b7
|
checksums.yaml.gz.sig
CHANGED
Binary file
|
data/lib/myoutline.rb
CHANGED
@@ -4,40 +4,42 @@
|
|
4
4
|
|
5
5
|
require 'pxindex'
|
6
6
|
require 'nokogiri'
|
7
|
+
require 'filetree_xml'
|
8
|
+
require 'polyrex-links'
|
9
|
+
|
7
10
|
|
8
11
|
|
9
12
|
class MyOutline
|
10
13
|
|
11
|
-
attr_reader :pxi
|
14
|
+
attr_reader :pxi, :links
|
12
15
|
|
13
16
|
def initialize(source, debug: false, allsorted: true,
|
14
17
|
autoupdate: true, topic_url: '$topic')
|
15
18
|
|
16
|
-
@debug, @source, @topic_url = debug, source,
|
19
|
+
@debug, @source, @topic_url, @allsorted, @autoupdate = debug, source,
|
20
|
+
topic_url, allsorted, autoupdate
|
17
21
|
|
18
22
|
raw_s, _ = RXFHelper.read(source)
|
19
|
-
|
20
|
-
# find the entries which aren't on the main index
|
21
|
-
s = raw_s.sub(/<[^>]+>\n/,'')
|
22
|
-
doc = LineTree.new(s, debug: true).to_doc(encapsulate: true)
|
23
|
-
a = doc.root.xpath('entry/text()')
|
24
|
-
puts 'doc: ' + doc.xml if debug
|
25
|
-
a2 = doc.root.xpath('entry//entry/text()')
|
26
|
-
puts 'a2: ' + a2.inspect if debug
|
27
|
-
a3 = a2 - a
|
28
|
-
puts 'a3:' + a3.inspect if debug
|
29
|
-
|
30
|
-
# add the new entries to the main index
|
31
|
-
s << a3.join("\n")
|
23
|
+
build_index(raw_s)
|
32
24
|
|
33
|
-
s.prepend '<?ph schema="entries/section[heading]/entry[title, url]"?>
|
34
25
|
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
allsorted: allsorted)
|
39
|
-
save() if autoupdate and self.to_s != raw_s
|
26
|
+
end
|
27
|
+
|
28
|
+
def fetch(uri)
|
40
29
|
|
30
|
+
s, remaining = @links.locate uri
|
31
|
+
puts 'fetch() s: ' + s.inspect if @debug
|
32
|
+
redirect = s =~ /^\[r\] +/i
|
33
|
+
return s if redirect
|
34
|
+
|
35
|
+
# md_edit goes here
|
36
|
+
contents, _ = RXFHelper.read(s)
|
37
|
+
|
38
|
+
return contents
|
39
|
+
end
|
40
|
+
|
41
|
+
def ls(path='.')
|
42
|
+
@ftx.ls(path).map(&:to_s)
|
41
43
|
end
|
42
44
|
|
43
45
|
def save(filename=nil)
|
@@ -96,18 +98,63 @@ class MyOutline
|
|
96
98
|
|
97
99
|
end
|
98
100
|
|
99
|
-
|
101
|
+
|
102
|
+
def to_tree
|
103
|
+
format_tree(alphabet: true, nourl: true)
|
104
|
+
end
|
105
|
+
|
106
|
+
def to_treelinks
|
107
|
+
format_tree()
|
108
|
+
end
|
109
|
+
|
110
|
+
private
|
111
|
+
|
112
|
+
def build_index(raw_s)
|
113
|
+
|
114
|
+
# find the entries which aren't on the main index
|
115
|
+
s = raw_s.sub(/<[^>]+>\n/,'')
|
116
|
+
doc = LineTree.new(s, debug: @debug).to_doc(encapsulate: true)
|
117
|
+
a = doc.root.xpath('entry/text()')
|
118
|
+
puts 'doc: ' + doc.xml if @debug
|
119
|
+
a2 = doc.root.xpath('entry//entry/text()')
|
120
|
+
puts 'a2: ' + a2.inspect if @debug
|
121
|
+
a3 = a2 - a
|
122
|
+
puts 'a3:' + a3.inspect if @debug
|
123
|
+
|
124
|
+
# add the new entries to the main index
|
125
|
+
s << a3.join("\n")
|
126
|
+
|
127
|
+
s.prepend '<?ph schema="entries/section[heading]/entry[title, url]"?>
|
128
|
+
|
129
|
+
'
|
130
|
+
|
131
|
+
@pxi = PxIndex.new(s, debug: @debug, indexsorted: true,
|
132
|
+
allsorted: @allsorted)
|
133
|
+
save() if @autoupdate and self.to_s != raw_s
|
134
|
+
read(self.to_s)
|
135
|
+
end
|
136
|
+
|
137
|
+
def format_tree(alphabet: false, nourl: false)
|
100
138
|
|
101
139
|
a = @pxi.to_s.lines
|
102
140
|
a.shift # remove the ph declaration
|
103
141
|
a.reject! {|x| x =~ /^(?:#[^\n]+|\n+)$/} unless alphabet
|
104
|
-
|
142
|
+
|
143
|
+
if nourl then
|
144
|
+
# strip out the URLS?
|
145
|
+
a.map! {|x| r = x[/^.*(?= # )/]; r ? r + "\n" : x }
|
146
|
+
end
|
105
147
|
|
106
148
|
a.join
|
107
149
|
|
108
|
-
end
|
150
|
+
end
|
109
151
|
|
110
|
-
|
152
|
+
def read(s)
|
153
|
+
@links = PolyrexLinks.new.import(s, debug: @debug)
|
154
|
+
|
155
|
+
s3 = s.lines.map {|x| x.split(/ | # /,2)[0]}.join("\n")
|
156
|
+
@ftx = FileTreeXML.new(s3, debug: @debug)
|
157
|
+
end
|
111
158
|
|
112
159
|
def xslt()
|
113
160
|
<<EOF
|
data.tar.gz.sig
CHANGED
Binary file
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: myoutline
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- James Robertson
|
@@ -30,7 +30,7 @@ cert_chain:
|
|
30
30
|
DFhc5TDtqEkJYiaiznQFl34HUKeCAdeAHkmD8jP3fUC8O7zcLXq69EAXGMXw4efB
|
31
31
|
3Co=
|
32
32
|
-----END CERTIFICATE-----
|
33
|
-
date: 2018-
|
33
|
+
date: 2018-04-02 00:00:00.000000000 Z
|
34
34
|
dependencies:
|
35
35
|
- !ruby/object:Gem::Dependency
|
36
36
|
name: pxindex
|
@@ -72,6 +72,46 @@ dependencies:
|
|
72
72
|
- - ">="
|
73
73
|
- !ruby/object:Gem::Version
|
74
74
|
version: 1.8.2
|
75
|
+
- !ruby/object:Gem::Dependency
|
76
|
+
name: filetree_xml
|
77
|
+
requirement: !ruby/object:Gem::Requirement
|
78
|
+
requirements:
|
79
|
+
- - "~>"
|
80
|
+
- !ruby/object:Gem::Version
|
81
|
+
version: '0.1'
|
82
|
+
- - ">="
|
83
|
+
- !ruby/object:Gem::Version
|
84
|
+
version: 0.1.3
|
85
|
+
type: :runtime
|
86
|
+
prerelease: false
|
87
|
+
version_requirements: !ruby/object:Gem::Requirement
|
88
|
+
requirements:
|
89
|
+
- - "~>"
|
90
|
+
- !ruby/object:Gem::Version
|
91
|
+
version: '0.1'
|
92
|
+
- - ">="
|
93
|
+
- !ruby/object:Gem::Version
|
94
|
+
version: 0.1.3
|
95
|
+
- !ruby/object:Gem::Dependency
|
96
|
+
name: polyrex-links
|
97
|
+
requirement: !ruby/object:Gem::Requirement
|
98
|
+
requirements:
|
99
|
+
- - "~>"
|
100
|
+
- !ruby/object:Gem::Version
|
101
|
+
version: '0.2'
|
102
|
+
- - ">="
|
103
|
+
- !ruby/object:Gem::Version
|
104
|
+
version: 0.2.0
|
105
|
+
type: :runtime
|
106
|
+
prerelease: false
|
107
|
+
version_requirements: !ruby/object:Gem::Requirement
|
108
|
+
requirements:
|
109
|
+
- - "~>"
|
110
|
+
- !ruby/object:Gem::Version
|
111
|
+
version: '0.2'
|
112
|
+
- - ">="
|
113
|
+
- !ruby/object:Gem::Version
|
114
|
+
version: 0.2.0
|
75
115
|
description:
|
76
116
|
email: james@jamesrobertson.eu
|
77
117
|
executables: []
|
metadata.gz.sig
CHANGED
Binary file
|