utopia-project 0.7.1 → 0.8.0
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/bake/utopia/project.rb +3 -3
- data/lib/utopia/project/base.rb +49 -24
- data/lib/utopia/project/guide.rb +31 -9
- data/lib/utopia/project/version.rb +1 -1
- data/lib/utopia/project.rb +3 -3
- data/pages/_usage.xnode +2 -2
- data/pages/guides/show.xnode +1 -1
- data/pages/source/_signature.xnode +40 -0
- data/pages/source/index.xnode +1 -1
- data/pages/source/show.xnode +6 -23
- data/public/_static/site.css +17 -2
- metadata +5 -19
- data/.editorconfig +0 -13
- data/.github/workflows/development.yml +0 -62
- data/.gitignore +0 -17
- data/.rspec +0 -2
- data/.yarnrc +0 -1
- data/README.md +0 -54
- data/gems.rb +0 -4
- data/guides/documentation-formatting/README.md +0 -55
- data/guides/getting-started/README.md +0 -31
- data/guides/github-pages-integration/README.md +0 -17
- data/guides/links.yaml +0 -6
- data/package.json +0 -6
- data/public/.nojekyll +0 -0
- data/utopia-project.gemspec +0 -35
- data/yarn.lock +0 -22
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 85b28d4f829a2a136cfecc1d3eb56f969f12120dc3811f854eea5969970cf662
|
4
|
+
data.tar.gz: a5d2f5460d383fbc2260f14145e01ca8dcd0ababf874ba6a4ea899236457b14a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 880f4b5705451fa21fcf48042ed447b0265ac75e12c877a5683b87c939f2185f57858fc066aae39110ed48e69f04f57b76c2af8b38b6bd08df8f95e15c22091b
|
7
|
+
data.tar.gz: 56504db1b9b96fa279d91aa99beb3c3a0fcb9f5c00e918857b2c6247681c9406f4f77c1e0c166721449b319c46c71f50fc37d1c68102a0da5856dad5c6a146fa
|
data/bake/utopia/project.rb
CHANGED
@@ -11,8 +11,8 @@ end
|
|
11
11
|
# Serve the project using a web server.
|
12
12
|
# Binds to `https://localhost:9292` by default.
|
13
13
|
#
|
14
|
-
# @
|
15
|
-
# @
|
14
|
+
# @parameter port [Integer] The port to bind to.
|
15
|
+
# @parameter bind [String] The URL to bind to, e.g. `http://localhost:80`.
|
16
16
|
def serve(port: nil, bind: nil)
|
17
17
|
config_path = File.expand_path("../../template/config.ru", __dir__)
|
18
18
|
preload_path = File.expand_path("../../template/preload.rb", __dir__)
|
@@ -31,7 +31,7 @@ def serve(port: nil, bind: nil)
|
|
31
31
|
end
|
32
32
|
|
33
33
|
# Generate a static copy of the site.
|
34
|
-
# @
|
34
|
+
# @parameter output_path [String] The output path for the static site.
|
35
35
|
def static(output_path: "docs")
|
36
36
|
require 'rackula/command'
|
37
37
|
|
data/lib/utopia/project/base.rb
CHANGED
@@ -51,7 +51,7 @@ module Utopia
|
|
51
51
|
end
|
52
52
|
|
53
53
|
# Initialize the project with the given root path.
|
54
|
-
# @
|
54
|
+
# @parameter root [String] The file-system path to the root of the project.
|
55
55
|
def initialize(root = Dir.pwd)
|
56
56
|
@root = root
|
57
57
|
|
@@ -63,13 +63,16 @@ module Utopia
|
|
63
63
|
end
|
64
64
|
|
65
65
|
# The file-system path to the root of the project.
|
66
|
+
# @attribute [String]
|
66
67
|
attr :root
|
67
68
|
|
68
69
|
# The source code index which is used for generating pages.
|
70
|
+
# @attribute [Decode::Index]
|
69
71
|
attr :index
|
70
72
|
|
71
73
|
# Return the absolute path for the given file name, if it exists in the project.
|
72
|
-
# @
|
74
|
+
# @parameter file_name [String] The relative path to the project file, e.g. `README.md`.
|
75
|
+
# @returns [String] The file-system path.
|
73
76
|
def path_for(file_name)
|
74
77
|
full_path = File.expand_path(file_name, @root)
|
75
78
|
if File.exist?(full_path)
|
@@ -78,28 +81,35 @@ module Utopia
|
|
78
81
|
end
|
79
82
|
|
80
83
|
# Update the index with the specified paths.
|
81
|
-
# @
|
84
|
+
# @parameter paths [Array(String)] The paths to load and parse.
|
82
85
|
def update(paths)
|
83
86
|
@index.update(paths)
|
84
87
|
end
|
85
88
|
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
89
|
+
# Given an array of defintions, return the best definition for the purposes of generating documentation.
|
90
|
+
# @returns [Decode::Definition | Nil]
|
91
|
+
def best(definitions)
|
92
|
+
definitions.each do |definition|
|
93
|
+
if definition.documentation
|
94
|
+
return definition
|
90
95
|
end
|
91
96
|
end
|
92
97
|
|
93
|
-
return
|
98
|
+
return definitions.first
|
94
99
|
end
|
95
100
|
|
101
|
+
# Given a lexical path, find the best definition for that path.
|
102
|
+
# @returns [Tuple(Decode::Trie::Node, Decode::Definition)]
|
96
103
|
def lookup(path)
|
97
104
|
if node = @index.trie.lookup(path.map(&:to_sym))
|
98
105
|
return node, best(node.values)
|
99
106
|
end
|
100
107
|
end
|
101
108
|
|
102
|
-
|
109
|
+
# Format the given text in the context of the given definition and language.
|
110
|
+
# See {document} for details.
|
111
|
+
# @returns [Trenni::MarkupString]
|
112
|
+
def format(text, definition = nil, language: definition&.language)
|
103
113
|
case text
|
104
114
|
when Enumerable
|
105
115
|
text = text.to_a.join("\n")
|
@@ -107,29 +117,38 @@ module Utopia
|
|
107
117
|
return nil
|
108
118
|
end
|
109
119
|
|
110
|
-
if document = self.document(text,
|
120
|
+
if document = self.document(text, definition, language: language)
|
111
121
|
return Trenni::MarkupString.raw(
|
112
122
|
document.to_html
|
113
123
|
)
|
114
124
|
end
|
115
125
|
end
|
116
126
|
|
117
|
-
|
118
|
-
|
119
|
-
|
127
|
+
# Convert the given markdown text into HTML.
|
128
|
+
#
|
129
|
+
# - Updates source code references (`{language identifier}`) into links.
|
130
|
+
# - Uses {Kramdown} to convert the text into HTML.
|
131
|
+
#
|
132
|
+
# @returns [Kramdown::Document]
|
133
|
+
def document(text, definition = nil, language: definition&.language)
|
134
|
+
text = text&.gsub(/(?<!`){(.*?)}/) do |match|
|
135
|
+
linkify($1, definition, language: language)
|
120
136
|
end
|
121
137
|
|
122
138
|
return Kramdown::Document.new(text, syntax_highlighter: nil)
|
123
139
|
end
|
124
140
|
|
125
|
-
|
141
|
+
# Replace source code references in the given text with HTML anchors.
|
142
|
+
#
|
143
|
+
# @returns [Trenni::Builder]
|
144
|
+
def linkify(text, definition = nil, language: definition&.language)
|
126
145
|
reference = @index.languages.parse_reference(text, default_language: language)
|
127
146
|
|
128
147
|
Trenni::Builder.fragment do |builder|
|
129
|
-
if reference and definition = @index.lookup(reference, relative_to:
|
148
|
+
if reference and definition = @index.lookup(reference, relative_to: definition)&.first
|
130
149
|
builder.inline('a', href: link_for(definition)) do
|
131
150
|
builder.inline('code', class: "language-#{definition.language.name}") do
|
132
|
-
builder.text definition.
|
151
|
+
builder.text definition.qualified_form
|
133
152
|
end
|
134
153
|
end
|
135
154
|
elsif reference
|
@@ -145,26 +164,32 @@ module Utopia
|
|
145
164
|
end
|
146
165
|
|
147
166
|
# Compute a unique string which can be used as `id` attribute in the HTML output.
|
148
|
-
|
167
|
+
# @returns [String]
|
168
|
+
def id_for(definition, suffix = nil)
|
149
169
|
if suffix
|
150
|
-
"#{
|
170
|
+
"#{definition.qualified_name}-#{suffix}"
|
151
171
|
else
|
152
|
-
|
172
|
+
definition.qualified_name
|
153
173
|
end
|
154
174
|
end
|
155
175
|
|
156
|
-
# Compute a link href to the given
|
157
|
-
|
158
|
-
|
176
|
+
# Compute a link href to the given definition for use within the HTML output.
|
177
|
+
# @returns [Trenni::Reference]
|
178
|
+
def link_for(definition)
|
179
|
+
path = definition.lexical_path.map{|entry| entry.to_s}
|
159
180
|
|
160
|
-
if
|
181
|
+
if definition.container?
|
161
182
|
return Trenni::Reference.new(@source_path + path + "index")
|
162
183
|
else
|
163
184
|
name = path.pop
|
164
|
-
return Trenni::Reference.new(@source_path + path + "index", fragment: id_for(
|
185
|
+
return Trenni::Reference.new(@source_path + path + "index", fragment: id_for(definition))
|
165
186
|
end
|
166
187
|
end
|
167
188
|
|
189
|
+
# Enumerate over all available guides in order.
|
190
|
+
# @block {|guide| ... }
|
191
|
+
# @yield guide [Guide]
|
192
|
+
# @returns [Enumerator(Guide)]
|
168
193
|
def guides
|
169
194
|
return to_enum(:guides) unless block_given?
|
170
195
|
|
data/lib/utopia/project/guide.rb
CHANGED
@@ -30,8 +30,8 @@ module Utopia
|
|
30
30
|
# Provides structured access to a directory which contains documentation and source code to explain a specific process.
|
31
31
|
class Guide
|
32
32
|
# Initialize the example with the given root path.
|
33
|
-
# @
|
34
|
-
# @
|
33
|
+
# @parameter base [Base] The base instance for the project.
|
34
|
+
# @parameter root [String] The file-system path to the root of the example.
|
35
35
|
def initialize(base, root)
|
36
36
|
@base = base
|
37
37
|
@root = root
|
@@ -46,25 +46,25 @@ module Utopia
|
|
46
46
|
end
|
47
47
|
|
48
48
|
# The description from the first paragraph in the README.
|
49
|
-
# @
|
49
|
+
# @attribute [String | Nil]
|
50
50
|
attr :description
|
51
51
|
|
52
52
|
README = "README.md"
|
53
53
|
|
54
|
+
# The path to the README file for the guide.
|
55
|
+
# @returns [String] The file-system path.
|
54
56
|
def readme_path
|
55
57
|
File.expand_path(README, @root)
|
56
58
|
end
|
57
59
|
|
60
|
+
# Does a README file exist for this guide?
|
61
|
+
# @returns [Boolean]
|
58
62
|
def readme?
|
59
63
|
File.exist?(readme_path)
|
60
64
|
end
|
61
65
|
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
return @base.document(content)
|
66
|
-
end
|
67
|
-
|
66
|
+
# The document for the README, if one exists.
|
67
|
+
# @returns [Kramdown::Document]
|
68
68
|
def document
|
69
69
|
if self.readme?
|
70
70
|
@document ||= self.readme_document.tap do |document|
|
@@ -89,31 +89,47 @@ module Utopia
|
|
89
89
|
end
|
90
90
|
|
91
91
|
# The base instance of the project this example is loaded from.
|
92
|
+
# @attribute [Base]
|
92
93
|
attr :base
|
93
94
|
|
94
95
|
# The file-system path to the root of the project.
|
96
|
+
# @attribute [String]
|
95
97
|
attr :root
|
96
98
|
|
99
|
+
# The name of the guide.
|
100
|
+
# @returns [String]
|
97
101
|
def name
|
98
102
|
File.basename(@root)
|
99
103
|
end
|
100
104
|
|
105
|
+
# The title of the guide.
|
106
|
+
# @returns [String]
|
101
107
|
def title
|
102
108
|
@title || Trenni::Strings.to_title(self.name)
|
103
109
|
end
|
104
110
|
|
111
|
+
# The hypertext reference to this guide.
|
112
|
+
# @returns [String]
|
105
113
|
def href
|
106
114
|
"/guides/#{self.name}/index"
|
107
115
|
end
|
108
116
|
|
117
|
+
# The best documentation, extracted from the source files of the guide.
|
118
|
+
# @returns [Decode::Documentation]
|
109
119
|
def documentation
|
110
120
|
@documentation ||= self.best_documentation
|
111
121
|
end
|
112
122
|
|
123
|
+
# All files associated with this guide.
|
124
|
+
# @returns [Array(String)] The file-system paths.
|
113
125
|
def files
|
114
126
|
Dir.glob(File.expand_path("*", @root))
|
115
127
|
end
|
116
128
|
|
129
|
+
# All the source files associated with this guide.
|
130
|
+
# @block {|source| ... } If a block is given.
|
131
|
+
# @yield source [Decode::Source]
|
132
|
+
# @returns [Enumerator(Decode::Source)] If no block is given.
|
117
133
|
def sources
|
118
134
|
return to_enum(:sources) unless block_given?
|
119
135
|
|
@@ -126,6 +142,12 @@ module Utopia
|
|
126
142
|
|
127
143
|
private
|
128
144
|
|
145
|
+
def readme_document
|
146
|
+
content = File.read(self.readme_path)
|
147
|
+
|
148
|
+
return @base.document(content)
|
149
|
+
end
|
150
|
+
|
129
151
|
def best_documentation
|
130
152
|
if source = sources.first
|
131
153
|
if segment = source.segments.first
|
data/lib/utopia/project.rb
CHANGED
@@ -41,9 +41,9 @@ module Utopia
|
|
41
41
|
|
42
42
|
# Appends a project application to the rack builder.
|
43
43
|
#
|
44
|
-
# @
|
45
|
-
# @
|
46
|
-
# @
|
44
|
+
# @parameter builder [Rack::Builder]
|
45
|
+
# @parameter root [String] The file-system root path of the project/gem.
|
46
|
+
# @parameter locales [Array(String)] an array of locales to support, e.g. `['en', 'ja']`.
|
47
47
|
def self.call(builder, root = Dir.pwd, locales: nil)
|
48
48
|
if UTOPIA.production?
|
49
49
|
# Handle exceptions in production with a error page and send an email notification:
|
data/pages/_usage.xnode
CHANGED
@@ -9,8 +9,8 @@
|
|
9
9
|
?>
|
10
10
|
<h3><a href="#{guide.href}">#{guide.title}</a></h3>
|
11
11
|
|
12
|
-
<?r if
|
13
|
-
#{base.format(
|
12
|
+
<?r if documentation = guide.documentation ?>
|
13
|
+
#{base.format(documentation.details, language: guide.documentation.language)}
|
14
14
|
<?r elsif description = guide.description ?>
|
15
15
|
#{MarkupString.raw Kramdown::Document.new(description, syntax_highlighter: nil).to_html}
|
16
16
|
<?r else ?>
|
data/pages/guides/show.xnode
CHANGED
@@ -14,7 +14,7 @@
|
|
14
14
|
?><h2><code>#{File.basename source.path}</code></h2><?r
|
15
15
|
source.segments.each do |segment|
|
16
16
|
if documentation = segment.documentation
|
17
|
-
?>#{base.format(documentation.
|
17
|
+
?>#{base.format(documentation.text, language: source.language)}<?r
|
18
18
|
end
|
19
19
|
|
20
20
|
?><pre><code class="language-#{source.language.name}">#{segment.code}</code></pre><?r
|
@@ -0,0 +1,40 @@
|
|
1
|
+
<?r
|
2
|
+
base = self[:base]
|
3
|
+
symbol = self[:symbol]
|
4
|
+
documentation = symbol&.documentation
|
5
|
+
|
6
|
+
if documentation.children?
|
7
|
+
?>
|
8
|
+
<details open>
|
9
|
+
<summary><h4>Signature</h4></summary>
|
10
|
+
<dl><?r
|
11
|
+
documentation.traverse do |node, descend|
|
12
|
+
node.each do |child|
|
13
|
+
?><dt>
|
14
|
+
<strong>#{child.directive}</strong><?r
|
15
|
+
case child
|
16
|
+
when Decode::Comment::Parameter
|
17
|
+
?> <code class="syntax">#{child.name}</code> #{base.linkify(child.type, symbol)}<?r
|
18
|
+
when Decode::Comment::Returns
|
19
|
+
?> #{base.linkify(child.type, symbol)}<?r
|
20
|
+
when Decode::Comment::Yields
|
21
|
+
?> <code class="syntax language-#{symbol.language.name}">#{child.block}</code><?r
|
22
|
+
end
|
23
|
+
?></dt><?r
|
24
|
+
|
25
|
+
if text = child.text
|
26
|
+
?><dd>#{base.format(text, symbol)}</dd><?r
|
27
|
+
end
|
28
|
+
|
29
|
+
if child.children?
|
30
|
+
?><dd><dl>
|
31
|
+
<?r descend.call(child) ?>
|
32
|
+
</dl></dd><?r
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
36
|
+
?></dl>
|
37
|
+
</details>
|
38
|
+
<?r
|
39
|
+
end
|
40
|
+
?>
|
data/pages/source/index.xnode
CHANGED
@@ -15,7 +15,7 @@
|
|
15
15
|
<a href="#{base.link_for(symbol)}"><code class="language-#{symbol.language.name}">#{symbol.long_form}</code></a>
|
16
16
|
|
17
17
|
<?r if documentation ?>
|
18
|
-
#{base.format(documentation.
|
18
|
+
#{base.format(documentation.details, symbol)}
|
19
19
|
<?r end ?>
|
20
20
|
|
21
21
|
<?r if symbol.container?
|
data/pages/source/show.xnode
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
<content:page>
|
2
2
|
<?r
|
3
|
-
base =
|
4
|
-
node =
|
5
|
-
symbol =
|
3
|
+
base = self[:base]
|
4
|
+
node = self[:node]
|
5
|
+
symbol = self[:symbol]
|
6
6
|
?>
|
7
7
|
<content:heading><code class="language-#{symbol.language.name}">#{symbol.qualified_name}</code></content:heading>
|
8
8
|
|
9
9
|
<main>
|
10
10
|
<?r
|
11
11
|
if documentation = symbol.documentation
|
12
|
-
?>#{base.format(documentation.
|
12
|
+
?>#{base.format(documentation.text.join("\n"), symbol)}<?r
|
13
13
|
end
|
14
14
|
?>
|
15
15
|
|
@@ -38,25 +38,8 @@
|
|
38
38
|
?><h3 id="#{base.id_for(symbol)}"><code class="language-#{symbol.language.name}">#{symbol.long_form}</code></h3><?r
|
39
39
|
|
40
40
|
if documentation = symbol.documentation
|
41
|
-
?>#{base.format(documentation.
|
42
|
-
|
43
|
-
|
44
|
-
parameters = documentation.parameters.to_a
|
45
|
-
|
46
|
-
if parameters.any?
|
47
|
-
?><details open>
|
48
|
-
<summary><h4>Parameters</h4></summary>
|
49
|
-
<dl><?r
|
50
|
-
parameters.each do |parameter|
|
51
|
-
?>
|
52
|
-
<dt><code class="syntax">#{parameter[:name]}</code> — #{base.linkify(parameter[:type], symbol)}</dt>
|
53
|
-
<?r if details = parameter[:details] ?>
|
54
|
-
<dd>#{base.format(parameter[:details], symbol)}</dd>
|
55
|
-
<?r end ?>
|
56
|
-
<?r
|
57
|
-
end
|
58
|
-
?></dl>
|
59
|
-
</details><?r
|
41
|
+
?>#{base.format(documentation.text, symbol)}<?r
|
42
|
+
?>#{partial 'content:signature', symbol: symbol}<?r
|
60
43
|
end
|
61
44
|
|
62
45
|
if symbol.multiline?
|
data/public/_static/site.css
CHANGED
@@ -13,15 +13,26 @@ html {
|
|
13
13
|
font-size: 18px;
|
14
14
|
--tab-size: 4;
|
15
15
|
}
|
16
|
+
|
17
|
+
main > pre {
|
18
|
+
margin: 2rem;
|
19
|
+
}
|
16
20
|
}
|
17
21
|
|
18
22
|
@media (min-width: 80em) {
|
19
23
|
html {
|
20
24
|
font-size: 20px;
|
21
|
-
--tab-size: 4;
|
22
25
|
}
|
23
26
|
}
|
24
27
|
|
28
|
+
p code {
|
29
|
+
padding: 0 0.2rem;
|
30
|
+
}
|
31
|
+
|
32
|
+
p code:first-child, p code:last-child {
|
33
|
+
padding: 0;
|
34
|
+
}
|
35
|
+
|
25
36
|
pre {
|
26
37
|
/* -moz-tab-size is still required by Firefox */
|
27
38
|
--tab-size: 2;
|
@@ -96,10 +107,14 @@ nav {
|
|
96
107
|
color: #aaa;
|
97
108
|
}
|
98
109
|
|
99
|
-
li {
|
110
|
+
li, dt, dd {
|
100
111
|
margin: 0.5rem 0;
|
101
112
|
}
|
102
113
|
|
114
|
+
details dt, details dd {
|
115
|
+
margin: 1rem 0;
|
116
|
+
}
|
117
|
+
|
103
118
|
ul.index {
|
104
119
|
padding: 0;
|
105
120
|
list-style: none;
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: utopia-project
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.8.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Samuel Williams
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-05-
|
11
|
+
date: 2020-05-10 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: utopia
|
@@ -185,23 +185,11 @@ executables: []
|
|
185
185
|
extensions: []
|
186
186
|
extra_rdoc_files: []
|
187
187
|
files:
|
188
|
-
- ".editorconfig"
|
189
|
-
- ".github/workflows/development.yml"
|
190
|
-
- ".gitignore"
|
191
|
-
- ".rspec"
|
192
|
-
- ".yarnrc"
|
193
|
-
- README.md
|
194
188
|
- bake/utopia/project.rb
|
195
|
-
- gems.rb
|
196
|
-
- guides/documentation-formatting/README.md
|
197
|
-
- guides/getting-started/README.md
|
198
|
-
- guides/github-pages-integration/README.md
|
199
|
-
- guides/links.yaml
|
200
189
|
- lib/utopia/project.rb
|
201
190
|
- lib/utopia/project/base.rb
|
202
191
|
- lib/utopia/project/guide.rb
|
203
192
|
- lib/utopia/project/version.rb
|
204
|
-
- package.json
|
205
193
|
- pages/_heading.xnode
|
206
194
|
- pages/_navigation.xnode
|
207
195
|
- pages/_page.xnode
|
@@ -215,10 +203,10 @@ files:
|
|
215
203
|
- pages/guides/show.xnode
|
216
204
|
- pages/index.xnode
|
217
205
|
- pages/links.yaml
|
206
|
+
- pages/source/_signature.xnode
|
218
207
|
- pages/source/controller.rb
|
219
208
|
- pages/source/index.xnode
|
220
209
|
- pages/source/show.xnode
|
221
|
-
- public/.nojekyll
|
222
210
|
- public/_components/jquery-litebox/jquery.litebox.css
|
223
211
|
- public/_components/jquery-litebox/jquery.litebox.gallery.css
|
224
212
|
- public/_components/jquery-litebox/jquery.litebox.js
|
@@ -297,8 +285,6 @@ files:
|
|
297
285
|
- template/Gemfile
|
298
286
|
- template/config.ru
|
299
287
|
- template/preload.rb
|
300
|
-
- utopia-project.gemspec
|
301
|
-
- yarn.lock
|
302
288
|
homepage: https://github.com/socketry/utopia-project
|
303
289
|
licenses:
|
304
290
|
- MIT
|
@@ -309,9 +295,9 @@ require_paths:
|
|
309
295
|
- lib
|
310
296
|
required_ruby_version: !ruby/object:Gem::Requirement
|
311
297
|
requirements:
|
312
|
-
- - "
|
298
|
+
- - "~>"
|
313
299
|
- !ruby/object:Gem::Version
|
314
|
-
version: '
|
300
|
+
version: '2.5'
|
315
301
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
316
302
|
requirements:
|
317
303
|
- - ">="
|
data/.editorconfig
DELETED
@@ -1,62 +0,0 @@
|
|
1
|
-
name: Development
|
2
|
-
|
3
|
-
on: [push, pull_request]
|
4
|
-
|
5
|
-
jobs:
|
6
|
-
test:
|
7
|
-
runs-on: ${{matrix.os}}-latest
|
8
|
-
continue-on-error: ${{matrix.experimental}}
|
9
|
-
|
10
|
-
strategy:
|
11
|
-
matrix:
|
12
|
-
os:
|
13
|
-
- ubuntu
|
14
|
-
- macos
|
15
|
-
|
16
|
-
ruby:
|
17
|
-
- 2.5
|
18
|
-
- 2.6
|
19
|
-
- 2.7
|
20
|
-
|
21
|
-
experimental: [false]
|
22
|
-
env: [""]
|
23
|
-
|
24
|
-
include:
|
25
|
-
- os: ubuntu
|
26
|
-
ruby: truffleruby
|
27
|
-
experimental: true
|
28
|
-
env: JRUBY_OPTS="--debug -X+O"
|
29
|
-
- os: ubuntu
|
30
|
-
ruby: jruby
|
31
|
-
experimental: true
|
32
|
-
- os: ubuntu
|
33
|
-
ruby: head
|
34
|
-
experimental: true
|
35
|
-
- os: ubuntu
|
36
|
-
ruby: 2.6
|
37
|
-
experimental: false
|
38
|
-
env: COVERAGE=PartialSummary,Coveralls
|
39
|
-
|
40
|
-
steps:
|
41
|
-
- uses: actions/checkout@v1
|
42
|
-
- uses: ruby/setup-ruby@v1
|
43
|
-
with:
|
44
|
-
ruby-version: ${{matrix.ruby}}
|
45
|
-
|
46
|
-
- name: Installing packages (ubuntu)
|
47
|
-
if: matrix.os == 'ubuntu'
|
48
|
-
run: sudo apt-get install wget pkg-config
|
49
|
-
|
50
|
-
- name: Installing packages (macos)
|
51
|
-
if: matrix.os == 'macos'
|
52
|
-
run: brew install wget pkg-config
|
53
|
-
|
54
|
-
- name: Install dependencies
|
55
|
-
run: ${{matrix.env}} bundle install
|
56
|
-
|
57
|
-
- name: Run tests
|
58
|
-
timeout-minutes: 5
|
59
|
-
run: |
|
60
|
-
git config --global user.email "samuel@oriontransfer.net"
|
61
|
-
git config --global user.name "Samuel Williams"
|
62
|
-
${{matrix.env}} bundle exec rspec
|
data/.gitignore
DELETED
@@ -1,17 +0,0 @@
|
|
1
|
-
# Development specific:
|
2
|
-
/.rspec_status
|
3
|
-
/.bundle
|
4
|
-
/pkg
|
5
|
-
/gems.locked
|
6
|
-
|
7
|
-
# Temporary data should not be added to the repository:
|
8
|
-
/tmp
|
9
|
-
|
10
|
-
# Node modules are 3rd party dependencies which can be fetched easily:
|
11
|
-
/node_modules
|
12
|
-
|
13
|
-
# This file should only ever exist on production, and may contain sensitive information:
|
14
|
-
/config/environment.yaml
|
15
|
-
|
16
|
-
# Ignore resized gallery photos:
|
17
|
-
/public/_gallery
|
data/.rspec
DELETED
data/.yarnrc
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
--modules-folder lib/components
|
data/README.md
DELETED
@@ -1,54 +0,0 @@
|
|
1
|
-
# Utopia::Project
|
2
|
-
|
3
|
-
A simple Ruby project documentation website.
|
4
|
-
|
5
|
-
## Motivation
|
6
|
-
|
7
|
-
I've used many documentation tools. Most are over-complicated and focus on what is possible rather than what is useful. Because I manage many open source projects, at a certain scale it makes sense to build something to suit your needs rather than try to adapt to existing systems. This is one such instance.
|
8
|
-
|
9
|
-
My goal is to provide task-centric documentation, and to continually improve the way it's presented. The primary entry point for new developers are the structured usage guides, however having rich cross-referencing into the code is equally important.
|
10
|
-
|
11
|
-
With that in mind, this web application provides such a model and will evolve over time to suit my requirements and the needs of my users.
|
12
|
-
|
13
|
-
## Usage
|
14
|
-
|
15
|
-
Please see the <a href="https://socketry.github.io/utopia-project/">project documentation</a> or run it locally using `bake utopia:project:serve`.
|
16
|
-
|
17
|
-
## Contributing
|
18
|
-
|
19
|
-
We welcome contributions to this project.
|
20
|
-
|
21
|
-
1. Fork it
|
22
|
-
2. Create your feature branch (`git checkout -b my-new-feature`)
|
23
|
-
3. Commit your changes (`git commit -am 'Add some feature'`)
|
24
|
-
4. Push to the branch (`git push origin my-new-feature`)
|
25
|
-
5. Create new Pull Request
|
26
|
-
|
27
|
-
## See Also
|
28
|
-
|
29
|
-
- [Utopia](https://github.com/socketry/utopia) — The website framework which powers this web application.
|
30
|
-
- [Decode](https://github.com/ioquatix/decode) — The source code parser and cross-referencing library.
|
31
|
-
|
32
|
-
## License
|
33
|
-
|
34
|
-
Released under the MIT license.
|
35
|
-
|
36
|
-
Copyright, 2020, by [Samuel G. D. Williams](http://www.codeotaku.com).
|
37
|
-
|
38
|
-
Permission is hereby granted, free of charge, to any person obtaining a copy
|
39
|
-
of this software and associated documentation files (the "Software"), to deal
|
40
|
-
in the Software without restriction, including without limitation the rights
|
41
|
-
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
42
|
-
copies of the Software, and to permit persons to whom the Software is
|
43
|
-
furnished to do so, subject to the following conditions:
|
44
|
-
|
45
|
-
The above copyright notice and this permission notice shall be included in
|
46
|
-
all copies or substantial portions of the Software.
|
47
|
-
|
48
|
-
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
49
|
-
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
50
|
-
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
51
|
-
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
52
|
-
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
53
|
-
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
54
|
-
THE SOFTWARE.
|
data/gems.rb
DELETED
@@ -1,55 +0,0 @@
|
|
1
|
-
# Documentation Formatting
|
2
|
-
|
3
|
-
This guide explains the conventions used by `utopia-project` when generating documentation for your project.
|
4
|
-
|
5
|
-
## Source Code Documentation
|
6
|
-
|
7
|
-
Source code documentation is expected to be in markdown format. This is different from the canonical `RDoc` format used by Ruby. However, using markdown is a good format for standardised documentation across a range of different languages.
|
8
|
-
|
9
|
-
### Tags
|
10
|
-
|
11
|
-
#### `@param`
|
12
|
-
|
13
|
-
The `@param` tag is used to describe the parameters of a method:
|
14
|
-
|
15
|
-
~~~ ruby
|
16
|
-
# @param x [Integer] The x co-ordinate.
|
17
|
-
# @param y [Integer] The y co-ordinate.
|
18
|
-
def move(x, y)
|
19
|
-
# ...
|
20
|
-
end
|
21
|
-
~~~
|
22
|
-
|
23
|
-
#### `@return`
|
24
|
-
|
25
|
-
The `@return` tag is used to describe the return type of the definition:
|
26
|
-
|
27
|
-
~~~ ruby
|
28
|
-
# @return [Integer] The result of the computation.
|
29
|
-
def fib(n)
|
30
|
-
# ...
|
31
|
-
end
|
32
|
-
~~~
|
33
|
-
|
34
|
-
### References
|
35
|
-
|
36
|
-
It is possible to insert references in your documentation using curly brackets. In the following example `{Input}` will be expanded relative to the usage, to some symbol named `Input`.
|
37
|
-
|
38
|
-
~~~ ruby
|
39
|
-
# Frobulates the input, see {Input} for more details.
|
40
|
-
def frobulate(input)
|
41
|
-
# ... left to the imagination ...
|
42
|
-
end
|
43
|
-
~~~
|
44
|
-
|
45
|
-
## Examples & Guides
|
46
|
-
|
47
|
-
Examples provide structured information to help users understand your project and are located in the `examples/` directory. One sub-directory per example.
|
48
|
-
|
49
|
-
### `README.md`
|
50
|
-
|
51
|
-
If an example has a `README.md` file, it is used as the main source of documentation.
|
52
|
-
|
53
|
-
### Source Files
|
54
|
-
|
55
|
-
All other source files are listed on the example page. Top level comments with trailing code (segments) are used to help guide the user through the example.
|
@@ -1,31 +0,0 @@
|
|
1
|
-
# Getting Started
|
2
|
-
|
3
|
-
This guide explains how to use `utopia-project` for your own project.
|
4
|
-
|
5
|
-
## Installation
|
6
|
-
|
7
|
-
Firstly, add the gem to your project:
|
8
|
-
|
9
|
-
~~~ bash
|
10
|
-
$ bundle add utopia-project
|
11
|
-
~~~
|
12
|
-
|
13
|
-
## Start Local Server
|
14
|
-
|
15
|
-
Start the local server to preview documentation:
|
16
|
-
|
17
|
-
~~~ bash
|
18
|
-
$ bake utopia:project:serve
|
19
|
-
~~~
|
20
|
-
|
21
|
-
Right now, this server does not reload the code index, so you will need to restart the server to update the code index. This will be fixed in the future.
|
22
|
-
|
23
|
-
## Generate Static Site
|
24
|
-
|
25
|
-
You can generate a static copy of your documentation into the `docs/` folder:
|
26
|
-
|
27
|
-
~~~ bash
|
28
|
-
$ bake utopia:project:static
|
29
|
-
~~~
|
30
|
-
|
31
|
-
You can check the [guide for GitHub Pages](../github-pages-integration/index) which gives more details on how to deploy the static site using GitHub.
|
@@ -1,17 +0,0 @@
|
|
1
|
-
# GitHub Pages Integration
|
2
|
-
|
3
|
-
This guide shows you how to use `utopia-project` with GitHub Pages.
|
4
|
-
|
5
|
-
## Static Site Generation
|
6
|
-
|
7
|
-
Once you are happy with your project's documentation, simply generate a static site:
|
8
|
-
|
9
|
-
~~~ bash
|
10
|
-
$ bake utopia:project:static
|
11
|
-
~~~
|
12
|
-
|
13
|
-
This will generate a static copy of your documentation into `docs/` which is what is required by GitHub Pages.
|
14
|
-
|
15
|
-
## Enable GitHub Pages
|
16
|
-
|
17
|
-
In your GitHub project settings, you will need to [enable GitHub Pages served from `docs/`](https://help.github.com/en/github/working-with-github-pages/configuring-a-publishing-source-for-your-github-pages-site#choosing-a-publishing-source).
|
data/guides/links.yaml
DELETED
data/package.json
DELETED
data/public/.nojekyll
DELETED
File without changes
|
data/utopia-project.gemspec
DELETED
@@ -1,35 +0,0 @@
|
|
1
|
-
require_relative 'lib/utopia/project/version'
|
2
|
-
|
3
|
-
Gem::Specification.new do |spec|
|
4
|
-
spec.name = "utopia-project"
|
5
|
-
spec.version = Utopia::Project::VERSION
|
6
|
-
spec.authors = ["Samuel Williams"]
|
7
|
-
spec.email = ["samuel.williams@oriontransfer.co.nz"]
|
8
|
-
|
9
|
-
spec.summary = "A project documentation tool based on Utopia."
|
10
|
-
spec.homepage = "https://github.com/socketry/utopia-project"
|
11
|
-
spec.license = "MIT"
|
12
|
-
|
13
|
-
spec.files = Dir.chdir(File.expand_path('..', __FILE__)) do
|
14
|
-
`git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(docs|test|spec|features)/}) }
|
15
|
-
end
|
16
|
-
|
17
|
-
spec.require_paths = ["lib"]
|
18
|
-
|
19
|
-
spec.add_dependency "utopia", "~> 2.14"
|
20
|
-
# spec.add_dependency "utopia-gallery"
|
21
|
-
|
22
|
-
spec.add_dependency "kramdown"
|
23
|
-
spec.add_dependency "decode", "~> 0.13"
|
24
|
-
spec.add_dependency "rackula"
|
25
|
-
spec.add_dependency "falcon"
|
26
|
-
spec.add_dependency "thread-local"
|
27
|
-
|
28
|
-
spec.add_development_dependency 'async-rspec'
|
29
|
-
spec.add_development_dependency 'rack-test'
|
30
|
-
|
31
|
-
spec.add_development_dependency 'covered'
|
32
|
-
spec.add_development_dependency 'bundler'
|
33
|
-
spec.add_development_dependency 'rspec'
|
34
|
-
spec.add_development_dependency 'bake-bundler'
|
35
|
-
end
|
data/yarn.lock
DELETED
@@ -1,22 +0,0 @@
|
|
1
|
-
# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
|
2
|
-
# yarn lockfile v1
|
3
|
-
|
4
|
-
|
5
|
-
jquery-litebox@^1.0.2:
|
6
|
-
version "1.0.2"
|
7
|
-
resolved "https://registry.yarnpkg.com/jquery-litebox/-/jquery-litebox-1.0.2.tgz#122caec1e8ec1452f88d1d3eb3dd6f541f3f98c9"
|
8
|
-
integrity sha1-EiyuwejsFFL4jR0+s91vVB8/mMk=
|
9
|
-
dependencies:
|
10
|
-
jquery ">=1.4.1"
|
11
|
-
|
12
|
-
jquery-syntax@^4.1.1:
|
13
|
-
version "4.1.1"
|
14
|
-
resolved "https://registry.yarnpkg.com/jquery-syntax/-/jquery-syntax-4.1.1.tgz#8e15d85952cfee02dda579564eef4b813e5fe4f9"
|
15
|
-
integrity sha512-W7HqdQV37N2r9JISW90liYaRNzam++0+zt3gFGzkAa/l4eHF11vyOKBhsadEhewYKBOsWSVIXqdcLtAxYgwT+g==
|
16
|
-
dependencies:
|
17
|
-
jquery ">=1.4.1"
|
18
|
-
|
19
|
-
jquery@>=1.4.1:
|
20
|
-
version "3.5.0"
|
21
|
-
resolved "https://registry.yarnpkg.com/jquery/-/jquery-3.5.0.tgz#9980b97d9e4194611c36530e7dc46a58d7340fc9"
|
22
|
-
integrity sha512-Xb7SVYMvygPxbFMpTFQiHh1J7HClEaThguL15N/Gg37Lri/qKyhRGZYzHRyLH8Stq3Aow0LsHO2O2ci86fCrNQ==
|