From 4a8c992ac75937621eab9b92cf42072e993672b4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominik=20Fuch=C3=9F?= Date: Mon, 14 Sep 2026 17:33:16 +0200 Subject: [PATCH] Rebuild the site on Astro, replacing al-folio MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ardoco.de ran on a pre-v1, vendored-theme al-folio fork. Upstream has since moved to a gem-based v1, so the fork sat on a dead branch: 27 gems and 14 workflows, and 20 MB of downloaded vendor libraries, to serve 25 MB of content. fuchss.org hit the same wall last week and its author put the general case well — "every design decision I cared about lived inside theme internals". Same content, same URLs, different machinery. before after dependencies 27 gems 11 npm packages workflows 14 1 tracked files 329 112 homepage requests 27 1 homepage weight 2.1 MB 32 KB build ~30 s 1.5 s (31 pages) Content moves into six Zod-validated collections. The joins that Jekyll resolved as string lookups are now Astro references, so a conference naming an approach that does not exist, a BibTeX abbr with no venue entry, or an html = {/c/} pointing at a missing page all stop the build instead of rendering blank. That immediately surfaced two latent bugs: abbr = {SE} had no venues.yml entry, so those badges rendered grey and unlabelled, and the children[] array in _pages/conferences.md silently drove both the navbar order and the front-page publication order. Each conference entry now carries its own navOrder. The URL surface is unchanged and was checked against gh-pages during the migration: build.format: 'preserve' emits both /approaches// and the flat /c/, the five legacy /c/se* stubs still redirect, and the PDFs and images are served byte-for-byte from public/ and pinned by SHA-256. public/CNAME is now committed — it previously survived only because Jekyll's keep_files preserved it on the branch, and a full-replace deploy of a new tree would have dropped the custom domain. Also fixed along the way: four GI proceedings papers typed as @article with the publishing society in a journal field, and non-breaking spaces hidden inside two titles that broke word wrapping and the publications filter. New: a real /conferences/ index, Highwire citation_* tags and ScholarlyArticle JSON-LD on every paper page (the old site emitted neither), and email addresses that appear nowhere in the served bytes. npm run verify asserts all of it, including the two NEVER CHANGE THIS LINE comments that mcse.kastel.kit.edu scrapes. The site is dark only. --- .all-contributorsrc | 44 - .devcontainer/Dockerfile | 7 - .devcontainer/devcontainer.json | 34 - .dockerignore | 3 - .git-blame-ignore-revs | 24 - .gitattributes | 2 - .github/ISSUE_TEMPLATE/1_bug_report.yml | 102 - .github/ISSUE_TEMPLATE/2_feature_request.yml | 56 - .github/ISSUE_TEMPLATE/config.yml | 8 - .github/release.yml | 14 - .github/stale.yml | 18 - .github/workflows/axe.yml | 74 - .github/workflows/broken-links-site.yml | 47 - .github/workflows/broken-links.yml | 54 - .github/workflows/codeql.yml | 94 - .github/workflows/deploy-docker-tag.yml | 50 - .github/workflows/deploy-image.yml | 44 - .github/workflows/deploy.yml | 128 +- .github/workflows/docker-slim.yml | 53 - .github/workflows/lighthouse-badger.yml | 62 - .github/workflows/prettier-comment-on-pr.yml | 18 - .github/workflows/prettier-html.yml | 36 - .github/workflows/prettier.yml | 48 - .github/workflows/schedule-posts.txt | 39 - .github/workflows/update-citations.yml | 101 - .github/workflows/update-tocs.yml | 50 - .gitignore | 20 +- .lycheeignore | 14 - .nvmrc | 1 + .pre-commit-config.yaml | 10 - .prettierignore | 24 +- .prettierrc | 15 +- Dockerfile | 78 - Gemfile | 41 - Gemfile.lock | 329 - README.md | 129 +- _conferences/ase26-tools.md | 81 - _conferences/se25.md | 8 - _conferences/se26-exarch.md | 8 - _conferences/se26-lissa.md | 8 - _conferences/taas26.md | 8 - _config.yml | 654 - _data/coauthors.yml | 21 - _data/repositories.yml | 10 - _data/socials.yml | 58 - _data/venues.yml | 15 - _includes/audio.liquid | 30 - _includes/bib_search.liquid | 4 - _includes/calendar.liquid | 25 - _includes/citation.liquid | 26 - _includes/course_schedule.liquid | 71 - _includes/courses.liquid | 37 - _includes/cv/awards.liquid | 66 - _includes/cv/certificates.liquid | 28 - _includes/cv/education.liquid | 93 - _includes/cv/experience.liquid | 91 - _includes/cv/interests.liquid | 29 - _includes/cv/languages.liquid | 28 - _includes/cv/projects.liquid | 31 - _includes/cv/publications.liquid | 70 - _includes/cv/references.liquid | 15 - _includes/cv/skills.liquid | 32 - _includes/disqus.liquid | 13 - _includes/distill_scripts.liquid | 340 - _includes/featured_publications.liquid | 44 - _includes/figure.liquid | 86 - _includes/footer.liquid | 30 - _includes/giscus.liquid | 25 - _includes/head.liquid | 208 - _includes/header.liquid | 150 - _includes/latest_posts.liquid | 48 - _includes/metadata.liquid | 247 - _includes/news.liquid | 34 - _includes/newsletter.liquid | 68 - _includes/pagination.liquid | 21 - _includes/projects.liquid | 38 - _includes/projects_horizontal.liquid | 34 - _includes/related_posts.liquid | 36 - _includes/repository/repo.liquid | 47 - _includes/repository/repo_trophies.liquid | 42 - _includes/repository/repo_user.liquid | 34 - _includes/scripts.liquid | 378 - _includes/selected_papers.liquid | 3 - _includes/video.liquid | 97 - _layouts/about.liquid | 82 - _layouts/approach.liquid | 50 - _layouts/archive.liquid | 38 - _layouts/bib.liquid | 409 - _layouts/book-review.liquid | 265 - _layouts/book-shelf.liquid | 49 - _layouts/course.liquid | 75 - _layouts/cv.liquid | 392 - _layouts/default.liquid | 56 - _layouts/distill.liquid | 131 - _layouts/none.liquid | 1 - _layouts/page.liquid | 43 - _layouts/post.liquid | 97 - _layouts/profiles.liquid | 36 - _layouts/publication.liquid | 269 - _pages/404.md | 9 - _pages/about.md | 42 - _pages/about/corallo.md | 5 - _pages/about/fuchss.md | 5 - _pages/about/hey.md | 5 - _pages/about/keim.md | 5 - _pages/about/koziolek.md | 5 - _pages/about/liu.md | 5 - _pages/approaches.md | 34 - _pages/conferences.md | 30 - _pages/poster_2019.md | 11 - _pages/profiles.md | 40 - _pages/publications.md | 20 - _plugins/details.rb | 23 - _plugins/external-posts.rb | 124 - _plugins/file-exists.rb | 22 - _plugins/google-scholar-citations.rb | 86 - _plugins/hide-custom-bibtex.rb | 18 - _plugins/inspirehep-citations.rb | 57 - _plugins/remove-accents.rb | 32 - _sass/_blog.scss | 167 - _sass/_components.scss | 261 - _sass/_cv.scss | 220 - _sass/_distill.scss | 185 - _sass/_footer.scss | 35 - _sass/_layout.scss | 58 - _sass/_modern-buttons.scss | 127 - _sass/_modern-components.scss | 335 - _sass/_modernization.scss | 277 - _sass/_navbar.scss | 190 - _sass/_publications-custom.scss | 107 - _sass/_publications.scss | 200 - _sass/_tabs.scss | 48 - _sass/_teachings.scss | 77 - _sass/_themes.scss | 212 - _sass/_typograms.scss | 132 - _sass/_typography.scss | 136 - _sass/_utilities.scss | 605 - _sass/_variables.scss | 52 - _sass/font-awesome/_animated.scss | 150 - _sass/font-awesome/_bordered.scss | 24 - _sass/font-awesome/_core.scss | 29 - _sass/font-awesome/_fa.scss | 3 - _sass/font-awesome/_functions.scss | 8 - _sass/font-awesome/_icons.scss | 15 - _sass/font-awesome/_list.scss | 19 - _sass/font-awesome/_mixins.scss | 28 - _sass/font-awesome/_pulled.scss | 15 - _sass/font-awesome/_rotated-flipped.scss | 32 - _sass/font-awesome/_shims.scss | 2193 --- _sass/font-awesome/_sizing.scss | 18 - _sass/font-awesome/_stacked.scss | 33 - _sass/font-awesome/_variables.scss | 5130 ------ _sass/font-awesome/_widths.scss | 12 - _sass/font-awesome/brands.scss | 45 - _sass/font-awesome/fontawesome.scss | 18 - _sass/font-awesome/regular.scss | 51 - _sass/font-awesome/solid.scss | 51 - _sass/font-awesome/v4-shims.scss | 11 - _scripts/cookie-consent-setup.js | 160 - _scripts/cronitor-analytics-setup.js | 9 - _scripts/giscus-setup.js | 48 - _scripts/google-analytics-setup.js | 9 - _scripts/open-panel-analytics-setup.js | 14 - _scripts/photoswipe-setup.js | 11 - _scripts/search.liquid.js | 341 - assets/css/academicons.min.css | 1 - assets/css/bootstrap-toc.min.css | 4 - assets/css/bootstrap.min.css | 7 - assets/css/bootstrap.min.css.map | 1 - assets/css/jekyll-pygments-themes-github.css | 209 - assets/css/jekyll-pygments-themes-native.css | 232 - assets/css/jupyter-grade3.css | 3758 ---- assets/css/jupyter-monokai.css | 3758 ---- assets/css/jupyter.css | 383 - assets/css/main.scss | 45 - assets/css/mdb.min.css | 48 - assets/css/mdb.min.css.map | 1 - assets/css/scholar-icons.css | 386 - assets/css/tikzjax.min.css | 700 - assets/fonts/academicons.ttf | Bin 67872 -> 0 bytes assets/fonts/academicons.woff | Bin 131616 -> 0 bytes assets/fonts/scholar-icons.ttf | Bin 103460 -> 0 bytes assets/fonts/scholar-icons.woff | Bin 103536 -> 0 bytes assets/js/bibsearch.js | 70 - assets/js/bootstrap-toc.min.js | 5 - assets/js/bootstrap.bundle.min.js | 7 - assets/js/bootstrap.bundle.min.js.map | 1 - assets/js/calendar-setup.js | 16 - assets/js/chartjs-setup.js | 14 - assets/js/common.js | 60 - assets/js/copy_code.js | 56 - assets/js/diff2html-setup.js | 20 - assets/js/distillpub/overrides.js | 27 - assets/js/distillpub/template.v2.js | 9616 ---------- assets/js/distillpub/template.v2.js.map | 1 - assets/js/distillpub/transforms.v2.js | 14557 ---------------- assets/js/distillpub/transforms.v2.js.map | 1 - assets/js/echarts-setup.js | 29 - assets/js/highlight-search-term.js | 110 - assets/js/jupyter_new_tab.js | 18 - assets/js/leaflet-setup.js | 22 - assets/js/masonry.js | 12 - assets/js/mathjax-setup.js | 26 - assets/js/mermaid-setup.js | 37 - assets/js/newsletter.js | 105 - assets/js/no_defer.js | 24 - assets/js/plotly-setup.js | 52 - assets/js/progress-bar.js | 73 - assets/js/pseudocode-setup.js | 33 - assets/js/search-setup.js | 17 - assets/js/search/base-styles.min.js | 286 - assets/js/search/command-score.min.js | 7 - .../js/search/hotkeys-js/hotkeys.esm.min.js | 18 - .../js/search/lit-element/lit-element.min.js | 12 - .../lit-html/directives/class-map.min.js | 22 - .../js/search/lit-html/directives/join.min.js | 12 - .../js/search/lit-html/directives/live.min.js | 28 - .../js/search/lit-html/directives/ref.min.js | 32 - .../search/lit-html/directives/repeat.min.js | 27 - .../lit-html/directives/unsafe-html.min.js | 22 - assets/js/search/lit-html/is-server.min.js | 12 - assets/js/search/lit-html/lit-html.min.js | 12 - assets/js/search/lit/decorators.min.js | 7 - .../js/search/lit/directives/class-map.min.js | 7 - assets/js/search/lit/directives/join.min.js | 7 - assets/js/search/lit/directives/live.min.js | 7 - assets/js/search/lit/directives/ref.min.js | 7 - assets/js/search/lit/directives/repeat.min.js | 7 - .../search/lit/directives/unsafe-html.min.js | 7 - assets/js/search/lit/index.min.js | 7 - assets/js/search/ninja-action.min.js | 101 - assets/js/search/ninja-footer.min.js | 62 - assets/js/search/ninja-header.min.js | 78 - assets/js/search/ninja-keys.min.js | 39 - .../decorators/custom-element.min.js | 12 - .../decorators/event-options.min.js | 12 - .../decorators/property.min.js | 22 - .../decorators/query-all.min.js | 17 - .../decorators/query-assigned-elements.min.js | 17 - .../decorators/query-assigned-nodes.min.js | 17 - .../decorators/query-async.min.js | 17 - .../reactive-element/decorators/query.min.js | 17 - .../reactive-element/decorators/state.min.js | 27 - .../reactive-element/reactive-element.min.js | 17 - assets/js/shortcut-key.js | 11 - assets/js/tabs.min.js | 5 - assets/js/theme.js | 342 - assets/js/tikzjax.min.js | 4413 ----- assets/js/tooltips-setup.js | 3 - assets/js/typograms.js | 1341 -- assets/js/vanilla-back-to-top.min.js | 1 - assets/js/vega-setup.js | 24 - assets/js/venobox-setup.js | 5 - assets/js/wechat.js | 14 - assets/js/zoom.js | 6 - assets/rendercv/design.yaml | 7 - assets/rendercv/locale.yaml | 3 - assets/rendercv/settings.yaml | 17 - assets/webfonts/fa-brands-400.ttf | Bin 210736 -> 0 bytes assets/webfonts/fa-brands-400.woff2 | Bin 101088 -> 0 bytes assets/webfonts/fa-regular-400.ttf | Bin 68064 -> 0 bytes assets/webfonts/fa-regular-400.woff2 | Bin 18892 -> 0 bytes assets/webfonts/fa-solid-900.ttf | Bin 426112 -> 0 bytes assets/webfonts/fa-solid-900.woff2 | Bin 113108 -> 0 bytes assets/webfonts/fa-v4compatibility.ttf | Bin 10836 -> 0 bytes assets/webfonts/fa-v4compatibility.woff2 | Bin 4132 -> 0 bytes astro.config.mjs | 31 + bin/cibuild | 1 - bin/deploy | 119 - bin/entry_point.sh | 37 - bin/update_scholar_citations.py | 132 - docker-compose-slim.yml | 12 - docker-compose.yml | 21 - package-lock.json | 5724 +++++- package.json | 34 +- public/.nojekyll | 0 public/CNAME | 1 + .../assets}/img/approaches/aire25-aire.svg | 0 .../assets}/img/approaches/ecsa21-swattr.svg | 0 .../img/approaches/fgarch24-titleslide.png | Bin .../img/approaches/icsa2019-poster.png | Bin .../img/approaches/icsa23-inconsistency.svg | 0 .../img/approaches/icsa25-transarc.svg | 0 .../img/approaches/icsa26-archguard.svg | 0 .../img/approaches/icse24-ardocode.svg | 0 .../img/approaches/icse24-transarc.svg | 0 .../assets}/img/approaches/icse25-lissa.svg | 0 .../assets}/img/approaches/refsq25-refsq.svg | 0 {assets => public/assets}/img/logo.png | Bin .../assets}/img/people/corallo_sophie.jpg | Bin .../assets}/img/people/fuchss_dominik.jpg | Bin .../assets}/img/people/hey_tobias.jpg | Bin .../assets}/img/people/keim_jan.jpg | Bin .../assets}/img/people/koziolek_anne.jpg | Bin .../assets}/img/people/liu_haoyu.jpg | Bin ...ntation_23_ICSA_InconsistencyDetection.pdf | Bin ...sentation_24_SE_InconsistencyDetection.pdf | Bin .../pdf/presentation_25_SE_TransArC.pdf | Bin .../assets}/pdf/presentation_aire25.pdf | Bin .../assets}/pdf/presentation_aire25.pptx | Bin .../pdf/presentation_fgarch24_keim.pdf | Bin .../assets}/pdf/presentation_icsa25.pdf | Bin .../assets}/pdf/presentation_icsa25.pptx | Bin .../assets}/pdf/presentation_icse24.pdf | Bin .../assets}/pdf/presentation_icse24.pptx | Bin .../assets}/pdf/presentation_icse25.pdf | Bin .../assets}/pdf/presentation_icse25.pptx | Bin .../assets}/pdf/presentation_se26-exarch.pdf | Bin .../assets}/pdf/presentation_se26-lissa.pdf | Bin public/robots.txt | 4 + purgecss.config.js | 6 - requirements.txt | 4 - robots.txt | 7 - scripts/audit-features.mjs | 296 + scripts/audit-site.mjs | 314 + scripts/generate-asset-baseline.mjs | 49 + scripts/update_bib.py | 341 + scripts/verify-invariants.mjs | 59 + src/components/BaseHead.astro | 30 + src/components/Email.astro | 69 + src/components/Figure.astro | 53 + src/components/Footer.astro | 45 + src/components/Nav.astro | 113 + src/components/Prose.astro | 108 + src/components/pub/CopyButton.astro | 93 + src/components/pub/PubEntry.astro | 181 + src/components/pub/ScholarMeta.astro | 55 + src/components/pub/VenueBadge.astro | 55 + src/consts.ts | 25 + src/content.config.ts | 160 + .../content/approaches}/arcotl.md | 8 +- .../content/approaches}/ardocode.md | 8 +- .../content/approaches}/exarch.md | 12 +- .../approaches}/inconsistency-detection.md | 8 +- .../content/approaches}/lissa.md | 8 +- .../content/approaches}/swattr.md | 8 +- .../content/approaches}/transarc.md | 8 +- {_approaches => src/content/approaches}/tv.md | 4 +- .../content/conferences}/aire25.md | 25 +- .../content/conferences}/ase26-everest.md | 45 +- src/content/conferences/ase26-tools.md | 80 + .../content/conferences}/ecsa21.md | 23 +- .../content/conferences}/fg-arch24.md | 21 +- .../content/conferences}/icsa23.md | 33 +- .../content/conferences}/icsa25.md | 39 +- .../content/conferences}/icsa26.md | 25 +- .../content/conferences}/icse24.md | 37 +- .../content/conferences}/icse25.md | 33 +- .../content/conferences}/refsq25.md | 25 +- .../content/conferences}/se24.md | 6 +- src/content/conferences/se25.md | 4 + src/content/conferences/se26-exarch.md | 4 + src/content/conferences/se26-lissa.md | 4 + src/content/conferences/taas26.md | 4 + {_data => src/data}/authors.yml | 24 +- {_bibliography => src/data}/papers.bib | 25 +- src/data/people.yml | 59 + src/data/venues.yml | 30 + src/layouts/Base.astro | 74 + src/lib/conferences.ts | 47 + src/lib/images.ts | 57 + src/lib/people.ts | 36 + src/lib/publications.ts | 34 + src/lib/redirect.ts | 39 + src/lib/urls.ts | 32 + src/loaders/bibtex.ts | 180 + src/pages/404.astro | 42 + src/pages/approaches/[slug]/index.astro | 141 + src/pages/approaches/index.astro | 101 + src/pages/c/[slug].astro | 305 + src/pages/conferences/index.astro | 128 + src/pages/feed.xml.ts | 30 + src/pages/index.astro | 273 + src/pages/initial-poster-2019/index.astro | 56 + src/pages/people/index.astro | 120 + src/pages/publications/index.astro | 144 + src/pages/sitemap.xml.ts | 46 + src/styles/base.css | 297 + src/styles/tokens.css | 132 + tsconfig.json | 12 + verification/asset-sha256.txt | 42 + 381 files changed, 10749 insertions(+), 62056 deletions(-) delete mode 100644 .all-contributorsrc delete mode 100644 .devcontainer/Dockerfile delete mode 100644 .devcontainer/devcontainer.json delete mode 100644 .dockerignore delete mode 100644 .git-blame-ignore-revs delete mode 100644 .gitattributes delete mode 100644 .github/ISSUE_TEMPLATE/1_bug_report.yml delete mode 100644 .github/ISSUE_TEMPLATE/2_feature_request.yml delete mode 100644 .github/ISSUE_TEMPLATE/config.yml delete mode 100644 .github/release.yml delete mode 100644 .github/stale.yml delete mode 100644 .github/workflows/axe.yml delete mode 100644 .github/workflows/broken-links-site.yml delete mode 100644 .github/workflows/broken-links.yml delete mode 100644 .github/workflows/codeql.yml delete mode 100644 .github/workflows/deploy-docker-tag.yml delete mode 100644 .github/workflows/deploy-image.yml delete mode 100644 .github/workflows/docker-slim.yml delete mode 100644 .github/workflows/lighthouse-badger.yml delete mode 100644 .github/workflows/prettier-comment-on-pr.yml delete mode 100644 .github/workflows/prettier-html.yml delete mode 100644 .github/workflows/prettier.yml delete mode 100644 .github/workflows/schedule-posts.txt delete mode 100644 .github/workflows/update-citations.yml delete mode 100644 .github/workflows/update-tocs.yml delete mode 100644 .lycheeignore create mode 100644 .nvmrc delete mode 100644 .pre-commit-config.yaml delete mode 100644 Dockerfile delete mode 100644 Gemfile delete mode 100644 Gemfile.lock delete mode 100644 _conferences/ase26-tools.md delete mode 100644 _conferences/se25.md delete mode 100644 _conferences/se26-exarch.md delete mode 100644 _conferences/se26-lissa.md delete mode 100644 _conferences/taas26.md delete mode 100644 _config.yml delete mode 100644 _data/coauthors.yml delete mode 100644 _data/repositories.yml delete mode 100644 _data/socials.yml delete mode 100644 _data/venues.yml delete mode 100644 _includes/audio.liquid delete mode 100644 _includes/bib_search.liquid delete mode 100644 _includes/calendar.liquid delete mode 100644 _includes/citation.liquid delete mode 100644 _includes/course_schedule.liquid delete mode 100644 _includes/courses.liquid delete mode 100644 _includes/cv/awards.liquid delete mode 100644 _includes/cv/certificates.liquid delete mode 100644 _includes/cv/education.liquid delete mode 100644 _includes/cv/experience.liquid delete mode 100644 _includes/cv/interests.liquid delete mode 100644 _includes/cv/languages.liquid delete mode 100644 _includes/cv/projects.liquid delete mode 100644 _includes/cv/publications.liquid delete mode 100644 _includes/cv/references.liquid delete mode 100644 _includes/cv/skills.liquid delete mode 100644 _includes/disqus.liquid delete mode 100644 _includes/distill_scripts.liquid delete mode 100644 _includes/featured_publications.liquid delete mode 100644 _includes/figure.liquid delete mode 100644 _includes/footer.liquid delete mode 100644 _includes/giscus.liquid delete mode 100644 _includes/head.liquid delete mode 100644 _includes/header.liquid delete mode 100644 _includes/latest_posts.liquid delete mode 100644 _includes/metadata.liquid delete mode 100644 _includes/news.liquid delete mode 100644 _includes/newsletter.liquid delete mode 100644 _includes/pagination.liquid delete mode 100644 _includes/projects.liquid delete mode 100644 _includes/projects_horizontal.liquid delete mode 100644 _includes/related_posts.liquid delete mode 100644 _includes/repository/repo.liquid delete mode 100644 _includes/repository/repo_trophies.liquid delete mode 100644 _includes/repository/repo_user.liquid delete mode 100644 _includes/scripts.liquid delete mode 100644 _includes/selected_papers.liquid delete mode 100644 _includes/video.liquid delete mode 100644 _layouts/about.liquid delete mode 100644 _layouts/approach.liquid delete mode 100644 _layouts/archive.liquid delete mode 100644 _layouts/bib.liquid delete mode 100644 _layouts/book-review.liquid delete mode 100644 _layouts/book-shelf.liquid delete mode 100644 _layouts/course.liquid delete mode 100644 _layouts/cv.liquid delete mode 100644 _layouts/default.liquid delete mode 100644 _layouts/distill.liquid delete mode 100644 _layouts/none.liquid delete mode 100644 _layouts/page.liquid delete mode 100644 _layouts/post.liquid delete mode 100644 _layouts/profiles.liquid delete mode 100644 _layouts/publication.liquid delete mode 100644 _pages/404.md delete mode 100644 _pages/about.md delete mode 100644 _pages/about/corallo.md delete mode 100644 _pages/about/fuchss.md delete mode 100644 _pages/about/hey.md delete mode 100644 _pages/about/keim.md delete mode 100644 _pages/about/koziolek.md delete mode 100644 _pages/about/liu.md delete mode 100644 _pages/approaches.md delete mode 100644 _pages/conferences.md delete mode 100644 _pages/poster_2019.md delete mode 100644 _pages/profiles.md delete mode 100644 _pages/publications.md delete mode 100644 _plugins/details.rb delete mode 100644 _plugins/external-posts.rb delete mode 100644 _plugins/file-exists.rb delete mode 100644 _plugins/google-scholar-citations.rb delete mode 100644 _plugins/hide-custom-bibtex.rb delete mode 100644 _plugins/inspirehep-citations.rb delete mode 100644 _plugins/remove-accents.rb delete mode 100644 _sass/_blog.scss delete mode 100644 _sass/_components.scss delete mode 100644 _sass/_cv.scss delete mode 100644 _sass/_distill.scss delete mode 100644 _sass/_footer.scss delete mode 100644 _sass/_layout.scss delete mode 100644 _sass/_modern-buttons.scss delete mode 100644 _sass/_modern-components.scss delete mode 100644 _sass/_modernization.scss delete mode 100644 _sass/_navbar.scss delete mode 100644 _sass/_publications-custom.scss delete mode 100644 _sass/_publications.scss delete mode 100644 _sass/_tabs.scss delete mode 100644 _sass/_teachings.scss delete mode 100644 _sass/_themes.scss delete mode 100644 _sass/_typograms.scss delete mode 100644 _sass/_typography.scss delete mode 100644 _sass/_utilities.scss delete mode 100644 _sass/_variables.scss delete mode 100644 _sass/font-awesome/_animated.scss delete mode 100644 _sass/font-awesome/_bordered.scss delete mode 100644 _sass/font-awesome/_core.scss delete mode 100644 _sass/font-awesome/_fa.scss delete mode 100644 _sass/font-awesome/_functions.scss delete mode 100644 _sass/font-awesome/_icons.scss delete mode 100644 _sass/font-awesome/_list.scss delete mode 100644 _sass/font-awesome/_mixins.scss delete mode 100644 _sass/font-awesome/_pulled.scss delete mode 100644 _sass/font-awesome/_rotated-flipped.scss delete mode 100644 _sass/font-awesome/_shims.scss delete mode 100644 _sass/font-awesome/_sizing.scss delete mode 100644 _sass/font-awesome/_stacked.scss delete mode 100644 _sass/font-awesome/_variables.scss delete mode 100644 _sass/font-awesome/_widths.scss delete mode 100644 _sass/font-awesome/brands.scss delete mode 100644 _sass/font-awesome/fontawesome.scss delete mode 100644 _sass/font-awesome/regular.scss delete mode 100644 _sass/font-awesome/solid.scss delete mode 100644 _sass/font-awesome/v4-shims.scss delete mode 100644 _scripts/cookie-consent-setup.js delete mode 100644 _scripts/cronitor-analytics-setup.js delete mode 100644 _scripts/giscus-setup.js delete mode 100644 _scripts/google-analytics-setup.js delete mode 100644 _scripts/open-panel-analytics-setup.js delete mode 100644 _scripts/photoswipe-setup.js delete mode 100644 _scripts/search.liquid.js delete mode 100644 assets/css/academicons.min.css delete mode 100644 assets/css/bootstrap-toc.min.css delete mode 100644 assets/css/bootstrap.min.css delete mode 100644 assets/css/bootstrap.min.css.map delete mode 100644 assets/css/jekyll-pygments-themes-github.css delete mode 100644 assets/css/jekyll-pygments-themes-native.css delete mode 100644 assets/css/jupyter-grade3.css delete mode 100644 assets/css/jupyter-monokai.css delete mode 100644 assets/css/jupyter.css delete mode 100644 assets/css/main.scss delete mode 100644 assets/css/mdb.min.css delete mode 100644 assets/css/mdb.min.css.map delete mode 100644 assets/css/scholar-icons.css delete mode 100644 assets/css/tikzjax.min.css delete mode 100644 assets/fonts/academicons.ttf delete mode 100644 assets/fonts/academicons.woff delete mode 100644 assets/fonts/scholar-icons.ttf delete mode 100644 assets/fonts/scholar-icons.woff delete mode 100644 assets/js/bibsearch.js delete mode 100644 assets/js/bootstrap-toc.min.js delete mode 100644 assets/js/bootstrap.bundle.min.js delete mode 100644 assets/js/bootstrap.bundle.min.js.map delete mode 100644 assets/js/calendar-setup.js delete mode 100644 assets/js/chartjs-setup.js delete mode 100644 assets/js/common.js delete mode 100644 assets/js/copy_code.js delete mode 100644 assets/js/diff2html-setup.js delete mode 100644 assets/js/distillpub/overrides.js delete mode 100644 assets/js/distillpub/template.v2.js delete mode 100644 assets/js/distillpub/template.v2.js.map delete mode 100644 assets/js/distillpub/transforms.v2.js delete mode 100644 assets/js/distillpub/transforms.v2.js.map delete mode 100644 assets/js/echarts-setup.js delete mode 100644 assets/js/highlight-search-term.js delete mode 100644 assets/js/jupyter_new_tab.js delete mode 100644 assets/js/leaflet-setup.js delete mode 100644 assets/js/masonry.js delete mode 100644 assets/js/mathjax-setup.js delete mode 100644 assets/js/mermaid-setup.js delete mode 100644 assets/js/newsletter.js delete mode 100644 assets/js/no_defer.js delete mode 100644 assets/js/plotly-setup.js delete mode 100644 assets/js/progress-bar.js delete mode 100644 assets/js/pseudocode-setup.js delete mode 100644 assets/js/search-setup.js delete mode 100644 assets/js/search/base-styles.min.js delete mode 100644 assets/js/search/command-score.min.js delete mode 100644 assets/js/search/hotkeys-js/hotkeys.esm.min.js delete mode 100644 assets/js/search/lit-element/lit-element.min.js delete mode 100644 assets/js/search/lit-html/directives/class-map.min.js delete mode 100644 assets/js/search/lit-html/directives/join.min.js delete mode 100644 assets/js/search/lit-html/directives/live.min.js delete mode 100644 assets/js/search/lit-html/directives/ref.min.js delete mode 100644 assets/js/search/lit-html/directives/repeat.min.js delete mode 100644 assets/js/search/lit-html/directives/unsafe-html.min.js delete mode 100644 assets/js/search/lit-html/is-server.min.js delete mode 100644 assets/js/search/lit-html/lit-html.min.js delete mode 100644 assets/js/search/lit/decorators.min.js delete mode 100644 assets/js/search/lit/directives/class-map.min.js delete mode 100644 assets/js/search/lit/directives/join.min.js delete mode 100644 assets/js/search/lit/directives/live.min.js delete mode 100644 assets/js/search/lit/directives/ref.min.js delete mode 100644 assets/js/search/lit/directives/repeat.min.js delete mode 100644 assets/js/search/lit/directives/unsafe-html.min.js delete mode 100644 assets/js/search/lit/index.min.js delete mode 100644 assets/js/search/ninja-action.min.js delete mode 100644 assets/js/search/ninja-footer.min.js delete mode 100644 assets/js/search/ninja-header.min.js delete mode 100644 assets/js/search/ninja-keys.min.js delete mode 100644 assets/js/search/reactive-element/decorators/custom-element.min.js delete mode 100644 assets/js/search/reactive-element/decorators/event-options.min.js delete mode 100644 assets/js/search/reactive-element/decorators/property.min.js delete mode 100644 assets/js/search/reactive-element/decorators/query-all.min.js delete mode 100644 assets/js/search/reactive-element/decorators/query-assigned-elements.min.js delete mode 100644 assets/js/search/reactive-element/decorators/query-assigned-nodes.min.js delete mode 100644 assets/js/search/reactive-element/decorators/query-async.min.js delete mode 100644 assets/js/search/reactive-element/decorators/query.min.js delete mode 100644 assets/js/search/reactive-element/decorators/state.min.js delete mode 100644 assets/js/search/reactive-element/reactive-element.min.js delete mode 100644 assets/js/shortcut-key.js delete mode 100644 assets/js/tabs.min.js delete mode 100644 assets/js/theme.js delete mode 100644 assets/js/tikzjax.min.js delete mode 100644 assets/js/tooltips-setup.js delete mode 100644 assets/js/typograms.js delete mode 100644 assets/js/vanilla-back-to-top.min.js delete mode 100644 assets/js/vega-setup.js delete mode 100644 assets/js/venobox-setup.js delete mode 100644 assets/js/wechat.js delete mode 100644 assets/js/zoom.js delete mode 100644 assets/rendercv/design.yaml delete mode 100644 assets/rendercv/locale.yaml delete mode 100644 assets/rendercv/settings.yaml delete mode 100644 assets/webfonts/fa-brands-400.ttf delete mode 100644 assets/webfonts/fa-brands-400.woff2 delete mode 100644 assets/webfonts/fa-regular-400.ttf delete mode 100644 assets/webfonts/fa-regular-400.woff2 delete mode 100644 assets/webfonts/fa-solid-900.ttf delete mode 100644 assets/webfonts/fa-solid-900.woff2 delete mode 100644 assets/webfonts/fa-v4compatibility.ttf delete mode 100644 assets/webfonts/fa-v4compatibility.woff2 create mode 100644 astro.config.mjs delete mode 100755 bin/cibuild delete mode 100755 bin/deploy delete mode 100755 bin/entry_point.sh delete mode 100644 bin/update_scholar_citations.py delete mode 100644 docker-compose-slim.yml delete mode 100644 docker-compose.yml create mode 100644 public/.nojekyll create mode 100644 public/CNAME rename {assets => public/assets}/img/approaches/aire25-aire.svg (100%) rename {assets => public/assets}/img/approaches/ecsa21-swattr.svg (100%) rename {assets => public/assets}/img/approaches/fgarch24-titleslide.png (100%) rename {assets => public/assets}/img/approaches/icsa2019-poster.png (100%) rename {assets => public/assets}/img/approaches/icsa23-inconsistency.svg (100%) rename {assets => public/assets}/img/approaches/icsa25-transarc.svg (100%) rename {assets => public/assets}/img/approaches/icsa26-archguard.svg (100%) rename {assets => public/assets}/img/approaches/icse24-ardocode.svg (100%) rename {assets => public/assets}/img/approaches/icse24-transarc.svg (100%) rename {assets => public/assets}/img/approaches/icse25-lissa.svg (100%) rename {assets => public/assets}/img/approaches/refsq25-refsq.svg (100%) rename {assets => public/assets}/img/logo.png (100%) rename {assets => public/assets}/img/people/corallo_sophie.jpg (100%) rename {assets => public/assets}/img/people/fuchss_dominik.jpg (100%) rename {assets => public/assets}/img/people/hey_tobias.jpg (100%) rename {assets => public/assets}/img/people/keim_jan.jpg (100%) rename {assets => public/assets}/img/people/koziolek_anne.jpg (100%) rename {assets => public/assets}/img/people/liu_haoyu.jpg (100%) rename {assets => public/assets}/pdf/presentation_23_ICSA_InconsistencyDetection.pdf (100%) rename {assets => public/assets}/pdf/presentation_24_SE_InconsistencyDetection.pdf (100%) rename {assets => public/assets}/pdf/presentation_25_SE_TransArC.pdf (100%) rename {assets => public/assets}/pdf/presentation_aire25.pdf (100%) rename {assets => public/assets}/pdf/presentation_aire25.pptx (100%) rename {assets => public/assets}/pdf/presentation_fgarch24_keim.pdf (100%) rename {assets => public/assets}/pdf/presentation_icsa25.pdf (100%) rename {assets => public/assets}/pdf/presentation_icsa25.pptx (100%) rename {assets => public/assets}/pdf/presentation_icse24.pdf (100%) rename {assets => public/assets}/pdf/presentation_icse24.pptx (100%) rename {assets => public/assets}/pdf/presentation_icse25.pdf (100%) rename {assets => public/assets}/pdf/presentation_icse25.pptx (100%) rename {assets => public/assets}/pdf/presentation_se26-exarch.pdf (100%) rename {assets => public/assets}/pdf/presentation_se26-lissa.pdf (100%) create mode 100644 public/robots.txt delete mode 100644 purgecss.config.js delete mode 100644 requirements.txt delete mode 100644 robots.txt create mode 100644 scripts/audit-features.mjs create mode 100644 scripts/audit-site.mjs create mode 100644 scripts/generate-asset-baseline.mjs create mode 100644 scripts/update_bib.py create mode 100644 scripts/verify-invariants.mjs create mode 100644 src/components/BaseHead.astro create mode 100644 src/components/Email.astro create mode 100644 src/components/Figure.astro create mode 100644 src/components/Footer.astro create mode 100644 src/components/Nav.astro create mode 100644 src/components/Prose.astro create mode 100644 src/components/pub/CopyButton.astro create mode 100644 src/components/pub/PubEntry.astro create mode 100644 src/components/pub/ScholarMeta.astro create mode 100644 src/components/pub/VenueBadge.astro create mode 100644 src/consts.ts create mode 100644 src/content.config.ts rename {_approaches => src/content/approaches}/arcotl.md (85%) rename {_approaches => src/content/approaches}/ardocode.md (86%) rename {_approaches => src/content/approaches}/exarch.md (79%) rename {_approaches => src/content/approaches}/inconsistency-detection.md (88%) rename {_approaches => src/content/approaches}/lissa.md (88%) rename {_approaches => src/content/approaches}/swattr.md (87%) rename {_approaches => src/content/approaches}/transarc.md (86%) rename {_approaches => src/content/approaches}/tv.md (81%) rename {_conferences => src/content/conferences}/aire25.md (80%) rename {_conferences => src/content/conferences}/ase26-everest.md (69%) create mode 100644 src/content/conferences/ase26-tools.md rename {_conferences => src/content/conferences}/ecsa21.md (81%) rename {_conferences => src/content/conferences}/fg-arch24.md (72%) rename {_conferences => src/content/conferences}/icsa23.md (84%) rename {_conferences => src/content/conferences}/icsa25.md (82%) rename {_conferences => src/content/conferences}/icsa26.md (76%) rename {_conferences => src/content/conferences}/icse24.md (82%) rename {_conferences => src/content/conferences}/icse25.md (79%) rename {_conferences => src/content/conferences}/refsq25.md (77%) rename {_conferences => src/content/conferences}/se24.md (52%) create mode 100644 src/content/conferences/se25.md create mode 100644 src/content/conferences/se26-exarch.md create mode 100644 src/content/conferences/se26-lissa.md create mode 100644 src/content/conferences/taas26.md rename {_data => src/data}/authors.yml (65%) rename {_bibliography => src/data}/papers.bib (94%) create mode 100644 src/data/people.yml create mode 100644 src/data/venues.yml create mode 100644 src/layouts/Base.astro create mode 100644 src/lib/conferences.ts create mode 100644 src/lib/images.ts create mode 100644 src/lib/people.ts create mode 100644 src/lib/publications.ts create mode 100644 src/lib/redirect.ts create mode 100644 src/lib/urls.ts create mode 100644 src/loaders/bibtex.ts create mode 100644 src/pages/404.astro create mode 100644 src/pages/approaches/[slug]/index.astro create mode 100644 src/pages/approaches/index.astro create mode 100644 src/pages/c/[slug].astro create mode 100644 src/pages/conferences/index.astro create mode 100644 src/pages/feed.xml.ts create mode 100644 src/pages/index.astro create mode 100644 src/pages/initial-poster-2019/index.astro create mode 100644 src/pages/people/index.astro create mode 100644 src/pages/publications/index.astro create mode 100644 src/pages/sitemap.xml.ts create mode 100644 src/styles/base.css create mode 100644 src/styles/tokens.css create mode 100644 tsconfig.json create mode 100644 verification/asset-sha256.txt diff --git a/.all-contributorsrc b/.all-contributorsrc deleted file mode 100644 index 1e358e56..00000000 --- a/.all-contributorsrc +++ /dev/null @@ -1,44 +0,0 @@ -{ - "files": ["README.md"], - "imageSize": 100, - "commit": false, - "contributorsPerLine": 7, - "projectName": "al-folio", - "projectOwner": "alshedivat", - "repoType": "github", - "repoHost": "https://github.com", - "badgeTemplate": "[core_contributors]: https://img.shields.io/badge/core_contributors-<%= contributors.length %>-orange.svg 'Number of core contributors'", - "contributorTemplate": "\">\" width=\"<%= options.imageSize %>px;\" alt=\"\"/>
<%= contributor.name %>
", - "skipCi": true, - "contributors": [ - { - "login": "alshedivat", - "name": "Maruan", - "avatar_url": "https://avatars.githubusercontent.com/u/2126561?v=4", - "profile": "https://maruan.alshedivat.com", - "contributions": ["design", "code"] - }, - { - "login": "rohandebsarkar", - "name": "Rohan Deb Sarkar", - "avatar_url": "https://avatars.githubusercontent.com/u/50144004?v=4", - "profile": "https://rohandebsarkar.github.io", - "contributions": ["code"] - }, - { - "login": "pourmand1376", - "name": "Amir Pourmand", - "avatar_url": "https://avatars.githubusercontent.com/u/32064808?v=4", - "profile": "https://amirpourmand.ir", - "contributions": ["code"] - }, - { - "login": "george-gca", - "name": "George", - "avatar_url": "https://avatars.githubusercontent.com/u/31376482?v=4", - "profile": "https://george-gca.github.io/", - "contributions": ["code"] - } - ], - "commitConvention": "angular" -} diff --git a/.devcontainer/Dockerfile b/.devcontainer/Dockerfile deleted file mode 100644 index e511a1bf..00000000 --- a/.devcontainer/Dockerfile +++ /dev/null @@ -1,7 +0,0 @@ -FROM mcr.microsoft.com/devcontainers/jekyll - -# Fix: Remove the broken Yarn repository from the apt sources. -# This prevents 'apt-get update' from failing due to the missing GPG key. -# (Yarn is already provided by the dev container features/nvm, so this system repo is unnecessary) -# See issue #3487 -RUN rm -f /etc/apt/sources.list.d/yarn.list diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json deleted file mode 100644 index 041b0e9d..00000000 --- a/.devcontainer/devcontainer.json +++ /dev/null @@ -1,34 +0,0 @@ -// For format details, see https://aka.ms/devcontainer.json. For config options, see the -// README at: https://github.com/devcontainers/templates/tree/main/src/jekyll -{ - "name": "Jekyll", - // Using a Dockerfile to fix the broken Yarn repository. See issue #3487. - "build": { - "dockerfile": "Dockerfile" - }, - - // Features to add to the dev container. More info: https://containers.dev/features. - "features": { - "ghcr.io/rocker-org/devcontainer-features/apt-packages:1": { - "packages": "build-essential,imagemagick,inotify-tools,jupyter-nbconvert,procps,ruby-full,zlib1g-dev" - }, - "ghcr.io/devcontainers-extra/features/prettier:1.0.2": {} - }, - - // Optionally: run jekyll serve automatically on container entering using the Docker entrypoint - "postAttachCommand": "./bin/entry_point.sh", - - "customizations": { - "vscode": { - "extensions": ["esbenp.prettier-vscode", "sissel.shopify-liquid", "yzhang.markdown-all-in-one"], - "settings": { - // use prettier code formatter as default formatter - "editor.defaultFormatter": "esbenp.prettier-vscode", - "prettier.configPath": ".prettierrc", - "editor.formatOnSave": true - } - } - }, - - "remoteUser": "vscode" -} diff --git a/.dockerignore b/.dockerignore deleted file mode 100644 index 7e826743..00000000 --- a/.dockerignore +++ /dev/null @@ -1,3 +0,0 @@ -_site/ -.git/ -assets/ diff --git a/.git-blame-ignore-revs b/.git-blame-ignore-revs deleted file mode 100644 index 691dff40..00000000 --- a/.git-blame-ignore-revs +++ /dev/null @@ -1,24 +0,0 @@ -# Template taken from https://github.com/v8/v8/blob/master/.git-blame-ignore-revs. -# -# This file contains a list of git hashes of revisions to be ignored by git blame. These -# revisions are considered "unimportant" in that they are unlikely to be what you are -# interested in when blaming. Most of these will probably be commits related to linting -# and code formatting. -# -# Instructions: -# - Only large (generally automated) reformatting or renaming CLs should be -# added to this list. Do not put things here just because you feel they are -# trivial or unimportant. If in doubt, do not put it on this list. -# - Precede each revision with a comment containing the PR title and number. -# For bulk work over many commits, place all commits in a block with a single -# comment at the top describing the work done in those commits. -# - Only put full 40-character hashes on this list (not short hashes or any -# other revision reference). -# - Append to the bottom of the file (revisions should be in chronological order -# from oldest to newest). -# - Because you must use a hash, you need to append to this list in a follow-up -# PR to the actual reformatting PR that you are trying to ignore. - -# Format all the code using prettier.io. (#2048, #2062) -beb6f27d596e753014cb9bff1939e5f78d66431c -2d34024961c3a3d27d6fd18ce06a551657983234 diff --git a/.gitattributes b/.gitattributes deleted file mode 100644 index e7858983..00000000 --- a/.gitattributes +++ /dev/null @@ -1,2 +0,0 @@ -# Force LF line endings, needed for Docker to work on Windows -*.sh text eol=lf \ No newline at end of file diff --git a/.github/ISSUE_TEMPLATE/1_bug_report.yml b/.github/ISSUE_TEMPLATE/1_bug_report.yml deleted file mode 100644 index f9c461f4..00000000 --- a/.github/ISSUE_TEMPLATE/1_bug_report.yml +++ /dev/null @@ -1,102 +0,0 @@ -name: 🐛 Report a bug -description: Any errors. -labels: ["needs triage", "bug"] -body: - - type: markdown - attributes: - value: > - Before you go any further. Is this really a **🐛 bug**? - - If it's a question about how al-folio works, have a look at our [documentation](https://github.com/alshedivat/al-folio/blob/main/README.md), - [frequently asked questions](https://github.com/alshedivat/al-folio/blob/main/FAQ.md), - [past questions](https://github.com/alshedivat/al-folio/discussions/categories/q-a), - or [ask a question](https://github.com/alshedivat/al-folio/discussions/new?category=q-a). - - - type: checkboxes - id: requirements - attributes: - label: Have you checked that your issue isn't already filed? - description: > - Please check if somebody else has already filed the same issue. - If you find a similar issue, please add a 👍 reaction or comment on the original post. - options: - - label: I read through [FAQ](https://github.com/alshedivat/al-folio/blob/main/FAQ.md) and searched through the [past issues](https://github.com/alshedivat/al-folio/issues), none of which addressed my issue. - required: true - - label: Yes, I have checked that this issue isn't already filed. - required: true - - - type: input - attributes: - label: Bug description - description: A description of the 🐛 bug. - placeholder: A clear and concise description of what the bug is. - validations: - required: true - - - type: textarea - attributes: - label: How to reproduce the bug - description: Provide steps to reproduce the 🐛 bug. - placeholder: | - Include steps to reproduce, the expected behaviour, and the actual behaviour. - - 1. Go to '...' - 2. Click on '....' - 3. Scroll down to '....' - 4. See error - validations: - required: true - - - type: textarea - attributes: - label: Error messages and logs - description: > - Provide any error messages and/or logs - placeholder: "Copy the complete error messages and logs" - value: | - ``` - The error message you got, with the full traceback if available. Please paste it between these triple backticks. - ``` - validations: - required: false - - - type: dropdown - id: os - attributes: - label: What operating system are you using? - description: select all OSs where you have experienced this issue - multiple: true - options: - - Linux - - Mac - - Windows - - Not applicable (e.g. you're using GitHub Pages or other hosting) - validations: - required: true - - - type: dropdown - id: environment - attributes: - label: Where are you seeing the problem on? - description: select all environments where you have experienced this issue - multiple: true - options: - - "Running locally with Docker (docker compose)" - - "Running locally with Docker (devcontainer)" - - "Running locally without Docker" - - "Deployed site" - validations: - required: true - - - type: textarea - attributes: - label: More info - description: Add any other info about the issue here. - placeholder: | - Add any other context about the problem here, such as versions of the libraries if running without docker, screenshots, links to the deployed site, etc. - validations: - required: false - - - type: markdown - attributes: - value: "**Happy coding!**" diff --git a/.github/ISSUE_TEMPLATE/2_feature_request.yml b/.github/ISSUE_TEMPLATE/2_feature_request.yml deleted file mode 100644 index 6934f60c..00000000 --- a/.github/ISSUE_TEMPLATE/2_feature_request.yml +++ /dev/null @@ -1,56 +0,0 @@ -name: 🚀 Feature request -description: Propose a feature for this project -labels: ["needs triage", "enhancement"] -body: - - type: markdown - attributes: - value: > - Before you go any further, are you sure that this feature is not already implemented? - - If it's a question about how al-folio works, have a look at our [documentation](https://github.com/alshedivat/al-folio/blob/main/README.md), - [frequently asked questions](https://github.com/alshedivat/al-folio/blob/main/FAQ.md), - [past questions](https://github.com/alshedivat/al-folio/discussions/categories/q-a), - or [ask a question](https://github.com/alshedivat/al-folio/discussions/new?category=q-a). - - - type: checkboxes - id: requirements - attributes: - label: Have you checked that your feature request isn't already filed? - description: > - Please check if somebody else has already filed the same 🚀 feature request. - If you find a similar feature request, please add a 👍 reaction or comment on the original post. - options: - - label: I read through [FAQ](https://github.com/alshedivat/al-folio/blob/main/FAQ.md) and searched through the [past issues](https://github.com/alshedivat/al-folio/issues), none of which addressed my feature request. - required: true - - label: Yes, I have checked that this feature request isn't already filed. - required: true - - - type: textarea - attributes: - label: Description & Motivation - description: A clear and concise description of the 🚀 feature proposal - placeholder: | - Please outline the motivation for the proposal. - Is your feature request related to a problem? e.g., I'm always frustrated when [...]. - If this is related to another GitHub issue, please link it here - - - type: textarea - attributes: - label: Pitch - description: A clear and concise description of what you want to happen. - validations: - required: false - - - type: textarea - attributes: - label: Alternatives - description: A clear and concise description of any alternative solutions or features you've considered, if any. - validations: - required: false - - - type: textarea - attributes: - label: Additional context - description: Add any other context or screenshots about the feature request here. - validations: - required: false diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml deleted file mode 100644 index e8510012..00000000 --- a/.github/ISSUE_TEMPLATE/config.yml +++ /dev/null @@ -1,8 +0,0 @@ -blank_issues_enabled: false -contact_links: - - name: ❓ Ask a Question - url: https://github.com/alshedivat/al-folio/discussions/categories/q-a - about: Ask and answer al-folio related questions. - - name: 📖 Read the documentation - url: https://github.com/alshedivat/al-folio/blob/main/README.md - about: Please consult the documentation before opening any issues! diff --git a/.github/release.yml b/.github/release.yml deleted file mode 100644 index 4fdc27ee..00000000 --- a/.github/release.yml +++ /dev/null @@ -1,14 +0,0 @@ -changelog: - exclude: - labels: - - ignore-for-release - categories: - - title: new features 🚀 - labels: - - enhancement - - title: bug fixes and improvements ✨ - labels: - - bug-fix - - title: other changes 🛠️ - labels: - - "*" diff --git a/.github/stale.yml b/.github/stale.yml deleted file mode 100644 index 8ec2004d..00000000 --- a/.github/stale.yml +++ /dev/null @@ -1,18 +0,0 @@ -# Number of days of inactivity before an issue becomes stale -daysUntilStale: 60 -# Number of days of inactivity before a stale issue is closed -daysUntilClose: 7 -# Issues with these labels will never be considered stale -exemptLabels: - - pinned - - security - - enhancement -# Label to use when marking an issue as stale -staleLabel: wontfix -# Comment to post when marking an issue as stale. Set to `false` to disable -markComment: > - This issue has been automatically marked as stale because it has not had - recent activity. It will be closed if no further activity occurs. Thank you - for your contributions. -# Comment to post when closing a stale issue. Set to `false` to disable -closeComment: false diff --git a/.github/workflows/axe.yml b/.github/workflows/axe.yml deleted file mode 100644 index afa3c922..00000000 --- a/.github/workflows/axe.yml +++ /dev/null @@ -1,74 +0,0 @@ -name: Axe accessibility testing - -on: - # if you want to run this on every push uncomment the following lines - # push: - # branches: - # - master - # - main - # pull_request: - # branches: - # - master - # - main - workflow_dispatch: - inputs: - url: - description: "URL to be checked (e.g.: blog/)" - required: false - -env: - URL: "" - -jobs: - check: - # available images: https://github.com/actions/runner-images#available-images - runs-on: ubuntu-latest - steps: - - name: Checkout 🛎️ - uses: actions/checkout@v4 - - name: Setup Ruby - uses: ruby/setup-ruby@v1 - with: - ruby-version: "3.2.2" - bundler-cache: true - - name: Update _config.yml ⚙️ - uses: fjogeleit/yaml-update-action@main - with: - commitChange: false - valueFile: "_config.yml" - changes: | - { - "giscus.repo": "${{ github.repository }}", - "baseurl": "" - } - - name: Install and Build 🔧 - run: | - sudo apt-get update && sudo apt-get install -y imagemagick - pip3 install --upgrade jupyter - export JEKYLL_ENV=production - bundle exec jekyll build - - name: Purge unused CSS 🧹 - run: | - npm install -g purgecss - purgecss -c purgecss.config.js - - name: Get Chromium version 🌐 - # https://github.com/GoogleChromeLabs/chrome-for-testing?tab=readme-ov-file#other-api-endpoints - run: | - CHROMIUM_VERSION=$(wget -qO- https://googlechromelabs.github.io/chrome-for-testing/LATEST_RELEASE_STABLE | cut -d. -f1) - echo "Chromium version: $CHROMIUM_VERSION" - echo "CHROMIUM_VERSION=$CHROMIUM_VERSION" >> $GITHUB_ENV - - name: Setup Chrome 🌐 - id: setup-chrome - uses: browser-actions/setup-chrome@v1 - with: - chrome-version: ${{ env.CHROMIUM_VERSION }} - - name: Install chromedriver 🚗 - run: | - npm install -g chromedriver@$CHROMIUM_VERSION - - name: Run axe 🪓 - # https://github.com/dequelabs/axe-core-npm/tree/develop/packages/cli - run: | - npm install -g @axe-core/cli - npm install -g http-server - http-server _site/ & - axe --chromedriver-path $(npm root -g)/chromedriver/bin/chromedriver http://localhost:8080/${{ github.event.inputs.url || env.URL }} --load-delay=1500 --exit diff --git a/.github/workflows/broken-links-site.yml b/.github/workflows/broken-links-site.yml deleted file mode 100644 index a62684d2..00000000 --- a/.github/workflows/broken-links-site.yml +++ /dev/null @@ -1,47 +0,0 @@ -name: Check for broken links on site - -on: - workflow_run: - workflows: [Deploy site] - types: [completed] - -jobs: - check-links-on-site: - # https://docs.github.com/en/actions/using-workflows/events-that-trigger-workflows#running-a-workflow-based-on-the-conclusion-of-another-workflow - if: ${{ github.event.workflow_run.conclusion == 'success' }} - # available images: https://github.com/actions/runner-images#available-images - runs-on: ubuntu-latest - steps: - - name: Checkout 🛎️ - uses: actions/checkout@v4 - - name: Setup Ruby - uses: ruby/setup-ruby@v1 - with: - ruby-version: "3.2.2" - bundler-cache: true - - name: Update _config.yml ⚙️ - uses: fjogeleit/yaml-update-action@main - with: - commitChange: false - valueFile: "_config.yml" - changes: | - { - "giscus.repo": "${{ github.repository }}", - "baseurl": "" - } - - name: Install and Build 🔧 - run: | - sudo apt-get update && sudo apt-get install -y imagemagick - pip3 install --upgrade jupyter - export JEKYLL_ENV=production - bundle exec jekyll build - - name: Purge unused CSS 🧹 - run: | - npm install -g purgecss - purgecss -c purgecss.config.js - - name: Link Checker 🔗 - uses: lycheeverse/lychee-action@v2.0.2 - with: - fail: true - # only check local links - args: --offline --remap '_site(/?.*)/assets/(.*) _site/assets/$2' --verbose --no-progress '_site/**/*.html' diff --git a/.github/workflows/broken-links.yml b/.github/workflows/broken-links.yml deleted file mode 100644 index ce7b9e8d..00000000 --- a/.github/workflows/broken-links.yml +++ /dev/null @@ -1,54 +0,0 @@ -name: Check for broken links - -on: - push: - branches: - - master - - main - paths: - - "assets/**" - - "**.html" - - "**.js" - - "**.liquid" - - "**/*.md" - - "**.yml" - - "!.github/workflows/axe.yml" - - "!.github/workflows/deploy-docker-tag.yml" - - "!.github/workflows/deploy-image.yml" - - "!.github/workflows/docker-slim.yml" - - "!.github/workflows/lighthouse-badger.yml" - - "!.github/workflows/prettier.yml" - - "!lighthouse_results/**" - pull_request: - branches: - - master - - main - paths: - - "assets/**" - - "**.html" - - "**.js" - - "**.liquid" - - "**/*.md" - - "**.yml" - - "!.github/workflows/axe.yml" - - "!.github/workflows/deploy-docker-tag.yml" - - "!.github/workflows/deploy-image.yml" - - "!.github/workflows/docker-slim.yml" - - "!.github/workflows/lighthouse-badger.yml" - - "!.github/workflows/prettier.yml" - - "!lighthouse_results/**" - -jobs: - link-checker: - runs-on: ubuntu-latest - # only run on the main repo - if: github.repository == 'alshedivat/al-folio' - steps: - - uses: actions/checkout@v4 - - - name: Link Checker 🔗 - uses: lycheeverse/lychee-action@v2.0.2 - with: - fail: true - # removed md files that include liquid tags - args: --user-agent 'curl/7.54' --exclude-path README.md --exclude-path _pages/404.md --exclude-path _pages/blog.md --exclude-path _posts/2018-12-22-distill.md --exclude-path _posts/2023-04-24-videos.md --exclude-path _books/the_godfather.md --exclude-path .github/instructions/bibtex-bibliography.instructions.md --exclude-path .github/instructions/yaml-configuration.instructions.md --exclude-path .github/instructions/markdown-content.instructions.md --exclude-path .github/instructions/liquid-templates.instructions.md --exclude-path AGENTS.md --exclude-path SEO.md --verbose --no-progress './**/*.md' './**/*.html' diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml deleted file mode 100644 index d09a3b57..00000000 --- a/.github/workflows/codeql.yml +++ /dev/null @@ -1,94 +0,0 @@ -# For most projects, this workflow file will not need changing; you simply need -# to commit it to your repository. -# -# You may wish to alter this file to override the set of languages analyzed, -# or to provide custom queries or build logic. -# -# ******** NOTE ******** -# We have attempted to detect the languages in your repository. Please check -# the `language` matrix defined below to confirm you have the correct set of -# supported CodeQL languages. -# -name: "CodeQL Advanced" - -on: - push: - branches: ["main"] - pull_request: - branches: ["main"] - schedule: - - cron: "45 4 * * 3" - -jobs: - analyze: - name: Analyze (${{ matrix.language }}) - # Runner size impacts CodeQL analysis time. To learn more, please see: - # - https://gh.io/recommended-hardware-resources-for-running-codeql - # - https://gh.io/supported-runners-and-hardware-resources - # - https://gh.io/using-larger-runners (GitHub.com only) - # Consider using larger runners or machines with greater resources for possible analysis time improvements. - runs-on: ${{ (matrix.language == 'swift' && 'macos-latest') || 'ubuntu-latest' }} - permissions: - # required for all workflows - security-events: write - - # required to fetch internal or private CodeQL packs - packages: read - - # only required for workflows in private repositories - actions: read - contents: read - - strategy: - fail-fast: false - matrix: - include: - - language: javascript-typescript - build-mode: none - - language: ruby - build-mode: none - # CodeQL supports the following values keywords for 'language': 'c-cpp', 'csharp', 'go', 'java-kotlin', 'javascript-typescript', 'python', 'ruby', 'swift' - # Use `c-cpp` to analyze code written in C, C++ or both - # Use 'java-kotlin' to analyze code written in Java, Kotlin or both - # Use 'javascript-typescript' to analyze code written in JavaScript, TypeScript or both - # To learn more about changing the languages that are analyzed or customizing the build mode for your analysis, - # see https://docs.github.com/en/code-security/code-scanning/creating-an-advanced-setup-for-code-scanning/customizing-your-advanced-setup-for-code-scanning. - # If you are analyzing a compiled language, you can modify the 'build-mode' for that language to customize how - # your codebase is analyzed, see https://docs.github.com/en/code-security/code-scanning/creating-an-advanced-setup-for-code-scanning/codeql-code-scanning-for-compiled-languages - steps: - - name: Checkout repository - uses: actions/checkout@v4 - - # Initializes the CodeQL tools for scanning. - - name: Initialize CodeQL - uses: github/codeql-action/init@v3 - with: - languages: ${{ matrix.language }} - build-mode: ${{ matrix.build-mode }} - # If you wish to specify custom queries, you can do so here or in a config file. - # By default, queries listed here will override any specified in a config file. - # Prefix the list here with "+" to use these queries and those in the config file. - - # For more details on CodeQL's query packs, refer to: https://docs.github.com/en/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/configuring-code-scanning#using-queries-in-ql-packs - # queries: security-extended,security-and-quality - - # If the analyze step fails for one of the languages you are analyzing with - # "We were unable to automatically build your code", modify the matrix above - # to set the build mode to "manual" for that language. Then modify this step - # to build your code. - # ℹ️ Command-line programs to run using the OS shell. - # 📚 See https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idstepsrun - - if: matrix.build-mode == 'manual' - shell: bash - run: | - echo 'If you are using a "manual" build mode for one or more of the' \ - 'languages you are analyzing, replace this with the commands to build' \ - 'your code, for example:' - echo ' make bootstrap' - echo ' make release' - exit 1 - - - name: Perform CodeQL Analysis - uses: github/codeql-action/analyze@v3 - with: - category: "/language:${{matrix.language}}" diff --git a/.github/workflows/deploy-docker-tag.yml b/.github/workflows/deploy-docker-tag.yml deleted file mode 100644 index d7710e26..00000000 --- a/.github/workflows/deploy-docker-tag.yml +++ /dev/null @@ -1,50 +0,0 @@ -name: Docker Image CI (Upload Tag) - -on: - push: - tags: - - "v*" - paths: - - ".github/workflows/deploy-docker-tag.yml" - - ".github/workflows/deploy-image.yml" - - "bin/entry_point.sh" - - "Dockerfile" - - "Gemfile" - - "Gemfile.lock" - - "package.json" - - "package-lock.json" - -jobs: - build: - runs-on: ubuntu-latest - - steps: - - name: Checkout - uses: actions/checkout@v4 - - - name: Set up QEMU - uses: docker/setup-qemu-action@v3 - - - name: Buildx - uses: docker/setup-buildx-action@v3 - - - name: Docker meta - id: meta - uses: docker/metadata-action@v5 - with: - images: amirpourmand/al-folio - - - name: Login - uses: docker/login-action@v3 - with: - username: ${{ secrets.DOCKER_USERNAME }} - password: ${{ secrets.DOCKER_PASSWORD }} - - - name: Build and push - uses: docker/build-push-action@v5 - with: - context: . - platforms: linux/amd64,linux/arm64/v8 - push: ${{ github.event_name != 'pull_request' }} - tags: ${{ steps.meta.outputs.tags }} - labels: ${{ steps.meta.outputs.labels }} diff --git a/.github/workflows/deploy-image.yml b/.github/workflows/deploy-image.yml deleted file mode 100644 index 7ddd8f65..00000000 --- a/.github/workflows/deploy-image.yml +++ /dev/null @@ -1,44 +0,0 @@ -name: Docker Image CI - -on: - push: - branches: - - master - - main - paths: - - ".github/workflows/deploy-image.yml" - - "bin/entry_point.sh" - - "Dockerfile" - - "Gemfile" - - "Gemfile.lock" - - "package.json" - - "package-lock.json" - -jobs: - build: - runs-on: ubuntu-latest - if: github.repository_owner == 'alshedivat' - - steps: - - name: Checkout - uses: actions/checkout@v4 - - - name: Set up QEMU - uses: docker/setup-qemu-action@v3 - - - name: Buildx - uses: docker/setup-buildx-action@v3 - - - name: Login - uses: docker/login-action@v3 - with: - username: ${{ secrets.DOCKER_USERNAME }} - password: ${{ secrets.DOCKER_PASSWORD }} - - - name: Build and push - uses: docker/build-push-action@v5 - with: - context: . - push: true - platforms: linux/amd64,linux/arm64/v8 - tags: amirpourmand/al-folio diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index 5fb7e8ae..e41e753c 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -1,105 +1,53 @@ -name: Deploy site +name: Build, verify and deploy on: push: - branches: - - master - - main - paths: - - "assets/**" - - "_sass/**" - - "_scripts/**" - - "**.bib" - - "**.html" - - "**.js" - - "**.liquid" - - "**/*.md" - - "**.yml" - - "Gemfile" - - "Gemfile.lock" - - "!.github/workflows/axe.yml" - - "!.github/workflows/broken-links.yml" - - "!.github/workflows/deploy-docker-tag.yml" - - "!.github/workflows/deploy-image.yml" - - "!.github/workflows/docker-slim.yml" - - "!.github/workflows/lighthouse-badger.yml" - - "!.github/workflows/prettier.yml" - - "!lighthouse_results/**" - - "!CONTRIBUTING.md" - - "!CUSTOMIZE.md" - - "!FAQ.md" - - "!INSTALL.md" - - "!README.md" + branches: [main] pull_request: - branches: - - master - - main - paths: - - "assets/**" - - "_sass/**" - - "_scripts/**" - - "**.bib" - - "**.html" - - "**.js" - - "**.liquid" - - "**/*.md" - - "**.yml" - - "Gemfile" - - "Gemfile.lock" - - "!.github/workflows/axe.yml" - - "!.github/workflows/broken-links.yml" - - "!.github/workflows/deploy-docker-tag.yml" - - "!.github/workflows/deploy-image.yml" - - "!.github/workflows/docker-slim.yml" - - "!.github/workflows/lighthouse-badger.yml" - - "!.github/workflows/prettier.yml" - - "!lighthouse_results/**" - - "!CONTRIBUTING.md" - - "!CUSTOMIZE.md" - - "!FAQ.md" - - "!INSTALL.md" - - "!README.md" + branches: [main] workflow_dispatch: permissions: contents: write +concurrency: + group: deploy-${{ github.ref }} + cancel-in-progress: true + jobs: - deploy: - # available images: https://github.com/actions/runner-images#available-images + build: runs-on: ubuntu-latest steps: - - name: Checkout 🛎️ - uses: actions/checkout@v4 - - name: Setup Ruby 💎 - uses: ruby/setup-ruby@v1 - with: - ruby-version: "3.3.5" - bundler-cache: true - - name: Setup Python 🐍 - uses: actions/setup-python@v5 - with: - python-version: "3.13" - cache: "pip" # caching pip dependencies - - name: Update _config.yml ⚙️ - uses: fjogeleit/yaml-update-action@main + - uses: actions/checkout@v4 + + - uses: actions/setup-node@v4 with: - commitChange: false - valueFile: "_config.yml" - propertyPath: "giscus.repo" - value: ${{ github.repository }} - - name: Install and Build 🔧 - run: | - sudo apt-get update && sudo apt-get install -y imagemagick - pip3 install --upgrade nbconvert - export JEKYLL_ENV=production - bundle exec jekyll build - - name: Purge unused CSS 🧹 - run: | - npm install -g purgecss - purgecss -c purgecss.config.js - - name: Deploy 🚀 - if: github.event_name != 'pull_request' + node-version-file: .nvmrc + cache: npm + + - run: npm ci + + # Formatting and type-checking run here rather than in a workflow of their + # own: they need exactly the install this job has already done. + - name: Check formatting + run: npx prettier . --check + + - name: Type-check + run: npx astro check + + - name: Build + run: npm run build + + # URL parity, byte-identity of the published PDFs and images, and the + # structural/feature audits. Runs before the deploy step, so a regression + # fails the workflow instead of reaching ardoco.de. + - name: Verify + run: npm run verify + + - name: Deploy to gh-pages + if: github.event_name != 'pull_request' && github.ref == 'refs/heads/main' uses: JamesIves/github-pages-deploy-action@v4 with: - folder: _site + folder: dist + branch: gh-pages + clean: true diff --git a/.github/workflows/docker-slim.yml b/.github/workflows/docker-slim.yml deleted file mode 100644 index b342ef66..00000000 --- a/.github/workflows/docker-slim.yml +++ /dev/null @@ -1,53 +0,0 @@ -name: Docker Slim - -#Only trigger, when the build workflow succeeded -on: - push: - branches: - - master - - main - paths: - - ".github/workflows/docker-slim.yml" - workflow_run: - workflows: ["Docker Image CI"] - types: - - completed - workflow_dispatch: - -jobs: - build: - # https://docs.github.com/en/actions/using-workflows/events-that-trigger-workflows#running-a-workflow-based-on-the-conclusion-of-another-workflow - if: ${{ github.event.workflow_run.conclusion == 'success' && github.repository_owner == 'alshedivat' }} - runs-on: ubuntu-latest - defaults: - run: - working-directory: ${{ github.workspace }} - - steps: - - name: Checkout - uses: actions/checkout@v4 - - - name: Login - uses: docker/login-action@v3 - with: - username: ${{ secrets.DOCKER_USERNAME }} - password: ${{ secrets.DOCKER_PASSWORD }} - - - name: update docker-compose - shell: bash - run: | - sed -i "s|\.:|${{ github.workspace }}:|g" ${{ github.workspace }}/docker-compose.yml - cat ${{ github.workspace }}/docker-compose.yml - - - uses: kitabisa/docker-slim-action@v1.2.0 - env: - DSLIM_PULL: true - DSLIM_COMPOSE_FILE: ${{ github.workspace }}/docker-compose.yml - DSLIM_TARGET_COMPOSE_SVC: jekyll - DSLIM_CONTINUE_AFTER: signal - with: - target: amirpourmand/al-folio - tag: "slim" - - # Push to the registry - - run: docker image push amirpourmand/al-folio:slim diff --git a/.github/workflows/lighthouse-badger.yml b/.github/workflows/lighthouse-badger.yml deleted file mode 100644 index addec2d3..00000000 --- a/.github/workflows/lighthouse-badger.yml +++ /dev/null @@ -1,62 +0,0 @@ -# Lighthouse-Badger-Easy | GitHub Action Workflow -# -# Description: Generates, adds & updates manually/automatically Lighthouse badges & reports from one/multiple input URL(s) to the current repository & main branch with minimal settings -# Author: Sitdisch -# Source: https://github.com/myactionway/lighthouse-badger-workflows -# License: MIT -# Copyright (c) 2021 Sitdisch - -name: "Lighthouse Badger" - -######################################################################## -# DEFINE YOUR INPUTS AND TRIGGERS IN THE FOLLOWING -######################################################################## - -# INPUTS as Secrets (env) for not manually triggered workflows -env: - URLS: https://alshedivat.github.io/al-folio/ - # If any of the following env is blank, a default value is used instead - REPO_BRANCH: "${{ github.repository }} master" # target repository & branch e.g. 'dummy/mytargetrepo main' - MOBILE_LIGHTHOUSE_PARAMS: "--only-categories=performance,accessibility,best-practices,seo --throttling.cpuSlowdownMultiplier=2" - DESKTOP_LIGHTHOUSE_PARAMS: "--only-categories=performance,accessibility,best-practices,seo --preset=desktop --throttling.cpuSlowdownMultiplier=1" - -# TRIGGERS -on: - page_build: - # schedule: # Check your schedule here => https://crontab.guru/ - # - cron: '55 23 * * 0' # e.g. every Sunday at 23:55 - # - # THAT'S IT; YOU'RE DONE; - workflow_dispatch: - -######################################################################## -# THAT'S IT; YOU DON'T HAVE TO DEFINE ANYTHING IN THE FOLLOWING -######################################################################## - -jobs: - lighthouse-badger-easy: - runs-on: ubuntu-latest - timeout-minutes: 8 - steps: - - name: Preparatory Tasks - run: | - REPOSITORY=`expr "${{ env.REPO_BRANCH }}" : "\([^ ]*\)"` - BRANCH=`expr "${{ env.REPO_BRANCH }}" : ".* \([^ ]*\)"` - echo "REPOSITORY=$REPOSITORY" >> $GITHUB_ENV - echo "BRANCH=$BRANCH" >> $GITHUB_ENV - env: - REPO_BRANCH: ${{ env.REPO_BRANCH }} - - uses: actions/checkout@v4 - with: - repository: ${{ env.REPOSITORY }} - token: ${{ secrets.LIGHTHOUSE_BADGER_TOKEN }} - ref: ${{ env.BRANCH }} - - uses: actions/checkout@v4 - with: - repository: "myactionway/lighthouse-badges" - path: temp_lighthouse_badges_nested - - uses: myactionway/lighthouse-badger-action@v2.2 - with: - urls: ${{ env.URLS }} - mobile_lighthouse_params: ${{ env.MOBILE_LIGHTHOUSE_PARAMS }} - desktop_lighthouse_params: ${{ env.DESKTOP_LIGHTHOUSE_PARAMS }} diff --git a/.github/workflows/prettier-comment-on-pr.yml b/.github/workflows/prettier-comment-on-pr.yml deleted file mode 100644 index e95075ce..00000000 --- a/.github/workflows/prettier-comment-on-pr.yml +++ /dev/null @@ -1,18 +0,0 @@ -name: Comment on pull request - -on: - repository_dispatch: - types: [prettier-failed-on-pr] - -jobs: - comment: - # available images: https://github.com/actions/runner-images#available-images - runs-on: ubuntu-latest - steps: - - name: PR comment with html diff 💬 - uses: thollander/actions-comment-pull-request@v2 - with: - comment_tag: prettier-failed - pr_number: ${{ github.event.client_payload.pr_number }} - message: | - Failed [prettier code check](${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.event.client_payload.run_id }}). Check [this file](${{ github.event.client_payload.artifact_url }}) for more information. diff --git a/.github/workflows/prettier-html.yml b/.github/workflows/prettier-html.yml deleted file mode 100644 index 3dc4326e..00000000 --- a/.github/workflows/prettier-html.yml +++ /dev/null @@ -1,36 +0,0 @@ -name: Prettify gh-pages - -on: - workflow_dispatch: - -jobs: - format: - runs-on: ubuntu-latest - steps: - - name: Checkout gh-pages branch - uses: actions/checkout@v4 - with: - ref: gh-pages - - - name: Find and Remove Tags - run: find . -type f -name "*.html" -exec sed -i 's/<\/source>//g' {} + - - - name: Set up Node.js - uses: actions/setup-node@v4 - - - name: Install Prettier - run: npm install -g prettier - - - name: Check for Prettier - run: npx prettier --version || echo "Prettier not found" - - - name: Run Prettier on HTML files - run: npx prettier --write '**/*.html' - - - name: Commit and push changes - run: | - git config user.name "github-actions" - git config user.email "actions@github.com" - git add . - git commit -m "Formatted HTML files" || echo "No changes to commit" - git push diff --git a/.github/workflows/prettier.yml b/.github/workflows/prettier.yml deleted file mode 100644 index 60446c8d..00000000 --- a/.github/workflows/prettier.yml +++ /dev/null @@ -1,48 +0,0 @@ -name: Prettier code formatter - -on: - pull_request: - branches: - - master - - main - push: - branches: - - master - - main - -jobs: - check: - # available images: https://github.com/actions/runner-images#available-images - runs-on: ubuntu-latest - steps: - - name: Checkout 🛎️ - uses: actions/checkout@v4 - - name: Setup Node.js ⚙️ - uses: actions/setup-node@v4 - - name: Install Prettier 💾 - run: npm install --save-dev --save-exact prettier @shopify/prettier-plugin-liquid - - name: Prettier Check 🔎 - id: prettier - run: npx prettier . --check - - name: Create diff 📝 - # https://docs.github.com/en/actions/learn-github-actions/expressions#failure - if: ${{ failure() }} - run: | - npx prettier . --write - git diff -- . ':(exclude)package-lock.json' ':(exclude)package.json' > diff.txt - npm install -g diff2html-cli - diff2html -i file -s side -F diff.html -- diff.txt - - name: Upload html diff ⬆️ - id: artifact-upload - if: ${{ failure() && steps.prettier.conclusion == 'failure' }} - uses: actions/upload-artifact@v4 - with: - name: HTML Diff - path: diff.html - retention-days: 7 - - name: Dispatch information to repository 🗣️ - if: ${{ failure() && steps.prettier.conclusion == 'failure' && github.event_name == 'pull_request' }} - uses: peter-evans/repository-dispatch@v2 - with: - event-type: prettier-failed-on-pr - client-payload: '{"pr_number": "${{ github.event.number }}", "artifact_url": "${{ steps.artifact-upload.outputs.artifact-url }}", "run_id": "${{ github.run_id }}"}' diff --git a/.github/workflows/schedule-posts.txt b/.github/workflows/schedule-posts.txt deleted file mode 100644 index 57728bca..00000000 --- a/.github/workflows/schedule-posts.txt +++ /dev/null @@ -1,39 +0,0 @@ -name: Publish posts scheduled for today - -on: - schedule: - # Run every day at 23:30 UTC or manually run - - cron: "30 23 * * *" - workflow_dispatch: - -jobs: - publish_scheduled: - runs-on: ubuntu-latest - steps: - - name: Checkout main branch - uses: actions/checkout@v4 - with: - ref: main - - - name: Get the date for today - id: date - run: echo "TODAY=$(date +'%Y-%m-%d')" >> $GITHUB_ENV - - - name: Check for scheduled posts and move to posts - run: | - echo "Today is $TODAY" - shopt -s nullglob - for file in _scheduled/${TODAY}-*.md; do - echo "Found scheduled: $file" - mv "$file" "_posts/" - echo "Moved $file to _posts/" - done - - - name: Commit and push changes - run: | - git config user.name "github-actions" - git config user.email "actions@github.com" - git add _posts/ - git add _scheduled/ - git commit -m "Posted Scheduled Drafts on $TODAY" || echo "No changes to commit" - git push diff --git a/.github/workflows/update-citations.yml b/.github/workflows/update-citations.yml deleted file mode 100644 index 3335d7ec..00000000 --- a/.github/workflows/update-citations.yml +++ /dev/null @@ -1,101 +0,0 @@ -name: Update Google Scholar Citations - -on: - schedule: - - cron: "0 0 * * 1" # Monday - - cron: "0 0 * * 3" # Wednesday - - cron: "0 0 * * 5" # Friday - workflow_dispatch: - -jobs: - update-citations: - runs-on: ubuntu-latest - - steps: - - name: Checkout repository - uses: actions/checkout@v4 - # See CUSTOMIZE.md for details on how to set up PAT for triggering subsequent workflows - # with: - # token: ${{ secrets.PAT }} - - - name: Set up Python - uses: actions/setup-python@v4 - with: - python-version: "3.13" - - - name: Install dependencies - run: | - echo "🔧 Installing dependencies..." - python -m pip install --upgrade pip - pip install -r requirements.txt - - - name: Save current citations.yml hash - id: before - run: | - echo "📦 Checking existing citations.yml hash..." - if [ -f _data/citations.yml ]; then - sha_before=$(sha256sum _data/citations.yml | awk '{print $1}') - echo "sha_before=$sha_before" >> $GITHUB_OUTPUT - echo "📝 SHA before: $sha_before" - else - echo "sha_before=none" >> $GITHUB_OUTPUT - echo "📝 No existing citations.yml file found." - fi - - - name: Run citation update script - id: run_citation_update - shell: bash - run: | - set +e - echo "🚀 Running citation update script (single attempt)..." - start_time=$(date) - timeout 90 python bin/update_scholar_citations.py - status=$? - end_time=$(date) - if [ $status -eq 0 ]; then - echo "✅ Citation update succeeded (started at $start_time, ended at $end_time)." - echo "✅ Citation update succeeded." >> $GITHUB_STEP_SUMMARY - else - echo "❌ Citation update script failed with exit code $status (started at $start_time, ended at $end_time)." - echo "❌ Citation update script failed with exit code $status." >> $GITHUB_STEP_SUMMARY - fi - set -e - - - name: Save new citations.yml hash - id: after - run: | - echo "🔍 Checking updated citations.yml hash..." - if [ -f _data/citations.yml ]; then - sha_after=$(sha256sum _data/citations.yml | awk '{print $1}') - echo "sha_after=$sha_after" >> $GITHUB_OUTPUT - echo "📝 SHA after: $sha_after" - else - echo "sha_after=none" >> $GITHUB_OUTPUT - echo "📝 citations.yml was not created or is missing." - fi - - - name: Report citations.yml change in summary - run: | - echo "📋 Comparing citation file hashes..." - if [ "${{ steps.before.outputs.sha_before }}" != "${{ steps.after.outputs.sha_after }}" ]; then - echo "✅ _data/citations.yml was updated." - echo "✅ _data/citations.yml was updated." >> $GITHUB_STEP_SUMMARY - else - echo "ℹ️ _data/citations.yml was not changed." - echo "ℹ️ _data/citations.yml was not changed." >> $GITHUB_STEP_SUMMARY - fi - - - name: Configure Git - run: | - git config --local user.email "actions@github.com" - git config --local user.name "GitHub Actions" - echo "🔧 Git configured." - - - name: Commit and push if changed - run: | - git add _data/citations.yml - git diff --staged --quiet || ( - echo "📤 Committing and pushing changes..." - git commit -m "Update Google Scholar citations" - git push - ) diff --git a/.github/workflows/update-tocs.yml b/.github/workflows/update-tocs.yml deleted file mode 100644 index 3567ee82..00000000 --- a/.github/workflows/update-tocs.yml +++ /dev/null @@ -1,50 +0,0 @@ -name: Update TOCs -# This workflow automatically updates the Table of Contents (TOC) in markdown files - -on: - push: - branches: - - main - - master - paths: - - "*.md" - workflow_dispatch: - -permissions: - contents: write - -jobs: - build: - runs-on: ubuntu-latest - timeout-minutes: 5 - steps: - - uses: actions/checkout@v4 - with: - fetch-depth: 0 # OR "2" -> To retrieve the preceding commit. - - - name: Get changed files - id: changed-files - uses: tj-actions/changed-files@ed68ef82c095e0d48ec87eccea555d944a631a4c # v46 - with: - files: ./*.md - - - name: Updated toc on all markdown changed files - env: - ALL_CHANGED_FILES: ${{ steps.changed-files.outputs.all_changed_files }} - run: | - curl https://raw.githubusercontent.com/george-gca/github-markdown-toc/main/gh-md-toc -o gh-md-toc - chmod a+x gh-md-toc - for file in ${ALL_CHANGED_FILES}; do - # Check if the file is a markdown file - if [[ "$file" != *.md ]]; then - continue - fi - ./gh-md-toc --indent 2 --insert --no-backup --hide-footer $file - done - rm gh-md-toc - - - name: Commit changes - if: steps.changed-files.outputs.any_changed == 'true' - uses: stefanzweifel/git-auto-commit-action@v5.0.1 - with: - commit_message: Auto update markdown TOC diff --git a/.gitignore b/.gitignore index 1fee89bc..185f4e0a 100644 --- a/.gitignore +++ b/.gitignore @@ -1,15 +1,9 @@ -_site -.bundle -.DS_store +# Astro +dist/ +.astro/ +node_modules/ + +# Editors / OS +.DS_Store .idea -.jekyll-cache -.jekyll-metadata -.ruby-version -.sass-cache -.tweet-cache .venv -assets/libs/ -assets/rendercv/rendercv_output/*.typ -Gemfile.lock -node_modules/ -vendor \ No newline at end of file diff --git a/.lycheeignore b/.lycheeignore deleted file mode 100644 index 64194b51..00000000 --- a/.lycheeignore +++ /dev/null @@ -1,14 +0,0 @@ -.github/instructions/bibtex-bibliography.instructions.md -.github/instructions/liquid-templates.instructions.md -.github/instructions/markdown-content.instructions.md -.github/instructions/yaml-configuration.instructions.md -_books/the_godfather.md -_pages/404.md -_pages/blog.md -_posts/2018-12-22-distill.md -_posts/2023-04-24-videos.md -AGENTS.md -https://www.linkedin.com/ -https://www.reddit.com/ -README.md -SEO.md diff --git a/.nvmrc b/.nvmrc new file mode 100644 index 00000000..2bd5a0a9 --- /dev/null +++ b/.nvmrc @@ -0,0 +1 @@ +22 diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml deleted file mode 100644 index d61cba84..00000000 --- a/.pre-commit-config.yaml +++ /dev/null @@ -1,10 +0,0 @@ -# See https://pre-commit.com for more information -# See https://pre-commit.com/hooks.html for more hooks -repos: - - repo: https://github.com/pre-commit/pre-commit-hooks - rev: v4.3.0 - hooks: - - id: trailing-whitespace - - id: end-of-file-fixer - - id: check-yaml - - id: check-added-large-files diff --git a/.prettierignore b/.prettierignore index 2b016e8c..6e51c002 100644 --- a/.prettierignore +++ b/.prettierignore @@ -1,13 +1,11 @@ -**/*.map -**/*.min.css -**/*.min.js -assets/css/main.scss -assets/js/distillpub/template.v2.js -assets/js/search/*.js -assets/plotly/demo.html -lighthouse_results/** -_posts/2015-10-20-math.md -_sass/font-awesome/*.scss -_scripts/* -# Ignore citation YAML file generated by script -_data/citations.yml +dist/ +.astro/ +node_modules/ +package-lock.json + +# Hand-maintained bibliography: prettier would reflow the BibTeX alignment that +# makes diffs readable when a paper is added. +src/data/papers.bib + +# Committed contract, generated by scripts/generate-url-manifest.mjs. +verification/ diff --git a/.prettierrc b/.prettierrc index 0163f199..07dc0ae7 100644 --- a/.prettierrc +++ b/.prettierrc @@ -1,3 +1,12 @@ -plugins: ["@shopify/prettier-plugin-liquid"] -printWidth: 150 -trailingComma: "es5" +{ + "plugins": ["prettier-plugin-astro"], + "printWidth": 100, + "singleQuote": true, + "trailingComma": "all", + "overrides": [ + { + "files": "*.astro", + "options": { "parser": "astro" } + } + ] +} diff --git a/Dockerfile b/Dockerfile deleted file mode 100644 index 15d76104..00000000 --- a/Dockerfile +++ /dev/null @@ -1,78 +0,0 @@ -FROM ruby:slim - -# uncomment these if you are having this issue with the build: -# /usr/local/bundle/gems/jekyll-4.3.4/lib/jekyll/site.rb:509:in `initialize': Permission denied @ rb_sysopen - /srv/jekyll/.jekyll-cache/.gitignore (Errno::EACCES) -# ARG GROUPID=901 -# ARG GROUPNAME=ruby -# ARG USERID=901 -# ARG USERNAME=jekyll - -ENV DEBIAN_FRONTEND noninteractive - -LABEL authors="Amir Pourmand,George Araújo" \ - description="Docker image for al-folio academic template" \ - maintainer="Amir Pourmand" - -# uncomment these if you are having this issue with the build: -# /usr/local/bundle/gems/jekyll-4.3.4/lib/jekyll/site.rb:509:in `initialize': Permission denied @ rb_sysopen - /srv/jekyll/.jekyll-cache/.gitignore (Errno::EACCES) -# add a non-root user to the image with a specific group and user id to avoid permission issues -# RUN groupadd -r $GROUPNAME -g $GROUPID && \ -# useradd -u $USERID -m -g $GROUPNAME $USERNAME - -# install system dependencies -RUN apt-get update -y && \ - apt-get install -y --no-install-recommends \ - build-essential \ - curl \ - dos2unix \ - git \ - imagemagick \ - inotify-tools \ - locales \ - nodejs \ - procps \ - python3-pip \ - zlib1g-dev && \ - pip --no-cache-dir install --upgrade --break-system-packages nbconvert - -# clean up -RUN apt-get clean && \ - apt-get autoremove && \ - rm -rf /var/lib/apt/lists/* /var/cache/apt/archives/* /tmp/* - -# set the locale -RUN sed -i '/en_US.UTF-8/s/^# //g' /etc/locale.gen && \ - locale-gen - -# set environment variables -ENV EXECJS_RUNTIME=Node \ - JEKYLL_ENV=production \ - LANG=en_US.UTF-8 \ - LANGUAGE=en_US:en \ - LC_ALL=en_US.UTF-8 - -# create a directory for the jekyll site -RUN mkdir /srv/jekyll - -# copy the Gemfile and Gemfile.lock to the image -ADD Gemfile.lock /srv/jekyll -ADD Gemfile /srv/jekyll - -# set the working directory -WORKDIR /srv/jekyll - -# install jekyll and dependencies -RUN gem install --no-document jekyll bundler -RUN bundle install --no-cache - -EXPOSE 8080 - -COPY bin/entry_point.sh /tmp/entry_point.sh -RUN chmod +x /tmp/entry_point.sh && dos2unix /tmp/entry_point.sh - -# uncomment this if you are having this issue with the build: -# /usr/local/bundle/gems/jekyll-4.3.4/lib/jekyll/site.rb:509:in `initialize': Permission denied @ rb_sysopen - /srv/jekyll/.jekyll-cache/.gitignore (Errno::EACCES) -# set the ownership of the jekyll site directory to the non-root user -# USER $USERNAME - -CMD ["/tmp/entry_point.sh"] diff --git a/Gemfile b/Gemfile deleted file mode 100644 index f2fc1467..00000000 --- a/Gemfile +++ /dev/null @@ -1,41 +0,0 @@ -source 'https://rubygems.org' - -gem 'jekyll' - -# Core plugins that directly affect site building -group :jekyll_plugins do - gem 'jekyll-3rd-party-libraries' - gem 'jekyll-archives-v2' - gem 'jekyll-cache-bust' - gem 'jekyll-email-protect' - gem 'jekyll-feed' - gem 'jekyll-get-json' - gem 'jekyll-imagemagick' - gem 'jekyll-jupyter-notebook' - gem 'jekyll-link-attributes' - gem 'jekyll-minifier' - gem 'jekyll-paginate-v2' - gem 'jekyll-regex-replace' - gem 'jekyll-scholar' - gem 'jekyll-sitemap' - gem 'jekyll-socials' - gem 'jekyll-tabs' - gem 'jekyll-terser', :git => "https://github.com/RobertoJBeltran/jekyll-terser.git" - gem 'jekyll-toc' - gem 'jekyll-twitter-plugin' - gem 'jemoji' - - gem 'classifier-reborn' # used for content categorization during the build -end - -# Gems for development or external data fetching (outside :jekyll_plugins) -group :other_plugins do - gem 'css_parser' - gem 'feedjira' - gem 'httparty' - gem 'observer' # used by jekyll-scholar - gem 'ostruct' # used by jekyll-twitter-plugin - # gem 'terser' # used by jekyll-terser - # gem 'unicode_utils' -- should be already installed by jekyll - # gem 'webrick' -- should be already installed by jekyll -end diff --git a/Gemfile.lock b/Gemfile.lock deleted file mode 100644 index ed9d3b6d..00000000 --- a/Gemfile.lock +++ /dev/null @@ -1,329 +0,0 @@ -GIT - remote: https://github.com/RobertoJBeltran/jekyll-terser.git - revision: 1085bf66d692799af09fe39f8162a1e6e42a3cc4 - specs: - jekyll-terser (0.2.3) - jekyll (>= 0.10.0) - terser (>= 1.0.0) - -GEM - remote: https://rubygems.org/ - specs: - activesupport (8.1.2) - base64 - bigdecimal - concurrent-ruby (~> 1.0, >= 1.3.1) - connection_pool (>= 2.2.5) - drb - i18n (>= 1.6, < 2) - json - logger (>= 1.4.2) - minitest (>= 5.1) - securerandom (>= 0.3) - tzinfo (~> 2.0, >= 2.0.5) - uri (>= 0.13.1) - addressable (2.8.8) - public_suffix (>= 2.0.2, < 8.0) - base64 (0.3.0) - bibtex-ruby (6.2.0) - latex-decode (~> 0.0) - logger (~> 1.7) - racc (~> 1.7) - bigdecimal (4.0.1) - citeproc (1.1.0) - date - forwardable - json - namae (~> 1.0) - observer (< 1.0) - open-uri (< 1.0) - citeproc-ruby (2.1.8) - citeproc (~> 1.0, >= 1.0.9) - csl (~> 2.0) - observer (< 1.0) - classifier-reborn (2.3.0) - fast-stemmer (~> 1.0) - matrix (~> 0.4) - colorator (1.1.0) - concurrent-ruby (1.3.6) - connection_pool (3.0.2) - crass (1.0.6) - csl (2.2.1) - forwardable (~> 1.3) - namae (~> 1.2) - open-uri (< 1.0) - rexml (~> 3.0) - set (~> 1.1) - singleton (< 1.0) - time (< 1.0) - csl-styles (2.0.2) - csl (~> 2.0) - css_parser (1.21.1) - addressable - cssminify2 (2.1.0) - csv (3.3.5) - date (3.5.1) - deep_merge (1.2.2) - drb (2.2.3) - em-websocket (0.5.3) - eventmachine (>= 0.12.9) - http_parser.rb (~> 0) - eventmachine (1.2.7) - execjs (2.10.0) - fast-stemmer (1.0.2) - feedjira (4.0.1) - logger (>= 1.0, < 2) - loofah (>= 2.3.1, < 3) - sax-machine (>= 1.0, < 2) - ffi (1.17.3-aarch64-linux-gnu) - ffi (1.17.3-aarch64-linux-musl) - ffi (1.17.3-arm-linux-gnu) - ffi (1.17.3-arm-linux-musl) - ffi (1.17.3-arm64-darwin) - ffi (1.17.3-x86_64-darwin) - ffi (1.17.3-x86_64-linux-gnu) - ffi (1.17.3-x86_64-linux-musl) - forwardable (1.4.0) - forwardable-extended (2.6.0) - gemoji (4.1.0) - google-protobuf (4.33.4) - bigdecimal - rake (>= 13) - google-protobuf (4.33.4-aarch64-linux-gnu) - bigdecimal - rake (>= 13) - google-protobuf (4.33.4-aarch64-linux-musl) - bigdecimal - rake (>= 13) - google-protobuf (4.33.4-arm64-darwin) - bigdecimal - rake (>= 13) - google-protobuf (4.33.4-x86_64-darwin) - bigdecimal - rake (>= 13) - google-protobuf (4.33.4-x86_64-linux-gnu) - bigdecimal - rake (>= 13) - google-protobuf (4.33.4-x86_64-linux-musl) - bigdecimal - rake (>= 13) - html-pipeline (2.14.3) - activesupport (>= 2) - nokogiri (>= 1.4) - htmlcompressor (0.4.0) - http_parser.rb (0.8.1) - httparty (0.24.2) - csv - mini_mime (>= 1.0.0) - multi_xml (>= 0.5.2) - i18n (1.14.8) - concurrent-ruby (~> 1.0) - jekyll-3rd-party-libraries (0.0.1) - css_parser (>= 1.6, < 2.0) - jekyll (>= 3.6, < 5.0) - nokogiri (>= 1.8, < 2.0) - jekyll (4.4.1) - addressable (~> 2.4) - base64 (~> 0.2) - colorator (~> 1.0) - csv (~> 3.0) - em-websocket (~> 0.5) - i18n (~> 1.0) - jekyll-sass-converter (>= 2.0, < 4.0) - jekyll-watch (~> 2.0) - json (~> 2.6) - kramdown (~> 2.3, >= 2.3.1) - kramdown-parser-gfm (~> 1.0) - liquid (~> 4.0) - mercenary (~> 0.3, >= 0.3.6) - pathutil (~> 0.9) - rouge (>= 3.0, < 5.0) - safe_yaml (~> 1.0) - terminal-table (>= 1.8, < 4.0) - webrick (~> 1.7) - jekyll-archives-v2 (0.0.7) - activesupport - jekyll (>= 3.6, < 5.0) - jekyll-cache-bust (0.0.1) - jekyll (>= 3.6, < 5.0) - jekyll-email-protect (1.1.0) - jekyll-feed (0.17.0) - jekyll (>= 3.7, < 5.0) - jekyll-get-json (1.0.0) - deep_merge (~> 1.2) - jekyll (>= 3.0) - jekyll-imagemagick (1.4.0) - jekyll (>= 3.4) - jekyll-jupyter-notebook (0.0.6) - jekyll - jekyll-link-attributes (1.0.1) - jekyll-minifier (0.2.2) - cssminify2 (~> 2.1.0) - htmlcompressor (~> 0.4) - jekyll (~> 4.0) - json-minify (~> 0.0.3) - terser (~> 1.2.3) - jekyll-paginate-v2 (3.0.0) - jekyll (>= 3.0, < 5.0) - jekyll-regex-replace (1.1.0) - jekyll-sass-converter (3.1.0) - sass-embedded (~> 1.75) - jekyll-scholar (7.3.0) - bibtex-ruby (~> 6.0) - citeproc-ruby (>= 2.1.6) - csl-styles (~> 2.0) - jekyll (~> 4.0) - jekyll-sitemap (1.4.0) - jekyll (>= 3.7, < 5.0) - jekyll-socials (0.0.6) - jekyll (>= 3.6, < 5.0) - jekyll-tabs (1.2.1) - jekyll (>= 3.0, < 5.0) - jekyll-toc (0.19.0) - jekyll (>= 3.9) - nokogiri (~> 1.12) - jekyll-twitter-plugin (2.1.0) - jekyll-watch (2.2.1) - listen (~> 3.0) - jemoji (0.13.0) - gemoji (>= 3, < 5) - html-pipeline (~> 2.2) - jekyll (>= 3.0, < 5.0) - json (2.18.0) - json-minify (0.0.3) - json (> 0) - kramdown (2.5.2) - rexml (>= 3.4.4) - kramdown-parser-gfm (1.1.0) - kramdown (~> 2.0) - latex-decode (0.4.2) - liquid (4.0.4) - listen (3.10.0) - logger - rb-fsevent (~> 0.10, >= 0.10.3) - rb-inotify (~> 0.9, >= 0.9.10) - logger (1.7.0) - loofah (2.25.0) - crass (~> 1.0.2) - nokogiri (>= 1.12.0) - matrix (0.4.3) - mercenary (0.4.0) - mini_mime (1.1.5) - minitest (6.0.1) - prism (~> 1.5) - multi_xml (0.8.1) - bigdecimal (>= 3.1, < 5) - namae (1.2.0) - racc (~> 1.7) - nokogiri (1.19.0-aarch64-linux-gnu) - racc (~> 1.4) - nokogiri (1.19.0-aarch64-linux-musl) - racc (~> 1.4) - nokogiri (1.19.0-arm-linux-gnu) - racc (~> 1.4) - nokogiri (1.19.0-arm-linux-musl) - racc (~> 1.4) - nokogiri (1.19.0-arm64-darwin) - racc (~> 1.4) - nokogiri (1.19.0-x86_64-darwin) - racc (~> 1.4) - nokogiri (1.19.0-x86_64-linux-gnu) - racc (~> 1.4) - nokogiri (1.19.0-x86_64-linux-musl) - racc (~> 1.4) - observer (0.1.2) - open-uri (0.5.0) - stringio - time - uri - ostruct (0.6.3) - pathutil (0.16.2) - forwardable-extended (~> 2.6) - prism (1.8.0) - public_suffix (7.0.2) - racc (1.8.1) - rake (13.3.1) - rb-fsevent (0.11.2) - rb-inotify (0.11.1) - ffi (~> 1.0) - rexml (3.4.4) - rouge (4.7.0) - safe_yaml (1.0.5) - sass-embedded (1.97.2-aarch64-linux-gnu) - google-protobuf (~> 4.31) - sass-embedded (1.97.2-aarch64-linux-musl) - google-protobuf (~> 4.31) - sass-embedded (1.97.2-arm-linux-gnueabihf) - google-protobuf (~> 4.31) - sass-embedded (1.97.2-arm-linux-musleabihf) - google-protobuf (~> 4.31) - sass-embedded (1.97.2-arm64-darwin) - google-protobuf (~> 4.31) - sass-embedded (1.97.2-x86_64-darwin) - google-protobuf (~> 4.31) - sass-embedded (1.97.2-x86_64-linux-gnu) - google-protobuf (~> 4.31) - sass-embedded (1.97.2-x86_64-linux-musl) - google-protobuf (~> 4.31) - sax-machine (1.3.2) - securerandom (0.4.1) - set (1.1.2) - singleton (0.3.0) - stringio (3.2.0) - terminal-table (3.0.2) - unicode-display_width (>= 1.1.1, < 3) - terser (1.2.6) - execjs (>= 0.3.0, < 3) - time (0.4.2) - date - tzinfo (2.0.6) - concurrent-ruby (~> 1.0) - unicode-display_width (2.6.0) - uri (1.1.1) - webrick (1.9.2) - -PLATFORMS - aarch64-linux - aarch64-linux-gnu - aarch64-linux-musl - arm-linux-gnu - arm-linux-gnueabihf - arm-linux-musl - arm-linux-musleabihf - arm64-darwin - x86_64-darwin - x86_64-linux - x86_64-linux-gnu - x86_64-linux-musl - -DEPENDENCIES - classifier-reborn - css_parser - feedjira - httparty - jekyll - jekyll-3rd-party-libraries - jekyll-archives-v2 - jekyll-cache-bust - jekyll-email-protect - jekyll-feed - jekyll-get-json - jekyll-imagemagick - jekyll-jupyter-notebook - jekyll-link-attributes - jekyll-minifier - jekyll-paginate-v2 - jekyll-regex-replace - jekyll-scholar - jekyll-sitemap - jekyll-socials - jekyll-tabs - jekyll-terser! - jekyll-toc - jekyll-twitter-plugin - jemoji - observer - ostruct - -BUNDLED WITH - 4.0.4 diff --git a/README.md b/README.md index cfda8914..a1db87fc 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,128 @@ -

