datalog-theme 0.8.0 → 0.9.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.
Files changed (127) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +84 -0
  3. data/CITATION.cff +2 -2
  4. data/README.md +4 -2
  5. data/_data/i18n/en.yml +321 -0
  6. data/_data/i18n/es.yml +321 -0
  7. data/_data/i18n/pt.yml +321 -0
  8. data/_data/js_manifest.json +16 -0
  9. data/_includes/components/academic-dashboard.html +4 -4
  10. data/_includes/components/author-bio.html +21 -11
  11. data/_includes/components/author-list.html +32 -0
  12. data/_includes/components/breadcrumbs.html +6 -4
  13. data/_includes/components/citation-tools.html +18 -58
  14. data/_includes/components/comments-thread.html +90 -0
  15. data/_includes/components/contact-form.html +120 -0
  16. data/_includes/components/correction-report.html +82 -0
  17. data/_includes/components/enhanced-toc.html +6 -7
  18. data/_includes/components/hero.html +1 -1
  19. data/_includes/components/license-link.html +13 -0
  20. data/_includes/components/license-notice.html +28 -0
  21. data/_includes/components/moderation-inbox.html +139 -0
  22. data/_includes/components/post-hero.html +2 -2
  23. data/_includes/components/reactions.html +49 -0
  24. data/_includes/components/reading-list.html +34 -0
  25. data/_includes/components/reading-mode-toggle.html +67 -0
  26. data/_includes/components/reading-state-bookmark.html +27 -0
  27. data/_includes/components/reading-state-panel.html +62 -0
  28. data/_includes/components/reading-state-resume.html +17 -0
  29. data/_includes/components/reproducibility.html +61 -0
  30. data/_includes/components/responsive-image.html +3 -3
  31. data/_includes/components/revision-history.html +39 -0
  32. data/_includes/components/revision-notice.html +35 -0
  33. data/_includes/components/series-nav.html +64 -0
  34. data/_includes/components/subscribe-form.html +88 -0
  35. data/_includes/components/subscription-manage.html +69 -0
  36. data/_includes/components/visualization-card.html +1 -1
  37. data/_includes/components/webmentions.html +48 -0
  38. data/_includes/csp-meta.html +21 -1
  39. data/_includes/footer/nav-column.html +1 -1
  40. data/_includes/footer.html +5 -2
  41. data/_includes/head.html +64 -52
  42. data/_includes/header/navigation.html +2 -2
  43. data/_includes/header.html +1 -1
  44. data/_includes/layouts/default/article.html +6 -8
  45. data/_includes/meta/dynamic-services-config.html +14 -0
  46. data/_includes/meta/math-config.html +12 -5
  47. data/_includes/meta/person-json.html +27 -0
  48. data/_includes/meta/publisher.html +45 -0
  49. data/_includes/meta/schema.html +84 -48
  50. data/_includes/meta/scholarly.html +122 -0
  51. data/_includes/meta/scripts-loader.html +2 -0
  52. data/_includes/meta/webmention-discovery.html +14 -0
  53. data/_includes/post/related-posts.html +1 -1
  54. data/_includes/scripts.html +57 -0
  55. data/_layouts/dataset.html +5 -4
  56. data/_layouts/default.html +1 -1
  57. data/_layouts/home.html +2 -2
  58. data/_layouts/notebook.html +1 -1
  59. data/_layouts/package.html +8 -7
  60. data/_layouts/page.html +15 -0
  61. data/_layouts/portfolio.html +1 -1
  62. data/_layouts/post.html +94 -25
  63. data/_layouts/project.html +5 -5
  64. data/_layouts/research.html +27 -75
  65. data/_plugins/authors.rb +151 -0
  66. data/_plugins/citation_exports.rb +93 -0
  67. data/_plugins/config_validator.rb +223 -20
  68. data/_plugins/critical_css_check.rb +42 -0
  69. data/_plugins/i18n.rb +6 -4
  70. data/_plugins/image_optimizer.rb +240 -186
  71. data/_plugins/licenses.rb +147 -0
  72. data/_plugins/math_preprocessor.rb +55 -11
  73. data/_plugins/references.rb +260 -0
  74. data/_plugins/reproducibility.rb +167 -0
  75. data/_plugins/responsive_content.rb +40 -0
  76. data/_plugins/revisions.rb +102 -0
  77. data/_plugins/scholarly.rb +55 -0
  78. data/_plugins/series.rb +104 -0
  79. data/_plugins/statements.rb +87 -0
  80. data/_sass/_base.scss +13 -1
  81. data/_sass/_comments-thread.scss +159 -0
  82. data/_sass/_layout.scss +402 -1
  83. data/_sass/_mathematical.scss +38 -1
  84. data/_sass/_moderation.scss +222 -0
  85. data/_sass/_post-components.scss +4 -2
  86. data/_sass/_print.scss +299 -0
  87. data/_sass/_reactions.scss +89 -0
  88. data/_sass/_reading-state.scss +290 -0
  89. data/_sass/_service-forms.scss +204 -0
  90. data/_sass/_subscriptions.scss +140 -0
  91. data/_sass/_syntax-highlighting.scss +3 -3
  92. data/_sass/_theme.scss +11 -0
  93. data/_sass/_typography.scss +116 -0
  94. data/_sass/_utilities.scss +5 -0
  95. data/_sass/_variables.scss +6 -0
  96. data/_sass/_webmentions.scss +125 -0
  97. data/assets/js/dist/academic.js +1 -1
  98. data/assets/js/dist/analytics-dashboard.js +1 -1
  99. data/assets/js/dist/chunks/chunk-PATLC23F.js +1 -0
  100. data/assets/js/dist/chunks/chunk-VZ5WKQVA.js +1 -0
  101. data/assets/js/dist/chunks/chunk-WIRUK3OZ.js +1 -0
  102. data/assets/js/dist/comments.js +2 -0
  103. data/assets/js/dist/contact.js +1 -0
  104. data/assets/js/dist/core.js +1 -1
  105. data/assets/js/dist/corrections.js +1 -0
  106. data/assets/js/dist/loader.js +1 -1
  107. data/assets/js/dist/math.js +1 -1
  108. data/assets/js/dist/moderation.js +1 -0
  109. data/assets/js/dist/notebook.js +1 -1
  110. data/assets/js/dist/reactions.js +1 -0
  111. data/assets/js/dist/reading-state.js +1 -0
  112. data/assets/js/dist/search.js +1 -1
  113. data/assets/js/dist/sources.json +52 -0
  114. data/assets/js/dist/subscriptions.js +1 -0
  115. data/assets/js/dist/visualizations.js +2 -2
  116. data/assets/js/dist/webmentions.js +1 -0
  117. data/assets/js/loader.js +34 -0
  118. data/datalog-theme.gemspec +1 -2
  119. data/lib/datalog/cli.rb +9 -1
  120. data/lib/datalog/critical_css.rb +168 -0
  121. data/lib/datalog/plugins/comments.rb +33 -3
  122. data/lib/datalog/theme/installed_files.rb +113 -0
  123. data/lib/datalog/theme/repository_checkout.rb +6 -2
  124. data/lib/datalog/theme/version.rb +5 -1
  125. data/lib/datalog-theme.rb +1 -0
  126. metadata +60 -23
  127. data/assets/js/dist/chunks/chunk-225H5YXE.js +0 -1
