datalog-theme 0.6.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 (180) hide show
  1. checksums.yaml +7 -0
  2. data/CHANGELOG.md +162 -0
  3. data/CITATION.cff +29 -0
  4. data/LICENSE +21 -0
  5. data/README.md +257 -0
  6. data/_data/academic.yml +217 -0
  7. data/_data/cdn-integrity.yml +51 -0
  8. data/_data/config/author.yml +121 -0
  9. data/_data/config/features.yml +262 -0
  10. data/_data/config/site.yml +42 -0
  11. data/_data/config/theme.yml +181 -0
  12. data/_data/datasets.yml +28 -0
  13. data/_data/i18n/en.yml +438 -0
  14. data/_data/i18n/es.yml +438 -0
  15. data/_data/i18n/pt.yml +438 -0
  16. data/_data/js_manifest.json +22 -0
  17. data/_data/js_meta.json +371 -0
  18. data/_data/navigation.yml +145 -0
  19. data/_data/projects.yml +41 -0
  20. data/_data/publications.yml +28 -0
  21. data/_data/social.yml +73 -0
  22. data/_data/visualizations.yml +51 -0
  23. data/_includes/analytics/dashboard.html +149 -0
  24. data/_includes/analytics.html +9 -0
  25. data/_includes/components/academic-dashboard.html +347 -0
  26. data/_includes/components/advanced-search.html +682 -0
  27. data/_includes/components/api-function.html +94 -0
  28. data/_includes/components/author-bio.html +166 -0
  29. data/_includes/components/bookmark-system.html +96 -0
  30. data/_includes/components/breadcrumbs.html +89 -0
  31. data/_includes/components/citation-tools.html +94 -0
  32. data/_includes/components/comments.html +244 -0
  33. data/_includes/components/content-provenance.html +43 -0
  34. data/_includes/components/content-recommendations.html +228 -0
  35. data/_includes/components/difficulty-badge.html +84 -0
  36. data/_includes/components/email-preferences.html +200 -0
  37. data/_includes/components/enhanced-code-block.html +212 -0
  38. data/_includes/components/enhanced-metadata.html +228 -0
  39. data/_includes/components/enhanced-toc.html +209 -0
  40. data/_includes/components/hero.html +15 -0
  41. data/_includes/components/language-switcher.html +396 -0
  42. data/_includes/components/math-fallback.html +19 -0
  43. data/_includes/components/navigation-enhancements.html +454 -0
  44. data/_includes/components/newsletter-signup.html +178 -0
  45. data/_includes/components/open-science-badges.html +16 -0
  46. data/_includes/components/package-install.html +194 -0
  47. data/_includes/components/performance-monitor.html +170 -0
  48. data/_includes/components/popular-posts.html +233 -0
  49. data/_includes/components/post-hero.html +62 -0
  50. data/_includes/components/reading-progress.html +133 -0
  51. data/_includes/components/reading-time.html +121 -0
  52. data/_includes/components/responsive-image.html +63 -0
  53. data/_includes/components/search-facets.html +307 -0
  54. data/_includes/components/series-navigation.html +124 -0
  55. data/_includes/components/social-proof.html +34 -0
  56. data/_includes/components/social-share.html +119 -0
  57. data/_includes/components/user-preferences.html +566 -0
  58. data/_includes/components/visualization-card.html +24 -0
  59. data/_includes/components/viz-table-fallback.html +19 -0
  60. data/_includes/critical-css/default.html +0 -0
  61. data/_includes/critical-css/home.html +0 -0
  62. data/_includes/critical-css/post.html +0 -0
  63. data/_includes/csp-meta.html +17 -0
  64. data/_includes/footer/nav-column.html +31 -0
  65. data/_includes/footer.html +76 -0
  66. data/_includes/head.html +337 -0
  67. data/_includes/header/navigation.html +48 -0
  68. data/_includes/header.html +70 -0
  69. data/_includes/helpers/array-to-sentence.html +21 -0
  70. data/_includes/helpers/date-format.html +16 -0
  71. data/_includes/helpers/link-with-icon.html +26 -0
  72. data/_includes/layouts/default/article.html +67 -0
  73. data/_includes/meta/language-attributes.html +25 -0
  74. data/_includes/meta/math-config.html +21 -0
  75. data/_includes/meta/schema.html +153 -0
  76. data/_includes/meta/scripts-loader.html +52 -0
  77. data/_includes/post/related-posts.html +63 -0
  78. data/_includes/scripts.html +72 -0
  79. data/_includes/skip-link.html +1 -0
  80. data/_includes/toc.html +2 -0
  81. data/_layouts/archive.html +282 -0
  82. data/_layouts/dataset.html +52 -0
  83. data/_layouts/default.html +33 -0
  84. data/_layouts/home.html +48 -0
  85. data/_layouts/notebook.html +173 -0
  86. data/_layouts/package.html +238 -0
  87. data/_layouts/page.html +16 -0
  88. data/_layouts/portfolio.html +41 -0
  89. data/_layouts/post-sidebar.html +183 -0
  90. data/_layouts/post.html +338 -0
  91. data/_layouts/project.html +252 -0
  92. data/_layouts/research.html +504 -0
  93. data/_plugins/analytics_dashboard.rb +315 -0
  94. data/_plugins/config_validator.rb +397 -0
  95. data/_plugins/csp_generator.rb +115 -0
  96. data/_plugins/datalog_bibliography.rb +19 -0
  97. data/_plugins/datalog_comments.rb +18 -0
  98. data/_plugins/datalog_slides.rb +20 -0
  99. data/_plugins/front_matter_compat.rb +109 -0
  100. data/_plugins/i18n.rb +160 -0
  101. data/_plugins/image_optimizer.rb +445 -0
  102. data/_plugins/math_preprocessor.rb +185 -0
  103. data/_plugins/notebook_converter.rb +1107 -0
  104. data/_plugins/plugin_loader.rb +185 -0
  105. data/_plugins/publications_generator.rb +234 -0
  106. data/_plugins/reading_time.rb +15 -0
  107. data/_plugins/search_normalizer.rb +74 -0
  108. data/_plugins/sri_filter.rb +18 -0
  109. data/_plugins/toc_filter.rb +68 -0
  110. data/_plugins/warning_filter.rb +3 -0
  111. data/_sass/_base.scss +142 -0
  112. data/_sass/_components.scss +2380 -0
  113. data/_sass/_header.scss +470 -0
  114. data/_sass/_interactive.scss +344 -0
  115. data/_sass/_layout.scss +1760 -0
  116. data/_sass/_mathematical.scss +368 -0
  117. data/_sass/_mixins.scss +99 -0
  118. data/_sass/_package-docs.scss +715 -0
  119. data/_sass/_phase1-enhancements.scss +721 -0
  120. data/_sass/_phase3-enhancements.scss +874 -0
  121. data/_sass/_phase4-enhancements.scss +1214 -0
  122. data/_sass/_phase5-enhancements.scss +414 -0
  123. data/_sass/_search.scss +654 -0
  124. data/_sass/_syntax-highlighting.scss +128 -0
  125. data/_sass/_theme.scss +79 -0
  126. data/_sass/_typography.scss +148 -0
  127. data/_sass/_utilities.scss +334 -0
  128. data/_sass/_variables.scss +153 -0
  129. data/_sass/_visualizations.scss +242 -0
  130. data/assets/css/main.scss +4 -0
  131. data/assets/img/20220607123041_detail.001.png +0 -0
  132. data/assets/img/favicons/android-chrome-192x192.png +0 -0
  133. data/assets/img/favicons/android-chrome-512x512.png +0 -0
  134. data/assets/img/favicons/apple-touch-icon.png +0 -0
  135. data/assets/img/favicons/favicon-16x16.png +0 -0
  136. data/assets/img/favicons/favicon-32x32.png +0 -0
  137. data/assets/img/favicons/favicon.ico +0 -0
  138. data/assets/img/favicons/site.webmanifest +21 -0
  139. data/assets/img/portfolio-placeholder.svg +20 -0
  140. data/assets/js/academic.js +262 -0
  141. data/assets/js/analytics-dashboard.js +382 -0
  142. data/assets/js/core/dark-mode.js +79 -0
  143. data/assets/js/core/github-cards.js +123 -0
  144. data/assets/js/core/language-filter.js +69 -0
  145. data/assets/js/core/navigation.js +184 -0
  146. data/assets/js/core/scroll-progress.js +45 -0
  147. data/assets/js/core/search-hotkeys.js +62 -0
  148. data/assets/js/core/skip-links.js +62 -0
  149. data/assets/js/loader.js +163 -0
  150. data/assets/js/main.js +23 -0
  151. data/assets/js/math.js +818 -0
  152. data/assets/js/notebook.js +158 -0
  153. data/assets/js/search/analytics.js +91 -0
  154. data/assets/js/search/app.js +271 -0
  155. data/assets/js/search/autocomplete.js +120 -0
  156. data/assets/js/search/engine.js +260 -0
  157. data/assets/js/search/filters.js +38 -0
  158. data/assets/js/search/render.js +217 -0
  159. data/assets/js/search/utils.js +99 -0
  160. data/assets/js/search.js +354 -0
  161. data/assets/js/visualizations.js +816 -0
  162. data/assets/publications/datalog-publications.bib +8 -0
  163. data/assets/publications/datalog-publications.ris +9 -0
  164. data/assets/publications/publications.bib +30 -0
  165. data/assets/templates/diogo-ribeiro-cv.md +31 -0
  166. data/assets/templates/diogo-ribeiro-cv.tex +32 -0
  167. data/bin/datalog +26 -0
  168. data/datalog-theme.gemspec +72 -0
  169. data/lib/datalog/cli.rb +563 -0
  170. data/lib/datalog/plugin_system/dependency_resolver.rb +223 -0
  171. data/lib/datalog/plugin_system.rb +237 -0
  172. data/lib/datalog/plugins/citations.rb +182 -0
  173. data/lib/datalog/plugins/comments.rb +183 -0
  174. data/lib/datalog/plugins/search.rb +45 -0
  175. data/lib/datalog/plugins/slides.rb +121 -0
  176. data/lib/datalog/theme/theme.rb +18 -0
  177. data/lib/datalog/theme/version.rb +7 -0
  178. data/lib/datalog/warning_filter.rb +28 -0
  179. data/lib/datalog-theme.rb +17 -0
  180. metadata +555 -0
