From 2ef145c26b35a92a09ca4b60ef1ec2c96cd38d8d Mon Sep 17 00:00:00 2001 From: joyboy Date: Mon, 5 Jan 2026 19:10:49 +0100 Subject: [PATCH 1/8] feat: Add fuzzy search and tag filtering This commit introduces a search bar and tag filtering functionality to the website. - Adds a search bar that allows users to search for conferences. - Implements fuzzy search using Fuse.js to provide a more forgiving search experience. - Updates the tag filtering to use OR logic, allowing users to select multiple tags to broaden the search. - Adds Gemfile and Gemfile.lock to document the dependencies needed for local development. --- Gemfile | 3 + Gemfile.lock | 230 ++++++++++++++++++++++++++++++++++++++++++++++ index.html | 8 ++ static/js/main.js | 71 ++++++++++++-- 4 files changed, 304 insertions(+), 8 deletions(-) create mode 100644 Gemfile create mode 100644 Gemfile.lock diff --git a/Gemfile b/Gemfile new file mode 100644 index 00000000..970661d3 --- /dev/null +++ b/Gemfile @@ -0,0 +1,3 @@ +source "https://rubygems.org" +gem "jekyll" +gem "webrick" diff --git a/Gemfile.lock b/Gemfile.lock new file mode 100644 index 00000000..9c2ce58e --- /dev/null +++ b/Gemfile.lock @@ -0,0 +1,230 @@ +GEM + remote: https://rubygems.org/ + specs: + addressable (2.8.8) + public_suffix (>= 2.0.2, < 8.0) + base64 (0.3.0) + bigdecimal (4.0.1) + colorator (1.1.0) + concurrent-ruby (1.3.6) + csv (3.3.5) + em-websocket (0.5.3) + eventmachine (>= 0.12.9) + http_parser.rb (~> 0) + eventmachine (1.2.7) + ffi (1.17.3) + 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-linux-gnu) + ffi (1.17.3-x86-linux-musl) + ffi (1.17.3-x86_64-darwin) + ffi (1.17.3-x86_64-linux-gnu) + ffi (1.17.3-x86_64-linux-musl) + forwardable-extended (2.6.0) + google-protobuf (4.33.2) + bigdecimal + rake (>= 13) + google-protobuf (4.33.2-aarch64-linux-gnu) + bigdecimal + rake (>= 13) + google-protobuf (4.33.2-aarch64-linux-musl) + bigdecimal + rake (>= 13) + google-protobuf (4.33.2-arm64-darwin) + bigdecimal + rake (>= 13) + google-protobuf (4.33.2-x86-linux-gnu) + bigdecimal + rake (>= 13) + google-protobuf (4.33.2-x86-linux-musl) + bigdecimal + rake (>= 13) + google-protobuf (4.33.2-x86_64-darwin) + bigdecimal + rake (>= 13) + google-protobuf (4.33.2-x86_64-linux-gnu) + bigdecimal + rake (>= 13) + google-protobuf (4.33.2-x86_64-linux-musl) + bigdecimal + rake (>= 13) + http_parser.rb (0.8.1) + i18n (1.14.8) + concurrent-ruby (~> 1.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-sass-converter (3.1.0) + sass-embedded (~> 1.75) + jekyll-watch (2.2.1) + listen (~> 3.0) + json (2.18.0) + kramdown (2.5.1) + rexml (>= 3.3.9) + kramdown-parser-gfm (1.1.0) + kramdown (~> 2.0) + liquid (4.0.4) + listen (3.9.0) + rb-fsevent (~> 0.10, >= 0.10.3) + rb-inotify (~> 0.9, >= 0.9.10) + mercenary (0.4.0) + pathutil (0.16.2) + forwardable-extended (~> 2.6) + public_suffix (7.0.2) + 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.1) + google-protobuf (~> 4.31) + rake (>= 13) + sass-embedded (1.97.1-aarch64-linux-android) + google-protobuf (~> 4.31) + sass-embedded (1.97.1-aarch64-linux-gnu) + google-protobuf (~> 4.31) + sass-embedded (1.97.1-aarch64-linux-musl) + google-protobuf (~> 4.31) + sass-embedded (1.97.1-arm-linux-androideabi) + google-protobuf (~> 4.31) + sass-embedded (1.97.1-arm-linux-gnueabihf) + google-protobuf (~> 4.31) + sass-embedded (1.97.1-arm-linux-musleabihf) + google-protobuf (~> 4.31) + sass-embedded (1.97.1-arm64-darwin) + google-protobuf (~> 4.31) + sass-embedded (1.97.1-riscv64-linux-android) + google-protobuf (~> 4.31) + sass-embedded (1.97.1-riscv64-linux-gnu) + google-protobuf (~> 4.31) + sass-embedded (1.97.1-riscv64-linux-musl) + google-protobuf (~> 4.31) + sass-embedded (1.97.1-x86_64-darwin) + google-protobuf (~> 4.31) + sass-embedded (1.97.1-x86_64-linux-android) + google-protobuf (~> 4.31) + sass-embedded (1.97.1-x86_64-linux-gnu) + google-protobuf (~> 4.31) + sass-embedded (1.97.1-x86_64-linux-musl) + google-protobuf (~> 4.31) + terminal-table (3.0.2) + unicode-display_width (>= 1.1.1, < 3) + unicode-display_width (2.6.0) + webrick (1.9.2) + +PLATFORMS + aarch64-linux-android + aarch64-linux-gnu + aarch64-linux-musl + arm-linux-androideabi + arm-linux-gnu + arm-linux-gnueabihf + arm-linux-musl + arm-linux-musleabihf + arm64-darwin + riscv64-linux-android + riscv64-linux-gnu + riscv64-linux-musl + ruby + x86-linux-gnu + x86-linux-musl + x86_64-darwin + x86_64-linux-android + x86_64-linux-gnu + x86_64-linux-musl + +DEPENDENCIES + jekyll + webrick + +CHECKSUMS + addressable (2.8.8) sha256=7c13b8f9536cf6364c03b9d417c19986019e28f7c00ac8132da4eb0fe393b057 + base64 (0.3.0) sha256=27337aeabad6ffae05c265c450490628ef3ebd4b67be58257393227588f5a97b + bigdecimal (4.0.1) sha256=8b07d3d065a9f921c80ceaea7c9d4ae596697295b584c296fe599dd0ad01c4a7 + colorator (1.1.0) sha256=e2f85daf57af47d740db2a32191d1bdfb0f6503a0dfbc8327d0c9154d5ddfc38 + concurrent-ruby (1.3.6) sha256=6b56837e1e7e5292f9864f34b69c5a2cbc75c0cf5338f1ce9903d10fa762d5ab + csv (3.3.5) sha256=6e5134ac3383ef728b7f02725d9872934f523cb40b961479f69cf3afa6c8e73f + em-websocket (0.5.3) sha256=f56a92bde4e6cb879256d58ee31f124181f68f8887bd14d53d5d9a292758c6a8 + eventmachine (1.2.7) sha256=994016e42aa041477ba9cff45cbe50de2047f25dd418eba003e84f0d16560972 + ffi (1.17.3) sha256=0e9f39f7bb3934f77ad6feab49662be77e87eedcdeb2a3f5c0234c2938563d4c + ffi (1.17.3-aarch64-linux-gnu) sha256=28ad573df26560f0aedd8a90c3371279a0b2bd0b4e834b16a2baa10bd7a97068 + ffi (1.17.3-aarch64-linux-musl) sha256=020b33b76775b1abacc3b7d86b287cef3251f66d747092deec592c7f5df764b2 + ffi (1.17.3-arm-linux-gnu) sha256=5bd4cea83b68b5ec0037f99c57d5ce2dd5aa438f35decc5ef68a7d085c785668 + ffi (1.17.3-arm-linux-musl) sha256=0d7626bb96265f9af78afa33e267d71cfef9d9a8eb8f5525344f8da6c7d76053 + ffi (1.17.3-arm64-darwin) sha256=0c690555d4cee17a7f07c04d59df39b2fba74ec440b19da1f685c6579bb0717f + ffi (1.17.3-x86-linux-gnu) sha256=868a88fcaf5186c3a46b7c7c2b2c34550e1e61a405670ab23f5b6c9971529089 + ffi (1.17.3-x86-linux-musl) sha256=f0286aa6ef40605cf586e61406c446de34397b85dbb08cc99fdaddaef8343945 + ffi (1.17.3-x86_64-darwin) sha256=1f211811eb5cfaa25998322cdd92ab104bfbd26d1c4c08471599c511f2c00bb5 + ffi (1.17.3-x86_64-linux-gnu) sha256=3746b01f677aae7b16dc1acb7cb3cc17b3e35bdae7676a3f568153fb0e2c887f + ffi (1.17.3-x86_64-linux-musl) sha256=086b221c3a68320b7564066f46fed23449a44f7a1935f1fe5a245bd89d9aea56 + forwardable-extended (2.6.0) sha256=1bec948c469bbddfadeb3bd90eb8c85f6e627a412a3e852acfd7eaedbac3ec97 + google-protobuf (4.33.2) sha256=748150d6c642fd655ef39efa23ecf2abe6d616020039a6d1c1764be1da530315 + google-protobuf (4.33.2-aarch64-linux-gnu) sha256=822b2dcb707e94e652cd994642c31035935fca021adfac6164772c511eb7acd4 + google-protobuf (4.33.2-aarch64-linux-musl) sha256=c4b64428183cfd1953ec8c37beec1036668c8ec0865cfb0b18df21181ca397ee + google-protobuf (4.33.2-arm64-darwin) sha256=6d0ac185fed18768e5f16338455b1e4b7c38a97fc46f352e709f7a3007b64e1d + google-protobuf (4.33.2-x86-linux-gnu) sha256=82612c425d7a0b0f8f299d8e595a367984fcd22a155b8ac5861eea0e76ca1a93 + google-protobuf (4.33.2-x86-linux-musl) sha256=cc7e322228967c230f3b9c47a76de4e59fb47001900f4cbdf9056d1de92199ab + google-protobuf (4.33.2-x86_64-darwin) sha256=87cde586234674562cf099e2b708a65e376e2d39b0f0f48281f4b4ea182b47f8 + google-protobuf (4.33.2-x86_64-linux-gnu) sha256=73cba041477afcac92ff383fcbdec195ea28d96b994876d1deaa944d18f91786 + google-protobuf (4.33.2-x86_64-linux-musl) sha256=97cdf4f772c5540f9274603b00f1474ed5e6e2238b1d8b1585e77f941a36bd2c + http_parser.rb (0.8.1) sha256=9ae8df145b39aa5398b2f90090d651c67bd8e2ebfe4507c966579f641e11097a + i18n (1.14.8) sha256=285778639134865c5e0f6269e0b818256017e8cde89993fdfcbfb64d088824a5 + jekyll (4.4.1) sha256=4c1144d857a5b2b80d45b8cf5138289579a9f8136aadfa6dd684b31fe2bc18c1 + jekyll-sass-converter (3.1.0) sha256=83925d84f1d134410c11d0c6643b0093e82e3a3cf127e90757a85294a3862443 + jekyll-watch (2.2.1) sha256=bc44ed43f5e0a552836245a54dbff3ea7421ecc2856707e8a1ee203a8387a7e1 + json (2.18.0) sha256=b10506aee4183f5cf49e0efc48073d7b75843ce3782c68dbeb763351c08fd505 + kramdown (2.5.1) sha256=87bbb6abd9d3cebe4fc1f33e367c392b4500e6f8fa19dd61c0972cf4afe7368c + kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 + liquid (4.0.4) sha256=4fcfebb1a045e47918388dbb7a0925e7c3893e58d2bd6c3b3c73ec17a2d8fdb3 + listen (3.9.0) sha256=db9e4424e0e5834480385197c139cb6b0ae0ef28cc13310cfd1ca78377d59c67 + mercenary (0.4.0) sha256=b25a1e4a59adca88665e08e24acf0af30da5b5d859f7d8f38fba52c28f405138 + pathutil (0.16.2) sha256=e43b74365631cab4f6d5e4228f812927efc9cb2c71e62976edcb252ee948d589 + public_suffix (7.0.2) sha256=9114090c8e4e7135c1fd0e7acfea33afaab38101884320c65aaa0ffb8e26a857 + rake (13.3.1) sha256=8c9e89d09f66a26a01264e7e3480ec0607f0c497a861ef16063604b1b08eb19c + rb-fsevent (0.11.2) sha256=43900b972e7301d6570f64b850a5aa67833ee7d87b458ee92805d56b7318aefe + rb-inotify (0.11.1) sha256=a0a700441239b0ff18eb65e3866236cd78613d6b9f78fea1f9ac47a85e47be6e + rexml (3.4.4) sha256=19e0a2c3425dfbf2d4fc1189747bdb2f849b6c5e74180401b15734bc97b5d142 + rouge (4.7.0) sha256=dba5896715c0325c362e895460a6d350803dbf6427454f49a47500f3193ea739 + safe_yaml (1.0.5) sha256=a6ac2d64b7eb027bdeeca1851fe7e7af0d668e133e8a88066a0c6f7087d9f848 + sass-embedded (1.97.1) sha256=112ee8895854e7a8ea985937f7458f649fed8df255ed61e189f8a4b185e768d9 + sass-embedded (1.97.1-aarch64-linux-android) sha256=f1801c8f5ac05ff0161fb9792259069239c2d4e497d2eca51a21c9ee2fa5e648 + sass-embedded (1.97.1-aarch64-linux-gnu) sha256=427e7d90e69ac578a2f2f4460d4ad663ce27abd379ce79d17d8426e05079c8c5 + sass-embedded (1.97.1-aarch64-linux-musl) sha256=11728a50789f6872b548d888fefb7ab0141e277f28038520bf698057acc41ea6 + sass-embedded (1.97.1-arm-linux-androideabi) sha256=a1cbe71d760f91ad699b98df737efadd38e15b886d6f29d309d69665f83fcf5e + sass-embedded (1.97.1-arm-linux-gnueabihf) sha256=5484d596693d2018f20a9c46b6d1a234d97308fdd2169f8c6b1d8a9bd0f121dc + sass-embedded (1.97.1-arm-linux-musleabihf) sha256=b99fa71e32e1f7be57cf801ce08f4c1ffb2d1151d31f1134a1c334364c1c3274 + sass-embedded (1.97.1-arm64-darwin) sha256=9da08e5cc569ef62235fc515a87c75a47b0de40d8416c563ba1abfbe60e606d9 + sass-embedded (1.97.1-riscv64-linux-android) sha256=f5f4abc14a6ee0514fdc27b0926ad2b5dc2e363ab91b0d4887f04e3d83be35b0 + sass-embedded (1.97.1-riscv64-linux-gnu) sha256=baaa87895042b3b656c689fc74a7a2c11e64e19006f5d283cad1cd265857fcea + sass-embedded (1.97.1-riscv64-linux-musl) sha256=a882358c8f8249ac7f336b4f214abe73aa45edb0a2ff4001ff13dbb4b5d0b5e7 + sass-embedded (1.97.1-x86_64-darwin) sha256=f2b65c45bce72bc893511692aa4e4f309cfbe23c035ec688190a0c758c8e77a6 + sass-embedded (1.97.1-x86_64-linux-android) sha256=d3283323c0a5e2a46d7891748f09ad5446fe840ae69a305379e9a99c4c079cff + sass-embedded (1.97.1-x86_64-linux-gnu) sha256=9a294bb0acb1a539ed19f0e511098a9740b4aab4389e169585e8da1337fbd8b4 + sass-embedded (1.97.1-x86_64-linux-musl) sha256=c383026b7a70d52b0ef4be73c45cc1399fc65f95e851b0fc9265c8d89f151556 + terminal-table (3.0.2) sha256=f951b6af5f3e00203fb290a669e0a85c5dd5b051b3b023392ccfd67ba5abae91 + unicode-display_width (2.6.0) sha256=12279874bba6d5e4d2728cef814b19197dbb10d7a7837a869bab65da943b7f5a + webrick (1.9.2) sha256=beb4a15fc474defed24a3bda4ffd88a490d517c9e4e6118c3edce59e45864131 + +BUNDLED WITH + 4.0.3 diff --git a/index.html b/index.html index 605dfbad..61eca972 100644 --- a/index.html +++ b/index.html @@ -41,6 +41,13 @@