@@ -19,16 +19,23 @@ module Datalog
19
19
  REQUIRED_FIELDS = {
20
20
  "giscus" => %w[repo repo_id category category_id],
21
21
  "utterances" => %w[repo],
22
- "disqus" => %w[shortname]
22
+ "disqus" => %w[shortname],
23
+ "api" => []
23
24
  }.freeze
24
25
 
26
+ # The api provider's thread (components/comments-thread.html) is a Liquid
27
+ # include, so it shares the service forms' labels and states.
28
+ API_INCLUDE = "{% include components/comments-thread.html %}"
29
+
25
30
  def initialize(site, config = {})
26
31
  super
27
32
  @defaults = {
28
33
  "provider" => "giscus",
29
34
  "mapping" => "pathname",
30
35
  "theme" => "light",
31
- "enabled_by_default" => false
36
+ "enabled_by_default" => false,
37
+ "replies" => true,
38
+ "moderation" => true
32
39
  }.merge(@config)
33
40
  @memo = {}
34
41
  end
@@ -67,9 +74,12 @@ module Datalog
67
74
  settings = @memo[key]
68
75
  return "" unless settings
69
76
 
77
+ embed = settings["embed"]
78
+ embed = render_api(context) if settings["provider"] == "api" && embed.to_s.empty?
79
+
70
80
  <<~HTML
