trmnl_preview 0.32.3 → 0.33.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 55b67180ccff89b08d78384020c460edfdcafe59515cb23253e227cdc8f279cc
4
- data.tar.gz: f95ebeec6e33edc5398bae038860acbe18dc4846d93676b98c7bb73a33800f24
3
+ metadata.gz: 5fafe6b552e46a6d6bd887247b26039c0862bfd90a5b0ee7dc1bf7f2107d57d3
4
+ data.tar.gz: afe60774959b995e97a7c34a4230d9fa8db14645f79f9bf75d94eac6bd1133c5
5
5
  SHA512:
6
- metadata.gz: f8a5d6c769d20a3e7bef9b5c74f4d29ccad61f642210a0f7a4c2203393db36b950d34f56050b1b7e9b93d2293160d03a2f658b7be45951a63197eb400145d9af
7
- data.tar.gz: 4e0b560990974bb719c0a99f441f6e85e8904e75e2172c3cf8ac230f4020260023ea481507f68946e1f876ada648fe76963360a877a611a3456ae454d27ce808
6
+ metadata.gz: f588a82d30db94c88802984b2d5e9a50a759c80b1ad0acc4642e8694e3d69b7b3e9b98da2d657795c0591ab92eac4c227d1c34a071c4a41d9f5f49b5ae08553e
7
+ data.tar.gz: f7890f9399a83afb1ec36f18f506f74cbbdf9fa3157623ec88678afc3d54ae862dd33be395125e08356768aac11e9f27888b37c1d1ece6b40db0f10173a70a28
data/CHANGELOG.md CHANGED
@@ -1,6 +1,15 @@
1
1
 
2
2
  # Changelog
3
3
 
4
+ ## 0.33.1
5
+
6
+ - The Docker image draws Hindi, Bengali, Tamil, Thai, Tibetan and other Indic text, which showed as empty boxes. It now has the same fonts TRMNL renders with, and keeps DejaVu as the default font.
7
+
8
+ ## 0.33.0
9
+
10
+ - The Docker image draws Japanese, Chinese and Korean text. It had no CJK font, so that text showed as empty boxes. It now has `fonts-noto-cjk`, the same font TRMNL renders with.
11
+ - `trmnlp lint` reports markup whose `<style>` block draws all the text with no framework element (title, value, label or description), so the text keeps one size on every screen. The rule ID is `framework_elements_used`.
12
+
4
13
  ## 0.32.3
5
14
 
6
15
  - The poller refuses a polling URL line that TRMNL refuses, before it sends a request, and gives TRMNL's reason. A line that is not a complete http(s) URL, such as `h` or `//example.com`, has no host because a field it needs is empty, still has a `{{` or `{%`, or has a space or a non-ASCII host. Before, such a line could wait 10 seconds or fail with a connection error that did not say what was wrong.
