🏡 index.nim

Advent of Code

2022

day solutions
1 input part1 part2
2 input part1 part2
3 input part1 part2
4 input part1 part2
5 input part1 part2
6 input part1 part2
7 input part1 part2
8 input part1 part2
9 input part1 part2
10 input part1 part2
11 input part1 part2
12 input part1 part2
13 input part1 part2
14 input part1 part2
15 input part1 part2
16 input part1

2021

day solutions
1 input part1 part2
2 input part1 part2
3 input part1 part2
4 input part1 part2
5 input part1 part2
6 input part1 part2
7 input part1 part2
8 input part1 part2
9 input part1 part2
10 input part1 part2
11 input part1 part2
12 input
import strformat, strutils, os
import nimib

const 
  TITLE = "Advent of Code"

proc byYear(year: Natural): string =
  let yearStr = ($year)[2..3]
  result = fmt"## {year}" & "\n\n"
  result.add fmt"| day | solutions |" & '\n'
  result.add "|----------|----------|\n"
  for day in 1..25:
    let
      inFile = fmt"{yearStr}/src/day{day:02}/input.txt"
      pOneFile = fmt"{yearStr}/html/d{day:02}p1.html"
      pTwoFile = fmt"{yearStr}/html/d{day:02}p2.html"
    if not inFile.fileExists: break
    result.add fmt"| {day} | [input]({inFile}) "
    if pOneFile.fileExists: result.add fmt"[part1]({pOneFile}) "
    else: echo $pOneFile
    if pTwoFile.fileExists: result.add fmt"[part2]({pTwoFile}) "
    result.add "|\n"

nbInit

nb.title = TITLE

nbText: fmt"""
# {TITLE}

{2022.byYear}
{2021.byYear}

"""

nb.filename = "index.html"
nbSave