Sprache Part 3: Repetition (Many, AtLeastOnce, Until, Repeat, Once)

This is part of a series of posts documenting Sprache. This post covers the basic building blocks used to parse repeating elements - Many, AtLeastOnce, Until, Repeat, Once. There are some other methods used for parsing specific sorts of repeating elements, like DelimitedByand ChainOperator, however these helpers are built from these primitives.

Sprache Part 2: Parsing Strings

This is part of a series of posts documenting Sprache. Last time was all about parsing single characters, and all of the parsers returned char. This post is about parsing strings.

Sprache Part 1: Parsing Characters

Sprache is a C# parser combinator library. Its a really well-written library but it suffers from a lack of documentation, meaning the only way to figure out how to use it is to hunt for blog posts and examples, or to start digging through the source code. I’ve chosen the latter option. This post will be part of a series picking apart and documenting each method in Sprache with examples in XUnit test syntax.

Running a static website on Kubernetes

I have a couple of static websites I need to host in Kubernetes - straightforward enough, just with the minor extra challenge that the cluster has a security policy preventing pods from running as root. First step is to create an image of my website running in Nginx that runs as a non-root user. There are a few posts online showing how to do this, in summary we need to: