This project is set up with locality in mind, files that are often edited together should be near each other. The code is in the src/ directory in the repo where it is then split up into the different modules of the library. Those modules correlate closely to the structure of the documentation site. The documentation is in the same directory structure as the code itself.
The library is built using esbuild in scripts/build-library.js and the documentation website is built with Eleventy from scripts/build-docs.js.
Significant folders:
dist— where the library and website are written toexamples— a few well-formed examples of using Alembicresearch— notes on future feature design or refactorsscripts— scripts to build the library or documentation websitesource— all the source code for the library and documentation website, top-level files are also entry-points for NPM consumers.source/_*— meta directories in Eleventy for building the documentation sitesource/@types— custom TypeScript typessource/assets— assets to be built in to the librarysource/development— documentation around developing Alembic itselfsource/docs— tools to help creating the documentation websitesource/forms— forms module, inspired by Form Design Patternssource/install— documentation about install Alembic in different types of projectsource/layouts— layouts module, based on EveryLayoutsource/lib— lib module, common tools for all modules
Public entry-points:
11ty.js— Eleventy plugineverything.css— all the static CSS styleseverything.js— client-side self-installing scripts to enable runtime usagemodule.js— client-side scripts to enable runtime usagetools.js— scripts for processing before client-side
Key files:
.eleventy.cjs— Eleventy entry-pointCHANGELOG.md— documentation for different versions