
Alexandria
Alexandria is a reader and writer for curated publications, including e-books.
For a thorough introduction, please refer to our
project documention,
viewable on Alexandria, or to the Alexandria
About page.
It also contains a
universal event viewer, with
which you can search our relays, some aggregator relays, and your own relay
list, to find and view event data.
Issues and Patches
If you would like to suggest a feature or report a bug, please use the
Alexandria Contact page.
You can also contact us
on Nostr,
directly.
Developing
Make sure that you have
Node.js (v22 or above) or
Deno (v2)
installed.
Once you've cloned this repo, install dependencies with NPM:
npm install
or with Deno:
deno install
then start a development server with Node:
npm run dev
or with Deno:
deno task dev
Building
Alexandria is configured to run on a Node server. The
Node adapter works on Deno as well.
To build a production version of your app with Node, use:
npm run build
or with Deno:
deno task build
You can preview the (non-static) production build with:
npm run preview
or with Deno:
deno task preview
Docker + Deno
This application is configured to use the Deno runtime. A Docker container is
provided to handle builds and deployments.
To build the app for local development:
docker build -t local-alexandria -f Dockerfile .
To run the local development build:
docker run -d -p 3000:3000 local-alexandria
Testing
These tests are under development, but will run. They will later be added to
the container.
To run the Vitest suite we've built, install the program locally and run the
tests.
npm run test
For the Playwright end-to-end (e2e) tests:
npx playwright test
Markup Support
Alexandria supports both Markdown and AsciiDoc markup for different content
types. For a detailed list of supported tags and features in the basic and
advanced markdown parsers, as well as information about AsciiDoc usage for
publications and wikis, see
MarkupInfo.md.