Skip to content

Commit 8803bc7

Browse files
committed
Content for HACS 2026, plus some other changes
1 parent 8edba6f commit 8803bc7

21 files changed

Lines changed: 1451 additions & 50 deletions

Gemfile

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,7 @@
11
source 'https://rubygems.org'
22

3-
gem "jekyll", "~> 4.3.3" # installed by `gem jekyll`
4-
# gem "webrick" # required when using Ruby >= 3 and Jekyll <= 4.2.2
5-
6-
gem "just-the-docs", "0.8.1" # pinned to the current release
7-
# gem "just-the-docs" # always download the latest release
3+
gem "jekyll", "~> 4.4"
4+
gem "just-the-docs", "0.12.0"
85

96
group :jekyll_plugins do
107
gem 'jekyll-katex'

Gemfile.lock

Lines changed: 65 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -1,33 +1,56 @@
11
GEM
22
remote: https://rubygems.org/
33
specs:
4-
addressable (2.8.6)
5-
public_suffix (>= 2.0.2, < 6.0)
4+
addressable (2.8.9)
5+
public_suffix (>= 2.0.2, < 8.0)
6+
base64 (0.3.0)
7+
bigdecimal (4.0.1)
68
colorator (1.1.0)
7-
concurrent-ruby (1.2.3)
9+
concurrent-ruby (1.3.6)
10+
csv (3.3.5)
811
em-websocket (0.5.3)
912
eventmachine (>= 0.12.9)
1013
http_parser.rb (~> 0)
1114
eventmachine (1.2.7)
12-
execjs (2.9.1)
13-
ffi (1.16.3)
15+
execjs (2.10.0)
16+
ffi (1.17.3)
17+
ffi (1.17.3-arm64-darwin)
18+
ffi (1.17.3-x86-linux-gnu)
19+
ffi (1.17.3-x86-linux-musl)
20+
ffi (1.17.3-x86_64-darwin)
1421
forwardable-extended (2.6.0)
15-
google-protobuf (3.25.3-arm64-darwin)
16-
google-protobuf (3.25.3-x86_64-linux)
17-
http_parser.rb (0.8.0)
18-
i18n (1.14.4)
22+
google-protobuf (4.34.0)
23+
bigdecimal
24+
rake (~> 13.3)
25+
google-protobuf (4.34.0-arm64-darwin)
26+
bigdecimal
27+
rake (~> 13.3)
28+
google-protobuf (4.34.0-x86-linux-gnu)
29+
bigdecimal
30+
rake (~> 13.3)
31+
google-protobuf (4.34.0-x86-linux-musl)
32+
bigdecimal
33+
rake (~> 13.3)
34+
google-protobuf (4.34.0-x86_64-darwin)
35+
bigdecimal
36+
rake (~> 13.3)
37+
http_parser.rb (0.8.1)
38+
i18n (1.14.8)
1939
concurrent-ruby (~> 1.0)
20-
jekyll (4.3.3)
40+
jekyll (4.4.1)
2141
addressable (~> 2.4)
42+
base64 (~> 0.2)
2243
colorator (~> 1.0)
44+
csv (~> 3.0)
2345
em-websocket (~> 0.5)
2446
i18n (~> 1.0)
2547
jekyll-sass-converter (>= 2.0, < 4.0)
2648
jekyll-watch (~> 2.0)
49+
json (~> 2.6)
2750
kramdown (~> 2.3, >= 2.3.1)
2851
kramdown-parser-gfm (~> 1.0)
2952
liquid (~> 4.0)
30-
mercenary (>= 0.3.6, < 0.5)
53+
mercenary (~> 0.3, >= 0.3.6)
3154
pathutil (~> 0.9)
3255
rouge (>= 3.0, < 5.0)
3356
safe_yaml (~> 1.0)
@@ -38,52 +61,62 @@ GEM
3861
jekyll-katex (1.0.0)
3962
execjs (~> 2.7)
4063
jekyll (>= 3.6, < 5.0)
41-
jekyll-sass-converter (3.0.0)
42-
sass-embedded (~> 1.54)
64+
jekyll-sass-converter (3.1.0)
65+
sass-embedded (~> 1.75)
4366
jekyll-seo-tag (2.8.0)
4467
jekyll (>= 3.8, < 5.0)
4568
jekyll-watch (2.2.1)
4669
listen (~> 3.0)
47-
just-the-docs (0.8.1)
70+
json (2.18.1)
71+
just-the-docs (0.12.0)
4872
jekyll (>= 3.8.5)
4973
jekyll-include-cache
5074
jekyll-seo-tag (>= 2.0)
5175
rake (>= 12.3.1)
52-
kramdown (2.4.0)
53-
rexml
76+
kramdown (2.5.2)
77+
rexml (>= 3.4.4)
5478
kramdown-parser-gfm (1.1.0)
5579
kramdown (~> 2.0)
5680
liquid (4.0.4)
57-
listen (3.9.0)
81+
listen (3.10.0)
82+
logger
5883
rb-fsevent (~> 0.10, >= 0.10.3)
5984
rb-inotify (~> 0.9, >= 0.9.10)
85+
logger (1.7.0)
6086
mercenary (0.4.0)
6187
pathutil (0.16.2)
6288
forwardable-extended (~> 2.6)
63-
public_suffix (5.0.4)
64-
rake (13.1.0)
89+
public_suffix (6.0.2)
90+
rake (13.3.1)
6591
rb-fsevent (0.11.2)
66-
rb-inotify (0.10.1)
92+
rb-inotify (0.11.1)
6793
ffi (~> 1.0)
68-
rexml (3.2.6)
69-
rouge (4.2.0)
94+
rexml (3.4.4)
95+
rouge (4.7.0)
7096
safe_yaml (1.0.5)
71-
sass-embedded (1.69.5)
72-
google-protobuf (~> 3.23)
73-
rake (>= 13.0.0)
97+
sass-embedded (1.97.3)
98+
google-protobuf (~> 4.31)
99+
rake (>= 13)
100+
sass-embedded (1.97.3-arm64-darwin)
101+
google-protobuf (~> 4.31)
102+
sass-embedded (1.97.3-x86_64-darwin)
103+
google-protobuf (~> 4.31)
74104
terminal-table (3.0.2)
75105
unicode-display_width (>= 1.1.1, < 3)
76-
unicode-display_width (2.5.0)
77-
webrick (1.8.1)
106+
unicode-display_width (2.6.0)
107+
webrick (1.9.2)
78108