- ARDoCo +

+ +

ardoco.de

+ +

+Website of ARDoCo — Automating Requirements and Documentation Comprehension, +a research project on traceability link recovery and documentation consistency at the +MCSE group, KASTEL, KIT.

-# [ARDoCo - Automating Requirements and Documentation Comprehension](https://github.com/ardoco) +--- + +Built with [Astro](https://astro.build/): six Zod-validated content collections, a hand-written +design, no UI framework, no CSS framework, no theme, dark only. Previously ran on al-folio (Jekyll). + +## Develop + +```bash +npm install +npm run dev # http://localhost:4321, hot reload +npm run build # → dist/ +npm run preview # serves dist/ the way GitHub Pages does +npm run check # astro check + prettier --check +npm run verify # asset byte-identity + structural and feature audits +npm run format # prettier --write +``` + +Node 22 or newer (`.nvmrc`). + +## Layout + +``` +src/ + consts.ts site metadata and the nav + content.config.ts the six collections and their schemas + loaders/bibtex.ts papers.bib → a typed `publications` collection + data/ papers.bib, venues.yml, authors.yml, people.yml + content/ approaches/ (8), conferences/ (16) + pages/ routes; see the URL table below + components/ layouts/ lib/ styles/ +public/ copied verbatim — everything here is a permanent URL + assets/pdf/ 10 slide decks + 4 PPTX + assets/img/ approach diagrams, logo, people photos + CNAME .nojekyll robots.txt +scripts/ audits, the asset baseline, the Crossref bib check +verification/ committed SHA-256 baseline for the published assets +``` + +## Content model + +Six collections. Every cross-reference is an Astro `reference()`, so a bad slug, an unknown venue or +a BibTeX key pointing at a page that does not exist **stops the build**. Under Jekyll each of those +was a silent Liquid lookup that rendered blank. + +| Collection | Source | Notes | +| -------------- | -------------------------- | ----------------------------------------------- | +| `publications` | `src/data/papers.bib` | parsed at build time; 16 entries | +| `conferences` | `src/content/conferences/` | one page per paper, plus 5 redirect stubs | +| `approaches` | `src/content/approaches/` | the 8 approaches, ordered by `importance` | +| `people` | `src/data/people.yml` | the entry key **is** the `/people/#anchor` | +| `authors` | `src/data/authors.yml` | every author who appears anywhere; name + ORCID | +| `venues` | `src/data/venues.yml` | badge colours, keyed by the BibTeX `abbr` | + +The BibTeX loader also reads ARDoCo's own `html = {/c/}` field, which links a paper to its +page, and fails the build if that page is missing. + +## URLs + +Two shapes, both inherited from the Jekyll site and both still served: + +| URL | Built from | +| -------------------------------------- | ------------------------------------ | +| `/` | `src/pages/index.astro` | +| `/approaches/` | `src/pages/approaches/index.astro` | +| `/approaches//` | `src/pages/approaches/[slug]/` | +| `/conferences/` | `src/pages/conferences/index.astro` | +| **`/c/`** | `src/pages/c/[slug].astro` → `.html` | +| `/publications/` | `src/pages/publications/index.astro` | +| `/people/` | `src/pages/people/index.astro` | +| `/initial-poster-2019/` | `src/pages/initial-poster-2019/` | +| `/404.html` `/feed.xml` `/sitemap.xml` | `src/pages/` | + +`astro.config.mjs` uses `build.format: 'preserve'`, which is what lets one config emit both +`approaches//index.html` and the flat `c/.html`. The cost is that `Astro.url.pathname` +is the _file_ path, so canonical links and sitemap entries go through `canonical()` in +`src/lib/urls.ts` — never `Astro.url` directly. + +## Things that must not break + +**`/c/`** — printed on conference posters and slides, and cited in papers. The five stubs +(`se24`, `se25`, `se26-exarch`, `se26-lissa`, `taas26`) redirect to the page that superseded them and +stay that way. + +**`public/assets/**`** — served byte-for-byte at URLs that have been live for years. Never rename, +move, or run them through an optimiser. Pinned by SHA-256 in `verification/asset-sha256.txt`; if you +genuinely add or replace one, rerun `node scripts/generate-asset-baseline.mjs`. + +**The two `NEVER CHANGE THIS LINE B/E` comments on the home page** — an external page at +mcse.kastel.kit.edu scrapes the text between them. Invisible from inside the site, which is what +makes them easy to lose. + +**`public/CNAME`** — the deploy replaces the `gh-pages` branch wholesale, so if this file stops being +emitted, `ardoco.de` stops resolving. + +`npm run verify` asserts all four, and the deploy workflow runs it before publishing. It also checks +WCAG contrast, that every internal link and `#fragment` resolves, that images carry intrinsic +dimensions, that no text runs into a link, that no email address appears in the served bytes, and +that `www.youtube.com` (the two screencasts) is still the only third-party origin. + +## Content tasks + +| Task | How | +| -------------------------- | --------------------------------------------------------------------------------- | +| Add a publication | append to `src/data/papers.bib`; `html = {/c/}` links it to its page | +| Add a venue badge | add the abbreviation to `src/data/venues.yml` — an unknown `abbr` fails the build | +| Add a paper page | new `.md` in `src/content/conferences/`; the filename is the `/c/` URL | +| Add an approach | new `.md` in `src/content/approaches/`; `importance` sets its place in the list | +| Link a paper to approaches | `approaches: [lissa, exarch]` in its front matter — bad slugs fail the build | +| Add a person | new entry in `src/data/people.yml`; the key becomes the `/people/#anchor` | +| Reorder the nav | `navOrder` on a conference entry; it drives the nav and the front-page list alike | +| Add an image | drop it in `public/assets/img/`, then rerun `scripts/generate-asset-baseline.mjs` | +| Check bib against Crossref | `python3 scripts/update_bib.py` (stdlib only; `--write` applies the safe fields) | + +## Deployment + +`.github/workflows/deploy.yml` runs `prettier --check`, `astro check`, `build` and `verify` on every +push and pull request to `main`, then publishes `dist/` to the `gh-pages` branch, which GitHub Pages +serves as `ardoco.de`. diff --git a/_conferences/ase26-tools.md b/_conferences/ase26-tools.md deleted file mode 100644 index 94fcc31e..00000000 --- a/_conferences/ase26-tools.md +++ /dev/null @@ -1,81 +0,0 @@ ---- -layout: publication -permalink: /c/ase26-tools -title: "The ARDoCo Tool Landscape: REST API, TraceView, and TraceViz for Architecture Traceability" -description: -publication: keim_ardoco_2026 -featured: true -year: 2026 -pub_short_name: "ASE 2026" -authors: - - jan_keim - - dominik_fuchss - - sophie_corallo - - tobias_hey - - julian_winter - - kevin_feichtinger -conference_name: "41st IEEE/ACM International Conference on Automated Software Engineering (ASE 2026) — Tools and Datasets Track" -conference_url: https://conf.researchr.org/home/ase-2026 -in_press: true -links: - paper: - arxiv: https://arxiv.org/abs/2606.28064 ---- - -## Abstract - -**Context and Problem.** -Software development produces interrelated artifacts like software architecture documentation (SAD), software architecture models (SAMs), and source code, whose relationships are essential for maintenance and consistency checking. -However, automatically recovering links between these artifacts (traceability link recovery (TLR)) remains difficult to deploy in practice. -**Method and Aim.** -We present an accessible tool landscape for ARDoCo's TLR approaches: the ARDoCo REST API exposes four TLR pipelines (SAD-SAM, SAM-Code, SAD-Code, and SAD-SAM-Code) via HTTP endpoints with asynchronous execution and caching; TraceView is a browser-based frontend with a guided wizard and interactive multi-panel exploration of recovered links and inconsistencies; and TraceViz, which is a VS Code extension that overlays trace links directly onto documentation in the IDE. -**Results and Conclusion.** -All three components are publicly deployed and usable. -A preliminary study for TraceViz's in-IDE visualization confirmed that it improves developer comprehension during software understanding tasks. -The tool landscape makes state-of-the-art TLR accessible to architects, developers, and tool integrators. -**Video.** -We provide a screencast of our ARDoCo Tool Landscape and how it is used [here](#screencast). - -## The Tool Landscape - -The ARDoCo tool landscape makes state-of-the-art traceability link recovery (TLR) accessible through three publicly deployed, openly available components: - -
    -
  • - - ARDoCo REST API — exposes four TLR pipelines (SAD-SAM, SAM-Code, SAD-Code, and SAD-SAM-Code) via HTTP endpoints with asynchronous execution and caching.
    - - Service -  ·  - GitHub - -
  • -
  • - - TraceView — a browser-based frontend with a guided wizard and interactive multi-panel exploration of recovered trace links and inconsistencies.
    - - Service -  ·  - GitHub - -
  • -
  • - - TraceViz — a VS Code extension that overlays trace links directly onto documentation inside the IDE. A preliminary study confirmed that this in-IDE visualization improves developer comprehension during software understanding tasks.
    - - GitHub - -
  • -