@@ -0,0 +1,8 @@
1
+ @article{ribeiro2024forecasting,
2
+ title = {Reproducible Energy Demand Forecasting},
3
+ author = {Ribeiro, Diogo and Silva, Ana},
4
+ journal = {Journal of Sustainable Analytics},
5
+ year = {2024},
6
+ doi = {10.1234/jsa.2024.001},
7
+ url = {https://doi.org/10.1234/jsa.2024.001}
8
+ }
@@ -0,0 +1,9 @@
1
+ TY - JOUR
2
+ TI - Reproducible Energy Demand Forecasting
3
+ AU - Ribeiro, Diogo
4
+ AU - Silva, Ana
5
+ JO - Journal of Sustainable Analytics
6
+ PY - 2024
7
+ DO - 10.1234/jsa.2024.001
8
+ UR - https://doi.org/10.1234/jsa.2024.001
9
+ ER -
@@ -0,0 +1,30 @@
1
+ @article{ribeiro2024interpretable,
2
+ title={Interpretable Bayesian Forecasting for Distributed Energy Resources},
3
+ author={Ribeiro, Diogo and Martins, Sofia and Almeida, Pedro},
4
+ journal={Journal of Energy Analytics},
5
+ year={2024},
6
+ volume={12},
7
+ number={3},
8
+ pages={145--168},
9
+ doi={10.5678/jea.2024.145},
10
+ url={https://doi.org/10.5678/jea.2024.145}
11
+ }
12
+
13
+ @inproceedings{ribeiro2023causal,
14
+ title={Causal Impact Evaluation of Smart Mobility Interventions},
15
+ author={Ribeiro, Diogo and Costa, Mariana and Lopes, Ricardo},
16
+ booktitle={Proceedings of the International Conference on Urban Analytics},
17
+ year={2023},
18
+ pages={55--72},
19
+ doi={10.1109/icua.2023.00012},
20
+ url={https://doi.org/10.1109/icua.2023.00012}
21
+ }
22
+
23
+ @techreport{ribeiro2022open,
24
+ title={Open Methodology Playbook for Data Science Teams},
25
+ author={Ribeiro, Diogo},
26
+ institution={ESMAD - Instituto Politécnico do Porto},
27
+ year={2022},
28
+ number={TR-2022-05},
29
+ url={https://example.com/reports/open-methodology}
30
+ }
@@ -0,0 +1,31 @@
1
+ # Diogo Ribeiro
2
+
3
+ ESMAD - Instituto Politécnico do Porto · dfr@esmad.ipp.pt · [ORCID](https://orcid.org/0009-0001-2022-7072)
4
+
5
+ Data scientist focused on reproducible analytics, experimental design, and interactive storytelling.
6
+
7
+ ## Research Interests
8
+ - Probabilistic forecasting and decision intelligence
9
+ - Accessible visualization systems
10
+ - Experimental design and causal inference
11
+
12
+ ## Education
13
+ - **MSc Data Science**, ESMAD - Instituto Politécnico do Porto (2020)
14
+ - **BSc Multimedia Technology**, ESMAD - Instituto Politécnico do Porto (2018)
15
+
16
+ ## Publications
17
+ 1. *Energy Demand Forecasting with Hierarchical Ensembles*, Journal of Sustainable Analytics, 2023.
18
+ 2. *Designing Accessible Visualization Systems for Smart Cities*, VIS4GOOD Proceedings, 2022.
19
+
20
+ ## Teaching
21
+ - DataLog Academy — Machine Learning Foundations
22
+ - Guest Lecturer — Reproducible Analytics Seminar Series
23
+
24
+ ## Professional Experience
25
+ - Lead Data Scientist, DataLog Labs (2021–present)
26
+ - Analytics Consultant, Open Insights Collective (2018–2021)
27
+
28
+ ## Skills
29
+ - Python, R, SQL, Julia
30
+ - MLOps, experiment design, data visualization
31
+ - Communication, technical leadership
@@ -0,0 +1,32 @@
1
+ % Diogo Ribeiro - Academic CV Template
2
+ % Replace placeholder sections with your achievements.
3
+ \documentclass[11pt,a4paper]{article}
4
+ \usepackage{geometry}
5
+ \usepackage{hyperref}
6
+ \geometry{margin=1in}
7
+ \begin{document}
8
+ \begin{center}
9
+ {\LARGE Diogo Ribeiro}\\[4pt]
10
+ ESMAD - Instituto Politécnico do Porto\\
11
+ \href{mailto:dfr@esmad.ipp.pt}{dfr@esmad.ipp.pt} • \href{https://orcid.org/0009-0001-2022-7072}{ORCID 0009-0001-2022-7072}
12
+ \end{center}
13
+
14
+ \section*{Research Interests}
15
+ % List your core topics.
16
+
17
+ \section*{Education}
18
+ % Institution, degree, year.
19
+
20
+ \section*{Publications}
21
+ % Use a consistent citation style.
22
+
23
+ \section*{Teaching}
24
+ % Courses taught, responsibilities.
25
+
26
+ \section*{Service}
27
+ % Committees, organizing roles, reviewing.
28
+
29
+ \section*{Skills}
30
+ % Programming languages, tools, methods.
31
+
32
+ \end{document}
data/bin/datalog ADDED
@@ -0,0 +1,26 @@
1
+ #!/usr/bin/env ruby
2
+ # frozen_string_literal: true
3
+
4
+ APP_ROOT = File.expand_path("..", __dir__)
5
+ $LOAD_PATH.unshift(File.join(APP_ROOT, "lib")) unless $LOAD_PATH.include?(File.join(APP_ROOT, "lib"))
6
+
7
+ if File.exist?(File.join(APP_ROOT, "Gemfile"))
8
+ begin
9
+ require "bundler/setup"
10
+ rescue SystemExit
11
+ warn "Bundler exited while loading dependencies. Continue at your own risk."
12
+ rescue LoadError => e
13
+ warn e.message
14
+ warn "Bundler is not installed. Install bundler or skip dependency checks by running the CLI after setting up Ruby gems."
15
+ rescue StandardError => e
16
+ if defined?(Bundler::GemNotFound) && e.is_a?(Bundler::GemNotFound)
17
+ warn e.message
18
+ warn "Run `bundle install` to install missing gems before using the CLI."
19
+ else
20
+ warn e.message
21
+ end
22
+ end
23
+ end
24
+ require "datalog/cli"
25
+
26
+ Datalog::CLI.start(ARGV)
@@ -0,0 +1,72 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "lib/datalog/theme/version"
4
+
5
+ Gem::Specification.new do |spec|
6
+ spec.name = "datalog-theme"
7
+ spec.version = Datalog::Theme::VERSION
8
+ spec.authors = ["Diogo Ribeiro"]
9
+ spec.email = ["diogo.debastos.ribeiro@gmail.com", "dfr@esmad.ipp.pt"]
10
+
11
+ spec.summary = "Accessible data science Jekyll theme for research blogs and portfolios"
12
+ spec.description = "Modern academic Jekyll theme optimized for notebooks, visualizations, reproducibility, and technical storytelling."
13
+ spec.homepage = "https://github.com/DiogoRibeiro7/analytics-blog-jekyll"
14
+ spec.license = "MIT"
15
+
16
+ spec.metadata["homepage_uri"] = spec.homepage
17
+ spec.metadata["source_code_uri"] = spec.homepage
18
+ spec.metadata["bug_tracker_uri"] = "https://github.com/DiogoRibeiro7/analytics-blog-jekyll/issues"
19
+ spec.metadata["documentation_uri"] = "https://github.com/DiogoRibeiro7/analytics-blog-jekyll#readme"
20
+ spec.metadata["changelog_uri"] = "https://github.com/DiogoRibeiro7/analytics-blog-jekyll/releases"
21
+ spec.metadata["allowed_push_host"] = "https://rubygems.org"
22
+ spec.metadata["jekyll-theme"] = "datalog"
23
+ spec.metadata["plugin_type"] = "theme"
24
+ spec.metadata["orcid"] = "https://orcid.org/0009-0001-2022-7072"
25
+
26
+ spec.required_ruby_version = ">= 3.0"
27
+ spec.require_paths = ["lib"]
28
+ spec.bindir = "bin"
29
+ spec.executables = ["datalog"]
30
+
31
+ # Ship only theme infrastructure — not demo content (_posts, _pages, _portfolio,
32
+ # _datasets, _packages, _notebooks, tests, docs, scripts, CI configs, frontend
33
+ # tooling, Dockerfiles, etc.). Theme consumers get layouts/includes/sass/assets/
34
+ # plugins/data/lib/bin and the licensing/changelog metadata.
35
+ spec.files = Dir.chdir(__dir__) do
36
+ `git ls-files -z`.split("\x0").select do |f|
37
+ f.match?(%r{\A(?:_layouts|_includes|_sass|_plugins|_data|assets|lib|bin)/}) ||
38
+ %w[
39
+ LICENSE
40
+ README.md
41
+ CHANGELOG.md
42
+ CITATION.cff
43
+ datalog-theme.gemspec
44
+ ].include?(f)
45
+ end
46
+ end
47
+
48
+ spec.add_runtime_dependency "jekyll", "~> 4.3"
49
+ spec.add_runtime_dependency "jekyll-sass-converter", "~> 3.0"
50
+ spec.add_runtime_dependency "jekyll-feed", ">= 0.16"
51
+ spec.add_runtime_dependency "jekyll-seo-tag", ">= 2.8"
52
+ spec.add_runtime_dependency "jekyll-sitemap", ">= 1.4"
53
+ spec.add_runtime_dependency "sass-embedded", ">= 1.71"
54
+ spec.add_runtime_dependency "jekyll-paginate", ">= 1.1"
55
+ spec.add_runtime_dependency "jekyll-include-cache", ">= 0.2"
56
+ spec.add_runtime_dependency "jekyll-jupyter-notebook", "~> 0.0.6"
57
+ spec.add_runtime_dependency "jekyll-archives", ">= 2.2"
58
+ spec.add_runtime_dependency "jekyll-remote-theme", ">= 0.4"
59
+ spec.add_runtime_dependency "jekyll-redirect-from", ">= 0.16"
60
+ spec.add_runtime_dependency "kramdown-parser-gfm", ">= 1.1"
61
+ spec.add_runtime_dependency "webrick", ">= 1.8"
62
+ spec.add_runtime_dependency "fastimage", ">= 2.2"
63
+ spec.add_runtime_dependency "nokogiri", ">= 1.15"
64
+ spec.add_runtime_dependency "mini_magick", ">= 4.12"
65
+ spec.add_runtime_dependency "logger", ">= 1.6"
66
+ spec.add_runtime_dependency "thor", ">= 1.3"
67
+ spec.add_runtime_dependency "googleauth", ">= 1.9"
68
+
69
+ spec.add_development_dependency "bundler", ">= 2.4"
70
+ spec.add_development_dependency "rake", ">= 13.0"
71
+ spec.add_development_dependency "minitest", "~> 6.0"
72
+ end