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.
- checksums.yaml +7 -0
- data/LICENSE +20 -0
- data/Makefile +412 -0
- data/README.md +226 -0
- data/_config.yml +842 -0
- data/_data/i18n/ca.yml +278 -0
- data/_data/i18n/en.yml +278 -0
- data/_data/i18n/es.yml +278 -0
- data/_includes/audio.liquid +30 -0
- data/_includes/bib_search.liquid +5 -0
- data/_includes/blog-list.liquid +66 -0
- data/_includes/book-citation.liquid +33 -0
- data/_includes/citation.liquid +26 -0
- data/_includes/custom_head.liquid +3 -0
- data/_includes/custom_scripts.liquid +5 -0
- data/_includes/cv/list.liquid +5 -0
- data/_includes/cv/list_groups.liquid +51 -0
- data/_includes/cv/map.liquid +29 -0
- data/_includes/cv/nested_list.liquid +16 -0
- data/_includes/cv/time_table.liquid +118 -0
- data/_includes/cv-download-card.liquid +26 -0
- data/_includes/developer-mode-switcher.liquid +24 -0
- data/_includes/disqus.liquid +13 -0
- data/_includes/distill_scripts.liquid +298 -0
- data/_includes/documentation-download-detail.liquid +76 -0
- data/_includes/documentation-downloads.liquid +71 -0
- data/_includes/documentation-profile-attributes.liquid +4 -0
- data/_includes/documentation-section-toc.liquid +9 -0
- data/_includes/documentation-sidebar.liquid +112 -0
- data/_includes/figure.liquid +87 -0
- data/_includes/footer.liquid +66 -0
- data/_includes/giscus.liquid +25 -0
- data/_includes/head.liquid +220 -0
- data/_includes/header.liquid +544 -0
- data/_includes/latest_posts.liquid +61 -0
- data/_includes/localized-date.liquid +5 -0
- data/_includes/manual-bibliography.liquid +2 -0
- data/_includes/manual-featured-readings.liquid +12 -0
- data/_includes/manual-other-readings.liquid +12 -0
- data/_includes/manual-page-toc.liquid +11 -0
- data/_includes/manual-sidebar.liquid +58 -0
- data/_includes/manual-teachers.liquid +74 -0
- data/_includes/metadata.liquid +278 -0
- data/_includes/news.liquid +48 -0
- data/_includes/newsletter.liquid +68 -0
- data/_includes/page-hero.liquid +96 -0
- data/_includes/page-link.liquid +8 -0
- data/_includes/pagination.liquid +22 -0
- data/_includes/post-reading-time.liquid +29 -0
- data/_includes/previous-next.liquid +37 -0
- data/_includes/profile-card.liquid +49 -0
- data/_includes/profile-feature-matrix.liquid +75 -0
- data/_includes/profile-highlights.liquid +122 -0
- data/_includes/project-grid.liquid +26 -0
- data/_includes/project-resource-link.liquid +45 -0
- data/_includes/project-resources.liquid +21 -0
- data/_includes/projects.liquid +38 -0
- data/_includes/projects_horizontal.liquid +37 -0
- data/_includes/publications-metrics-summary.liquid +69 -0
- data/_includes/publications-summary.liquid +127 -0
- data/_includes/reading-biblio-controls.liquid +65 -0
- data/_includes/reading-cover-card.liquid +93 -0
- data/_includes/reading-rating.liquid +11 -0
- data/_includes/recommended-readings.liquid +30 -0
- data/_includes/related_posts.liquid +39 -0
- data/_includes/repository/repo.liquid +48 -0
- data/_includes/repository/repo_trophies.liquid +44 -0
- data/_includes/repository/repo_user.liquid +35 -0
- data/_includes/resume/awards.liquid +19 -0
- data/_includes/resume/basics.liquid +28 -0
- data/_includes/resume/certificates.liquid +35 -0
- data/_includes/resume/education.liquid +54 -0
- data/_includes/resume/interests.liquid +34 -0
- data/_includes/resume/languages.liquid +31 -0
- data/_includes/resume/projects.liquid +32 -0
- data/_includes/resume/publications.liquid +28 -0
- data/_includes/resume/references.liquid +31 -0
- data/_includes/resume/skills.liquid +33 -0
- data/_includes/resume/volunteer.liquid +52 -0
- data/_includes/resume/work.liquid +52 -0
- data/_includes/scripts.liquid +364 -0
- data/_includes/search-data.js.liquid +341 -0
- data/_includes/selected_papers.liquid +3 -0
- data/_includes/t.liquid +31 -0
- data/_includes/team-grid.liquid +172 -0
- data/_includes/video.liquid +97 -0
- data/_layouts/about.liquid +93 -0
- data/_layouts/archive.liquid +45 -0
- data/_layouts/bib.liquid +677 -0
- data/_layouts/book-review.liquid +225 -0
- data/_layouts/book-shelf.liquid +66 -0
- data/_layouts/cv.liquid +127 -0
- data/_layouts/default.liquid +70 -0
- data/_layouts/distill.liquid +132 -0
- data/_layouts/documentation-download-detail.liquid +5 -0
- data/_layouts/documentation-home.liquid +100 -0
- data/_layouts/documentation-page.liquid +45 -0
- data/_layouts/manual-bib.liquid +73 -0
- data/_layouts/manual-chapter.liquid +99 -0
- data/_layouts/manual-featured-bib.liquid +100 -0
- data/_layouts/manual-home.liquid +120 -0
- data/_layouts/none.liquid +1 -0
- data/_layouts/outputs.liquid +29 -0
- data/_layouts/page.liquid +52 -0
- data/_layouts/post.liquid +95 -0
- data/_layouts/profile.liquid +36 -0
- data/_layouts/profiles.liquid +36 -0
- data/_layouts/project.liquid +7 -0
- data/_layouts/repositories.liquid +58 -0
- data/_layouts/theses.liquid +126 -0
- data/_plugins/bibliography_profiles.rb +164 -0
- data/_plugins/callouts.rb +104 -0
- data/_plugins/code_blocks.rb +277 -0
- data/_plugins/computation_figure_images.rb +266 -0
- data/_plugins/computation_sources.rb +42 -0
- data/_plugins/content_search_index.rb +210 -0
- data/_plugins/details.rb +23 -0
- data/_plugins/external-posts.rb +124 -0
- data/_plugins/figure_captions.rb +800 -0
- data/_plugins/file-exists.rb +22 -0
- data/_plugins/google-scholar-citations.rb +86 -0
- data/_plugins/hide-custom-bibtex.rb +18 -0
- data/_plugins/inspirehep-citations.rb +57 -0
- data/_plugins/localized_visual_sources.rb +145 -0
- data/_plugins/manual_release_metadata.rb +47 -0
- data/_plugins/mermaid_mmd_images.rb +233 -0
- data/_plugins/profile-pages.rb +28 -0
- data/_plugins/remove-accents.rb +32 -0
- data/_plugins/reproducible_build_time.rb +55 -0
- data/_plugins/search-data.rb +83 -0
- data/_plugins/theme-cache-bust.rb +56 -0
- data/_plugins/vega_visual_images.rb +290 -0
- data/_plugins/web_capture_images.rb +154 -0
- data/_sass/_base.scss +2133 -0
- data/_sass/_blog.scss +67 -0
- data/_sass/_callouts.scss +100 -0
- data/_sass/_custom.scss +437 -0
- data/_sass/_cv.scss +274 -0
- data/_sass/_developer.scss +97 -0
- data/_sass/_distill.scss +185 -0
- data/_sass/_documentation.scss +2220 -0
- data/_sass/_layout.scss +218 -0
- data/_sass/_manual.scss +2691 -0
- data/_sass/_profile.scss +323 -0
- data/_sass/_projects.scss +163 -0
- data/_sass/_reading.scss +465 -0
- data/_sass/_site-custom.scss +3 -0
- data/_sass/_tabs.scss +48 -0
- data/_sass/_team.scss +230 -0
- data/_sass/_themes.scss +254 -0
- data/_sass/_typograms.scss +132 -0
- data/_sass/_variables.scss +52 -0
- data/_sass/font-awesome/_animated.scss +152 -0
- data/_sass/font-awesome/_bordered-pulled.scss +20 -0
- data/_sass/font-awesome/_core.scss +49 -0
- data/_sass/font-awesome/_fixed-width.scss +7 -0
- data/_sass/font-awesome/_functions.scss +57 -0
- data/_sass/font-awesome/_icons.scss +13 -0
- data/_sass/font-awesome/_list.scss +18 -0
- data/_sass/font-awesome/_mixins.scss +65 -0
- data/_sass/font-awesome/_rotated-flipped.scss +31 -0
- data/_sass/font-awesome/_screen-reader.scss +14 -0
- data/_sass/font-awesome/_shims.scss +1578 -0
- data/_sass/font-awesome/_sizing.scss +16 -0
- data/_sass/font-awesome/_stacked.scss +32 -0
- data/_sass/font-awesome/_variables.scss +5044 -0
- data/_sass/font-awesome/brands.scss +30 -0
- data/_sass/font-awesome/fontawesome.scss +21 -0
- data/_sass/font-awesome/regular.scss +27 -0
- data/_sass/font-awesome/solid.scss +27 -0
- data/_sass/font-awesome/v4-shims.scss +11 -0
- data/_sass/tabler-icons/tabler-icons-filled.scss +1646 -0
- data/_sass/tabler-icons/tabler-icons-outline.scss +9859 -0
- data/_sass/tabler-icons/tabler-icons.scss +11463 -0
- data/_scripts/cronitor-analytics-setup.js +9 -0
- data/_scripts/giscus-setup.js +48 -0
- data/_scripts/google-analytics-setup.js +9 -0
- data/_scripts/open-panel-analytics-setup.js +14 -0
- data/_scripts/photoswipe-setup.js +11 -0
- data/assets/audio/epicaly-short-113909.mp3 +0 -0
- data/assets/bibliography/2018-12-22-distill.bib +7 -0
- data/assets/css/academicons.min.css +1 -0
- data/assets/css/bootstrap-toc.min.css +4 -0
- data/assets/css/bootstrap.min.css +7 -0
- data/assets/css/bootstrap.min.css.map +1 -0
- data/assets/css/jekyll-pygments-themes-github.css +209 -0
- data/assets/css/jekyll-pygments-themes-native.css +232 -0
- data/assets/css/jupyter-grade3.css +3758 -0
- data/assets/css/jupyter-monokai.css +3758 -0
- data/assets/css/jupyter.css +383 -0
- data/assets/css/main.scss +36 -0
- data/assets/css/mdb.min.css +48 -0
- data/assets/css/mdb.min.css.map +1 -0
- data/assets/css/scholar-icons.css +386 -0
- data/assets/fonts/academicons.ttf +0 -0
- data/assets/fonts/academicons.woff +0 -0
- data/assets/fonts/scholar-icons.ttf +0 -0
- data/assets/fonts/scholar-icons.woff +0 -0
- data/assets/fonts/tabler-icons-filled.ttf +0 -0
- data/assets/fonts/tabler-icons-filled.woff +0 -0
- data/assets/fonts/tabler-icons-filled.woff2 +0 -0
- data/assets/fonts/tabler-icons-outline.ttf +0 -0
- data/assets/fonts/tabler-icons-outline.woff +0 -0
- data/assets/fonts/tabler-icons-outline.woff2 +0 -0
- data/assets/fonts/tabler-icons.ttf +0 -0
- data/assets/fonts/tabler-icons.woff +0 -0
- data/assets/fonts/tabler-icons.woff2 +0 -0
- data/assets/html/relativity.html +15 -0
- data/assets/img/1.jpg +0 -0
- data/assets/img/10.jpg +0 -0
- data/assets/img/11.jpg +0 -0
- data/assets/img/12.jpg +0 -0
- data/assets/img/2.jpg +0 -0
- data/assets/img/3.jpg +0 -0
- data/assets/img/4.jpg +0 -0
- data/assets/img/5.jpg +0 -0
- data/assets/img/6.jpg +0 -0
- data/assets/img/7.jpg +0 -0
- data/assets/img/8.jpg +0 -0
- data/assets/img/9.jpg +0 -0
- data/assets/img/book_covers/the_godfather.jpg +0 -0
- data/assets/img/brand/dosquartsdedocs-logo-cafe.svg +31 -0
- data/assets/img/brand/dosquartsdedocs-logo-footer-cafe.svg +31 -0
- data/assets/img/brand/dosquartsdedocs-logo-white.svg +31 -0
- data/assets/img/brand/dosquartsdedocs-logo.svg +31 -0
- data/assets/img/prof_pic.jpg +0 -0
- data/assets/img/prof_pic_color.png +0 -0
- data/assets/img/profile-placeholder.svg +8 -0
- data/assets/img/publication_preview/brownian-motion.gif +0 -0
- data/assets/img/publication_preview/goodchild1992-gis-cover.jpg +0 -0
- data/assets/img/publication_preview/gutierrez2020-jtrg-preview.jpg +0 -0
- data/assets/img/publication_preview/harvey1989-postmodernity-cover.jpg +0 -0
- data/assets/img/publication_preview/tobler1970-economic-geography-cover.jpg +0 -0
- data/assets/img/publication_preview/tuan1977-space-place-cover.jpg +0 -0
- data/assets/img/publication_preview/wave-mechanics.gif +0 -0
- data/assets/img/publication_preview/zaragozi2025-rooftop-pv-preview.jpg +0 -0
- data/assets/img/rhino.png +0 -0
- data/assets/img/team/aaron-gutierrez.png +0 -0
- data/assets/img/team/alba-font.png +0 -0
- data/assets/img/team/alba-viana.png +0 -0
- data/assets/img/team/alejandro-gonzalez.png +0 -0
- data/assets/img/team/ana-pastor.png +0 -0
- data/assets/img/team/antoni-domenech.png +0 -0
- data/assets/img/team/benito-zaragozi.png +0 -0
- data/assets/img/team/cinta-sanz.png +0 -0
- data/assets/img/team/daniel-miravet.png +0 -0
- data/assets/img/team/eugenia-altamirano.png +0 -0
- data/assets/img/team/fiammetta-brandajs.png +0 -0
- data/assets/img/team/francesc-gonzalez.png +0 -0
- data/assets/img/team/isabel-paulino.png +0 -0
- data/assets/img/team/joan-borras.png +0 -0
- data/assets/img/team/julie-wilson.png +0 -0
- data/assets/img/team/liliana-sole.png +0 -0
- data/assets/img/team/maria-casado.png +0 -0
- data/assets/img/team/maria-medina.png +0 -0
- data/assets/img/team/marta-nello.png +0 -0
- data/assets/img/team/mogrify +1 -0
- data/assets/img/team/oscar-saladie.png +0 -0
- data/assets/img/team/paolo-russo.png +0 -0
- data/assets/img/team/raquel-santos.png +0 -0
- data/assets/img/team/salvador-anton.png +0 -0
- data/assets/img/team/sunsi-huertas.png +0 -0
- data/assets/img/team/user-placeholder.png +0 -0
- data/assets/img/team/wilbert-den-hoed.png +0 -0
- data/assets/img/team/xavier-delclos.png +0 -0
- data/assets/img/template_error.png +0 -0
- data/assets/js/bibsearch.js +70 -0
- data/assets/js/bootstrap-toc.min.js +5 -0
- data/assets/js/bootstrap.bundle.min.js +7 -0
- data/assets/js/bootstrap.bundle.min.js.map +1 -0
- data/assets/js/callouts.js +115 -0
- data/assets/js/chartjs-setup.js +14 -0
- data/assets/js/common.js +117 -0
- data/assets/js/content-search-match.js +159 -0
- data/assets/js/content-search.js +441 -0
- data/assets/js/copy_code.js +60 -0
- data/assets/js/custom.js +6 -0
- data/assets/js/developer-mode.js +103 -0
- data/assets/js/diff2html-setup.js +20 -0
- data/assets/js/distillpub/overrides.js +27 -0
- data/assets/js/distillpub/template.v2.js +9616 -0
- data/assets/js/distillpub/template.v2.js.map +1 -0
- data/assets/js/distillpub/transforms.v2.js +14557 -0
- data/assets/js/distillpub/transforms.v2.js.map +1 -0
- data/assets/js/documentation.js +435 -0
- data/assets/js/echarts-setup.js +29 -0
- data/assets/js/highlight-search-term.js +110 -0
- data/assets/js/jupyter_new_tab.js +18 -0
- data/assets/js/leaflet-setup.js +22 -0
- data/assets/js/manual.js +308 -0
- data/assets/js/masonry.js +12 -0
- data/assets/js/mathjax-setup.js +46 -0
- data/assets/js/mermaid-setup.js +37 -0
- data/assets/js/newsletter.js +105 -0
- data/assets/js/no_defer.js +24 -0
- data/assets/js/plotly-setup.js +52 -0
- data/assets/js/profile-nav.js +92 -0
- data/assets/js/progress-bar.js +73 -0
- data/assets/js/pseudocode-setup.js +18 -0
- data/assets/js/search/base-styles.min.js +286 -0
- data/assets/js/search/command-score.min.js +7 -0
- data/assets/js/search/hotkeys-js/hotkeys.esm.min.js +18 -0
- data/assets/js/search/lit/decorators.min.js +7 -0
- data/assets/js/search/lit/directives/class-map.min.js +7 -0
- data/assets/js/search/lit/directives/join.min.js +7 -0
- data/assets/js/search/lit/directives/live.min.js +7 -0
- data/assets/js/search/lit/directives/ref.min.js +7 -0
- data/assets/js/search/lit/directives/repeat.min.js +7 -0
- data/assets/js/search/lit/directives/unsafe-html.min.js +7 -0
- data/assets/js/search/lit/index.min.js +7 -0
- data/assets/js/search/lit-element/lit-element.min.js +12 -0
- data/assets/js/search/lit-html/directives/class-map.min.js +22 -0
- data/assets/js/search/lit-html/directives/join.min.js +12 -0
- data/assets/js/search/lit-html/directives/live.min.js +28 -0
- data/assets/js/search/lit-html/directives/ref.min.js +32 -0
- data/assets/js/search/lit-html/directives/repeat.min.js +27 -0
- data/assets/js/search/lit-html/directives/unsafe-html.min.js +22 -0
- data/assets/js/search/lit-html/is-server.min.js +12 -0
- data/assets/js/search/lit-html/lit-html.min.js +12 -0
- data/assets/js/search/ninja-action.min.js +101 -0
- data/assets/js/search/ninja-footer.min.js +62 -0
- data/assets/js/search/ninja-header.min.js +78 -0
- data/assets/js/search/ninja-keys.min.js +39 -0
- data/assets/js/search/reactive-element/decorators/custom-element.min.js +12 -0
- data/assets/js/search/reactive-element/decorators/event-options.min.js +12 -0
- data/assets/js/search/reactive-element/decorators/property.min.js +22 -0
- data/assets/js/search/reactive-element/decorators/query-all.min.js +17 -0
- data/assets/js/search/reactive-element/decorators/query-assigned-elements.min.js +17 -0
- data/assets/js/search/reactive-element/decorators/query-assigned-nodes.min.js +17 -0
- data/assets/js/search/reactive-element/decorators/query-async.min.js +17 -0
- data/assets/js/search/reactive-element/decorators/query.min.js +17 -0
- data/assets/js/search/reactive-element/decorators/state.min.js +27 -0
- data/assets/js/search/reactive-element/reactive-element.min.js +17 -0
- data/assets/js/search-setup.js +17 -0
- data/assets/js/shortcut-key.js +11 -0
- data/assets/js/tabs.min.js +5 -0
- data/assets/js/theme.js +314 -0
- data/assets/js/tooltips-setup.js +3 -0
- data/assets/js/typograms.js +1341 -0
- data/assets/js/vanilla-back-to-top.min.js +1 -0
- data/assets/js/vega-setup.js +24 -0
- data/assets/js/venobox-setup.js +5 -0
- data/assets/js/wechat.js +14 -0
- data/assets/js/zoom.js +15 -0
- data/assets/json/resume.json +98 -0
- data/assets/json/table_data.json +128 -0
- data/assets/jupyter/blog.ipynb +48 -0
- data/assets/pdf/example_pdf.pdf +0 -0
- data/assets/plotly/demo.html +72 -0
- data/assets/video/pexels-engin-akyurt-6069112-960x540-30fps.mp4 +0 -0
- data/assets/webfonts/fa-brands-400.ttf +0 -0
- data/assets/webfonts/fa-brands-400.woff2 +0 -0
- data/assets/webfonts/fa-regular-400.ttf +0 -0
- data/assets/webfonts/fa-regular-400.woff2 +0 -0
- data/assets/webfonts/fa-solid-900.ttf +0 -0
- data/assets/webfonts/fa-solid-900.woff2 +0 -0
- data/assets/webfonts/fa-v4compatibility.ttf +0 -0
- data/assets/webfonts/fa-v4compatibility.woff2 +0 -0
- data/docs/Gemfile +5 -0
- data/docs/_config.yml +83 -0
- data/docs/_documentation/en/01-quick-start.md +115 -0
- data/docs/_documentation/en/02-tools.md +146 -0
- data/docs/_documentation/en/03-usage.md +107 -0
- data/docs/_documentation/en/04-jekyll-basics.md +51 -0
- data/docs/_documentation/en/05-pages-collections.md +68 -0
- data/docs/_documentation/en/06-github-web-editing.md +92 -0
- data/docs/_documentation/en/10-profiles.md +125 -0
- data/docs/_documentation/en/11-unaltreselfie.md +39 -0
- data/docs/_documentation/en/12-unaltreprojecte.md +38 -0
- data/docs/_documentation/en/13-unaltremanual.md +237 -0
- data/docs/_documentation/en/14-unaltredocs.md +92 -0
- data/docs/_documentation/en/15-profile-checklist.md +39 -0
- data/docs/_documentation/en/20-syntax.md +353 -0
- data/docs/_documentation/en/21-themes.md +103 -0
- data/docs/_documentation/en/22-feature-reference.md +56 -0
- data/docs/_documentation/en/23-front-matter.md +51 -0
- data/docs/_documentation/en/24-data-files.md +28 -0
- data/docs/_documentation/en/30-customization.md +448 -0
- data/docs/_documentation/en/31-template.md +55 -0
- data/docs/_documentation/en/32-development.md +108 -0
- data/docs/_documentation/en/33-reusable-workflows.md +136 -0
- data/docs/_documentation/en/40-distribution.md +164 -0
- data/docs/_documentation/en/41-bibliometrics.md +137 -0
- data/docs/_documentation/en/42-docker-image.md +185 -0
- data/docs/_documentation/en/50-faq.md +33 -0
- data/docs/_pages/ca/index.md +35 -0
- data/docs/_pages/en/index.md +35 -0
- data/docs/_pages/es/index.md +35 -0
- data/docs/agents/action-prompts/00-start-site-session.txt +10 -0
- data/docs/agents/action-prompts/05-create-new-web.txt +5 -0
- data/docs/agents/action-prompts/10-content-update.txt +9 -0
- data/docs/agents/action-prompts/15-edit-default-content.txt +8 -0
- data/docs/agents/action-prompts/20-manual-teaching-materials.txt +18 -0
- data/docs/agents/action-prompts/22-manual-style-audit.txt +14 -0
- data/docs/agents/action-prompts/23-manual-structure-audit.txt +17 -0
- data/docs/agents/action-prompts/25-translation-prepublish.txt +8 -0
- data/docs/agents/action-prompts/30-project-site-update.txt +7 -0
- data/docs/agents/action-prompts/40-documentation-update.txt +7 -0
- data/docs/agents/action-prompts/50-bibliography-entry.txt +7 -0
- data/docs/agents/action-prompts/60-bibliometrics-refresh.txt +7 -0
- data/docs/agents/action-prompts/70-build-and-review.txt +12 -0
- data/docs/agents/manual-authoring-components.md +255 -0
- data/docs/agents/mcp-contract.md +162 -0
- data/docs/agents/quarto-computation-adoption.md +102 -0
- data/docs/assets/img/unaltraweb-docs-hero.svg +36 -0
- data/lib/unaltraweb/version.rb +8 -0
- data/lib/unaltraweb.rb +31 -0
- data/requirements.txt +5 -0
- data/scripts/biblio/fetch_scimago_csv.sh +126 -0
- data/scripts/biblio/metrics_common.py +154 -0
- data/scripts/biblio/metrics_merge_meta.py +73 -0
- data/scripts/biblio/metrics_update.py +826 -0
- data/scripts/computations/python/Dockerfile +37 -0
- data/scripts/computations/r/Dockerfile +31 -0
- data/scripts/computations/render.py +1267 -0
- data/scripts/cv/render_pdf_preview.sh +36 -0
- data/scripts/deploy/publish_branch.sh +80 -0
- data/scripts/generate_logo_variants.py +47 -0
- data/scripts/manual/Dockerfile +31 -0
- data/scripts/manual/build_pdf.py +1780 -0
- data/scripts/manual/filters/bibliography.lua +164 -0
- data/scripts/manual/filters/code-blocks.lua +102 -0
- data/scripts/manual/filters/figure-captions.lua +35 -0
- data/scripts/manual/publish_release.sh +281 -0
- data/scripts/manual/templates/manual.tex +494 -0
- data/scripts/manual/verify_release_assets.py +650 -0
- data/scripts/test_gem_build.py +128 -0
- data/scripts/test_reproducible_jekyll_build.py +191 -0
- data/scripts/test_wheel_install.py +282 -0
- data/scripts/unaltraweb-docker-mount.sh +36 -0
- data/scripts/unaltraweb-mcp-bootstrap.sh +105 -0
- data/scripts/unaltraweb-mcp-cleanup.sh +73 -0
- data/scripts/unaltraweb-mcp-project-id.sh +34 -0
- data/scripts/validate_distribution.py +563 -0
- data/scripts/validate_workflows.py +1285 -0
- data/scripts/web_captures/Dockerfile +31 -0
- data/scripts/web_captures/capture.mjs +157 -0
- data/scripts/web_captures/package-lock.json +56 -0
- data/scripts/web_captures/package.json +9 -0
- data/scripts/web_captures/render.py +867 -0
- data/src/unaltraweb_mcp/component-contract.json +153 -0
- data/src/unaltraweb_mcp/component-contract.schema.json +87 -0
- data/src/unaltraweb_mcp/docker_mount.py +19 -0
- metadata +861 -0
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
{% assign cv_pdf = include.pdf | default: page.cv_pdf %}
|
|
2
|
+
{% assign cv_preview = include.preview | default: page.cv_preview %}
|
|
3
|
+
{% assign cv_title = include.title | default: page.cv_title | default: page.title %}
|
|
4
|
+
{% assign cv_description = include.description | default: page.cv_description %}
|
|
5
|
+
|
|
6
|
+
{% if cv_pdf or cv_preview %}
|
|
7
|
+
<section class="cv-download-card">
|
|
8
|
+
{% if cv_preview %}
|
|
9
|
+
<a class="cv-download-preview" href="{{ cv_pdf | default: cv_preview | relative_url }}">
|
|
10
|
+
<img src="{{ cv_preview | relative_url }}" alt="{{ cv_title | escape }} preview">
|
|
11
|
+
</a>
|
|
12
|
+
{% endif %}
|
|
13
|
+
<div class="cv-download-body">
|
|
14
|
+
<h2>{{ cv_title }}</h2>
|
|
15
|
+
{% if cv_description %}<p>{{ cv_description }}</p>{% endif %}
|
|
16
|
+
{% if cv_pdf %}
|
|
17
|
+
<a class="cv-download-button" href="{{ cv_pdf | relative_url }}">
|
|
18
|
+
<i class="fa-solid fa-file-pdf" aria-hidden="true"></i>
|
|
19
|
+
<span>{{ include.button | default: 'Download PDF' }}</span>
|
|
20
|
+
</a>
|
|
21
|
+
{% else %}
|
|
22
|
+
<p class="cv-download-note">Add a PDF and generate a preview to enable the download button.</p>
|
|
23
|
+
{% endif %}
|
|
24
|
+
</div>
|
|
25
|
+
</section>
|
|
26
|
+
{% endif %}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
{% assign current_profile = include.current_profile | default: site.unaltraweb.site_profile | default: 'unaltreprojecte' %}
|
|
2
|
+
{% assign current_lang = page.lang | default: site.default_lang | default: site.lang | default: 'en' %}
|
|
3
|
+
{% assign switcher_baseurl = site.baseurl | default: '' %}
|
|
4
|
+
{% assign profile_targets = 'unaltreselfie|unaltreselfie|4001,unaltreprojecte|unaltreprojecte|4002,unaltremanual|unaltremanual|4003,unaltredocs|unaltredocs|4004' | split: ',' %}
|
|
5
|
+
|
|
6
|
+
<aside class="developer-mode-switcher" data-developer-mode-switcher aria-label="Developer mode">
|
|
7
|
+
<div class="developer-mode-header" data-developer-mode-handle title="Drag to move">
|
|
8
|
+
<strong>Developer mode</strong>
|
|
9
|
+
<span class="developer-mode-current">Explore a build profile</span>
|
|
10
|
+
</div>
|
|
11
|
+
<nav class="developer-profile-switcher" aria-label="Explore a build profile">
|
|
12
|
+
{% for profile_target in profile_targets %}
|
|
13
|
+
{% assign profile_parts = profile_target | split: '|' %}
|
|
14
|
+
{% assign profile_key = profile_parts[0] %}
|
|
15
|
+
{% assign profile_label = profile_parts[1] %}
|
|
16
|
+
{% assign profile_port = profile_parts[2] %}
|
|
17
|
+
{% assign profile_active = false %}
|
|
18
|
+
{% if current_profile == profile_key %}
|
|
19
|
+
{% assign profile_active = true %}
|
|
20
|
+
{% endif %}
|
|
21
|
+
<a class="developer-profile-link{% if profile_active %} active{% endif %}" href="http://localhost:{{ profile_port }}{{ switcher_baseurl }}/{{ current_lang }}/" target="_self" data-developer-profile-link data-profile-port="{{ profile_port }}" data-profile-key="{{ profile_key }}"{% if profile_active %} aria-current="page" data-current-profile="{{ current_profile }}"{% endif %}>{{ profile_label }}</a>
|
|
22
|
+
{% endfor %}
|
|
23
|
+
</nav>
|
|
24
|
+
</aside>
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
<div id="disqus_thread" style="max-width: {{ site.max_width }}; margin: 0 auto;">
|
|
2
|
+
<script type="text/javascript">
|
|
3
|
+
var disqus_shortname = '{{ site.disqus_shortname }}';
|
|
4
|
+
var disqus_identifier = '{{ page.id }}';
|
|
5
|
+
var disqus_title = {{ page.title | jsonify }};
|
|
6
|
+
(function() {
|
|
7
|
+
var dsq = document.createElement('script'); dsq.type = 'text/javascript'; dsq.async = true;
|
|
8
|
+
dsq.src = '//' + disqus_shortname + '.disqus.com/embed.js';
|
|
9
|
+
(document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(dsq);
|
|
10
|
+
})();
|
|
11
|
+
</script>
|
|
12
|
+
<noscript>Please enable JavaScript to view the <a href="http://disqus.com/?ref_noscript">comments powered by Disqus.</a></noscript>
|
|
13
|
+
</div>
|
|
@@ -0,0 +1,298 @@
|
|
|
1
|
+
<!-- jQuery -->
|
|
2
|
+
<script
|
|
3
|
+
src="{{ site.third_party_libraries.jquery.url.js }}"
|
|
4
|
+
integrity="{{ site.third_party_libraries.jquery.integrity.js }}"
|
|
5
|
+
crossorigin="anonymous"
|
|
6
|
+
></script>
|
|
7
|
+
|
|
8
|
+
<!-- Bootsrap & MDB scripts -->
|
|
9
|
+
<script src="{{ '/assets/js/bootstrap.bundle.min.js' | relative_url }}"></script>
|
|
10
|
+
<script
|
|
11
|
+
src="{{ site.third_party_libraries.mdb.url.js }}"
|
|
12
|
+
integrity="{{ site.third_party_libraries.mdb.integrity.js }}"
|
|
13
|
+
crossorigin="anonymous"
|
|
14
|
+
></script>
|
|
15
|
+
|
|
16
|
+
<!-- Custom overrides -->
|
|
17
|
+
<script src="{{ '/assets/js/distillpub/overrides.js' | relative_url }}"></script>
|
|
18
|
+
|
|
19
|
+
{% if page.mermaid and page.mermaid.enabled %}
|
|
20
|
+
<!-- Mermaid and D3 -->
|
|
21
|
+
<script
|
|
22
|
+
defer
|
|
23
|
+
src="{{ site.third_party_libraries.mermaid.url.js }}"
|
|
24
|
+
integrity="{{ site.third_party_libraries.mermaid.integrity.js }}"
|
|
25
|
+
crossorigin="anonymous"
|
|
26
|
+
></script>
|
|
27
|
+
{% if page.mermaid.zoomable %}
|
|
28
|
+
<script
|
|
29
|
+
defer
|
|
30
|
+
src="{{ site.third_party_libraries.d3.url.js }}"
|
|
31
|
+
integrity="{{ site.third_party_libraries.d3.integrity.js }}"
|
|
32
|
+
crossorigin="anonymous"
|
|
33
|
+
></script>
|
|
34
|
+
{% endif %}
|
|
35
|
+
<script defer src="{{ '/assets/js/mermaid-setup.js' | relative_url | bust_file_cache }}" type="text/javascript"></script>
|
|
36
|
+
{% endif %}
|
|
37
|
+
|
|
38
|
+
{% if page.code_diff %}
|
|
39
|
+
<!-- Diff2HTML -->
|
|
40
|
+
<!-- diff2html doesn't go well with Bootstrap Table -->
|
|
41
|
+
<script
|
|
42
|
+
src="{{ site.third_party_libraries.diff2html.url.js }}"
|
|
43
|
+
integrity="{{ site.third_party_libraries.diff2html.integrity.js }}"
|
|
44
|
+
crossorigin="anonymous"
|
|
45
|
+
></script>
|
|
46
|
+
<script defer src="{{ '/assets/js/diff2html-setup.js' | relative_url | bust_file_cache }}" type="text/javascript"></script>
|
|
47
|
+
{% endif %}
|
|
48
|
+
|
|
49
|
+
{% if page.map %}
|
|
50
|
+
<!-- Leaflet -->
|
|
51
|
+
<script
|
|
52
|
+
src="{{ site.third_party_libraries.leaflet.url.js }}"
|
|
53
|
+
integrity="{{ site.third_party_libraries.leaflet.integrity.js }}"
|
|
54
|
+
crossorigin="anonymous"
|
|
55
|
+
></script>
|
|
56
|
+
<script defer src="{{ '/assets/js/leaflet-setup.js' | relative_url | bust_file_cache }}" type="text/javascript"></script>
|
|
57
|
+
{% endif %}
|
|
58
|
+
|
|
59
|
+
{% if page.chart and page.chart.chartjs %}
|
|
60
|
+
<!-- Chart.js -->
|
|
61
|
+
<script
|
|
62
|
+
defer
|
|
63
|
+
src="{{ site.third_party_libraries.chartjs.url.js }}"
|
|
64
|
+
integrity="{{ site.third_party_libraries.chartjs.integrity.js }}"
|
|
65
|
+
crossorigin="anonymous"
|
|
66
|
+
></script>
|
|
67
|
+
<script defer src="{{ '/assets/js/chartjs-setup.js' | relative_url | bust_file_cache }}" type="text/javascript"></script>
|
|
68
|
+
{% endif %}
|
|
69
|
+
|
|
70
|
+
{% if page.chart and page.chart.echarts %}
|
|
71
|
+
<!-- ECharts -->
|
|
72
|
+
<script
|
|
73
|
+
src="{{ site.third_party_libraries.echarts.url.js.library }}"
|
|
74
|
+
integrity="{{ site.third_party_libraries.echarts.integrity.js.library }}"
|
|
75
|
+
crossorigin="anonymous"
|
|
76
|
+
></script>
|
|
77
|
+
{% if site.enable_darkmode %}
|
|
78
|
+
<script
|
|
79
|
+
src="{{ site.third_party_libraries.echarts.url.js.dark_theme }}"
|
|
80
|
+
integrity="{{ site.third_party_libraries.echarts.integrity.js.dark_theme }}"
|
|
81
|
+
crossorigin="anonymous"
|
|
82
|
+
></script>
|
|
83
|
+
{% endif %}
|
|
84
|
+
<script defer src="{{ '/assets/js/echarts-setup.js' | relative_url | bust_file_cache }}" type="text/javascript"></script>
|
|
85
|
+
{% endif %}
|
|
86
|
+
|
|
87
|
+
{% if page.chart and page.chart.plotly %}
|
|
88
|
+
<!-- Plotly -->
|
|
89
|
+
<script
|
|
90
|
+
defer
|
|
91
|
+
src="{{ site.third_party_libraries.plotly.url.js }}"
|
|
92
|
+
integrity="{{ site.third_party_libraries.plotly.integrity.js }}"
|
|
93
|
+
crossorigin="anonymous"
|
|
94
|
+
></script>
|
|
95
|
+
<script defer src="{{ '/assets/js/plotly-setup.js' | relative_url | bust_file_cache }}" type="text/javascript"></script>
|
|
96
|
+
{% endif %}
|
|
97
|
+
|
|
98
|
+
{% if page.chart and page.chart.vega_lite %}
|
|
99
|
+
<!-- Vega -->
|
|
100
|
+
<script
|
|
101
|
+
defer
|
|
102
|
+
src="{{ site.third_party_libraries.vega.url.js }}"
|
|
103
|
+
integrity="{{ site.third_party_libraries.vega.integrity.js }}"
|
|
104
|
+
crossorigin="anonymous"
|
|
105
|
+
></script>
|
|
106
|
+
<script
|
|
107
|
+
defer
|
|
108
|
+
src="{{ site.third_party_libraries.vega-lite.url.js }}"
|
|
109
|
+
integrity="{{ site.third_party_libraries.vega-lite.integrity.js }}"
|
|
110
|
+
crossorigin="anonymous"
|
|
111
|
+
></script>
|
|
112
|
+
<script
|
|
113
|
+
defer
|
|
114
|
+
src="{{ site.third_party_libraries.vega-embed.url.js }}"
|
|
115
|
+
integrity="{{ site.third_party_libraries.vega-embed.integrity.js }}"
|
|
116
|
+
crossorigin="anonymous"
|
|
117
|
+
></script>
|
|
118
|
+
<script defer src="{{ '/assets/js/vega-setup.js' | relative_url | bust_file_cache }}" type="text/javascript"></script>
|
|
119
|
+
{% endif %}
|
|
120
|
+
|
|
121
|
+
{% if page.tikzjax %}
|
|
122
|
+
<!-- Tikzjax -->
|
|
123
|
+
<script
|
|
124
|
+
defer
|
|
125
|
+
src="https://tikzjax.com/v1/tikzjax.js"
|
|
126
|
+
integrity="sha256-+1qyucCXRZJrCg3lm3KxRt/7WXaYhBid4/1XJRHGB1E="
|
|
127
|
+
crossorigin="anonymous"
|
|
128
|
+
></script>
|
|
129
|
+
{% endif %}
|
|
130
|
+
|
|
131
|
+
{% if page.typograms %}
|
|
132
|
+
<!-- Typograms -->
|
|
133
|
+
<script src="{{ '/assets/js/typograms.js' | relative_url | bust_file_cache }}"></script>
|
|
134
|
+
{% endif %}
|
|
135
|
+
|
|
136
|
+
{% if site.enable_tooltips %}
|
|
137
|
+
<!-- Tooltips -->
|
|
138
|
+
<script src="{{ '/assets/js/tooltips-setup.js' | relative_url | bust_file_cache }}"></script>
|
|
139
|
+
{% endif %}
|
|
140
|
+
|
|
141
|
+
{% if site.enable_medium_zoom %}
|
|
142
|
+
<!-- Medium Zoom JS -->
|
|
143
|
+
<script
|
|
144
|
+
defer
|
|
145
|
+
src="{{ site.third_party_libraries.medium_zoom.url.js }}"
|
|
146
|
+
integrity="{{ site.third_party_libraries.medium_zoom.integrity.js }}"
|
|
147
|
+
crossorigin="anonymous"
|
|
148
|
+
></script>
|
|
149
|
+
<script defer src="{{ '/assets/js/zoom.js' | relative_url | bust_file_cache }}"></script>
|
|
150
|
+
{% endif %}
|
|
151
|
+
|
|
152
|
+
{% if page.toc and page.toc.sidebar %}
|
|
153
|
+
<!-- Sidebar Table of Contents -->
|
|
154
|
+
<script defer src="{{ '/assets/js/bootstrap-toc.min.js' | relative_url | bust_file_cache }}"></script>
|
|
155
|
+
{% endif %}
|
|
156
|
+
|
|
157
|
+
{% if page.pretty_table %}
|
|
158
|
+
<!-- Bootstrap Table -->
|
|
159
|
+
<!-- Bootstrap Table doesn't go well with diff2html -->
|
|
160
|
+
<script
|
|
161
|
+
defer
|
|
162
|
+
src="{{ site.third_party_libraries.bootstrap-table.url.js }}"
|
|
163
|
+
integrity="{{ site.third_party_libraries.bootstrap-table.integrity.js }}"
|
|
164
|
+
crossorigin="anonymous"
|
|
165
|
+
></script>
|
|
166
|
+
{% endif %}
|
|
167
|
+
|
|
168
|
+
<!-- Load Common JS -->
|
|
169
|
+
<script src="{{ '/assets/js/no_defer.js' | relative_url | bust_file_cache }}"></script>
|
|
170
|
+
<script defer src="{{ '/assets/js/common.js' | relative_url | bust_file_cache }}"></script>
|
|
171
|
+
<script defer src="{{ '/assets/js/copy_code.js' | relative_url | bust_file_cache }}" type="text/javascript"></script>
|
|
172
|
+
<script defer src="{{ '/assets/js/content-search-match.js' | relative_url | bust_file_cache }}" type="text/javascript"></script>
|
|
173
|
+
<script defer src="{{ '/assets/js/content-search.js' | relative_url | bust_file_cache }}" type="text/javascript"></script>
|
|
174
|
+
|
|
175
|
+
<!-- Jupyter Open External Links New Tab -->
|
|
176
|
+
<script defer src="{{ '/assets/js/jupyter_new_tab.js' | relative_url | bust_file_cache }}"></script>
|
|
177
|
+
|
|
178
|
+
<!-- Removed Badges -->
|
|
179
|
+
|
|
180
|
+
{% if site.enable_math %}
|
|
181
|
+
<!-- MathJax -->
|
|
182
|
+
<script
|
|
183
|
+
defer
|
|
184
|
+
type="text/javascript"
|
|
185
|
+
id="MathJax-script"
|
|
186
|
+
src="{{ site.third_party_libraries.mathjax.url.js }}"
|
|
187
|
+
integrity="{{ site.third_party_libraries.mathjax.integrity.js }}"
|
|
188
|
+
crossorigin="anonymous"
|
|
189
|
+
></script>
|
|
190
|
+
<script>window.unaltrawebMathJaxTags = {{ site.unaltraweb.mathjax.tags | default: 'all' | jsonify }};</script>
|
|
191
|
+
<script src="{{ '/assets/js/mathjax-setup.js' | relative_url | bust_file_cache }}"></script>
|
|
192
|
+
<script
|
|
193
|
+
defer
|
|
194
|
+
src="{{ site.third_party_libraries.polyfill.url.js }}"
|
|
195
|
+
crossorigin="anonymous"
|
|
196
|
+
></script>
|
|
197
|
+
<!-- Removed Pseudocode -->
|
|
198
|
+
{% endif %}
|
|
199
|
+
|
|
200
|
+
{% if site.enable_google_analytics %}
|
|
201
|
+
<!-- Analytics -->
|
|
202
|
+
<!-- Global site tag (gtag.js) - Google Analytics -->
|
|
203
|
+
<script async src="https://www.googletagmanager.com/gtag/js?id={{ site.google_analytics }}"></script>
|
|
204
|
+
<script defer src="{{ '/assets/js/google-analytics-setup.js' | relative_url }}"></script>
|
|
205
|
+
{% endif %}
|
|
206
|
+
|
|
207
|
+
{% if site.enable_cronitor_analytics %}
|
|
208
|
+
<!-- Cronitor RUM -->
|
|
209
|
+
<script async src="https://rum.cronitor.io/script.js"></script>
|
|
210
|
+
<script defer src="{{ '/assets/js/cronitor-analytics-setup.js' | relative_url }}"></script>
|
|
211
|
+
{% endif %}
|
|
212
|
+
{% if site.enable_pirsch_analytics %}
|
|
213
|
+
<script
|
|
214
|
+
defer
|
|
215
|
+
src="https://api.pirsch.io/pa.js"
|
|
216
|
+
id="pianjs"
|
|
217
|
+
data-code="{{ site.pirsch_analytics }}"
|
|
218
|
+
></script>
|
|
219
|
+
{% endif %}
|
|
220
|
+
{% if site.enable_openpanel_analytics %}
|
|
221
|
+
<script defer src="{{ '/assets/js/open-panel-analytics-setup.js' | relative_url }}"></script>
|
|
222
|
+
<script async defer src="https://openpanel.dev/op1.js"></script>
|
|
223
|
+
{% endif %}
|
|
224
|
+
|
|
225
|
+
{% if site.enable_progressbar %}
|
|
226
|
+
<!-- Scrolling Progress Bar -->
|
|
227
|
+
<script defer src="{{ '/assets/js/progress-bar.js' | relative_url | bust_file_cache }}" type="text/javascript"></script>
|
|
228
|
+
{% endif %}
|
|
229
|
+
|
|
230
|
+
{% if page.images %}
|
|
231
|
+
<!-- Image Layouts -->
|
|
232
|
+
{% if page.images.compare %}
|
|
233
|
+
<script
|
|
234
|
+
defer
|
|
235
|
+
src="{{ site.third_party_libraries.img-comparison-slider.url.js }}"
|
|
236
|
+
integrity="{{ site.third_party_libraries.img-comparison-slider.integrity.js }}"
|
|
237
|
+
crossorigin="anonymous"
|
|
238
|
+
></script>
|
|
239
|
+
{% endif %}
|
|
240
|
+
{% if page.images.lightbox2 %}
|
|
241
|
+
<script
|
|
242
|
+
defer
|
|
243
|
+
src="{{ site.third_party_libraries.lightbox2.url.js }}"
|
|
244
|
+
integrity="{{ site.third_party_libraries.lightbox2.integrity.js }}"
|
|
245
|
+
crossorigin="anonymous"
|
|
246
|
+
></script>
|
|
247
|
+
{% endif %}
|
|
248
|
+
{% if page.images.photoswipe %}
|
|
249
|
+
<script defer src="{{ '/assets/js/photoswipe-setup.js' | relative_url }}" type="module"></script>
|
|
250
|
+
{% endif %}
|
|
251
|
+
{% if page.images.slider %}
|
|
252
|
+
<script
|
|
253
|
+
defer
|
|
254
|
+
src="{{ site.third_party_libraries.swiper.url.js }}"
|
|
255
|
+
integrity="{{ site.third_party_libraries.swiper.integrity.js }}"
|
|
256
|
+
crossorigin="anonymous"
|
|
257
|
+
></script>
|
|
258
|
+
{% endif %}
|
|
259
|
+
{% if page.images.spotlight %}
|
|
260
|
+
<script
|
|
261
|
+
defer
|
|
262
|
+
src="{{ site.third_party_libraries.spotlight.url.js }}"
|
|
263
|
+
crossorigin="anonymous"
|
|
264
|
+
></script>
|
|
265
|
+
{% endif %}
|
|
266
|
+
{% if page.images.venobox %}
|
|
267
|
+
<script
|
|
268
|
+
defer
|
|
269
|
+
src="{{ site.third_party_libraries.venobox.url.js }}"
|
|
270
|
+
integrity="{{ site.third_party_libraries.venobox.integrity.js }}"
|
|
271
|
+
crossorigin="anonymous"
|
|
272
|
+
></script>
|
|
273
|
+
<script defer src="{{ '/assets/js/venobox-setup.js' | relative_url | bust_file_cache }}" type="text/javascript"></script>
|
|
274
|
+
{% endif %}
|
|
275
|
+
{% endif %}
|
|
276
|
+
|
|
277
|
+
{% if page.tabs %}
|
|
278
|
+
<!-- Jekyll Tabs -->
|
|
279
|
+
<script src="{{ '/assets/js/tabs.min.js' | relative_url | bust_file_cache }}"></script>
|
|
280
|
+
{% endif %}
|
|
281
|
+
|
|
282
|
+
{% if site.back_to_top %}
|
|
283
|
+
<!-- Back to Top -->
|
|
284
|
+
<script src="{{ '/assets/js/vanilla-back-to-top.min.js' | relative_url | bust_file_cache }}"></script>
|
|
285
|
+
<script>
|
|
286
|
+
addBackToTop();
|
|
287
|
+
</script>
|
|
288
|
+
{% endif %}
|
|
289
|
+
|
|
290
|
+
{% if site.search_enabled %}
|
|
291
|
+
<!-- Search -->
|
|
292
|
+
{% capture search_placeholder %}{% include t.liquid key='search.placeholder' default='Type to start searching' %}{% endcapture %}
|
|
293
|
+
<script type="module" src="{{ '/assets/js/search/ninja-keys.min.js' | relative_url | bust_file_cache }}"></script>
|
|
294
|
+
<ninja-keys hideBreadcrumbs noAutoLoadMdIcons placeholder="{{ search_placeholder | strip }}"></ninja-keys>
|
|
295
|
+
<script src="{{ '/assets/js/search-setup.js' | relative_url | bust_file_cache }}"></script>
|
|
296
|
+
<script src="{{ '/assets/js/search-data.js' | relative_url }}"></script>
|
|
297
|
+
<script src="{{ '/assets/js/shortcut-key.js' | relative_url | bust_file_cache }}"></script>
|
|
298
|
+
{% endif %}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
{% assign download = include.download | default: page.download %}
|
|
2
|
+
{% assign download_url = include.download_url | default: page.download_url | default: download['url'] %}
|
|
3
|
+
{% assign download_icon = include.icon | default: page.download_icon | default: download['icon'] | default: 'ti-download' %}
|
|
4
|
+
{% assign download_kicker = include.kicker | default: page.download_kicker | default: download['kicker'] | default: 'Download' %}
|
|
5
|
+
{% assign download_heading = include.heading | default: page.download_heading | default: download['heading'] | default: download['label'] | default: page.title %}
|
|
6
|
+
{% assign download_summary = include.summary | default: page.download_summary | default: download['summary'] | default: page.description %}
|
|
7
|
+
{% assign download_label = include.label | default: page.download_label | default: download['download_label'] | default: 'Download' %}
|
|
8
|
+
{% assign download_platform = include.platform | default: page.download_platform | default: download['platform'] %}
|
|
9
|
+
{% assign download_version = include.version | default: page.download_version | default: download['version'] %}
|
|
10
|
+
{% assign download_format = include.format | default: page.download_format | default: download['format'] %}
|
|
11
|
+
{% assign download_asset = include.asset | default: page.download_asset | default: download['asset'] %}
|
|
12
|
+
{% assign download_note = include.note | default: page.download_note | default: download['note'] %}
|
|
13
|
+
{% assign archive_url = include.archive_url | default: page.archive_url | default: download['archive_url'] | default: site.unaltraweb.downloads.release_url %}
|
|
14
|
+
{% assign archive_label = include.archive_label | default: page.archive_label | default: download['archive_label'] | default: site.unaltraweb.downloads.release_label | default: 'Release archive' %}
|
|
15
|
+
|
|
16
|
+
<section class="documentation-download-detail" aria-labelledby="documentation-download-detail-title">
|
|
17
|
+
<div class="documentation-download-detail-card">
|
|
18
|
+
<span class="documentation-download-detail-icon" aria-hidden="true"><i class="ti {{ download_icon }}"></i></span>
|
|
19
|
+
<div class="documentation-download-detail-copy">
|
|
20
|
+
<p class="documentation-kicker">{{ download_kicker }}</p>
|
|
21
|
+
<h2 id="documentation-download-detail-title">{{ download_heading }}</h2>
|
|
22
|
+
{% if download_summary %}<p class="documentation-download-detail-summary">{{ download_summary }}</p>{% endif %}
|
|
23
|
+
|
|
24
|
+
{% if download_platform or download_version or download_format or download_asset %}
|
|
25
|
+
<dl class="documentation-download-detail-meta" aria-label="Package details">
|
|
26
|
+
{% if download_platform %}
|
|
27
|
+
<div>
|
|
28
|
+
<dt>Platform</dt>
|
|
29
|
+
<dd>{{ download_platform }}</dd>
|
|
30
|
+
</div>
|
|
31
|
+
{% endif %}
|
|
32
|
+
{% if download_version %}
|
|
33
|
+
<div>
|
|
34
|
+
<dt>Version</dt>
|
|
35
|
+
<dd>{{ download_version }}</dd>
|
|
36
|
+
</div>
|
|
37
|
+
{% endif %}
|
|
38
|
+
{% if download_format %}
|
|
39
|
+
<div>
|
|
40
|
+
<dt>Format</dt>
|
|
41
|
+
<dd>{{ download_format }}</dd>
|
|
42
|
+
</div>
|
|
43
|
+
{% endif %}
|
|
44
|
+
{% if download_asset %}
|
|
45
|
+
<div>
|
|
46
|
+
<dt>Package</dt>
|
|
47
|
+
<dd>{{ download_asset }}</dd>
|
|
48
|
+
</div>
|
|
49
|
+
{% endif %}
|
|
50
|
+
</dl>
|
|
51
|
+
{% endif %}
|
|
52
|
+
|
|
53
|
+
{% if download_note %}<p class="documentation-download-detail-note">{{ download_note }}</p>{% endif %}
|
|
54
|
+
</div>
|
|
55
|
+
|
|
56
|
+
<div class="documentation-download-detail-actions">
|
|
57
|
+
{% if download_url %}
|
|
58
|
+
<a class="documentation-download-detail-button" href="{% if download_url contains '://' %}{{ download_url }}{% else %}{{ download_url | relative_url }}{% endif %}">
|
|
59
|
+
<i class="ti ti-download" aria-hidden="true"></i>
|
|
60
|
+
{{ download_label }}
|
|
61
|
+
</a>
|
|
62
|
+
{% else %}
|
|
63
|
+
<span class="documentation-download-detail-button documentation-download-detail-button--disabled" aria-disabled="true">
|
|
64
|
+
<i class="ti ti-clock" aria-hidden="true"></i>
|
|
65
|
+
Download pending
|
|
66
|
+
</span>
|
|
67
|
+
{% endif %}
|
|
68
|
+
{% if archive_url %}
|
|
69
|
+
<a class="documentation-download-detail-secondary" href="{% if archive_url contains '://' %}{{ archive_url }}{% else %}{{ archive_url | relative_url }}{% endif %}">
|
|
70
|
+
{{ archive_label }}
|
|
71
|
+
<i class="ti ti-external-link" aria-hidden="true"></i>
|
|
72
|
+
</a>
|
|
73
|
+
{% endif %}
|
|
74
|
+
</div>
|
|
75
|
+
</div>
|
|
76
|
+
</section>
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
{% assign downloads_config = include.downloads | default: page.downloads | default: site.unaltraweb.downloads %}
|
|
2
|
+
{% assign downloads_disabled = false %}
|
|
3
|
+
{% if downloads_config.enabled == false %}
|
|
4
|
+
{% assign downloads_disabled = true %}
|
|
5
|
+
{% endif %}
|
|
6
|
+
{% if include.context == 'home' and downloads_config.home == false %}
|
|
7
|
+
{% assign downloads_disabled = true %}
|
|
8
|
+
{% endif %}
|
|
9
|
+
|
|
10
|
+
{% if downloads_config and downloads_disabled == false and downloads_config.items %}
|
|
11
|
+
{% assign downloads_heading = include.heading | default: downloads_config.heading | default: 'h2' %}
|
|
12
|
+
{% assign downloads_title = include.title | default: downloads_config.title | default: 'Downloads' %}
|
|
13
|
+
{% assign downloads_description = include.description | default: downloads_config.description %}
|
|
14
|
+
{% assign downloads_kicker = include.kicker | default: downloads_config.kicker | default: 'Installers' %}
|
|
15
|
+
{% assign downloads_release_label = include.release_label | default: downloads_config.release_label %}
|
|
16
|
+
{% assign downloads_release_url = include.release_url | default: downloads_config.release_url %}
|
|
17
|
+
{% assign downloads_note = include.note | default: downloads_config.note %}
|
|
18
|
+
|
|
19
|
+
<section class="documentation-downloads{% if include.compact %} documentation-downloads--compact{% endif %}" aria-labelledby="documentation-downloads-title">
|
|
20
|
+
<div class="documentation-downloads-header">
|
|
21
|
+
<p class="documentation-kicker">{{ downloads_kicker }}</p>
|
|
22
|
+
<{{ downloads_heading }} id="documentation-downloads-title">{{ downloads_title }}</{{ downloads_heading }}>
|
|
23
|
+
{% if downloads_description %}<p>{{ downloads_description }}</p>{% endif %}
|
|
24
|
+
</div>
|
|
25
|
+
|
|
26
|
+
<div class="documentation-downloads-grid">
|
|
27
|
+
{% for item in downloads_config.items %}
|
|
28
|
+
{% assign item_details_url = item['details_url'] %}
|
|
29
|
+
{% assign item_url = item_details_url | default: item['url'] %}
|
|
30
|
+
{% assign item_icon = item['icon'] | default: 'ti-download' %}
|
|
31
|
+
{% if item_details_url %}
|
|
32
|
+
{% assign item_action_icon = item['action_icon'] | default: 'ti-arrow-right' %}
|
|
33
|
+
{% else %}
|
|
34
|
+
{% assign item_action_icon = item['action_icon'] | default: 'ti-download' %}
|
|
35
|
+
{% endif %}
|
|
36
|
+
{% capture download_card_content %}
|
|
37
|
+
<span class="documentation-downloads-icon" aria-hidden="true"><i class="ti {{ item_icon }}"></i></span>
|
|
38
|
+
<span class="documentation-downloads-copy">
|
|
39
|
+
<strong>{{ item.label | default: item.platform }}</strong>
|
|
40
|
+
{% if item.platform or item.format %}
|
|
41
|
+
<span>{{ item.platform }}{% if item.platform and item.format %} · {% endif %}{{ item.format }}</span>
|
|
42
|
+
{% endif %}
|
|
43
|
+
{% if item.version %}<em>{{ item.version }}</em>{% endif %}
|
|
44
|
+
</span>
|
|
45
|
+
<span class="documentation-downloads-action" aria-hidden="true"><i class="ti {{ item_action_icon }}"></i></span>
|
|
46
|
+
{% endcapture %}
|
|
47
|
+
{% if item_url %}
|
|
48
|
+
<a class="documentation-download-card" href="{% if item_url contains '://' %}{{ item_url }}{% else %}{{ item_url | relative_url }}{% endif %}">
|
|
49
|
+
{{ download_card_content }}
|
|
50
|
+
</a>
|
|
51
|
+
{% else %}
|
|
52
|
+
<span class="documentation-download-card documentation-download-card--disabled">
|
|
53
|
+
{{ download_card_content }}
|
|
54
|
+
</span>
|
|
55
|
+
{% endif %}
|
|
56
|
+
{% endfor %}
|
|
57
|
+
</div>
|
|
58
|
+
|
|
59
|
+
{% if downloads_release_url or downloads_note %}
|
|
60
|
+
<div class="documentation-downloads-footer">
|
|
61
|
+
{% if downloads_note %}<p>{{ downloads_note }}</p>{% endif %}
|
|
62
|
+
{% if downloads_release_url %}
|
|
63
|
+
<a class="documentation-downloads-release" href="{% if downloads_release_url contains '://' %}{{ downloads_release_url }}{% else %}{{ downloads_release_url | relative_url }}{% endif %}">
|
|
64
|
+
{{ downloads_release_label | default: 'All releases' }}
|
|
65
|
+
<i class="ti ti-external-link" aria-hidden="true"></i>
|
|
66
|
+
</a>
|
|
67
|
+
{% endif %}
|
|
68
|
+
</div>
|
|
69
|
+
{% endif %}
|
|
70
|
+
</section>
|
|
71
|
+
{% endif %}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
{% assign documentation_profile_doc = include.doc %}
|
|
2
|
+
{% assign documentation_profile_values = documentation_profile_doc.documentation_profiles %}
|
|
3
|
+
{% unless include.item == false %} data-documentation-profile-item{% endunless %}
|
|
4
|
+
data-documentation-profiles="{% if documentation_profile_values %}{% for value in documentation_profile_values %}{{ value | slugify }}{% unless forloop.last %},{% endunless %}{% endfor %}{% endif %}"
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
{% capture docs_page_toc_text %}{% include t.liquid key='documentation.on_this_page' default='On this page' %}{% endcapture %}
|
|
2
|
+
<aside class="documentation-section-toc" data-documentation-page-toc-container hidden aria-label="{{ docs_page_toc_text | strip | escape }}">
|
|
3
|
+
<div class="documentation-section-toc-inner">
|
|
4
|
+
<p class="documentation-section-toc-heading">{{ docs_page_toc_text | strip }}</p>
|
|
5
|
+
<nav class="documentation-section-toc-nav" aria-label="{{ docs_page_toc_text | strip | escape }}">
|
|
6
|
+
<ol class="documentation-section-toc-list" data-documentation-page-toc></ol>
|
|
7
|
+
</nav>
|
|
8
|
+
</div>
|
|
9
|
+
</aside>
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
{% assign current_lang = page.lang | default: site.default_lang | default: site.lang %}
|
|
2
|
+
{% assign current_profile = site.unaltraweb.site_profile | default: 'unaltreprojecte' | slugify %}
|
|
3
|
+
{% assign documentation_config = site.unaltraweb.documentation %}
|
|
4
|
+
{% assign documentation_toc_logo = documentation_config.toc_logo %}
|
|
5
|
+
{% assign documentation_toc_logo_inverse = documentation_config.toc_logo_inverse | default: documentation_toc_logo %}
|
|
6
|
+
{% assign documentation_toc_logo_cafe = documentation_config.toc_logo_cafe | default: documentation_config.toc_logo_sepia | default: documentation_toc_logo %}
|
|
7
|
+
{% assign docs_profile_options = documentation_config['profiles'] %}
|
|
8
|
+
{% assign docs_has_profile_options = false %}
|
|
9
|
+
{% if docs_profile_options and docs_profile_options.size > 0 %}
|
|
10
|
+
{% assign docs_has_profile_options = true %}
|
|
11
|
+
{% endif %}
|
|
12
|
+
{% assign docs = include.docs %}
|
|
13
|
+
{% assign home_candidates = site.pages | where: 'ref', 'home' | where: 'lang', current_lang %}
|
|
14
|
+
{% assign docs_home = home_candidates | where_exp: 'candidate', 'candidate.profiles contains current_profile' | first %}
|
|
15
|
+
{% if docs_home == nil %}
|
|
16
|
+
{% assign docs_home = home_candidates | where_exp: 'candidate', 'candidate.profiles == nil' | first %}
|
|
17
|
+
{% endif %}
|
|
18
|
+
{% capture docs_contents_text %}{% include t.liquid key='documentation.contents' default='Table of contents' %}{% endcapture %}
|
|
19
|
+
{% capture docs_toggle_contents_text %}{% include t.liquid key='documentation.toggle_contents' default='Show or hide table of contents' %}{% endcapture %}
|
|
20
|
+
{% capture docs_profile_text %}{% include t.liquid key='documentation.profile' default='Documentation profile' %}{% endcapture %}
|
|
21
|
+
{% capture docs_profile_all_text %}{% include t.liquid key='documentation.profile_all' default='All documentation' %}{% endcapture %}
|
|
22
|
+
|
|
23
|
+
<aside class="documentation-sidebar" aria-label="{{ docs_contents_text | strip }}">
|
|
24
|
+
<button class="documentation-tool-button documentation-toc-toggle" type="button" data-documentation-sidebar-toggle aria-controls="documentation-nav" aria-expanded="true" title="{{ docs_toggle_contents_text | strip }}">
|
|
25
|
+
<i class="ti ti-chevrons-left" aria-hidden="true"></i>
|
|
26
|
+
<span class="documentation-tool-label">{{ docs_contents_text | strip }}</span>
|
|
27
|
+
<span class="sr-only">{{ docs_toggle_contents_text | strip }}</span>
|
|
28
|
+
</button>
|
|
29
|
+
|
|
30
|
+
<div class="documentation-sidebar-inner">
|
|
31
|
+
|
|
32
|
+
<nav id="documentation-nav" class="documentation-nav{% if documentation_toc_logo and docs_has_profile_options == false %} has-sidebar-logo{% endif %}{% if docs_has_profile_options %} has-profile-selector{% endif %}" aria-label="{{ docs_contents_text | strip }}">
|
|
33
|
+
{% if documentation_toc_logo and docs_has_profile_options == false %}
|
|
34
|
+
<div class="documentation-sidebar-brand" aria-hidden="true">
|
|
35
|
+
<span class="documentation-sidebar-logo-stack">
|
|
36
|
+
<img class="documentation-sidebar-logo documentation-sidebar-logo-light" src="{{ documentation_toc_logo | relative_url }}" alt="">
|
|
37
|
+
<img class="documentation-sidebar-logo documentation-sidebar-logo-dark" src="{{ documentation_toc_logo_inverse | relative_url }}" alt="">
|
|
38
|
+
<img class="documentation-sidebar-logo documentation-sidebar-logo-cafe" src="{{ documentation_toc_logo_cafe | relative_url }}" alt="">
|
|
39
|
+
</span>
|
|
40
|
+
</div>
|
|
41
|
+
{% endif %}
|
|
42
|
+
|
|
43
|
+
{% if docs_has_profile_options %}
|
|
44
|
+
<div class="documentation-nav-block documentation-profile-switcher" data-documentation-profile-switcher>
|
|
45
|
+
<label class="documentation-profile-label" for="documentation-profile-select">{{ docs_profile_text | strip }}</label>
|
|
46
|
+
<div class="documentation-profile-control">
|
|
47
|
+
<span class="documentation-profile-icon" aria-hidden="true"><i class="ti ti-users"></i></span>
|
|
48
|
+
<select id="documentation-profile-select" class="documentation-profile-select" data-documentation-profile-select>
|
|
49
|
+
<option value="">{{ docs_profile_all_text | strip }}</option>
|
|
50
|
+
{% for profile_option in docs_profile_options %}
|
|
51
|
+
{% assign docs_profile_id = profile_option['id'] | default: profile_option['profile'] | default: profile_option['label'] | slugify %}
|
|
52
|
+
{% assign docs_profile_label = profile_option['label'] | default: docs_profile_id %}
|
|
53
|
+
<option value="{{ docs_profile_id }}">{{ docs_profile_label }}</option>
|
|
54
|
+
{% endfor %}
|
|
55
|
+
</select>
|
|
56
|
+
</div>
|
|
57
|
+
</div>
|
|
58
|
+
{% endif %}
|
|
59
|
+
|
|
60
|
+
<div class="documentation-nav-block documentation-toc-heading-block">
|
|
61
|
+
<p class="documentation-nav-block-title">{{ docs_contents_text | strip }}</p>
|
|
62
|
+
</div>
|
|
63
|
+
|
|
64
|
+
<div class="documentation-nav-scroll">
|
|
65
|
+
<div class="documentation-overview-section">
|
|
66
|
+
<a class="documentation-overview-link{% if page.url == docs_home.url %} active{% endif %}" href="{{ docs_home.url | default: '/' | relative_url }}"{% if page.url == docs_home.url %} aria-current="page"{% endif %}>
|
|
67
|
+
<span class="documentation-overview-icon" aria-hidden="true"><i class="ti ti-home"></i></span>
|
|
68
|
+
{{ docs_home.nav_title | default: docs_home.title | default: 'Overview' }}
|
|
69
|
+
</a>
|
|
70
|
+
</div>
|
|
71
|
+
|
|
72
|
+
<div class="documentation-accordion documentation-docs-block" data-documentation-tree>
|
|
73
|
+
{% assign doc_sections = docs | map: 'section' | uniq %}
|
|
74
|
+
{% for doc_section in doc_sections %}
|
|
75
|
+
{% assign section_docs = docs | where: 'section', doc_section %}
|
|
76
|
+
{% assign doc_section = doc_section | default: docs_contents_text | strip %}
|
|
77
|
+
{% assign section_open = false %}
|
|
78
|
+
{% if page.section == doc_section %}
|
|
79
|
+
{% assign section_open = true %}
|
|
80
|
+
{% endif %}
|
|
81
|
+
<details class="documentation-accordion-section" data-documentation-tree-id="section-{{ doc_section | slugify }}"{% if section_open %} data-documentation-active-section="true" open{% endif %}>
|
|
82
|
+
<summary class="documentation-accordion-summary{% if page.section == doc_section %} active{% endif %}">
|
|
83
|
+
<span class="documentation-accordion-mark" aria-hidden="true"></span>
|
|
84
|
+
<span class="documentation-accordion-title">{{ doc_section }}</span>
|
|
85
|
+
<span class="documentation-accordion-caret" aria-hidden="true"><i class="ti ti-chevron-down"></i></span>
|
|
86
|
+
</summary>
|
|
87
|
+
<div class="documentation-accordion-items">
|
|
88
|
+
{% assign current_subsection = '' %}
|
|
89
|
+
{% for doc in section_docs %}
|
|
90
|
+
{% assign doc_subsection = doc.subsection | default: '' %}
|
|
91
|
+
{% if doc_subsection != '' %}
|
|
92
|
+
{% if doc_subsection != current_subsection %}
|
|
93
|
+
{% assign current_subsection = doc_subsection %}
|
|
94
|
+
<a class="documentation-nav-link documentation-subsection-link level-2{% if page.section == doc_section and page.subsection == doc_subsection %} active{% endif %}" href="{{ doc.url | relative_url }}"{% if page.section == doc_section and page.subsection == doc_subsection %} aria-current="location"{% endif %}{% include documentation-profile-attributes.liquid doc=doc %}>
|
|
95
|
+
{{ doc_subsection }}
|
|
96
|
+
</a>
|
|
97
|
+
{% endif %}
|
|
98
|
+
{% else %}
|
|
99
|
+
{% assign current_subsection = '' %}
|
|
100
|
+
<a class="documentation-nav-link documentation-accordion-link level-2{% if page.url == doc.url %} active{% endif %}" href="{{ doc.url | relative_url }}"{% if page.url == doc.url %} aria-current="page"{% endif %}{% include documentation-profile-attributes.liquid doc=doc %}>
|
|
101
|
+
{{ doc.nav_title | default: doc.title }}
|
|
102
|
+
</a>
|
|
103
|
+
{% endif %}
|
|
104
|
+
{% endfor %}
|
|
105
|
+
</div>
|
|
106
|
+
</details>
|
|
107
|
+
{% endfor %}
|
|
108
|
+
</div>
|
|
109
|
+
</div>
|
|
110
|
+
</nav>
|
|
111
|
+
</div>
|
|
112
|
+
</aside>
|