71
81
  <div class="datalog-comments" aria-label="Comments">
72
- #{settings['embed']}
82
+ #{embed}
73
83
  </div>
74
84
  HTML
75
85
  end
@@ -109,6 +119,8 @@ module Datalog
109
119
  render_utterances(settings)
110
120
  when "disqus"
111
121
  render_disqus(document, settings)
122
+ when "api"
123
+ "" # the thread is rendered by the tag, in its own context
112
124
  else
113
125
  %(<p class="datalog-comments-unsupported">Comments provider "#{settings['provider']}" is not supported.</p>)
114
126
  end
@@ -140,6 +152,12 @@ module Datalog
140
152
  async></script>)
141
153
  end
142
154
 
155
+ # The thread of the site's own backend (#253), rendered in the tag's own
156
+ # context so the include sees the page and the site.
157
+ def render_api(context)
158
+ Liquid::Template.parse(API_INCLUDE).render(context)
159
+ end
160
+
143
161
  def render_disqus(document, settings)
144
162
  shortname = settings["shortname"] || ""
145
163
  nonce = nonce_attribute(document)
@@ -171,10 +189,22 @@ module Datalog
171
189
  end
172
190
 
173
191
  def missing_required_fields(provider, settings)
192
+ return api_missing(settings) if provider.to_s == "api"
193
+
174
194
  required = REQUIRED_FIELDS.fetch(provider.to_s, [])
175
195
  required.select { |key| settings[key].to_s.strip.empty? }
176
196
  end
177
197
 
198
+ # The api provider needs a backend: its own endpoint, or the site's
199
+ # dynamic services (docs/dynamic-services.md).
200
+ def api_missing(settings)
201
+ services = site.config["dynamic_services"]
202
+ base = services.is_a?(Hash) ? services["base_url"].to_s.strip : ""
203
+ return [] unless settings["endpoint"].to_s.strip.empty? && base.empty?
204
+
205
+ ["endpoint (or dynamic_services.base_url)"]
206
+ end
207
+
178
208
  def logger
179
209
  Jekyll.logger
180
210
  end
