[DOCS] Add index page generation for each plugin type

Fixes #1741
This commit is contained in:
Richard Pijnenburg 2014-09-16 10:17:27 +00:00 committed by Jordan Sissel
parent b8b05ebde7
commit d5a2214d8e
5 changed files with 207 additions and 0 deletions

29
docs/asciidoc_index.rb Normal file
View file

@ -0,0 +1,29 @@
#!/usr/bin/env ruby
require "erb"
if ARGV.size != 2
$stderr.puts "No path given to search for plugin docs"
$stderr.puts "Usage: #{$0} plugin_doc_dir"
exit 1
end
def plugins(glob)
plugins=Hash.new []
files = Dir.glob(glob)
files.collect { |f| File.basename(f).gsub(".asciidoc", "") }.each {|plugin|
first_letter = plugin[0,1]
plugins[first_letter] += [plugin]
}
return Hash[plugins.sort]
end # def plugins
basedir = ARGV[0]
type = ARGV[1]
docs = plugins(File.join(basedir, "#{type}/*.asciidoc"))
template_path = File.join(File.dirname(__FILE__), "index-#{type}.asciidoc.erb")
template = File.new(template_path).read
erb = ERB.new(template, nil, "-")
puts erb.result(binding)

View file

@ -0,0 +1,45 @@
[[codec-plugins]]
== Codec plugins
Some docs about Codecs
Available Codec plugins:
<%-
full_list=[]
letters=[]
docs.each do |doc|
letter = doc[0]
letters << letter
-%>
<<plugins-codecs-letters-<%= letter %>, <%=letter %>>>
<%- end -%>
<%-
cols=3
rows=(docs.count/cols)+1
item=0
r=0
-%>
[cols="asciidoc,asciidoc,asciidoc"]
|=======================================================================
<%- while r < rows do -%>
<%- c=0; while c < cols do -%>|<% if letters[item].nil? %>&nbsp; <% else %>[[plugins-codecs-letters-<%=letters[item] %>]] <% end %>
<%- letter = letters[item];
arr = docs[letter]
if ! arr.nil?
arr.each do |plugin_item|
full_list << plugin_item
%>* <<plugins-codecs-<%=plugin_item -%>,<%=plugin_item -%>>>
<%- end
end -%>
<%- item+=1; c+=1; end; r+=1 end -%>
|=======================================================================
<%-
full_list.each do |plugin|
-%>
include::codecs/<%=plugin %>.asciidoc[]
<%- end -%>

View file

@ -0,0 +1,45 @@
[[filter-plugins]]
== Filter plugins
Some docs about Filter plugins
Available Filter plugins:
<%-
full_list=[]
letters=[]
docs.each do |doc|
letter = doc[0]
letters << letter
-%>
<<plugins-filters-letters-<%= letter %>, <%=letter %>>>
<%- end -%>
<%-
cols=3
rows=(docs.count/cols)+1
item=0
r=0
-%>
[cols="asciidoc,asciidoc,asciidoc"]
|=======================================================================
<%- while r < rows do -%>
<%- c=0; while c < cols do -%>|<% if letters[item].nil? %>&nbsp; <% else %>[[plugins-filters-letters-<%=letters[item] %>]] <% end %>
<%- letter = letters[item];
arr = docs[letter]
if ! arr.nil?
arr.each do |plugin_item|
full_list << plugin_item
%>* <<plugins-filters-<%=plugin_item -%>,<%=plugin_item -%>>>
<%- end
end -%>
<%- item+=1; c+=1; end; r+=1 end -%>
|=======================================================================
<%-
full_list.each do |plugin|
-%>
include::filters/<%=plugin %>.asciidoc[]
<%- end -%>

View file

@ -0,0 +1,45 @@
[[input-plugins]]
== Input plugins
Some docs about inputs
Available input plugins:
<%-
full_list=[]
letters=[]
docs.each do |doc|
letter = doc[0]
letters << letter
-%>
<<plugins-inputs-letters-<%= letter %>, <%=letter %>>>
<%-
end
cols=3
rows=(docs.count/cols)+1
item=0
r=0
-%>
[cols="asciidoc,asciidoc,asciidoc"]
|=======================================================================
<%- while r < rows do -%>
<%- c=0; while c < cols do -%>|<% if letters[item].nil? %>&nbsp; <% else %>[[plugins-inputs-letters-<%=letters[item] %>]] <% end %>
<%- letter = letters[item];
arr = docs[letter]
if ! arr.nil?
arr.each do |plugin_item|
full_list << plugin_item
%>* <<plugins-inputs-<%=plugin_item -%>,<%=plugin_item -%>>>
<%- end
end -%>
<%- item+=1; c+=1; end; r+=1 end -%>
|=======================================================================
<%-
full_list.each do |plugin|
-%>
include::inputs/<%=plugin %>.asciidoc[]
<%- end -%>

View file

@ -0,0 +1,43 @@
[[output-plugins]]
== Output plugins
Some docs about output plugins
Available output plugins:
<%-
full_list=[]
letters=[]
docs.each do |doc|
letter = doc[0]
letters << letter
-%>
<<plugins-outputs-letters-<%= letter %>, <%=letter %>>>
<%- end -%>
<%-
cols=3
rows=(docs.count/cols)+1
item=0
r=0
-%>
[cols="asciidoc,asciidoc,asciidoc"]
|=======================================================================
<%- while r < rows do -%>
<%- c=0; while c < cols do -%>|<% if letters[item].nil? %>&nbsp; <% else %>[[plugins-outputs-letters-<%=letters[item] %>]] <% end %>
<%- letter = letters[item];
arr = docs[letter]
if ! arr.nil?
arr.each do |plugin_item|
full_list << plugin_item
%>* <<plugins-outputs-<%=plugin_item -%>,<%=plugin_item -%>>>
<%- end
end -%>
<%- item+=1; c+=1; end; r+=1 end -%>
|=======================================================================
<%-
full_list.each do |plugin|
-%>
include::outputs/<%=plugin %>.asciidoc[]
<%- end -%>