hlt-site_builder 0.1.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 ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: d6d75c9cb4df829bd523da400e20e1ccf2e9341a
4
+ data.tar.gz: f470c39f48820a5c1266c490de6d34f7d2b27c62
5
+ SHA512:
6
+ metadata.gz: 70fb7b0fea17b2268cc4624bbefa848285541c583c5f68f2ee3f3e2b3fbc2a2eaf8959d2a48ef993b4821d1483da42c528b76b6f405159c61e94c1c0f2d4def8
7
+ data.tar.gz: 161394e6c119bcf53f7d35a3b9bed7bfb2c8c0a5403d55d3d656af8ddc41f940a52898fd0ea15be7b262e1d35f2ab48bae3a7f14f61c03a73b065d0da877e44d
checksums.yaml.gz.sig ADDED
@@ -0,0 +1 @@
1
+ ��=j�eX��e �~��9��<٭+�����|' �ѷE�J́cw���z�Zs �����EV7�e3Ah�<5�����DG���X0m��&D�>��o��wE��41W?nܾ� �Z���N)\Q3~��� ���_��c����1ʪq6��u��G{����<��uV���󴠄eG�nh���)j���.2^��ތC��ĩ��և��'I[�M��$���eI'� QV'mT�1�7�~dk���q��
data.tar.gz.sig ADDED
Binary file
@@ -0,0 +1,103 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ # file: hlt-site_builder.rb
4
+
5
+ require 'dynarex'
6
+ require 'hlt'
7
+ require 'fileutils'
8
+
9
+
10
+ class String
11
+
12
+ def to_html()
13
+ Hlt.new(self.gsub(/^(?=[^\n])/,' ').sub(/^\s{2}/,'')).to_html
14
+ end
15
+
16
+ def to_doc() Rexle.new(self.to_html) end
17
+ end
18
+
19
+ class HltSiteBuilder
20
+
21
+ def initialize(file, options={})
22
+ @opt = {style: true}.merge options
23
+ @dynarex = Dynarex.new
24
+ @dynarex.parse File.read file
25
+ end
26
+
27
+ def generate()
28
+
29
+ keys = @dynarex.records.keys
30
+ @template = keys.shift
31
+
32
+ @pages = keys.inject({}) do |r, x|
33
+ label, val = x.split(/\n/,2)
34
+ r.merge({label.strip.to_sym => val})
35
+ end
36
+
37
+ generate_pages @pages.keys
38
+ end
39
+
40
+ def write()
41
+
42
+ pages = @pages.to_a
43
+ pages[0][0] = 'index'
44
+ pages.each do |pg_name, content|
45
+ filename = format_filename(pg_name)
46
+ content = File.read filename
47
+ yield(filename, content)
48
+ end
49
+ end
50
+
51
+ private
52
+
53
+ def format_filename(name)
54
+ "%s.html" % name.to_s.downcase.gsub(' ','-')
55
+ end
56
+
57
+ alias f format_filename
58
+
59
+ # generate the html for the 1st item.
60
+ #
61
+ def generate_pages(a)
62
+
63
+ container_id = @opt[:container_id]
64
+
65
+ a.each do |name|
66
+
67
+ doc = @template.to_doc
68
+ doc2 = ("div {id: '#{container_id}'}\n" + @pages[name]).to_doc
69
+
70
+ yield(doc2) if block_given?
71
+
72
+ e = doc.element("//div[@id='#{container_id}']")
73
+ e.insert_before doc2.root
74
+ e.delete
75
+
76
+ title = doc.root.element('head/title')
77
+ title.text = name.to_s + ' | ' + title.text.unescape
78
+
79
+ filename = format_filename(name)
80
+
81
+ if @opt[:style] == false then
82
+ doc.root.xpath('//.[@style]').each {|e| e.attributes.delete :style}
83
+ end
84
+
85
+ puts 'saving_ ' + filename
86
+ File.write filename, doc.content
87
+ end
88
+
89
+ FileUtils.mv f(a[0]), 'index.html'
90
+ end
91
+
92
+ end
93
+
94
+ if __FILE__ == $0 then
95
+
96
+ hsb = HltSiteBuilder.new('pages.txt', style: false, container_id: 'main')
97
+ hsb.generate
98
+ =begin
99
+ hsb.write do |filename, buffer|
100
+ File.write filename, buffer.sub(/Sitemap<\/a>\s+<\/li>/m,'\0|')
101
+ end
102
+ =end
103
+ end
metadata ADDED
@@ -0,0 +1,95 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: hlt-site_builder
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - James Robertson
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain:
11
+ - |
12
+ -----BEGIN CERTIFICATE-----
13
+ MIIDljCCAn6gAwIBAgIBATANBgkqhkiG9w0BAQUFADBIMRIwEAYDVQQDDAlnZW1t
14
+ YXN0ZXIxHjAcBgoJkiaJk/IsZAEZFg5qYW1lc3JvYmVydHNvbjESMBAGCgmSJomT
15
+ 8ixkARkWAmV1MB4XDTEzMTExODIwNTYzNFoXDTE0MTExODIwNTYzNFowSDESMBAG
16
+ A1UEAwwJZ2VtbWFzdGVyMR4wHAYKCZImiZPyLGQBGRYOamFtZXNyb2JlcnRzb24x
17
+ EjAQBgoJkiaJk/IsZAEZFgJldTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC
18
+ ggEBAL9b78IC4qiEHFY+QnnDXswMSW+SIAfzrTRVzmAwx1X9scjwiSPJ9HRX8i1u
19
+ IfjOYD7RKHY9A3iFUGcKRU6H/DheZh8sxyVzfR/dRxlmlAAKK72+xgAX2lpC7m2q
20
+ /Y8ofYTEYagxx0yF1FTJcR5MuD+YYFHNrvDbDgMvsbf+vSB3CeFU+chaCmQdwMxm
21
+ JUyjJUzN57inMdewS91RAIxpKVZf+oqXt5o0D2wlq3vtBO23Q6roJ7HlRsPjUtRX
22
+ pqa7937hDabgDoyvbuASYwoHz+ElcCFzgXkhoHrO0c01cs4IsEzxJdnV73L1sBF7
23
+ 1iyB8V+VmQ+4fVMYKS9+jjPrarMCAwEAAaOBijCBhzAJBgNVHRMEAjAAMAsGA1Ud
24
+ DwQEAwIEsDAdBgNVHQ4EFgQUY0KkQfP8RT6nIrQGIFymYAVmDxYwJgYDVR0RBB8w
25
+ HYEbZ2VtbWFzdGVyQGphbWVzcm9iZXJ0c29uLmV1MCYGA1UdEgQfMB2BG2dlbW1h
26
+ c3RlckBqYW1lc3JvYmVydHNvbi5ldTANBgkqhkiG9w0BAQUFAAOCAQEAaaxdDbV0
27
+ aHwQBAok9PE3nMFb9N47DiXT5aSNAz+9oRe4bCZSSY6plioQhE3egOFv38099mbu
28
+ 80JXYhUoezoOAGgxl9tFBHSrztEzMfx+/1cawXygRPDfuoJpEvR2ugoDKRJy9kZF
29
+ GNKw1QKaHDov5hr0rv9ElS9tuHex4I0LrN4JBQBL6PUyGdMthL4+kCXGnpSYwJpg
30
+ NGGWtdoY5q3HdY+UY/dU41JDDMyet12TJbdMZcA75VX6Xagw7aBd9TxOAhOsC9uL
31
+ mkWEixIobTEV/FcfiNCEpKNfCA5llUve7iRh1zARAkDT0EYTHgRtftY87yBNEDPN
32
+ GFcWHnpHdfRUPw==
33
+ -----END CERTIFICATE-----
34
+ date: 2013-11-18 00:00:00.000000000 Z
35
+ dependencies:
36
+ - !ruby/object:Gem::Dependency
37
+ name: hlt
38
+ requirement: !ruby/object:Gem::Requirement
39
+ requirements:
40
+ - - ">="
41
+ - !ruby/object:Gem::Version
42
+ version: '0'
43
+ type: :runtime
44
+ prerelease: false
45
+ version_requirements: !ruby/object:Gem::Requirement
46
+ requirements:
47
+ - - ">="
48
+ - !ruby/object:Gem::Version
49
+ version: '0'
50
+ - !ruby/object:Gem::Dependency
51
+ name: dynarex
52
+ requirement: !ruby/object:Gem::Requirement
53
+ requirements:
54
+ - - ">="
55
+ - !ruby/object:Gem::Version
56
+ version: '0'
57
+ type: :runtime
58
+ prerelease: false
59
+ version_requirements: !ruby/object:Gem::Requirement
60
+ requirements:
61
+ - - ">="
62
+ - !ruby/object:Gem::Version
63
+ version: '0'
64
+ description:
65
+ email: james@r0bertson.co.uk
66
+ executables: []
67
+ extensions: []
68
+ extra_rdoc_files: []
69
+ files:
70
+ - lib/hlt-site_builder.rb
71
+ homepage: https://github.com/jrobertson/hlt-site_builder
72
+ licenses:
73
+ - MIT
74
+ metadata: {}
75
+ post_install_message:
76
+ rdoc_options: []
77
+ require_paths:
78
+ - lib
79
+ required_ruby_version: !ruby/object:Gem::Requirement
80
+ requirements:
81
+ - - ">="
82
+ - !ruby/object:Gem::Version
83
+ version: '0'
84
+ required_rubygems_version: !ruby/object:Gem::Requirement
85
+ requirements:
86
+ - - ">="
87
+ - !ruby/object:Gem::Version
88
+ version: '0'
89
+ requirements: []
90
+ rubyforge_project:
91
+ rubygems_version: 2.0.0.rc.2
92
+ signing_key:
93
+ specification_version: 4
94
+ summary: hlt-site_builder
95
+ test_files: []
metadata.gz.sig ADDED
Binary file