@@ -0,0 +1,113 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "digest"
4
+ require "fileutils"
5
+ require "jekyll"
6
+ require "json"
7
+ require_relative "package"
8
+ require_relative "repository_checkout"
9
+
10
+ module Datalog
11
+ module Theme
12
+ # Stops a build that would serve a mix of theme versions. A site that uses
13
+ # the theme from a Git submodule or another checkout reads every theme file
14
+ # from it, but the script bundles are build output and have to be built
15
+ # again whenever the checkout moves. Any site can also hold copies of files
16
+ # the theme provides, left from copying the theme in by hand; a site's file
17
+ # takes the place of the theme's, and the copies fall behind on the next
18
+ # update.
19
+ module InstalledFiles
20
+ module_function
21
+
22
+ BUNDLE_SOURCES = "assets/js/dist/sources.json"
23
+ # Theme data a site has no reason to replace: the script manifest names
24
+ # the bundles this version of the theme ships, and the integrity hashes
25
+ # belong to the CDN files its layouts load. Translations are left out,
26
+ # since a site may change them.
27
+ DATA_FILES = %w[_data/js_manifest.json _data/cdn-integrity.yml].freeze
28
+
29
+ # Jekyll prints an error on one line, so the messages are written as
30
+ # sentences rather than laid out in lines.
31
+ def check_bundles(site)
32
+ return unless RepositoryCheckout.applies_to?(site)
33
+
34
+ root = site.theme.root
35
+ reasons = stale_bundle_reasons(root)
36
+ return if reasons.empty?
37
+
38
+ listed = reasons.first(5).join("; ")
39
+ listed += "; and #{reasons.size - 5} more" if reasons.size > 5
40
+ raise Jekyll::Errors::FatalException,
41
+ "The script bundles in #{File.join(root, 'assets', 'js', 'dist')} were not built from the theme " \
42
+ "files beside them (#{listed}). Pages would run scripts from another version of the theme. Build " \
43
+ "them again by running `npm ci && npm run build:js` in #{root}."
44
+ end
45
+
46
+ # scripts/build_js.mjs records a SHA-256 of each file it builds from.
47
+ def stale_bundle_reasons(root)
48
+ record = File.join(root, BUNDLE_SOURCES)
49
+ unless File.file?(record)
50
+ return ["#{BUNDLE_SOURCES} is missing: the bundles were never built, or built before it was recorded"]
51
+ end
52
+
53
+ JSON.parse(File.read(record)).fetch("sources").filter_map do |path, digest|
54
+ file = File.join(root, path)
55
+ if !File.file?(file)
56
+ "#{path} is gone"
57
+ elsif Digest::SHA256.file(file).hexdigest != digest
58
+ "#{path} has changed"
59
+ end
60
+ end
61
+ end
62
+
63
+ def check_site_copies(site)
64
+ theme = site.theme
65
+ return unless theme && theme.name == "datalog-theme"
66
+
67
+ copies = stale_asset_copies(site, theme.root) + stale_data_copies(site, theme.root)
68
+ return if copies.empty?
69
+
70
+ raise Jekyll::Errors::FatalException,
71
+ "Your site has its own copies of files datalog-theme provides, and they differ from the theme's: " \
72
+ "#{copies.join(', ')}. A site's file takes the place of the theme's, so pages would load scripts, " \
73
+ "or check their integrity, for another version of the theme. Delete these files: the theme " \
74
+ "provides them."
75
+ end
76
+
77
+ # The site's static files that stand in for theme files pages load. Jekyll
78
+ # leaves the theme's file out when the site has one at the same path.
79
+ def stale_asset_copies(site, root)
80
+ source = File.join(site.source, "")
81
+ site.static_files.filter_map do |file|
82
+ next unless file.path.start_with?(source)
83
+
84
+ relative = file.relative_path.delete_prefix("/")
85
+ next unless Package::SCRIPTS_PAGES_LOAD.any? { |entry| Package.inside?(relative, entry) }
86
+
87
+ theme_file = File.join(root, relative)
88
+ relative if File.file?(theme_file) && !FileUtils.identical?(file.path, theme_file)
89
+ end
90
+ end
91
+
92
+ def stale_data_copies(site, root)
93
+ reader = Jekyll::DataReader.new(site)
94
+ own = reader.read(site.config["data_dir"])
95
+ DATA_FILES.filter_map do |entry|
96
+ key = File.basename(entry, ".*")
97
+ theme_file = File.join(root, entry)
98
+ next unless own.key?(key) && File.file?(theme_file)
99
+ next if own[key] == reader.read_data_file(theme_file)
100
+
101
+ Dir.glob("#{key}.*", base: site.in_source_dir(site.config["data_dir"])).map do |name|
102
+ File.join(site.config["data_dir"], name)
103
+ end.first
104
+ end
105
+ end
106
+ end
107
+ end
108
+ end
109
+
110
+ Jekyll::Hooks.register :site, :post_read do |site|
111
+ Datalog::Theme::InstalledFiles.check_bundles(site)
112
+ Datalog::Theme::InstalledFiles.check_site_copies(site)
113
+ end
@@ -54,9 +54,13 @@ module Datalog
54
54
  remove_demo_data(site)
