papercraft 2.16 → 2.18

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: fdb138000feb8d97f7479b8894555cb5d457648f9d11a8afe51c942677235976
4
+ data.tar.gz: 5ec07faf07b7ed23781be2825c36039c457bde7d42a440f9c15c503f7d64f9ca
5
5
  SHA512:
6
- metadata.gz: f4cecc6a0555b0adc78ef128ed9c650303d2fd487dbc160365500ed029538cb2d7b394f1a025d152bfa3cc2476986defca15066992047be01975fd410ac66015
7
- data.tar.gz: 017e02aeb60cd4bd690e355fb9a34a25d7dd93e2b8d424e46b407791070776cb35e1d8ed423d07f62746a276ba98e6abd61813c67bca7a061f807abd0fc11c71
6
+ metadata.gz: 99b831bab5992eb0533d85cd25c2b10529d5f052c13ffa8c43dd42c3360b520800f9db1f505b70da41d113d82d495ccaa041944b0578a63af64b08835b63db30
7
+ data.tar.gz: 93beefae61238e80e26133adfaf956c6ec9a4e57f07094687a216f20eb489a975dd261e6b370a85dba296770286bdcd32f0907f9ecaeee4278f9d547bf761510
data/CHANGELOG.md CHANGED
@@ -1,3 +1,15 @@
1
+ # 2.18 2025-10-08
2
+
3
+ - Add `link_stylesheet` extension
4
+ - Add support for rendering templates in IRB
5
+ - Update Sirop to 1.0
6
+
7
+ # 2.17 2025-10-05
8
+
9
+ - Update dependencies
10
+ - Add support for attributes in `html` tag
11
+ - Add `Papercraft.__clear__extensions__` method
12
+
1
13
  # 2.16 2025-10-02
2
14
 
3
15
  - 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.18'
5
5
  end
data/lib/papercraft.rb CHANGED
@@ -12,8 +12,12 @@ module Papercraft
12
12
 
13
13
  extend self
14
14
 
15
- # Registry of Papercraft exgtensions
16
- Extensions = {}
15
+ # Registry of Papercraft extensions
16
+ Extensions = {
17
+ link_stylesheet: ->(href, **atts) {
18
+ link(rel: "stylesheet", href:, **atts)
19
+ }
20
+ }
17
21
 
18
22
  # Registers extensions to the Papercraft syntax.
19
23
  #
@@ -24,6 +28,14 @@ module Papercraft
24
28
  self
25
29
  end
26
30
 
31
+ # Clears all registered extensions.
32
+ #
33
+ # @return [self]
34
+ def __clear_extensions__
35
+ Extensions.clear
36
+ self
37
+ end
38
+
27
39
  # Formats the given string, converting underscores to dashes.
28
40
  #
29
41
  # @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.18'
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sharon Rosner
@@ -15,14 +15,14 @@ dependencies:
15
15
  requirements:
16
16
  - - "~>"
17
17
  - !ruby/object:Gem::Version
18
- version: '0.9'
18
+ version: '1.0'
19
19
  type: :runtime
20
20
  prerelease: false
21
21
  version_requirements: !ruby/object:Gem::Requirement
22
22
  requirements:
23
23
  - - "~>"
24
24
  - !ruby/object:Gem::Version
25
- version: '0.9'
25
+ version: '1.0'
26
26
  - !ruby/object:Gem::Dependency
27
27
  name: kramdown
28
28
  requirement: !ruby/object:Gem::Requirement
@@ -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,42 @@ 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
+ - !ruby/object:Gem::Dependency
97
+ name: irb
98
+ requirement: !ruby/object:Gem::Requirement
99
+ requirements:
100
+ - - "~>"
101
+ - !ruby/object:Gem::Version
102
+ version: 1.15.2
103
+ type: :development
104
+ prerelease: false
105
+ version_requirements: !ruby/object:Gem::Requirement
106
+ requirements:
107
+ - - "~>"
108
+ - !ruby/object:Gem::Version
109
+ version: 1.15.2
96
110
  email: sharon@noteflakes.com
97
111
  executables: []
98
112
  extensions: []