- -## Screencast - -
- -
diff --git a/_conferences/se25.md b/_conferences/se25.md deleted file mode 100644 index 7aec655e..00000000 --- a/_conferences/se25.md +++ /dev/null @@ -1,8 +0,0 @@ ---- -layout: page -permalink: /c/se25 -title: Recovering Trace Links Between Software Documentation And Code -description: ---- - - diff --git a/_conferences/se26-exarch.md b/_conferences/se26-exarch.md deleted file mode 100644 index 035d9d54..00000000 --- a/_conferences/se26-exarch.md +++ /dev/null @@ -1,8 +0,0 @@ ---- -layout: page -permalink: /c/se26-exarch -title: "ExArch: Enabling Architecture Traceability by LLM-based Architecture Component Name Extraction" -description: ---- - - diff --git a/_conferences/se26-lissa.md b/_conferences/se26-lissa.md deleted file mode 100644 index b44e5cb5..00000000 --- a/_conferences/se26-lissa.md +++ /dev/null @@ -1,8 +0,0 @@ ---- -layout: page -permalink: /c/se26-lissa -title: "Linking Software System Artifacts: Toward Generic Traceability Link Recovery through Retrieval-Augmented Generation" -description: ---- - - diff --git a/_conferences/taas26.md b/_conferences/taas26.md deleted file mode 100644 index b30b4fad..00000000 --- a/_conferences/taas26.md +++ /dev/null @@ -1,8 +0,0 @@ ---- -layout: page -permalink: /c/taas26 -title: "Who's Who? LLM-assisted Software Traceability with Architecture Entity Recognition" -description: ---- - - diff --git a/_config.yml b/_config.yml deleted file mode 100644 index a7879dac..00000000 --- a/_config.yml +++ /dev/null @@ -1,654 +0,0 @@ -# ----------------------------------------------------------------------------- -# Site settings -# ----------------------------------------------------------------------------- - -title: blank # the website title (if blank, full name will be used instead) -first_name: -middle_name: -last_name: ARDoCo -contact_note: > - If you have any questions, feel free to contact me at {{ site.email }}. - -description: > # the ">" symbol means to ignore newlines until "footer_text:" - In this research project, we aim to provide consistency analyses between different kind of documentation, namely formal models and informal (textual) documentation. -footer_text: > - Powered by Jekyll with al-folio theme. - Hosted by GitHub Pages. -keywords: -lang: en # the language of your site (for example: en, fr, cn, ru, etc.) -icon: logo.png # the emoji used as the favicon (alternatively, provide image name in /assets/img/) - -url: https://ardoco.de # the base hostname & protocol for your site -baseurl: # the subpath of your site, e.g. /blog/. Leave blank for root -last_updated: true # set to true if you want to display last updated in the footer -impressum_path: # set to path to include impressum link in the footer, use the same path as permalink in a page, helps to conform with EU GDPR -back_to_top: true # set to false to disable the back to top button - -# ----------------------------------------------------------------------------- -# Theme -# ----------------------------------------------------------------------------- - -# repo color theme -repo_theme_light: default # https://github.com/anuraghazra/github-readme-stats/blob/master/themes/README.md -repo_theme_dark: dark # https://github.com/anuraghazra/github-readme-stats/blob/master/themes/README.md -repo_trophies: - enabled: false - theme_light: flat # https://github.com/ryo-ma/github-profile-trophy - theme_dark: gitdimmed # https://github.com/ryo-ma/github-profile-trophy - -# External service URLs for repository page -# To use a different instance or service for displaying GitHub stats and trophies, -# update these URLs. These are used in the repository templates. -external_services: - github_readme_stats_url: https://vps.fuchss.org/readme-stats - github_profile_trophy_url: https://vps.fuchss.org/profile-trophy - -# ----------------------------------------------------------------------------- -# RSS Feed -# ----------------------------------------------------------------------------- -# will use title and url fields -# Take a look to https://github.com/jekyll/jekyll-feed for more customization - -# ----------------------------------------------------------------------------- -# Layout -# ----------------------------------------------------------------------------- - -navbar_fixed: true -footer_fixed: true - -search_enabled: false -socials_in_search: false -posts_in_search: false -bib_search: false - -# Dimensions -max_width: 930px - -# TODO: add layout settings (single page vs. multi-page) - -# ----------------------------------------------------------------------------- -# Open Graph & Schema.org -# ----------------------------------------------------------------------------- -# Display links to the page with a preview object on social media. -# see https://schema.org/docs/faq.html for more information -serve_og_meta: false # Include Open Graph meta tags in the HTML head -serve_schema_org: false # Include Schema.org in the HTML head -og_image: # The site-wide (default for all links) Open Graph preview image - -# ----------------------------------------------------------------------------- -# Analytics and search engine verification -# ----------------------------------------------------------------------------- - -# For Google Analytics, see https://support.google.com/analytics/answer/10447272?hl=en&ref_topic=14088998&sjid=5129943941510317771-SA#zippy=%2Cgoogle-sites -# and follow the instructions for Google Sites. You will need to create a Google Analytics property and copy the Google tag ID. -google_analytics: # your Google Analytics measurement ID (format: G-XXXXXXXXXX) -cronitor_analytics: # cronitor RUM analytics site ID (format: XXXXXXXXX) -pirsch_analytics: # your Pirsch analytics site ID (length 32 characters) -openpanel_analytics: # your Openpanel analytics client ID (format: XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX) - -# For Google Search Console, see https://support.google.com/webmasters/answer/9008080?hl=en#meta_tag_verification&zippy=%2Chtml-tag -google_site_verification: # your google-site-verification ID (Google Search Console) -bing_site_verification: # out your bing-site-verification ID (Bing Webmaster) - -# ----------------------------------------------------------------------------- -# Blog -# ----------------------------------------------------------------------------- - -blog_name: # blog_name will be displayed in your blog page -blog_description: -permalink: /blog/:year/:title/ -lsi: false # produce an index for related posts - -# Pagination -pagination: - enabled: true - -related_blog_posts: - enabled: false - max_related: 5 - -# Giscus comments (RECOMMENDED) -# Follow instructions on https://giscus.app/ to setup for your repo to fill out the information below. -giscus: - repo: # / - repo_id: # leave empty or specify your repo_id (see https://giscus.app/) - category: Comments # name of the category under which discussions will be created - category_id: # leave empty or specify your category_id (see https://giscus.app/) - mapping: title # identify discussions by post title - strict: 1 # use strict identification mode - reactions_enabled: 1 # enable (1) or disable (0) emoji reactions - input_position: bottom # whether to display input form below (bottom) or above (top) the comments - dark_theme: dark # name of the dark color scheme (preferred works well with al-folio dark mode) - light_theme: light # name of the light color scheme (preferred works well with al-folio light mode) - emit_metadata: 0 - lang: en - -# Disqus comments (DEPRECATED) -disqus_shortname: # put your disqus shortname -# https://help.disqus.com/en/articles/1717111-what-s-a-shortname - -# External sources. -# If you have blog posts published on medium.com or other external sources, -# you can display them in your blog by adding a link to the RSS feed. -external_sources: [] - -# ----------------------------------------------------------------------------- -# Newsletter -# ----------------------------------------------------------------------------- - -newsletter: - enabled: false - endpoint: # your loops endpoint (e.g., https://app.loops.so/api/newsletter-form/YOUR-ENDPOINT) - # https://loops.so/docs/forms/custom-form - -# ----------------------------------------------------------------------------- -# Collections -# ----------------------------------------------------------------------------- - -collections: - books: - output: true - news: - defaults: - layout: post - output: true - projects: - output: true - approaches: - output: true - conferences: - output: true - -# ----------------------------------------------------------------------------- -# Jekyll settings -# ----------------------------------------------------------------------------- - -# Markdown and syntax highlight -markdown: kramdown -highlighter: rouge -kramdown: - input: GFM - syntax_highlighter_opts: - css_class: "highlight" - span: - line_numbers: false - block: - line_numbers: false - start_line: 1 - -# Includes & excludes -include: ["_pages", "_scripts"] -exclude: - - bin/ - - CONTRIBUTING.md - - CUSTOMIZE.md - - Dockerfile - - docker-compose.yml - - docker-compose-slim.yml - - FAQ.md - - Gemfile - - Gemfile.lock - - INSTALL.md - - LICENSE - - lighthouse_results/ - - package.json - - package-lock.json - - _pages/about_einstein.md - - purgecss.config.js - - README.md - - readme_preview/ - - vendor -keep_files: - - CNAME - - .nojekyll - -# Plug-ins -plugins: - - jekyll-archives-v2 - - jekyll-email-protect - - jekyll-feed - - jekyll-get-json - - jekyll-imagemagick - - jekyll-jupyter-notebook - - jekyll-link-attributes - - jekyll-minifier - - jekyll-paginate-v2 - - jekyll-regex-replace - - jekyll/scholar - - jekyll-sitemap - - jekyll-socials - - jekyll-tabs - - jekyll-terser - - jekyll-toc - - jekyll-twitter-plugin - - jemoji - -# Sitemap settings -defaults: - - scope: - path: "assets" - values: - sitemap: true - -sass: - style: expanded - -# ----------------------------------------------------------------------------- -# Jekyll Minifier -# ----------------------------------------------------------------------------- - -jekyll-minifier: - compress_javascript: false # set to false since we are using terser as the js minifier - exclude: ["robots.txt", "assets/js/search/*.js"] - -# ----------------------------------------------------------------------------- -# Terser -# ----------------------------------------------------------------------------- - -terser: - compress: - drop_console: true - -# ----------------------------------------------------------------------------- -# Jekyll Archives -# ----------------------------------------------------------------------------- - -jekyll-archives: - posts: - enabled: [year, tags, categories] # enables year, tag and category archives (remove if you need to disable one of them). - permalinks: - year: "/blog/:year/" - tags: "/blog/:type/:name/" - categories: "/blog/:type/:name/" - books: - enabled: [year, tags, categories] # enables year, tag and category archives (remove if you need to disable one of them). - -display_tags: ["formatting", "images", "links", "math", "code", "blockquotes"] # these tags will be displayed on the front page of your blog -display_categories: ["external-services"] # these categories will be displayed on the front page of your blog - -# ----------------------------------------------------------------------------- -# Jekyll Scholar -# ----------------------------------------------------------------------------- - -scholar: - last_name: [Einstein] - first_name: [Albert, A.] - - style: apa - locale: en - - source: /_bibliography/ - bibliography: papers.bib - bibliography_template: bib - # Note: if you have latex math in your bibtex, the latex filter - # preprocessing may conflict with MathJAX if the latter is enabled. - # See https://github.com/alshedivat/al-folio/issues/357. - bibtex_filters: [latex, smallcaps, superscript] - - replace_strings: true - join_strings: true - - details_dir: bibliography - details_link: Details - - query: "@*" - sort_by: year,month - order: descending,descending - group_by: year - group_order: descending - -# Display different badges withs stats for your publications -# Customize badge behavior in _layouts/bib.liquid -enable_publication_badges: - altmetric: false # Altmetric badge (Customization options: https://badge-docs.altmetric.com/index.html) - dimensions: true # Dimensions badge (Customization options: https://badge.dimensions.ai/) - google_scholar: false # Google Scholar badge (https://scholar.google.com/intl/en/scholar/citations.html) - inspirehep: false # Inspire HEP badge (https://help.inspirehep.net/knowledge-base/citation-metrics/) - -# Filter out certain bibtex entry keywords used internally from the bib output -filtered_bibtex_keywords: - [ - abbr, - abstract, - additional_info, - altmetric, - annotation, - arxiv, - award, - award_name, - bibtex_show, - blog, - code, - dimensions, - google_scholar_id, - html, - inspirehep_id, - pdf, - poster, - preview, - selected, - slides, - supp, - video, - website, - ] - -# Maximum number of authors to be shown for each publication (more authors are visible on click) -max_author_limit: # leave blank to always show all authors -more_authors_animation_delay: 10 # more authors are revealed on click using animation; smaller delay means faster animation - -# Enables publication thumbnails. If disabled, none of the publications will display thumbnails, even if specified in the bib entry. -enable_publication_thumbnails: false - -# ----------------------------------------------------------------------------- -# Jekyll Link Attributes -# ----------------------------------------------------------------------------- - -# These are the defaults -external_links: - enabled: true - rel: external nofollow noopener - target: _blank - exclude: - -# ----------------------------------------------------------------------------- -# Responsive WebP Images -# ----------------------------------------------------------------------------- - -# MAKE SURE imagemagick is installed and on your PATH before enabling imagemagick. In a terminal, run: -# convert -version -imagemagick: - enabled: true # enables responsive images for your site (recommended, see https://github.com/alshedivat/al-folio/issues/537) - widths: - - 480 - - 800 - - 1400 - input_directories: - - assets/img/ - input_formats: - - ".jpg" - - ".jpeg" - - ".png" - - ".tiff" - - ".gif" - output_formats: - webp: "-auto-orient -quality 85" - -# Lazy loading images -# If you enable lazy loading, all images will add the loading="lazy" attribute. -# This will make your site load faster, but it may not be supported in all browsers. -# You can also set loading="" to other values for specific images to override the default behavior. -# Options: "auto", "eager", "lazy" -# See https://web.dev/browser-level-image-lazy-loading/ for more information. -lazy_loading_images: true # enables lazy loading of images (recommended) - -# ----------------------------------------------------------------------------- -# Optional Features -# ----------------------------------------------------------------------------- - -enable_google_analytics: false # enables google analytics -enable_cronitor_analytics: false # enables cronitor RUM analytics -enable_pirsch_analytics: false # enables Pirsch analytics (https://pirsch.io/) -enable_openpanel_analytics: false # enables Openpanel analytics (https://openpanel.dev/) -enable_google_verification: false # enables google site verification -enable_bing_verification: false # enables bing site verification -enable_masonry: true # enables automatic project cards arrangement -enable_math: true # enables math typesetting (uses MathJax) -enable_tooltips: false # enables automatic tooltip links generated for each section titles on pages and posts -enable_darkmode: true # enables switching between light/dark modes -enable_navbar_social: true # enables displaying social links in the navbar on the about page -enable_project_categories: false # enables categorization of projects into multiple categories -enable_medium_zoom: true # enables image zoom feature (as on medium.com) -enable_progressbar: true # enables a horizontal progress bar linked to the vertical scroll position -enable_video_embedding: false # enables video embedding for bibtex entries. If false, the button opens the video link in a new window. - -# ----------------------------------------------------------------------------- -# Library versions -# ----------------------------------------------------------------------------- - -# Add the url, version and integrity hash of the libraries you use in your site. -# The integrity hash is used to ensure that the library is not tampered with. -# Integrity hashes not provided by the libraries were generated using https://www.srihash.org/ -third_party_libraries: - download: true # if true, download the versions of the libraries specified below and use the downloaded files - bootstrap-table: - integrity: - css: "sha256-uRX+PiRTR4ysKFRCykT8HLuRCub26LgXJZym3Yeom1c=" - js: "sha256-4rppopQE9POKfukn2kEvhJ9Um25Cf6+IDVkARD0xh78=" - url: - css: "https://cdn.jsdelivr.net/npm/bootstrap-table@{{version}}/dist/bootstrap-table.min.css" - js: "https://cdn.jsdelivr.net/npm/bootstrap-table@{{version}}/dist/bootstrap-table.min.js" - version: "1.22.4" - chartjs: - integrity: - js: "sha256-0q+JdOlScWOHcunpUk21uab1jW7C1deBQARHtKMcaB4=" - url: - js: "https://cdn.jsdelivr.net/npm/chart.js@{{version}}/dist/chart.umd.min.js" - version: "4.4.1" - d3: - integrity: - js: "sha256-1rA678n2xEx7x4cTZ5x4wpUCj6kUMZEZ5cxLSVSFWxw=" - url: - js: "https://cdn.jsdelivr.net/npm/d3@{{version}}/dist/d3.min.js" - version: "7.8.5" - diff2html: - integrity: - css: "sha256-IMBK4VNZp0ivwefSn51bswdsrhk0HoMTLc2GqFHFBXg=" - js: "sha256-eU2TVHX633T1o/bTQp6iIJByYJEtZThhF9bKz/DcbbY=" - url: - css: "https://cdn.jsdelivr.net/npm/diff2html@{{version}}/bundles/css/diff2html.min.css" - js: "https://cdn.jsdelivr.net/npm/diff2html@{{version}}/bundles/js/diff2html-ui.min.js" - version: "3.4.47" - echarts: - integrity: - js: - library: "sha256-QvgynZibb2U53SsVu98NggJXYqwRL7tg3FeyfXvPOUY=" - dark_theme: "sha256-sm6Ui9w41++ZCWmIWDLC18a6ki72FQpWDiYTDxEPXwU=" - url: - js: - library: "https://cdn.jsdelivr.net/npm/echarts@{{version}}/dist/echarts.min.js" - dark_theme: "https://cdn.jsdelivr.net/npm/echarts@{{version}}/theme/dark-fresh-cut.js" - version: "5.5.0" - google_fonts: - url: - fonts: "https://fonts.googleapis.com/css?family=Roboto:300,400,500,700|Roboto+Slab:100,300,400,500,700|Material+Icons&display=swap" - highlightjs: - integrity: - css: - light: "sha256-Oppd74ucMR5a5Dq96FxjEzGF7tTw2fZ/6ksAqDCM8GY=" - dark: "sha256-nyCNAiECsdDHrr/s2OQsp5l9XeY2ZJ0rMepjCT2AkBk=" - url: - css: - light: "https://cdn.jsdelivr.net/npm/highlight.js@{{version}}/styles/github.min.css" - dark: "https://cdn.jsdelivr.net/npm/highlight.js@{{version}}/styles/github-dark.min.css" - version: "11.9.0" - imagesloaded: - integrity: - js: "sha256-htrLFfZJ6v5udOG+3kNLINIKh2gvoKqwEhHYfTTMICc=" - url: - js: https://cdn.jsdelivr.net/npm/imagesloaded@{{version}}/imagesloaded.pkgd.min.js - version: "5.0.0" - img-comparison-slider: - integrity: - css: "sha256-3qTIuuUWIFnnU3LpQMjqiXc0p09rvd0dmj+WkpQXSR8=" - js: "sha256-EXHg3x1K4oIWdyohPeKX2ZS++Wxt/FRPH7Nl01nat1o=" - map: "sha256-3wfqS2WU5kGA/ePcgFzJXl5oSN1QsgZI4/edprTgX8w=" - url: - css: "https://cdn.jsdelivr.net/npm/img-comparison-slider@{{version}}/dist/styles.min.css" - js: "https://cdn.jsdelivr.net/npm/img-comparison-slider@{{version}}/dist/index.min.js" - map: "https://cdn.jsdelivr.net/npm/img-comparison-slider@{{version}}/dist/index.js.map" - version: "8.0.6" - jquery: - integrity: - js: "sha256-/xUj+3OJU5yExlq6GSYGSHk7tPXikynS7ogEvDej/m4=" - url: - js: "https://cdn.jsdelivr.net/npm/jquery@{{version}}/dist/jquery.min.js" - version: "3.6.0" - leaflet: - integrity: - css: "sha256-q9ba7o845pMPFU+zcAll8rv+gC+fSovKsOoNQ6cynuQ=" - js: "sha256-MgH13bFTTNqsnuEoqNPBLDaqxjGH+lCpqrukmXc8Ppg=" - js_map: "sha256-YAoQ3FzREN4GmVENMir8vgHHypC0xfSK3CAxTHCqx1M=" - local: - images: "images/" - url: - css: "https://cdn.jsdelivr.net/npm/leaflet@{{version}}/dist/leaflet.min.css" - images: "https://cdn.jsdelivr.net/npm/leaflet@{{version}}/dist/images/" - js: "https://cdn.jsdelivr.net/npm/leaflet@{{version}}/dist/leaflet.min.js" - js_map: "https://cdn.jsdelivr.net/npm/leaflet@{{version}}/dist/leaflet.js.map" - version: "1.9.4" - lightbox2: - integrity: - css: "sha256-uypRbsAiJcFInM/ndyI/JHpzNe6DtUNXaWEUWEPfMGo=" - js: "sha256-A6jI5V9s1JznkWwsBaRK8kSeXLgIqQfxfnvdDOZEURY=" - url: - css: "https://cdn.jsdelivr.net/npm/lightbox2@{{version}}/dist/css/lightbox.min.css" - js: "https://cdn.jsdelivr.net/npm/lightbox2@{{version}}/dist/js/lightbox.min.js" - version: "2.11.5" - mathjax: - integrity: - js: "sha256-MASABpB4tYktI2Oitl4t+78w/lyA+D7b/s9GEP0JOGI=" - local: - fonts: "output/chtml/fonts/woff-v2/" - url: - fonts: "https://cdn.jsdelivr.net/npm/mathjax@{{version}}/es5/output/chtml/fonts/woff-v2/" - js: "https://cdn.jsdelivr.net/npm/mathjax@{{version}}/es5/tex-mml-chtml.js" - version: "3.2.2" - masonry: - integrity: - js: "sha256-Nn1q/fx0H7SNLZMQ5Hw5JLaTRZp0yILA/FRexe19VdI=" - url: - js: "https://cdn.jsdelivr.net/npm/masonry-layout@{{version}}/dist/masonry.pkgd.min.js" - version: "4.2.2" - mdb: - integrity: - css: "sha256-jpjYvU3G3N6nrrBwXJoVEYI/0zw8htfFnhT9ljN3JJw=" - css_map: "sha256-iYYMNfsJdVZjvsebJulg09miBXM4/GMTJgv1u5EZFFM=" - js: "sha256-NdbiivsvWt7VYCt6hYNT3h/th9vSTL4EDWeGs5SN3DA=" - js_map: "sha256-UPgyn4YNsT0khkBK5553QwhnlbTlU0aa+igyc6qP1bE=" - url: - css: "https://cdn.jsdelivr.net/npm/mdbootstrap@{{version}}/css/mdb.min.css" - css_map: "https://cdn.jsdelivr.net/npm/mdbootstrap@{{version}}/css/mdb.min.css.map" - js: "https://cdn.jsdelivr.net/npm/mdbootstrap@{{version}}/js/mdb.min.js" - js_map: "https://cdn.jsdelivr.net/npm/mdbootstrap@{{version}}/js/mdb.min.js.map" - version: "4.20.0" - medium_zoom: - integrity: - js: "sha256-ZgMyDAIYDYGxbcpJcfUnYwNevG/xi9OHKaR/8GK+jWc=" - url: - js: "https://cdn.jsdelivr.net/npm/medium-zoom@{{version}}/dist/medium-zoom.min.js" - version: "1.1.0" - mermaid: - integrity: - js: "sha256-TtLOdUA8mstPoO6sGvHIGx2ceXrrX4KgIItO06XOn8A=" - url: - js: "https://cdn.jsdelivr.net/npm/mermaid@{{version}}/dist/mermaid.min.js" - version: "10.7.0" - photoswipe: - integrity: - js: "sha256-VCBpdxvrNNxGHNuTdNqK9kPFkev2XY7DYzHdmgaB69Q=" - url: - css: "https://cdn.jsdelivr.net/npm/photoswipe@{{version}}/dist/photoswipe.min.css" - js: "https://cdn.jsdelivr.net/npm/photoswipe@{{version}}/dist/photoswipe.esm.min.js" - version: "5.4.4" - photoswipe-lightbox: - integrity: - js: "sha256-uCw4VgT5DMdwgtjhvU9e98nT2mLZXcw/8WkaTrDd3RI=" - url: - js: "https://cdn.jsdelivr.net/npm/photoswipe@{{version}}/dist/photoswipe-lightbox.esm.min.js" - version: "5.4.4" - plotly: - integrity: - js: "sha256-oy6Be7Eh6eiQFs5M7oXuPxxm9qbJXEtTpfSI93dW16Q=" - url: - js: "https://cdn.jsdelivr.net/npm/plotly.js@{{version}}/dist/plotly.min.js" - version: "3.0.1" - polyfill: - url: - js: "https://cdnjs.cloudflare.com/polyfill/v{{version}}/polyfill.min.js?features=es6" - version: "3" - pseudocode: - integrity: - css: "sha256-VwMV//xgBPDyRFVSOshhRhzJRDyBmIACniLPpeXNUdc=" - js: "sha256-aVkDxqyzrB+ExUsOY9PdyelkDhn/DfrjWu08aVpqNlo=" - url: - css: "https://cdn.jsdelivr.net/npm/pseudocode@{{version}}/build/pseudocode.min.css" - js: "https://cdn.jsdelivr.net/npm/pseudocode@{{version}}/build/pseudocode.min.js" - version: "2.4.1" - spotlight: - integrity: - css: "sha256-Dsvkx8BU8ntk9Iv+4sCkgHRynYSQQFP6gJfBN5STFLY=" - url: - css: "https://cdn.jsdelivr.net/npm/spotlight.js@{{version}}/dist/css/spotlight.min.css" - js: "https://cdn.jsdelivr.net/npm/spotlight.js@{{version}}/dist/spotlight.bundle.min.js" - version: "0.7.8" - swiper: - integrity: - css: "sha256-yUoNxsvX+Vo8Trj3lZ/Y5ZBf8HlBFsB6Xwm7rH75/9E=" - js: "sha256-BPrwikijIybg9OQC5SYFFqhBjERYOn97tCureFgYH1E=" - map: "sha256-lbF5CsospW93otqvWOIbbhj80CjazrZXvamD7nC7TBI=" - url: - css: "https://cdn.jsdelivr.net/npm/swiper@{{version}}/swiper-bundle.min.css" - js: "https://cdn.jsdelivr.net/npm/swiper@{{version}}/swiper-element-bundle.min.js" - map: "https://cdn.jsdelivr.net/npm/swiper@{{version}}/swiper-element-bundle.min.js.map" - version: "11.0.5" - swiper-map: - integrity: - js: "sha256-hlZaH8ySXX97bZaetnrtYlKuhx3oEXFz/s2IXchu6vk=" - url: - js: "https://cdn.jsdelivr.net/npm/swiper@11.1.0/swiper-element-bundle.min.js.map" - version: "11.0.5" - vega: - integrity: - js: "sha256-Yot/cfgMMMpFwkp/5azR20Tfkt24PFqQ6IQS+80HIZs=" - js_map: "sha256-z0x9ICA65dPkZ0JVa9wTImfF6n7AJsKc6WlFE96/wNA=" - url: - js: "https://cdn.jsdelivr.net/npm/vega@{{version}}/build/vega.min.js" - js_map: "https://cdn.jsdelivr.net/npm/vega@{{version}}/build/vega.min.js.map" - version: "5.27.0" - vega-embed: - integrity: - js: "sha256-FPCJ9JYCC9AZSpvC/t/wHBX7ybueZhIqOMjpWqfl3DU=" - js_map: "sha256-VBbfSEFYSMdX/rTdGrONEHNP6BprCB7H/LpMMNt/cPA=" - url: - js: "https://cdn.jsdelivr.net/npm/vega-embed@{{version}}/build/vega-embed.min.js" - js_map: "https://cdn.jsdelivr.net/npm/vega-embed@{{version}}/build/vega-embed.min.js.map" - version: "6.24.0" - vega-lite: - integrity: - js: "sha256-TvBvIS5jUN4BSy009usRjNzjI1qRrHPYv7xVLJyjUyw=" - js_map: "sha256-l2I4D5JC23Ulsu6e3sKVe5AJ+r+DFkzkKnZS8nUGz28=" - url: - js: "https://cdn.jsdelivr.net/npm/vega-lite@{{version}}/build/vega-lite.min.js" - js_map: "https://cdn.jsdelivr.net/npm/vega-lite@{{version}}/build/vega-lite.min.js.map" - version: "5.16.3" - venobox: - integrity: - css: "sha256-ohJEB0/WsBOdBD+gQO/MGfyJSbTUI8OOLbQGdkxD6Cg=" - js: "sha256-LsGXHsHMMmTcz3KqTaWvLv6ome+7pRiic2LPnzTfiSo=" - url: - css: "https://cdn.jsdelivr.net/npm/venobox@{{version}}/dist/venobox.min.css" - js: "https://cdn.jsdelivr.net/npm/venobox@{{version}}/dist/venobox.min.js" - version: "2.1.8" - -# ----------------------------------------------------------------------------- -# Get external JSON data -# ----------------------------------------------------------------------------- - -jekyll_get_json: - - data: resume - json: assets/json/resume.json # it can also be an url - -jsonresume: - - basics - - work - - education - - publications - - projects - - volunteer - - awards - - certificates - - skills - - languages - - interests - - references diff --git a/_data/coauthors.yml b/_data/coauthors.yml deleted file mode 100644 index 85b986b9..00000000 --- a/_data/coauthors.yml +++ /dev/null @@ -1,21 +0,0 @@ -"fuchss": - - firstname: ["Dominik", "D."] - url: /people/#dominik-fuchß -"koziolek": - - firstname: ["Anne", "A"] - url: /people/#anne-koziolek -"keim": - - firstname: ["Jan", "J."] - url: /people/#jan-keim -"hey": - - firstname: ["Tobias", "T."] - url: /people/#tobias-hey -"schulz": - - firstname: ["Sophie", "S."] - url: /people/#sophie-corallo -"corallo": - - firstname: ["Sophie", "S."] - url: /people/#sophie-corallo -"liu": - - firstname: ["Haoyu", "H."] - url: /people/#haoyu-liu diff --git a/_data/repositories.yml b/_data/repositories.yml deleted file mode 100644 index 6373342e..00000000 --- a/_data/repositories.yml +++ /dev/null @@ -1,10 +0,0 @@ -github_users: null - -repo_description_lines_max: 2 - -github_repos: - - ardoco/ardoco - - ardoco/tlr - - ardoco/inconsistency-detection - - ardoco/metrics - - ardoco/lissa-ratlr diff --git a/_data/socials.yml b/_data/socials.yml deleted file mode 100644 index 95138929..00000000 --- a/_data/socials.yml +++ /dev/null @@ -1,58 +0,0 @@ -# this file contains the social media links and usernames of the author -# the commented lines are the default social media links supported by the template -# the socials will be displayed in the order they are defined here - -# academia_edu: your organization and your username Ex. https://organization.academia.edu/UserName -# organization: princeton # your organization as appears in the subdomain -# username: AlbertEinstein # your username -# acm_id: # your dl.acm.org/profile/id -# arxiv_id: # your arXiv author ID -# blogger_url: # your blogger URL -# bluesky_url: # your bluesky URL -# cv_pdf: # path to your CV PDF file -# dblp_url: # your DBLP profile url -# discord_id: # your discord id (18-digit unique numerical identifier) -email: ardoco@lists.kit.edu # your email address -# facebook_id: # your facebook id -# flickr_id: # your flickr id -github_username: ARDoCo # your GitHub user name -# gitlab_username: # your GitLab user name -# hal_id: # your HAL id (https://hal.science/) -# ieee_id: # your ieeexplore.ieee.org/author/id -# inspirehep_id: # Inspire HEP author ID -# instagram_id: # your instagram id -# kaggle_id: # your kaggle id -# keybase_username: # your keybase user name -# lastfm_id: # your lastfm id -# lattes_id: # your ID on Lattes (Brazilian Lattes CV) -# leetcode_id: # your LeetCode id -# linkedin_username: # your LinkedIn user name -# mastodon_username: # your mastodon instance+username in the format instance.tld/@username -# medium_username: # your Medium username -# orcid_id: # your ORCID ID -# osf_id: # your OSF ID -# pinterest_id: # your pinterest id -# publons_id: # your ID on Publons -# quora_username: # your Quora username -# research_gate_profile: # your profile on ResearchGate -# rss_icon: true # set to true to show the RSS icon -# scholar_userid: # your Google Scholar ID -# scopus_id: # your profile on Scopus -# semanticscholar_id: # your Semantic Scholar ID -# spotify_id: # your spotify id -# stackoverflow_id: # your stackoverflow id -# strava_userid: # your strava user id -# telegram_username: # your Telegram user name -# unsplash_id: # your unsplash id -# wechat_qr: # filename of your wechat qr-code saved as an image (e.g., wechat-qr.png if saved to assets/img/wechat-qr.png) -# whatsapp_number: # your WhatsApp number (full phone number in international format. Omit any zeroes, brackets, or dashes when adding the phone number in international format.) -# wikidata_id: # your wikidata id -# wikipedia_id: # your wikipedia id (Case sensitive) -work_url: https://mcse.kastel.kit.edu/projects_ardoco.php # work page URL -# x_username: # your X handle -# youtube_id: # your youtube channel id (youtube.com/@) -# zotero_username: # your zotero username -# custom_social: # can be any name here other than the ones already defined above -# logo: https://www.alberteinstein.com/wp-content/uploads/2024/03/cropped-favicon-192x192.png # can be png, svg, jpg -# title: Custom Social -# url: https://www.alberteinstein.com/ diff --git a/_data/venues.yml b/_data/venues.yml deleted file mode 100644 index b2e2352c..00000000 --- a/_data/venues.yml +++ /dev/null @@ -1,15 +0,0 @@ -"ICSA": - url: https://conf.researchr.org/series/icsa - color: "#23a1e0" - -"ECSA": - url: https://conf.researchr.org/series/ecsa - color: "#df9b1b" - -"ICSE": - url: https://conf.researchr.org/series/icse - color: "#a3107c" - -"ASE": - url: https://conf.researchr.org/series/ase - color: "#2a9d8f" diff --git a/_includes/audio.liquid b/_includes/audio.liquid deleted file mode 100644 index 338e2124..00000000 --- a/_includes/audio.liquid +++ /dev/null @@ -1,30 +0,0 @@ -
-
diff --git a/_includes/bib_search.liquid b/_includes/bib_search.liquid deleted file mode 100644 index c0ab526c..00000000 --- a/_includes/bib_search.liquid +++ /dev/null @@ -1,4 +0,0 @@ -{% if site.bib_search %} - - -{% endif %} diff --git a/_includes/calendar.liquid b/_includes/calendar.liquid deleted file mode 100644 index fab192dd..00000000 --- a/_includes/calendar.liquid +++ /dev/null @@ -1,25 +0,0 @@ -{% if include.calendar_id %} -
-

