diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml
new file mode 100644
index 0000000..4dd861b
--- /dev/null
+++ b/.github/workflows/deploy.yml
@@ -0,0 +1,55 @@
+name: Deploy
+
+on:
+ push:
+ branches: [main, artifinder]
+ workflow_dispatch:
+
+permissions:
+ contents: read
+ pages: write
+ id-token: write
+
+concurrency:
+ group: pages
+ cancel-in-progress: false
+
+jobs:
+ build:
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v4
+ with:
+ submodules: recursive
+
+ - uses: actions/setup-python@v5
+ with:
+ python-version: "3.x"
+
+ - run: pip install pyyaml
+
+ - run: python3 scripts/generate_artifinder_data.py
+
+ - uses: ruby/setup-ruby@v1
+ with:
+ ruby-version: "3.2"
+ bundler-cache: true
+
+ - id: pages
+ uses: actions/configure-pages@v5
+
+ - run: bundle exec jekyll build --baseurl "${{ steps.pages.outputs.base_path }}"
+ env:
+ JEKYLL_ENV: production
+
+ - uses: actions/upload-pages-artifact@v3
+
+ deploy:
+ needs: build
+ runs-on: ubuntu-latest
+ environment:
+ name: github-pages
+ url: ${{ steps.deployment.outputs.page_url }}
+ steps:
+ - id: deployment
+ uses: actions/deploy-pages@v4
diff --git a/.gitignore b/.gitignore
index 4ef8024..7ff7a71 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,6 +1,10 @@
_site
.jekyll-cache
+_data/artifinder_nonevaluated.yaml
+_data/artifinder_authorlinks.yaml
+_data/artifinder_names.yaml
.jekyll-metadata
.DS_Store
vendor/
.bundle/
+.venv
diff --git a/.gitmodules b/.gitmodules
new file mode 100644
index 0000000..89fe1be
--- /dev/null
+++ b/.gitmodules
@@ -0,0 +1,3 @@
+[submodule "_artifinder"]
+ path = _artifinder
+ url = git@github.com:DistriNet/ArtiFinder-Data.git
diff --git a/README.md b/README.md
index 6da5606..a831c47 100644
--- a/README.md
+++ b/README.md
@@ -6,21 +6,19 @@ As part of the generalization we changed from static HTML pages to a Jekyll-rend
This process is integrated into GitHub Pages.
This repository includes the sources for Jekyll to render the HTML pages.
-
## Contributing
-You can contribute to this website and repository via pull requests.
+You can contribute to this website and repository via pull requests.
Please fork the [GitHub repository](https://github.com/secartifacts/secartifacts.github.io),
modify the respective files, and submit a pull request from your personal branch.
In the pull request, please describe your changes and any reasons for the changes.
Once reviewed it will be merged and available on the secartifacts website.
-
We ask you to build the repository and preview your changes before submitting the pull request.
-You have three options to preview changes:
-* configure your forked repository on GitHub to use your branch for GitHub Pages
+You have three options to preview changes:
+* [configure](https://docs.github.com/en/pages/getting-started-with-github-pages/configuring-a-publishing-source-for-your-github-pages-site#publishing-with-a-custom-github-actions-workflow) your forked repository on GitHub to publish to GitHub Pages using Actions
and view it at `your_username.github.io/secartifacts.github.io`
-* install Jekyll and Bundler locally then run `bundle exec jekyll serve` at the root of the repository
+* install Jekyll and Bundler locally, run `./scripts/generate.sh` to generate the ArtiFinder data files, then run `bundle exec jekyll serve` at the root of the repository
* build the repository via [jekyll's docker container](https://github.com/envygeeks/jekyll-docker), for example using
the following command to start a jekyll server on [http://localhost:4000/](http://localhost:4000/):
``` sh
@@ -36,7 +34,6 @@ To add a conference, copy the `.md` in `_conferences` from one of the existing c
This will lead to creating `sp.html` when rendered.
Adapt this page to your conference name by changing the title and text (e.g. change `USENIX Security` to `IEEE S&P`).
-
## Adding another year to an existing conference
Start from an existing conference year such as `eurosys2022`, by
diff --git a/_artifinder b/_artifinder
new file mode 160000
index 0000000..f363faf
--- /dev/null
+++ b/_artifinder
@@ -0,0 +1 @@
+Subproject commit f363faf521484c371023fc82b0e4238c938c59d8
diff --git a/_conferences/acsac2017/results.md b/_conferences/acsac2017/results.md
index 1cf347b..551b474 100644
--- a/_conferences/acsac2017/results.md
+++ b/_conferences/acsac2017/results.md
@@ -70,9 +70,10 @@ Results automatically obtained from
{% endif %}
-
-
+
+ {% include artifinder_link_cell.html title=artifact.title %}
+
{% endfor %}
diff --git a/_conferences/acsac2018/results.md b/_conferences/acsac2018/results.md
index faea73d..02211e8 100644
--- a/_conferences/acsac2018/results.md
+++ b/_conferences/acsac2018/results.md
@@ -110,9 +110,10 @@ Results automatically obtained from
{% endif %}
-
-
+
+ {% include artifinder_link_cell.html title=artifact.title %}
+
{% endfor %}
diff --git a/_conferences/acsac2019/results.md b/_conferences/acsac2019/results.md
index b108fa5..0682ec9 100644
--- a/_conferences/acsac2019/results.md
+++ b/_conferences/acsac2019/results.md
@@ -107,9 +107,10 @@ Results automatically obtained from
{% endif %}
-
-
+
+ {% include artifinder_link_cell.html title=artifact.title %}
+
{% endfor %}
diff --git a/_conferences/acsac2020/results.md b/_conferences/acsac2020/results.md
index f5bc379..66e917c 100644
--- a/_conferences/acsac2020/results.md
+++ b/_conferences/acsac2020/results.md
@@ -132,9 +132,10 @@ Results automatically obtained from
{% endif %}
-
-
+
+ {% include artifinder_link_cell.html title=artifact.title %}
+
{% endfor %}
diff --git a/_conferences/acsac2021/results.md b/_conferences/acsac2021/results.md
index 57c5d1c..ff2dbd8 100644
--- a/_conferences/acsac2021/results.md
+++ b/_conferences/acsac2021/results.md
@@ -108,9 +108,10 @@ Results automatically obtained from
{% endif %}
-
-
+
+ {% include artifinder_link_cell.html title=artifact.title %}
+
{% endfor %}
diff --git a/_conferences/acsac2022/results.md b/_conferences/acsac2022/results.md
index 5a130bb..a0879bf 100644
--- a/_conferences/acsac2022/results.md
+++ b/_conferences/acsac2022/results.md
@@ -200,9 +200,10 @@ Results automatically obtained from
{% endif %}
-
-
+
+ {% include artifinder_link_cell.html title=artifact.title %}
+
{% endfor %}
diff --git a/_conferences/acsac2023/results.md b/_conferences/acsac2023/results.md
index 5b572a5..f023b51 100644
--- a/_conferences/acsac2023/results.md
+++ b/_conferences/acsac2023/results.md
@@ -150,6 +150,7 @@ Results automatically obtained from
{% endif %}
+ {% include artifinder_link_cell.html title=artifact.title %}
{% endfor %}
diff --git a/_conferences/acsac2024/results.md b/_conferences/acsac2024/results.md
index 7ee937b..001c36b 100644
--- a/_conferences/acsac2024/results.md
+++ b/_conferences/acsac2024/results.md
@@ -224,6 +224,7 @@ Results automatically obtained from
{% endif %}
+ {% include artifinder_link_cell.html title=artifact.title %}
{% endfor %}
diff --git a/_conferences/acsac2025/results.md b/_conferences/acsac2025/results.md
index 828cffe..480ee11 100644
--- a/_conferences/acsac2025/results.md
+++ b/_conferences/acsac2025/results.md
@@ -200,6 +200,7 @@ Results automatically obtained from
{% endif %}
+ {% include artifinder_link_cell.html title=artifact.title %}
{% endfor %}
diff --git a/_conferences/ndss2024/results.md b/_conferences/ndss2024/results.md
index 4c9dd26..481201a 100644
--- a/_conferences/ndss2024/results.md
+++ b/_conferences/ndss2024/results.md
@@ -180,6 +180,7 @@ artifacts:
Functional |
Reproduced |
Available at |
+ {% include artifinder_link_header.html %}
@@ -214,6 +215,7 @@ artifacts:
Artifact
{% endif %}
+ {% include artifinder_link_cell.html title=artifact.title %}
{% endfor %}
diff --git a/_conferences/ndss2025/results.md b/_conferences/ndss2025/results.md
index f739ec5..f16ef6e 100644
--- a/_conferences/ndss2025/results.md
+++ b/_conferences/ndss2025/results.md
@@ -282,6 +282,7 @@ artifacts:
Functional |
Reproduced |
Available at |
+ {% include artifinder_link_header.html %}
@@ -316,6 +317,7 @@ artifacts:
Artifact
{% endif %}
+ {% include artifinder_link_cell.html title=artifact.title %}
{% endfor %}
diff --git a/_conferences/usenixsec2020/results.md b/_conferences/usenixsec2020/results.md
index 82bd813..1248dfb 100644
--- a/_conferences/usenixsec2020/results.md
+++ b/_conferences/usenixsec2020/results.md
@@ -195,6 +195,7 @@ artifacts:
Title |
Badge |
Artifact URL |
+ {% include artifinder_link_header.html %}
@@ -217,6 +218,7 @@ artifacts:
Artifact
{% endif %}
+ {% include artifinder_link_cell.html title=artifact.title %}
{% endfor %}
diff --git a/_conferences/usenixsec2021/results.md b/_conferences/usenixsec2021/results.md
index 54b0979..45552b8 100644
--- a/_conferences/usenixsec2021/results.md
+++ b/_conferences/usenixsec2021/results.md
@@ -176,6 +176,7 @@ artifacts:
Title |
Badge |
Artifact URL |
+ {% include artifinder_link_header.html %}
@@ -198,6 +199,7 @@ artifacts:
Artifact
{% endif %}
+ {% include artifinder_link_cell.html title=artifact.title %}
{% endfor %}
diff --git a/_conferences/usenixsec2022/results.md b/_conferences/usenixsec2022/results.md
index a1b58f0..5c84de9 100644
--- a/_conferences/usenixsec2022/results.md
+++ b/_conferences/usenixsec2022/results.md
@@ -693,6 +693,7 @@ Results include evaluation of the USENIX Security Summer submissions and will be
Repro. |
Repository |
Appendix |
+ {% include artifinder_link_header.html %}
@@ -728,6 +729,7 @@ Results include evaluation of the USENIX Security Summer submissions and will be
Appendix
{% endif %}
+ {% include artifinder_link_cell.html title=artifact.title %}
{% endfor %}
diff --git a/_conferences/usenixsec2023/results.md b/_conferences/usenixsec2023/results.md
index 1eefebc..cbbe438 100644
--- a/_conferences/usenixsec2023/results.md
+++ b/_conferences/usenixsec2023/results.md
@@ -881,6 +881,7 @@ artifacts:
Funct. |
Repro. |
Available At |
+ {% include artifinder_link_header.html %}
@@ -919,6 +920,7 @@ artifacts:
Appendix
{% endif %}
+ {% include artifinder_link_cell.html title=artifact.title %}
{% endfor %}
diff --git a/_conferences/usenixsec2024/results.md b/_conferences/usenixsec2024/results.md
index 645ac2b..c80532f 100644
--- a/_conferences/usenixsec2024/results.md
+++ b/_conferences/usenixsec2024/results.md
@@ -1034,6 +1034,7 @@ artifacts:
Funct. |
Repro. |
Available At |
+ {% include artifinder_link_header.html %}
@@ -1079,6 +1080,7 @@ artifacts:
📄 Appendix
{% endif %}
+ {% include artifinder_link_cell.html title=artifact.title %}
{% endfor %}
diff --git a/_conferences/usenixsec2025/results.md b/_conferences/usenixsec2025/results.md
index fcbabe2..3e0b6e4 100644
--- a/_conferences/usenixsec2025/results.md
+++ b/_conferences/usenixsec2025/results.md
@@ -3127,6 +3127,7 @@ artifacts:
Funct. |
Repro. |
Available At |
+ {% include artifinder_link_header.html %}
@@ -3172,6 +3173,7 @@ artifacts:
📄 Appendix
{% endif %}
+ {% include artifinder_link_cell.html title=artifact.title %}
{% endfor %}
diff --git a/_includes/artifinder_link_cell.html b/_includes/artifinder_link_cell.html
new file mode 100644
index 0000000..a25dd7c
--- /dev/null
+++ b/_includes/artifinder_link_cell.html
@@ -0,0 +1,5 @@
+
+ {% assign dir_name = page.path | remove_first:"_conferences/" | split:"/" | first %}
+ {% assign af_entry = site.data.artifinder_authorlinks[dir_name][include.title] %}
+ {% if af_entry %}Link in paper{% if af_entry.validated %} ✓{% else %} ?{% endif %}{% endif %}
+ |
diff --git a/_includes/artifinder_link_header.html b/_includes/artifinder_link_header.html
new file mode 100644
index 0000000..c245d74
--- /dev/null
+++ b/_includes/artifinder_link_header.html
@@ -0,0 +1 @@
+Link in paper ? |
diff --git a/_includes/head/custom.html b/_includes/head/custom.html
new file mode 100644
index 0000000..cf47666
--- /dev/null
+++ b/_includes/head/custom.html
@@ -0,0 +1,4 @@
+
diff --git a/_includes/masthead.html b/_includes/masthead.html
index d28e62a..a3213ab 100644
--- a/_includes/masthead.html
+++ b/_includes/masthead.html
@@ -30,6 +30,9 @@
{% endif %}
{% endfor %}
+
{% if site.search == true %}