utopia-project 0.21.0 → 0.23.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 4d1ad15923d59f832f9be9b32a296003f285d38b95da13ac831575dc034a6c08
4
- data.tar.gz: 3029c9fac2566ca56590ec6f15761218a0ecae564b1c55d75f2d9b6cb692a6bc
3
+ metadata.gz: 5ab639a6ea814e5195fb740583a00a28f55d6e18d86cb46a61341b7768ac4804
4
+ data.tar.gz: 4988213ac4168bb50ec1201e0cdd24c0d423b92092933546a7fa99f1e002f015
5
5
  SHA512:
6
- metadata.gz: fabe143fac57289c5c273db880f66e4e2502da748b9179bb81cfe0eea38bb15d93dc042e12c2e95c1dec13b8d9cdafc108e50b1a9d8e42d5ad5955be47657788
7
- data.tar.gz: '093c1ad0f1570461d66980065a982e3acf3286a8c67d4d94d9d57d83b09b7a8f1efe149ba8042a8d23b782c0acc0c2ad73c2bbcbf6787d98a951d305dbe9710a'
6
+ metadata.gz: 2b58e868cd25562bf2e17aaffdf2cfb830a72d888cf1106edebbe6edef5ba88f07b9f94c0de58d2fd18705401e40694b36725d2cbd925f19197bd9b753f0c782
7
+ data.tar.gz: b60d7c5fc718544aec358b953507eec731c5e93fa460e7172500a5b2414d33e2ec5456806effa8609e525ce85377c6c43a1bdb481c4a77c02d52b80b9eb8c380
checksums.yaml.gz.sig CHANGED
Binary file
@@ -0,0 +1,56 @@
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
+ if metadata = gemspec.metadata
41
+ if documentation_uri = metadata['documentation_uri']
42
+ return documentation_uri
43
+ end
44
+ end
45
+
46
+ return gemspec&.homepage
47
+ end
48
+
49
+ def usage_section(documentation_url, project)
50
+ template = Trenni::Template.load_file(File.expand_path("usage.trenni", __dir__))
51
+ scope = Scope.new(documentation_url, project)
52
+
53
+ output = template.to_string(scope)
54
+
55
+ return Markly.parse(output)
56
+ end
@@ -0,0 +1,5 @@
1
+ Please see the [project documentation](#{documentation_url}) for more details.
2
+
3
+ <?r project.guides.each do |guide| ?>
4
+ - [#{guide.title}](#{guide.href(documentation_url)}) - #{guide.description.to_markdown}
5
+ <?r 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 = current.next
54
+ current = current_next
54
55
  end
55
56
 
56
57
  return yield(header)
@@ -83,8 +83,8 @@ module Utopia
83
83
 
84
84
  # The hypertext reference to this guide.
85
85
  # @returns [String]
86
- def href
87
- "/guides/#{self.name}/index"
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.
@@ -5,6 +5,6 @@
5
5
 
6
6
  module Utopia
7
7
  module Project
8
- VERSION = "0.21.0"
8
+ VERSION = "0.23.0"
9
9
  end
10
10
  end
data/public/.DS_Store ADDED
Binary file
Binary file
data/readme.md CHANGED
@@ -2,19 +2,33 @@
2
2
 
3
3
  A simple Ruby project documentation website.
4
4
 
5
- [![Development Status](https://github.com/socketry/utopia-project/workflows/Test/badge.svg)](https://github.com/socketry/utopia-project/actions?workflow=Test)
5
+ [![Test](https://github.com/socketry/utopia-project/actions/workflows/test.yaml/badge.svg)](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. 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.
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 point for new developers are the structured usage guides, however having rich cross-referencing into the code is equally important.
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 needs of my users.
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 <a href="https://socketry.github.io/utopia-project/">project documentation</a> or run it locally using `bake utopia:project:serve`.
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.21.0
4
+ version: 0.23.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-02-18 00:00:00.000000000 Z
42
+ date: 2023-06-15 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
@@ -218,10 +220,13 @@ files:
218
220
  - pages/source/controller.rb
219
221
  - pages/source/index.xnode
220
222
  - pages/source/show.xnode
223
+ - public/.DS_Store
221
224
  - public/.nojekyll
225
+ - public/_components/.DS_Store
222
226
  - public/_components/jquery-litebox/jquery.litebox.css
223
227
  - public/_components/jquery-litebox/jquery.litebox.gallery.css
224
228
  - public/_components/jquery-litebox/jquery.litebox.js
229
+ - public/_components/jquery-syntax/.DS_Store
225
230
  - public/_components/jquery-syntax/base/jquery.syntax.brush.apache.css
226
231
  - public/_components/jquery-syntax/base/jquery.syntax.brush.applescript.css
227
232
  - public/_components/jquery-syntax/base/jquery.syntax.brush.assembly.css
@@ -292,6 +297,7 @@ files:
292
297
  - public/_components/jquery/jquery.slim.js
293
298
  - public/_components/jquery/jquery.slim.min.js
294
299
  - public/_components/jquery/jquery.slim.min.map
300
+ - public/_components/mermaid/.DS_Store
295
301
  - public/_components/mermaid/mermaid.min.js
296
302
  - public/_components/mermaid/mermaid.min.js.map
297
303
  - public/_static/icon.png
@@ -322,7 +328,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
322
328
  - !ruby/object:Gem::Version
323
329
  version: '0'
324
330
  requirements: []
325
- rubygems_version: 3.4.6
331
+ rubygems_version: 3.4.7
326
332
  signing_key:
327
333
  specification_version: 4
328
334
  summary: A project documentation tool based on Utopia.
metadata.gz.sig CHANGED
Binary file