hlt-site_builder 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
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