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
data/_data/i18n/es.yml ADDED
@@ -0,0 +1,278 @@
1
+ header:
2
+ home: Inicio
3
+ toggle_navigation: Alternar navegación
4
+ current: actual
5
+ search: Buscar
6
+ change_theme: Cambiar tema
7
+ language: Idioma
8
+ default_language: predeterminado
9
+
10
+ footer:
11
+ impressum: Aviso legal
12
+ last_updated: Última actualización
13
+ copyright: Derechos de autor
14
+ made_with: Hecho con
15
+ using_profile: con el perfil
16
+ profile_word: ""
17
+ based_on: basado en
18
+ project_by: Un proyecto de dosquartsdedocs para webs académicas.
19
+ powered_by: Funciona con
20
+ and: y
21
+ last_updated_format: "%d/%m/%Y"
22
+
23
+ date:
24
+ formats:
25
+ short: "%d/%m/%Y"
26
+ medium: "%d/%m/%Y"
27
+ long: "%d/%m/%Y"
28
+
29
+ profiles:
30
+ unaltreselfie: unaltreselfie
31
+ unaltreprojecte: unaltreprojecte
32
+ unaltremanual: unaltremanual
33
+ unaltredocs: unaltredocs
34
+
35
+ search:
36
+ placeholder: Escribe para buscar
37
+ content_placeholder: Buscar contenido
38
+ content_results: Resultados de búsqueda
39
+ content_no_results: Sin resultados
40
+ content_match: Coincidencia {current} de {total}
41
+ content_previous: Coincidencia anterior
42
+ content_next: Coincidencia siguiente
43
+
44
+ callouts:
45
+ info: NOTA
46
+ example: EJEMPLO
47
+ warning: ADVERTENCIA
48
+ objectives: OBJETIVOS DE APRENDIZAJE
49
+ danger: ATENCIÓN
50
+
51
+ bib:
52
+ filter_placeholder: Escribe para filtrar
53
+ and: y
54
+ in_prefix: En
55
+ buttons:
56
+ awarded: Premio
57
+ abstract: Resumen
58
+ bib: Bib
59
+ cite: Citar
60
+ supp: Material
61
+ video: Video
62
+ blog: Blog
63
+ code: Código
64
+ poster: Póster
65
+ slides: Diapositivas
66
+ website: Web
67
+
68
+ about:
69
+ news: Noticias
70
+ latest_posts: Entradas recientes
71
+ selected_publications: Publicaciones destacadas
72
+ hero_source: Fuente
73
+
74
+ news:
75
+ empty: Todavía no hay noticias.
76
+
77
+ latest_posts:
78
+ empty: Todavía no hay entradas.
79
+
80
+ page:
81
+ references: Referencias
82
+
83
+ post:
84
+ created_on: Creado el
85
+ by: por
86
+ last_updated_on: última actualización el
87
+ references: Referencias
88
+ reading_time: Tiempo de lectura
89
+ reading_time_minutes: min de lectura
90
+
91
+ archive:
92
+ category_prefix: Archivo de
93
+ category_suffix: en esta categoría
94
+ year_prefix: Archivo de
95
+ year_suffix: de este año
96
+ tag_prefix: Archivo de
97
+ tag_suffix: con esta etiqueta
98
+
99
+ related_posts:
100
+ title: ¿Quieres seguir leyendo?
101
+ intro: Aquí tienes más artículos que podrían interesarte.
102
+ subscribe: "Suscríbete para recibir aviso de futuros artículos:"
103
+
104
+ pagination:
105
+ blog_navigation: Navegación de páginas del blog
106
+
107
+ blog:
108
+ empty: Todavía no hay entradas del blog.
109
+ archive_range_from: Entradas del
110
+ archive_range_to: al
111
+
112
+ projects:
113
+ code_repository: Repositorio de código
114
+ github_stars: Estrellas de GitHub
115
+ view_project: Ver proyecto
116
+ resources: Recursos
117
+
118
+ outputs:
119
+ empty: Añade tarjetas en la colección `_outputs` para poblar esta sección.
120
+
121
+ repositories:
122
+ github_users: Usuarios de GitHub
123
+ github_repositories: Repositorios de GitHub
124
+ empty: Añade usuarios o repositorios de GitHub en `_data/repositories.yml` para poblar esta sección.
125
+
126
+ theses:
127
+ empty: Todavía no hay tesis disponibles.
128
+ student: Doctorando/a
129
+ status: Estado
130
+ institution: Institución
131
+ year: Año
132
+ supervisors: Dirección
133
+ image_source: Fuente
134
+ status_values:
135
+ defended: Defendida
136
+ ongoing: En curso
137
+
138
+ reading:
139
+ bibliographic_record: Ficha bibliográfica
140
+ type: Tipo
141
+ publisher: Editorial
142
+ collection: Colección
143
+ edition: Edición
144
+ year: Año
145
+ pages: Páginas
146
+ isbn: ISBN
147
+ doi: DOI
148
+ language: Idioma
149
+ reviewed_on: Reseñado el
150
+ status: Estado
151
+ topics: Temas
152
+ rating: Valoración
153
+ links: Enlaces
154
+ external_resource: Recurso
155
+ doi_link: Registro DOI
156
+ openlibrary: Open Library
157
+ cite: Citar
158
+ how_to_cite: Cómo citar
159
+ bibtex: BibTeX
160
+ cover_caption: Cubierta
161
+ no_review: Todavía no hay texto de reseña.
162
+ back_to_readings: Volver a las lecturas
163
+ back_to_bibliography: Volver a la bibliografía
164
+ close_panel: Cerrar el panel
165
+ copy: Copiar
166
+ copied: Copiado
167
+ empty_shelf: Todavía no hay lecturas disponibles.
168
+ uncategorized: Sin categoría
169
+ collections: Colecciones
170
+ not_dated: s. f.
171
+ status_values:
172
+ abandoned: Abandonada
173
+ finished: Finalizada
174
+ interested: De interés
175
+ paused: Pausada
176
+ queued: En cola
177
+ reading: En lectura
178
+ reread: Relectura
179
+
180
+ publications:
181
+ metrics:
182
+ title: Bibliometría
183
+ indicators_calculated: Indicadores calculados a partir de
184
+ articles_label: artículos
185
+ updated_on: Actualizado el
186
+ scimago_meta: Metadatos del emparejamiento Scimago
187
+ coverage: cobertura
188
+ stale_rejected: descartados por obsolescencia
189
+ max_year_gap: brecha máxima de años
190
+ not_available: n/d
191
+
192
+ profile:
193
+ email: Correo
194
+ website: Web
195
+ location: Ubicación
196
+ recent_news: Últimas noticias
197
+ selected_publications: Publicaciones seleccionadas
198
+ active_projects: Proyectos activos
199
+ recent_posts: Últimas entradas
200
+ view_all_news: Todas las noticias
201
+ view_all_publications: Todas las publicaciones
202
+ view_all_projects: Todos los proyectos
203
+ view_all_posts: Todas las entradas
204
+
205
+ languages:
206
+ en: Inglés
207
+ es: Español
208
+ ca: Catalán
209
+
210
+ navigation:
211
+ previous: Anterior
212
+ next: Siguiente
213
+
214
+ documentation:
215
+ title: Documentación
216
+ contents: Tabla de contenidos
217
+ toggle_contents: Mostrar u ocultar la tabla de contenidos
218
+ site_navigation: Sitio
219
+ theme: Tema
220
+ theme_system: Sistema
221
+ theme_light: Claro
222
+ theme_dark: Oscuro
223
+ theme_cafe: Café
224
+ font_size: Tamaño del texto
225
+ font_decrease: Reducir el texto
226
+ font_increase: Aumentar el texto
227
+ font_reset: Restablecer el texto
228
+ search_placeholder: Buscar en la documentación
229
+ search_results: Resultados de búsqueda
230
+ search_no_results: Sin resultados
231
+ read_more: Leer más
232
+ in_this_section: En esta sección
233
+ in_this_subsection: En esta subsección
234
+ on_this_page: En esta página
235
+ profile: Perfil de documentación
236
+ profile_all: Toda la documentación
237
+ profile_page_notice: Esta página queda fuera del perfil de documentación activo, pero los enlaces directos siguen disponibles.
238
+
239
+ manual:
240
+ contents: Contenidos
241
+ download_pdf: Descargar PDF
242
+ release_channel: Canal de publicación
243
+ release_version: Versión publicada
244
+ on_this_page: En esta página
245
+ on_this_chapter: En este capítulo
246
+ previous: Anterior
247
+ next: Siguiente
248
+ start_reading: Empezar a leer
249
+ teachers: Profesorado
250
+ references: Bibliografía
251
+ bibliography: Bibliografía
252
+ books: Libros y manuales
253
+ articles: Artículos y otras publicaciones
254
+ selected_readings: Lecturas destacadas
255
+ more_readings: Más lecturas
256
+ no_chapters: Todavía no hay capítulos disponibles.
257
+ filter: Filtrar capítulos
258
+ cover: Inicio
259
+
260
+ search_placeholder: Escribe para buscar
261
+ search_results: Resultados de búsqueda
262
+ search_no_results: Sin resultados
263
+ toggle_sidebar: Mostrar u ocultar contenidos
264
+ font_decrease: Reducir el texto
265
+ font_increase: Aumentar el texto
266
+ font_reset: Restablecer el texto
267
+ chapter: Capítulo
268
+ figures:
269
+ label: Figura
270
+ list_title: Índice de figuras
271
+
272
+ tables:
273
+ label: Tabla
274
+ list_title: Índice de tablas
275
+
276
+ listings:
277
+ label: Código
278
+ list_title: Índice de códigos
@@ -0,0 +1,30 @@
1
+ <figure>
2
+ <audio
3
+ src="{% if include.cache_bust %}{{ include.path | relative_url | bust_file_cache }}{% else %}{{ include.path | relative_url }}{% endif %}"
4
+ {% if include.class %}
5
+ class="{{ include.class }}"
6
+ {% endif %}
7
+ {% if include.alt %}
8
+ alt="{{ include.alt }}"
9
+ {% endif %}
10
+ {% if include.title %}
11
+ title="{{ include.title }}"
12
+ {% endif %}
13
+ {% if include.autoplay %}
14
+ autoplay
15
+ {% endif %}
16
+ {% if include.controls %}
17
+ controls
18
+ {% endif %}
19
+ {% if include.loop %}
20
+ loop
21
+ {% endif %}
22
+ {% if include.muted %}
23
+ muted
24
+ {% endif %}
25
+ />
26
+
27
+ {% if include.caption %}
28
+ <figcaption class="caption">{{ include.caption }}</figcaption>
29
+ {% endif %}
30
+ </figure>
@@ -0,0 +1,5 @@
1
+ {% if site.bib_search %}
2
+ <script src="{{ '/assets/js/bibsearch.js' | relative_url | bust_file_cache }}" type="module"></script>
3
+ {% capture bib_filter_placeholder %}{% include t.liquid key='bib.filter_placeholder' default='Type to filter' %}{% endcapture %}
4
+ <input type="text" id="bibsearch" spellcheck="false" autocomplete="off" class="search bibsearch-form-input" placeholder="{{ bib_filter_placeholder | strip }}">
5
+ {% endif %}
@@ -0,0 +1,66 @@
1
+ {%- assign current_lang = page.lang | default: site.default_lang | default: site.lang -%}
2
+ {%- assign default_lang = site.default_lang | default: site.lang -%}
3
+
4
+ {%- if paginator and paginator.posts -%}
5
+ {%- assign localized_posts = paginator.posts | where: 'lang', current_lang -%}
6
+ {%- assign fallback_posts = paginator.posts | where_exp: 'post', 'post.lang == nil' -%}
7
+ {%- assign archive_posts = localized_posts | concat: fallback_posts -%}
8
+ {%- if archive_posts.size == 0 -%}
9
+ {%- assign archive_posts = paginator.posts -%}
10
+ {%- endif -%}
11
+ {%- else -%}
12
+ {%- assign localized_posts = site.posts | where: 'lang', current_lang -%}
13
+ {%- assign fallback_posts = site.posts | where_exp: 'post', 'post.lang == nil' -%}
14
+ {%- assign localized_posts = localized_posts | concat: fallback_posts -%}
15
+ {%- if current_lang != default_lang and localized_posts.size == fallback_posts.size -%}
16
+ {%- assign default_lang_posts = site.posts | where: 'lang', default_lang -%}
17
+ {%- assign localized_posts = default_lang_posts | concat: fallback_posts -%}
18
+ {%- endif -%}
19
+ {%- assign archive_posts = localized_posts | sort: 'date' | reverse -%}
20
+ {%- endif -%}
21
+ {%- assign archive_posts_size = archive_posts | size -%}
22
+
23
+ <div class="blog-archive">
24
+ {% if archive_posts_size > 0 %}
25
+ {% if paginator and paginator.total_pages > 1 %}
26
+ {% assign newest_post = archive_posts | first %}
27
+ {% assign oldest_post = archive_posts | last %}
28
+ {% capture range_from_text %}{% include t.liquid key='blog.archive_range_from' default='Posts from' %}{% endcapture %}
29
+ {% capture range_to_text %}{% include t.liquid key='blog.archive_range_to' default='to' %}{% endcapture %}
30
+ {% capture newest_date %}{% include localized-date.liquid date=newest_post.date format_key='date.formats.medium' default_format='%b %-d, %Y' %}{% endcapture %}
31
+ {% capture oldest_date %}{% include localized-date.liquid date=oldest_post.date format_key='date.formats.medium' default_format='%b %-d, %Y' %}{% endcapture %}
32
+ <p class="blog-archive-range">{{ range_from_text | strip }} {{ oldest_date | strip }} {{ range_to_text | strip }} {{ newest_date | strip }}.</p>
33
+ {% endif %}
34
+ {% for item in archive_posts %}
35
+ {% capture item_reading_time_html %}{% include post-reading-time.liquid item=item content=item.content %}{% endcapture %}
36
+ {% assign item_reading_time_html = item_reading_time_html | strip %}
37
+ <article class="blog-archive-item">
38
+ <p class="blog-archive-meta">
39
+ <time datetime="{{ item.date | date_to_xmlschema }}">{% include localized-date.liquid date=item.date format_key='date.formats.medium' default_format='%b %-d, %Y' %}</time>
40
+ {% if item_reading_time_html != '' %}{{ item_reading_time_html }}{% endif %}
41
+ {% if item.categories and item.categories.size > 0 %}<span>{{ item.categories | join: ', ' }}</span>{% endif %}
42
+ </p>
43
+ <h2 class="blog-archive-title">
44
+ {% if item.redirect == blank %}
45
+ <a href="{{ item.url | relative_url }}">{{ item.title }}</a>
46
+ {% elsif item.redirect contains '://' %}
47
+ <a href="{{ item.redirect }}" target="_blank" rel="noopener">{{ item.title }}</a>
48
+ {% else %}
49
+ <a href="{{ item.redirect | relative_url }}">{{ item.title }}</a>
50
+ {% endif %}
51
+ </h2>
52
+ {% assign item_excerpt = item.description | default: item.excerpt | strip_html | strip_newlines %}
53
+ {% if item_excerpt %}<p class="blog-archive-excerpt">{{ item_excerpt }}</p>{% endif %}
54
+ {% if item.tags and item.tags.size > 0 %}
55
+ <ul class="blog-archive-tags" aria-label="Tags">
56
+ {% for tag in item.tags %}<li>{{ tag }}</li>{% endfor %}
57
+ </ul>
58
+ {% endif %}
59
+ </article>
60
+ {% endfor %}
61
+ {% else %}
62
+ <p>{% include t.liquid key='blog.empty' default='No blog posts yet.' %}</p>
63
+ {% endif %}
64
+ </div>
65
+
66
+ {% include pagination.liquid %}
@@ -0,0 +1,33 @@
1
+ {% assign citation_item = include.item | default: page %}
2
+ {% assign citation_title = include.title | default: citation_item.title %}
3
+ {% assign citation_author = include.author | default: citation_item.author %}
4
+ {% assign citation_publisher = include.publisher | default: citation_item.publisher %}
5
+ {% assign citation_year = include.year | default: citation_item.year | default: citation_item.released %}
6
+ {% assign citation_isbn = include.isbn | default: citation_item.isbn %}
7
+ {% assign citation_doi = include.doi | default: citation_item.doi %}
8
+ {% assign citation_url = citation_item.url | absolute_url %}
9
+ {% assign citation_key_author = citation_author | default: citation_title | split: '&' | first | split: ',' | first | split: ' ' | last | slugify %}
10
+ {% assign citation_key_year = citation_year | default: 'nd' %}
11
+ {% assign citation_key = citation_item.citation_key | default: citation_key_author | append: citation_key_year | append: citation_title | slugify %}
12
+ {% assign bibtex_author = citation_author | replace: ' & ', ' and ' %}
13
+
14
+ {% capture how_to_cite_text %}{% include t.liquid key='reading.how_to_cite' default='How to cite' %}{% endcapture %}
15
+ {% capture bibtex_text %}{% include t.liquid key='reading.bibtex' default='BibTeX' %}{% endcapture %}
16
+
17
+ <div class="reading-citation">
18
+ <h3>{{ how_to_cite_text | strip }}</h3>
19
+ <p>
20
+ {% if citation_author %}{{ citation_author }}{% endif %}{% if citation_year %} ({{ citation_year }}){% endif %}.
21
+ <em>{{ citation_title }}</em>{% if citation_publisher %}. {{ citation_publisher }}{% endif %}{% if citation_doi %}. https://doi.org/{{ citation_doi }}{% elsif citation_isbn %}. ISBN {{ citation_isbn }}{% endif %}.
22
+ </p>
23
+ <h3>{{ bibtex_text | strip }}</h3>
24
+ <pre><code class="language-bibtex">@book{ {{- citation_key -}},
25
+ title = { {{- citation_title -}} }{% if bibtex_author %},
26
+ author = { {{- bibtex_author -}} }{% endif %}{% if citation_year %},
27
+ year = { {{- citation_year -}} }{% endif %}{% if citation_publisher %},
28
+ publisher = { {{- citation_publisher -}} }{% endif %}{% if citation_isbn %},
29
+ isbn = { {{- citation_isbn -}} }{% endif %}{% if citation_doi %},
30
+ doi = { {{- citation_doi -}} }{% endif %},
31
+ url = { {{- citation_url -}} }
32
+ }</code></pre>
33
+ </div>
@@ -0,0 +1,26 @@
1
+ <br>
2
+ <hr>
3
+ <br>
4
+
5
+ If you found this useful, please cite this as:
6
+
7
+ {% capture citation_quote -%}
8
+ > {{ site.last_name }}, {{ site.first_name }}{% if site.middle_name %} {{ site.middle_name }}{% endif %} ({{ page.date | date: "%b %Y" }}). {{ page.title }}. {% if site.title != 'blank' %}{{ site.title }}. {% endif %}{{ site.url }}.
9
+ {%- endcapture %}
10
+ {{ citation_quote | markdownify }}
11
+
12
+ <p>or as a BibTeX entry:</p>
13
+
14
+ {% capture citation_code -%}
15
+ ```bibtex
16
+ @article{ {{- site.last_name | downcase }}{{ page.date | date: "%Y" }}{{ page.title | slugify }},
17
+ title = { {{- page.title -}} },
18
+ author = { {{- site.last_name }}, {{ site.first_name }}{% if site.middle_name %} {{ site.middle_name }}{% endif -%}},
19
+ {%- if site.title != 'blank' %}journal = { {{- site.title -}} },{% endif %}
20
+ year = { {{- page.date | date: "%Y" -}} },
21
+ month = { {{- page.date | date: "%b" -}} },
22
+ url = { {{- site.url }}{{ page.url -}} }
23
+ }
24
+ ```
25
+ {%- endcapture %}
26
+ {{ citation_code | markdownify }}
@@ -0,0 +1,3 @@
1
+ {%- comment -%}
2
+ CUSTOM: put extra <head> content here (meta tags, preload links, extra CSS, etc.)
3
+ {%- endcomment -%}
@@ -0,0 +1,5 @@
1
+ {%- comment -%}
2
+ CUSTOM: load custom JavaScript here (kept separate to make template upgrades easy)
3
+ {%- endcomment -%}
4
+
5
+ <script defer src="{{ '/assets/js/custom.js' | relative_url }}"></script>
@@ -0,0 +1,5 @@
1
+ <ul class="card-text font-weight-light list-group list-group-flush">
2
+ {% for content in entry.contents %}
3
+ <li class="list-group-item">{{ content }}</li>
4
+ {% endfor %}
5
+ </ul>
@@ -0,0 +1,51 @@
1
+ <div class="list-groups">
2
+ {% for content in entry.contents %}
3
+ <div class="list-group col-md-6">
4
+ <table class="table-cv list-group-table">
5
+ <tbody>
6
+ <tr>
7
+ {% if content.icon %}
8
+ <td class="list-group-category-icon"><i class="{{ content.icon }}"></i></td>
9
+ {% else %}
10
+ <td class="list-group-category-icon"></td>
11
+ {% endif %}
12
+ <!-- Calculate colspan number for category title -->
13
+ {% assign i = 1 %}
14
+ {% for item in content.items %}
15
+ {% assign i = i | plus: 1 %}
16
+ {% endfor %}
17
+ <td colspan="{{ i }}" class="list-group-category">{{ content.category }}</td>
18
+ </tr>
19
+ {% for item in content.items %}
20
+ <tr>
21
+ <td></td>
22
+ <td class="list-group-name">
23
+ <b>{{ item.name }}</b>
24
+ </td>
25
+ {% if item.level %}
26
+ <td class="list-group-level">{{ item.level }}</td>
27
+ {% endif %}
28
+ {% if item.school %}
29
+ <td class="list-group-school">{{ item.school }}
30
+ {% endif %}
31
+ {% if item.time %}
32
+ <br>
33
+ <span class="list-group-time">{{ item.time }}</span>
34
+ </td>
35
+ {% else %}
36
+ </td>
37
+ {% endif %}
38
+ {% if item.link %}
39
+ <td class="list-group-link">
40
+ <a href="{{ item.link }}" target="_blank" class="btncv z-depth-0">
41
+ {% if item.linkname %}{{ item.linkname }}{% else %}DOC{% endif %}
42
+ </a>
43
+ </td>
44
+ {% endif %}
45
+ </tr>
46
+ {% endfor %}
47
+ </tbody>
48
+ </table>
49
+ </div>
50
+ {% endfor %}
51
+ </div>
@@ -0,0 +1,29 @@
1
+ <table class="table table-cv table-sm table-borderless table-responsive">
2
+ {% for content in entry.contents %}
3
+ <tr>
4
+ <td class="p-1 pr-2 font-weight-bold">
5
+ <b>{{ content.name }}</b>
6
+ </td>
7
+ {% if content.value %}
8
+ <td class="p-1 pl-2 font-weight-light text">{{ content.value }}</td>
9
+ {% endif %}
10
+ {% if content.links %}
11
+ <td class="p-1 pl-2 font-weight-light text">
12
+ <div class="container-pdf">
13
+ {% for item in content.links %}
14
+ {% if item.link %}
15
+ <div class="container-link-button">
16
+ {% if item.name %}
17
+ <a href="{{ item.link }}" target="_blank" class="btncv z-depth-0">{{ item.name }}</a>
18
+ {% else %}
19
+ <a href="{{ item.link }}" target="_blank" class="btncv z-depth-0">doc</a>
20
+ {% endif %}
21
+ </div>
22
+ {% endif %}
23
+ {% endfor %}
24
+ </div>
25
+ </td>
26
+ {% endif %}
27
+ </tr>
28
+ {% endfor %}
29
+ </table>
@@ -0,0 +1,16 @@
1
+ <ul class="card-text font-weight-light list-group list-group-flush">
2
+ {% for content in entry.contents %}
3
+ <li class="list-group-item">
4
+ <h5 class="font-italic">{{ content.title }}</h5>
5
+ {% if content.items %}
6
+ <ul class="subitems">
7
+ {% for subitem in content.items %}
8
+ <li>
9
+ <span class="subitem">{{ subitem }}</span>
10
+ </li>
11
+ {% endfor %}
12
+ </ul>
13
+ {% endif %}
14
+ </li>
15
+ {% endfor %}
16
+ </ul>
@@ -0,0 +1,118 @@
1
+ <ul class="card-text font-weight-light list-group list-group-flush">
2
+ {% for content in entry.contents %}
3
+ <li class="list-group-item">
4
+ <div class="row">
5
+ {% if content.year %}
6
+ <div class="col-xs-2 col-sm-2 col-md-2 text-center" style="width: 75px">
7
+ <table class="table-cv">
8
+ <tbody>
9
+ <tr>
10
+ <td>
11
+ <span class="badge font-weight-bold danger-color-dark text-uppercase align-middle" style="min-width: 75px">
12
+ {{- content.year -}}
13
+ </span>
14
+ </td>
15
+ </tr>
16
+ {% if content.location %}
17
+ <tr>
18
+ <td>
19
+ <p class="location">
20
+ <i class="fa-solid fa-location-dot iconlocation"></i>
21
+ {{ content.location }}
22
+ </p>
23
+ </td>
24
+ </tr>
25
+ {% endif %}
26
+ </tbody>
27
+ </table>
28
+ </div>
29
+ {% endif %}
30
+ <div class="col-xs-10 col-sm-10 col-md-10 mt-2 mt-md-0">
31
+ {% if content.title %}
32
+ <h6 class="title font-weight-bold ml-1 ml-md-4">{{ content.title }}</h6>
33
+ {% endif %}
34
+ {% if content.department or content.institution %}
35
+ <table class="table-cv ml-1 ml-md-4 institution">
36
+ <tbody>
37
+ {% if content.institution %}
38
+ <tr>
39
+ <td style="vertical-align: top; text-align: center" class="institution">
40
+ <i class="fa-solid fa-building-columns iconinstitution"></i>
41
+ </td>
42
+ <td class="institution">{{ content.institution }}</td>
43
+ </tr>
44
+ {% endif %}
45
+ {% if content.department %}
46
+ <tr>
47
+ <td style="vertical-align: top; text-align: center" class="department">
48
+ <i class="fa-regular fa-circle-dot icondepartment"></i>
49
+ </td>
50
+ <td class="department">{{ content.department }}</td>
51
+ </tr>
52
+ {% endif %}
53
+ </tbody>
54
+ </table>
55
+ {% endif %}
56
+ {% if content.maindescription %}
57
+ <div class="ml-1 ml-md-4">{{ content.maindescription }}</div>
58
+ {% endif %}
59
+ {% if content.description %}
60
+ <ul class="items">
61
+ {% for item in content.description %}
62
+ <li>
63
+ {% if item.contents %}
64
+ <span class="item-title">{{ item.title }}</span>
65
+ <ul class="subitems">
66
+ {% for subitem in item.contents %}
67
+ <li>
68
+ <span class="subitem">{{ subitem }}</span>
69
+ </li>
70
+ {% endfor %}
71
+ </ul>
72
+ {% else %}
73
+ <span class="item">{{ item }}</span>
74
+ {% endif %}
75
+ </li>
76
+ {% endfor %}
77
+ </ul>
78
+ {% endif %}
79
+ {% if content.items %}
80
+ <ul class="items">
81
+ {% for item in content.items %}
82
+ <li>
83
+ {% if item.contents %}
84
+ <span class="item-title">{{ item.title }}</span>
85
+ <ul class="subitems">
86
+ {% for subitem in item.contents %}
87
+ <li>
88
+ <span class="subitem">{{ subitem }}</span>
89
+ </li>
90
+ {% endfor %}
91
+ </ul>
92
+ {% else %}
93
+ <span class="item">{{ item }}</span>
94
+ {% endif %}
95
+ </li>
96
+ {% endfor %}
97
+ </ul>
98
+ {% endif %}
99
+ {% if content.linkitems %}
100
+ <div class="container-links ml-1 ml-md-4">
101
+ {% for item in content.linkitems %}
102
+ {% if item.link %}
103
+ <div class="container-link-button">
104
+ {% if item.linkname %}
105
+ <a href="{{ item.link }}" target="_blank" class="btncv z-depth-0">{{ item.linkname }}</a>
106
+ {% else %}
107
+ <a href="{{ item.link }}" target="_blank" class="btncv z-depth-0">doc</a>
108
+ {% endif %}
109
+ </div>
110
+ {% endif %}
111
+ {% endfor %}
112
+ </div>
113
+ {% endif %}
114
+ </div>
115
+ </div>
116
+ </li>
117
+ {% endfor %}
118
+ </ul>