55
55
  end
56
56
 
57
+ # A checkout also holds the script sources the bundles are built from,
58
+ # which no page loads. The site gets the theme assets the gem would give it.
57
59
  def remove_demo_assets(site)
58
- demo_dirs = Package::DEMO_ASSETS.map { |entry| File.join(site.theme.root, entry, "") }
59
- site.static_files.reject! { |file| demo_dirs.any? { |dir| file.path.start_with?(dir) } }
60
+ root = File.join(site.theme.root, "")
61
+ site.static_files.reject! do |file|
62
+ file.path.start_with?(root) && !Package.theme_file?(file.path.delete_prefix(root))
63
+ end
60
64
  end
61
65
 
62
66
  # site.data holds the theme's data with the site's merged over it. Each key
@@ -2,6 +2,10 @@
2
2
 
3
3
  module Datalog
4
4
  module Theme
5
- VERSION = "0.8.0" unless const_defined?(:VERSION)
5
+ VERSION = "0.9.1" unless const_defined?(:VERSION)
6
+ # The Ruby the gem installs on, for the gemspec and `datalog check`. The
7
+ # release workflow rewrites every quoted version assigned to a name ending
8
+ # in VERSION in this file, so this name must not end that way.
9
+ RUBY_REQUIREMENT = ">= 3.2" unless const_defined?(:RUBY_REQUIREMENT)
6
10
  end
7
11
  end
data/lib/datalog-theme.rb CHANGED
@@ -36,3 +36,4 @@ end
36
36
  Datalog::Theme.load_plugins
37
37
 
38
38
  require_relative "datalog/theme/repository_checkout"
39
+ require_relative "datalog/theme/installed_files"
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: datalog-theme
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.8.0
4
+ version: 0.9.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Diogo Ribeiro
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2026-09-15 00:00:00.000000000 Z
11
+ date: 2026-09-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: jekyll
@@ -206,26 +206,6 @@ dependencies:
206
206
  - - "~>"
207
207
  - !ruby/object:Gem::Version
208
208
  version: '1.15'
209
- - !ruby/object:Gem::Dependency
210
- name: mini_magick
211
- requirement: !ruby/object:Gem::Requirement
212
- requirements:
213
- - - ">="
214
- - !ruby/object:Gem::Version
215
- version: '4.12'
216
- - - "<"
217
- - !ruby/object:Gem::Version
218
- version: '6'
219
- type: :runtime
220
- prerelease: false
221
- version_requirements: !ruby/object:Gem::Requirement
222
- requirements:
223
- - - ">="
224
- - !ruby/object:Gem::Version
225
- version: '4.12'
226
- - - "<"
227
- - !ruby/object:Gem::Version
228
- version: '6'
229
209
  - !ruby/object:Gem::Dependency
230
210
  name: logger
231
211
  requirement: !ruby/object:Gem::Requirement
@@ -320,23 +300,43 @@ files:
320
300
  - _includes/components/academic-dashboard.html
321
301
  - _includes/components/api-function.html
322
302
  - _includes/components/author-bio.html
303
+ - _includes/components/author-list.html
323
304
  - _includes/components/breadcrumbs.html
324
305
  - _includes/components/citation-tools.html
306
+ - _includes/components/comments-thread.html
307
+ - _includes/components/contact-form.html
325
308
  - _includes/components/content-provenance.html
309
+ - _includes/components/correction-report.html
326
310
  - _includes/components/difficulty-badge.html
327
311
  - _includes/components/enhanced-code-block.html
328
312
  - _includes/components/enhanced-toc.html
329
313
  - _includes/components/hero.html
314
+ - _includes/components/license-link.html
315
+ - _includes/components/license-notice.html
330
316
  - _includes/components/math-fallback.html