79109
PLATFORMS
80-
arm64-darwin-23
81-
x86_64-linux
110+
arm64-darwin
111+
ruby
112+
x86-linux-gnu
113+
x86-linux-musl
114+
x86_64-darwin
82115

83116
DEPENDENCIES
84-
jekyll (~> 4.3.3)
117+
jekyll (~> 4.4)
85118
jekyll-katex
86-
just-the-docs (= 0.8.1)
119+
just-the-docs (= 0.12.0)
87120

88121
BUNDLED WITH
89-
2.3.26
122+
2.5.18

_config.yml

Lines changed: 18 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,26 @@ title: ProofFrog
22
description: A tool for verifying game-hopping proofs
33
theme: just-the-docs
44

5-
url: https://just-the-docs.github.io
5+
url: https://prooffrog.github.io
66

77
aux_links:
8-
ProofFrog Hub: https://github.com/ProofFrog
8+
ProofFrog GitHub: https://github.com/ProofFrog
99

1010
plugins:
1111
- jekyll-katex
12+
13+
callouts:
14+
highlight:
15+
color: yellow
16+
important:
17+
title: Important
18+
color: blue
19+
new:
20+
title: New
21+
color: green
22+
note:
23+
title: Note
24+
color: purple
25+
warning:
26+
title: Warning
27+
color: red

_includes/head_custom.html

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1 +1,3 @@
11
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/katex@0.11.1/dist/katex.min.css" integrity="sha384-zB1R0rpPzHqg7Kpt0Aljp8JPLqbXI3bhnPWROx27a9N0Ll6ZP/+DiW/UqRcLbRjq" crossorigin="anonymous">
2+
<script src="https://cdn.jsdelivr.net/npm/prismjs@1.29.0/prism.min.js"></script>
3+
<script src="{{ '/assets/js/prism-prooffrog.js' | relative_url }}"></script>

