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