docrb-html 0.3.1 → 0.3.3

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 5e032e7d421f2811ed73880d0e9b224ebf11b9027446baee4fbf58f8fe28efb5
4
- data.tar.gz: 9ea3088213e3e09e31c12a81041ad3cab9f48d16b859a36597603d159bc8423d
3
+ metadata.gz: 4e8f34e78e39808248f3d91c29b2e751f27ef38d79c81ca48f5c8639accb9195
4
+ data.tar.gz: 17339acf6ab7f1c867872ac676a6fcb7ae5ce73fd059f9665fde66a3c070ca07
5
5
  SHA512:
6
- metadata.gz: 6e4c417666d05eb251dfee6ffc8b1243f1db13e73d34b48e9c7a1645fedb6fbad9eec4679387d18e76f25e78fb0253ac9c44c6f3ff753ed78673884e7d26ab75
7
- data.tar.gz: 6b4e542016f1c14f2f40a6adabddecc97afbde132021c1ac5f830a1b785255b79eb27078570296f287e39a9ef2f348e75612446b360c3a530b47f077748bfad2
6
+ metadata.gz: 82f1fb93629cc7e64c8972e34ca61b5d60006b3301b6c0b400bf38cb612ec729709d680d843c1efeaf19a9d85a8bf1b9739fd23f7a3457afff025df2530643ff
7
+ data.tar.gz: ab4c3e0001fec898dcf3955b5443bac4b8eb3142ec5d5f7712eaf5cd887abd6d6a2c722af786672d67f507c26ffde9e439b5e766f93deee1b9b906821ae67443
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- docrb-html (0.3.1)
4
+ docrb-html (0.3.3)
5
5
  nokogiri (~> 1.14)
6
6
  redcarpet (~> 3.6)
7
7
  rouge (~> 4.1)
@@ -17,11 +17,9 @@ GEM
17
17
  ffi (1.15.5)
18
18
  json (2.6.3)
19
19
  language_server-protocol (3.17.0.3)
20
- nokogiri (1.14.2-arm64-darwin)
21
- racc (~> 1.4)
22
- nokogiri (1.14.2-x86_64-darwin)
23
- racc (~> 1.4)
24
- nokogiri (1.14.2-x86_64-linux)
20
+ mini_portile2 (2.8.7)
21
+ nokogiri (1.14.2)
22
+ mini_portile2 (~> 2.8.0)
25
23
  racc (~> 1.4)
26
24
  parallel (1.23.0)
27
25
  parser (3.2.2.4)
@@ -66,6 +64,7 @@ GEM
66
64
  unicode-display_width (2.5.0)
67
65
 
68
66
  PLATFORMS
67
+ aarch64-linux
69
68
  arm64-darwin-22
70
69
  arm64-darwin-23
71
70
  x86_64-darwin-22
data/docrb-html.gemspec CHANGED
@@ -5,7 +5,7 @@ require_relative "lib/renderer/version"
5
5
  Gem::Specification.new do |spec|
6
6
  spec.name = "docrb-html"
7
7
  spec.version = Renderer::VERSION
8
- spec.authors = ["Victor Gama"]
8
+ spec.authors = ["Vito Sartori"]
9
9
  spec.email = ["hey@vito.io"]
10
10
 
11
11
  spec.summary = "Docrb's HTML Generator"
@@ -15,7 +15,7 @@ Gem::Specification.new do |spec|
15
15
  spec.required_ruby_version = ">= 3.2"
16
16
 
17
17
  spec.metadata["homepage_uri"] = spec.homepage
18
- spec.metadata["source_code_uri"] = "#{spec.homepage}/tree/trunk/lib/docrb-html"
18
+ spec.metadata["source_code_uri"] = "#{spec.homepage}/tree/master/lib/docrb-html"
19
19
  spec.metadata["changelog_uri"] = spec.homepage
20
20
  spec.metadata["rubygems_mfa_required"] = "true"
21
21
 
data/exe/docrb-html CHANGED
@@ -1,7 +1,9 @@
1
1
  #!/usr/bin/env ruby
2
2
  # frozen_string_literal: true
3
3
 
