trmnl_preview 0.14.2 → 0.16.0

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.
Files changed (72) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +21 -0
  3. data/README.md +31 -0
  4. data/db/data/and_x_more.yml +86 -0
  5. data/db/data/locales/cs.yml +339 -0
  6. data/db/data/locales/da.yml +339 -0
  7. data/db/data/locales/de-AT.yml +341 -0
  8. data/db/data/locales/de.yml +341 -0
  9. data/db/data/locales/en-AU.yml +79 -0
  10. data/db/data/locales/en-GB.yml +79 -0
  11. data/db/data/locales/en.yml +341 -0
  12. data/db/data/locales/es-ES.yml +341 -0
  13. data/db/data/locales/fr.yml +339 -0
  14. data/db/data/locales/he.yml +339 -0
  15. data/db/data/locales/hu.yml +339 -0
  16. data/db/data/locales/id.yml +339 -0
  17. data/db/data/locales/is.yml +339 -0
  18. data/db/data/locales/it.yml +341 -0
  19. data/db/data/locales/ja.yml +342 -0
  20. data/db/data/locales/ko.yml +337 -0
  21. data/db/data/locales/lt.yml +340 -0
  22. data/db/data/locales/nl.yml +339 -0
  23. data/db/data/locales/no.yml +4 -0
  24. data/db/data/locales/pl.yml +342 -0
  25. data/db/data/locales/pt-BR.yml +340 -0
  26. data/db/data/locales/raw.yml +256 -0
  27. data/db/data/locales/ro.yml +339 -0
  28. data/db/data/locales/ru.yml +342 -0
  29. data/db/data/locales/sk.yml +339 -0
  30. data/db/data/locales/sv.yml +340 -0
  31. data/db/data/locales/uk.yml +339 -0
  32. data/db/data/locales/zh-CN.yml +338 -0
  33. data/db/data/locales/zh-HK.yml +338 -0
  34. data/lib/trmnlp/app.rb +5 -4
  35. data/lib/trmnlp/async_callback.rb +75 -0
  36. data/lib/trmnlp/cli.rb +2 -0
  37. data/lib/trmnlp/commands/lint.rb +18 -3
  38. data/lib/trmnlp/commands/serve.rb +3 -0
  39. data/lib/trmnlp/config/plugin.rb +52 -12
  40. data/lib/trmnlp/config/project.rb +14 -4
  41. data/lib/trmnlp/context.rb +17 -2
  42. data/lib/trmnlp/firefox_driver.rb +0 -3
  43. data/lib/trmnlp/framework_version.rb +9 -0
  44. data/lib/trmnlp/image_quantizer.rb +28 -15
  45. data/lib/trmnlp/lint/checks/image_links_reachable.rb +6 -1
  46. data/lib/trmnlp/lint/checks/limited_inline_styles.rb +12 -5
  47. data/lib/trmnlp/lint/checks/no_custom_filters.rb +27 -0
  48. data/lib/trmnlp/lint/diagnostic.rb +97 -0
  49. data/lib/trmnlp/lint/source.rb +53 -0
  50. data/lib/trmnlp/lint.rb +3 -1
  51. data/lib/trmnlp/merged_plugin_locals.rb +57 -0
  52. data/lib/trmnlp/outbound_request.rb +99 -0
  53. data/lib/trmnlp/paths.rb +11 -6
  54. data/lib/trmnlp/poller.rb +83 -44
  55. data/lib/trmnlp/rails_helpers.rb +41 -0
  56. data/lib/trmnlp/renderer.rb +37 -11
  57. data/lib/trmnlp/screen_generator.rb +14 -2
  58. data/lib/trmnlp/screenshot.rb +29 -4
  59. data/lib/trmnlp/select_field_choices.rb +25 -0
  60. data/lib/trmnlp/transform_pipeline.rb +47 -6
  61. data/lib/trmnlp/transform_state.rb +48 -0
  62. data/lib/trmnlp/user_data_assembler.rb +63 -25
  63. data/lib/trmnlp/version.rb +1 -1
  64. data/lib/trmnlp/watcher.rb +2 -1
  65. data/lib/trmnlp/webhook_payload.rb +74 -0
  66. data/lib/trmnlp/webhook_receiver.rb +78 -0
  67. data/lib/trmnlp.rb +1 -1
  68. data/trmnl_preview.gemspec +3 -0
  69. data/web/public/index.js +18 -6
  70. data/web/views/index.erb +7 -0
  71. data/web/views/render_html.erb +36 -0
  72. metadata +83 -1
