utopia-project 0.21.0 → 0.22.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
- checksums.yaml.gz.sig +0 -0
- data/bake/utopia/project/readme/update.rb +50 -0
- data/bake/utopia/project/readme/usage.trenni +5 -0
- data/lib/utopia/project/document.rb +3 -2
- data/lib/utopia/project/guide.rb +2 -2
- data/lib/utopia/project/version.rb +1 -1
- data/readme.md +19 -5
- data.tar.gz.sig +0 -0
- metadata +5 -3
- metadata.gz.sig +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: af7ac04b71cc8b501069888bd23a5da5cd00bd25d7900016fe89de7e08170426
|
4
|
+
data.tar.gz: fba0add2c28c7712a0c6fd894b21aca3f0015c3fc13f3c4b0299aa053e4dca9a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 0fd2ed330c03e2ba6b4dc2f5ffa7c31d88b6c974b2e1b349c03d882b11ba22cca2fd86aafef63aa09dc18a75d14c1daf766c27b7791c1d3832a67fab00ac22fa
|
7
|
+
data.tar.gz: 6d03bc32040379cfab0f3125da19bc05a21a860cded807c695c8b0592b8b6766c200b489988f9f867a42ab4053e5885a839e66c9774321217f59a4d0c0ab0d98
|
checksums.yaml.gz.sig
CHANGED
Binary file
|
@@ -0,0 +1,50 @@
|
|
1
|
+
|
2
|
+
require 'utopia/project'
|
3
|
+
require 'trenni'
|
4
|
+
|
5
|
+
def update(path: "readme.md", documentation_url: nil)
|
6
|
+
project = Utopia::Project::Base.new(context.root)
|
7
|
+
readme = project.readme_document
|
8
|
+
|
9
|
+
documentation_url ||= public_documentation_url
|
10
|
+
|
11
|
+
readme.replace_section("Usage") do |header|
|
12
|
+
current = header
|
13
|
+
|
14
|
+
usage_section = self.usage_section(documentation_url, project)
|
15
|
+
usage_section.each do |child|
|
16
|
+
current.insert_after(child)
|
17
|
+
current = child
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
File.write(path, readme.root.to_markdown)
|
22
|
+
end
|
23
|
+
|
24
|
+
private
|
25
|
+
|
26
|
+
Scope = Struct.new(:documentation_url, :project)
|
27
|
+
|
28
|
+
def gemspec_path
|
29
|
+
Dir.glob("*.gemspec", base: context.root).first
|
30
|
+
end
|
31
|
+
|
32
|
+
def gemspec
|
33
|
+
if gemspec_path = self.gemspec_path
|
34
|
+
@gemspec ||= Gem::Specification.load(gemspec_path)
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
38
|
+
# The public documentation URL if it can be determined.
|
39
|
+
def public_documentation_url
|
40
|
+
gemspec&.homepage
|
41
|
+
end
|
42
|
+
|
43
|
+
def usage_section(documentation_url, project)
|
44
|
+
template = Trenni::Template.load_file(File.expand_path("usage.trenni", __dir__))
|
45
|
+
scope = Scope.new(documentation_url, project)
|
46
|
+
|
47
|
+
output = template.to_string(scope)
|
48
|
+
|
49
|
+
return Markly.parse(output)
|
50
|
+
end
|
@@ -46,11 +46,12 @@ module Utopia
|
|
46
46
|
if header.first_child.to_plaintext.include?(name)
|
47
47
|
# Now subsequent children:
|
48
48
|
current = header.next
|
49
|
-
|
49
|
+
|
50
50
|
# Delete everything in the section until we encounter another header:
|
51
51
|
while current && current.type != :header
|
52
|
+
current_next = current.next
|
52
53
|
current.delete
|
53
|
-
current =
|
54
|
+
current = current_next
|
54
55
|
end
|
55
56
|
|
56
57
|
return yield(header)
|
data/lib/utopia/project/guide.rb
CHANGED
@@ -83,8 +83,8 @@ module Utopia
|
|
83
83
|
|
84
84
|
# The hypertext reference to this guide.
|
85
85
|
# @returns [String]
|
86
|
-
def href
|
87
|
-
"
|
86
|
+
def href(base = "/")
|
87
|
+
"#{base}guides/#{self.name}/index"
|
88
88
|
end
|
89
89
|
|
90
90
|
# The best documentation, extracted from the source files of the guide.
|
data/readme.md
CHANGED
@@ -2,19 +2,33 @@
|
|
2
2
|
|
3
3
|
A simple Ruby project documentation website.
|
4
4
|
|
5
|
-
[](https://github.com/socketry/utopia-project/actions/workflows/test.yaml)
|
6
6
|
|
7
7
|
## Motivation
|
8
8
|
|
9
|
-
I've used many documentation tools. Most are over-complicated and focus on what is possible rather than what is useful.
|
9
|
+
I've used many documentation tools. Most are over-complicated and focus on what is possible rather than what is useful.
|
10
|
+
Because I manage many open source projects, at a certain scale it makes sense to build something to suit your needs
|
11
|
+
rather than try to adapt to existing systems. This is one such instance.
|
10
12
|
|
11
|
-
My goal is to provide task-centric documentation, and to continually improve the way it's presented. The primary entry
|
13
|
+
My goal is to provide task-centric documentation, and to continually improve the way it's presented. The primary entry
|
14
|
+
point for new developers are the structured usage guides, however having rich cross-referencing into the code is equally
|
15
|
+
important.
|
12
16
|
|
13
|
-
With that in mind, this web application provides such a model and will evolve over time to suit my requirements and the
|
17
|
+
With that in mind, this web application provides such a model and will evolve over time to suit my requirements and the
|
18
|
+
needs of my users.
|
14
19
|
|
15
20
|
## Usage
|
16
21
|
|
17
|
-
Please see the
|
22
|
+
Please see the [project documentation](https://socketry.github.io/utopia-project/) for more details.
|
23
|
+
|
24
|
+
- [Getting Started](https://socketry.github.io/utopia-project/guides/getting-started/index) - This guide explains how
|
25
|
+
to use `utopia-project` for your own project.
|
26
|
+
|
27
|
+
- [Documentation Formatting](https://socketry.github.io/utopia-project/guides/documentation-formatting/index) - This
|
28
|
+
guide explains the conventions used by `utopia-project` when generating documentation for your project.
|
29
|
+
|
30
|
+
- [GitHub Pages Integration](https://socketry.github.io/utopia-project/guides/github-pages-integration/index) - This
|
31
|
+
guide shows you how to use `utopia-project` with GitHub Pages.
|
18
32
|
|
19
33
|
## Contributing
|
20
34
|
|
data.tar.gz.sig
CHANGED
Binary file
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: utopia-project
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.22.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Samuel Williams
|
@@ -39,7 +39,7 @@ cert_chain:
|
|
39
39
|
Q2K9NVun/S785AP05vKkXZEFYxqG6EW012U4oLcFl5MySFajYXRYbuUpH6AY+HP8
|
40
40
|
voD0MPg1DssDLKwXyt1eKD/+Fq0bFWhwVM/1XiAXL7lyYUyOq24KHgQ2Csg=
|
41
41
|
-----END CERTIFICATE-----
|
42
|
-
date: 2023-
|
42
|
+
date: 2023-05-01 00:00:00.000000000 Z
|
43
43
|
dependencies:
|
44
44
|
- !ruby/object:Gem::Dependency
|
45
45
|
name: decode
|
@@ -188,6 +188,8 @@ extensions: []
|
|
188
188
|
extra_rdoc_files: []
|
189
189
|
files:
|
190
190
|
- bake/utopia/project.rb
|
191
|
+
- bake/utopia/project/readme/update.rb
|
192
|
+
- bake/utopia/project/readme/usage.trenni
|
191
193
|
- lib/utopia/project.rb
|
192
194
|
- lib/utopia/project/base.md
|
193
195
|
- lib/utopia/project/base.rb
|
@@ -322,7 +324,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
322
324
|
- !ruby/object:Gem::Version
|
323
325
|
version: '0'
|
324
326
|
requirements: []
|
325
|
-
rubygems_version: 3.4.
|
327
|
+
rubygems_version: 3.4.10
|
326
328
|
signing_key:
|
327
329
|
specification_version: 4
|
328
330
|
summary: A project documentation tool based on Utopia.
|
metadata.gz.sig
CHANGED
Binary file
|