papercraft 2.16 → 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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 3c181e3d6f6fc6784a97d7816ad6ea495a5622188977e76035454186d0e5a552
4
- data.tar.gz: a6528a61e5a19670a08460e6e2ffe903f7651fecad30d7400fc0df948fbaaa5d
3
+ metadata.gz: 63718ece62bc77005853c4b7d44c31c9d65c59d420ab3d4002859dcd5dbf4add
4
+ data.tar.gz: 104aca9ba3dcfe331f4973036e26c7341058790eea60a1a4a8409e73dd3825bd
5
5
  SHA512:
6
- metadata.gz: f4cecc6a0555b0adc78ef128ed9c650303d2fd487dbc160365500ed029538cb2d7b394f1a025d152bfa3cc2476986defca15066992047be01975fd410ac66015
7
- data.tar.gz: 017e02aeb60cd4bd690e355fb9a34a25d7dd93e2b8d424e46b407791070776cb35e1d8ed423d07f62746a276ba98e6abd61813c67bca7a061f807abd0fc11c71
6
+ metadata.gz: a34b14e12bfb23698ad1081763efc2183c45e1d90223d4076e18b1329086d2e3bed6f9cc15028a22c6dc9b86980e3c062618783d351f2081668dcdbe9e8f56d5
7
+ data.tar.gz: d1b81734455196ced0a6b7a75fb49e77c716feddfa8ad67da70256efe6516279650c13f108ede29131ab0958437e1a5f6810e222fd35f1993b4891ca4b00ca03
data/CHANGELOG.md CHANGED
@@ -1,3 +1,9 @@
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
+
1
7
  # 2.16 2025-10-02
2
8
 
3
9
  - Add support for namespaced components
@@ -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)
@@ -312,7 +312,9 @@ module Papercraft
312
312
  when :tag
313
313
  args = node.call_node.arguments&.arguments
314
314
  when :html, :html5
315
- emit_html(node.location, '<!DOCTYPE html><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>')
316
318
  visit(node.block.body) if node.block
317
319
  emit_html(node.block.closing_loc, '</html>')
318
320
  when :markdown
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Papercraft
4
- VERSION = '2.16'
4
+ VERSION = '2.17'
5
5
  end
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.16'
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.5.1
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.5.1
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.4
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.4
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.7.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.7.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.0.dev
138
+ rubygems_version: 3.7.2
139
139
  specification_version: 4
140
140
  summary: 'Papercraft: functional HTML templating for Ruby'
141
141
  test_files: []