object-path
is a getter/setter for nested arrays and plain objects. Here we use it directly and also align our API's to it. Here's why.

object-path
package is great
object-path
is a getter/setter for nested arrays and plain objects. Here we use it directly and also align our API's to it. Here's why.
Well, sort of.
Read article ESLint Uses Similar Thing to RangesCache busting is necessary because browsers cache the static resources, namely, CSS and JS files, and if we update the website, visitors might not see their latest versions.
In theory, implementing web workers should solve the cache busting problem, and there are Eleventy plugins for that, but, we decided not to enable the PWA setup until we test it properly.
Here's how we bust the cache in an old-school way, on Eleventy + Nunjucks + Parcel.
Read article Our Cache Busting Setup on EleventyConceptually, dark/light mode on a website is driven by the buttons on the UI: whichever mode user picks, a data-theme
attribute with that value gets set on <html>
tag. We also persist that to browser's local storage.
Automatic mode setting "listens" to system's setting via @media (prefers-color-scheme: dark)
. Manual dark/light modes' CSS "listens" to <html>
tag attribute's value by :root[data-theme='dark']
.
That's pretty much it.
Here is the mixin we use.
Read article Our Dark Mode SetupAs our npm package count grows, the README automation becomes more and more an issue. Installation instructions, badges, contribution guidelines can be automatically generated, but many other chapters can't.
Here's our story from a README perspective.
Read article Evolution of Our npm Packages, From a README Perspectivestring-strip-html
v.5 and Lessons Learned
For an exported function, string-in, string-out API is awesome because it's simple. The problem happens later when you want to add more to the output, for example, a log with time spent. Or an alternative output, like locations of string indexes. Or the version
from package.json.