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 websitesrc
— all the source code for the library and documentation website, top-level files are also entry-points for NPM consumers.src/_*
— meta directories in Eleventy for building the documentation sitesrc/@types
— custom TypeScript typessrc/assets
— assets to be built in to the librarysrc/development
— documentation around developing Alembic itselfsrc/docs
— tools to help creating the documentation websitesrc/forms
— forms module, inspired by Form Design Patternssrc/install
— documentation about install Alembic in different types of projectsrc/layouts
— layouts module, based on EveryLayoutsrc/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