{"meta":{"name":"FindSoftware","page":"https://findsoftware.frbit.cloud/20ful/","markdown":"https://findsoftware.frbit.cloud/20ful.md","license":"https://creativecommons.org/licenses/by/4.0/","attribution":"FindSoftware, CC BY 4.0","note":"Attributes are recorded, never scored. An absent field means unknown, never zero and never bad."},"record":{"id":"20ful","name":"20ful","urls":{"repository":"https://github.com/punund/20ful","docs":"https://github.com/punund/20ful/blob/master/README.md"},"category":["ssg"],"description":"Static site generator that compiles Markdown, Pug, Nunjucks, Stylus, Sass and LiveScript sources into a website.","maintainer":"Iļja Ketris","maintainerType":"individual","firstRelease":2020,"hosting":["static"],"language":"javascript","runtime":["node"],"runtimeMin":"node 16","templating":"pug, nunjucks","runsAs":["static"],"renderingModes":["static"],"installMethod":"npm install","licenseModel":"open-source","license":"MIT","currentMajor":"0","latestReleaseDate":"2022-06-09T00:00:00.000Z","githubStargazers":7,"contributors":2,"packagistDownloads":null,"npmWeeklyDownloads":35,"dependentRepos":1,"dependentPackages":3,"checkedAt":"2026-10-22T00:00:00.000Z","addedAt":"2026-10-22T00:00:00.000Z","sources":[{"field":"urls","url":"https://api.github.com/repos/punund/20ful","checkedAt":"2026-10-22T00:00:00.000Z"},{"field":"urls","url":"https://github.com/punund/20ful/blob/master/README.md","checkedAt":"2026-10-22T00:00:00.000Z"},{"field":"maintainer","url":"https://registry.npmjs.org/20ful/latest","checkedAt":"2026-10-22T00:00:00.000Z"},{"field":"language","url":"https://api.github.com/repos/punund/20ful","checkedAt":"2026-10-22T00:00:00.000Z"},{"field":"category","url":"https://github.com/punund/20ful/blob/master/README.md","checkedAt":"2026-10-22T00:00:00.000Z"},{"field":"runtime","url":"https://registry.npmjs.org/20ful/latest","checkedAt":"2026-10-22T00:00:00.000Z"},{"field":"runtimeMin","url":"https://registry.npmjs.org/20ful/latest","checkedAt":"2026-10-22T00:00:00.000Z"},{"field":"installMethod","url":"https://github.com/punund/20ful/blob/master/README.md","checkedAt":"2026-10-22T00:00:00.000Z"},{"field":"templating","url":"https://github.com/punund/20ful/blob/master/README.md","checkedAt":"2026-10-22T00:00:00.000Z"},{"field":"renderingModes","url":"https://github.com/punund/20ful/blob/master/README.md","checkedAt":"2026-10-22T00:00:00.000Z"},{"field":"runsAs","url":"https://github.com/punund/20ful/blob/master/README.md","checkedAt":"2026-10-22T00:00:00.000Z"},{"field":"license","url":"https://registry.npmjs.org/20ful/latest","checkedAt":"2026-10-22T00:00:00.000Z"},{"field":"licenseModel","url":"https://registry.npmjs.org/20ful/latest","checkedAt":"2026-10-22T00:00:00.000Z"},{"field":"firstRelease","url":"https://api.github.com/repos/punund/20ful/releases","checkedAt":"2026-10-22T00:00:00.000Z"},{"field":"currentMajor","url":"https://api.github.com/repos/punund/20ful/releases","checkedAt":"2026-10-22T00:00:00.000Z"},{"field":"latestReleaseDate","url":"https://registry.npmjs.org/20ful","checkedAt":"2026-10-22T00:00:00.000Z"},{"field":"githubStargazers","url":"https://api.github.com/repos/punund/20ful","checkedAt":"2026-10-22T00:00:00.000Z"},{"field":"contributors","url":"https://api.github.com/repos/punund/20ful/contributors","checkedAt":"2026-10-22T00:00:00.000Z"},{"field":"npmWeeklyDownloads","url":"https://api.npmjs.org/downloads/point/last-week/20ful","checkedAt":"2026-10-22T00:00:00.000Z"},{"field":"dependentRepos","url":"https://packages.ecosyste.ms/api/v1/registries/npmjs.org/packages/20ful","checkedAt":"2026-10-25T00:00:00.000Z"},{"field":"dependentPackages","url":"https://packages.ecosyste.ms/api/v1/registries/npmjs.org/packages/20ful","checkedAt":"2026-10-25T00:00:00.000Z"}],"status":"stub","ai":"authored"},"prose":"20ful is a static site generator that takes the files in `src/`, processes them and writes the result to `_site/`, keeping the directory structure. Markdown, Pug and Nunjucks sources become HTML, Stylus and Sass become CSS, and LiveScript becomes JavaScript, and other files are copied as they are. Front matter at the top of each file sets its template, layout, table-of-contents entry and cache busting, and a `20ful-config.yaml` file sets the source and output folders and the Markdown plugins. The `20ful serve` command builds the site and starts a development server that reloads the browser on change, using browser-sync. The npm package lists Iļja Ketris as its author.\n\n## Worth knowing\n\nThe `20ful proxy <port>` command starts a proxy to a server that is already running, for a site with parts that need that server. Two files whose paths differ only by the `html/` folder collide in the output, and only one of them is written."}