4
- require "bundler/setup"
4
+ require "bundler"
5
+ Bundler.setup
6
+
5
7
  require "renderer"
6
8
 
7
9
  if ARGV.length != 2
data/lib/docrb-html.rb CHANGED
@@ -29,6 +29,8 @@ require_relative "renderer/metadata"
29
29
  require_relative "renderer/entities"
30
30
 
31
31
  class Renderer
32
+ attr_reader :spec
33
+
32
34
  def now = Time.now.strftime("%A, %-d %b %Y %H:%M:%S %Z")
33
35
 
34
36
  def output_path(*args) = File.join(@output, *args.map(&:to_s))
@@ -55,6 +57,11 @@ class Renderer
55
57
  .map { outline(_1) }
56
58
  end
57
59
 
60
+ def make_path(*args)
61
+ root = spec.fetch(:base_path, "/")
62
+ File.join(root, *args.flatten.map(&:to_s))
63
+ end
64
+
58
65
  def outline(object, level = 0)
59
66
  {
60
67
  level:,
@@ -86,8 +93,8 @@ class Renderer
86
93
  Component::TabBar.new(
87
94
  selected_index: 0,
88
95
  items: [
89
- { name: "Readme", href: "/" },
90
- { name: "Components", href: "/components.html" }
96
+ { name: "Readme", href: make_path("/") },
97
+ { name: "Components", href: make_path("/components.html") }
91
98
  ]
92
99
  ),
93
100
  readme,
@@ -101,8 +108,8 @@ class Renderer
101
108
  Component::TabBar.new(
102
109
  selected_index: 1,
103
110
  items: [
104
- { name: "Readme", href: "/" },
105
- { name: "Components", href: "/components.html" }
111
+ { name: "Readme", href: make_path("/") },
112
+ { name: "Components", href: make_path("/components.html") }
106
113
  ]
107
114
  ),
108
115
  Component::ComponentList.new(list: make_outline),
@@ -9,7 +9,7 @@ class Renderer
9
9
  case @object
10
10
  when Docrb::Parser::Reference
11
11
  @unresolved = !@object.fulfilled?
12
- @path = [@object.path.last]
12
+ @path = @object.path
13
13
  return if @unresolved
14
14
 
15
15
  @object = @object.dereference!
@@ -96,13 +96,14 @@ class Renderer
96
96
  end
97
97
  end
98
98
 
99
+ def make_path(*) = self.class.current_renderer.make_path(*)
100
+
99
101
  def path_of(object, root: true)
100
102
  return [] if object.nil? && !root
101
103
  return [object.name] + path_of(object.parent, root: false) unless root
102
104
 
103
105
  path = ["#{object.name}.html"] + path_of(object.parent, root: false)
104
- path << ""
105
- path.reverse.join("/")
106
+ make_path(*path.reverse)
106
107
  end
107
108
 
108
109
  def link_for(object)
data/lib/renderer/page.rb CHANGED
@@ -8,9 +8,16 @@ class Renderer
8
8
  @title = "#{title} - Docrb"
9
9
  @body = body || -> { "" }
10
10
  @level = level
11
+ @make_path = ->(path) { Helpers.current_renderer.make_path(path) }
11
12
  end
12
13
 
13
- def render = PAGE_BASE.render(Object.new, title: @title, level: @level, body: @body.call)
14
+ def render
15
+ PAGE_BASE.render(Object.new,
16
+ make_path: @make_path,
17
+ title: @title,
18
+ level: @level,
19
+ body: @body.call)
20
+ end
14
21
 
15
22
  def render_to(path) = File.write(path, render)
16
23
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  class Renderer
4
- VERSION = "0.3.1"
4
+ VERSION = "0.3.3"
5
5
  end
data/templates/base.erb CHANGED
@@ -7,12 +7,9 @@
7
7
  <link rel="preconnect" href="https://fonts.googleapis.com" />
8
8
  <link rel="preconnect" href="https://fonts.gstatic.com" crossOrigin="true" />
9
9
  <link href="https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:wght@300;400;500&family=Inter:wght@300;400;500&display=swap" rel="stylesheet" />
10
- <% unless level.zero? %>
11
- <base href="<%= ([".."] * level).join("/") %>" />
12
- <% end %>
13
- <link rel="stylesheet" type="text/css" href="style.css" />
14
- <link rel="shortcut icon" href="favicon.ico" type="image/x-icon"/>
15
- <link rel="icon" href="favicon.ico" type="image/x-icon"/>
10
+ <link rel="stylesheet" type="text/css" href="<%= make_path.call("style.css") %>" />
11
+ <link rel="shortcut icon" href="<%= make_path.call("favicon.ico") %>" type="image/x-icon"/>
12
+ <link rel="icon" href="<%= make_path.call("favicon.ico") %>" type="image/x-icon"/>
16
13
  </head>
17
14
  <body>
18
15
  <% if body.is_a? Array %>
@@ -20,6 +17,6 @@
20
17
  <% else %>
21
18
  <%= body %>
22
19
  <% end %>
23
- <script type="text/javascript" src="filtering.js"></script>
20
+ <script type="text/javascript" src="<%= make_path.call("filtering.js") %>"></script>
24
21
  </body>
25
22
  </html>
@@ -1,6 +1,6 @@
1
1
  <% div("breadcrumb-base", id:) do %>
2
2
  <div class="link">
3
- <a href="/">
3
+ <a href="<%= make_path %>">
4
4
  <%= svg("home") %>
5
5
  <span class="padded">
6
6
  <%= project_name %>
@@ -11,13 +11,13 @@
11
11
  <%= svg("breadcrumb_separator") %>
12
12
  <div class="link">
13
13
  <% if i[:parents].empty? && idx == 0 %>
14
- <a href="components.html">
14
+ <a href="<%= make_path("/components.html") %>">
15
15
  <span class="padded">
16
16
  <%= i[:name] %>
17
17
  </span>
18
18
  </a>
19
19
  <% else %>
20
- <a href="<%= (i[:parents] + [idx == 0 ? nil : i[:name]]).flatten.compact.join("/") %>.html">
20
+ <a href="<%= make_path((i[:parents] + [idx == 0 ? nil : i[:name]]).flatten.compact) %>.html">
21
21
  <span class="padded">
22
22
  <%= i[:name] %>
23
23
  </span>
@@ -1,6 +1,6 @@
1
1
  <% div("reference-base", id:) do %>
2
2
  <% if unresolved %>
3
- <span class="broken"><%= value || path.last %></span>
3
+ <span class="broken"><%= value || path.join("::") %></span>
4
4
  <% elsif ref_type == :pure %>
5
5
  <a href="<%= link_for(object) %>">
6
6
  <span class="resolved <%= ref_type %>">
@@ -8,7 +8,7 @@
8
8
  </span>
9
9
  </a>
10
10
  <% else %>
11
- <a href="<%= path.join('/') %>.html">
11
+ <a href="<%= make_path(*path) %>.html">
12
12
  <span class="resolved <%= ref_type %>">
13
13
  <span><%= value || path.last %></span>
14
14
  </span>
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: docrb-html
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.1
4
+ version: 0.3.3
5
5
  platform: ruby
6
6
  authors:
7
- - Victor Gama
7
+ - Vito Sartori
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2023-10-28 00:00:00.000000000 Z
11
+ date: 2024-09-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: nokogiri
@@ -208,7 +208,7 @@ licenses:
208
208
  - MIT
209
209
  metadata:
210
210
  homepage_uri: https://github.com/heyvito/docrb
211
- source_code_uri: https://github.com/heyvito/docrb/tree/trunk/lib/docrb-html
211
+ source_code_uri: https://github.com/heyvito/docrb/tree/master/lib/docrb-html
212
212
  changelog_uri: https://github.com/heyvito/docrb
213
213
  rubygems_mfa_required: 'true'
214
214
  post_install_message:
@@ -226,7 +226,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
226
226
  - !ruby/object:Gem::Version
227
227
  version: '0'
228
228
  requirements: []
229
- rubygems_version: 3.4.10
229
+ rubygems_version: 3.5.18
230
230
  signing_key:
231
231
  specification_version: 4
232
232
  summary: Docrb's HTML Generator