yard-api 0.1.1 → 0.1.2
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/README.md +5 -0
- data/lib/yard-api/templates/helpers/html_helper.rb +27 -0
- data/lib/yard-api/version.rb +1 -1
- data/lib/yard-api/yardoc_task.rb +1 -0
- data/templates/api/docstring/html/text.erb +2 -2
- data/templates/api/fulldoc/html/setup.rb +11 -0
- data/templates/api/layout/html/layout.erb +15 -1
- data/templates/api/layout/html/scripts.erb +12 -0
- data/templates/api/layout/html/setup.rb +18 -13
- data/templates/api/layout/html/sidebar.erb +9 -15
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e57e3582930e4a46f3b37f99587c6920eef9b569
|
4
|
+
data.tar.gz: 10ddc0a2d4286478cc9ffaf0bcba61594addc973
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 52f99424016cc8c6926546d31e5196f79fc3d75e044b1aa371e7b161971584abf255b6f4335db309f8885bc42aba1ea10cb0ec1b473f9d0c2b0405e43b6acd77
|
7
|
+
data.tar.gz: cf0581d7c557506965ebd32dd890d99d29711052732db16b1e65b56193548c06f394b0a37c1121f7eb7f8301f41ff130bb17fa17f4e09b6f483f6e3d4ec0b8e1
|
data/README.md
CHANGED
@@ -14,6 +14,11 @@ TODO
|
|
14
14
|
|
15
15
|
## Changelog
|
16
16
|
|
17
|
+
**14/9/2014**
|
18
|
+
|
19
|
+
- Support for single-page output through the `one_file` option
|
20
|
+
- Support for resource index generation ("All Resources") through the `resource_index` option
|
21
|
+
|
17
22
|
**10/9/2014**
|
18
23
|
|
19
24
|
- Support for github-flavored markdown when you're using Markdown as a markup, and `redcarpet` as the provider
|
@@ -84,4 +84,31 @@ module YARD::Templates::Helpers::HtmlHelper
|
|
84
84
|
bookmark = "#{appendix.name.to_s.gsub(' ', '+')}-appendix"
|
85
85
|
link_url("#{html_file}##{bookmark}", appendix.title)
|
86
86
|
end
|
87
|
+
|
88
|
+
def sidebar_link(title, href)
|
89
|
+
<<-HTML
|
90
|
+
<a href="#{url_for(href)}">#{title}</a>
|
91
|
+
HTML
|
92
|
+
end
|
93
|
+
|
94
|
+
# Turns text into HTML using +markup+ style formatting.
|
95
|
+
#
|
96
|
+
# @override Syntax highlighting is not performed on the HTML block.
|
97
|
+
# @param [String] text the text to format
|
98
|
+
# @param [Symbol] markup examples are +:markdown+, +:textile+, +:rdoc+.
|
99
|
+
# To add a custom markup type, see {MarkupHelper}
|
100
|
+
# @return [String] the HTML
|
101
|
+
def htmlify(text, markup = options.markup)
|
102
|
+
markup_meth = "html_markup_#{markup}"
|
103
|
+
return text unless respond_to?(markup_meth)
|
104
|
+
return "" unless text
|
105
|
+
return text unless markup
|
106
|
+
html = send(markup_meth, text)
|
107
|
+
if html.respond_to?(:encode)
|
108
|
+
html = html.force_encoding(text.encoding) # for libs that mess with encoding
|
109
|
+
html = html.encode(:invalid => :replace, :replace => '?')
|
110
|
+
end
|
111
|
+
html = resolve_links(html)
|
112
|
+
html
|
113
|
+
end
|
87
114
|
end
|
data/lib/yard-api/version.rb
CHANGED
data/lib/yard-api/yardoc_task.rb
CHANGED
@@ -34,6 +34,7 @@ module YARD::APIPlugin
|
|
34
34
|
|
35
35
|
set_option('title', config['title'])
|
36
36
|
set_option('output-dir', config['output'])
|
37
|
+
set_option('one-file') if config['one_file']
|
37
38
|
set_option('readme', config['readme']) if File.exists?(config['readme'])
|
38
39
|
set_option('verbose') if config['verbose']
|
39
40
|
set_option('debug') if config['debug']
|
@@ -1,6 +1,6 @@
|
|
1
1
|
<% untagged = object.tags.reject { |tag| tag.tag_name == 'API' }.empty? %>
|
2
2
|
|
3
3
|
<% text = object.docstring.strip %>
|
4
|
-
<% text = '
|
4
|
+
<% text = '<em>No documentation available yet.</em>' if text.empty? && untagged %>
|
5
5
|
|
6
|
-
<%=
|
6
|
+
<%= htmlify(text) %>
|
@@ -12,6 +12,7 @@ def init
|
|
12
12
|
generate_assets
|
13
13
|
serialize_index
|
14
14
|
serialize_static_pages
|
15
|
+
serialize_mega_index if api_options['resource_index']
|
15
16
|
|
16
17
|
options.delete(:objects)
|
17
18
|
|
@@ -42,6 +43,16 @@ def serialize_index
|
|
42
43
|
options.delete(:file)
|
43
44
|
end
|
44
45
|
|
46
|
+
def serialize_mega_index
|
47
|
+
options[:all_resources] = true
|
48
|
+
|
49
|
+
Templates::Engine.with_serializer("all_resources.html", options[:serializer]) do
|
50
|
+
T('layout').run(options)
|
51
|
+
end
|
52
|
+
|
53
|
+
options.delete(:all_resources)
|
54
|
+
end
|
55
|
+
|
45
56
|
def asset(path, content)
|
46
57
|
options[:serializer].serialize(path, content) if options[:serializer]
|
47
58
|
end
|
@@ -9,7 +9,21 @@
|
|
9
9
|
<%= erb(:sidebar) %>
|
10
10
|
</div>
|
11
11
|
|
12
|
-
|
12
|
+
<% if options[:all_resources] %>
|
13
|
+
<div id="content">
|
14
|
+
<% if api_options['one_file'] %>
|
15
|
+
<% static_pages.each do |page| %>
|
16
|
+
<%= diskfile page[:src] %>
|
17
|
+
<% end %>
|
18
|
+
<% end %>
|
19
|
+
|
20
|
+
<% options[:resources].each do |resource, controllers| %>
|
21
|
+
<%= yieldall object: resource, controllers: controllers %>
|
22
|
+
<% end %>
|
23
|
+
</div>
|
24
|
+
<% else %>
|
25
|
+
<div id="content"><%= yieldall %></div>
|
26
|
+
<% end %>
|
13
27
|
|
14
28
|
<%= erb(:footer) %>
|
15
29
|
<%= erb(:scripts) %>
|
@@ -16,6 +16,18 @@
|
|
16
16
|
$('<li>').append($link).appendTo($row);
|
17
17
|
});
|
18
18
|
|
19
|
+
// Highlight the current page in the sidebar
|
20
|
+
$(function() {
|
21
|
+
var currentPage = location.pathname.match(/\/([^\/]+)$/)[1];
|
22
|
+
var $page = $('#sidebar [href="' + currentPage + '"]');
|
23
|
+
if ($page.length === 0) {
|
24
|
+
$page = $('#sidebar a[href=""]');
|
25
|
+
}
|
26
|
+
|
27
|
+
$page.addClass('current');
|
28
|
+
console.log('Highlighting current page:', $page, currentPage);
|
29
|
+
});
|
30
|
+
|
19
31
|
$('#content pre.code').each(function(i, block) {
|
20
32
|
var code;
|
21
33
|
var $block = $(block);
|
@@ -1,20 +1,15 @@
|
|
1
1
|
include Helpers::FilterHelper
|
2
2
|
|
3
3
|
def init
|
4
|
-
@breadcrumb = []
|
5
|
-
|
6
4
|
@page_title = options[:title]
|
7
5
|
|
8
|
-
if
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
else
|
13
|
-
@contents = @file.contents
|
14
|
-
@file = File.basename(@file.path)
|
15
|
-
end
|
16
|
-
def @object.source_type; nil; end
|
6
|
+
if options[:inline_file]
|
7
|
+
@contents = File.read(options[:file])
|
8
|
+
sections :diskfile
|
9
|
+
elsif @file
|
17
10
|
sections :layout, [:diskfile]
|
11
|
+
elsif options[:all_resources]
|
12
|
+
sections :layout, [T('topic'), T('appendix')]
|
18
13
|
elsif options[:controllers]
|
19
14
|
sections :layout, [T('topic'), T('appendix')]
|
20
15
|
else
|
@@ -34,9 +29,19 @@ def index
|
|
34
29
|
erb(:index)
|
35
30
|
end
|
36
31
|
|
37
|
-
def diskfile
|
32
|
+
def diskfile(filename=@file)
|
33
|
+
if filename.is_a?(String)
|
34
|
+
@contents = File.read(filename)
|
35
|
+
filename = File.basename(filename)
|
36
|
+
elsif filename.is_a?(File)
|
37
|
+
@contents = filename.contents
|
38
|
+
filename = File.basename(filename.path)
|
39
|
+
end
|
40
|
+
|
41
|
+
extension = (File.extname(filename)[1..-1] || '').downcase
|
42
|
+
|
38
43
|
content = "<div id='filecontents'>" +
|
39
|
-
case
|
44
|
+
case extension
|
40
45
|
when 'htm', 'html'
|
41
46
|
@contents
|
42
47
|
when 'txt'
|
@@ -5,25 +5,19 @@
|
|
5
5
|
</h1>
|
6
6
|
|
7
7
|
<h2 class='first'>Pages</h2>
|
8
|
-
|
9
|
-
|
10
|
-
class="<%= 'current' if options[:object] == 'index.html' %>">Home
|
11
|
-
</a>
|
8
|
+
|
9
|
+
<%= sidebar_link('Home', 'index.html') %>
|
12
10
|
|
13
11
|
<% static_pages.each do |page| %>
|
14
|
-
|
15
|
-
class="<%= 'current' if options[:object] == page[:filename] %>">
|
16
|
-
<%= page[:title] %>
|
17
|
-
</a>
|
12
|
+
<%= sidebar_link(page[:title], page[:filename]) %>
|
18
13
|
<% end %>
|
19
14
|
|
20
15
|
<h2>Resources</h2>
|
21
|
-
<%
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
%>
|
27
|
-
<a class="<%= klass.join(' ') %>" href="<%= link %>"><%= resource %></a>
|
16
|
+
<% if api_options['resource_index'] %>
|
17
|
+
<%= sidebar_link('All Resources', 'all_resources.html') %>
|
18
|
+
<% end %>
|
19
|
+
|
20
|
+
<% options[:resources].each do |resource, controllers| %>
|
21
|
+
<%= sidebar_link resource, "#{topicize(resource)}.html" %>
|
28
22
|
<% end %>
|
29
23
|
</nav>
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: yard-api
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ahmad Amireh
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-09-
|
11
|
+
date: 2014-09-14 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: yard
|