Upcoming Events

- - - - -
-{% endif %} diff --git a/_includes/citation.liquid b/_includes/citation.liquid deleted file mode 100644 index 35bd9e37..00000000 --- a/_includes/citation.liquid +++ /dev/null @@ -1,26 +0,0 @@ -
-
-
- -If you found this useful, please cite this as: - -{% capture citation_quote -%} -> {{ 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 }}. -{%- endcapture %} -{{ citation_quote | markdownify }} - -

or as a BibTeX entry:

- -{% capture citation_code -%} -```bibtex -@article{ {{- site.last_name | downcase }}{{ page.date | date: "%Y" }}{{ page.title | slugify }}, - title = { {{- page.title -}} }, - author = { {{- site.last_name }}, {{ site.first_name }}{% if site.middle_name %} {{ site.middle_name }}{% endif -%}}, - {%- if site.title != 'blank' %}journal = { {{- site.title -}} },{% endif %} - year = { {{- page.date | date: "%Y" -}} }, - month = { {{- page.date | date: "%b" -}} }, - url = { {{- site.url }}{{ page.url -}} } -} -``` -{%- endcapture %} -{{ citation_code | markdownify }} diff --git a/_includes/course_schedule.liquid b/_includes/course_schedule.liquid deleted file mode 100644 index 363387b6..00000000 --- a/_includes/course_schedule.liquid +++ /dev/null @@ -1,71 +0,0 @@ -{% assign course = site.teachings | where: 'course_id', include.course_id | first %} - -{% if course %} -
-

