qdoc 0.0.25 → 0.0.99

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.
Files changed (3) hide show
  1. checksums.yaml +4 -4
  2. data/lib/qdoc.rb +79 -26
  3. metadata +3 -3
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 0b2a3b0810bc5f07f4e658408dee9a017c389115
4
- data.tar.gz: 17436f66490ded735a52d6eb70474b403d10c97f
3
+ metadata.gz: 2871f3190e6d0d7ad6027ba85b3fa39c6a5f50fd
4
+ data.tar.gz: b119accf55edb08edac75fe2b990fe4ad33bdc54
5
5
  SHA512:
6
- metadata.gz: a43620e478f79112abc288a886048fd56583ff1095e7b3fd82de5adc39ae9b5726925b1c1b2c96c02415542bc881c938217e5fc29053ba9e1bfd2365c79e5bf1
7
- data.tar.gz: cede091c8d86c3715c16c4cd52a176f80918cb4b6a85e5d7ba8c865077ccabcce54be829055db26f46edd6800be6bebc8e560cb9aeb456513ff833af9cb5f74f
6
+ metadata.gz: b4fd64d2e838a4d8a13b6eba0d1c6b76928ac39366af2d1846b867c1c1d9892ae491a7bbd6f61f3785ac53c32dc8129aacd2864a38e142159e06acf4f629bb9d
7
+ data.tar.gz: cb6e241718e1c2604a35626074b14e7128c77f26df9c21e0d3061f413fb36bc171b10a9762db0ffd5ae1b2b48649acb5cb3f96fa2ab8b0b6e6058ea3a2265f29
@@ -2,10 +2,8 @@
2
2
  require 'redcarpet'
3
3
  require 'kramdown'
4
4
  require 'fileutils'
5
- require 'cgi'
6
5
  require 'nokogiri'
7
-
8
- #
6
+ #require 'pry'
9
7
 
10
8
  class QDoc
11
9
 
@@ -21,7 +19,7 @@ class QDoc
21
19
 
22
20
  @documents = Array.new
23
21
  @locations = Array.new
24
- @redcarpet = Redcarpet::Markdown.new(Redcarpet::Render::HTML, :autolink => true, :space_after_headers => true)
22
+ @redcarpet = Redcarpet::Markdown.new(Redcarpet::Render::HTML.new( :with_toc_data => true), :autolink => true, :space_after_headers => false, :no_intra_emphasis => true, :tables => true)
25
23
  end
26
24
 
27
25
  # Causes QDoc to search the current directory and tree, and parse found files
@@ -54,17 +52,6 @@ class QDoc
54
52
  locations
55
53
  end
56
54
 
57
- # def create_index
58
- # page = "<p>Choose from the list below to select a document</p>" + \
59
- # "<p>#{@documents.count-1} files parsed from the following locations:<p>" + \
60
- # "<table class='table table-striped'><tbody>"
61
- # @locations.each do |l|
62
- # l = "Current Dir" if l == ""
63
- # page += "<tr><td>#{l}</td></tr>"
64
- # end
65
- # page += "</tbody></table></div>"
66
- # end
67
-
68
55
  def stage_files( locations )
69
56
  documents = [ @index ]
70
57
  locations.each do |dir|
@@ -89,14 +76,13 @@ class QDoc
89
76
  contents = File.open( filename, "r" ) do |c|
90
77
  c.read
91
78
  end
92
- # contents = fix_hawaiian CGI::escapeHTML contents
93
79
  case doc[:extension]
94
80
  when "md"
95
- return fix_hawaiian Kramdown::Document.new( CGI::escapeHTML contents ).to_html
81
+ return highlight_firewalls fix_hawaiian Kramdown::Document.new( contents ).to_html
96
82
  when "rc"
97
- return @redcarpet.render( fix_hawaiian CGI::escapeHTML contents )
83
+ return highlight_firewalls @redcarpet.render( fix_hawaiian contents )
98
84
  when "txt"
99
- return @redcarpet.render( fix_hawaiian CGI::escapeHTML contents )
85
+ return highlight_firewalls @redcarpet.render( fix_hawaiian contents )
100
86
  when "html"
101
87
  return contents
102
88
  else
@@ -111,6 +97,10 @@ class QDoc
111
97
  def fix_hawaiian( text )
112
98
  text.gsub("ʻ", "&#8216;").gsub("ā", "&#257;").gsub("ē","&#275;").gsub("ī", "&#299;").gsub("ō","&#333;").gsub("ū", "&#363;").gsub("Ā", "&#256;").gsub("Ē","&#274;").gsub("Ī", "&#298;").gsub("Ō", "&#332;").gsub("Ū", "&#362;")
113
99
  end
100
+
101
+ def highlight_firewalls( text )
102
+ text.gsub(/object-group( network| service){0,1} (\S+)/, '<span style="color:green">object-group\1</span> <span style="color:red">\2</span>')
103
+ end
114
104
 
115
105
  def create_page( content, title )
116
106
  "<!DOCTYPE html>
@@ -118,6 +108,26 @@ class QDoc
118
108
  <head>