data/README.md CHANGED
@@ -573,7 +573,7 @@ By convention, add a matching `CHANGELOG.md` entry in the same change.
573
573
  - [Private Plugins](https://help.trmnl.com/en/articles/9510536-private-plugins): strategies, polling and webhooks
574
574
  - [Liquid 101](https://help.trmnl.com/en/articles/10671186-liquid-101) and the [Framework Design Docs](https://help.trmnl.com/en/articles/12410486-framework-design-docs)
575
575
  - [Custom plugin form builder](https://help.trmnl.com/en/articles/10513740-custom-plugin-form-builder): the form fields `src/settings.yml` declares
576
- - [Syncing Plugins with GitHub](https://help.trmnl.com/en/articles/13465101-syncing-plugins-with-github) and [GitHub Sync](https://help.trmnl.com/en/articles/15977899-github-sync)
576
+ - [GitHub Sync](https://help.trmnl.com/en/articles/15977899-github-sync)
577
577
  - [Recipe best practices](https://help.trmnl.com/en/articles/11395668-recipe-best-practices) and [Demo Data for Publishing Plugins](https://help.trmnl.com/en/articles/12772238-demo-data-for-publishing-plugins)
578
578
  - [TRMNL CLI](https://help.trmnl.com/en/articles/17226209-trmnl-cli): the rest of your account from the terminal
579
579
  - [MCP Server](https://help.trmnl.com/en/articles/17432548-mcp-server) and our [agent skills](https://github.com/usetrmnl/trmnl-agent-skills): build plugins with an AI agent
@@ -1,6 +1,6 @@
1
1
  # Mirrored from the TRMNL design-system source.
2
2
  # Refresh with `rake framework:sync` — do not edit manually.
3
- latest: 3.4.3
3
+ latest: 3.4.4
4
4
  versions:
5
5
  - number: 0.0.1
6
6
  released_at: '2024-06-22'
@@ -100,3 +100,5 @@ versions:
100
100
  released_at: '2026-10-14'
101
101
  - number: 3.4.3
102
102
  released_at: '2026-10-15'
103
+ - number: 3.4.4
104
+ released_at: '2026-10-24'
@@ -0,0 +1,27 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative '../check'
4
+
5
+ module TRMNLP
6
+ module Lint
7
+ module Checks
8
+ # Reports markup that draws all of its text with its own <style> block and no framework
9
+ # element. Art and charts that the framework cannot draw are the reviewer's call.
10
+ class FrameworkElementsUsed < Check
11
+ MESSAGE = 'A <style> block draws all the text and no element uses title, value, label or description, ' \
12
+ 'so the text keeps one size on every screen. Use the framework elements with lg: steps.'
13
+ LEARN_MORE = 'https://trmnl.com/framework/docs/3.4/element_sizes'
14
+ STYLE_BLOCK = /<style\b/i
15
+ ELEMENT = /\A(?:title|value|label|description)(?:--|\z)/
16
+
17
+ private
18
+
19
+ def pass? = source.html_fragments.values.none? { it.at_css('style') } || element_classes?
20
+
21
+ def element_classes? = used_classes.any? { it.split(':').last.to_s.match?(ELEMENT) }
22
+
23
+ def used_classes = source.html_fragments.values.flat_map { it.css('[class]').flat_map { it['class'].split } }
24
+ end
25
+ end
26
+ end
27
+ end
@@ -17,6 +17,7 @@ module TRMNLP
17
17
  'no_external_qr_codes' => Checks::NoExternalQrCodes::PATTERN,
18
18
  'waits_for_dom_load' => Regexp.new(Regexp.union(Checks::WaitsForDomLoad::FORBIDDEN).source, Regexp::IGNORECASE),
19
19
  'limited_inline_styles' => /\sstyle\s*=/i,
20
+ 'framework_elements_used' => Checks::FrameworkElementsUsed::STYLE_BLOCK,
20
21
  'highcharts_animations_disabled' => /highcharts/i,
21
22
  'highcharts_elements_unique' => /highcharts/i
22
23
  }.freeze
data/lib/trmnlp/lint.rb CHANGED
@@ -11,6 +11,7 @@ require_relative 'lint/checks/no_async_functions'
11
11
  require_relative 'lint/checks/waits_for_dom_load'
12
12
  require_relative 'lint/checks/limited_inline_styles'
13
13
  require_relative 'lint/checks/no_style_restyling_framework'
14
+ require_relative 'lint/checks/framework_elements_used'
14
15
  require_relative 'lint/checks/no_size_classes'
15
16
  require_relative 'lint/checks/arbitrary_values_in_range'
16
17
  require_relative 'lint/checks/no_negative_spacing'
@@ -51,6 +52,7 @@ module TRMNLP
51
52
  Checks::WaitsForDomLoad,
52
53
  Checks::LimitedInlineStyles,
53
54
  Checks::NoStyleRestylingFramework,
55
+ Checks::FrameworkElementsUsed,
54
56
  Checks::NoSizeClasses,
55
57
  Checks::ArbitraryValuesInRange,
56
58
  Checks::NoNegativeSpacing,
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module TRMNLP
4
- VERSION = '0.32.3'
4
+ VERSION = '0.33.1'
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: trmnl_preview
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.32.3
4
+ version: 0.33.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Rockwell Schrock
@@ -431,6 +431,7 @@ files:
431
431
  - lib/trmnlp/lint/checks/files_under_upload_limit.rb
432
432
  - lib/trmnlp/lint/checks/form_fields_valid.rb
433
433
  - lib/trmnlp/lint/checks/framework_classes_exist.rb
434
+ - lib/trmnlp/lint/checks/framework_elements_used.rb
434
435
  - lib/trmnlp/lint/checks/framework_prefixes_exist.rb
435
436
  - lib/trmnlp/lint/checks/gray_text_has_one_bit_class.rb
436
437
  - lib/trmnlp/lint/checks/highcharts_animations_disabled.rb