{{ course.title }}

- - {% if course.description %} -
- {{ course.description | markdownify }} -
- {% endif %} - - {% if course.instructor %} -

Instructor: {{ course.instructor }}

- {% endif %} - - {% if course.term %} -

Term: {{ course.term }}

- {% endif %} - - {% if course.schedule %} - - - - - - - - - - - {% for entry in course.schedule %} - - - - - - - {% endfor %} - -
WeekDateTopicMaterials
{{ entry.week }}{{ entry.date }} - {% if entry.topic %} - {{ entry.topic }} - {% endif %} - {% if entry.description %} -
{{ entry.description | markdownify }}
- {% endif %} -
- {% if entry.materials %} -
    - {% for material in entry.materials %} -
  • - {% if material.url %} - {% if material.url contains '://' %} - {{ material.name }} - {% else %} - {{ material.name }} - {% endif %} - {% else %} - {{ material.name }} - {% endif %} -
  • - {% endfor %} -
- {% endif %} -
- {% else %} -

No schedule available for this course.

- {% endif %} -
-{% endif %} diff --git a/_includes/courses.liquid b/_includes/courses.liquid deleted file mode 100644 index 85858d38..00000000 --- a/_includes/courses.liquid +++ /dev/null @@ -1,37 +0,0 @@ -{% if site.teachings %} -
- {% assign courses_by_year = site.teachings | sort: 'year' | reverse | group_by: 'year' %} - - {% for year_group in courses_by_year %} -

