@jpetit/toolkit 3.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.prettierignore +11 -0
- package/.prettierrc.json +9 -0
- package/.vscode/settings.json +26 -0
- package/README.md +22 -0
- package/assets/lua/fixCodeBlocks.lua +19 -0
- package/assets/lua/removeEnvs.lua +20 -0
- package/assets/lua/removeHtmlOnly.lua +11 -0
- package/assets/problems/graphics/japanese-flag.pbm/README.md +14 -0
- package/assets/problems/graphics/japanese-flag.pbm/award.png +0 -0
- package/assets/problems/graphics/japanese-flag.pbm/handler.yml +2 -0
- package/assets/problems/graphics/japanese-flag.pbm/problem.ca.tex +21 -0
- package/assets/problems/graphics/japanese-flag.pbm/problem.ca.yml +3 -0
- package/assets/problems/graphics/japanese-flag.pbm/sample-1.inp +1 -0
- package/assets/problems/graphics/japanese-flag.pbm/sample-2.inp +1 -0
- package/assets/problems/graphics/japanese-flag.pbm/solution.cc +25 -0
- package/assets/problems/graphics/japanese-flag.pbm/solution.py +11 -0
- package/assets/problems/graphics/tortuga.pbm/README.md +13 -0
- package/assets/problems/graphics/tortuga.pbm/award.png +0 -0
- package/assets/problems/graphics/tortuga.pbm/handler.yml +2 -0
- package/assets/problems/graphics/tortuga.pbm/problem.ca.tex +23 -0
- package/assets/problems/graphics/tortuga.pbm/problem.ca.yml +3 -0
- package/assets/problems/graphics/tortuga.pbm/sample.inp +0 -0
- package/assets/problems/graphics/tortuga.pbm/solution.py +11 -0
- package/assets/problems/standard/campanar-de-la-torrassa.pbm/README.md +15 -0
- package/assets/problems/standard/campanar-de-la-torrassa.pbm/award.html +1 -0
- package/assets/problems/standard/campanar-de-la-torrassa.pbm/award.png +0 -0
- package/assets/problems/standard/campanar-de-la-torrassa.pbm/campanar.eps +1113 -0
- package/assets/problems/standard/campanar-de-la-torrassa.pbm/campanar.png +0 -0
- package/assets/problems/standard/campanar-de-la-torrassa.pbm/generate.cc +10 -0
- package/assets/problems/standard/campanar-de-la-torrassa.pbm/handler.yml +2 -0
- package/assets/problems/standard/campanar-de-la-torrassa.pbm/problem.ca.tex +59 -0
- package/assets/problems/standard/campanar-de-la-torrassa.pbm/problem.ca.yml +3 -0
- package/assets/problems/standard/campanar-de-la-torrassa.pbm/problem.en.tex +52 -0
- package/assets/problems/standard/campanar-de-la-torrassa.pbm/problem.en.yml +4 -0
- package/assets/problems/standard/campanar-de-la-torrassa.pbm/sample.inp +7 -0
- package/assets/problems/standard/campanar-de-la-torrassa.pbm/slow.cc +29 -0
- package/assets/problems/standard/campanar-de-la-torrassa.pbm/solution.cc +48 -0
- package/assets/problems/standard/campanar-de-la-torrassa.pbm/test-1.inp +12 -0
- package/assets/problems/standard/campanar-de-la-torrassa.pbm/test-2.inp +100000 -0
- package/assets/problems/standard/campanar-de-la-torrassa.pbm/test-2.ops +1 -0
- package/assets/problems/standard/campanar-de-la-torrassa.pbm/test-b.inp +0 -0
- package/assets/problems/standard/maximum-of-2-integers.pbm/README.md +11 -0
- package/assets/problems/standard/maximum-of-2-integers.pbm/handler.yml +1 -0
- package/assets/problems/standard/maximum-of-2-integers.pbm/problem.ca.tex +17 -0
- package/assets/problems/standard/maximum-of-2-integers.pbm/problem.ca.yml +3 -0
- package/assets/problems/standard/maximum-of-2-integers.pbm/problem.en.tex +16 -0
- package/assets/problems/standard/maximum-of-2-integers.pbm/problem.en.yml +4 -0
- package/assets/problems/standard/maximum-of-2-integers.pbm/sample-1.inp +1 -0
- package/assets/problems/standard/maximum-of-2-integers.pbm/sample-2.inp +1 -0
- package/assets/problems/standard/maximum-of-2-integers.pbm/sample-3.inp +1 -0
- package/assets/problems/standard/maximum-of-2-integers.pbm/solution.c +18 -0
- package/assets/problems/standard/maximum-of-2-integers.pbm/solution.cc +13 -0
- package/assets/problems/standard/maximum-of-2-integers.pbm/solution.java +16 -0
- package/assets/problems/standard/maximum-of-2-integers.pbm/solution.py +5 -0
- package/assets/problems/standard/maximum-of-2-integers.pbm/test-1.inp +1 -0
- package/assets/problems/standard/maximum-of-2-integers.pbm/test-2.inp +1 -0
- package/assets/problems/standard/maximum-of-2-integers.pbm/test-3.inp +1 -0
- package/assets/problems/standard/maximum-of-2-integers.pbm/test-4.inp +1 -0
- package/assets/problems/standard/maximum-of-2-integers.pbm/test-5.inp +1 -0
- package/assets/problems/standard/treasures-in-a-map.pbm/README.md +12 -0
- package/assets/problems/standard/treasures-in-a-map.pbm/atzar.cc +85 -0
- package/assets/problems/standard/treasures-in-a-map.pbm/award.png +0 -0
- package/assets/problems/standard/treasures-in-a-map.pbm/generate-1.cc +26 -0
- package/assets/problems/standard/treasures-in-a-map.pbm/generate-2.cc +26 -0
- package/assets/problems/standard/treasures-in-a-map.pbm/generate-3.cc +26 -0
- package/assets/problems/standard/treasures-in-a-map.pbm/generate-4.cc +26 -0
- package/assets/problems/standard/treasures-in-a-map.pbm/handler.yml +1 -0
- package/assets/problems/standard/treasures-in-a-map.pbm/problem.ca.tex +40 -0
- package/assets/problems/standard/treasures-in-a-map.pbm/problem.ca.yml +3 -0
- package/assets/problems/standard/treasures-in-a-map.pbm/problem.en.tex +40 -0
- package/assets/problems/standard/treasures-in-a-map.pbm/problem.en.yml +4 -0
- package/assets/problems/standard/treasures-in-a-map.pbm/random-1.inp +24 -0
- package/assets/problems/standard/treasures-in-a-map.pbm/random-2.inp +27 -0
- package/assets/problems/standard/treasures-in-a-map.pbm/random-3.inp +38 -0
- package/assets/problems/standard/treasures-in-a-map.pbm/random-4.inp +50 -0
- package/assets/problems/standard/treasures-in-a-map.pbm/sample-1.inp +9 -0
- package/assets/problems/standard/treasures-in-a-map.pbm/sample-2.inp +6 -0
- package/assets/problems/standard/treasures-in-a-map.pbm/sample-3.inp +7 -0
- package/assets/problems/standard/treasures-in-a-map.pbm/solution.cc +38 -0
- package/assets/problems/standard/treasures-in-a-map.pbm/test-1.inp +5 -0
- package/assets/problems/standard/treasures-in-a-map.pbm/test-2.inp +6 -0
- package/assets/problems/standard/treasures-in-a-map.pbm/test-3.inp +6 -0
- package/assets/problems/standard/treasures-in-a-map.pbm/test-4.inp +9 -0
- package/assets/problems/standard/treasures-in-a-map.pbm/test-5.inp +10 -0
- package/assets/problems/standard/treasures-in-a-map.pbm/test-6.inp +9 -0
- package/assets/problems/standard/treasures-in-a-map.pbm/test-7.inp +12 -0
- package/assets/problems/standard/treasures-in-a-map.pbm/test-8.inp +3 -0
- package/assets/problems/standard/treasures-in-a-map.pbm/test-9.inp +37 -0
- package/assets/problems/standard/treasures-in-a-map.pbm/test-91.inp +52 -0
- package/assets/problems/standard/treasures-in-a-map.pbm/test-92.inp +25 -0
- package/assets/problems/standard/treasures-in-a-map.pbm/test-93.inp +3 -0
- package/assets/sty/judgeit.ca.sty +54 -0
- package/assets/sty/judgeit.de.sty +61 -0
- package/assets/sty/judgeit.en.sty +60 -0
- package/assets/sty/judgeit.es.sty +54 -0
- package/assets/sty/judgeit.fr.sty +59 -0
- package/assets/sty/judgeit.sty +307 -0
- package/assets/sty/picins.sty +579 -0
- package/assets.zip +0 -0
- package/eslint.config.mjs +31 -0
- package/lib/ai.ts +138 -0
- package/lib/assets.ts +31 -0
- package/lib/cleaner.ts +58 -0
- package/lib/compilers/_frompython.ts +388 -0
- package/lib/compilers/base.ts +97 -0
- package/lib/compilers/gcc.ts +47 -0
- package/lib/compilers/gxx.ts +47 -0
- package/lib/compilers/index.ts +61 -0
- package/lib/compilers/python3.ts +67 -0
- package/lib/data.ts +19 -0
- package/lib/doctor.ts +104 -0
- package/lib/generate.ts +333 -0
- package/lib/maker.ts +535 -0
- package/lib/settings.ts +42 -0
- package/lib/tui.ts +69 -0
- package/lib/utils.ts +83 -0
- package/package.json +56 -0
- package/problems/graphic.pbm/README.md +14 -0
- package/problems/graphic.pbm/award.png +0 -0
- package/problems/graphic.pbm/handler.yml +2 -0
- package/problems/graphic.pbm/problem.ca.html +13 -0
- package/problems/graphic.pbm/problem.ca.md +20 -0
- package/problems/graphic.pbm/problem.ca.tex +21 -0
- package/problems/graphic.pbm/problem.ca.txt +20 -0
- package/problems/graphic.pbm/problem.ca.yml +3 -0
- package/problems/graphic.pbm/sample-1.inp +1 -0
- package/problems/graphic.pbm/sample-2.inp +1 -0
- package/problems/graphic.pbm/solution.py +11 -0
- package/problems/maxim2.pbm/Main.java +13 -0
- package/problems/maxim2.pbm/distillation.yml +7 -0
- package/problems/maxim2.pbm/distilled-01.inp +1 -0
- package/problems/maxim2.pbm/distilled-02.inp +1 -0
- package/problems/maxim2.pbm/distilled-03.inp +1 -0
- package/problems/maxim2.pbm/distiller.yml +2 -0
- package/problems/maxim2.pbm/generate-inputs.py +9 -0
- package/problems/maxim2.pbm/handler.yml +2 -0
- package/problems/maxim2.pbm/ma-1.inp +1 -0
- package/problems/maxim2.pbm/ma-2.inp +1 -0
- package/problems/maxim2.pbm/ma-3.inp +1 -0
- package/problems/maxim2.pbm/ma-4.inp +1 -0
- package/problems/maxim2.pbm/ma-5.inp +1 -0
- package/problems/maxim2.pbm/per-doubles.inp +1 -0
- package/problems/maxim2.pbm/problem.ca.html +11 -0
- package/problems/maxim2.pbm/problem.ca.md +19 -0
- package/problems/maxim2.pbm/problem.ca.tex +17 -0
- package/problems/maxim2.pbm/problem.ca.txt +19 -0
- package/problems/maxim2.pbm/problem.ca.yml +3 -0
- package/problems/maxim2.pbm/problem.en.html +11 -0
- package/problems/maxim2.pbm/problem.en.md +19 -0
- package/problems/maxim2.pbm/problem.en.tex +16 -0
- package/problems/maxim2.pbm/problem.en.txt +19 -0
- package/problems/maxim2.pbm/problem.en.yml +4 -0
- package/problems/maxim2.pbm/sample-1.inp +1 -0
- package/problems/maxim2.pbm/sample-2.inp +1 -0
- package/problems/maxim2.pbm/sample-3.inp +1 -0
- package/problems/maxim2.pbm/solution.c +12 -0
- package/problems/maxim2.pbm/solution.cc +13 -0
- package/problems/maxim2.pbm/solution.java +13 -0
- package/problems/maxim2.pbm/solution.pas +9 -0
- package/problems/maxim2.pbm/solution.py +5 -0
- package/problems/maxim2.pbm/tags.yml +2 -0
- package/problems/maxim2.pbm/test_-1_-1.inp +1 -0
- package/problems/maxim2.pbm/test_-1_-2.inp +1 -0
- package/problems/maxim2.pbm/test_-1_0.inp +1 -0
- package/problems/maxim2.pbm/test_-1_1.inp +1 -0
- package/problems/maxim2.pbm/test_-2_-1.inp +1 -0
- package/problems/maxim2.pbm/test_-2_-2.inp +1 -0
- package/problems/maxim2.pbm/test_-2_0.inp +1 -0
- package/problems/maxim2.pbm/test_-2_1.inp +1 -0
- package/problems/maxim2.pbm/test_0_-1.inp +1 -0
- package/problems/maxim2.pbm/test_0_-2.inp +1 -0
- package/problems/maxim2.pbm/test_0_0.inp +1 -0
- package/problems/maxim2.pbm/test_0_1.inp +1 -0
- package/problems/maxim2.pbm/test_1_-1.inp +1 -0
- package/problems/maxim2.pbm/test_1_-2.inp +1 -0
- package/problems/maxim2.pbm/test_1_0.inp +1 -0
- package/problems/maxim2.pbm/test_1_1.inp +1 -0
- package/test.ts +3 -0
- package/toolkit/ai.ts +30 -0
- package/toolkit/clean.ts +19 -0
- package/toolkit/compilers.ts +29 -0
- package/toolkit/create-jutge-ai.ts +101 -0
- package/toolkit/create-template.ts +51 -0
- package/toolkit/create-wizard.ts +4 -0
- package/toolkit/create.ts +75 -0
- package/toolkit/doctor.ts +17 -0
- package/toolkit/index.ts +28 -0
- package/toolkit/init.ts +66 -0
- package/toolkit/make.ts +60 -0
- package/toolkit/verify.ts +19 -0
- package/tsconfig.json +38 -0
- package/types/zip.d.ts +4 -0
package/.prettierignore
ADDED
package/.prettierrc.json
ADDED
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
{
|
|
2
|
+
"editor.defaultFormatter": "esbenp.prettier-vscode",
|
|
3
|
+
"[javascript]": {
|
|
4
|
+
"editor.defaultFormatter": "esbenp.prettier-vscode"
|
|
5
|
+
},
|
|
6
|
+
"editor.tabSize": 4,
|
|
7
|
+
"editor.insertSpaces": true,
|
|
8
|
+
"editor.indentSize": "tabSize",
|
|
9
|
+
"editor.detectIndentation": false,
|
|
10
|
+
"files.exclude": {
|
|
11
|
+
"**/node_modules": true,
|
|
12
|
+
"**/.next": true,
|
|
13
|
+
"**/data/quizzes": true,
|
|
14
|
+
"**/prisma/generated": true
|
|
15
|
+
},
|
|
16
|
+
"explorer.sortOrder": "filesFirst",
|
|
17
|
+
"[c]": {
|
|
18
|
+
"editor.defaultFormatter": "ms-vscode.cpptools"
|
|
19
|
+
},
|
|
20
|
+
"[java]": {
|
|
21
|
+
"editor.defaultFormatter": "redhat.java"
|
|
22
|
+
},
|
|
23
|
+
"[cpp]": {
|
|
24
|
+
"editor.defaultFormatter": "ms-vscode.cpptools"
|
|
25
|
+
}
|
|
26
|
+
}
|
package/README.md
ADDED
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
# new-jutge-toolkit
|
|
2
|
+
|
|
3
|
+
To install dependencies:
|
|
4
|
+
|
|
5
|
+
```bash
|
|
6
|
+
bun install
|
|
7
|
+
```
|
|
8
|
+
|
|
9
|
+
To run and get help:
|
|
10
|
+
|
|
11
|
+
```bash
|
|
12
|
+
bun run toolkit
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
Other development commands:
|
|
16
|
+
|
|
17
|
+
```bash
|
|
18
|
+
bun run build # build an executable
|
|
19
|
+
bun run lint # run linter
|
|
20
|
+
bun run format # format code
|
|
21
|
+
bun run depcheck # analyze dependencies
|
|
22
|
+
```
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
-- This function runs on every CodeBlock element.
|
|
2
|
+
function CodeBlock(el)
|
|
3
|
+
-- Check if a 'language' attribute exists (from the lstlisting options).
|
|
4
|
+
if el.attributes.language then
|
|
5
|
+
-- Get the language name from the attribute.
|
|
6
|
+
-- We convert it to lowercase, as is standard for Markdown code fences.
|
|
7
|
+
local lang = el.attributes.language:lower()
|
|
8
|
+
|
|
9
|
+
-- A Markdown code block's language is determined by its first class.
|
|
10
|
+
-- We replace all existing classes with a new list containing only our language.
|
|
11
|
+
el.classes = pandoc.List{lang}
|
|
12
|
+
|
|
13
|
+
-- We clear all other attributes (like morekeywords) to keep the output clean.
|
|
14
|
+
el.attributes = {}
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
-- Return the modified (or original) element.
|
|
18
|
+
return el
|
|
19
|
+
end
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
-- A set of environment names to be removed completely.
|
|
2
|
+
-- Add the names of your custom environments to this list.
|
|
3
|
+
local environments_to_remove = {
|
|
4
|
+
latexonly = true,
|
|
5
|
+
ignora = true
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
-- This function is called for every 'Div' element in the document.
|
|
9
|
+
-- Pandoc parses LaTeX environments like \begin{solution}...\end{solution}
|
|
10
|
+
-- into Div elements with the environment name as a class.
|
|
11
|
+
function Div(div)
|
|
12
|
+
-- Check if the Div has a class and if that class is in our removal list.
|
|
13
|
+
if div.classes[1] and environments_to_remove[div.classes[1]] then
|
|
14
|
+
-- If it is, return an empty list to remove it from the output.
|
|
15
|
+
return {}
|
|
16
|
+
else
|
|
17
|
+
-- Otherwise, return nil to leave it unchanged.
|
|
18
|
+
return nil
|
|
19
|
+
end
|
|
20
|
+
end
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
-- This function is called for every 'Div' element in the document.
|
|
2
|
+
function Div(el)
|
|
3
|
+
-- Check if the Div has the class 'htmlonly'.
|
|
4
|
+
if el.classes:includes('htmlonly') then
|
|
5
|
+
-- If it does, return the content of the block,
|
|
6
|
+
-- without its wrapper
|
|
7
|
+
return el.content
|
|
8
|
+
end
|
|
9
|
+
-- For all other Divs, return them unchanged.
|
|
10
|
+
return el
|
|
11
|
+
end
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
# Japanese flag
|
|
2
|
+
|
|
3
|
+
## Features
|
|
4
|
+
|
|
5
|
+
- Graphic problem: write an image
|
|
6
|
+
- Solutions in multiple programming languages: Python3 and C++
|
|
7
|
+
- Use of the `turtle` module
|
|
8
|
+
- Use of the `cairo` library
|
|
9
|
+
- Award in `.png`
|
|
10
|
+
- No input to be read
|
|
11
|
+
|
|
12
|
+
## Abstract
|
|
13
|
+
|
|
14
|
+
Draw a Japanese flag.
|
|
Binary file
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
|
|
2
|
+
\Problem{Bandera del Japó}
|
|
3
|
+
|
|
4
|
+
\Statement
|
|
5
|
+
|
|
6
|
+
Feu un programa que dibuixi la bandera del Japó.
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
\Input
|
|
10
|
+
|
|
11
|
+
Aquest problema no té entrada.
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
\Output
|
|
15
|
+
|
|
16
|
+
Cal generar una imatge $(600, 400)$ de fons \q{White},
|
|
17
|
+
i amb un cercle centrat de diàmetre 300 i color \q{Crimson}.
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
\Sample
|
|
21
|
+
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
Aquest problema no te entrada.
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
De debo, aqui l'entrada no importa.
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
#include <cairommconfig.h>
|
|
2
|
+
#include <cairomm/context.h>
|
|
3
|
+
#include <cairomm/surface.h>
|
|
4
|
+
|
|
5
|
+
using namespace Cairo;
|
|
6
|
+
using namespace std;
|
|
7
|
+
|
|
8
|
+
int main() {
|
|
9
|
+
RefPtr<ImageSurface> surface = ImageSurface::create(FORMAT_ARGB32, 600, 400);
|
|
10
|
+
|
|
11
|
+
RefPtr<Context> cr = Context::create(surface);
|
|
12
|
+
|
|
13
|
+
cr->save();
|
|
14
|
+
cr->set_source_rgb(1, 1, 1);
|
|
15
|
+
cr->paint();
|
|
16
|
+
cr->restore();
|
|
17
|
+
|
|
18
|
+
cr->save();
|
|
19
|
+
cr->set_source_rgb(220.0/255, 20.0/255, 60.0/255);
|
|
20
|
+
cr->arc(300, 200, 150, 0, 2 * M_PI);
|
|
21
|
+
cr->fill();
|
|
22
|
+
cr->restore();
|
|
23
|
+
|
|
24
|
+
surface->write_to_png("output.png");
|
|
25
|
+
}
|
|
Binary file
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
|
|
2
|
+
\Problem{Tortuga --- Quadrat}
|
|
3
|
+
|
|
4
|
+
\Statement
|
|
5
|
+
|
|
6
|
+
Feu un programa que dibuixi un quadrat de mida 100 amb la cantonada inferior esquerra
|
|
7
|
+
situada a l'orígen de la tortuga.
|
|
8
|
+
|
|
9
|
+
\medskip
|
|
10
|
+
|
|
11
|
+
Només podeu utilitzar les comandes
|
|
12
|
+
\texttt{forward},
|
|
13
|
+
\texttt{right},
|
|
14
|
+
\texttt{left},
|
|
15
|
+
\texttt{done} del mòdul \texttt{turtle}.
|
|
16
|
+
Recordeu acabar el dibuix amb \texttt{done()}.
|
|
17
|
+
|
|
18
|
+
\medskip
|
|
19
|
+
|
|
20
|
+
En aquest problema no hi ha entrada.
|
|
21
|
+
|
|
22
|
+
\Sample
|
|
23
|
+
|
|
File without changes
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
# The bell tower of La Torrassa
|
|
2
|
+
|
|
3
|
+
## Features
|
|
4
|
+
|
|
5
|
+
- Standard problem: read input and write output
|
|
6
|
+
- Statements in multiple languages
|
|
7
|
+
- Graphics in the statement
|
|
8
|
+
- Awards in .`png` and `.html`
|
|
9
|
+
- `.ops` file to increase time limit
|
|
10
|
+
- Simple simulation too slow (`slow.cc` solution included)
|
|
11
|
+
- `loosy` checker that converts PEs to ACs
|
|
12
|
+
|
|
13
|
+
## Abstract
|
|
14
|
+
|
|
15
|
+
Count the number of bell rings during a certain lapse of time.
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<p>Problem solved, congratulations!</p>
|
|
Binary file
|