Alexandria is a reader and writer for curated publications.
For a thorough introduction, please refer to our [project documention](https://next-alexandria.gitcitadel.eu/publication?d=gitcitadel-project-documentation-by-stella-v-1), viewable on Alexandria.
Alexandria is a reader and writer for curated publications, including e-books.
For a thorough introduction, please refer to our [project documention](https://next-alexandria.gitcitadel.eu/publication?d=gitcitadel-project-documentation-by-stella-v-1), viewable on Alexandria, or to the Alexandria [About page](https://next-alexandria.gitcitadel.eu/about).
## Issues and Patches
If you would like to suggest a feature or report a bug, or submit a patch for review, please use the [Nostr git interface](https://gitcitadel.com/r/naddr1qvzqqqrhnypzplfq3m5v3u5r0q9f255fdeyz8nyac6lagssx8zy4wugxjs8ajf7pqyt8wumn8ghj7ur4wfcxcetjv4kxz7fwvdhk6tcqpfqkcetcv9hxgunfvyamcf5z) on our homepage.
## Developing
You can also contact us [on Nostr](https://njump.me/nprofile1qqsggm4l0xs23qfjwnkfwf6fqcs66s3lz637gaxhl4nwd2vtle8rnfqprfmhxue69uhhg6r9vehhyetnwshxummnw3erztnrdaks5zhueg), directly.
Make sure that you have [Node.js](https://nodejs.org/en/download/package-manager) installed.
## Developing
Once you've cloned this repo, install dependencies with:
Make sure that you have [Node.js](https://nodejs.org/en/download/package-manager) (v22 or above) or [Deno](https://docs.deno.com/runtime/getting_started/installation/) (v2) installed.
Once you've cloned this repo, install dependencies with NPM:
```bash
npm install
```
then start a development server:
or with Deno:
```bash
deno install
```
then start a development server with Node:
```bash
npm run dev
```
or start the server and open the app in a new browser tab:
or with Deno:
```bash
npm run dev -- --open
deno task dev
```
## Building
> We have configured Alexandria to use the static adapter. To deploy your app with a different adapter, you will need to install an [adapter](https://kit.svelte.dev/docs/adapters) for your target environment.
Alexandria is configured to run on a Node server. The [Node adapter](https://svelte.dev/docs/kit/adapter-node) works on Deno as well.
To build a production version of your app, as a static site:
To build a production version of your app with Node, use:
```bash
npm run build
```
or with Deno:
```bash
deno task build
```
You can preview the (non-static) production build with:
```bash
npm run preview
```
or with Deno:
```bash
deno task preview
```
## Docker
This docker container performs the build.
@ -72,6 +88,20 @@ CONTAINER ID IMAGE COMMAND CREATED STATUS
@@ -72,6 +88,20 @@ CONTAINER ID IMAGE COMMAND CREATED STATUS
1d83d736322f gc-alexandria "/docker-entrypoint.…" 2 minutes ago Up 2 minutes 0.0.0.0:4174->80/tcp, [::]:4174->80/tcp gc-alexandria
```
## Docker + Deno
This application is configured to use the Deno runtime. A Docker container is provided to handle builds and deployments.
<p>Alexandria is an editor and generator for <ahref="https://github.com/nostr-protocol/nips/pull/1600"class='underline'>curated publications</a> and will soon also be a reader for long-form articles and wiki pages.
It is produced by the <ahref="https://wikistr.com/gitcitadel-project"class='underline'>GitCitadel project team</a>.</p>
<p>Alexandria is a reader and writer for <ahref="https://github.com/nostr-protocol/nips/pull/1600"class='underline'>curated publications</a> (in Asciidoc), and will eventually also support long-form articles (Markdown) and wiki pages (Asciidoc). It is produced by the <ahref="https://wikistr.com/gitcitadel-project"class='underline'>GitCitadel project team</a>.</p>
<p>Please submit support issues on the <ahref="https://gitcitadel.com/r/naddr1qvzqqqrhnypzplfq3m5v3u5r0q9f255fdeyz8nyac6lagssx8zy4wugxjs8ajf7pqy88wumn8ghj7mn0wvhxcmmv9uqq5emfw33kjarpv3jkcs83wav"class='underline'>project repo page</a> and follow us on <ahref="https://github.com/ShadowySupercode/gitcitadel"class='underline'>GitHub</a> and <ahref="https://geyser.fund/project/gitcitadel"class='underline'>Geyserfund</a>.</p>
<p>We are easiest to contact over our Nostr address <ahref="https://njump.me/nprofile1qqsggm4l0xs23qfjwnkfwf6fqcs66s3lz637gaxhl4nwd2vtle8rnfqprfmhxue69uhhg6r9vehhyetnwshxummnw3erztnrdaks5zhueg"class='underline'>npub1s3ht77dq4zqnya8vjun5jp3p44pr794ru36d0ltxu65chljw8xjqd975wz</a>.</p>
<p>Alexandria opens up to the <ahref="https://next-alexandria.gitcitadel.eu/"class='underline'>landing page</a>, where the user can: login (top-right), select whether to only view the publications hosted on the <ahref="https://thecitadel.nostr1.com/"class='underline'>thecitadel document relay</a> or add in their own relays, and scroll/search the publications.</p>
<p>There is also the ability to view the publications as a diagram, if you click on "Visualize", and to publish an e-book or other document (coming soon).</p>
<p>If you click on a card, which represents a 30040 index event, the associated reading view opens to the publication. The app then pulls all of the content events (30041s), in the order in which they are indexed, and displays them as a single document.</p>
<p>Each 30041 section is also a level in the table of contents, which can be accessed from the floating icon top-left in the reading view. This allows for navigation within the publication. (This functionality has been temporarily disabled.)</p>
<p>The most common use for Alexandria is for e-books: both those users have written themselves and those uploaded to Nostr from other sources. The first minor version of the app, Gutenberg, is focused on displaying and producing these publications.</p>
<p>An example of a book is <ahref="https://next-alexandria.gitcitadel.eu/publication?d=jane-eyre-an-autobiography-by-charlotte-bront%C3%83-v-third-edition"class='underline'>Jane Eyre</a></p>
<p><imgsrc="/screenshots/JaneEyre.png"alt="Jane Eyre, by Charlotte Brontë"class='image-border'></p>
<p>Alexandria will also display research papers with Asciimath and LaTeX embedding, and the normal advanced formatting options available for Asciidoc. In addition, we will be implementing special citation events, which will serve as an alternative or addition to the normal footnotes.</p>
<p>Correctly displaying such papers, integrating citations, and allowing them to be reviewed (with kind 1111 comments), and annotated (with highlights) by users, is the focus of the second minor version, Euler.</p>
<p>Euler will also pioneer the HTTP-based (rather than websocket-based) e-paper compatible version of the web app.</p>
<p>An example of a research paper is <ahref="https://next-alexandria.gitcitadel.eu/publication?d=less-partnering-less-children-or-both-by-j.i.s.-hellstrand-v-1"class='underline'>Less Partnering, Less Children, or Both?</a></p>
<p>Our own team uses Alexandria to document the app, to display our blog entries, as well as to store copies of our most interesting technical specifications.</p>