317
+ - _includes/components/moderation-inbox.html
331
318
  - _includes/components/open-science-badges.html
332
319
  - _includes/components/package-install.html
333
320
  - _includes/components/performance-monitor.html
334
321
  - _includes/components/post-hero.html
322
+ - _includes/components/reactions.html
323
+ - _includes/components/reading-list.html
324
+ - _includes/components/reading-mode-toggle.html
325
+ - _includes/components/reading-state-bookmark.html
326
+ - _includes/components/reading-state-panel.html
327
+ - _includes/components/reading-state-resume.html
328
+ - _includes/components/reproducibility.html
335
329
  - _includes/components/responsive-image.html
330
+ - _includes/components/revision-history.html
331
+ - _includes/components/revision-notice.html
336
332
  - _includes/components/search-facets.html
333
+ - _includes/components/series-nav.html
337
334
  - _includes/components/social-share.html
335
+ - _includes/components/subscribe-form.html
336
+ - _includes/components/subscription-manage.html
338
337
  - _includes/components/visualization-card.html
339
338
  - _includes/components/viz-table-fallback.html
339
+ - _includes/components/webmentions.html
340
340
  - _includes/critical-css/default.html
341
341
  - _includes/critical-css/home.html
342
342
  - _includes/critical-css/post.html
@@ -350,10 +350,15 @@ files:
350
350
  - _includes/helpers/date-format.html
351
351
  - _includes/helpers/link-with-icon.html
352
352
  - _includes/layouts/default/article.html
353
+ - _includes/meta/dynamic-services-config.html
353
354
  - _includes/meta/language-attributes.html
354
355
  - _includes/meta/math-config.html
356
+ - _includes/meta/person-json.html
357
+ - _includes/meta/publisher.html
355
358
  - _includes/meta/schema.html
359
+ - _includes/meta/scholarly.html
356
360
  - _includes/meta/scripts-loader.html
361
+ - _includes/meta/webmention-discovery.html
357
362
  - _includes/post/related-posts.html
358
363
  - _includes/scripts.html
359
364
  - _includes/search/index-data.json
@@ -371,7 +376,10 @@ files:
371
376
  - _layouts/project.html
372
377
  - _layouts/research.html
373
378
  - _plugins/analytics_dashboard.rb
379
+ - _plugins/authors.rb
380
+ - _plugins/citation_exports.rb
374
381
  - _plugins/config_validator.rb
382
+ - _plugins/critical_css_check.rb
375
383
  - _plugins/csp_generator.rb
376
384
  - _plugins/datalog_bibliography.rb
377
385
  - _plugins/datalog_comments.rb
@@ -379,20 +387,29 @@ files:
379
387
  - _plugins/front_matter_compat.rb
380
388
  - _plugins/i18n.rb
381
389
  - _plugins/image_optimizer.rb
390
+ - _plugins/licenses.rb
382
391
  - _plugins/math_preprocessor.rb
383
392
  - _plugins/notebook_converter.rb
384
393
  - _plugins/plugin_loader.rb
385
394
  - _plugins/publications_generator.rb
386
395
  - _plugins/reading_time.rb
396
+ - _plugins/references.rb
397
+ - _plugins/reproducibility.rb
398
+ - _plugins/responsive_content.rb
399
+ - _plugins/revisions.rb
387
400
  - _plugins/rouge_highlight_filter.rb
401
+ - _plugins/scholarly.rb
388
402
  - _plugins/search_code_blocks.rb
389
403
  - _plugins/search_normalizer.rb
390
404
  - _plugins/search_pages.rb
405
+ - _plugins/series.rb
391
406
  - _plugins/sri_filter.rb
407
+ - _plugins/statements.rb
392
408
  - _plugins/toc_filter.rb
393
409
  - _plugins/warning_filter.rb
394
410
  - _sass/_academic-dashboard.scss
395
411
  - _sass/_base.scss
412
+ - _sass/_comments-thread.scss
396
413
  - _sass/_components.scss
397
414
  - _sass/_features.scss
