datalog-theme 0.10.1 → 0.11.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 (130) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +127 -0
  3. data/CITATION.cff +2 -2
  4. data/README.md +4 -2
  5. data/_data/i18n/en.yml +55 -3
  6. data/_data/i18n/es.yml +55 -3
  7. data/_data/i18n/pt.yml +55 -3
  8. data/_includes/analytics/dashboard.html +24 -9
  9. data/_includes/components/academic-dashboard.html +168 -133
  10. data/_includes/components/author-bio.html +7 -5
  11. data/_includes/components/author-list.html +6 -5
  12. data/_includes/components/citation-tools.html +2 -1
  13. data/_includes/components/content-provenance.html +19 -1
  14. data/_includes/components/correction-report.html +15 -8
  15. data/_includes/components/hero.html +22 -15
  16. data/_includes/components/package-index.html +121 -0
  17. data/_includes/components/package-install.html +27 -50
  18. data/_includes/components/post-list.html +14 -0
  19. data/_includes/components/responsive-image.html +15 -21
  20. data/_includes/footer.html +1 -1
  21. data/_includes/head.html +70 -11
  22. data/_includes/layouts/default/article.html +76 -46
  23. data/_includes/meta/dataset-json.html +171 -0
  24. data/_includes/meta/math-config.html +15 -1
  25. data/_includes/meta/package-json.html +69 -0
  26. data/_includes/meta/person-json.html +36 -13
  27. data/_includes/meta/publisher.html +15 -0
  28. data/_includes/meta/schema.html +108 -23
  29. data/_includes/meta/scholarly.html +10 -5
  30. data/_includes/post/related-posts.html +17 -43
  31. data/_includes/scripts.html +2 -2
  32. data/_includes/search/index-data.json +10 -1
  33. data/_includes/search/page.html +11 -6
  34. data/_layouts/archive.html +67 -0
  35. data/_layouts/dataset.html +2 -1
  36. data/_layouts/default.html +13 -11
  37. data/_layouts/docs.html +53 -0
  38. data/_layouts/home.html +30 -1
  39. data/_layouts/notebook.html +5 -1
  40. data/_layouts/package.html +38 -21
  41. data/_layouts/portfolio.html +1 -0
  42. data/_layouts/post.html +21 -62
  43. data/_layouts/project.html +2 -1
  44. data/_layouts/research.html +14 -2
  45. data/_plugins/analytics_dashboard.rb +4 -1
  46. data/_plugins/archive.rb +114 -0
  47. data/_plugins/authors.rb +50 -1
  48. data/_plugins/citation_exports.rb +12 -1
  49. data/_plugins/config_validator.rb +77 -2
  50. data/_plugins/correction_fallback.rb +110 -0
  51. data/_plugins/image_optimizer.rb +129 -22
  52. data/_plugins/math_preprocessor.rb +7 -48
  53. data/_plugins/notebook_converter.rb +44 -5
  54. data/_plugins/packages.rb +84 -0
  55. data/_plugins/page_dates.rb +37 -0
  56. data/_plugins/references.rb +16 -2
  57. data/_plugins/related_posts.rb +149 -0
  58. data/_plugins/search_sections.rb +110 -0
  59. data/_plugins/site_identity.rb +42 -0
  60. data/_plugins/social_cards.rb +17 -0
  61. data/_sass/_academic-dashboard.scss +18 -30
  62. data/_sass/_base.scss +2 -0
  63. data/_sass/_components.scss +21 -23
  64. data/_sass/_docs.scss +143 -0
  65. data/_sass/_features.scss +6 -0
  66. data/_sass/_layout.scss +65 -6
  67. data/_sass/_mathematical.scss +61 -19
  68. data/_sass/_notebooks.scss +1 -32
  69. data/_sass/_package-docs.scss +6 -9
  70. data/_sass/_post-components.scss +23 -23
  71. data/_sass/_print.scss +1 -1
  72. data/_sass/_search-page.scss +75 -0
  73. data/_sass/_search.scss +17 -26
  74. data/_sass/_syntax-highlighting.scss +23 -1
  75. data/_sass/_theme.scss +1 -0
  76. data/_sass/_utilities.scss +87 -40
  77. data/_sass/_variables.scss +31 -29
  78. data/assets/css/main.scss +2 -1
  79. data/assets/js/dist/academic.js +1 -1
  80. data/assets/js/dist/analytics-dashboard.js +1 -1
  81. data/assets/js/dist/chunks/chunk-TNVD6UAM.js +1 -0
  82. data/assets/js/dist/comments.js +1 -1
  83. data/assets/js/dist/contact.js +1 -1
  84. data/assets/js/dist/core.js +1 -1
  85. data/assets/js/dist/corrections.js +5 -1
  86. data/assets/js/dist/loader.js +1 -1
  87. data/assets/js/dist/math.js +2 -1
  88. data/assets/js/dist/moderation.js +1 -1
  89. data/assets/js/dist/reactions.js +1 -1
  90. data/assets/js/dist/search.js +1 -1
  91. data/assets/js/dist/sources.json +20 -16
  92. data/assets/js/dist/subscriptions.js +1 -1
  93. data/assets/js/loader.js +6 -2
  94. data/lib/datalog/audit/checks.rb +269 -0
  95. data/lib/datalog/audit/known_keys.rb +61 -0
  96. data/lib/datalog/audit/site_reader.rb +118 -0
  97. data/lib/datalog/audit/source_file.rb +85 -0
  98. data/lib/datalog/audit.rb +145 -0
  99. data/lib/datalog/citations/bibtex.rb +200 -0
  100. data/lib/datalog/citations/entry.rb +333 -0
  101. data/lib/datalog/citations/markup.rb +79 -0
  102. data/lib/datalog/cli.rb +164 -89
  103. data/lib/datalog/critical_css.rb +126 -21
  104. data/lib/datalog/latex_speech/words.json +88 -0
  105. data/lib/datalog/latex_speech.rb +355 -0
  106. data/lib/datalog/packages/command.rb +51 -0
  107. data/lib/datalog/packages/refresh.rb +187 -0
  108. data/lib/datalog/packages.rb +177 -0
  109. data/lib/datalog/plugin_system.rb +5 -0
  110. data/lib/datalog/plugins/citations.rb +325 -109
  111. data/lib/datalog/site_config.rb +26 -0
  112. data/lib/datalog/social_cards/font.rb +286 -0
  113. data/lib/datalog/social_cards/fonts/IBMPlexSans-Regular.ttf +0 -0
  114. data/lib/datalog/social_cards/fonts/IBMPlexSerif-SemiBold.ttf +0 -0
  115. data/lib/datalog/social_cards/fonts/OFL.txt +92 -0
  116. data/lib/datalog/social_cards/geometry.rb +51 -0
  117. data/lib/datalog/social_cards/outline.rb +54 -0
  118. data/lib/datalog/social_cards/plain_text.rb +258 -0
  119. data/lib/datalog/social_cards/template.rb +322 -0
  120. data/lib/datalog/social_cards/template.svg +17 -0
  121. data/lib/datalog/social_cards/typesetter.rb +178 -0
  122. data/lib/datalog/social_cards.rb +369 -0
  123. data/lib/datalog/theme/updater.rb +307 -0
  124. data/lib/datalog/theme/version.rb +1 -1
  125. metadata +44 -7
  126. data/_includes/components/enhanced-code-block.html +0 -212
  127. data/_includes/components/performance-monitor.html +0 -170
  128. data/_includes/components/viz-table-fallback.html +0 -19
  129. data/_plugins/datalog_bibliography.rb +0 -21
  130. data/assets/js/dist/chunks/chunk-WIRUK3OZ.js +0 -1