@@ -1,7 +1,43 @@
1
1
  <!DOCTYPE html>
2
2
  <html>
3
3
  <head>
4
+ <script>
5
+ const [andXMorePrefix, andXMoreSuffix] = <%= @and_x_more.to_json %>;
6
+ window.I18n = { andXMore: (count) => `${andXMorePrefix} ${count} ${andXMoreSuffix}` };
7
+
8
+ // Copied from TRMNL's plugin_rendering.js: the PNG capture waits for TRMNL_HIGHCHARTS_DONE.
9
+ document.addEventListener("DOMContentLoaded", () => {
10
+ if (!window.Highcharts) {
11
+ window.TRMNL_HIGHCHARTS_DONE = true;
12
+ return;
13
+ }
14
+
15
+ let counter = 0;
16
+ const settle = () => {
17
+ const allReady = Highcharts.charts.every(c => c && c.renderer && c.renderer.boxWrapper);
18
+ if (!allReady && counter <= 50) return false; // 5 second timeout
19
+
20
+ // A chart drawn before the title bar clamped its slot falls back to a 400px height.
21
+ Highcharts.charts.forEach(c => {
22
+ if (!c || !c.renderTo) return;
23
+ const w = c.renderTo.offsetWidth;
24
+ const h = c.renderTo.offsetHeight;
25
+ if (h && Math.round(c.chartHeight) !== Math.round(h)) c.setSize(w, h, false);
26
+ });
27
+ window.TRMNL_HIGHCHARTS_DONE = true;
28
+ return true;
29
+ };
30
+
31
+ if (settle()) return;
32
+
33
+ const interval = setInterval(() => {
34
+ counter++;
35
+ if (settle()) clearInterval(interval);
36
+ }, 100);
37
+ });
38
+ </script>
4
39
  <link rel="stylesheet" href="<%= @framework.css_url %>" />
40
+ <% if @theme_css_url %><link rel="stylesheet" href="<%= @theme_css_url %>" /><% end %>
5
41
  <script src="<%= @framework.js_url %>"></script>
6
42
  <meta name="trmnl-framework-version" content="<%= @framework.number %>" />
7
43
  <meta name="trmnl-framework-pinned" content="<%= @framework.pinned? %>" />
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.14.2
4
+ version: 0.16.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Rockwell Schrock
@@ -65,6 +65,48 @@ dependencies:
65
65
  - - "~>"
66
66
  - !ruby/object:Gem::Version
67
67
  version: '8.0'
68
+ - !ruby/object:Gem::Dependency
69
+ name: crass
70
+ requirement: !ruby/object:Gem::Requirement
71
+ requirements:
72
+ - - "~>"
73
+ - !ruby/object:Gem::Version
74
+ version: '1.0'
75
+ type: :runtime
76
+ prerelease: false
77
+ version_requirements: !ruby/object:Gem::Requirement
78
+ requirements:
79
+ - - "~>"
80
+ - !ruby/object:Gem::Version
81
+ version: '1.0'
82
+ - !ruby/object:Gem::Dependency
83
+ name: csv
84
+ requirement: !ruby/object:Gem::Requirement
85
+ requirements:
86
+ - - "~>"
87
+ - !ruby/object:Gem::Version
88
+ version: '3.3'
89
+ type: :runtime
90
+ prerelease: false
91
+ version_requirements: !ruby/object:Gem::Requirement
92
+ requirements:
93
+ - - "~>"
94
+ - !ruby/object:Gem::Version
95
+ version: '3.3'
96
+ - !ruby/object:Gem::Dependency
97
+ name: nokogiri
98
+ requirement: !ruby/object:Gem::Requirement
99
+ requirements:
100
+ - - "~>"
101
+ - !ruby/object:Gem::Version
102
+ version: '1.18'
103
+ type: :runtime
104
+ prerelease: false
105
+ version_requirements: !ruby/object:Gem::Requirement
106
+ requirements:
107
+ - - "~>"
108
+ - !ruby/object:Gem::Version
109
+ version: '1.18'
68
110
  - !ruby/object:Gem::Dependency
69
111
  name: trmnl-liquid
70
112
  requirement: !ruby/object:Gem::Requirement
@@ -274,11 +316,42 @@ files:
274
316
  - README.md
275
317
  - bin/rake
276
318
  - bin/trmnlp
319
+ - db/data/and_x_more.yml
277
320
  - db/data/form_fields.yml
278
321
  - db/data/framework_versions.yml
