utopia-project 0.44.0 → 0.44.1
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/lib/utopia/project/document.rb +37 -14
- data/lib/utopia/project/renderer.rb +3 -9
- data/lib/utopia/project/version.rb +1 -1
- data/readme.md +4 -4
- data/releases.md +4 -0
- data.tar.gz.sig +0 -0
- metadata +1 -1
- 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: aeb8c91bedd9b713aac858b1d21a2475e46339d263619e37c5ee5e55a96f9823
|
|
4
|
+
data.tar.gz: 42dd69b94451317ffebd0c44e7316accba3e2e7563c911c6e47ec3ff8b61f83d
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: c661665e07add1839f6f49abe463e74fdc433e2184bbf802d8fbd4dcfe09c339d637625ce5ba0f63333860ee97d22414026c3bb70ab16ccdffdae8c3a3a4dcb3
|
|
7
|
+
data.tar.gz: 429aedacf04be623ca7869fde98f40cc702743da7b53fa2f51bb81c1b387b39dea7d8b475a916a76c0a9fc5cce1c51d8db0a80e2a151f62ab06c304ad7e73a45
|
checksums.yaml.gz.sig
CHANGED
|
Binary file
|
|
@@ -174,30 +174,53 @@ module Utopia
|
|
|
174
174
|
|
|
175
175
|
private
|
|
176
176
|
|
|
177
|
-
#
|
|
177
|
+
# Resolve a source code reference to HTML.
|
|
178
178
|
# @parameter content [String] The source code reference.
|
|
179
179
|
# @parameter language [String | Nil] The explicit source language.
|
|
180
|
-
# @returns [Markly::Node] The
|
|
180
|
+
# @returns [Markly::Node] The inline HTML node.
|
|
181
181
|
def reference_node(content, language: nil)
|
|
182
|
+
reference, definition = resolve_reference(content, language: language)
|
|
183
|
+
|
|
184
|
+
if definition
|
|
185
|
+
content = definition.qualified_form
|
|
186
|
+
language = reference.language.name
|
|
187
|
+
elsif reference
|
|
188
|
+
content = reference.identifier
|
|
189
|
+
language = reference.language.name
|
|
190
|
+
end
|
|
191
|
+
|
|
192
|
+
attributes = {}
|
|
193
|
+
attributes[:class] = "language-#{language}" if language
|
|
194
|
+
|
|
195
|
+
markup = XRB::Builder.fragment do |builder|
|
|
196
|
+
builder.inline("code", attributes) do
|
|
197
|
+
if definition
|
|
198
|
+
builder.inline("a", href: @base.link_for(definition), title: reference.identifier) do
|
|
199
|
+
builder.text(content)
|
|
200
|
+
end
|
|
201
|
+
else
|
|
202
|
+
builder.text(content)
|
|
203
|
+
end
|
|
204
|
+
end
|
|
205
|
+
end
|
|
206
|
+
|
|
207
|
+
return inline_html_node(markup.to_s)
|
|
208
|
+
end
|
|
209
|
+
|
|
210
|
+
# Resolve source code reference metadata and its indexed definition.
|
|
211
|
+
# @parameter content [String] The source code reference.
|
|
212
|
+
# @parameter language [String | Nil] The explicit source language.
|
|
213
|
+
# @returns [Array] The parsed reference and resolved definition.
|
|
214
|
+
def resolve_reference(content, language: nil)
|
|
182
215
|
reference = if language
|
|
183
216
|
@index.languages.reference_for(language, content)
|
|
184
217
|
else
|
|
185
218
|
@index.languages.parse_reference(content, default_language: @default_language)
|
|
186
219
|
end
|
|
187
220
|
|
|
188
|
-
if reference
|
|
189
|
-
definition = @index.lookup(reference, relative_to: @definition)
|
|
190
|
-
end
|
|
221
|
+
definition = @index.lookup(reference, relative_to: @definition) if reference
|
|
191
222
|
|
|
192
|
-
|
|
193
|
-
link_node(reference.identifier, @base.link_for(definition),
|
|
194
|
-
code_node(definition.qualified_form, reference.language.name)
|
|
195
|
-
)
|
|
196
|
-
elsif reference
|
|
197
|
-
code_node(reference.identifier, reference.language.name)
|
|
198
|
-
else
|
|
199
|
-
code_node(content, language)
|
|
200
|
-
end
|
|
223
|
+
return reference, definition
|
|
201
224
|
end
|
|
202
225
|
|
|
203
226
|
def resolve(root)
|
|
@@ -11,10 +11,9 @@ module Utopia
|
|
|
11
11
|
# Renders project Markdown with support for Mermaid code blocks.
|
|
12
12
|
class Renderer < Markly::Renderer::HTML
|
|
13
13
|
# Initialize the project renderer.
|
|
14
|
-
# @parameter inline_code_resolver [Proc | Nil] Resolves language-prefixed inline code into
|
|
14
|
+
# @parameter inline_code_resolver [Proc | Nil] Resolves language-prefixed inline code into an inline HTML node.
|
|
15
15
|
def initialize(inline_code_resolver: nil, **options)
|
|
16
16
|
@inline_code_resolver = inline_code_resolver
|
|
17
|
-
@resolving_inline_code = false
|
|
18
17
|
|
|
19
18
|
super(**options)
|
|
20
19
|
end
|
|
@@ -58,13 +57,8 @@ module Utopia
|
|
|
58
57
|
# Render inline code, resolving language-prefixed references when possible.
|
|
59
58
|
# @parameter node [Markly::Node] The inline code node.
|
|
60
59
|
def code(node)
|
|
61
|
-
if @inline_code_resolver &&
|
|
62
|
-
|
|
63
|
-
@resolving_inline_code = true
|
|
64
|
-
out(@inline_code_resolver.call(node.string_content, language: language))
|
|
65
|
-
ensure
|
|
66
|
-
@resolving_inline_code = false
|
|
67
|
-
end
|
|
60
|
+
if @inline_code_resolver && (language = node.code_language)
|
|
61
|
+
out(@inline_code_resolver.call(node.string_content, language: language))
|
|
68
62
|
else
|
|
69
63
|
super
|
|
70
64
|
end
|
data/readme.md
CHANGED
|
@@ -33,6 +33,10 @@ Please see the [project documentation](https://socketry.github.io/utopia-project
|
|
|
33
33
|
|
|
34
34
|
Please see the [project releases](https://socketry.github.io/utopia-project/releases/index) for all releases.
|
|
35
35
|
|
|
36
|
+
### v0.44.1
|
|
37
|
+
|
|
38
|
+
- Render resolved inline code references with links inside their code elements so hover and keyboard focus affect the complete reference.
|
|
39
|
+
|
|
36
40
|
### v0.44.0
|
|
37
41
|
|
|
38
42
|
- Add support for language-prefixed inline code references such as ruby:`Object.new`.
|
|
@@ -72,10 +76,6 @@ Please see the [project releases](https://socketry.github.io/utopia-project/rele
|
|
|
72
76
|
|
|
73
77
|
- Fixed handling of segmented code guides when rendered into a `readme.md` file.
|
|
74
78
|
|
|
75
|
-
### v0.33.0
|
|
76
|
-
|
|
77
|
-
- Fix presentation of release notes on releases page.
|
|
78
|
-
|
|
79
79
|
## See Also
|
|
80
80
|
|
|
81
81
|
- [Utopia](https://github.com/socketry/utopia) — The website framework which powers this web application.
|
data/releases.md
CHANGED
|
@@ -1,5 +1,9 @@
|
|
|
1
1
|
# Changes
|
|
2
2
|
|
|
3
|
+
## v0.44.1
|
|
4
|
+
|
|
5
|
+
- Render resolved inline code references with links inside their code elements so hover and keyboard focus affect the complete reference.
|
|
6
|
+
|
|
3
7
|
## v0.44.0
|
|
4
8
|
|
|
5
9
|
- Add support for language-prefixed inline code references such as ruby:`Object.new`.
|
data.tar.gz.sig
CHANGED
|
Binary file
|
metadata
CHANGED
metadata.gz.sig
CHANGED
|
Binary file
|