_sass/custom/custom.scss

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,16 @@
1+
// Prism.js token colors (no theme CSS loaded — just-the-docs controls layout)
2+
.token.comment { color: #6a737d; font-style: italic; }
3+
.token.string { color: #032f62; }
4+
.token.keyword { color: #d73a49; }
5+
.token.class-name { color: #6f42c1; font-weight: bold; }
6+
.token.builtin { color: #005cc5; }
7+
.token.boolean,
8+
.token.constant { color: #005cc5; }
9+
.token.number { color: #005cc5; }
10+
.token.operator { color: #d73a49; }
11+
.token.punctuation { color: #24292e; }
12+
pre:has(> code[class*="language-"]) { background: #f6f8fa; padding: 1em; }
13+
114
.site-title::after {
215
background-image: url("../../prooffrog.png");
316
width: 46px;

assets/js/prism-prooffrog.js

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
// ── Prism.js language grammar for ProofFrog's FrogLang ──────────────────────
2+
// Defines Prism.languages.prooffrog for syntax highlighting FrogLang files
3+
// (.primitive, .scheme, .game, .proof).
4+
5+
(function (Prism) {
6+
Prism.languages.prooffrog = {
7+
// Line comments: // to end of line
8+
"comment": /\/\/.*/,
9+
10+
// Import path strings: single-quoted
11+
"string": /'[^']*'/,
12+
13+
// Numbers: binary (0b...) and decimal
14+
"number": /\b0b[01]+\b|\b\d+\b/,
15+
16+
// Built-in type names
17+
"builtin": /\b(?:Bool|Void|Int|BitString|Set|Map|Array)\b/,
18+
19+
// Boolean literals
20+
"boolean": /\b(?:true|false)\b/,
21+
22+
// None literal
23+
"constant": /\bNone\b/,
24+
25+
// Declaration keywords (top-level construct introducers)
26+
"class-name": /\b(?:Primitive|Scheme|Game|Reduction|Phase)\b/,
27+
28+
// Keywords
29+
"keyword": /\b(?:import|export|as|extends|compose|against|requires|if|else|for|return|in|to|union|subsets|induction|from|calls|Adversary|oracles|proof|let|assume|theorem|games)\b/,
30+
31+
// Operators (longest match first via alternation order)
32+
"operator": /<-|[=!<>]=|&&|\|\||[+\-*\/\\|!<>=]/,
33+
34+
// Punctuation
35+
"punctuation": /[{}[\]();:,.?]/,
36+
};
37+
38+
// Register for all FrogLang file extensions
39+
Prism.languages.primitive = Prism.languages.prooffrog;
40+
Prism.languages.scheme = Prism.languages.prooffrog;
41+
Prism.languages.game = Prism.languages.prooffrog;
42+
Prism.languages.proof = Prism.languages.prooffrog;
43+
})(Prism);

files/game.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,8 @@ Finally, each game has the option to specify an `Initialize` method which is ass
1414
`Initialize` also has the ability to return information to the adversary that they may use during the attack (for example, adversaries should be provided the public key when attacking public key encryption).
1515
An example of a game file defining CPA security for symmetric encryption schemes is provided below.
1616

17-
```
18-
import 'examples/Primitives/SymEnc.primitive';
17+
```prooffrog
18+
import 'Primitives/SymEnc.primitive';
1919
2020
Game Left(SymEnc E) {
2121
E.Key k;

files/primitive.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ A primitive file allows a user to describe the sets and functions that are assoc
1212
A primitive contains constant fields and method signatures.
1313
An example of a primitive for an abstract symmetric encryption scheme is shown below.
1414

15-
```
15+
```prooffrog
1616
Primitive SymEnc(Set MessageSpace, Set CiphertextSpace, Set KeySpace) {
1717
Set Message = MessageSpace;
1818
Set Ciphertext = CiphertextSpace;

files/proof.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,10 +16,10 @@ Each game in the sequence is checked to be either interchangeable with the next
1616
Indistinguishability only occurs if the author writes a reduction to utilize a previously specified indistinguishability assumption.
1717
An example proof file is shown below, which ProofFrog can verify to show that CPA$ security for a symmetric encryption scheme implies CPA security.
1818

19-
```
20-
import 'examples/Primitives/SymEnc.primitive';
21-
import 'examples/Games/SymEnc/CPA.game';
22-
import 'examples/Games/SymEnc/CPA$.game';
19+
```prooffrog
20+
import 'Primitives/SymEnc.primitive';
21+
import 'Games/SymEnc/CPA.game';
22+
import 'Games/SymEnc/CPA$.game';
2323
2424
Reduction R1(SymEnc E) compose CPA$(E) against CPA(E).Adversary {
2525
E.Ciphertext Eavesdrop(E.Message mL, E.Message mR) {

files/scheme.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,8 @@ Each scheme file provides one scheme which "extends" from a primitive.
1212
A scheme must define the same fields as the primitive it extends, and provide definitions for each primitive method signature.
1313
An example of a scheme for a symmetric encryption scheme composed from two other symmeteric encryption schemes is shown below.
1414

15-
```
16-
import 'examples/Primitives/SymEnc.primitive';
15+
```prooffrog
16+
import 'Primitives/SymEnc.primitive';
1717
1818
Scheme DoubleSymEnc(SymEnc S, SymEnc T) extends SymEnc {
1919
requires S.Ciphertext == T.Message;

0 commit comments

Comments
 (0)