Skip to content

Commit 4a1b6df

Browse files
committed
Migrate Documentation to Zensical
Fixes #1664
1 parent ef61264 commit 4a1b6df

File tree

13 files changed

+418
-144
lines changed

13 files changed

+418
-144
lines changed

.github/workflows/docs.yml

Lines changed: 19 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
name: Deploy docs
1+
name: Deploy documentation
22

33
on:
44
push:
@@ -11,26 +11,31 @@ on:
1111
workflow_dispatch:
1212

1313
permissions:
14-
contents: write
14+
contents: read
15+
pages: write
16+
id-token: write
1517

1618
jobs:
1719
deploy:
20+
environment:
21+
name: github-pages
22+
url: ${{ steps.deployment.outputs.page_url }}
1823
runs-on: ubuntu-latest
1924
defaults:
2025
run:
2126
working-directory: ./docs
2227
steps:
23-
- uses: actions/checkout@v6
24-
- uses: actions/setup-python@v6
28+
- uses: actions/configure-pages@v5
29+
- uses: actions/checkout@v5
30+
- uses: actions/setup-python@v5
2531
with:
26-
python-version: "3.12"
27-
- run: echo "cache_id=$(date --utc '+%V')" >> $GITHUB_ENV
28-
- uses: actions/cache@v5
29-
with:
30-
key: mkdocs-material-${{ env.cache_id }}
31-
path: .cache
32-
restore-keys: |
33-
mkdocs-material-
34-
- run: pip install mkdocs-material=="9.*" mkdocs-include-markdown-plugin=="7.*"
32+
python-version: 3.x
3533
- run: sudo mkdir /includes && sudo cp ../Tekst-Web/i18n/help/enUS/** /includes/
36-
- run: mkdocs gh-deploy --force
34+
- run: pip install zensical
35+
- run: zensical build --clean
36+
- uses: actions/upload-pages-artifact@v4
37+
with:
38+
path: site
39+
- name: Deploy to GitHub Pages
40+
id: deployment
41+
uses: actions/deploy-pages@v4

CONTRIBUTING.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
# Contributing
22

3-
Tekst is explicitly meant as an Open Source project that is open for community contributions. You are welcome to open Pull Requests with bug fixes or feature implementations.
3+
Tekst is explicitly meant as an Open Source project and is thus open for community contributions. You are welcome to open Pull Requests with bug fixes or feature implementations.
44

5-
That being said, to keep you from doing superfluous work, please [open an issue](https://github.com/VedaWebProject/Tekst/issues) describing a bug or feature idea and discuss the matter with a project maintainer before you start working on things ♥
5+
That being said, to keep you from doing superfluous work, please [open an issue](https://github.com/VedaWebProject/Tekst/issues) first and describe a bug or feature idea to discuss the matter with a project maintainer before you start working on things ♥

README.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -41,13 +41,13 @@ This is a monorepo containing the codebases of all parts of the Tekst platform.
4141
### Projects and technologies
4242

4343
#### Tekst-API
44-
The server part of the Tekst platform: [`Tekst-API/`](Tekst-API) \
44+
The server part of the Tekst platform, located in [`Tekst-API/`](Tekst-API). \
4545
[Python](https://github.com/python/cpython), [Pydantic](https://github.com/pydantic/pydantic), [FastAPI](https://github.com/tiangolo/fastapi), [FastAPI-Users](https://github.com/fastapi-users/fastapi-users), [Beanie](https://github.com/BeanieODM/beanie), [MongoDB](https://github.com/mongodb/mongo), [Elasticsearch](https://github.com/elastic/elasticsearch), ...
4646

4747
#### Tekst-Web
48-
The client part of the Tekst platform: [`Tekst-Web/`](Tekst-Web) \
48+
The client part of the Tekst platform, located in [`Tekst-Web/`](Tekst-Web). \
4949
[TypeScript](https://github.com/microsoft/TypeScript), [Vue.js 3](https://github.com/vuejs/core), [Pinia](https://github.com/vuejs/pinia), [Naive UI](https://github.com/tusen-ai/naive-ui), [Vue I18n](https://github.com/intlify/vue-i18n), [OpenAPI-TypeScript & OpenAPI-Fetch](https://github.com/openapi-ts/openapi-typescript), ...
5050

5151
#### Tekst Documentation
52-
The official docs for the Tekst platform (published [here](https://vedawebproject.github.io/Tekst)): [`docs/`](docs) \
53-
[MkDocs](https://github.com/mkdocs/mkdocs), [Material for MkDocs](https://github.com/squidfunk/mkdocs-material), [PyMdown Extensions](https://github.com/facelessuser/pymdown-extensions), ...
52+
The official [manual and technical documentation](https://vedawebproject.github.io/Tekst) for the Tekst platform, located in [`docs/`](docs). \
53+
[Zensical](https://github.com/zensical/zensical), [PyMdown Extensions](https://github.com/facelessuser/pymdown-extensions), ...

dev/compose.yml

Lines changed: 0 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -92,21 +92,6 @@ services:
9292
- dev
9393
- test
9494

95-
docs:
96-
build:
97-
dockerfile_inline: |
98-
FROM squidfunk/mkdocs-material:9.6.20
99-
RUN pip install mkdocs-include-markdown-plugin
100-
image: localhost/tekst/mkdocs-material
101-
restart: unless-stopped
102-
volumes:
103-
- ../docs:/docs:ro
104-
- ../Tekst-Web/i18n/help/enUS:/includes:ro
105-
ports:
106-
- 127.0.0.1:8091:8000
107-
profiles:
108-
- docs
109-
11095
volumes:
11196
mongo_configdb:
11297
mongo_db:

docs/.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
site/

docs/README.md

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,9 @@
11
# Tekst Documentation
22

3-
## Development
4-
5-
To run the development server for locally previewing changes in the documentation, use the compose file in `dev/` from the repository root:
3+
To run the development server for locally previewing changes in the documentation, run this command in the repository root (or replace `${PWD}/docs` by `${PWD}` if you run it from the `docs/` directory):
64

75
```
8-
docker compose -f dev/compose.yml --profile docs -p tekst-docs up
6+
docker run --rm -it -p 127.0.0.1:8080:8000 -v ${PWD}/docs:/docs zensical/zensical
97
```
108

11-
Then, visit `http://127.0.0.1:8091` using your web browser.
9+
Then, visit `http://127.0.0.1:8080` using your web browser.

docs/content/assets/logo.png

424 Bytes
Loading
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
# Contributing
2+
3+
Tekst is explicitly meant as an Open Source project and is thus open for community contributions. You are welcome to open Pull Requests with bug fixes or feature implementations.
4+
5+
That being said, to keep you from doing superfluous work, please [open an issue](https://github.com/VedaWebProject/Tekst/issues) first and describe a bug or feature idea to discuss the matter with a project maintainer before you start working on things ♥

docs/content/index.md

Lines changed: 38 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -1,53 +1,61 @@
11
# Introduction
22

3-
Tekst is a collaborative, web-based research platform for aligning, displaying, linking, exploring, and enriching resources on natural language texts. It is developed within the scope of the [VedaWeb 2.0](https://vedaweb.uni-koeln.de/) research project, where it constitutes the technical basis of the *VedaWeb* research platform.
3+
!!! warning "Work-in-progress"
4+
While the Tekst platform software is already in its open beta phase, this manual is still very much work-in-progress. We'll try to complete it as soon as possible, but please bear with us if you encounter any incomplete information.
45

5-
!!! info "Git Repository"
6-
You are looking for Tekst's Git repository? [It's over here.](https://github.com/VedaWebProject/Tekst)
6+
## What is Tekst?
77

8-
!!! warning "Work-in-progress"
9-
While the Tekst platform is already in its open beta phase, this manual is still very much work-in-progress. We'll try to complete it as soon as possible, but please bear with us if you encounter any incomplete information.
8+
Tekst is a collaborative, web-based research platform for aligning, displaying, linking, exploring, and enriching resources on natural language texts. It has been initially developed within the scope of the VedaWeb 2.0 project to serve as the technical basis of the [VedaWeb](https://vedaweb.uni-koeln.de/) research platform for the linguistic study of Old Indo-Aryan texts.
9+
10+
But its design is not limited to the study of any particular language or text type as it is meant to be project-agnostic and handle multimodal resources on arbitrary texts.
1011

1112
## Use cases
1213

13-
Tekst is primarily meant as a platform software for philological research projects. The original intent for the development of Tekst was to create the technical basis for the online research platform [VedaWeb](https://vedaweb.uni-koeln.de/), where numerous resources on multiple Old Indic Sanskrit texts can be browsed, compared and searched. These include text versions, translations, annotations, audio recordings of recitations and references to external sources, which are all aligned to the structure of their respective reference texts.
14+
Tekst is primarily meant as a platform software for philological research projects. The original task for Tekst was to provide a central research community platform for the VedaWeb project and its research data, including text versions, translations, annotations, audio recordings of recitations and references to external sources, which are all aligned to the structure of their respective reference texts.
1415

1516
Therefore, the main use cases for Tekst are comparable research projects that either want to publish and showcase their research data, simply curate a set of established resources on certain reference texts, or even encourage the research community to participate and contribute to a central platform dedicated to provide relevant resources.
1617

1718
In the end, giving it a try on your local machine [is relatively easy](setup/installation.md#docker-based-deployment-recommended).
1819

1920
## Features
2021

22+
!!! info
23+
- [x] This is a feature is already implemented.
24+
- [ ] This is a feature that is planned but not yet implemented.
25+
2126
This list is far from exhaustive, but includes some features that might be decisive in certain scenarios:
2227

23-
- Manage multiple independent, potentially differently structured texts
24-
- Run it as a closed, internally curated publishing platform or as an open platform for a selected research community to encourage user contributions
25-
- Built-in user management with authentication and a combination of role-based and ownership-based authorization
26-
- Built-in [i18n](https://en.wikipedia.org/wiki/Internationalization_and_localization) with an extensible set of languages (contributions are welcome!)
27-
- Encouraging user contributons and collaboration by enabling user to
28-
- submit quick correction notes
29-
- create versions of existing resources to compose and propose deviating data
30-
- create own resources, propose them for publication and have them reviewed by the community
31-
- Per-resource data export (full or range-based) as JSON or CSV
32-
- Dozens of specialized usability features, developed with real-world needs of humanities researchers in mind
33-
- Extensively typed and documented server API (via [OpenAPI](https://spec.openapis.org/oas/v3.0.2) specification) and built-in interactive API documentation (via [Swagger UI](https://github.com/swagger-api/swagger-ui) and/or [ReDoc](https://github.com/Redocly/redoc)), all thanks to [FastAPI](https://github.com/tiangolo/fastapi)
34-
- Customize logos, UI colors, fonts, on-screen keyboards, ...
35-
- Built-in user messaging system
36-
- Publish data from various multi-modal resources, aligned to the structure of their respective common reference text
37-
- Plain text
38-
- Rich text
39-
- Text annotations
40-
- Images
41-
- Audio
42-
- External references
43-
- Integration of external APIs
44-
- Arbitrary key-value metadata
45-
- ...
28+
- [x] Manage multiple independent, potentially **differently structured texts**
29+
- [x] Run it as a **closed, internally curated** publishing platform **or as an open platform** for a selected research **community** to encourage user **contributions**
30+
- [x] Built-in **user management** with authentication and a combination of role-based and ownership-based authorization
31+
- [x] Built-in [i18n](https://en.wikipedia.org/wiki/Internationalization_and_localization) with an extensible set of languages (contributions are welcome!)
32+
- [x] Encouraging **user contributons and collaboration** by enabling user to
33+
- [x] submit quick correction notes
34+
- [x] create versions of existing resources to compose and propose deviating data
35+
- [x] create own resources, propose them for publication and have them reviewed by the community
36+
- [x] Per-resource data **export** (full or range-based) as JSON or CSV
37+
- [x] Dozens of **specialized usability features**, developed with **real-world needs of scholars** in mind
38+
- [x] Content **archiving and versioning**
39+
- [x] Flexible **citation** hints and URLs to specific contents from specific resources at a certain point in time
40+
- [x] Extensively **typed and documented server API** (via [OpenAPI](https://spec.openapis.org/oas/v3.0.2) specification) and built-in interactive API documentation (via [Swagger UI](https://github.com/swagger-api/swagger-ui) and/or [ReDoc](https://github.com/Redocly/redoc)), all thanks to [FastAPI](https://github.com/tiangolo/fastapi)
41+
- [x] **Customize** logos, UI colors, fonts, on-screen keyboards, ...
42+
- [x] Built-in **user messaging** system
43+
- [ ] Publish data from various **multi-modal resources**, aligned to the structure of their respective common **reference text**
44+
- [x] Plain text
45+
- [x] Rich text
46+
- [x] Text annotations
47+
- [x] Images
48+
- [x] Audio
49+
- [ ] Video
50+
- [ ] 3D models
51+
- [x] External references
52+
- [x] Integration of external APIs
53+
- [x] Arbitrary key-value metadata
4654

4755
## Caveats
4856

4957
Depending on your requirements, you might want to consider the following list of potential shortcomings:
5058

5159
- SEO: The web client is a [SPA](https://en.wikipedia.org/wiki/Single-page_application) that is rendered in the browser (no SSR). As a result, visibility to search engines is somewhat limited.
5260
- No built-in functionality for uploading and managing media files. If you want to integrate image- or audio-based resources, you will have to host the respective media files yourself and link to them from your resources.
53-
- ... _(get in touch if you find anything that should be added to this list, we mean it!)_
61+
- _...get in touch if you find anything that should be added to this list, we mean it!_

docs/content/setup/installation.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -33,9 +33,9 @@ The instructions below will help you deploy a stack consisting of everything Tek
3333

3434
1. Create a directory to store your Tekst deployment data in and enter it:
3535

36-
```sh
37-
mkdir my-tekst-instance && cd my-tekst-instance
38-
```
36+
```sh
37+
mkdir my-tekst-instance && cd my-tekst-instance
38+
```
3939

4040
2. Copy the compose file template from [here](https://raw.githubusercontent.com/VedaWebProject/Tekst/refs/heads/main/compose.yml) and save it as `compose.yml`:
4141

0 commit comments

Comments
 (0)