@@ -0,0 +1,307 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "bundler"
4
+ require "fileutils"
5
+ require "json"
6
+ require "open3"
7
+ require "pathname"
8
+ require "shellwords"
9
+ require "tmpdir"
10
+ require "yaml"
11
+ require_relative "../site_config"
12
+
13
+ module Datalog
14
+ module Theme
15
+ # Runs an upgrade from either a published gem or a path-installed checkout.
16
+ # A checkout is moved only after its worktree and target tag are checked.
17
+ class Updater
18
+ class Error < StandardError; end
19
+
20
+ COPY_FILES = %w[assets/js/loader.js _data/js_manifest.json _data/cdn-integrity.yml].freeze
21
+ CONFIG_DIRS = %w[layouts_dir includes_dir plugins_dir].freeze
22
+
23
+ def initialize(root:, options:, report:, execute:, available:)
24
+ @root = File.expand_path(root)
25
+ @options = options
26
+ @report = report
27
+ @execute = execute
28
+ @available = available
29
+ end
30
+
31
+ def run
32
+ theme = checkout_path
33
+ return update_gem unless theme
34
+
35
+ update_checkout(theme)
36
+ end
37
+
38
+ private
39
+
40
+ def report(message)
41
+ @report.call(message)
42
+ end
43
+
44
+ def checkout_path
45
+ gemfile = File.join(@root, "Gemfile")
46
+ return unless File.file?(gemfile)
47
+
48
+ definition = Bundler::Dsl.evaluate(gemfile, File.join(@root, "Gemfile.lock"), {})
49
+ dependency = definition.dependencies.find { |item| item.name == "datalog-theme" }
50
+ source = dependency&.source
51
+ return unless source.is_a?(Bundler::Source::Path)
52
+
53
+ path = File.expand_path(source.path.to_s, @root)
54
+ return path if File.exist?(File.join(path, ".git")) && git("rev-parse", "--show-toplevel", dir: path) == path
55
+
56
+ nil
57
+ rescue Bundler::BundlerError => e
58
+ raise Error, "Cannot read the site's Gemfile: #{e.message}"
59
+ end
60
+
61
+ def update_checkout(theme)
62
+ current = current_tag(theme)
63
+ raise Error, "Theme checkout is not at a release tag; check out one before updating" unless current
64
+ unless git("status", "--porcelain", dir: theme).empty?
65
+ raise Error, "Theme checkout has local changes; commit or discard them first"
66
+ end
67
+
68
+ tags = available_tags(theme)
69
+ target = choose_tag(tags, current)
70
+ newer = tags.select { |tag| version(tag) > version(current) }.sort_by { |tag| version(tag) }
71
+ report("Releases after #{current}: #{newer.join(', ')}") unless newer.empty?
72
+ if target == current && !submodule_needs_stage?(theme)
73
+ report("DataLog theme is already at #{current}.")
74
+ return check_current(theme)
75
+ end
76
+
77
+ report("Update #{theme} from #{current} to #{target}.")
78
+ if @options[:dry_run]
79
+ report("Dry run: fetch tags, check out #{target}, build bundles, install gems, " \
80
+ "check the site and stage the submodule.")
81
+ return 0
82
+ end
83
+
84
+ raise Error, "npm is required to build a path-installed theme" unless @available.call("npm")
85
+
86
+ git("fetch", "--tags", "origin", dir: theme) if remote?(theme)
87
+ git("checkout", "--detach", target, dir: theme)
88
+ run!("npm ci", theme)
89
+ run!("npm run build:js", theme)
90
+ run!("bundle install", @root)
91
+ changelog(File.join(theme, "CHANGELOG.md"), current, target)
92
+ check_site!(theme)
93
+ build_site if @options[:build]
94
+ stage_submodule(theme, target)
95
+ report("Theme updated to #{target}. Review the changes before committing; nothing was committed or pushed.")
96
+ 2
97
+ end
98
+
99
+ # Already at the release asked for, the checkout still has to be one a
100
+ # site can build from: its bundles are rebuilt when they were never built
101
+ # or were built from other sources, the site gets the same checks as after
102
+ # an update, and --build builds it. Nothing changes the release, so the
103
+ # answer stays 0, "already current".
104
+ def check_current(theme)
105
+ require_relative "installed_files"
106
+ stale = InstalledFiles.stale_bundle_reasons(theme)
107
+ if @options[:dry_run]
108
+ report("Dry run: rebuild the theme bundles (#{stale.first}).") unless stale.empty?
109
+ report("Dry run: check the site#{' and build it' if @options[:build]}.")
110
+ return 0
111
+ end
112
+
113
+ unless stale.empty?
114
+ raise Error, "npm is required to build a path-installed theme" unless @available.call("npm")
115
+
116
+ report("The theme's bundles need building: #{stale.first}.")
117
+ run!("npm ci", theme)
118
+ run!("npm run build:js", theme)
119
+ end
120
+ check_site!(theme)
121
+ build_site if @options[:build]
122
+ 0
123
+ end
124
+
125
+ def check_site!(theme)
126
+ issues = preflight(theme)
127
+ return if issues.empty?
128
+
129
+ issues.each { |issue| report("Check: #{issue}") }
130
+ raise Error, "Resolve the #{issues.size} site check(s) above before building"
131
+ end
132
+
133
+ def update_gem
134
+ if @options[:to] && @options[:to] != "latest"
135
+ raise Error, "--to with a version requires a path-installed Git checkout"
136
+ end
137
+
138
+ gemfile = File.join(@root, "Gemfile")
139
+ before = locked_version
140
+ if File.file?(gemfile)
141
+ run!("bundle update datalog-theme", @root, "Bundler could not update datalog-theme.")
142
+ else
143
+ report("No Gemfile detected—skipping Bundler update")
144
+ end
145
+ update_site_npm
146
+ return 0 if @options[:dry_run]
147
+
148
+ after = locked_version
149
+ changelog(gem_changelog, "v#{before}", "v#{after}") if before && after && before != after
150
+ build_site if @options[:build]
151
+ report("Theme dependencies are up to date!")
152
+ before && after && before != after ? 2 : 0
153
+ end
154
+
155
+ def update_site_npm
156
+ return unless File.file?(File.join(@root, "package.json"))
157
+
158
+ if @available.call("npm")
159
+ run!("npm install", @root, "npm could not install the site's packages.")
160
+ else
161
+ report("Node.js tooling not available—skipping npm install")
162
+ end
163
+ end
164
+
165
+ def run!(command, dir, error = "#{command} failed")
166
+ report(@options[:dry_run] ? "Would run #{command} in #{dir}" : "Running #{command} in #{dir}")
167
+ return if @options[:dry_run]
168
+
169
+ env = command.start_with?("bundle ") ? { "BUNDLE_GEMFILE" => File.join(@root, "Gemfile") } : {}
170
+ return if @execute.call(env, command, dir)
171
+
172
+ raise Error, error
173
+ end
174
+
175
+ def build_site
176
+ Dir.mktmpdir("datalog-update-build") do |destination|
177
+ command = "bundle exec jekyll build --disable-disk-cache --destination #{Shellwords.escape(destination)}"
178
+ run!(command, @root, "The site build failed after updating the theme")
179
+ end
180
+ end
181
+
182
+ def available_tags(theme)
183
+ local = git("tag", "--list", dir: theme).lines.map(&:strip)
184
+ remote = if remote?(theme)
185
+ git("ls-remote", "--refs", "--tags", "origin", dir: theme).lines.map do |line|
186
+ line.split("refs/tags/").last&.strip
187
+ end
188
+ else
189
+ []
190
+ end
191
+ (local + remote).compact.uniq.select { |tag| version(tag) }
192
+ end
193
+
194
+ def choose_tag(tags, current)
195
+ requested = @options[:to] || "latest"
196
+ stable = tags.reject { |tag| version(tag).prerelease? }
197
+ target = requested == "latest" ? stable.max_by { |tag| version(tag) } : requested
198
+ raise Error, "Release tag #{requested.inspect} was not found" unless target && tags.include?(target)
199
+ if version(target) < version(current)
200
+ raise Error, "#{target} is older than #{current}; an update cannot downgrade the theme"
201
+ end
202
+
203
+ target
204
+ end
205
+
206
+ def current_tag(theme)
207
+ tags = git("tag", "--points-at", "HEAD", dir: theme).lines.map(&:strip)
208
+ tags.select { |tag| version(tag) }.max_by { |tag| version(tag) }
209
+ end
210
+
211
+ def version(tag)
212
+ value = tag.to_s.delete_prefix("v")
213
+ Gem::Version.new(value) if tag.to_s.start_with?("v") && Gem::Version.correct?(value)
214
+ end
215
+
216
+ def remote?(theme)
217
+ !git("remote", "get-url", "origin", dir: theme, optional: true).nil?
218
+ end
219
+
220
+ def git(*args, dir:, optional: false)
221
+ output, error, status = Open3.capture3("git", "-C", dir, *args)
222
+ return output.strip if status.success?
223
+ return if optional
224
+
225
+ raise Error, "git #{args.join(' ')} failed in #{dir}: #{error.strip}"
226
+ end
227
+
228
+ def stage_submodule(theme, target)
229
+ relative = Pathname.new(theme).relative_path_from(Pathname.new(@root)).to_s
230
+ tracked = git("ls-files", "--stage", "--", relative, dir: @root, optional: true).to_s
231
+ if tracked.start_with?("160000 ")
232
+ git("add", "--", relative, dir: @root)
233
+ report("Staged submodule #{relative}. Commit it when ready: " \
234
+ "git commit -m \"Update the DataLog theme to #{target}\"")
235
+ else
236
+ report("Theme checkout is not a tracked submodule; stage its pointer in your site repository yourself.")
237
+ end
238
+ end
239
+
240
+ def submodule_needs_stage?(theme)
241
+ relative = Pathname.new(theme).relative_path_from(Pathname.new(@root)).to_s
242
+ tracked = git("ls-files", "--stage", "--", relative, dir: @root, optional: true).to_s
243
+ tracked.start_with?("160000 ") && tracked.split[1] != git("rev-parse", "HEAD", dir: theme)
244
+ end
245
+
246
+ def locked_version
247
+ file = File.join(@root, "Gemfile.lock")
248
+ return unless File.file?(file)
249
+
250
+ Bundler::LockfileParser.new(Bundler.read_file(file)).specs.find { |spec| spec.name == "datalog-theme" }&.version
251
+ end
252
+
253
+ def gem_changelog
254
+ output, = Open3.capture2({ "BUNDLE_GEMFILE" => File.join(@root, "Gemfile") },
255
+ "bundle", "info", "--path", "datalog-theme", chdir: @root)
256
+ File.join(output.strip, "CHANGELOG.md")
257
+ rescue Errno::ENOENT
258
+ nil
259
+ end
260
+
261
+ def changelog(file, from, to)
262
+ return unless file && File.file?(file)
263
+
264
+ File.read(file).scan(/^## \[([^\]]+)\][^\n]*\n(.*?)(?=^## \[|\z)/m).reverse_each do |name, body|
265
+ next unless version("v#{name}") && version("v#{name}") > version(from) && version("v#{name}") <= version(to)
266
+
267
+ body.scan(/^### (Removed|Changed|Deprecated)\s*\n(.*?)(?=^### |\z)/m) do |heading, contents|
268
+ report("#{name} — #{heading}\n#{contents.strip}")
269
+ end
270
+ end
271
+ end
272
+
273
+ def preflight(theme)
274
+ require_relative "installed_files"
275
+ config = SiteConfig.load(File.join(@root, "_config.yml"))
276
+ issues = InstalledFiles.stale_bundle_reasons(theme)
277
+ issues.concat(stale_copies(theme))
278
+ CONFIG_DIRS.each do |key|
279
+ issues << "#{key} points into the theme checkout" if points_into_theme?(config[key], theme)
280
+ end
281
+ sass = config["sass"].is_a?(Hash) ? config["sass"]["sass_dir"] : nil
282
+ issues << "sass.sass_dir points into the theme checkout" if points_into_theme?(sass, theme)
283
+ issues
284
+ end
285
+
286
+ def points_into_theme?(value, theme)
287
+ return false unless value.is_a?(String) && !value.empty?
288
+
289
+ path = File.expand_path(value, @root)
290
+ path == theme || path.start_with?("#{theme}#{File::SEPARATOR}")
291
+ end
292
+
293
+ def stale_copies(theme)
294
+ files = COPY_FILES + Dir.glob("assets/js/dist/**/*", base: theme).select do |path|
295
+ File.file?(File.join(theme, path))
296
+ end
297
+ files.filter_map do |relative|
298
+ own = File.join(@root, relative)
299
+ source = File.join(theme, relative)
300
+ next unless File.file?(source) && File.file?(own)
301
+
302
+ "#{relative} differs from the theme's file" unless FileUtils.compare_file(own, source)
303
+ end
304
+ end
305
+ end
306
+ end
307
+ end
@@ -2,7 +2,7 @@
2
2
 
3
3
  module Datalog
4
4
  module Theme
5
- VERSION = "0.10.1" unless const_defined?(:VERSION)
5
+ VERSION = "0.11.0" unless const_defined?(:VERSION)
6
6
  # The Ruby the gem installs on, for the gemspec and `datalog check`. The
7
7
  # release workflow rewrites every quoted version assigned to a name ending
8
8
  # in VERSION in this file, so this name must not end that way.
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.10.1
4
+ version: 0.11.0
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-22 00:00:00.000000000 Z
11
+ date: 2026-10-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: jekyll
@@ -308,7 +308,6 @@ files:
308
308
  - _includes/components/content-provenance.html
309
309
  - _includes/components/correction-report.html
310
310
  - _includes/components/difficulty-badge.html
311
- - _includes/components/enhanced-code-block.html
312
311
  - _includes/components/enhanced-toc.html
313
312
  - _includes/components/hero.html
314
313
  - _includes/components/license-link.html
@@ -316,9 +315,10 @@ files:
316
315
  - _includes/components/math-fallback.html
317
316
  - _includes/components/moderation-inbox.html
318
317
  - _includes/components/open-science-badges.html
318
+ - _includes/components/package-index.html
319
319
  - _includes/components/package-install.html
320
- - _includes/components/performance-monitor.html
321
320
  - _includes/components/post-hero.html
321
+ - _includes/components/post-list.html
322
322
  - _includes/components/reactions.html
323
323
  - _includes/components/reading-list.html
324
324
  - _includes/components/reading-mode-toggle.html
@@ -334,7 +334,6 @@ files:
334
334
  - _includes/components/subscribe-form.html
335
335
  - _includes/components/subscription-manage.html
336
336
  - _includes/components/visualization-card.html
337
- - _includes/components/viz-table-fallback.html
338
337
  - _includes/components/webmentions.html
339
338
  - _includes/critical-css/default.html
340
339
  - _includes/critical-css/home.html
@@ -349,9 +348,11 @@ files:
349
348
  - _includes/helpers/date-format.html
350
349
  - _includes/helpers/link-with-icon.html
351
350
  - _includes/layouts/default/article.html
351
+ - _includes/meta/dataset-json.html
352
352
  - _includes/meta/dynamic-services-config.html
353
353
  - _includes/meta/language-attributes.html
354
354
  - _includes/meta/math-config.html
355
+ - _includes/meta/package-json.html
355
356
  - _includes/meta/person-json.html
356
357
  - _includes/meta/publisher.html
357
358
  - _includes/meta/schema.html
@@ -364,8 +365,10 @@ files:
364
365
  - _includes/search/page.html
365
366
  - _includes/skip-link.html
366
367
  - _includes/toc.html
368
+ - _layouts/archive.html
367
369
  - _layouts/dataset.html
368
370
  - _layouts/default.html
371
+ - _layouts/docs.html
369
372
  - _layouts/home.html
370
373
  - _layouts/notebook.html
371
374
  - _layouts/package.html
@@ -375,12 +378,13 @@ files:
375
378
  - _layouts/project.html
376
379
  - _layouts/research.html
377
380
  - _plugins/analytics_dashboard.rb
381
+ - _plugins/archive.rb
378
382
  - _plugins/authors.rb
379
383
  - _plugins/citation_exports.rb
380
384
  - _plugins/config_validator.rb
385
+ - _plugins/correction_fallback.rb
381
386
  - _plugins/critical_css_check.rb
382
387
  - _plugins/csp_generator.rb
383
- - _plugins/datalog_bibliography.rb
384
388
  - _plugins/datalog_comments.rb
385
389
  - _plugins/datalog_slides.rb
386
390
  - _plugins/front_matter_compat.rb
@@ -390,10 +394,13 @@ files:
390
394
  - _plugins/licenses.rb
391
395
  - _plugins/math_preprocessor.rb
392
396
  - _plugins/notebook_converter.rb
397
+ - _plugins/packages.rb
398
+ - _plugins/page_dates.rb
393
399
  - _plugins/plugin_loader.rb
394
400
  - _plugins/publications_generator.rb
395
401
  - _plugins/reading_time.rb
396
402
  - _plugins/references.rb
403
+ - _plugins/related_posts.rb
397
404
  - _plugins/reproducibility.rb
398
405
  - _plugins/responsive_content.rb
399
406
  - _plugins/revisions.rb
@@ -402,7 +409,10 @@ files:
402
409
  - _plugins/search_code_blocks.rb
403
410
  - _plugins/search_normalizer.rb
404
411
  - _plugins/search_pages.rb
412
+ - _plugins/search_sections.rb
405
413
  - _plugins/series.rb
414
+ - _plugins/site_identity.rb
415
+ - _plugins/social_cards.rb
406
416
  - _plugins/sri_filter.rb
407
417
  - _plugins/statements.rb
408
418
  - _plugins/toc_filter.rb
@@ -411,6 +421,7 @@ files:
411
421
  - _sass/_base.scss
412
422
  - _sass/_comments-thread.scss
413
423
  - _sass/_components.scss
424
+ - _sass/_docs.scss
414
425
  - _sass/_features.scss
415
426
  - _sass/_font-fallbacks.scss
416
427
  - _sass/_header.scss
@@ -452,8 +463,8 @@ files:
452
463
  - assets/js/dist/academic.js
453
464
  - assets/js/dist/analytics-dashboard.js
454
465
  - assets/js/dist/chunks/chunk-PATLC23F.js
466
+ - assets/js/dist/chunks/chunk-TNVD6UAM.js
455
467
  - assets/js/dist/chunks/chunk-VZ5WKQVA.js
456
- - assets/js/dist/chunks/chunk-WIRUK3OZ.js
457
468
  - assets/js/dist/comments.js
458
469
  - assets/js/dist/contact.js
459
470
  - assets/js/dist/core.js
@@ -473,18 +484,44 @@ files:
473
484
  - bin/datalog
474
485
  - datalog-theme.gemspec
475
486
  - lib/datalog-theme.rb
487
+ - lib/datalog/audit.rb
488
+ - lib/datalog/audit/checks.rb
489
+ - lib/datalog/audit/known_keys.rb
490
+ - lib/datalog/audit/site_reader.rb
491
+ - lib/datalog/audit/source_file.rb
492
+ - lib/datalog/citations/bibtex.rb
493
+ - lib/datalog/citations/entry.rb
494
+ - lib/datalog/citations/markup.rb
476
495
  - lib/datalog/cli.rb
477
496
  - lib/datalog/critical_css.rb
497
+ - lib/datalog/latex_speech.rb
498
+ - lib/datalog/latex_speech/words.json
499
+ - lib/datalog/packages.rb
500
+ - lib/datalog/packages/command.rb
501
+ - lib/datalog/packages/refresh.rb
478
502
  - lib/datalog/plugin_system.rb
479
503
  - lib/datalog/plugin_system/dependency_resolver.rb
480
504
  - lib/datalog/plugins/citations.rb
481
505
  - lib/datalog/plugins/comments.rb
482
506
  - lib/datalog/plugins/search.rb
483
507
  - lib/datalog/plugins/slides.rb
508
+ - lib/datalog/site_config.rb
484
509
  - lib/datalog/slug.rb
510
+ - lib/datalog/social_cards.rb
511
+ - lib/datalog/social_cards/font.rb
512
+ - lib/datalog/social_cards/fonts/IBMPlexSans-Regular.ttf
513
+ - lib/datalog/social_cards/fonts/IBMPlexSerif-SemiBold.ttf
514
+ - lib/datalog/social_cards/fonts/OFL.txt
515
+ - lib/datalog/social_cards/geometry.rb
516
+ - lib/datalog/social_cards/outline.rb
517
+ - lib/datalog/social_cards/plain_text.rb
518
+ - lib/datalog/social_cards/template.rb
519
+ - lib/datalog/social_cards/template.svg
520
+ - lib/datalog/social_cards/typesetter.rb
485
521
  - lib/datalog/theme/installed_files.rb
486
522
  - lib/datalog/theme/package.rb
487
523
  - lib/datalog/theme/repository_checkout.rb
524
+ - lib/datalog/theme/updater.rb
488
525
  - lib/datalog/theme/version.rb
489
526
  - lib/datalog/warning_filter.rb
490
527
  homepage: https://github.com/DiogoRibeiro7/analytics-blog-jekyll