Skip to content

Commit d3bcc43

Browse files
Generate table of solutions for the README
1 parent 5983259 commit d3bcc43

File tree

2 files changed

+141
-2
lines changed

2 files changed

+141
-2
lines changed

README.md

Lines changed: 68 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
12
<div align="center">
23
<img src="https://projecteuler.net/profile/NonlinearFruit.png"/>
34
<img src="https://projecteuler.net/profile/unclebobmartin.png"/>
@@ -6,6 +7,71 @@
67

78
# [Project Euler](https://projecteuler.net)
89

10+
## Solutions
11+
12+
| number | challenge | links |
13+
| --- | --- | --- |
14+
| 88 | Product Sum Numbers | [src](project_euler/test_pe88_product_sum_numbers.py) [web](https://projecteuler.net/problem=88) |
15+
| 700 | Eulercoin | [src](project_euler/test_pe700_eulercoin.py) [web](https://projecteuler.net/problem=700) |
16+
| 800 | Hybrid Integers | [src](project_euler/test_pe800_hybrid_integers.py) [web](https://projecteuler.net/problem=800) |
17+
| 816 | Shortest Distance Among Points | [src](project_euler/test_pe816_shortest_distance_among_points.py) [web](https://projecteuler.net/problem=816) |
18+
| 932 | 2025 | [src](project_euler/test_pe932_2025.py) [web](https://projecteuler.net/problem=932) |
19+
20+
## How To
21+
922
- [required] pdm <https://github.com/pdm-project/pdm>
10-
- `pdm install`
11-
- `pdm test`
23+
- [required] `pdm install`
24+
```sh
25+
./toolkit.nu download-challenge $CHALLENGE
26+
git add -A
27+
vim project_euler/ # Edit challenge
28+
pdm test # Run tests
29+
./toolkit.nu update-readme
30+
git add -A
31+
git commit -m "Solve PE $CHALLENGE: $TITLE"
32+
```
33+
34+
## Help
35+
36+
37+
<details><summary>toolkit download-challenge</summary>
38+
39+
```
40+
Usage:
41+
> download-challenge <problemNumber>
42+
43+
Flags:
44+
-h, --help: Display the help message for this command
45+
46+
Parameters:
47+
problemNumber <any>
48+
49+
Input/output types:
50+
╭───┬───────┬────────╮
51+
│ # │ input │ output │
52+
├───┼───────┼────────┤
53+
│ 0 │ any │ any │
54+
╰───┴───────┴────────╯
55+
```
56+
</details>
57+
58+
59+
<details><summary>toolkit update-readme</summary>
60+
61+
```
62+
Usage:
63+
> update-readme
64+
65+
Flags:
66+
-h, --help: Display the help message for this command
67+
68+
Input/output types:
69+
╭───┬───────┬────────╮
70+
│ # │ input │ output │
71+
├───┼───────┼────────┤
72+
│ 0 │ any │ any │
73+
╰───┴───────┴────────╯
74+
```
75+
</details>
76+
77+

toolkit.nu

Lines changed: 73 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,3 +30,76 @@ export def download-challenge [problemNumber] {
3030
| str join (char newline)
3131
| save $file
3232
}
33+
34+
export def update-readme [] {
35+
$"
36+
<div align=\"center\">
37+
<img src=\"https://projecteuler.net/profile/NonlinearFruit.png\"/>
38+
<img src=\"https://projecteuler.net/profile/unclebobmartin.png\"/>
39+
<img src=\"https://projecteuler.net/profile/africh.png\"/>
40+
</div>
41+
42+
# [Project Euler]\(https://projecteuler.net)
43+
44+
## Solutions
45+
46+
(table-of-scores)
47+
48+
## How To
49+
50+
- [required] pdm <https://github.com/pdm-project/pdm>
51+
- [required] `pdm install`
52+
```sh
53+
./toolkit.nu download-challenge $CHALLENGE
54+
git add -A
55+
vim project_euler/ # Edit challenge
56+
pdm test # Run tests
57+
./toolkit.nu update-readme
58+
git add -A
59+
git commit -m \"Solve PE $CHALLENGE: $TITLE\"
60+
```
61+
62+
## Help
63+
64+
(help-docs)
65+
"
66+
| save -f README.md
67+
}
68+
69+
def table-of-scores [] {
70+
ls project_euler/test_*
71+
| each {|file|
72+
$file.name
73+
| path parse
74+
| get stem
75+
| parse "test_pe{number}_{challenge}"
76+
| first
77+
| update number { into int }
78+
| update challenge { str title-case }
79+
| insert links {|it|
80+
$"[src]\(($file.name)) [web]\(https://projecteuler.net/problem=($it.number))"
81+
}
82+
}
83+
| sort-by number
84+
| to md
85+
}
86+
87+
def help-docs [] {
88+
scope modules
89+
| where name == toolkit
90+
| get commands.0.name
91+
| each {|cmd|
92+
^nu -c $"use toolkit.nu; toolkit ($cmd) -h"
93+
| str trim
94+
| $"
95+
<details><summary>toolkit ($cmd)</summary>
96+
97+
```
98+
($in)
99+
```
100+
</details>
101+
"
102+
}
103+
| to text
104+
| ansi strip
105+
}

0 commit comments

Comments
 (0)