{{ year_group.name }}

-
- {% assign year_courses = year_group.items | sort: 'term' %} - {% for course in year_courses %} -
-

- {{ course.title }} -

- -
- {% if course.term %} - {{ course.term }} - {% endif %} - - {% if course.instructor %} - {{ course.instructor }} - {% endif %} -
- - {% if course.description %} -
- {{ course.description | markdownify }} -
- {% endif %} -
- {% endfor %} -
- {% endfor %} -
-{% else %} -

No courses available yet.

-{% endif %} diff --git a/_includes/cv/awards.liquid b/_includes/cv/awards.liquid deleted file mode 100644 index a57cac51..00000000 --- a/_includes/cv/awards.liquid +++ /dev/null @@ -1,66 +0,0 @@ -{% comment %} - Unified awards entry renderer for both formats -{% endcomment %} - -
    - {% for entry in entries %} -
  • -
    - {% capture start_date %} - {% if entry.date %}{{ entry.date }}{% endif %} - {% endcapture %} - - {% if start_date != '' %} -
    - - - - - - -
    - - {{- start_date | split: '-' | slice: 0, 1 | join: '' -}} - -
    -
    -
    - {% if entry.url %} -
    - {{ entry.title }} -
    - {% elsif entry.title %} -
    {{ entry.title }}
    - {% endif %} - - {% if entry.awarder %} -
    {{ entry.awarder }}
    - {% endif %} - - {% if entry.summary %} -

    {{ entry.summary | markdownify | remove: '

    ' | remove: '

    ' }}

    - {% endif %} -
    - {% else %} -
    - {% if entry.url %} -
    - {{ entry.title }} -
    - {% elsif entry.title %} -
    {{ entry.title }}
    - {% endif %} - - {% if entry.awarder %} -
    {{ entry.awarder }}
    - {% endif %} - - {% if entry.summary %} -

    {{ entry.summary | markdownify | remove: '

    ' | remove: '

    ' }}

    - {% endif %} -
    - {% endif %} -
    -
  • - {% endfor %} -
diff --git a/_includes/cv/certificates.liquid b/_includes/cv/certificates.liquid deleted file mode 100644 index 05613ebc..00000000 --- a/_includes/cv/certificates.liquid +++ /dev/null @@ -1,28 +0,0 @@ -{% comment %} - Unified certificates entry renderer for both formats -{% endcomment %} - -
    - {% for entry in entries %} -
  • - {% if entry.icon %} - - {% endif %} - {% if entry.url %} - {{ entry.name }} - {% else %} - {{ entry.name }} - {% endif %} - - {% if entry.issuer %} - - {{ entry.issuer }} - {% endif %} - - {% if entry.date %} - ({{ entry.date | split: '-' | slice: 0, 1 | join: '' }}) - {% endif %} -
  • - {% endfor %} -
diff --git a/_includes/cv/education.liquid b/_includes/cv/education.liquid deleted file mode 100644 index 773e74f4..00000000 --- a/_includes/cv/education.liquid +++ /dev/null @@ -1,93 +0,0 @@ -{% comment %} - Unified education entry renderer for both RenderCV and JSONResume formats - Handles both: - - RenderCV: institution, area, studyType (or degree), start_date, end_date, location, courses, highlights - - JSONResume: institution, area, studyType, startDate, endDate, location, courses, highlights -{% endcomment %} - -
    - {% for entry in entries %} -
  • -
    -
    - {% capture start_date %} - {% if entry.start_date %}{{ entry.start_date }}{% elsif entry.startDate %}{{ entry.startDate }}{% endif %} - {% endcapture %} - {% capture end_date %} - {% if entry.end_date %}{{ entry.end_date }}{% elsif entry.endDate %}{{ entry.endDate }}{% endif %} - {% endcapture %} - - {% if start_date != '' %} - {% comment %} Extract year only from dates like "1933-01-01" or just use "1933" as is {% endcomment %} - {% assign startDate = start_date | split: '-' | first %} - {% assign endDate = end_date | split: '-' | first | default: 'Present' %} - {% assign date = startDate | append: ' - ' | append: endDate %} - {% else %} - {% assign date = null %} - {% endif %} - - - - - - - {% capture location %} - {% if entry.location %}{{ entry.location }}{% endif %} - {% endcapture %} - {% if location != '' %} - - - - {% endif %} - -
    - {% if date %} - {{ date }} - {% endif %} -
    -

    - - {{ location }} -

    -
    -
    -
    - {% capture study_type %} - {% if entry.studyType %}{{ entry.studyType }}{% elsif entry.degree %}{{ entry.degree }}{% endif %} - {% endcapture %} - - {% if entry.url %} -
    - {{ study_type }} -
    - {% elsif study_type != '' %} -
    {{ study_type }}
    - {% endif %} - - {% if entry.institution %} -
    {{ entry.institution }}
    - {% endif %} - - {% if entry.area %} -
    {{ entry.area }}
    - {% endif %} - - {% if entry.courses or entry.highlights %} -
      - {% for item in entry.courses %} -
    • - {{ item }} -
    • - {% endfor %} - {% for item in entry.highlights %} -
    • - {{ item | markdownify | remove: '

      ' | remove: '

      ' }}
      -
    • - {% endfor %} -
    - {% endif %} -
    -
    -
  • - {% endfor %} -
diff --git a/_includes/cv/experience.liquid b/_includes/cv/experience.liquid deleted file mode 100644 index 515a39bf..00000000 --- a/_includes/cv/experience.liquid +++ /dev/null @@ -1,91 +0,0 @@ -{% comment %} - Unified work/experience entry renderer for both RenderCV and JSONResume formats - Handles both: - - RenderCV: company, position, start_date, end_date, location, url, summary, highlights - - JSONResume: name, position, startDate, endDate, location, url, summary, highlights -{% endcomment %} - -
    - {% for entry in entries %} -
  • -
    -
    - {% capture start_date %} - {% if entry.start_date %}{{ entry.start_date }}{% elsif entry.startDate %}{{ entry.startDate }}{% endif %} - {% endcapture %} - {% capture end_date %} - {% if entry.end_date %}{{ entry.end_date }}{% elsif entry.endDate %}{{ entry.endDate }}{% endif %} - {% endcapture %} - - {% if start_date != '' %} - {% comment %} Extract year only from dates like "1933-01-01" or just use "1933" as is {% endcomment %} - {% assign startDate = start_date | split: '-' | first %} - {% assign endDate = end_date | split: '-' | first | default: 'Present' %} - {% assign date = startDate | append: ' - ' | append: endDate %} - {% else %} - {% assign date = '' %} - {% endif %} - - - - - - - {% capture location %} - {% if entry.location %}{{ entry.location }}{% endif %} - {% endcapture %} - {% if location != '' %} - - - - {% endif %} - -
    - {{ date }} -
    -

    - - {{ location }} -

    -
    -
    -
    - {% capture position_title %} - {% if entry.position %}{{ entry.position }}{% endif %} - {% endcapture %} - - {% if entry.url %} -
    - {{ position_title }} -
    - {% elsif position_title != '' %} -
    {{ position_title }}
    - {% endif %} - - {% capture company_name %} - {% if entry.name %}{{ entry.name }}{% elsif entry.company %}{{ entry.company }}{% elsif entry.organization %}{{ entry.organization }}{% endif %} - {% endcapture %} - {% if company_name != '' %} -
    {{ company_name }}
    - {% endif %} - - {% if entry.summary %} -
    - {{ entry.summary | markdownify | remove: '

    ' | remove: '

    ' }} -
    - {% endif %} - - {% if entry.highlights %} -
      - {% for item in entry.highlights %} -
    • - {{ item | markdownify | remove: '

      ' | remove: '

      ' }}
      -
    • - {% endfor %} -
    - {% endif %} -
    -
    -
  • - {% endfor %} -
diff --git a/_includes/cv/interests.liquid b/_includes/cv/interests.liquid deleted file mode 100644 index f4997a75..00000000 --- a/_includes/cv/interests.liquid +++ /dev/null @@ -1,29 +0,0 @@ -{% comment %} - Unified interests entry renderer for both formats -{% endcomment %} - -
- {% for entry in entries %} -
- {% if entry.icon %} - - {% endif %} - {{ entry.name }}: - {% if entry.keywords %} - {% for keyword in entry.keywords %} - {% if forloop.last %} - {{ keyword }} - {% else %} - {{ keyword }}, - {% endif %} - {% endfor %} - {% endif %} -
- {% endfor %} -
- - diff --git a/_includes/cv/languages.liquid b/_includes/cv/languages.liquid deleted file mode 100644 index 5f58dd1f..00000000 --- a/_includes/cv/languages.liquid +++ /dev/null @@ -1,28 +0,0 @@ -{% comment %} - Unified languages entry renderer for both formats - - RenderCV uses: name, summary - - JSONResume uses: language, fluency -{% endcomment %} - -
- {% for entry in entries %} -
- {% if entry.icon %} - - {% endif %} - {% capture lang_name %} - {% if entry.name %}{{ entry.name }}{% elsif entry.language %}{{ entry.language }}{% endif %} - {% endcapture %} - {% capture fluency %} - {% if entry.summary %}{{ entry.summary }}{% elsif entry.fluency %}{{ entry.fluency }}{% endif %} - {% endcapture %} - {{ lang_name }}: {{ fluency }} -
- {% endfor %} -
- - diff --git a/_includes/cv/projects.liquid b/_includes/cv/projects.liquid deleted file mode 100644 index 7f5dc86d..00000000 --- a/_includes/cv/projects.liquid +++ /dev/null @@ -1,31 +0,0 @@ -{% comment %} - Unified projects entry renderer for both formats -{% endcomment %} - -
    - {% for entry in entries %} -
  • - {% if entry.url %} -
    - {{ entry.name }} -
    - {% else %} -
    {{ entry.name }}
    - {% endif %} - - {% if entry.summary %} -

    {{ entry.summary | markdownify | remove: '

    ' | remove: '

    ' }}

    - {% endif %} - - {% if entry.highlights %} -
      - {% for item in entry.highlights %} -
    • - {{ item | markdownify | remove: '

      ' | remove: '

      ' }}
      -
    • - {% endfor %} -
    - {% endif %} -
  • - {% endfor %} -
diff --git a/_includes/cv/publications.liquid b/_includes/cv/publications.liquid deleted file mode 100644 index 22f530ad..00000000 --- a/_includes/cv/publications.liquid +++ /dev/null @@ -1,70 +0,0 @@ -{% comment %} - Unified publications entry renderer for both formats -{% endcomment %} - -
    - {% for entry in entries %} -
  • -
    - {% capture pub_date %} - {% if entry.releaseDate %}{{ entry.releaseDate }}{% elsif entry.date %}{{ entry.date }}{% endif %} - {% endcapture %} - - {% if pub_date != '' %} -
    - - - - - - -
    - - {{- pub_date | split: '-' | slice: 0, 1 | join: '' -}} - -
    -
    -
    - {% if entry.url %} -
    - {{ entry.title | default: entry.name }} -
    - {% elsif entry.title %} -
    {{ entry.title }}
    - {% endif %} - - {% if entry.publisher %} -
    - {{ entry.publisher }} -
    - {% endif %} - - {% if entry.summary %} -

    {{ entry.summary | markdownify | remove: '

    ' | remove: '

    ' }}

    - {% endif %} -
    - {% else %} -
    - {% if entry.url %} -
    - {{ entry.title | default: entry.name }} -
    - {% elsif entry.title %} -
    {{ entry.title }}
    - {% endif %} - - {% if entry.publisher %} -
    - {{ entry.publisher }} -
    - {% endif %} - - {% if entry.summary %} -

    {{ entry.summary | markdownify | remove: '

    ' | remove: '

    ' }}

    - {% endif %} -
    - {% endif %} -
    -
  • - {% endfor %} -
diff --git a/_includes/cv/references.liquid b/_includes/cv/references.liquid deleted file mode 100644 index 8fc9456f..00000000 --- a/_includes/cv/references.liquid +++ /dev/null @@ -1,15 +0,0 @@ -{% comment %} - Unified references entry renderer for both formats -{% endcomment %} - -
    - {% for entry in entries %} -
  • - {% if entry.icon %} - - {% endif %} - {{ entry.name }} -

    {{ entry.reference | markdownify | remove: '

    ' | remove: '

    ' }}

    -
  • - {% endfor %} -
diff --git a/_includes/cv/skills.liquid b/_includes/cv/skills.liquid deleted file mode 100644 index a35e49b8..00000000 --- a/_includes/cv/skills.liquid +++ /dev/null @@ -1,32 +0,0 @@ -{% comment %} - Unified skills entry renderer for both formats -{% endcomment %} - -
- {% for entry in entries %} -
- {% if entry.icon %} - - {% endif %} - - {{- entry.name -}} - {%- if entry.level %} ({{ entry.level }}){% endif %}: - {% if entry.keywords %} - {% for keyword in entry.keywords %} - {% if forloop.last %} - {{ keyword }} - {% else %} - {{ keyword }}, - {% endif %} - {% endfor %} - {% endif %} -
- {% endfor %} -
- - diff --git a/_includes/disqus.liquid b/_includes/disqus.liquid deleted file mode 100644 index 2874b42e..00000000 --- a/_includes/disqus.liquid +++ /dev/null @@ -1,13 +0,0 @@ -
- - -
diff --git a/_includes/distill_scripts.liquid b/_includes/distill_scripts.liquid deleted file mode 100644 index 24d80d2f..00000000 --- a/_includes/distill_scripts.liquid +++ /dev/null @@ -1,340 +0,0 @@ - - - - - - - - - - -{% if page.mermaid and page.mermaid.enabled %} - - - {% if page.mermaid.zoomable %} - - {% endif %} - -{% endif %} - -{% if page.code_diff %} - - - - -{% endif %} - -{% if page.map %} - - - -{% endif %} - -{% if page.chart and page.chart.chartjs %} - - - -{% endif %} - -{% if page.chart and page.chart.echarts %} - - - {% if site.enable_darkmode %} - - {% endif %} - -{% endif %} - -{% if page.chart and page.chart.plotly %} - - - -{% endif %} - -{% if page.chart and page.chart.vega_lite %} - - - - - -{% endif %} - -{% if page.tikzjax %} - - -{% endif %} - -{% if page.typograms %} - - -{% endif %} - -{% if site.enable_tooltips %} - - -{% endif %} - -{% if site.enable_medium_zoom %} - - - -{% endif %} - -{% if page.toc and page.toc.sidebar %} - - -{% endif %} - -{% if page.pretty_table %} - - - -{% endif %} - - - - - - - - - - - -{% if site.enable_math %} - - - - - -{% endif %} - -{% if site.enable_cookie_consent %} - - - -{% endif %} - -{% if site.enable_google_analytics %} - - - - -{% endif %} - -{% if site.enable_cronitor_analytics %} - - - -{% endif %} -{% if site.enable_pirsch_analytics %} - -{% endif %} -{% if site.enable_openpanel_analytics %} - - -{% endif %} - -{% if site.enable_progressbar %} - - -{% endif %} - -{% if page.images %} - - {% if page.images.compare %} - - {% endif %} - {% if page.images.lightbox2 %} - - {% endif %} - {% if page.images.photoswipe %} - - {% endif %} - {% if page.images.slider %} - - {% endif %} - {% if page.images.spotlight %} - - {% endif %} - {% if page.images.venobox %} - - - {% endif %} -{% endif %} - -{% if page.tabs %} - - -{% endif %} - -{% if site.back_to_top %} - - - -{% endif %} - -{% if site.search_enabled %} - - - - - - -{% endif %} diff --git a/_includes/featured_publications.liquid b/_includes/featured_publications.liquid deleted file mode 100644 index e9a3bdb9..00000000 --- a/_includes/featured_publications.liquid +++ /dev/null @@ -1,44 +0,0 @@ -{% assign menu_page = site.pages | where: 'title', 'conferences' | first %} -{% assign sorted_conferences = '' | split: '' %} -{% for child in menu_page.children %} - {% assign conf = site.conferences | where: 'permalink', child.permalink | where: 'featured', true | first %} - {% if conf %} - {% assign sorted_conferences = sorted_conferences | push: conf %} - {% endif %} -{% endfor %} - - The links will lead you to pages that contain details about the corresponding publications - -
    - {% for conf in sorted_conferences %} - {% if conf.publication or conf.authors %} - {% assign prefix_text = conf.pub_prefix_text | default: 'Paper at' %} - {% assign byline_connector = conf.pub_byline_connector | default: 'by' %} -
  • - {% if conf.pub_emoji %}{{ conf.pub_emoji }} {% endif -%} - - {{- prefix_text -}} - {%- if conf.pub_short_name %} {{ conf.pub_short_name }}{% endif -%} - - {%- if conf.additional_presentations %} - with additional presentation{% if conf.additional_presentations.size > 1 %}s{% endif %} at - {% for pres in conf.additional_presentations -%} - {{ pres.short_name | default: pres.name }} - {%- unless forloop.last %}, {% endunless -%} - {%- endfor -%} - {%- endif -%} - : "{{ conf.title }}" - {% if conf.authors %} - {{ byline_connector }} - {% for author_id in conf.authors -%} - {%- assign author = site.data.authors[author_id] -%} - {{- author.name -}} - {%- unless forloop.last %}, {% endunless -%} - {%- endfor -%} - {%- endif %} -
  • - {% endif %} - {% endfor %} - -
  • Poster with the initial idea from the ICSA2019 NEMI track.
  • -
diff --git a/_includes/figure.liquid b/_includes/figure.liquid deleted file mode 100644 index 5bf96bdf..00000000 --- a/_includes/figure.liquid +++ /dev/null @@ -1,86 +0,0 @@ -{% assign img_path = include.path | remove: '.jpg' | remove: '.jpeg' | remove: '.png' | remove: '.tiff' | remove: '.gif' %} -{% assign parts = include.path | split: '.' %} -{% assign ext = parts.last %} - -
- - - - {% if site.imagemagick.enabled %} - {% unless include.avoid_scaling %} - - {% endunless %} - {% endif %} - {{ include.alt }} - - - {% if include.caption %} -
{{ include.caption }}
- {% endif %} -
diff --git a/_includes/footer.liquid b/_includes/footer.liquid deleted file mode 100644 index f028dfe0..00000000 --- a/_includes/footer.liquid +++ /dev/null @@ -1,30 +0,0 @@ -{% capture footer_contents %} - © Copyright {{ site.time | date: '%Y' }} - {{ site.first_name }} - {{ site.middle_name }} - {{ site.last_name }}. {{ site.footer_text }} - {% if site.impressum_path %} - Impressum. - {% endif %} - {% if site.last_updated %} - Last updated: {{ 'now' | date: '%B %d, %Y' }}. - {% endif %} -{% endcapture %} - -{% if site.footer_fixed %} -
-
- {{ footer_contents }} -
-
-{% else %} -
- {% if site.newsletter.enabled %} - {% include newsletter.liquid %} - {% endif %} - -
- {{ footer_contents }} -
-
-{% endif %} diff --git a/_includes/giscus.liquid b/_includes/giscus.liquid deleted file mode 100644 index f4e6f069..00000000 --- a/_includes/giscus.liquid +++ /dev/null @@ -1,25 +0,0 @@ -
- {% if page.layout == 'post' %} -
- {% endif %} - - {% if site.giscus.repo %} - - - {% else %} - {% capture giscus_warning %} -> ##### giscus comments misconfigured -> Please follow instructions at [http://giscus.app](http://giscus.app) and update your giscus configuration. -{: .block-danger } - {% endcapture %} - {{ giscus_warning | markdownify }} - {% endif %} -
diff --git a/_includes/head.liquid b/_includes/head.liquid deleted file mode 100644 index d79bea9e..00000000 --- a/_includes/head.liquid +++ /dev/null @@ -1,208 +0,0 @@ - -{% include metadata.liquid %} - - - - - - - - - - -{% if page.pretty_table %} - - -{% endif %} - - - - - - - - - -{% if page.toc and page.toc.sidebar %} - - -{% endif %} - - - -{% if page.pseudocode %} - - -{% endif %} - -{% if site.icon.size <= 4 %} - -{% elsif site.icon != blank %} - -{% endif %} - - - -{% if site.enable_darkmode %} - - - - -{% endif %} - -{% if page.map %} - - -{% endif %} - -{% if page.code_diff %} - - - - -{% endif %} - -{% if page.images %} - {% if page.images.compare %} - - - {% endif %} - {% if page.images.lightbox2 %} - - - {% endif %} - {% if page.images.photoswipe %} - - - {% endif %} - {% if page.images.slider %} - - - {% endif %} - {% if page.images.spotlight %} - - - {% endif %} - {% if page.images.venobox %} - - - {% endif %} -{% endif %} - -{% if page.tikzjax %} - -{% endif %} - -{% if site.enable_cookie_consent %} - - -{% endif %} diff --git a/_includes/header.liquid b/_includes/header.liquid deleted file mode 100644 index 18b6c758..00000000 --- a/_includes/header.liquid +++ /dev/null @@ -1,150 +0,0 @@ -
- - - {% if site.enable_progressbar %} - - -
- -
-
- {% endif %} -
diff --git a/_includes/latest_posts.liquid b/_includes/latest_posts.liquid deleted file mode 100644 index 3342619c..00000000 --- a/_includes/latest_posts.liquid +++ /dev/null @@ -1,48 +0,0 @@ -
- {% if page.latest_posts != blank %} - {% assign latest_posts_size = site.posts | size %} -
3 %} - style="max-height: 60vw" - {% endif %} - > - - {% assign latest_posts = site.posts %} - {% if page.latest_posts.limit %} - {% assign latest_posts_limit = page.latest_posts.limit %} - {% else %} - {% assign latest_posts_limit = latest_posts_size %} - {% endif %} - {% for item in latest_posts limit: latest_posts_limit %} - - - - - {% endfor %} -
{{ item.date | date: '%b %d, %Y' }} - {% if item.redirect == blank %} - {{ item.title }} - {% elsif item.redirect contains '://' %} - {{ item.title }} - - - - {% else %} - {{ item.title }} - {% endif %} -
-
- {% else %} -

No posts so far...

- {% endif %} -
diff --git a/_includes/metadata.liquid b/_includes/metadata.liquid deleted file mode 100644 index e12e394b..00000000 --- a/_includes/metadata.liquid +++ /dev/null @@ -1,247 +0,0 @@ -{% if site.enable_google_verification or site.enable_bing_verification %} - - {% if site.enable_google_verification %} - - {% endif %} - {% if site.enable_bing_verification %} - - {% endif %} - - -{% endif %} - -{% capture author_name %}{{ site.first_name }}{% if site.middle_name %} {{ site.middle_name }}{% endif %} {{ site.last_name }}{% endcapture %} - - - - - - - {% if site.title == 'blank' %} - {% capture title %}{{ author_name }}{% endcapture %} - {% else %} - {% capture title %}{{ site.title }}{% endcapture %} - {% endif %} - {% if page.url == '/blog/index.html' %} - {{ page.title }} | {{ title }} - {% elsif page.title != 'blank' and page.url != '/' %} - {% if page.title == null or page.title == '' %} - {{ page.date | date: '%Y' }} | {{ title }} - {% else %} - {{ page.title }} | {{ title }} - {% endif %} - {% else %} - {{ title }} - {% endif %} - - - -{% if page.keywords or site.keywords %} - -{% endif %} - -{% assign is_blog_post = false %} -{% if page.url != '/blog/index.html' and page.url contains '/blog/' %} - {% unless page.url contains '/tag/' or page.url contains '/category/' %} - {% assign is_blog_post = true %} - {% endunless %} -{% endif %} - -{% if site.serve_og_meta %} - - - - - - - {% if page.og_image or site.og_image %} - - {% endif %} - - - - - - - {% if page.og_image or site.og_image %} - - {% endif %} - {% if site.x_username %} - - - {% endif %} -{% endif %} - -{% if site.serve_schema_org %} - - {% comment %} Social links generator for "sameAs schema" {% endcomment %} - {% assign sameaslinks = '' | split: ',' %} - {% for social in site.data.socials %} - {% case social[0] %} - {% when 'acm_id' %} - {% capture link %}https://dl.acm.org/profile/{{ social[1] }}/{% endcapture %} - {% assign sameaslinks = sameaslinks | push: link %} - {% when 'arxiv_id' %} - {% capture link %}https://arxiv.org/a/{{ social[1] }}.html{% endcapture %} - {% assign sameaslinks = sameaslinks | push: link %} - {% when 'blogger_url' %} - {% capture link %}{{ social[1] }}{% endcapture %} - {% assign sameaslinks = sameaslinks | push: link %} - {% when 'bluesky_url' %} - {% capture link %}{{ social[1] }}{% endcapture %} - {% assign sameaslinks = sameaslinks | push: link %} - {% when 'dblp_url' %} - {% capture link %}{{ social[1] }}{% endcapture %} - {% assign sameaslinks = sameaslinks | push: link %} - {% when 'discord_id' %} - {% capture link %}https://discord.com/users/{{ social[1] }}{% endcapture %} - {% assign sameaslinks = sameaslinks | push: link %} - {% when 'email' %} - {% comment %} - {% capture link %}mailto:{{ social[1] | encode_email }}{% endcapture %} - {% assign sameaslinks = sameaslinks | push: link %} - {% endcomment %} - {% when 'facebook_id' %} - {% capture link %}https://facebook.com/{{ social[1] }}{% endcapture %} - {% assign sameaslinks = sameaslinks | push: link %} - {% when 'flickr_id' %} - {% capture link %}https://www.flickr.com/{{ social[1] }}{% endcapture %} - {% assign sameaslinks = sameaslinks | push: link %} - {% when 'github_username' %} - {% capture link %}https://github.com/{{ social[1] }}{% endcapture %} - {% assign sameaslinks = sameaslinks | push: link %} - {% when 'gitlab_username' %} - {% capture link %}https://gitlab.com/{{ social[1] }}{% endcapture %} - {% assign sameaslinks = sameaslinks | push: link %} - {% when 'hal_id' %} - {% capture link %}https://cv.hal.science/{{ social[1] }}/{% endcapture %} - {% assign sameaslinks = sameaslinks | push: link %} - {% when 'ieee_id' %} - {% capture link %}https://ieeexplore.ieee.org/author/{{ social[1] }}/{% endcapture %} - {% assign sameaslinks = sameaslinks | push: link %} - {% when 'inspirehep_id' %} - {% capture link %}https://inspirehep.net/authors/{{ social[1] }}{% endcapture %} - {% assign sameaslinks = sameaslinks | push: link %} - {% when 'instagram_id' %} - {% capture link %}https://instagram.com/{{ social[1] }}{% endcapture %} - {% assign sameaslinks = sameaslinks | push: link %} - {% when 'kaggle_id' %} - {% capture link %}https://www.kaggle.com/{{ social[1] }}{% endcapture %} - {% assign sameaslinks = sameaslinks | push: link %} - {% when 'keybase_username' %} - {% capture link %}https://keybase.io/{{ social[1] }}{% endcapture %} - {% assign sameaslinks = sameaslinks | push: link %} - {% when 'lastfm_id' %} - {% capture link %}https://www.last.fm/user/{{ social[1] }}{% endcapture %} - {% assign sameaslinks = sameaslinks | push: link %} - {% when 'lattes_id' %} - {% capture link %}http://lattes.cnpq.br/{{ social[1] }}{% endcapture %} - {% assign sameaslinks = sameaslinks | push: link %} - {% when 'leetcode_id' %} - {% capture link %}https://leetcode.com/u/{{ social[1] }}/{% endcapture %} - {% assign sameaslinks = sameaslinks | push: link %} - {% when 'linkedin_username' %} - {% capture link %}https://www.linkedin.com/in/{{ social[1] }}{% endcapture %} - {% assign sameaslinks = sameaslinks | push: link %} - {% when 'mastodon_username' %} - {% capture link %}https://{{ social[1] }}{% endcapture %} - {% assign sameaslinks = sameaslinks | push: link %} - {% when 'medium_username' %} - {% capture link %}https://medium.com/@{{ social[1] }}{% endcapture %} - {% assign sameaslinks = sameaslinks | push: link %} - {% when 'orcid_id' %} - {% capture link %}https://orcid.org/{{ social[1] }}{% endcapture %} - {% assign sameaslinks = sameaslinks | push: link %} - {% when 'osf_id' %} - {% capture link %}https://osf.io/{{ social[1] }}/{% endcapture %} - {% assign sameaslinks = sameaslinks | push: link %} - {% when 'pinterest_id' %} - {% capture link %}https://www.pinterest.com/{{ social[1] }}{% endcapture %} - {% assign sameaslinks = sameaslinks | push: link %} - {% when 'publons_id' %} - {% capture link %}https://publons.com/a/{{ social[1] }}/{% endcapture %} - {% assign sameaslinks = sameaslinks | push: link %} - {% when 'quora_username' %} - {% capture link %}https://www.quora.com/profile/{{ social[1] }}{% endcapture %} - {% assign sameaslinks = sameaslinks | push: link %} - {% when 'research_gate_profile' %} - {% capture link %}https://www.researchgate.net/profile/{{ social[1] }}/{% endcapture %} - {% assign sameaslinks = sameaslinks | push: link %} - {% when 'rss_icon' %} - {% comment %} - {% capture link %}{{ site.baseurl }}/feed.xml{% endcapture %} - {% assign sameaslinks = sameaslinks | push: link %} - {% endcomment %} - {% when 'scholar_userid' %} - {% capture link %}https://scholar.google.com/citations?user={{ social[1] }}{% endcapture %} - {% assign sameaslinks = sameaslinks | push: link %} - {% when 'scopus_id' %} - {% capture link %}https://www.scopus.com/authid/detail.uri?authorId={{ social[1] }}{% endcapture %} - {% assign sameaslinks = sameaslinks | push: link %} - {% when 'semanticscholar_id' %} - {% capture link %}https://www.semanticscholar.org/author/{{ social[1] }}{% endcapture %} - {% assign sameaslinks = sameaslinks | push: link %} - {% when 'spotify_id' %} - {% capture link %}https://open.spotify.com/user/{{ social[1] }}{% endcapture %} - {% assign sameaslinks = sameaslinks | push: link %} - {% when 'stackoverflow_id' %} - {% capture link %}https://stackoverflow.com/users/{{ social[1] }}{% endcapture %} - {% assign sameaslinks = sameaslinks | push: link %} - {% when 'strava_userid' %} - {% capture link %}https://www.strava.com/athletes/{{ social[1] }}{% endcapture %} - {% assign sameaslinks = sameaslinks | push: link %} - {% when 'telegram_username' %} - {% capture link %}https://telegram.me/{{ social[1] }}{% endcapture %} - {% assign sameaslinks = sameaslinks | push: link %} - {% when 'unsplash_id' %} - {% capture link %}https://unsplash.com/@{{ social[1] }}{% endcapture %} - {% assign sameaslinks = sameaslinks | push: link %} - {% when 'whatsapp_number' %} - {% capture link %}https://wa.me/{{ social[1] }}{% endcapture %} - {% assign sameaslinks = sameaslinks | push: link %} - {% when 'wikidata_id' %} - {% capture link %}https://www.wikidata.org/wiki/{{ social[1] }}{% endcapture %} - {% assign sameaslinks = sameaslinks | push: link %} - {% when 'wikipedia_id' %} - {% capture link %}https://wikipedia.org/wiki/User:{{ social[1] }}{% endcapture %} - {% assign sameaslinks = sameaslinks | push: link %} - {% when 'work_url' %} - {% capture link %}{{ social[1] }}{% endcapture %} - {% assign sameaslinks = sameaslinks | push: link %} - {% when 'x_username' %} - {% capture link %}https://twitter.com/{{ social[1] }}{% endcapture %} - {% assign sameaslinks = sameaslinks | push: link %} - {% when 'youtube_id' %} - {% capture link %}https://youtube.com/@{{ social[1] }}{% endcapture %} - {% assign sameaslinks = sameaslinks | push: link %} - {% when 'zotero_username' %} - {% capture link %}https://www.zotero.org/{{ social[1] }}{% endcapture %} - {% assign sameaslinks = sameaslinks | push: link %} - {% else %} - {% assign sameaslinks = sameaslinks | push: social[1].url %} - {% endcase %} - {% endfor %} - - -{% endif %} diff --git a/_includes/news.liquid b/_includes/news.liquid deleted file mode 100644 index ddf40b86..00000000 --- a/_includes/news.liquid +++ /dev/null @@ -1,34 +0,0 @@ -
- {% if site.news != blank %} - {% assign news_size = site.news | size %} -
3 %} - style="max-height: 60vw" - {% endif %} - > - - {% assign news = site.news | reverse %} - {% if include.limit and page.announcements.limit %} - {% assign news_limit = page.announcements.limit %} - {% else %} - {% assign news_limit = news_size %} - {% endif %} - {% for item in news limit: news_limit %} - - - - - {% endfor %} -
{{ item.date | date: '%b %d, %Y' }} - {% if item.inline %} - {{ item.content | remove: '

' | remove: '

' | emojify }} - {% else %} - {{ item.title }} - {% endif %} -
-
- {% else %} -

No news so far...

- {% endif %} -
diff --git a/_includes/newsletter.liquid b/_includes/newsletter.liquid deleted file mode 100644 index ebceefcb..00000000 --- a/_includes/newsletter.liquid +++ /dev/null @@ -1,68 +0,0 @@ - - - diff --git a/_includes/pagination.liquid b/_includes/pagination.liquid deleted file mode 100644 index 61bf4fb6..00000000 --- a/_includes/pagination.liquid +++ /dev/null @@ -1,21 +0,0 @@ -{% if paginator.total_pages > 1 %} - -{% endif %} diff --git a/_includes/projects.liquid b/_includes/projects.liquid deleted file mode 100644 index 758df700..00000000 --- a/_includes/projects.liquid +++ /dev/null @@ -1,38 +0,0 @@ - diff --git a/_includes/projects_horizontal.liquid b/_includes/projects_horizontal.liquid deleted file mode 100644 index 8630e69e..00000000 --- a/_includes/projects_horizontal.liquid +++ /dev/null @@ -1,34 +0,0 @@ - diff --git a/_includes/related_posts.liquid b/_includes/related_posts.liquid deleted file mode 100644 index 4ba91ddd..00000000 --- a/_includes/related_posts.liquid +++ /dev/null @@ -1,36 +0,0 @@ -{% assign have_related_posts = false %} -{% for post in site.related_posts | limit: site.related_blog_posts.max_related %} - {% unless have_related_posts %} - {% assign have_related_posts = true %} - {% if page.layout == 'post' %} -
-
-
-
    - - -

    Enjoy Reading This Article?

    - {% else %} -

    Enjoy Reading This Article?

    - {% endif %} - -

    Here are some more articles you might like to read next:

    - {% endunless %} - -
  • - {% if post.redirect == blank %} - {{ post.title }} - {% elsif post.redirect contains '://' %} - {{ post.title }} - - - - {% else %} - {{ post.title }} - {% endif %} -
  • -{% endfor %} -{% if site.newsletter.enabled and site.footer_fixed %} -

    Subscribe to be notified of future articles:

    - {% include newsletter.liquid left=true %} -{% endif %} diff --git a/_includes/repository/repo.liquid b/_includes/repository/repo.liquid deleted file mode 100644 index d2e4c64c..00000000 --- a/_includes/repository/repo.liquid +++ /dev/null @@ -1,47 +0,0 @@ -{% assign repo_url = include.repository | split: '/' %} -{% if site.data.repositories.github_users contains repo_url.first %} - {% assign show_owner = false %} -{% else %} - {% assign show_owner = true %} -{% endif %} - -{% assign lang = site.lang | split: '-' | first %} - -{% case lang %} - {% when 'pt' %} - {% assign lang = site.lang %} - - {% when 'zh' %} - {% assign lang_last = site.lang | split: '-' | last %} - {% case lang_last %} - {% when 'cn', 'sg', 'my', 'hans' %} - {% assign lang = 'cn' %} - {% when 'tw', 'hk', 'mo', 'hant' %} - {% assign lang = 'zh-tw' %} - {% endcase %} - - {% comment %} Add a new language using when... if needed {% endcomment %} - {% comment %} If you still encounter language-display issues, check the available locale codes in github-readme-stats (different from ISO-639 standard used in your website) {% endcomment %} - {% comment %} https://github.com/anuraghazra/github-readme-stats?tab=readme-ov-file#available-locales {% endcomment %} -{% endcase %} - -{% if site.data.repositories.repo_description_lines_max %} - {% assign max_lines = site.data.repositories.repo_description_lines_max %} -{% else %} - {% assign max_lines = 2 %} -{% endif %} - - diff --git a/_includes/repository/repo_trophies.liquid b/_includes/repository/repo_trophies.liquid deleted file mode 100644 index d0f3e9ca..00000000 --- a/_includes/repository/repo_trophies.liquid +++ /dev/null @@ -1,42 +0,0 @@ - diff --git a/_includes/repository/repo_user.liquid b/_includes/repository/repo_user.liquid deleted file mode 100644 index d41519c9..00000000 --- a/_includes/repository/repo_user.liquid +++ /dev/null @@ -1,34 +0,0 @@ -{% assign lang = site.lang | split: '-' | first %} - -{% case lang %} - {% when 'pt' %} - {% assign lang = site.lang %} - - {% when 'zh' %} - {% assign lang_last = site.lang | split: '-' | last %} - {% case lang_last %} - {% when 'cn', 'sg', 'my', 'hans' %} - {% assign lang = 'cn' %} - {% when 'tw', 'hk', 'mo', 'hant' %} - {% assign lang = 'zh-tw' %} - {% endcase %} - - {% comment %} Add a new language using when... if needed {% endcomment %} - {% comment %} If you still encounter language-display issues, check the available locale codes in github-readme-stats (different from ISO-639 standard used in your website) {% endcomment %} - {% comment %} https://github.com/anuraghazra/github-readme-stats?tab=readme-ov-file#available-locales {% endcomment %} -{% endcase %} - - diff --git a/_includes/scripts.liquid b/_includes/scripts.liquid deleted file mode 100644 index e6b21ae5..00000000 --- a/_includes/scripts.liquid +++ /dev/null @@ -1,378 +0,0 @@ - - - - - - - -{% if site.enable_masonry %} - - - - -{% endif %} - -{% if page.mermaid and page.mermaid.enabled %} - - - {% if page.mermaid.zoomable %} - - {% endif %} - -{% endif %} - -{% if page.code_diff %} - - - - -{% endif %} - -{% if page.map %} - - - -{% endif %} - -{% if page.chart and page.chart.chartjs %} - - - -{% endif %} - -{% if page.chart and page.chart.echarts %} - - - {% if site.enable_darkmode %} - - {% endif %} - -{% endif %} - -{% if page.calendar %} - - -{% endif %} - -{% if page.chart and page.chart.plotly %} - - - -{% endif %} - -{% if page.chart and page.chart.vega_lite %} - - - - - -{% endif %} - -{% if page.tikzjax %} - - -{% endif %} - -{% if page.typograms %} - - -{% endif %} - -{% if site.enable_tooltips %} - - -{% endif %} - -{% if site.enable_medium_zoom %} - - - -{% endif %} - -{% if page.toc and page.toc.sidebar %} - - -{% endif %} - -{% if page.pretty_table %} - - - -{% endif %} - - - - - - - - - - -{% if site.enable_publication_badges.altmetric %} - -{% endif %} -{% if site.enable_publication_badges.dimensions %} - -{% endif %} - -{% if site.enable_math %} - - - {% unless page.pseudocode %} - - - {% else %} - - - {% endunless %} -{% endif %} - -{% if site.enable_cookie_consent %} - - - -{% endif %} - -{% if site.enable_google_analytics %} - - - - -{% endif %} - -{% if site.enable_cronitor_analytics %} - - - -{% endif %} -{% if site.enable_pirsch_analytics %} - -{% endif %} -{% if site.enable_openpanel_analytics %} - - -{% endif %} - -{% if site.enable_progressbar %} - - -{% endif %} - -{% if page.images %} - - {% if page.images.compare %} - - {% endif %} - {% if page.images.lightbox2 %} - - {% endif %} - {% if page.images.photoswipe %} - - {% endif %} - {% if page.images.slider %} - - {% endif %} - {% if page.images.spotlight %} - - {% endif %} - {% if page.images.venobox %} - - - {% endif %} -{% endif %} - -{% if page.tabs %} - - -{% endif %} - -{% if site.back_to_top %} - - - -{% endif %} - -{% if site.search_enabled %} - - - - - - -{% endif %} - -{% if site.newsletter.enabled %} - -{% endif %} diff --git a/_includes/selected_papers.liquid b/_includes/selected_papers.liquid deleted file mode 100644 index e9bf0935..00000000 --- a/_includes/selected_papers.liquid +++ /dev/null @@ -1,3 +0,0 @@ -
    - {% bibliography --group_by none --query @*[selected=true]* %} -
    diff --git a/_includes/video.liquid b/_includes/video.liquid deleted file mode 100644 index 8823106f..00000000 --- a/_includes/video.liquid +++ /dev/null @@ -1,97 +0,0 @@ -{% assign extension = include.path | split: '.' | last %} - -
    - {% if extension == 'mp4' or extension == 'webm' or extension == 'ogg' %} -