unaltraweb 0.3.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 (444) hide show
  1. checksums.yaml +7 -0
  2. data/LICENSE +20 -0
  3. data/Makefile +412 -0
  4. data/README.md +226 -0
  5. data/_config.yml +842 -0
  6. data/_data/i18n/ca.yml +278 -0
  7. data/_data/i18n/en.yml +278 -0
  8. data/_data/i18n/es.yml +278 -0
  9. data/_includes/audio.liquid +30 -0
  10. data/_includes/bib_search.liquid +5 -0
  11. data/_includes/blog-list.liquid +66 -0
  12. data/_includes/book-citation.liquid +33 -0
  13. data/_includes/citation.liquid +26 -0
  14. data/_includes/custom_head.liquid +3 -0
  15. data/_includes/custom_scripts.liquid +5 -0
  16. data/_includes/cv/list.liquid +5 -0
  17. data/_includes/cv/list_groups.liquid +51 -0
  18. data/_includes/cv/map.liquid +29 -0
  19. data/_includes/cv/nested_list.liquid +16 -0
  20. data/_includes/cv/time_table.liquid +118 -0
  21. data/_includes/cv-download-card.liquid +26 -0
  22. data/_includes/developer-mode-switcher.liquid +24 -0
  23. data/_includes/disqus.liquid +13 -0
  24. data/_includes/distill_scripts.liquid +298 -0
  25. data/_includes/documentation-download-detail.liquid +76 -0
  26. data/_includes/documentation-downloads.liquid +71 -0
  27. data/_includes/documentation-profile-attributes.liquid +4 -0
  28. data/_includes/documentation-section-toc.liquid +9 -0
  29. data/_includes/documentation-sidebar.liquid +112 -0
  30. data/_includes/figure.liquid +87 -0
  31. data/_includes/footer.liquid +66 -0
  32. data/_includes/giscus.liquid +25 -0
  33. data/_includes/head.liquid +220 -0
  34. data/_includes/header.liquid +544 -0
  35. data/_includes/latest_posts.liquid +61 -0
  36. data/_includes/localized-date.liquid +5 -0
  37. data/_includes/manual-bibliography.liquid +2 -0
  38. data/_includes/manual-featured-readings.liquid +12 -0
  39. data/_includes/manual-other-readings.liquid +12 -0
  40. data/_includes/manual-page-toc.liquid +11 -0
  41. data/_includes/manual-sidebar.liquid +58 -0
  42. data/_includes/manual-teachers.liquid +74 -0
  43. data/_includes/metadata.liquid +278 -0
  44. data/_includes/news.liquid +48 -0
  45. data/_includes/newsletter.liquid +68 -0
  46. data/_includes/page-hero.liquid +96 -0
  47. data/_includes/page-link.liquid +8 -0
  48. data/_includes/pagination.liquid +22 -0
  49. data/_includes/post-reading-time.liquid +29 -0
  50. data/_includes/previous-next.liquid +37 -0
  51. data/_includes/profile-card.liquid +49 -0
  52. data/_includes/profile-feature-matrix.liquid +75 -0
  53. data/_includes/profile-highlights.liquid +122 -0
  54. data/_includes/project-grid.liquid +26 -0
  55. data/_includes/project-resource-link.liquid +45 -0
  56. data/_includes/project-resources.liquid +21 -0
  57. data/_includes/projects.liquid +38 -0
  58. data/_includes/projects_horizontal.liquid +37 -0
  59. data/_includes/publications-metrics-summary.liquid +69 -0
  60. data/_includes/publications-summary.liquid +127 -0
  61. data/_includes/reading-biblio-controls.liquid +65 -0
  62. data/_includes/reading-cover-card.liquid +93 -0
  63. data/_includes/reading-rating.liquid +11 -0
  64. data/_includes/recommended-readings.liquid +30 -0
  65. data/_includes/related_posts.liquid +39 -0
  66. data/_includes/repository/repo.liquid +48 -0
  67. data/_includes/repository/repo_trophies.liquid +44 -0
  68. data/_includes/repository/repo_user.liquid +35 -0
  69. data/_includes/resume/awards.liquid +19 -0
  70. data/_includes/resume/basics.liquid +28 -0
  71. data/_includes/resume/certificates.liquid +35 -0
  72. data/_includes/resume/education.liquid +54 -0
  73. data/_includes/resume/interests.liquid +34 -0
  74. data/_includes/resume/languages.liquid +31 -0
  75. data/_includes/resume/projects.liquid +32 -0
  76. data/_includes/resume/publications.liquid +28 -0
  77. data/_includes/resume/references.liquid +31 -0
  78. data/_includes/resume/skills.liquid +33 -0
  79. data/_includes/resume/volunteer.liquid +52 -0
  80. data/_includes/resume/work.liquid +52 -0
  81. data/_includes/scripts.liquid +364 -0
  82. data/_includes/search-data.js.liquid +341 -0
  83. data/_includes/selected_papers.liquid +3 -0
  84. data/_includes/t.liquid +31 -0
  85. data/_includes/team-grid.liquid +172 -0
  86. data/_includes/video.liquid +97 -0
  87. data/_layouts/about.liquid +93 -0
  88. data/_layouts/archive.liquid +45 -0
  89. data/_layouts/bib.liquid +677 -0
  90. data/_layouts/book-review.liquid +225 -0
  91. data/_layouts/book-shelf.liquid +66 -0
  92. data/_layouts/cv.liquid +127 -0
  93. data/_layouts/default.liquid +70 -0
  94. data/_layouts/distill.liquid +132 -0
  95. data/_layouts/documentation-download-detail.liquid +5 -0
  96. data/_layouts/documentation-home.liquid +100 -0
  97. data/_layouts/documentation-page.liquid +45 -0
  98. data/_layouts/manual-bib.liquid +73 -0
  99. data/_layouts/manual-chapter.liquid +99 -0
  100. data/_layouts/manual-featured-bib.liquid +100 -0
  101. data/_layouts/manual-home.liquid +120 -0
  102. data/_layouts/none.liquid +1 -0
  103. data/_layouts/outputs.liquid +29 -0
  104. data/_layouts/page.liquid +52 -0
  105. data/_layouts/post.liquid +95 -0
  106. data/_layouts/profile.liquid +36 -0
  107. data/_layouts/profiles.liquid +36 -0
  108. data/_layouts/project.liquid +7 -0
  109. data/_layouts/repositories.liquid +58 -0
  110. data/_layouts/theses.liquid +126 -0
  111. data/_plugins/bibliography_profiles.rb +164 -0
  112. data/_plugins/callouts.rb +104 -0
  113. data/_plugins/code_blocks.rb +277 -0
  114. data/_plugins/computation_figure_images.rb +266 -0
  115. data/_plugins/computation_sources.rb +42 -0
  116. data/_plugins/content_search_index.rb +210 -0
  117. data/_plugins/details.rb +23 -0
  118. data/_plugins/external-posts.rb +124 -0
  119. data/_plugins/figure_captions.rb +800 -0
  120. data/_plugins/file-exists.rb +22 -0
  121. data/_plugins/google-scholar-citations.rb +86 -0
  122. data/_plugins/hide-custom-bibtex.rb +18 -0
  123. data/_plugins/inspirehep-citations.rb +57 -0
  124. data/_plugins/localized_visual_sources.rb +145 -0
  125. data/_plugins/manual_release_metadata.rb +47 -0
  126. data/_plugins/mermaid_mmd_images.rb +233 -0
  127. data/_plugins/profile-pages.rb +28 -0
  128. data/_plugins/remove-accents.rb +32 -0
  129. data/_plugins/reproducible_build_time.rb +55 -0
  130. data/_plugins/search-data.rb +83 -0
  131. data/_plugins/theme-cache-bust.rb +56 -0
  132. data/_plugins/vega_visual_images.rb +290 -0
  133. data/_plugins/web_capture_images.rb +154 -0
  134. data/_sass/_base.scss +2133 -0
  135. data/_sass/_blog.scss +67 -0
  136. data/_sass/_callouts.scss +100 -0
  137. data/_sass/_custom.scss +437 -0
  138. data/_sass/_cv.scss +274 -0
  139. data/_sass/_developer.scss +97 -0
  140. data/_sass/_distill.scss +185 -0
  141. data/_sass/_documentation.scss +2220 -0
  142. data/_sass/_layout.scss +218 -0
  143. data/_sass/_manual.scss +2691 -0
  144. data/_sass/_profile.scss +323 -0
  145. data/_sass/_projects.scss +163 -0
  146. data/_sass/_reading.scss +465 -0
  147. data/_sass/_site-custom.scss +3 -0
  148. data/_sass/_tabs.scss +48 -0
  149. data/_sass/_team.scss +230 -0
  150. data/_sass/_themes.scss +254 -0
  151. data/_sass/_typograms.scss +132 -0
  152. data/_sass/_variables.scss +52 -0
  153. data/_sass/font-awesome/_animated.scss +152 -0
  154. data/_sass/font-awesome/_bordered-pulled.scss +20 -0
  155. data/_sass/font-awesome/_core.scss +49 -0
  156. data/_sass/font-awesome/_fixed-width.scss +7 -0
  157. data/_sass/font-awesome/_functions.scss +57 -0
  158. data/_sass/font-awesome/_icons.scss +13 -0
  159. data/_sass/font-awesome/_list.scss +18 -0
  160. data/_sass/font-awesome/_mixins.scss +65 -0
  161. data/_sass/font-awesome/_rotated-flipped.scss +31 -0
  162. data/_sass/font-awesome/_screen-reader.scss +14 -0
  163. data/_sass/font-awesome/_shims.scss +1578 -0
  164. data/_sass/font-awesome/_sizing.scss +16 -0
  165. data/_sass/font-awesome/_stacked.scss +32 -0
  166. data/_sass/font-awesome/_variables.scss +5044 -0
  167. data/_sass/font-awesome/brands.scss +30 -0
  168. data/_sass/font-awesome/fontawesome.scss +21 -0
  169. data/_sass/font-awesome/regular.scss +27 -0
  170. data/_sass/font-awesome/solid.scss +27 -0
  171. data/_sass/font-awesome/v4-shims.scss +11 -0
  172. data/_sass/tabler-icons/tabler-icons-filled.scss +1646 -0
  173. data/_sass/tabler-icons/tabler-icons-outline.scss +9859 -0
  174. data/_sass/tabler-icons/tabler-icons.scss +11463 -0
  175. data/_scripts/cronitor-analytics-setup.js +9 -0
  176. data/_scripts/giscus-setup.js +48 -0
  177. data/_scripts/google-analytics-setup.js +9 -0
  178. data/_scripts/open-panel-analytics-setup.js +14 -0
  179. data/_scripts/photoswipe-setup.js +11 -0
  180. data/assets/audio/epicaly-short-113909.mp3 +0 -0
  181. data/assets/bibliography/2018-12-22-distill.bib +7 -0
  182. data/assets/css/academicons.min.css +1 -0
  183. data/assets/css/bootstrap-toc.min.css +4 -0
  184. data/assets/css/bootstrap.min.css +7 -0
  185. data/assets/css/bootstrap.min.css.map +1 -0
  186. data/assets/css/jekyll-pygments-themes-github.css +209 -0
  187. data/assets/css/jekyll-pygments-themes-native.css +232 -0
  188. data/assets/css/jupyter-grade3.css +3758 -0
  189. data/assets/css/jupyter-monokai.css +3758 -0
  190. data/assets/css/jupyter.css +383 -0
  191. data/assets/css/main.scss +36 -0
  192. data/assets/css/mdb.min.css +48 -0
  193. data/assets/css/mdb.min.css.map +1 -0
  194. data/assets/css/scholar-icons.css +386 -0
  195. data/assets/fonts/academicons.ttf +0 -0
  196. data/assets/fonts/academicons.woff +0 -0
  197. data/assets/fonts/scholar-icons.ttf +0 -0
  198. data/assets/fonts/scholar-icons.woff +0 -0
  199. data/assets/fonts/tabler-icons-filled.ttf +0 -0
  200. data/assets/fonts/tabler-icons-filled.woff +0 -0
  201. data/assets/fonts/tabler-icons-filled.woff2 +0 -0
  202. data/assets/fonts/tabler-icons-outline.ttf +0 -0
  203. data/assets/fonts/tabler-icons-outline.woff +0 -0
  204. data/assets/fonts/tabler-icons-outline.woff2 +0 -0
  205. data/assets/fonts/tabler-icons.ttf +0 -0
  206. data/assets/fonts/tabler-icons.woff +0 -0
  207. data/assets/fonts/tabler-icons.woff2 +0 -0
  208. data/assets/html/relativity.html +15 -0
  209. data/assets/img/1.jpg +0 -0
  210. data/assets/img/10.jpg +0 -0
  211. data/assets/img/11.jpg +0 -0
  212. data/assets/img/12.jpg +0 -0
  213. data/assets/img/2.jpg +0 -0
  214. data/assets/img/3.jpg +0 -0
  215. data/assets/img/4.jpg +0 -0
  216. data/assets/img/5.jpg +0 -0
  217. data/assets/img/6.jpg +0 -0
  218. data/assets/img/7.jpg +0 -0
  219. data/assets/img/8.jpg +0 -0
  220. data/assets/img/9.jpg +0 -0
  221. data/assets/img/book_covers/the_godfather.jpg +0 -0
  222. data/assets/img/brand/dosquartsdedocs-logo-cafe.svg +31 -0
  223. data/assets/img/brand/dosquartsdedocs-logo-footer-cafe.svg +31 -0
  224. data/assets/img/brand/dosquartsdedocs-logo-white.svg +31 -0
  225. data/assets/img/brand/dosquartsdedocs-logo.svg +31 -0
  226. data/assets/img/prof_pic.jpg +0 -0
  227. data/assets/img/prof_pic_color.png +0 -0
  228. data/assets/img/profile-placeholder.svg +8 -0
  229. data/assets/img/publication_preview/brownian-motion.gif +0 -0
  230. data/assets/img/publication_preview/goodchild1992-gis-cover.jpg +0 -0
  231. data/assets/img/publication_preview/gutierrez2020-jtrg-preview.jpg +0 -0
  232. data/assets/img/publication_preview/harvey1989-postmodernity-cover.jpg +0 -0
  233. data/assets/img/publication_preview/tobler1970-economic-geography-cover.jpg +0 -0
  234. data/assets/img/publication_preview/tuan1977-space-place-cover.jpg +0 -0
  235. data/assets/img/publication_preview/wave-mechanics.gif +0 -0
  236. data/assets/img/publication_preview/zaragozi2025-rooftop-pv-preview.jpg +0 -0
  237. data/assets/img/rhino.png +0 -0
  238. data/assets/img/team/aaron-gutierrez.png +0 -0
  239. data/assets/img/team/alba-font.png +0 -0
  240. data/assets/img/team/alba-viana.png +0 -0
  241. data/assets/img/team/alejandro-gonzalez.png +0 -0
  242. data/assets/img/team/ana-pastor.png +0 -0
  243. data/assets/img/team/antoni-domenech.png +0 -0
  244. data/assets/img/team/benito-zaragozi.png +0 -0
  245. data/assets/img/team/cinta-sanz.png +0 -0
  246. data/assets/img/team/daniel-miravet.png +0 -0
  247. data/assets/img/team/eugenia-altamirano.png +0 -0
  248. data/assets/img/team/fiammetta-brandajs.png +0 -0
  249. data/assets/img/team/francesc-gonzalez.png +0 -0
  250. data/assets/img/team/isabel-paulino.png +0 -0
  251. data/assets/img/team/joan-borras.png +0 -0
  252. data/assets/img/team/julie-wilson.png +0 -0
  253. data/assets/img/team/liliana-sole.png +0 -0
  254. data/assets/img/team/maria-casado.png +0 -0
  255. data/assets/img/team/maria-medina.png +0 -0
  256. data/assets/img/team/marta-nello.png +0 -0
  257. data/assets/img/team/mogrify +1 -0
  258. data/assets/img/team/oscar-saladie.png +0 -0
  259. data/assets/img/team/paolo-russo.png +0 -0
  260. data/assets/img/team/raquel-santos.png +0 -0
  261. data/assets/img/team/salvador-anton.png +0 -0
  262. data/assets/img/team/sunsi-huertas.png +0 -0
  263. data/assets/img/team/user-placeholder.png +0 -0
  264. data/assets/img/team/wilbert-den-hoed.png +0 -0
  265. data/assets/img/team/xavier-delclos.png +0 -0
  266. data/assets/img/template_error.png +0 -0
  267. data/assets/js/bibsearch.js +70 -0
  268. data/assets/js/bootstrap-toc.min.js +5 -0
  269. data/assets/js/bootstrap.bundle.min.js +7 -0
  270. data/assets/js/bootstrap.bundle.min.js.map +1 -0
  271. data/assets/js/callouts.js +115 -0
  272. data/assets/js/chartjs-setup.js +14 -0
  273. data/assets/js/common.js +117 -0
  274. data/assets/js/content-search-match.js +159 -0
  275. data/assets/js/content-search.js +441 -0
  276. data/assets/js/copy_code.js +60 -0
  277. data/assets/js/custom.js +6 -0
  278. data/assets/js/developer-mode.js +103 -0
  279. data/assets/js/diff2html-setup.js +20 -0
  280. data/assets/js/distillpub/overrides.js +27 -0
  281. data/assets/js/distillpub/template.v2.js +9616 -0
  282. data/assets/js/distillpub/template.v2.js.map +1 -0
  283. data/assets/js/distillpub/transforms.v2.js +14557 -0
  284. data/assets/js/distillpub/transforms.v2.js.map +1 -0
  285. data/assets/js/documentation.js +435 -0
  286. data/assets/js/echarts-setup.js +29 -0
  287. data/assets/js/highlight-search-term.js +110 -0
  288. data/assets/js/jupyter_new_tab.js +18 -0
  289. data/assets/js/leaflet-setup.js +22 -0
  290. data/assets/js/manual.js +308 -0
  291. data/assets/js/masonry.js +12 -0
  292. data/assets/js/mathjax-setup.js +46 -0
  293. data/assets/js/mermaid-setup.js +37 -0
  294. data/assets/js/newsletter.js +105 -0
  295. data/assets/js/no_defer.js +24 -0
  296. data/assets/js/plotly-setup.js +52 -0
  297. data/assets/js/profile-nav.js +92 -0
  298. data/assets/js/progress-bar.js +73 -0
  299. data/assets/js/pseudocode-setup.js +18 -0
  300. data/assets/js/search/base-styles.min.js +286 -0
  301. data/assets/js/search/command-score.min.js +7 -0
  302. data/assets/js/search/hotkeys-js/hotkeys.esm.min.js +18 -0
  303. data/assets/js/search/lit/decorators.min.js +7 -0
  304. data/assets/js/search/lit/directives/class-map.min.js +7 -0
  305. data/assets/js/search/lit/directives/join.min.js +7 -0
  306. data/assets/js/search/lit/directives/live.min.js +7 -0
  307. data/assets/js/search/lit/directives/ref.min.js +7 -0
  308. data/assets/js/search/lit/directives/repeat.min.js +7 -0
  309. data/assets/js/search/lit/directives/unsafe-html.min.js +7 -0
  310. data/assets/js/search/lit/index.min.js +7 -0
  311. data/assets/js/search/lit-element/lit-element.min.js +12 -0
  312. data/assets/js/search/lit-html/directives/class-map.min.js +22 -0
  313. data/assets/js/search/lit-html/directives/join.min.js +12 -0
  314. data/assets/js/search/lit-html/directives/live.min.js +28 -0
  315. data/assets/js/search/lit-html/directives/ref.min.js +32 -0
  316. data/assets/js/search/lit-html/directives/repeat.min.js +27 -0
  317. data/assets/js/search/lit-html/directives/unsafe-html.min.js +22 -0
  318. data/assets/js/search/lit-html/is-server.min.js +12 -0
  319. data/assets/js/search/lit-html/lit-html.min.js +12 -0
  320. data/assets/js/search/ninja-action.min.js +101 -0
  321. data/assets/js/search/ninja-footer.min.js +62 -0
  322. data/assets/js/search/ninja-header.min.js +78 -0
  323. data/assets/js/search/ninja-keys.min.js +39 -0
  324. data/assets/js/search/reactive-element/decorators/custom-element.min.js +12 -0
  325. data/assets/js/search/reactive-element/decorators/event-options.min.js +12 -0
  326. data/assets/js/search/reactive-element/decorators/property.min.js +22 -0
  327. data/assets/js/search/reactive-element/decorators/query-all.min.js +17 -0
  328. data/assets/js/search/reactive-element/decorators/query-assigned-elements.min.js +17 -0
  329. data/assets/js/search/reactive-element/decorators/query-assigned-nodes.min.js +17 -0
  330. data/assets/js/search/reactive-element/decorators/query-async.min.js +17 -0
  331. data/assets/js/search/reactive-element/decorators/query.min.js +17 -0
  332. data/assets/js/search/reactive-element/decorators/state.min.js +27 -0
  333. data/assets/js/search/reactive-element/reactive-element.min.js +17 -0
  334. data/assets/js/search-setup.js +17 -0
  335. data/assets/js/shortcut-key.js +11 -0
  336. data/assets/js/tabs.min.js +5 -0
  337. data/assets/js/theme.js +314 -0
  338. data/assets/js/tooltips-setup.js +3 -0
  339. data/assets/js/typograms.js +1341 -0
  340. data/assets/js/vanilla-back-to-top.min.js +1 -0
  341. data/assets/js/vega-setup.js +24 -0
  342. data/assets/js/venobox-setup.js +5 -0
  343. data/assets/js/wechat.js +14 -0
  344. data/assets/js/zoom.js +15 -0
  345. data/assets/json/resume.json +98 -0
  346. data/assets/json/table_data.json +128 -0
  347. data/assets/jupyter/blog.ipynb +48 -0
  348. data/assets/pdf/example_pdf.pdf +0 -0
  349. data/assets/plotly/demo.html +72 -0
  350. data/assets/video/pexels-engin-akyurt-6069112-960x540-30fps.mp4 +0 -0
  351. data/assets/webfonts/fa-brands-400.ttf +0 -0
  352. data/assets/webfonts/fa-brands-400.woff2 +0 -0
  353. data/assets/webfonts/fa-regular-400.ttf +0 -0
  354. data/assets/webfonts/fa-regular-400.woff2 +0 -0
  355. data/assets/webfonts/fa-solid-900.ttf +0 -0
  356. data/assets/webfonts/fa-solid-900.woff2 +0 -0
  357. data/assets/webfonts/fa-v4compatibility.ttf +0 -0
  358. data/assets/webfonts/fa-v4compatibility.woff2 +0 -0
  359. data/docs/Gemfile +5 -0
  360. data/docs/_config.yml +83 -0
  361. data/docs/_documentation/en/01-quick-start.md +115 -0
  362. data/docs/_documentation/en/02-tools.md +146 -0
  363. data/docs/_documentation/en/03-usage.md +107 -0
  364. data/docs/_documentation/en/04-jekyll-basics.md +51 -0
  365. data/docs/_documentation/en/05-pages-collections.md +68 -0
  366. data/docs/_documentation/en/06-github-web-editing.md +92 -0
  367. data/docs/_documentation/en/10-profiles.md +125 -0
  368. data/docs/_documentation/en/11-unaltreselfie.md +39 -0
  369. data/docs/_documentation/en/12-unaltreprojecte.md +38 -0
  370. data/docs/_documentation/en/13-unaltremanual.md +237 -0
  371. data/docs/_documentation/en/14-unaltredocs.md +92 -0
  372. data/docs/_documentation/en/15-profile-checklist.md +39 -0
  373. data/docs/_documentation/en/20-syntax.md +353 -0
  374. data/docs/_documentation/en/21-themes.md +103 -0
  375. data/docs/_documentation/en/22-feature-reference.md +56 -0
  376. data/docs/_documentation/en/23-front-matter.md +51 -0
  377. data/docs/_documentation/en/24-data-files.md +28 -0
  378. data/docs/_documentation/en/30-customization.md +448 -0
  379. data/docs/_documentation/en/31-template.md +55 -0
  380. data/docs/_documentation/en/32-development.md +108 -0
  381. data/docs/_documentation/en/33-reusable-workflows.md +136 -0
  382. data/docs/_documentation/en/40-distribution.md +164 -0
  383. data/docs/_documentation/en/41-bibliometrics.md +137 -0
  384. data/docs/_documentation/en/42-docker-image.md +185 -0
  385. data/docs/_documentation/en/50-faq.md +33 -0
  386. data/docs/_pages/ca/index.md +35 -0
  387. data/docs/_pages/en/index.md +35 -0
  388. data/docs/_pages/es/index.md +35 -0
  389. data/docs/agents/action-prompts/00-start-site-session.txt +10 -0
  390. data/docs/agents/action-prompts/05-create-new-web.txt +5 -0
  391. data/docs/agents/action-prompts/10-content-update.txt +9 -0
  392. data/docs/agents/action-prompts/15-edit-default-content.txt +8 -0
  393. data/docs/agents/action-prompts/20-manual-teaching-materials.txt +18 -0
  394. data/docs/agents/action-prompts/22-manual-style-audit.txt +14 -0
  395. data/docs/agents/action-prompts/23-manual-structure-audit.txt +17 -0
  396. data/docs/agents/action-prompts/25-translation-prepublish.txt +8 -0
  397. data/docs/agents/action-prompts/30-project-site-update.txt +7 -0
  398. data/docs/agents/action-prompts/40-documentation-update.txt +7 -0
  399. data/docs/agents/action-prompts/50-bibliography-entry.txt +7 -0
  400. data/docs/agents/action-prompts/60-bibliometrics-refresh.txt +7 -0
  401. data/docs/agents/action-prompts/70-build-and-review.txt +12 -0
  402. data/docs/agents/manual-authoring-components.md +255 -0
  403. data/docs/agents/mcp-contract.md +162 -0
  404. data/docs/agents/quarto-computation-adoption.md +102 -0
  405. data/docs/assets/img/unaltraweb-docs-hero.svg +36 -0
  406. data/lib/unaltraweb/version.rb +8 -0
  407. data/lib/unaltraweb.rb +31 -0
  408. data/requirements.txt +5 -0
  409. data/scripts/biblio/fetch_scimago_csv.sh +126 -0
  410. data/scripts/biblio/metrics_common.py +154 -0
  411. data/scripts/biblio/metrics_merge_meta.py +73 -0
  412. data/scripts/biblio/metrics_update.py +826 -0
  413. data/scripts/computations/python/Dockerfile +37 -0
  414. data/scripts/computations/r/Dockerfile +31 -0
  415. data/scripts/computations/render.py +1267 -0
  416. data/scripts/cv/render_pdf_preview.sh +36 -0
  417. data/scripts/deploy/publish_branch.sh +80 -0
  418. data/scripts/generate_logo_variants.py +47 -0
  419. data/scripts/manual/Dockerfile +31 -0
  420. data/scripts/manual/build_pdf.py +1780 -0
  421. data/scripts/manual/filters/bibliography.lua +164 -0
  422. data/scripts/manual/filters/code-blocks.lua +102 -0
  423. data/scripts/manual/filters/figure-captions.lua +35 -0
  424. data/scripts/manual/publish_release.sh +281 -0
  425. data/scripts/manual/templates/manual.tex +494 -0
  426. data/scripts/manual/verify_release_assets.py +650 -0
  427. data/scripts/test_gem_build.py +128 -0
  428. data/scripts/test_reproducible_jekyll_build.py +191 -0
  429. data/scripts/test_wheel_install.py +282 -0
  430. data/scripts/unaltraweb-docker-mount.sh +36 -0
  431. data/scripts/unaltraweb-mcp-bootstrap.sh +105 -0
  432. data/scripts/unaltraweb-mcp-cleanup.sh +73 -0
  433. data/scripts/unaltraweb-mcp-project-id.sh +34 -0
  434. data/scripts/validate_distribution.py +563 -0
  435. data/scripts/validate_workflows.py +1285 -0
  436. data/scripts/web_captures/Dockerfile +31 -0
  437. data/scripts/web_captures/capture.mjs +157 -0
  438. data/scripts/web_captures/package-lock.json +56 -0
  439. data/scripts/web_captures/package.json +9 -0
  440. data/scripts/web_captures/render.py +867 -0
  441. data/src/unaltraweb_mcp/component-contract.json +153 -0
  442. data/src/unaltraweb_mcp/component-contract.schema.json +87 -0
  443. data/src/unaltraweb_mcp/docker_mount.py +19 -0
  444. metadata +861 -0
