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.
- checksums.yaml +4 -4
- data/lib/qdoc.rb +79 -26
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 2871f3190e6d0d7ad6027ba85b3fa39c6a5f50fd
|
4
|
+
data.tar.gz: b119accf55edb08edac75fe2b990fe4ad33bdc54
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b4fd64d2e838a4d8a13b6eba0d1c6b76928ac39366af2d1846b867c1c1d9892ae491a7bbd6f61f3785ac53c32dc8129aacd2864a38e142159e06acf4f629bb9d
|
7
|
+
data.tar.gz: cb6e241718e1c2604a35626074b14e7128c77f26df9c21e0d3061f413fb36bc171b10a9762db0ffd5ae1b2b48649acb5cb3f96fa2ab8b0b6e6058ea3a2265f29
|
data/lib/qdoc.rb
CHANGED
@@ -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(
|
81
|
+
return highlight_firewalls fix_hawaiian Kramdown::Document.new( contents ).to_html
|
96
82
|
when "rc"
|
97
|
-
return @redcarpet.render( fix_hawaiian
|
83
|
+
return highlight_firewalls @redcarpet.render( fix_hawaiian contents )
|
98
84
|
when "txt"
|
99
|
-
return @redcarpet.render( fix_hawaiian
|
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("ʻ", "‘").gsub("ā", "ā").gsub("ē","ē").gsub("ī", "ī").gsub("ō","ō").gsub("ū", "ū").gsub("Ā", "Ā").gsub("Ē","Ē").gsub("Ī", "Ī").gsub("Ō", "Ō").gsub("Ū", "Ū")
|
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
|
-
|
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[
|
158
|
-
|
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
|
-
|
161
|
-
|
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.
|
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-
|
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
|