322
+ - db/data/locales/cs.yml
323
+ - db/data/locales/da.yml
324
+ - db/data/locales/de-AT.yml
325
+ - db/data/locales/de.yml
326
+ - db/data/locales/en-AU.yml
327
+ - db/data/locales/en-GB.yml
328
+ - db/data/locales/en.yml
329
+ - db/data/locales/es-ES.yml
330
+ - db/data/locales/fr.yml
331
+ - db/data/locales/he.yml
332
+ - db/data/locales/hu.yml
333
+ - db/data/locales/id.yml
334
+ - db/data/locales/is.yml
335
+ - db/data/locales/it.yml
336
+ - db/data/locales/ja.yml
337
+ - db/data/locales/ko.yml
338
+ - db/data/locales/lt.yml
339
+ - db/data/locales/nl.yml
340
+ - db/data/locales/no.yml
341
+ - db/data/locales/pl.yml
342
+ - db/data/locales/pt-BR.yml
343
+ - db/data/locales/raw.yml
344
+ - db/data/locales/ro.yml
345
+ - db/data/locales/ru.yml
346
+ - db/data/locales/sk.yml
347
+ - db/data/locales/sv.yml
348
+ - db/data/locales/uk.yml
349
+ - db/data/locales/zh-CN.yml
350
+ - db/data/locales/zh-HK.yml
279
351
  - lib/trmnlp.rb
280
352
  - lib/trmnlp/api_client.rb
281
353
  - lib/trmnlp/app.rb
354
+ - lib/trmnlp/async_callback.rb
282
355
  - lib/trmnlp/browser_pool.rb
283
356
  - lib/trmnlp/cli.rb
284
357
  - lib/trmnlp/commands.rb
@@ -314,13 +387,16 @@ files:
314
387
  - lib/trmnlp/lint/checks/layouts_have_content.rb
315
388
  - lib/trmnlp/lint/checks/limited_inline_styles.rb
316
389
  - lib/trmnlp/lint/checks/no_async_functions.rb
390
+ - lib/trmnlp/lint/checks/no_custom_filters.rb
317
391
  - lib/trmnlp/lint/checks/no_opacity.rb
318
392
  - lib/trmnlp/lint/checks/no_size_classes.rb
319
393
  - lib/trmnlp/lint/checks/recipe_overview_length.rb
320
394
  - lib/trmnlp/lint/checks/title_casing.rb
321
395
  - lib/trmnlp/lint/checks/title_length.rb
322
396
  - lib/trmnlp/lint/checks/waits_for_dom_load.rb
397
+ - lib/trmnlp/lint/diagnostic.rb
323
398
  - lib/trmnlp/lint/source.rb
399
+ - lib/trmnlp/merged_plugin_locals.rb
324
400
  - lib/trmnlp/oauth.rb
325
401
  - lib/trmnlp/oauth/client.rb
326
402
  - lib/trmnlp/oauth/pkce.rb
@@ -328,22 +404,28 @@ files:
328
404
  - lib/trmnlp/oauth/session.rb
329
405
  - lib/trmnlp/oauth/token_bundle.rb
330
406
  - lib/trmnlp/oauth/token_store.rb
407
+ - lib/trmnlp/outbound_request.rb
331
408
  - lib/trmnlp/paths.rb
332
409
  - lib/trmnlp/poller.rb
410
+ - lib/trmnlp/rails_helpers.rb
333
411
  - lib/trmnlp/renderer.rb
334
412
  - lib/trmnlp/reporter.rb
335
413
  - lib/trmnlp/screen.rb
336
414
  - lib/trmnlp/screen_generator.rb
337
415
  - lib/trmnlp/screenshot.rb
416
+ - lib/trmnlp/select_field_choices.rb
338
417
  - lib/trmnlp/transform_backend/http.rb
339
418
  - lib/trmnlp/transform_backend/subprocess.rb
340
419
  - lib/trmnlp/transform_backend/which.rb
341
420
  - lib/trmnlp/transform_backend/wrapper.rb
342
421
  - lib/trmnlp/transform_client.rb
343
422
  - lib/trmnlp/transform_pipeline.rb
423
+ - lib/trmnlp/transform_state.rb
344
424
  - lib/trmnlp/user_data_assembler.rb
345
425
  - lib/trmnlp/version.rb
346
426
  - lib/trmnlp/watcher.rb
427
+ - lib/trmnlp/webhook_payload.rb
428
+ - lib/trmnlp/webhook_receiver.rb
347
429
  - templates/init/.github/workflows/trmnl.yml
348
430
  - templates/init/.gitignore
349
431
  - templates/init/.trmnlp.yml