119
109
  <title>" + title + "</title>
120
110
  <link href='bootstrap.min.css' rel='stylesheet'>
111
+ <style>
112
+ .bs-sidebar .nav > li > a {
113
+ padding-top: 0px;
114
+ padding-bottom: 0px;
115
+ padding-left: 10px;
116
+ font-size: 90%;
117
+ }
118
+ .bs-sidebar .nav .nav > li > a {
119
+ padding-top: 0px;
120
+ padding-bottom: 0px;
121
+ padding-left: 20px;
122
+ font-size: 75%;
123
+ }
124
+ .bs-sidebar .nav .nav .nav > li > a {
125
+ padding-top: 0px;
126
+ padding-bottom: 0px;
127
+ padding-left: 60px;
128
+ font-size: 80%;
129
+ }
130
+ </style>
121
131
  </head>
122
132
  <body>
123
133
  <div class='row'>
@@ -149,16 +159,59 @@ class QDoc
149
159
  end
150
160
 
151
161
  def create_nav( content )
152
- value = '<div id="navbar-example" class="bs-sidebar affix" role="complementary" style=""> <ul class="nav bs-sidenav">' + "\n"
162
+ # nav = '<div id="navbar" class="bs-sidebar affix" role="complementary">' + "\n"
153
163
  # value = "<ul class='nav'>"
154
- headers = Hash.new
164
+ # headers = Hash.new
155
165
  doc = Nokogiri::HTML content
156
- headers[:level1] = doc.xpath('//h1') # Nokogiri::XML::NodeSet
157
- headers[:level1].each do |h|
158
- value += "<li><a href='#" + h.attributes['id'].value + "'>" + h.content + "</a></li>\n" if ! h.attributes.empty?
166
+ # headers[:level1] = doc.xpath('//h1') # Nokogiri::XML::NodeSet
167
+ #headers = doc.xpath('/html/body/*[self::h1 or self::h2 or self::h3]') # Nokogiri::XML::NodeSet
168
+ headers = doc.xpath('/html/body/*[self::h1 or self::h2]') # Nokogiri::XML::NodeSet
169
+ if !headers.empty?
170
+ nav = headers.map { |h|
171
+ if h.attributes["id"] # Markdown
172
+ " " * ((h.name[1].to_i) - 1) + "* " + "<a href='#" + h.attributes["id"].value + "'>" + h.content + "</a>" if h.attributes["id"]
173
+ else # Redcloth
174
+ " " * ((h.name[1].to_i) - 1) + "* " + "<a href='#" + h.children.to_s + "'>" + h.children.to_s + "</a>" if !h.attributes["id"]
175
+ end
176
+ }.join("\n")
177
+ else
178
+ nav = ""
159
179
  end
160
- value += "</ul></div>"
161
- value
180
+ '<div id="navbar" class="bs-sidebar affix" role="complementary">' + Kramdown::Document.new( nav ).to_html.gsub("<ul>","<ul class='nav'>") + '</div>'
181
+ #####
182
+ # Manual List
183
+ ####
184
+ # if !headers.empty?
185
+ # level = 0
186
+ # headers.map { |h|
187
+ # h_level = h.name[1].to_i
188
+ # "</ul>" if level > h_level
189
+ # "<ul class='nav'>" if level < h_level
190
+ # }
191
+ # end
192
+ # level = 0
193
+ # headers.each do |h|
194
+ # binding.pry
195
+ # current_level = h.name[1].to_i
196
+ # if level > current_level
197
+ # level = current_level
198
+ # value += " " * level + "</li></ul>\n"
199
+ # elsif level < current_level
200
+ # value += " " * level + "<ul class='nav bs-sidenav'>\n" if current_level == 1
201
+ # value += " " * level + "<ul class='nav bs'>\n" if current_level > 1
202
+ # level = current_level
203
+ # elsif level == current_level
204
+ # value += "</li>\n"
205
+ # end
206
+ # value += " " * level + "<li><a href='#" + h.attributes['id'].value + "'>" + h.content + "</a>\n" if ! h.attributes.empty?
207
+ # end
208
+ # value += "</li>\n"
209
+ # while level > 1
210
+ # value += " " * level + "</ul></li>\n"
211
+ # level -= 1
212
+ # end
213
+ # value += "</ul></div>"
214
+ # value
162
215
  end
163
216
 
164
217
  def write_file( filename, content )
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: qdoc
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.25
4
+ version: 0.0.99
5
5
  platform: ruby
6
6
  authors:
7
7
  - Patrick Sereno
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-09-17 00:00:00.000000000 Z
11
+ date: 2013-10-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: redcarpet
@@ -53,7 +53,7 @@ dependencies:
53
53
  - !ruby/object:Gem::Version
54
54
  version: 1.6.0
55
55
  description: Allows you to create quick documents from textile or markdown into an
56
- html format.
56
+ html format. Rev 0.1 will be released when documentation is up to par.
57
57
  email: patrick@6orbits.com
58
58
  executables:
59
59
  - qdoc