@@ -0,0 +1,39 @@
1
+ ---
2
+ title: Check Profile Features Before Publishing
3
+ description: What to check before choosing and publishing a profile.
4
+ lang: en
5
+ ref: profile_checklist
6
+ profiles:
7
+ - unaltredocs
8
+ documentation_profiles:
9
+ - github-publishers
10
+ - local-authors
11
+ - site-designers
12
+ - contributors
13
+ - core-developers
14
+ section: Build A Site
15
+ weight: 270
16
+ permalink: "/profiles/checklist/"
17
+ nav_title: Feature Checklist
18
+ ---
19
+ Before publishing a child site, check the profile contract rather than only the visual layout.
20
+
21
+ ## Configuration
22
+
23
+ - `unaltraweb.site_profile` is set to one profile.
24
+ - `unaltraweb.features` matches the sections you intend to publish.
25
+ - `url` and `baseurl` match the GitHub Pages target.
26
+ - `languages` includes only the languages you are actually maintaining.
27
+
28
+ ## Content
29
+
30
+ - Every page has `lang`, `ref` and a stable `permalink`.
31
+ - Profile-specific pages use `profiles`.
32
+ - Collection entries use the fields expected by their layouts.
33
+
34
+ ## Local Review
35
+
36
+ ```bash
37
+ make build SITE_PROFILE=unaltredocs
38
+ make test SITE_PROFILE=unaltredocs
39
+ ```
@@ -0,0 +1,353 @@
1
+ ---
2
+ title: Write Content With Markdown Extensions
3
+ description: unaltraweb syntax beyond standard Markdown.
4
+ lang: en
5
+ ref: content_syntax
6
+ profiles:
7
+ - unaltredocs
8
+ documentation_profiles:
9
+ - github-publishers
10
+ - local-authors
11
+ - site-designers
12
+ - contributors
13
+ section: Design And Customize
14
+ weight: 310
15
+ permalink: "/syntax/"
16
+ nav_title: Markdown Extensions
17
+ ---
18
+ <p class="lede"><code>unaltraweb</code> keeps ordinary Markdown readable, then adds a small set of conventions for profiles, callouts, figures, diagrams, cards and static academic data.</p>
19
+
20
+ ## Profile And Feature Front Matter
21
+
22
+ Use profile filters when a page should only exist in some site families:
23
+
24
+ ```yaml
25
+ ---
26
+ title: Projects
27
+ layout: page
28
+ profiles: [unaltreselfie]
29
+ feature: projects
30
+ nav: true
31
+ permalink: /en/projects/
32
+ ---
33
+ ```
34
+
35
+ The page is written only for matching profiles. The `feature` key controls navigation visibility through `_config.yml`:
36
+
37
+ ```yaml
38
+ unaltraweb:
39
+ features:
40
+ projects: true
41
+ publications: true
42
+ blog: false
43
+ ```
44
+
45
+ ## Callouts
46
+
47
+ Nested blockquotes become teaching callouts in manual-style content. A single `>` remains a normal quotation.
48
+
49
+ ```markdown
50
+ >> A note or tip.
51
+
52
+ >>> A worked example.
53
+
54
+ >>>> A warning.
55
+
56
+ >>>>> Learning objectives.
57
+
58
+ >>>>>> A caution or danger note.
59
+ ```
60
+
61
+ Rendered by the same parser:
62
+
63
+ >> **Note.** Use this for a short conceptual pause.
64
+
65
+ >>> **Example.** Show the command, formula or reasoning step that makes the concept concrete.
66
+
67
+ >>>> **Warning.** Flag steps that can damage data, confuse students or break a build.
68
+
69
+ Use `>>>>>` learning objectives sparingly, normally once after a short chapter or major-section introduction. Do not put them before any orienting prose, and do not use them as repeated mid-section reminders; use prose, tables or ordinary notes for intermediate criteria.
70
+
71
+ ## Manual Heading Levels
72
+
73
+ Manual chapters number three body levels:
74
+
75
+ ```markdown
76
+ ## Section
77
+ ### Subsection
78
+ #### Fourth-level subsection
79
+ ```
80
+
81
+ The secondary page TOC includes `##` and `###`. A `####` heading remains numbered in the text but is intentionally omitted from that TOC. Use it for a cohesive minor subdivision, not as a formatting substitute for every short item. Do not write standalone fake headings such as `**Source.**`; use a real `####` heading or keep the bold run-in and its explanation in one paragraph.
82
+
83
+ ## Definition Lists
84
+
85
+ Definition lists render compact terminology as dictionary-style entries on the web and in the manual PDF:
86
+
87
+ ```markdown
88
+ Spatial reference system
89
+ : Rules and parameters used to interpret coordinates in a defined spatial framework.
90
+
91
+ Map projection
92
+ : Mathematical transformation used to represent a curved surface on a plane.
93
+ ```
94
+
95
+ Use them for concise vocabulary. Develop concepts that need arguments, examples, discussion, or limitations in normal paragraphs.
96
+
97
+ ## Figures And Captions
98
+
99
+ For pages with figure captions enabled, use the Markdown image title as the caption:
100
+
101
+ ```markdown
102
+ ![Digitizing workflow]({{ site.baseurl }}/assets/img/workflow.svg "Main editing steps")
103
+ ```
104
+
105
+ To narrow the space assigned to one figure without changing its height, set a
106
+ CSS width with `data-figure-width`. The figure remains centred and cannot exceed
107
+ the available width. The PDF builder maps `rem` values against its 60-rem
108
+ reading column and caps the result at the printable width:
109
+
110
+ ```markdown
111
+ ![Project folders](assets/diagrams/folders.puml "Recommended project structure"){: data-figure-width="22rem"}
112
+ ```
113
+
114
+ Multi-panel figures use a fenced subfigure block:
115
+
116
+ ```markdown
117
+ ::: subfigures a+b/c "Three views of the same exercise"
118
+ ![Interface]({{ site.baseurl }}/assets/img/interface.svg "Interface")
119
+ ![Map]({{ site.baseurl }}/assets/img/map.svg "Map")
120
+ ![Diagram]({{ site.baseurl }}/assets/img/diagram.svg "Diagram")
121
+ :::
122
+ ```
123
+
124
+ The layout string uses `/` for rows and `+` for columns. The example above renders panels `a`, `b` and `c` as one numbered figure on the web and in the PDF.
125
+ Use this component when juxtaposition is the teaching task: before/after states, controlled alternatives, a short sequence, or complementary views that need one shared caption. Prefer compact layouts such as `a+b` and `a+b/c`, and use them selectively. Images that merely share a topic should normally remain separate figures.
126
+
127
+ ## Numbered Tables
128
+
129
+ Manual chapters can number teaching tables with localized labels:
130
+
131
+ ```markdown
132
+ ::: table "Weekly work rhythm"
133
+ | Week | Focus | Output |
134
+ | --- | --- | --- |
135
+ | 1 | Orientation | Reading notes |
136
+ | 2 | Data setup | Working project folder |
137
+ :::
138
+ ```
139
+
140
+ Cells may contain inline code spans such as `` `=SUM(A2:A10)` ``. The manual renderer preserves these as inline `<code>` elements on the web; if a consumer project still shows literal backticks inside numbered tables, update its `unaltraweb` lock file or use explicit HTML `<code>` as a temporary compatibility fallback.
141
+
142
+ ## Diagram Sources
143
+
144
+ Reference diagram source files as images. The Jekyll plugin rewrites Mermaid and
145
+ PlantUML text sources to SVG files, rendering them through `diavisuals` when the
146
+ shared renderer is available:
147
+
148
+ ```markdown
149
+ ![Vector workflow]({{ site.baseurl }}/assets/diagrams/vector-workflow.mmd "Vector workflow")
150
+ ```
151
+
152
+ SVG is the preferred output because it remains editable. The lookup order
153
+ prefers edited diagrams first:
154
+
155
+ ```text
156
+ vector-workflow.mmd.edited.svg
157
+ vector-workflow.mmd.svg
158
+ ```
159
+
160
+ When `*.edited.svg` exists, the build keeps using it and does not overwrite it.
161
+ Agents changing the diagram source should ask whether to keep the edited SVG or
162
+ replace it with a regenerated version.
163
+
164
+ ## Static Vega Sources
165
+
166
+ Reference a manifest-backed Vega-Lite (`*.vl.json`) or Vega (`*.vg.json`) specification as a captioned image:
167
+
168
+ ```markdown
169
+ ![Quarterly totals](assets/charts/quarterly.vl.json "Quarterly totals"){: data-figure-width="42rem"}
170
+ ```
171
+
172
+ `.vegavisuals.yml` must declare that source exactly once and name its generated output. A source referenced as a web image must produce SVG or PNG; PDF output is valid only for PDF-specific use and cannot be placed in an HTML `img`. Jekyll and the manual PDF builder replace only the image URL, preserving the title caption and Kramdown attributes. SVG is recommended for web/PDF parity. Run `make visualization-render` after source or data changes and `make visualization-check` before publication; rendering and freshness remain owned by the companion `vegavisuals` factory.
173
+
174
+ ## Selector-Based Web Captures
175
+
176
+ Store a web capture recipe under `assets/` and reference the recipe as the image source:
177
+
178
+ ```markdown
179
+ ![Chapter navigation](assets/captures/chapter.capture.yml "Annotated chapter navigation")
180
+ ```
181
+
182
+ The recipe uses a local preview path and CSS selectors rather than arbitrary browser scripts:
183
+
184
+ ```yaml
185
+ version: 1
186
+ path: /manual/en/chapter/
187
+ viewport: {width: 1440, height: 900}
188
+ theme:
189
+ setting: cafe
190
+ waits:
191
+ selectors: [.manual-layout]
192
+ inputs:
193
+ - _chapters/en/chapter.md
194
+ annotations:
195
+ - id: chapter-navigation
196
+ selector: .manual-sidebar
197
+ kind: arrow
198
+ text: Chapter navigation
199
+ ```
200
+
201
+ `web_capture_render` starts an ephemeral site and browser on an internal Docker network, keeps the untouched `*.capture.png`, and generates a self-contained `*.capture.svg` with editable vector layers. A manually reviewed `*.capture.edited.svg` wins over the generated SVG and is never overwritten. Commit the recipe, PNG, SVG, and `.unaltraweb/web-captures.lock.json` together. `web_capture_check` blocks stale output and stale edited overrides. Ordinary Jekyll and PDF builds consume only the selected SVG and do not run Chromium.
202
+
203
+ ## Code Fences
204
+
205
+ Use language names for syntax highlighting. Rouge renders recognized languages on the web and the manual PDF renderer guarantees `listings` highlighting for `bash`, `shell`, `sh`, `sql`, `python`, and `r`. Use `url` for URLs or decomposed requests, `spreadsheet` for spreadsheet formulas, and `filetree` for file and directory listings; these semantic fences receive localized headers and dedicated highlighting on both outputs. Recognized blocks receive a compact language header and line numbers; web line numbers are hidden from assistive technology and excluded when copying code. A fence declared as `text`, `plaintext`, `plain`, or `txt`, a fence with no language, or a language unsupported by the renderer becomes an unnumbered verbatim panel without a header. Alternating line backgrounds aid tracking, and PDF lines wrap inside the printable page. Inline code uses single backticks and is styled separately from prose:
206
+
207
+ ````markdown
208
+ ```bash
209
+ ogrinfo data/raw/roads.gpkg -so roads
210
+ ```
211
+
212
+ ```sql
213
+ SELECT ST_Area(geom::geography) AS area_m2
214
+ FROM protected_areas;
215
+ ```
216
+
217
+ ```python
218
+ import geopandas as gpd
219
+ ```
220
+
221
+ ```r
222
+ library(sf)
223
+ ```
224
+
225
+ ```
226
+ Generic output or a value copied from an application.
227
+ ```
228
+ ````
229
+
230
+ Wrap one fence in a `listing` block when it needs a descriptive caption and an index entry:
231
+
232
+ ````markdown
233
+ ::: listing "Inspect the roads layer"
234
+ ```bash
235
+ ogrinfo data/raw/roads.gpkg -so roads
236
+ ```
237
+ :::
238
+ ````
239
+
240
+ The opening line requires a non-empty double-quoted caption and the wrapper must contain exactly one fenced block. Captioned code examples have localized, chapter-scoped numbers on the web and in the PDF. The printable manual emits lists of figures, tables, and code examples after the table of contents when those elements are present. Ordinary fences remain valid and do not enter the list of code examples.
241
+
242
+ ## Links, Citations, And Equations
243
+
244
+ The web and manual PDF distinguish bibliographic citations, external URLs, and internal links by color. Use Jekyll Scholar for citations, ordinary Markdown for external links, and stable heading identifiers for internal links:
245
+
246
+ ```markdown
247
+ {% raw %}{% cite sourceKey %}{% endraw %}
248
+ [OGC standards](https://www.ogc.org/)
249
+
250
+ ## Normalization {#normalization}
251
+ See [the normalization criteria](#normalization).
252
+ ```
253
+
254
+ Inline mathematics uses `$...$`; displayed equations use `$$...$$` on separate lines and are numbered by default. Add a stable `eq:` label when the text refers to an equation; use `equation*` explicitly for an unnumbered display:
255
+
256
+ ```markdown
257
+ \begin{equation}
258
+ \bar{x}_w = \frac{\sum_i w_i x_i}{\sum_i w_i}
259
+ \label{eq:weighted-mean}
260
+ \end{equation}
261
+
262
+ Equation $\eqref{eq:weighted-mean}$ defines the weighted mean.
263
+ ```
264
+
265
+ ## Hero Images
266
+
267
+ Pages can use a compact hero image:
268
+
269
+ ```yaml
270
+ ---
271
+ layout: page
272
+ title: Example Page
273
+ hero:
274
+ image: /assets/img/example-hero.jpg
275
+ alt: Short accessible description
276
+ caption: Optional caption
277
+ source: Optional source name
278
+ source_url: https://example.org/source
279
+ position: center
280
+ ---
281
+ ```
282
+
283
+ Project entries can also define `hero` for cards and project pages.
284
+
285
+ ## Project Resources
286
+
287
+ Project pages can expose datasets, repositories, papers and documentation as icon badges:
288
+
289
+ ```yaml
290
+ ---
291
+ layout: project
292
+ title: Example Project
293
+ resources:
294
+ - type: zenodo
295
+ label: Zenodo dataset
296
+ url: https://zenodo.org/records/1000001
297
+ doi: 10.5281/zenodo.1000001
298
+ - type: github
299
+ label: Source code
300
+ url: https://github.com/example/project
301
+ - type: documentation
302
+ label: Technical notes
303
+ url: https://example.org/docs/example
304
+ ---
305
+ ```
306
+
307
+ Built-in resource types include `zenodo`, `doi`, `dataset`, `data`, `code`, `github`, `repository`, `documentation`, `docs`, `map`, `publication`, `paper`, `report`, `website` and `link`.
308
+
309
+ ## CV Preview Cards
310
+
311
+ Use the CV preview include when a PDF is the source of truth:
312
+
313
+ ```yaml
314
+ ---
315
+ cv_pdf: /assets/pdf/cv.pdf
316
+ cv_preview: /assets/img/cv-preview.jpg
317
+ ---
318
+ ```
319
+
320
+ {% raw %}
321
+ ```liquid
322
+ {% include cv-download-card.liquid pdf=page.cv_pdf preview=page.cv_preview title="CV" %}
323
+ ```
324
+ {% endraw %}
325
+
326
+ Generate the preview locally:
327
+
328
+ ```bash
329
+ make cv-preview CV_PDF=assets/pdf/cv.pdf CV_PREVIEW=assets/img/cv-preview.jpg
330
+ ```
331
+
332
+ ## Documentation Sections
333
+
334
+ The `unaltredocs` profile uses `_documentation` documents with front matter that drives the left index:
335
+
336
+ ```yaml
337
+ ---
338
+ title: Installation
339
+ section: Getting Started
340
+ subsection: Local workflow
341
+ weight: 20
342
+ documentation_profiles: [local-authors]
343
+ ---
344
+ ```
345
+
346
+ ## Static Metrics
347
+
348
+ Publication metrics are updated before builds and written to local files. Jekyll builds do not call OpenAlex, Crossref, Scimago or Google Scholar.
349
+
350
+ ```text
351
+ bibliometrics_update
352
+ bibliometrics_check
353
+ ```
@@ -0,0 +1,103 @@
1
+ ---
2
+ title: Theme And Visual Design
3
+ description: Theme modes, local style overrides and JavaScript integration in unaltraweb.
4
+ lang: en
5
+ ref: theme_modes
6
+ profiles:
7
+ - unaltredocs
8
+ documentation_profiles:
9
+ - local-authors
10
+ - site-designers
11
+ - contributors
12
+ section: Design And Customize
13
+ weight: 320
14
+ permalink: "/themes/"
15
+ nav_title: Themes
16
+ ---
17
+ <p class="lede"><code>unaltraweb</code> supports system, light, coffee and dark theme settings. The modes are part of the user interface and are covered by the template render smoke tests.</p>
18
+
19
+ ## Modes
20
+
21
+ - **Light**: high-contrast default reading mode for normal pages and profile sites.
22
+ - **Coffee**: warm brown reading mode for manuals, long-form documentation and course material.
23
+ - **Dark**: dark mode with matching integration state for embedded libraries and generated diagrams.
24
+
25
+ The switch rotates through:
26
+
27
+ ```text
28
+ system -> light -> coffee -> dark -> system
29
+ ```
30
+
31
+ `system` follows the browser preference and resolves to light or dark.
32
+
33
+ ## Data Attributes
34
+
35
+ The active theme state is exposed on `<html>`:
36
+
37
+ ```html
38
+ <html data-theme-setting="cafe" data-theme="cafe" data-theme-integration="light" data-site-profile="unaltremanual">
39
+ ```
40
+
41
+ Use these attributes for local CSS and automated checks. Do not infer the active profile from URLs.
42
+
43
+ ## Local Sass Overrides
44
+
45
+ Create `_sass/_site-custom.scss` in the child site. It is imported after the core styles.
46
+
47
+ ```scss
48
+ :root {
49
+ --global-theme-color: #2f6f5e;
50
+ --global-hover-color: #2f6f5e;
51
+ }
52
+
53
+ html[data-theme="cafe"] {
54
+ --global-theme-color: #6f4e1f;
55
+ }
56
+
57
+ html[data-site-profile="unaltremanual"] .manual-sidebar {
58
+ border-color: var(--global-theme-color);
59
+ }
60
+ ```
61
+
62
+ ## Custom Coffee Palette
63
+
64
+ Use CSS custom properties to customize a built-in mode without changing the theme switcher:
65
+
66
+ ```scss
67
+ html[data-theme="cafe"] {
68
+ --global-bg-color: #2a1d16;
69
+ --global-card-bg-color: #34251d;
70
+ --global-text-color: #f4e8da;
71
+ --global-text-color-light: #c8ad94;
72
+ --global-theme-color: #d39a5f;
73
+ --global-hover-color: #d39a5f;
74
+ --global-divider-color: rgba(211, 154, 95, 0.28);
75
+ }
76
+ ```
77
+
78
+ Adding a fifth switcher mode is a core-theme change: extend `assets/js/theme.js`, the header toggle icons and the Sass selectors together. For normal child sites, override `light`, `cafe` or `dark` with `_sass/_site-custom.scss` instead.
79
+
80
+ ## JavaScript Event
81
+
82
+ Local scripts can observe theme changes:
83
+
84
+ ```js
85
+ document.addEventListener("unaltraweb:themechange", (event) => {
86
+ console.log(event.detail.theme, event.detail.themeSetting);
87
+ });
88
+ ```
89
+
90
+ ## Diagram Surfaces
91
+
92
+ Manual Mermaid figures receive diagram surfaces tuned for light, coffee and dark modes. Keep source diagrams simple and let the render pipeline generate theme-compatible SVGs.
93
+
94
+ ## Testing Themes
95
+
96
+ The template Playwright smoke test reloads pages with each theme in local storage and checks the resulting attributes and CSS variables.
97
+
98
+ ```bash
99
+ make test SITE_PROFILE=unaltreselfie
100
+ make screenshots
101
+ ```
102
+
103
+ Screenshots generated by `make screenshots` are copied into `assets/img/screenshots/` with `make docs-screenshots`.
@@ -0,0 +1,56 @@
1
+ ---
2
+ title: Feature Reference
3
+ description: Map of reusable unaltraweb features, syntax and examples.
4
+ lang: en
5
+ ref: feature_reference
6
+ profiles:
7
+ - unaltredocs
8
+ documentation_profiles:
9
+ - site-designers
10
+ - contributors
11
+ - core-developers
12
+ section: Design And Customize
13
+ weight: 340
14
+ permalink: "/features/"
15
+ nav_title: Feature Reference
16
+ ---
17
+ <p class="lede">This page maps reusable <code>unaltraweb</code> features to the documentation pages and template examples that demonstrate them.</p>
18
+
19
+ The companion `unaltraweb-template` repository contains full-profile demos because it exercises the core as a real child site. This site is the `unaltraweb` reference: it explains the platform and shows the syntax users should copy.
20
+
21
+ ## Covered Now
22
+
23
+ - **Profiles**: `unaltreselfie`, `unaltreprojecte`, `unaltremanual` and `unaltredocs` are documented conceptually.
24
+ - **Distribution**: gem, Docker image, template repository and reusable workflow responsibilities are documented.
25
+ - **Customization**: local Sass, layouts, feature gates, manual syntax, project resources, CV previews, theme modes and developer mode have starter examples.
26
+
27
+ ## Feature Map
28
+
29
+ | Feature | Where documented | Where demonstrated |
30
+ |---|---|---|
31
+ | Profiles and feature flags | [Profiles]({{ '/profiles/' | relative_url }}), [Usage]({{ '/usage/' | relative_url }}) | Template home pages and localized navigation |
32
+ | Tools and local runtime | [Tools]({{ '/tools/' | relative_url }}), [Quick Start]({{ '/quick-start/' | relative_url }}) | Template Makefile and Docker Compose files |
33
+ | Callouts, figures, tables and Mermaid | [Syntax]({{ '/syntax/' | relative_url }}), [Customization]({{ '/customization/' | relative_url }}) | Template manual and project resource pages |
34
+ | Theme modes | [Themes]({{ '/themes/' | relative_url }}) | Template Playwright screenshots for light, coffee and dark modes |
35
+ | Bibliometrics | [Bibliometrics]({{ '/bibliometrics/' | relative_url }}) | Template publications pages and metrics workflow wrapper |
36
+ | Deployment and updates | [Distribution]({{ '/distribution/' | relative_url }}), [Development]({{ '/development/' | relative_url }}) | Reusable workflows and Dependabot configuration |
37
+
38
+ ## Still To Complete
39
+
40
+ - Add rendered examples for every syntax item above inside this `unaltraweb` reference site.
41
+ - Add a compact front matter reference for pages, posts, projects, chapters, documentation pages, outputs, books, theses and bibliography entries.
42
+ - Add a data-file reference for `_data/` files used by team, repositories, metrics, readings and profile-specific pages.
43
+ - Add profile-specific checklists for creating real sites from the template.
44
+ - Add screenshots or visual examples for the four profiles without duplicating the full template demo.
45
+ - Keep future `keep`/`sync` behavior separate from the existing offline distribution `doctor`; document migrations only when those commands exist.
46
+ - Expand manual/PDF guidance once printable manual output becomes a first-class target.
47
+
48
+ ## Where To Look Today
49
+
50
+ - [Customization](../customization/) contains most current syntax examples.
51
+ - [Content syntax](../syntax/) contains copyable examples for syntax beyond standard Markdown.
52
+ - [Themes](../themes/) documents theme modes and local CSS/JS integration.
53
+ - [Site profiles](../profiles/) documents the four prepared website families.
54
+ - [Quick start](../quick-start/) covers GitHub-only and local Docker workflows.
55
+ - [Distribution model](../distribution/) explains gem, Docker and template responsibilities.
56
+ - `unaltraweb-template` contains the current full-profile demo content and Playwright screenshots.
@@ -0,0 +1,51 @@
1
+ ---
2
+ title: Front Matter Reference
3
+ description: Common front matter keys used by unaltraweb pages and collections.
4
+ lang: en
5
+ ref: front_matter_reference
6
+ profiles:
7
+ - unaltredocs
8
+ documentation_profiles:
9
+ - github-publishers
10
+ - local-authors
11
+ - site-designers
12
+ - contributors
13
+ - core-developers
14
+ section: Reference
15
+ weight: 900
16
+ permalink: "/front-matter/"
17
+ nav_title: Front Matter
18
+ ---
19
+ Common keys:
20
+
21
+ | Key | Purpose |
22
+ |---|---|
23
+ | `layout` | Selects the reusable layout. |
24
+ | `title` | Page or document title. |
25
+ | `description` | Summary used by cards, search and metadata. |
26
+ | `lang` | Content language. |
27
+ | `ref` | Stable cross-language identity. |
28
+ | `permalink` | Public URL. |
29
+ | `profiles` | Profiles where the item is rendered. |
30
+ | `feature` | Feature flag controlling navigation. |
31
+ | `nav`, `nav_order`, `nav_title` | Top navigation controls. |
32
+ | `section`, `weight` | Documentation sidebar controls. |
33
+ | `documentation_profiles` | Optional `unaltredocs` reader profiles that should include the page. |
34
+ | `introduced_in`, `changed_in`, `deprecated_in`, `removed_in` | Optional version annotations for documentation pages. |
35
+ | `hero` | Page or project hero image configuration. |
36
+
37
+ Example:
38
+
39
+ ```yaml
40
+ ---
41
+ title: Installation
42
+ description: Local Docker workflow for contributors.
43
+ lang: en
44
+ ref: installation
45
+ profiles: [unaltredocs]
46
+ section: User guides
47
+ weight: 30
48
+ documentation_profiles: [local-authors]
49
+ permalink: /installation/
50
+ ---
51
+ ```
@@ -0,0 +1,28 @@
1
+ ---
2
+ title: Data Files Reference
3
+ description: Structured data files commonly used by unaltraweb child sites.
4
+ lang: en
5
+ ref: data_files_reference
6
+ profiles:
7
+ - unaltredocs
8
+ documentation_profiles:
9
+ - local-authors
10
+ - site-designers
11
+ - contributors
12
+ - core-developers
13
+ section: Reference
14
+ weight: 910
15
+ permalink: "/data-files/"
16
+ nav_title: Data Files
17
+ ---
18
+ Use `_data/` for structured content that should not live inside prose pages.
19
+
20
+ | File | Typical use |
21
+ |---|---|
22
+ | `_data/i18n/*.yml` | Interface labels and local translations. |
23
+ | `_data/metrics.yml` | Generated publication metrics summary. |
24
+ | `_data/metrics-overrides.yml` | Manual metric corrections. |
25
+ | `_data/repositories.yml` | Repository cards and links. |
26
+ | `_data/team.yml` or local equivalents | Team members for project pages. |
27
+
28
+ Keep generated data reviewable. Metrics workflows should commit versionable outputs such as `_data/metrics.yml`, not local caches.