398
415
  - _sass/_font-fallbacks.scss
@@ -401,18 +418,25 @@ files:
401
418
  - _sass/_layout.scss
402
419
  - _sass/_mathematical.scss
403
420
  - _sass/_mixins.scss
421
+ - _sass/_moderation.scss
404
422
  - _sass/_notebooks.scss
405
423
  - _sass/_open-science-badges.scss
406
424
  - _sass/_package-docs.scss
407
425
  - _sass/_post-components.scss
426
+ - _sass/_print.scss
427
+ - _sass/_reactions.scss
428
+ - _sass/_reading-state.scss
408
429
  - _sass/_search-page.scss
409
430
  - _sass/_search.scss
431
+ - _sass/_service-forms.scss
432
+ - _sass/_subscriptions.scss
410
433
  - _sass/_syntax-highlighting.scss
411
434
  - _sass/_theme.scss
412
435
  - _sass/_typography.scss
413
436
  - _sass/_utilities.scss
414
437
  - _sass/_variables.scss
415
438
  - _sass/_visualizations.scss
439
+ - _sass/_webmentions.scss
416
440
  - assets/css/main.scss
417
441
  - assets/img/favicons/android-chrome-192x192.png
418
442
  - assets/img/favicons/android-chrome-512x512.png
@@ -427,24 +451,37 @@ files:
427
451
  - assets/img/social-card.png
428
452
  - assets/js/dist/academic.js
429
453
  - assets/js/dist/analytics-dashboard.js
430
- - assets/js/dist/chunks/chunk-225H5YXE.js
454
+ - assets/js/dist/chunks/chunk-PATLC23F.js
455
+ - assets/js/dist/chunks/chunk-VZ5WKQVA.js
456
+ - assets/js/dist/chunks/chunk-WIRUK3OZ.js
457
+ - assets/js/dist/comments.js
458
+ - assets/js/dist/contact.js
431
459
  - assets/js/dist/core.js
460
+ - assets/js/dist/corrections.js
432
461
  - assets/js/dist/loader.js
433
462
  - assets/js/dist/math.js
463
+ - assets/js/dist/moderation.js
434
464
  - assets/js/dist/notebook.js
465
+ - assets/js/dist/reactions.js
466
+ - assets/js/dist/reading-state.js
435
467
  - assets/js/dist/search.js
468
+ - assets/js/dist/sources.json
469
+ - assets/js/dist/subscriptions.js
436
470
  - assets/js/dist/visualizations.js
471
+ - assets/js/dist/webmentions.js
437
472
  - assets/js/loader.js
438
473
  - bin/datalog
439
474
  - datalog-theme.gemspec
440
475
  - lib/datalog-theme.rb
441
476
  - lib/datalog/cli.rb
477
+ - lib/datalog/critical_css.rb
442
478
  - lib/datalog/plugin_system.rb
443
479
  - lib/datalog/plugin_system/dependency_resolver.rb
444
480
  - lib/datalog/plugins/citations.rb
445
481
  - lib/datalog/plugins/comments.rb
446
482
  - lib/datalog/plugins/search.rb
447
483
  - lib/datalog/plugins/slides.rb
484
+ - lib/datalog/theme/installed_files.rb
448
485
  - lib/datalog/theme/package.rb
449
486
  - lib/datalog/theme/repository_checkout.rb
450
487
  - lib/datalog/theme/version.rb
@@ -1 +0,0 @@
1
- var f=Object.defineProperty;var d=Object.getOwnPropertySymbols;var g=Object.prototype.hasOwnProperty,h=Object.prototype.propertyIsEnumerable;var e=(c,a,b)=>a in c?f(c,a,{enumerable:!0,configurable:!0,writable:!0,value:b}):c[a]=b,i=(c,a)=>{for(var b in a||(a={}))g.call(a,b)&&e(c,b,a[b]);if(d)for(var b of d(a))h.call(a,b)&&e(c,b,a[b]);return c};export{i as a};