Add JSON input (#3)
All checks were successful
ci/woodpecker/push/build Pipeline was successful
ci/woodpecker/push/all-checks-complete Pipeline was successful

Co-authored-by: Smaug123 <patrick+github@patrickstevens.co.uk>
Reviewed-on: #3
This commit is contained in:
2023-09-08 18:19:06 +00:00
parent 1b1c902667
commit 3e3d092c27
35 changed files with 1407 additions and 113 deletions

24
AnkiStatic.Lib/Base91.fs Normal file
View File

@@ -0,0 +1,24 @@
namespace AnkiStatic
open System.Text
[<RequireQualifiedAccess>]
module internal Base91 =
// Replicating the Anki algorithm
let private chars =
"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"
+ "0123456789"
+ "!#$%&()*+,-./:;<=>?@[]^_`{|}~"
let toString (input : uint64) : string =
let output = StringBuilder ()
let mutable input = input
while input > 0uL do
let modded = int (input % (uint64 chars.Length))
let div = input / (uint64 chars.Length)
input <- div
output.Append chars.[modded] |> ignore
output.ToString ()