papercraft 2.15 → 2.17
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/CHANGELOG.md +10 -0
- data/lib/papercraft/compiler/nodes.rb +8 -1
- data/lib/papercraft/compiler/tag_translator.rb +6 -1
- data/lib/papercraft/compiler.rb +6 -3
- data/lib/papercraft/version.rb +1 -1
- data/lib/papercraft.rb +8 -0
- metadata +8 -8
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 63718ece62bc77005853c4b7d44c31c9d65c59d420ab3d4002859dcd5dbf4add
|
4
|
+
data.tar.gz: 104aca9ba3dcfe331f4973036e26c7341058790eea60a1a4a8409e73dd3825bd
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a34b14e12bfb23698ad1081763efc2183c45e1d90223d4076e18b1329086d2e3bed6f9cc15028a22c6dc9b86980e3c062618783d351f2081668dcdbe9e8f56d5
|
7
|
+
data.tar.gz: d1b81734455196ced0a6b7a75fb49e77c716feddfa8ad67da70256efe6516279650c13f108ede29131ab0958437e1a5f6810e222fd35f1993b4891ca4b00ca03
|
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,13 @@
|
|
1
|
+
# 2.17 2025-10-05
|
2
|
+
|
3
|
+
- Update dependencies
|
4
|
+
- Add support for attributes in `html` tag
|
5
|
+
- Add `Papercraft.__clear__extensions__` method
|
6
|
+
|
7
|
+
# 2.16 2025-10-02
|
8
|
+
|
9
|
+
- Add support for namespaced components
|
10
|
+
|
1
11
|
# 2.15 2025-10-01
|
2
12
|
|
3
13
|
- Add `Papercraft.markdown_doc` method
|
@@ -149,13 +149,20 @@ module Papercraft
|
|
149
149
|
|
150
150
|
# Represents a builtin call
|
151
151
|
class BuiltinNode
|
152
|
-
attr_reader :tag, :call_node, :location, :block
|
152
|
+
attr_reader :tag, :call_node, :location, :attributes, :block
|
153
153
|
|
154
154
|
def initialize(call_node, translator)
|
155
155
|
@call_node = call_node
|
156
156
|
@tag = call_node.name
|
157
157
|
@location = call_node.location
|
158
158
|
@block = call_node.block && translator.visit(call_node.block)
|
159
|
+
|
160
|
+
args = call_node.arguments&.arguments
|
161
|
+
return if !args
|
162
|
+
|
163
|
+
if args.size == 1 && args.first.is_a?(Prism::KeywordHashNode)
|
164
|
+
@attributes = args.first
|
165
|
+
end
|
159
166
|
end
|
160
167
|
|
161
168
|
def accept(visitor)
|
@@ -63,8 +63,13 @@ module Papercraft
|
|
63
63
|
end
|
64
64
|
|
65
65
|
def match_const_tag(node)
|
66
|
-
return if node.receiver
|
67
66
|
return if node.name !~ /^[A-Z]/
|
67
|
+
case node.receiver
|
68
|
+
when nil, Prism::ConstantReadNode, Prism::ConstantPathNode
|
69
|
+
# ok
|
70
|
+
else
|
71
|
+
return
|
72
|
+
end
|
68
73
|
|
69
74
|
ConstTagNode.new(node, self)
|
70
75
|
end
|
data/lib/papercraft/compiler.rb
CHANGED
@@ -204,11 +204,12 @@ module Papercraft
|
|
204
204
|
def visit_const_tag_node(node)
|
205
205
|
flush_html_parts!
|
206
206
|
adjust_whitespace(node.location)
|
207
|
+
emit("; ")
|
207
208
|
if node.call_node.receiver
|
208
|
-
emit(node.call_node.receiver
|
209
|
+
emit(format_code(node.call_node.receiver))
|
209
210
|
emit('::')
|
210
211
|
end
|
211
|
-
emit("
|
212
|
+
emit("#{node.call_node.name}.compiled_proc.(__buffer__")
|
212
213
|
if node.call_node.arguments
|
213
214
|
emit(', ')
|
214
215
|
visit(node.call_node.arguments)
|
@@ -311,7 +312,9 @@ module Papercraft
|
|
311
312
|
when :tag
|
312
313
|
args = node.call_node.arguments&.arguments
|
313
314
|
when :html, :html5
|
314
|
-
emit_html(node.location, '<!DOCTYPE html
|
315
|
+
emit_html(node.location, '<!DOCTYPE html>')
|
316
|
+
emit_html(node.location, format_html_tag_open(node.location, 'html', node.attributes))
|
317
|
+
# emit_html(node.location, '<!DOCTYPE html><html>')
|
315
318
|
visit(node.block.body) if node.block
|
316
319
|
emit_html(node.block.closing_loc, '</html>')
|
317
320
|
when :markdown
|
data/lib/papercraft/version.rb
CHANGED
data/lib/papercraft.rb
CHANGED
@@ -24,6 +24,14 @@ module Papercraft
|
|
24
24
|
self
|
25
25
|
end
|
26
26
|
|
27
|
+
# Clears all registered extensions.
|
28
|
+
#
|
29
|
+
# @return [self]
|
30
|
+
def __clear_extensions__
|
31
|
+
Extensions.clear
|
32
|
+
self
|
33
|
+
end
|
34
|
+
|
27
35
|
# Formats the given string, converting underscores to dashes.
|
28
36
|
#
|
29
37
|
# @param tag [String, Symbol] input string
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: papercraft
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: '2.
|
4
|
+
version: '2.17'
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Sharon Rosner
|
@@ -43,14 +43,14 @@ dependencies:
|
|
43
43
|
requirements:
|
44
44
|
- - "~>"
|
45
45
|
- !ruby/object:Gem::Version
|
46
|
-
version: 4.
|
46
|
+
version: 4.6.1
|
47
47
|
type: :runtime
|
48
48
|
prerelease: false
|
49
49
|
version_requirements: !ruby/object:Gem::Requirement
|
50
50
|
requirements:
|
51
51
|
- - "~>"
|
52
52
|
- !ruby/object:Gem::Version
|
53
|
-
version: 4.
|
53
|
+
version: 4.6.1
|
54
54
|
- !ruby/object:Gem::Dependency
|
55
55
|
name: kramdown-parser-gfm
|
56
56
|
requirement: !ruby/object:Gem::Requirement
|
@@ -71,28 +71,28 @@ dependencies:
|
|
71
71
|
requirements:
|
72
72
|
- - "~>"
|
73
73
|
- !ruby/object:Gem::Version
|
74
|
-
version: 5.25.
|
74
|
+
version: 5.25.5
|
75
75
|
type: :development
|
76
76
|
prerelease: false
|
77
77
|
version_requirements: !ruby/object:Gem::Requirement
|
78
78
|
requirements:
|
79
79
|
- - "~>"
|
80
80
|
- !ruby/object:Gem::Version
|
81
|
-
version: 5.25.
|
81
|
+
version: 5.25.5
|
82
82
|
- !ruby/object:Gem::Dependency
|
83
83
|
name: benchmark-ips
|
84
84
|
requirement: !ruby/object:Gem::Requirement
|
85
85
|
requirements:
|
86
86
|
- - "~>"
|
87
87
|
- !ruby/object:Gem::Version
|
88
|
-
version: 2.
|
88
|
+
version: 2.14.0
|
89
89
|
type: :development
|
90
90
|
prerelease: false
|
91
91
|
version_requirements: !ruby/object:Gem::Requirement
|
92
92
|
requirements:
|
93
93
|
- - "~>"
|
94
94
|
- !ruby/object:Gem::Version
|
95
|
-
version: 2.
|
95
|
+
version: 2.14.0
|
96
96
|
email: sharon@noteflakes.com
|
97
97
|
executables: []
|
98
98
|
extensions: []
|
@@ -135,7 +135,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
135
135
|
- !ruby/object:Gem::Version
|
136
136
|
version: '0'
|
137
137
|
requirements: []
|
138
|
-
rubygems_version: 3.7.
|
138
|
+
rubygems_version: 3.7.2
|
139
139
|
specification_version: 4
|
140
140
|
summary: 'Papercraft: functional HTML templating for Ruby'
|
141
141
|
test_files: []
|