origen_doc_helpers 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/config/application.rb +34 -0
- data/config/commands.rb +42 -0
- data/config/development.rb +16 -0
- data/config/environment.rb +30 -0
- data/config/users.rb +19 -0
- data/config/version.rb +8 -0
- data/lib/helpers.rb +234 -0
- data/lib/origen_doc_helpers.rb +2 -0
- data/lib/origen_doc_helpers/doc_interface.rb +74 -0
- data/lib/origen_doc_helpers/dut.rb +194 -0
- data/lib/origen_doc_helpers/pdf.rb +122 -0
- data/program/_func.rb +12 -0
- data/program/_hvst.rb +12 -0
- data/program/_para.rb +26 -0
- data/program/probe_1.rb +7 -0
- data/templates/pdf/topic_wrapper.html +21 -0
- data/templates/shared/_register.html.erb +207 -0
- data/templates/shared/_searchable.html.erb +86 -0
- data/templates/shared/_spec.html.erb +20 -0
- data/templates/shared/test/_flow.md.erb +227 -0
- data/templates/web/examples.md.erb +19 -0
- data/templates/web/examples/register.md.erb +101 -0
- data/templates/web/examples/searchable/intro.md.erb +128 -0
- data/templates/web/examples/searchable/page2.md.erb +5 -0
- data/templates/web/examples/searchable/topic1/item1.md.erb +5 -0
- data/templates/web/examples/searchable/topic1/item2.html.erb +7 -0
- data/templates/web/examples/spec.md.erb_NOT_WORKING +42 -0
- data/templates/web/examples/test/flow.md.erb +35 -0
- data/templates/web/examples/yammer.md.erb +28 -0
- data/templates/web/index.md.erb +40 -0
- data/templates/web/layouts/_basic.html.erb +13 -0
- data/templates/web/layouts/_doc.html.erb +22 -0
- data/templates/web/layouts/_examples.html.erb +5 -0
- data/templates/web/partials/_navbar.html.erb +21 -0
- data/templates/web/release_notes.md.erb +5 -0
- metadata +94 -0
@@ -0,0 +1,128 @@
|
|
1
|
+
% render "templates/web/layouts/doc.html", heading: "Creating Searchable Documents" do
|
2
|
+
|
3
|
+
This helper provides a layout that will create a nested collection of
|
4
|
+
documents like this one and which are searchable via the box on the
|
5
|
+
top left.
|
6
|
+
|
7
|
+
%#It can also build a PDF representation of the document collection.
|
8
|
+
|
9
|
+
### The Document Index
|
10
|
+
|
11
|
+
The application must supply a hash to describe the page index that has been built
|
12
|
+
on the the left of the page.
|
13
|
+
Here is the index used for this page:
|
14
|
+
|
15
|
+
~~~ruby
|
16
|
+
index = {}
|
17
|
+
index[nil] = {
|
18
|
+
intro: "Introduction",
|
19
|
+
page2: "Page 2",
|
20
|
+
}
|
21
|
+
index["Topic 1"] = {
|
22
|
+
topic1_item1: "First Item",
|
23
|
+
topic1_item2: "Second Item",
|
24
|
+
}
|
25
|
+
~~~
|
26
|
+
|
27
|
+
The sub-hash keys describe where each document lives and what its title is, for example
|
28
|
+
the document with title "Second Item" should live in <code>_documents_root_/topic1/item2.md.erb</code>.
|
29
|
+
|
30
|
+
By default the root is <code>"#{Origen.root}/templates/web/docs"</code> but this can be overridden
|
31
|
+
by supplying a <code>:root</code> option which should describe the relative path from <code>"#{Origen.root}/templates/web"</code>.
|
32
|
+
|
33
|
+
### The Layout Helper
|
34
|
+
|
35
|
+
A layout helper is provided to include a document in the search and wrap it
|
36
|
+
with the indexed layout:
|
37
|
+
|
38
|
+
~~~eruby
|
39
|
+
<%= "%" %> render "doc_helpers/searchable.html", index: index do
|
40
|
+
|
41
|
+
Blah blah blah
|
42
|
+
|
43
|
+
<%= "%" %> end
|
44
|
+
~~~
|
45
|
+
|
46
|
+
The <code>:index</code> option is mandatory, but the following are optional:
|
47
|
+
|
48
|
+
~~~text
|
49
|
+
%#:pdf_title - PDF creation is enabled by providing a title via this option, e.g. "My Application Guides"
|
50
|
+
:heading - Each wrapped document will have the heading (e.g. "First Item") inserted at the top of the page,
|
51
|
+
to override it supply this option. A common example would be if the topic is long and
|
52
|
+
so an abbreviated version has been used in the index. e.g. "First Item and Other Stuff"
|
53
|
+
:topic - Each wrapped document will have the topic (e.g. "Topic 1") inserted at the top of the page,
|
54
|
+
to override it supply this option. A common example would be if the topic is long and
|
55
|
+
so an abbreviated version has been used in the index. e.g. "Topic 1 and Other Stuff"
|
56
|
+
:root - override the top-level folder containing your documents, e.g. "tutorials/guides"
|
57
|
+
:tab - the helper should automatically work out what tab to select for each document, however
|
58
|
+
if it is struggling for some reason you can force it by supplying the hash key from the
|
59
|
+
index that the given document should be associated with, e.g. :topic1_item1
|
60
|
+
~~~
|
61
|
+
|
62
|
+
### Incorporating in Your Own Layout
|
63
|
+
|
64
|
+
Normally the searchable layout will be wrapped in your own application specific layout
|
65
|
+
to insert your custom navigation bar, etc.
|
66
|
+
|
67
|
+
As an example here is the actual layout that has been used to generate this page:
|
68
|
+
|
69
|
+
|
70
|
+
~~~eruby
|
71
|
+
---
|
72
|
+
title: <%= options[:title] || Origen.config.name %>
|
73
|
+
---
|
74
|
+
<%= "<" + "%= render \"partials/navbar.html\", tab: :examples %" + ">" %>
|
75
|
+
|
76
|
+
<%= "%" %> index = {}
|
77
|
+
<%= "%" %> index[nil] = {
|
78
|
+
<%= "%" %> intro: "Introduction",
|
79
|
+
<%= "%" %> page2: "Page 2",
|
80
|
+
<%= "%" %> }
|
81
|
+
<%= "%" %> index["Topic 1"] = {
|
82
|
+
<%= "%" %> topic1_item1: "First Item",
|
83
|
+
<%= "%" %> topic1_item2: "Second Item",
|
84
|
+
<%= "%" %> }
|
85
|
+
|
86
|
+
%#<%= "%" %> opts = options.merge(index: index, root: "examples/searchable", pdf_title: "Doc Helpers Searchable Guide")
|
87
|
+
<%= "%" %> opts = options.merge(index: index, root: "examples/searchable")
|
88
|
+
<%= "%" %> render "doc_helpers/searchable.html", options.merge(opts) do
|
89
|
+
|
90
|
+
<%= "<" + "%= yield %" + ">" %>
|
91
|
+
|
92
|
+
<%= "%" %> end
|
93
|
+
~~~
|
94
|
+
|
95
|
+
%#### Enabling PDF Generation
|
96
|
+
%#
|
97
|
+
%#PDF generation is enabled by supplying the <code>:pdf_title</code> option when calling
|
98
|
+
%#the <code>searchable.html</code> template as shown above.
|
99
|
+
%#No other application-level configuration or setup is required.
|
100
|
+
%#
|
101
|
+
%#This will generate the PDF at web site deploy time and add the download link to
|
102
|
+
%#the searchable document menu.
|
103
|
+
%#
|
104
|
+
%#PDF generation is currently only supported on Linux/CDE, the same restriction that applies
|
105
|
+
%#to deploying a web site.
|
106
|
+
|
107
|
+
### Writing Your Documents
|
108
|
+
|
109
|
+
With the layout setup, writing documents is very simple; these should normally
|
110
|
+
be regular markdown that is wrapped in your layout.
|
111
|
+
|
112
|
+
The top-level header size in your document should be <code>h3</code> or <code>###</code> in markdown.
|
113
|
+
|
114
|
+
<code>.html.erb</code> files will also work if you want to use them.
|
115
|
+
|
116
|
+
Here is the actual code used behind the [Topic 1 - First Item](<%= path "examples/searchable/topic1/item1" %>)
|
117
|
+
page (where the layout being rendered is the one above):
|
118
|
+
|
119
|
+
|
120
|
+
~~~eruby
|
121
|
+
<%= "%" %> render "templates/web/layouts/doc.html" do
|
122
|
+
|
123
|
+
Hello I'm item 1
|
124
|
+
|
125
|
+
<%= "%" %> end
|
126
|
+
~~~
|
127
|
+
|
128
|
+
% end
|
@@ -0,0 +1,42 @@
|
|
1
|
+
% render "../layouts/examples.html" do
|
2
|
+
|
3
|
+
# Specification Helpers
|
4
|
+
|
5
|
+
Use the [Origen specification API](http://origen.freescale.net/origen/latest/guides/models/specs)
|
6
|
+
to define specifications in the normal way,
|
7
|
+
all of the examples shown here are based on this specification definition:
|
8
|
+
|
9
|
+
~~~ruby
|
10
|
+
spec :soc_vdd do
|
11
|
+
symbol "Vdd"
|
12
|
+
description "Soc Core Power Supply"
|
13
|
+
min "#{vdd_nom} - 50.mV"
|
14
|
+
max "#{vdd_nom} + 50.mV"
|
15
|
+
audience :external
|
16
|
+
end
|
17
|
+
~~~
|
18
|
+
|
19
|
+
### Specification Table
|
20
|
+
|
21
|
+
<%= render "templates/shared/spec", spec: $dut.specs %>
|
22
|
+
|
23
|
+
Users can pass the following objects as arguments to the spec option:
|
24
|
+
|
25
|
+
1. An object that contains specs (e.g. $dut)
|
26
|
+
2. An object's spec hash (e.g. $dut.specs)
|
27
|
+
3. An individual spec (e.g. $dut.specs(:soc_vdd))
|
28
|
+
|
29
|
+
Here is an example of how to insert a specification table in
|
30
|
+
a document using method #3 from above:
|
31
|
+
|
32
|
+
~~~eruby
|
33
|
+
## Specification Table
|
34
|
+
|
35
|
+
<%= "%" %> $dut.specs.each do |name, spec|
|
36
|
+
|
37
|
+
<%= "<" + "%= render \"doc_helpers/spec.html\", spec: spec %" + ">" %>
|
38
|
+
|
39
|
+
<%= "%" %> end
|
40
|
+
~~~
|
41
|
+
|
42
|
+
% end
|
@@ -0,0 +1,35 @@
|
|
1
|
+
% render "../../layouts/examples.html" do
|
2
|
+
|
3
|
+
# Test Flow
|
4
|
+
|
5
|
+
Documentation of an Origen-generated test program can be created as follows (requires a
|
6
|
+
documentation interface to be setup):
|
7
|
+
|
8
|
+
~~~eruby
|
9
|
+
<%= "%" %> prog = Origen::Tester::Doc.generate_program_model("program/probe_1.rb", :target => "default")
|
10
|
+
|
11
|
+
<%= "<" + "%= render \"doc_helpers/test/flow.md\", :heading => \"Probe 1\", :program => prog, :flow => :probe_1_flow %" + ">" %>
|
12
|
+
~~~
|
13
|
+
|
14
|
+
The test flow helper takes the following required options:
|
15
|
+
|
16
|
+
* **heading** - The page heading, generally the name of the flow
|
17
|
+
* **program** - Supply a pre-generated program model
|
18
|
+
* **flow(s)** - The name of the flow(s) to document, supply multiple in an array
|
19
|
+
|
20
|
+
Additionally these options are available to customize the output:
|
21
|
+
|
22
|
+
* **link_to_pattern_docs** - Set this to <code>true</code> to generate links to documentation of the patterns
|
23
|
+
in place of the pattern name. Pattern docs should be placed in <code>templates/web/patterns</code> and the
|
24
|
+
files should be called \<pattern_name\>.md
|
25
|
+
* **context** - Supply an execution context to document only the test where the context is true. For example to
|
26
|
+
document the tests that will run when job is "P1"is set
|
27
|
+
supply <code>{ :job => "P1" }</code>
|
28
|
+
|
29
|
+
Here is a live example:
|
30
|
+
|
31
|
+
% prog = Origen::Tester::Doc.generate_program_model("program/probe_1.rb", :target => "debug")
|
32
|
+
|
33
|
+
<%= render "templates/shared/test/flow.md", :heading => "Probe 1", :program => prog, :flow => :probe_1_flow %>
|
34
|
+
|
35
|
+
% end
|
@@ -0,0 +1,28 @@
|
|
1
|
+
% render "../layouts/examples.html" do
|
2
|
+
|
3
|
+
# Yammer Widgets
|
4
|
+
|
5
|
+
These helpers wrap the [Yammer Embed API](https://developer.yammer.com/connect/)
|
6
|
+
which allows Yammer feeds to be embedded in any web page.
|
7
|
+
|
8
|
+
The most useful application of this is to provide a comment stream which will be
|
9
|
+
unique to each page, like the one you see below!
|
10
|
+
|
11
|
+
To include comments simply add this to the bottom of any given page, or your
|
12
|
+
layout file to add comments to every page:
|
13
|
+
|
14
|
+
~~~eruby
|
15
|
+
<%= "<" + "%= yammer_comments %" + ">" %>
|
16
|
+
~~~
|
17
|
+
|
18
|
+
The following options are available:
|
19
|
+
|
20
|
+
~~~text
|
21
|
+
:prompt - Set what the prompt for new comments should be, 'Comment on this page' is the default
|
22
|
+
:group_id - Specify a specific Yammer group ID, defaults to config.yammer_group in the application config, and if not defined falls back to the
|
23
|
+
Origen User's Group
|
24
|
+
~~~
|
25
|
+
|
26
|
+
<%= yammer_comments %>
|
27
|
+
|
28
|
+
% end
|
@@ -0,0 +1,40 @@
|
|
1
|
+
% render "layouts/basic.html" do
|
2
|
+
|
3
|
+
%# HTML tags can be embedded in mark down files if you want to do specific custom
|
4
|
+
%# formatting like this, but in most cases that is not required.
|
5
|
+
<h1><%= Origen.config.name %> <span style="font-size: 14px">(<%= Origen.app.version %>)</span></h1>
|
6
|
+
|
7
|
+
### Purpose
|
8
|
+
|
9
|
+
This plugin contains a collection of pre-written documentation layouts and helpers for use in
|
10
|
+
many typical Origen documentation scenarios.
|
11
|
+
|
12
|
+
Additional contributions are welcome, see below for how to setup a development environment,
|
13
|
+
please add examples for any new features.
|
14
|
+
|
15
|
+
### How To Import
|
16
|
+
|
17
|
+
In your Gemfile add:
|
18
|
+
|
19
|
+
~~~ruby
|
20
|
+
gem "origen_doc_helpers", ">= <%= Origen.app.version %>"
|
21
|
+
~~~
|
22
|
+
|
23
|
+
or if your application is a plugin add this to your <code>.gemspec</code>
|
24
|
+
|
25
|
+
~~~ruby
|
26
|
+
spec.add_development_dependency "origen_doc_helpers", ">= <%= Origen.app.version %>"
|
27
|
+
~~~
|
28
|
+
|
29
|
+
### How To Use
|
30
|
+
|
31
|
+
See the [Examples](<%= path "examples" %>) to see what is available
|
32
|
+
and how to use them.
|
33
|
+
|
34
|
+
### How To Setup a Development Environment
|
35
|
+
|
36
|
+
[Clone the repository from Github](https://github.com/Origen-SDK/origen_doc_helpers).
|
37
|
+
|
38
|
+
All templates can be found in <code>templates/shared</code>.
|
39
|
+
|
40
|
+
% end
|
@@ -0,0 +1,13 @@
|
|
1
|
+
---
|
2
|
+
title: <%= options[:title] || Origen.config.name %>
|
3
|
+
---
|
4
|
+
<%= render "templates/web/partials/navbar.html", :tab => options[:tab] %>
|
5
|
+
|
6
|
+
<div class="row">
|
7
|
+
%# The markdown attribute is important if you are going to include content written
|
8
|
+
%# in markdown, without this is will be included verbatim
|
9
|
+
<div class="span12" markdown="1">
|
10
|
+
<%= yield %>
|
11
|
+
|
12
|
+
</div>
|
13
|
+
</div>
|
@@ -0,0 +1,22 @@
|
|
1
|
+
---
|
2
|
+
title: <%= options[:title] || Origen.config.name %>
|
3
|
+
---
|
4
|
+
<%= render "partials/navbar.html", :tab => :examples %>
|
5
|
+
|
6
|
+
%# Add/edit sections here, the code below will expand this with the correct markup,
|
7
|
+
%# pass in the topic you want selected via the :tab option.
|
8
|
+
% s = {}
|
9
|
+
% s[nil] = {
|
10
|
+
% :intro => "Introduction",
|
11
|
+
% :page2 => "Page 2",
|
12
|
+
% }
|
13
|
+
% s["Topic 1"] = {
|
14
|
+
% :topic1_item1 => "First Item",
|
15
|
+
% :topic1_item2 => "Second Item",
|
16
|
+
% }
|
17
|
+
|
18
|
+
% render "templates/shared/searchable.html", options.merge(:index => s, :root => "examples/searchable") do
|
19
|
+
|
20
|
+
<%= yield %>
|
21
|
+
|
22
|
+
% end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
<nav class="navbar navbar-inverse navbar-fixed-top">
|
2
|
+
<div class="container">
|
3
|
+
<div class="navbar-header">
|
4
|
+
<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar">
|
5
|
+
<span class="sr-only">Toggle navigation</span>
|
6
|
+
<span class="icon-bar"></span>
|
7
|
+
<span class="icon-bar"></span>
|
8
|
+
<span class="icon-bar"></span>
|
9
|
+
</button>
|
10
|
+
<a class="navbar-brand" href="<%= path "/" %>">Home</a>
|
11
|
+
</div>
|
12
|
+
<div id="navbar" class="collapse navbar-collapse">
|
13
|
+
<ul class="nav navbar-nav">
|
14
|
+
<li class="<%= options[:tab] == :examples ? 'active' : '' %>"><a href="<%= path "/examples" %>">Examples</a></li>
|
15
|
+
<li class="<%= options[:tab] == :release ? 'active' : '' %>"><a href="<%= path "/release_notes" %>">Release Notes</a></li>
|
16
|
+
<li><a href="https://github.com/Origen-SDK/origen_doc_helpers">Github</a></li>
|
17
|
+
</ul>
|
18
|
+
<%= import "origen/web/logo.html" %>
|
19
|
+
</div><!--/.nav-collapse -->
|
20
|
+
</div>
|
21
|
+
</nav>
|
metadata
ADDED
@@ -0,0 +1,94 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: origen_doc_helpers
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.1.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Stephen McGinty
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2015-06-26 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: origen
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - ">="
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: 0.0.5
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - ">="
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: 0.0.5
|
27
|
+
description:
|
28
|
+
email:
|
29
|
+
- stephen.f.mcginty@gmail.com
|
30
|
+
executables: []
|
31
|
+
extensions: []
|
32
|
+
extra_rdoc_files: []
|
33
|
+
files:
|
34
|
+
- config/application.rb
|
35
|
+
- config/commands.rb
|
36
|
+
- config/development.rb
|
37
|
+
- config/environment.rb
|
38
|
+
- config/users.rb
|
39
|
+
- config/version.rb
|
40
|
+
- lib/helpers.rb
|
41
|
+
- lib/origen_doc_helpers.rb
|
42
|
+
- lib/origen_doc_helpers/doc_interface.rb
|
43
|
+
- lib/origen_doc_helpers/dut.rb
|
44
|
+
- lib/origen_doc_helpers/pdf.rb
|
45
|
+
- program/_func.rb
|
46
|
+
- program/_hvst.rb
|
47
|
+
- program/_para.rb
|
48
|
+
- program/probe_1.rb
|
49
|
+
- templates/pdf/topic_wrapper.html
|
50
|
+
- templates/shared/_register.html.erb
|
51
|
+
- templates/shared/_searchable.html.erb
|
52
|
+
- templates/shared/_spec.html.erb
|
53
|
+
- templates/shared/test/_flow.md.erb
|
54
|
+
- templates/web/examples.md.erb
|
55
|
+
- templates/web/examples/register.md.erb
|
56
|
+
- templates/web/examples/searchable/intro.md.erb
|
57
|
+
- templates/web/examples/searchable/page2.md.erb
|
58
|
+
- templates/web/examples/searchable/topic1/item1.md.erb
|
59
|
+
- templates/web/examples/searchable/topic1/item2.html.erb
|
60
|
+
- templates/web/examples/spec.md.erb_NOT_WORKING
|
61
|
+
- templates/web/examples/test/flow.md.erb
|
62
|
+
- templates/web/examples/yammer.md.erb
|
63
|
+
- templates/web/index.md.erb
|
64
|
+
- templates/web/layouts/_basic.html.erb
|
65
|
+
- templates/web/layouts/_doc.html.erb
|
66
|
+
- templates/web/layouts/_examples.html.erb
|
67
|
+
- templates/web/partials/_navbar.html.erb
|
68
|
+
- templates/web/release_notes.md.erb
|
69
|
+
homepage: http://origen-sdk.org/doc_helpers
|
70
|
+
licenses:
|
71
|
+
- LGPL-3
|
72
|
+
metadata: {}
|
73
|
+
post_install_message:
|
74
|
+
rdoc_options: []
|
75
|
+
require_paths:
|
76
|
+
- lib
|
77
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
78
|
+
requirements:
|
79
|
+
- - ">="
|
80
|
+
- !ruby/object:Gem::Version
|
81
|
+
version: 1.9.3
|
82
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
83
|
+
requirements:
|
84
|
+
- - ">="
|
85
|
+
- !ruby/object:Gem::Version
|
86
|
+
version: 1.8.11
|
87
|
+
requirements: []
|
88
|
+
rubyforge_project:
|
89
|
+
rubygems_version: 2.2.2
|
90
|
+
signing_key:
|
91
|
+
specification_version: 4
|
92
|
+
summary: Snippets and helpers for creating Origen web documents
|
93
|
+
test_files: []
|
94
|
+
has_rdoc:
|