qdoc 0.0.23 → 0.0.25

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 +38 -19
  3. metadata +18 -4
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 8d15f985461e6968951af4faa1cd89f97e176a6a
4
- data.tar.gz: 800dbc887390648b3a60f7a403b41b5dd2c8f863
3
+ metadata.gz: 0b2a3b0810bc5f07f4e658408dee9a017c389115
4
+ data.tar.gz: 17436f66490ded735a52d6eb70474b403d10c97f
5
5
  SHA512:
6
- metadata.gz: fc7674660a98508ec3b4cc10cbe49a71e4702fac92774f9bac0cd0592c8f90e79b4a4dc7cb949938e74b97c9ec85b1b89f9ac1e311f2bd83b018f8ae4e29549f
7
- data.tar.gz: 2f89b14f7ade0106202a65389b3a5c6a6d05fe2e1193f5e046f9490e2e5aca1c30f0e278019a7d4e1b3e04bd07cefb405cd87b536b6105c1617f9400d1cb3f9c
6
+ metadata.gz: a43620e478f79112abc288a886048fd56583ff1095e7b3fd82de5adc39ae9b5726925b1c1b2c96c02415542bc881c938217e5fc29053ba9e1bfd2365c79e5bf1
7
+ data.tar.gz: cede091c8d86c3715c16c4cd52a176f80918cb4b6a85e5d7ba8c865077ccabcce54be829055db26f46edd6800be6bebc8e560cb9aeb456513ff833af9cb5f74f
@@ -3,11 +3,17 @@ require 'redcarpet'
3
3
  require 'kramdown'
4
4
  require 'fileutils'
5
5
  require 'cgi'
6
+ require 'nokogiri'
7
+
8
+ #
6
9
 
7
10
  class QDoc
8
11
 
12
+ # Initializes QDoc
13
+ # [options[:output_directory] set the directory to be created for documentation
14
+ # [options#index_content] set the static index page message
9
15
  def initialize( options = {} )
10
- defaults = { output_directory: "doc", index_content: "Choose from the left nav." }
16
+ defaults = { output_directory: "doc", index_content: "Choose from the list." }
11
17
  options = defaults.merge options
12
18
  @out_dir = options[:output_directory]
13
19
 
@@ -18,15 +24,15 @@ class QDoc
18
24
  @redcarpet = Redcarpet::Markdown.new(Redcarpet::Render::HTML, :autolink => true, :space_after_headers => true)
19
25
  end
20
26
 
27
+ # Causes QDoc to search the current directory and tree, and parse found files
21
28
  def run
22
29
  @locations = identify_locations
23
30
  @documents = stage_files( @locations )
24
- nav = create_nav( @documents )
25
- # index = nil
31
+ @index[:content] = create_index @documents
26
32
  make_doc_directory
27
33
  @documents.each do |doc|
28
34
  doc[:content] = parse_document( doc ) if doc[:parse] #"#{doc[:directory]}/#{doc[:filename]}")
29
- write_file( "#{@out_dir}/#{doc[:output_file]}", create_page(nav, doc[:content]) )
35
+ write_file( "#{@out_dir}/#{doc[:output_file]}", create_page(doc[:content], doc[:title]) )
30
36
  end
31
37
  copy_bootstrap
32
38
  end
@@ -48,16 +54,16 @@ class QDoc
48
54
  locations
49
55
  end
50
56
 
51
- def create_index
52
- page = "<div class='col-md-8'><p>Choose from the left navigation to select a document</p>" + \
53
- "<p>#{@documents.count-1} files parsed from the following locations:<p>" + \
54
- "<table class='table table-striped'><tbody>"
55
- @locations.each do |l|
56
- l = "Current Dir" if l == ""
57
- page += "<tr><td>#{l}</td></tr>"
58
- end
59
- page += "</tbody></table></div>"
60
- end
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
61
67
 
62
68
  def stage_files( locations )
63
69
  documents = [ @index ]
@@ -106,17 +112,17 @@ class QDoc
106
112
  text.gsub("ʻ", "&#8216;").gsub("ā", "&#257;").gsub("ē","&#275;").gsub("ī", "&#299;").gsub("ō","&#333;").gsub("ū", "&#363;").gsub("Ā", "&#256;").gsub("Ē","&#274;").gsub("Ī", "&#298;").gsub("Ō", "&#332;").gsub("Ū", "&#362;")
107
113
  end
108
114
 
109
- def create_page( nav, content )
115
+ def create_page( content, title )
110
116
  "<!DOCTYPE html>
111
117
  <html>
112
118
  <head>
113
- <title>My Documents</title>
119
+ <title>" + title + "</title>
114
120
  <link href='bootstrap.min.css' rel='stylesheet'>
115
121
  </head>
116
122
  <body>
117
123
  <div class='row'>
118
- <div class='col-md-3'>" + \
119
- nav + \
124
+ <div class='col-md-3 hidden-print'>" + \
125
+ create_nav( content ) + \
120
126
  "</div>
121
127
  <div class='col-md-9'>" + \
122
128
  content + \
@@ -125,7 +131,7 @@ class QDoc
125
131
  </body>"
126
132
  end
127
133
 
128
- def create_nav( documents )
134
+ def create_index( documents )
129
135
  snippet = "<table class='table table-striped'>
130
136
  <thead>
131
137
  <tr>
@@ -141,6 +147,19 @@ class QDoc
141
147
  snippet += "</tbody></table>"
142
148
  snippet
143
149
  end
150
+
151
+ def create_nav( content )
152
+ value = '<div id="navbar-example" class="bs-sidebar affix" role="complementary" style=""> <ul class="nav bs-sidenav">' + "\n"
153
+ # value = "<ul class='nav'>"
154
+ headers = Hash.new
155
+ 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?
159
+ end
160
+ value += "</ul></div>"
161
+ value
162
+ end
144
163
 
145
164
  def write_file( filename, content )
146
165
  File.open(filename, "w") do |o|
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.23
4
+ version: 0.0.25
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-08-25 00:00:00.000000000 Z
11
+ date: 2013-09-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: redcarpet
@@ -38,8 +38,22 @@ dependencies:
38
38
  - - '>='
39
39
  - !ruby/object:Gem::Version
40
40
  version: 1.1.0
41
- description: Allows you to create quick documents from html-markup (or markdown) into
42
- an html format.
41
+ - !ruby/object:Gem::Dependency
42
+ name: nokogiri
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - '>='
46
+ - !ruby/object:Gem::Version
47
+ version: 1.6.0
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - '>='
53
+ - !ruby/object:Gem::Version
54
+ version: 1.6.0
55
+ description: Allows you to create quick documents from textile or markdown into an
56
+ html format.
43
57
  email: patrick@6orbits.com
44
58
  executables:
45
59
  - qdoc