+
+
+
+ +
+
+
@@ -114,6 +121,7 @@

{{conf.name}} {{conf.year}}

+ {% if site.ga_id %} {% include analytics.html %} diff --git a/static/js/main.js b/static/js/main.js index 8e9218d3..e8cd8fea 100644 --- a/static/js/main.js +++ b/static/js/main.js @@ -3,6 +3,29 @@ $(function() { deadlineByConf = {}; + var all_confs_data = []; + {% for conf in site.data.conferences %} + {% assign num_deadlines = conf.deadline.size %} + {% assign range_end = conf.deadline.size | minus: 1 %} + {% for i in (0..range_end) %} + {% assign conf_id = conf.name | append: conf.year | append: '-' | append: i | slugify %} + all_confs_data.push({ + id: '{{ conf_id }}', + name: {{ conf.name | jsonify }}, + description: {{ conf.description | strip_html | strip_newlines | jsonify }}, + tags: {{ conf.tags | jsonify }}, + year: '{{ conf.year }}', + place: {{ conf.place | jsonify }} + }); + {% endfor %} + {% endfor %} + + var fuse = new Fuse(all_confs_data, { + keys: ['name', 'description', 'year', 'place'], + includeScore: true, + threshold: 0.4 + }); + {% for conf in site.data.conferences %} // {{ conf.name }} {{ conf.year }} {% if conf.deadline[0] == "TBA" %} @@ -113,21 +136,50 @@ $(function() { store.set('{{ site.domain }}', tags); function update_conf_list() { + var query = $('#search-input').val().toLowerCase(); + + var searched_confs = []; + if (query.length > 0) { + var results = fuse.search(query); + searched_confs = results.map(function(result) { + return result.item.id; + }); + } else { + searched_confs = all_confs_data.map(function(conf) { + return conf.id; + }); + } + confs.each(function(i, conf) { var conf = $(conf); var show = false; - var set_tags = []; + + if (searched_confs.indexOf(conf.attr('id')) === -1) { + conf.hide(); + return; + } + + // Tag filtering (OR logic) + var selected_tags = []; for (var i = 0; i < all_tags.length; i++) { - // if tag has been selected by user, check if the conference has it if(toggle_status[all_tags[i]]) { - set_tags.push(conf.hasClass(all_tags[i])); + selected_tags.push(all_tags[i]); + } + } + + var tag_match = false; + if (selected_tags.length === 0) { + tag_match = true; + } else { + for (var i = 0; i < selected_tags.length; i++) { + if (conf.hasClass(selected_tags[i])) { + tag_match = true; + break; + } } } - let empty_or_all_true = arr => arr.every(Boolean); - // show a conference if it has all user-selected tags - // if no tag is set (= array is empty), show all entries - show = empty_or_all_true(set_tags); - if (show) { + + if (tag_match) { conf.show(); } else { conf.hide() @@ -136,6 +188,8 @@ $(function() { } update_conf_list(); + $('#search-input').on('input', update_conf_list); + // Event handler on checkbox change $('form :checkbox').change(function(e) { var checked = $(this).is(':checked'); @@ -155,3 +209,4 @@ $(function() { update_conf_list(); }); }); + From 58d5362e3867be29aa18707495566f10add10ce2 Mon Sep 17 00:00:00 2001 From: joyboy Date: Tue, 6 Jan 2026 01:37:17 +0100 Subject: [PATCH 2/8] feat: Add SRI to fuse.js script and update README with local development setup --- README.md | 11 +++++++++++ index.html | 2 +- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index c3525ad3..48b6c85c 100644 --- a/README.md +++ b/README.md @@ -18,6 +18,17 @@ Examples where conferences were **not** a good fit are [FTC's PrivacyCon](https: [Real World Crypto (RWC)](https://rwc.iacr.org/2026/) (see [sec-deadlines/#475](https://github.com/sec-deadlines/sec-deadlines.github.io/issues/475)). Once PrivacyCon or RWC begin publishing proceedings, they'd become fit for inclusion. +## Local Development Setup + +This project uses Jekyll, which relies on RubyGems for its dependencies. The `Gemfile` and `Gemfile.lock` files are used to manage these dependencies, ensuring that all contributors use the same versions of gems for local development, which helps in preventing dependency-related issues. + +To set up your local development environment: + +1. Install Ruby and Bundler. +2. Navigate to the project root directory. +3. Run `bundle install` to install all necessary gems. +4. Use `bundle exec jekyll serve` to run the Jekyll server locally. + ## Adding/updating a conference * Read the data format description below. **Note that the timezone format sign is inverted** (e.g., UTC+7 is written as `Etc/GMT-7`). It's [not a bug][0]. I hate this format too. I'd be happy to move to a different timezone JavaScript library that uses a friendlier format, but I don't have time for that. diff --git a/index.html b/index.html index 61eca972..922d6cd8 100644 --- a/index.html +++ b/index.html @@ -121,7 +121,7 @@

{{conf.name}} {{conf.year}}

- + {% if site.ga_id %} {% include analytics.html %} From f20105b68555bef769b8ffdc8e6250c3f9285d0a Mon Sep 17 00:00:00 2001 From: joyboy Date: Tue, 6 Jan 2026 01:41:18 +0100 Subject: [PATCH 3/8] docs: Clarify Ruby/Jekyll necessity in README for local development --- README.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 48b6c85c..006bc810 100644 --- a/README.md +++ b/README.md @@ -20,7 +20,9 @@ Once PrivacyCon or RWC begin publishing proceedings, they'd become fit for inclu ## Local Development Setup -This project uses Jekyll, which relies on RubyGems for its dependencies. The `Gemfile` and `Gemfile.lock` files are used to manage these dependencies, ensuring that all contributors use the same versions of gems for local development, which helps in preventing dependency-related issues. +This project is built using Jekyll, a static site generator written in Ruby. Jekyll processes all the project's files (including HTML, CSS, JavaScript, and data files) to generate the final static website. Therefore, even if your changes are not directly in Ruby code, a Ruby development environment is needed to build and preview the site locally. + +The `Gemfile` and `Gemfile.lock` files are used to manage Jekyll's dependencies (RubyGems), ensuring that all contributors use the same versions of gems for local development, which helps in preventing dependency-related issues. To set up your local development environment: From 881ab4b58beacba76cb39055c0d8566318240967 Mon Sep 17 00:00:00 2001 From: joyboy Date: Tue, 6 Jan 2026 01:44:48 +0100 Subject: [PATCH 4/8] feat: Remove local Ruby dev setup and dependencies --- Gemfile | 3 - Gemfile.lock | 230 --------------------------------------------------- README.md | 13 --- 3 files changed, 246 deletions(-) delete mode 100644 Gemfile delete mode 100644 Gemfile.lock diff --git a/Gemfile b/Gemfile deleted file mode 100644 index 970661d3..00000000 --- a/Gemfile +++ /dev/null @@ -1,3 +0,0 @@ -source "https://rubygems.org" -gem "jekyll" -gem "webrick" diff --git a/Gemfile.lock b/Gemfile.lock deleted file mode 100644 index 9c2ce58e..00000000 --- a/Gemfile.lock +++ /dev/null @@ -1,230 +0,0 @@ -GEM - remote: https://rubygems.org/ - specs: - addressable (2.8.8) - public_suffix (>= 2.0.2, < 8.0) - base64 (0.3.0) - bigdecimal (4.0.1) - colorator (1.1.0) - concurrent-ruby (1.3.6) - csv (3.3.5) - em-websocket (0.5.3) - eventmachine (>= 0.12.9) - http_parser.rb (~> 0) - eventmachine (1.2.7) - ffi (1.17.3) - 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-linux-gnu) - ffi (1.17.3-x86-linux-musl) - ffi (1.17.3-x86_64-darwin) - ffi (1.17.3-x86_64-linux-gnu) - ffi (1.17.3-x86_64-linux-musl) - forwardable-extended (2.6.0) - google-protobuf (4.33.2) - bigdecimal - rake (>= 13) - google-protobuf (4.33.2-aarch64-linux-gnu) - bigdecimal - rake (>= 13) - google-protobuf (4.33.2-aarch64-linux-musl) - bigdecimal - rake (>= 13) - google-protobuf (4.33.2-arm64-darwin) - bigdecimal - rake (>= 13) - google-protobuf (4.33.2-x86-linux-gnu) - bigdecimal - rake (>= 13) - google-protobuf (4.33.2-x86-linux-musl) - bigdecimal - rake (>= 13) - google-protobuf (4.33.2-x86_64-darwin) - bigdecimal - rake (>= 13) - google-protobuf (4.33.2-x86_64-linux-gnu) - bigdecimal - rake (>= 13) - google-protobuf (4.33.2-x86_64-linux-musl) - bigdecimal - rake (>= 13) - http_parser.rb (0.8.1) - i18n (1.14.8) - concurrent-ruby (~> 1.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-sass-converter (3.1.0) - sass-embedded (~> 1.75) - jekyll-watch (2.2.1) - listen (~> 3.0) - json (2.18.0) - kramdown (2.5.1) - rexml (>= 3.3.9) - kramdown-parser-gfm (1.1.0) - kramdown (~> 2.0) - liquid (4.0.4) - listen (3.9.0) - rb-fsevent (~> 0.10, >= 0.10.3) - rb-inotify (~> 0.9, >= 0.9.10) - mercenary (0.4.0) - pathutil (0.16.2) - forwardable-extended (~> 2.6) - public_suffix (7.0.2) - 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.1) - google-protobuf (~> 4.31) - rake (>= 13) - sass-embedded (1.97.1-aarch64-linux-android) - google-protobuf (~> 4.31) - sass-embedded (1.97.1-aarch64-linux-gnu) - google-protobuf (~> 4.31) - sass-embedded (1.97.1-aarch64-linux-musl) - google-protobuf (~> 4.31) - sass-embedded (1.97.1-arm-linux-androideabi) - google-protobuf (~> 4.31) - sass-embedded (1.97.1-arm-linux-gnueabihf) - google-protobuf (~> 4.31) - sass-embedded (1.97.1-arm-linux-musleabihf) - google-protobuf (~> 4.31) - sass-embedded (1.97.1-arm64-darwin) - google-protobuf (~> 4.31) - sass-embedded (1.97.1-riscv64-linux-android) - google-protobuf (~> 4.31) - sass-embedded (1.97.1-riscv64-linux-gnu) - google-protobuf (~> 4.31) - sass-embedded (1.97.1-riscv64-linux-musl) - google-protobuf (~> 4.31) - sass-embedded (1.97.1-x86_64-darwin) - google-protobuf (~> 4.31) - sass-embedded (1.97.1-x86_64-linux-android) - google-protobuf (~> 4.31) - sass-embedded (1.97.1-x86_64-linux-gnu) - google-protobuf (~> 4.31) - sass-embedded (1.97.1-x86_64-linux-musl) - google-protobuf (~> 4.31) - terminal-table (3.0.2) - unicode-display_width (>= 1.1.1, < 3) - unicode-display_width (2.6.0) - webrick (1.9.2) - -PLATFORMS - aarch64-linux-android - aarch64-linux-gnu - aarch64-linux-musl - arm-linux-androideabi - arm-linux-gnu - arm-linux-gnueabihf - arm-linux-musl - arm-linux-musleabihf - arm64-darwin - riscv64-linux-android - riscv64-linux-gnu - riscv64-linux-musl - ruby - x86-linux-gnu - x86-linux-musl - x86_64-darwin - x86_64-linux-android - x86_64-linux-gnu - x86_64-linux-musl - -DEPENDENCIES - jekyll - webrick - -CHECKSUMS - addressable (2.8.8) sha256=7c13b8f9536cf6364c03b9d417c19986019e28f7c00ac8132da4eb0fe393b057 - base64 (0.3.0) sha256=27337aeabad6ffae05c265c450490628ef3ebd4b67be58257393227588f5a97b - bigdecimal (4.0.1) sha256=8b07d3d065a9f921c80ceaea7c9d4ae596697295b584c296fe599dd0ad01c4a7 - colorator (1.1.0) sha256=e2f85daf57af47d740db2a32191d1bdfb0f6503a0dfbc8327d0c9154d5ddfc38 - concurrent-ruby (1.3.6) sha256=6b56837e1e7e5292f9864f34b69c5a2cbc75c0cf5338f1ce9903d10fa762d5ab - csv (3.3.5) sha256=6e5134ac3383ef728b7f02725d9872934f523cb40b961479f69cf3afa6c8e73f - em-websocket (0.5.3) sha256=f56a92bde4e6cb879256d58ee31f124181f68f8887bd14d53d5d9a292758c6a8 - eventmachine (1.2.7) sha256=994016e42aa041477ba9cff45cbe50de2047f25dd418eba003e84f0d16560972 - ffi (1.17.3) sha256=0e9f39f7bb3934f77ad6feab49662be77e87eedcdeb2a3f5c0234c2938563d4c - ffi (1.17.3-aarch64-linux-gnu) sha256=28ad573df26560f0aedd8a90c3371279a0b2bd0b4e834b16a2baa10bd7a97068 - ffi (1.17.3-aarch64-linux-musl) sha256=020b33b76775b1abacc3b7d86b287cef3251f66d747092deec592c7f5df764b2 - ffi (1.17.3-arm-linux-gnu) sha256=5bd4cea83b68b5ec0037f99c57d5ce2dd5aa438f35decc5ef68a7d085c785668 - ffi (1.17.3-arm-linux-musl) sha256=0d7626bb96265f9af78afa33e267d71cfef9d9a8eb8f5525344f8da6c7d76053 - ffi (1.17.3-arm64-darwin) sha256=0c690555d4cee17a7f07c04d59df39b2fba74ec440b19da1f685c6579bb0717f - ffi (1.17.3-x86-linux-gnu) sha256=868a88fcaf5186c3a46b7c7c2b2c34550e1e61a405670ab23f5b6c9971529089 - ffi (1.17.3-x86-linux-musl) sha256=f0286aa6ef40605cf586e61406c446de34397b85dbb08cc99fdaddaef8343945 - ffi (1.17.3-x86_64-darwin) sha256=1f211811eb5cfaa25998322cdd92ab104bfbd26d1c4c08471599c511f2c00bb5 - ffi (1.17.3-x86_64-linux-gnu) sha256=3746b01f677aae7b16dc1acb7cb3cc17b3e35bdae7676a3f568153fb0e2c887f - ffi (1.17.3-x86_64-linux-musl) sha256=086b221c3a68320b7564066f46fed23449a44f7a1935f1fe5a245bd89d9aea56 - forwardable-extended (2.6.0) sha256=1bec948c469bbddfadeb3bd90eb8c85f6e627a412a3e852acfd7eaedbac3ec97 - google-protobuf (4.33.2) sha256=748150d6c642fd655ef39efa23ecf2abe6d616020039a6d1c1764be1da530315 - google-protobuf (4.33.2-aarch64-linux-gnu) sha256=822b2dcb707e94e652cd994642c31035935fca021adfac6164772c511eb7acd4 - google-protobuf (4.33.2-aarch64-linux-musl) sha256=c4b64428183cfd1953ec8c37beec1036668c8ec0865cfb0b18df21181ca397ee - google-protobuf (4.33.2-arm64-darwin) sha256=6d0ac185fed18768e5f16338455b1e4b7c38a97fc46f352e709f7a3007b64e1d - google-protobuf (4.33.2-x86-linux-gnu) sha256=82612c425d7a0b0f8f299d8e595a367984fcd22a155b8ac5861eea0e76ca1a93 - google-protobuf (4.33.2-x86-linux-musl) sha256=cc7e322228967c230f3b9c47a76de4e59fb47001900f4cbdf9056d1de92199ab - google-protobuf (4.33.2-x86_64-darwin) sha256=87cde586234674562cf099e2b708a65e376e2d39b0f0f48281f4b4ea182b47f8 - google-protobuf (4.33.2-x86_64-linux-gnu) sha256=73cba041477afcac92ff383fcbdec195ea28d96b994876d1deaa944d18f91786 - google-protobuf (4.33.2-x86_64-linux-musl) sha256=97cdf4f772c5540f9274603b00f1474ed5e6e2238b1d8b1585e77f941a36bd2c - http_parser.rb (0.8.1) sha256=9ae8df145b39aa5398b2f90090d651c67bd8e2ebfe4507c966579f641e11097a - i18n (1.14.8) sha256=285778639134865c5e0f6269e0b818256017e8cde89993fdfcbfb64d088824a5 - jekyll (4.4.1) sha256=4c1144d857a5b2b80d45b8cf5138289579a9f8136aadfa6dd684b31fe2bc18c1 - jekyll-sass-converter (3.1.0) sha256=83925d84f1d134410c11d0c6643b0093e82e3a3cf127e90757a85294a3862443 - jekyll-watch (2.2.1) sha256=bc44ed43f5e0a552836245a54dbff3ea7421ecc2856707e8a1ee203a8387a7e1 - json (2.18.0) sha256=b10506aee4183f5cf49e0efc48073d7b75843ce3782c68dbeb763351c08fd505 - kramdown (2.5.1) sha256=87bbb6abd9d3cebe4fc1f33e367c392b4500e6f8fa19dd61c0972cf4afe7368c - kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729 - liquid (4.0.4) sha256=4fcfebb1a045e47918388dbb7a0925e7c3893e58d2bd6c3b3c73ec17a2d8fdb3 - listen (3.9.0) sha256=db9e4424e0e5834480385197c139cb6b0ae0ef28cc13310cfd1ca78377d59c67 - mercenary (0.4.0) sha256=b25a1e4a59adca88665e08e24acf0af30da5b5d859f7d8f38fba52c28f405138 - pathutil (0.16.2) sha256=e43b74365631cab4f6d5e4228f812927efc9cb2c71e62976edcb252ee948d589 - public_suffix (7.0.2) sha256=9114090c8e4e7135c1fd0e7acfea33afaab38101884320c65aaa0ffb8e26a857 - rake (13.3.1) sha256=8c9e89d09f66a26a01264e7e3480ec0607f0c497a861ef16063604b1b08eb19c - rb-fsevent (0.11.2) sha256=43900b972e7301d6570f64b850a5aa67833ee7d87b458ee92805d56b7318aefe - rb-inotify (0.11.1) sha256=a0a700441239b0ff18eb65e3866236cd78613d6b9f78fea1f9ac47a85e47be6e - rexml (3.4.4) sha256=19e0a2c3425dfbf2d4fc1189747bdb2f849b6c5e74180401b15734bc97b5d142 - rouge (4.7.0) sha256=dba5896715c0325c362e895460a6d350803dbf6427454f49a47500f3193ea739 - safe_yaml (1.0.5) sha256=a6ac2d64b7eb027bdeeca1851fe7e7af0d668e133e8a88066a0c6f7087d9f848 - sass-embedded (1.97.1) sha256=112ee8895854e7a8ea985937f7458f649fed8df255ed61e189f8a4b185e768d9 - sass-embedded (1.97.1-aarch64-linux-android) sha256=f1801c8f5ac05ff0161fb9792259069239c2d4e497d2eca51a21c9ee2fa5e648 - sass-embedded (1.97.1-aarch64-linux-gnu) sha256=427e7d90e69ac578a2f2f4460d4ad663ce27abd379ce79d17d8426e05079c8c5 - sass-embedded (1.97.1-aarch64-linux-musl) sha256=11728a50789f6872b548d888fefb7ab0141e277f28038520bf698057acc41ea6 - sass-embedded (1.97.1-arm-linux-androideabi) sha256=a1cbe71d760f91ad699b98df737efadd38e15b886d6f29d309d69665f83fcf5e - sass-embedded (1.97.1-arm-linux-gnueabihf) sha256=5484d596693d2018f20a9c46b6d1a234d97308fdd2169f8c6b1d8a9bd0f121dc - sass-embedded (1.97.1-arm-linux-musleabihf) sha256=b99fa71e32e1f7be57cf801ce08f4c1ffb2d1151d31f1134a1c334364c1c3274 - sass-embedded (1.97.1-arm64-darwin) sha256=9da08e5cc569ef62235fc515a87c75a47b0de40d8416c563ba1abfbe60e606d9 - sass-embedded (1.97.1-riscv64-linux-android) sha256=f5f4abc14a6ee0514fdc27b0926ad2b5dc2e363ab91b0d4887f04e3d83be35b0 - sass-embedded (1.97.1-riscv64-linux-gnu) sha256=baaa87895042b3b656c689fc74a7a2c11e64e19006f5d283cad1cd265857fcea - sass-embedded (1.97.1-riscv64-linux-musl) sha256=a882358c8f8249ac7f336b4f214abe73aa45edb0a2ff4001ff13dbb4b5d0b5e7 - sass-embedded (1.97.1-x86_64-darwin) sha256=f2b65c45bce72bc893511692aa4e4f309cfbe23c035ec688190a0c758c8e77a6 - sass-embedded (1.97.1-x86_64-linux-android) sha256=d3283323c0a5e2a46d7891748f09ad5446fe840ae69a305379e9a99c4c079cff - sass-embedded (1.97.1-x86_64-linux-gnu) sha256=9a294bb0acb1a539ed19f0e511098a9740b4aab4389e169585e8da1337fbd8b4 - sass-embedded (1.97.1-x86_64-linux-musl) sha256=c383026b7a70d52b0ef4be73c45cc1399fc65f95e851b0fc9265c8d89f151556 - terminal-table (3.0.2) sha256=f951b6af5f3e00203fb290a669e0a85c5dd5b051b3b023392ccfd67ba5abae91 - unicode-display_width (2.6.0) sha256=12279874bba6d5e4d2728cef814b19197dbb10d7a7837a869bab65da943b7f5a - webrick (1.9.2) sha256=beb4a15fc474defed24a3bda4ffd88a490d517c9e4e6118c3edce59e45864131 - -BUNDLED WITH - 4.0.3 diff --git a/README.md b/README.md index 006bc810..c3525ad3 100644 --- a/README.md +++ b/README.md @@ -18,19 +18,6 @@ Examples where conferences were **not** a good fit are [FTC's PrivacyCon](https: [Real World Crypto (RWC)](https://rwc.iacr.org/2026/) (see [sec-deadlines/#475](https://github.com/sec-deadlines/sec-deadlines.github.io/issues/475)). Once PrivacyCon or RWC begin publishing proceedings, they'd become fit for inclusion. -## Local Development Setup - -This project is built using Jekyll, a static site generator written in Ruby. Jekyll processes all the project's files (including HTML, CSS, JavaScript, and data files) to generate the final static website. Therefore, even if your changes are not directly in Ruby code, a Ruby development environment is needed to build and preview the site locally. - -The `Gemfile` and `Gemfile.lock` files are used to manage Jekyll's dependencies (RubyGems), ensuring that all contributors use the same versions of gems for local development, which helps in preventing dependency-related issues. - -To set up your local development environment: - -1. Install Ruby and Bundler. -2. Navigate to the project root directory. -3. Run `bundle install` to install all necessary gems. -4. Use `bundle exec jekyll serve` to run the Jekyll server locally. - ## Adding/updating a conference * Read the data format description below. **Note that the timezone format sign is inverted** (e.g., UTC+7 is written as `Etc/GMT-7`). It's [not a bug][0]. I hate this format too. I'd be happy to move to a different timezone JavaScript library that uses a friendlier format, but I don't have time for that. From 1f09a901efd370d8d57b09621d81684ef67f9830 Mon Sep 17 00:00:00 2001 From: joyboy Date: Tue, 6 Jan 2026 01:46:57 +0100 Subject: [PATCH 5/8] docs: Add maintainer guidelines for Jekyll and GitHub Pages --- README.md | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/README.md b/README.md index c3525ad3..b8b608d6 100644 --- a/README.md +++ b/README.md @@ -18,6 +18,20 @@ Examples where conferences were **not** a good fit are [FTC's PrivacyCon](https: [Real World Crypto (RWC)](https://rwc.iacr.org/2026/) (see [sec-deadlines/#475](https://github.com/sec-deadlines/sec-deadlines.github.io/issues/475)). Once PrivacyCon or RWC begin publishing proceedings, they'd become fit for inclusion. +## For Maintainers: Project Structure and Deployment + +This website is built as a [Jekyll](https://jekyllrb.com/) static site. Jekyll is a static site generator written in Ruby, which processes the various project files (like `_config.yml`, files in `_layouts`, `_includes`, `_data`, and all other content) to produce the final static HTML, CSS, and JavaScript files that are served to users. + +**Deployment:** The site is hosted on [GitHub Pages](https://pages.github.com/). When changes are pushed to the `master` branch of this repository, GitHub Pages automatically detects the Jekyll setup and builds the site. The generated static files are then served from `https://sec-deadlines.github.io/`. + +**Local Development for Content Contributors:** For most content updates, such as modifying `index.html`, `_data/conferences.yml`, CSS, or JavaScript files, a local Ruby/Jekyll development environment is *not* strictly required. You can make your changes, commit them, and push directly to the `master` branch. GitHub Pages will then handle the build and deployment. + +**Local Development for Jekyll Developers:** If you need to make changes to the Jekyll templates (e.g., files in `_layouts` or `_includes`), `_config.yml`, or debug Jekyll-specific features, you will need to set up a local Jekyll development environment. This typically involves: +1. Installing Ruby and Bundler. +2. Navigating to the project root. +3. Running `bundle install` to install Jekyll and its dependencies. +4. Using `bundle exec jekyll serve` to build and serve the site locally. + ## Adding/updating a conference * Read the data format description below. **Note that the timezone format sign is inverted** (e.g., UTC+7 is written as `Etc/GMT-7`). It's [not a bug][0]. I hate this format too. I'd be happy to move to a different timezone JavaScript library that uses a friendlier format, but I don't have time for that. From 923be9517ce77741daa71b703736ce79121bfab4 Mon Sep 17 00:00:00 2001 From: joyboy Date: Tue, 6 Jan 2026 01:50:49 +0100 Subject: [PATCH 6/8] docs: Remove maintainer guidelines section from README --- README.md | 14 -------------- 1 file changed, 14 deletions(-) diff --git a/README.md b/README.md index b8b608d6..c3525ad3 100644 --- a/README.md +++ b/README.md @@ -18,20 +18,6 @@ Examples where conferences were **not** a good fit are [FTC's PrivacyCon](https: [Real World Crypto (RWC)](https://rwc.iacr.org/2026/) (see [sec-deadlines/#475](https://github.com/sec-deadlines/sec-deadlines.github.io/issues/475)). Once PrivacyCon or RWC begin publishing proceedings, they'd become fit for inclusion. -## For Maintainers: Project Structure and Deployment - -This website is built as a [Jekyll](https://jekyllrb.com/) static site. Jekyll is a static site generator written in Ruby, which processes the various project files (like `_config.yml`, files in `_layouts`, `_includes`, `_data`, and all other content) to produce the final static HTML, CSS, and JavaScript files that are served to users. - -**Deployment:** The site is hosted on [GitHub Pages](https://pages.github.com/). When changes are pushed to the `master` branch of this repository, GitHub Pages automatically detects the Jekyll setup and builds the site. The generated static files are then served from `https://sec-deadlines.github.io/`. - -**Local Development for Content Contributors:** For most content updates, such as modifying `index.html`, `_data/conferences.yml`, CSS, or JavaScript files, a local Ruby/Jekyll development environment is *not* strictly required. You can make your changes, commit them, and push directly to the `master` branch. GitHub Pages will then handle the build and deployment. - -**Local Development for Jekyll Developers:** If you need to make changes to the Jekyll templates (e.g., files in `_layouts` or `_includes`), `_config.yml`, or debug Jekyll-specific features, you will need to set up a local Jekyll development environment. This typically involves: -1. Installing Ruby and Bundler. -2. Navigating to the project root. -3. Running `bundle install` to install Jekyll and its dependencies. -4. Using `bundle exec jekyll serve` to build and serve the site locally. - ## Adding/updating a conference * Read the data format description below. **Note that the timezone format sign is inverted** (e.g., UTC+7 is written as `Etc/GMT-7`). It's [not a bug][0]. I hate this format too. I'd be happy to move to a different timezone JavaScript library that uses a friendlier format, but I don't have time for that. From a5cc340a7c7921c640632a74be6e58d76c3f4d0e Mon Sep 17 00:00:00 2001 From: joyboy Date: Tue, 6 Jan 2026 01:51:54 +0100 Subject: [PATCH 7/8] docs: Add description for the new search feature in README --- README.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/README.md b/README.md index c3525ad3..f5c364ce 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,9 @@ # Security and Privacy deadlines countdown +## Search Functionality + +A new search feature has been implemented, allowing users to quickly find conferences. This feature leverages the `fuse.js` library for fuzzy-matching, enabling searches by conference name, description, and other relevant details. To ensure the integrity and security of the client-side script, Subresource Integrity (SRI) attributes have been added to the `fuse.js` CDN link. + Based on [ai-deadlines](https://aideadlin.es) by @abshkdz ## Is my entry in scope? From 6d446f8f3dfc7a244d8b949c39f371dbe28936a7 Mon Sep 17 00:00:00 2001 From: joyboy Date: Tue, 6 Jan 2026 01:58:16 +0100 Subject: [PATCH 8/8] docs: Re-commit README.md with correct formatting and search feature description --- README.md | 64 +++++++++++++++++++++++++++---------------------------- 1 file changed, 32 insertions(+), 32 deletions(-) diff --git a/README.md b/README.md index f5c364ce..ff83f8b0 100644 --- a/README.md +++ b/README.md @@ -1,20 +1,17 @@ # Security and Privacy deadlines countdown -## Search Functionality - -A new search feature has been implemented, allowing users to quickly find conferences. This feature leverages the `fuse.js` library for fuzzy-matching, enabling searches by conference name, description, and other relevant details. To ensure the integrity and security of the client-side script, Subresource Integrity (SRI) attributes have been added to the `fuse.js` CDN link. - Based on [ai-deadlines](https://aideadlin.es) by @abshkdz ## Is my entry in scope? -This page is meant to host academic conference or workshop deadlines. +This page is meant to host academic conference or workshop deadlines. To check if an entry is a good fit for this page, in general, I would check for the following: -* Is there a "Call For Papers"? Is there a link for submissions? Are there formatting guidelines (page limits, style guide) etc? -* Is security, privacy, or cryptography mentioned in the list of topics? -* Is there a review process? Does the website name a general chair, program chair, or program committee? -* If accepted, will the paper be published in a proceedings? + +- Is there a "Call For Papers"? Is there a link for submissions? Are there formatting guidelines (page limits, style guide) etc? +- Is security, privacy, or cryptography mentioned in the list of topics? +- Is there a review process? Does the website name a general chair, program chair, or program committee? +- If accepted, will the paper be published in a proceedings? If "Yes" to all of the above, then the conference or workshop is likely a good fit. Examples where conferences were **not** a good fit are [FTC's PrivacyCon](https://www.ftc.gov/news-events/events/2024/03/privacycon-2024) @@ -24,10 +21,10 @@ Once PrivacyCon or RWC begin publishing proceedings, they'd become fit for inclu ## Adding/updating a conference -* Read the data format description below. **Note that the timezone format sign is inverted** (e.g., UTC+7 is written as `Etc/GMT-7`). It's [not a bug][0]. I hate this format too. I'd be happy to move to a different timezone JavaScript library that uses a friendlier format, but I don't have time for that. -* Update `_data/conferences.yml`. You can do that on GitHub or locally after forking the repo. -* Please check if an entry for a prior year's offering exists; if so, please update the prior entry, rather than adding a new one. -* Send a pull request +- Read the data format description below. **Note that the timezone format sign is inverted** (e.g., UTC+7 is written as `Etc/GMT-7`). It's [not a bug][0]. I hate this format too. I'd be happy to move to a different timezone JavaScript library that uses a friendlier format, but I don't have time for that. +- Update `_data/conferences.yml`. You can do that on GitHub or locally after forking the repo. +- Please check if an entry for a prior year's offering exists; if so, please update the prior entry, rather than adding a new one. +- Send a pull request ### Conference entry record @@ -39,7 +36,7 @@ Example record: year: 2018 link: http://www.ieee-security.org/TC/EuroSP2018/ dblp: https://dblp.org/db/conf/eurosp/index.html - deadline: ["2017-08-15 23:59"] # must be a list + deadline: ["2017-08-15 23:59"] # must be a list date: April 24-26 place: London, UK tags: [SEC, PRIV] @@ -48,7 +45,7 @@ Example record: Descriptions of the fields: | Field name | Description | -|---------------|-----------------------------------------------------------------------------------------| +| ------------- | --------------------------------------------------------------------------------------- | | `name`\* | Short conference name, without year | | `year`\* | Year the conference is happening | | `description` | Description, or long name | @@ -63,41 +60,41 @@ Descriptions of the fields: Fields marked with asterisk (\*) are required. - ### Deadline format -The *deadline* field can contain: +The _deadline_ field can contain: 1. The simplest option: a date and time in ISO format. Example: `["2017-08-19 23:59"]` (Note that you need to wrap even a single deadline in a list). 2. If a deadline is rolling, you can use a template date, just substitute the year with `%y` and the year before the conference with `%Y`. Example: `["%y-01-15 23:59"]` means there is a deadline on the 15th January in the same year as the conference. -2. A list of (1) or (2). Example of two rolling deadlines, with one in the end +3. A list of (1) or (2). Example of two rolling deadlines, with one in the end of October in the year prior to the conference year, and the second in the end of February in the same year as the conference: - ``` - - "%Y-10-31 23:59" - - "%y-02-28 23:59" - ``` + +``` +- "%Y-10-31 23:59" +- "%y-02-28 23:59" +``` On the page, all deadlines are displayed in viewer's local time (that's a feature). -*Note:* If the deadline hour is `{h}:00`, it will be automatically translated into `{h-1}:59:59` to avoid pain and confusion when it happens to be midnight in local time. +_Note:_ If the deadline hour is `{h}:00`, it will be automatically translated into `{h-1}:59:59` to avoid pain and confusion when it happens to be midnight in local time. ### Timezones The timezone is specified in [tz format][1]. Unlike abbreviations (e.g. EST), these are un-ambiguous. Here are tz codes for some common timezones: -| Common name | tz | -|-------------------------------|--------------------------------------------------------------------| -| UTC | `Etc/UTC` | -| America Pacific Time | `America/Los_Angeles` | -| Pacific Standard Time (UTC-8) | `Etc/GMT+8` (Yes, the sign is inverted for some weird reason) | -| America Eastern Time | `America/New_York` | -| Eastern Standard Time (UTC-5) | `Etc/GMT+5` | -| American Samoa Time (UTC-11) | `Pacific/Samoa` or `Etc/GMT+11`. This timezone does not use DST. | -| Aleutian Islands | `America/Adak` | +| Common name | tz | +| ----------------------------- | ---------------------------------------------------------------- | +| UTC | `Etc/UTC` | +| America Pacific Time | `America/Los_Angeles` | +| Pacific Standard Time (UTC-8) | `Etc/GMT+8` (Yes, the sign is inverted for some weird reason) | +| America Eastern Time | `America/New_York` | +| Eastern Standard Time (UTC-5) | `Etc/GMT+5` | +| American Samoa Time (UTC-11) | `Pacific/Samoa` or `Etc/GMT+11`. This timezone does not use DST. | +| Aleutian Islands | `America/Adak` | [0]: https://momentjs.com/timezone/docs/#/zone-object/offset/ [1]: https://en.wikipedia.org/wiki/List_of_tz_database_time_zones @@ -106,3 +103,6 @@ The timezone is specified in [tz format][1]. Unlike abbreviations (e.g. EST), th [4]: #deadline-format [5]: #timezones +### Search Functionality + +A new search feature has been implemented, allowing users to quickly find conferences. This feature leverages the `fuse.js` library for fuzzy-matching, enabling searches by conference name, description, and other relevant details. To ensure the integrity and security of the client-side script, Subresource Integrity (SRI) attributes have been added to the `fuse.js` CDN link.