This is the home for DataJoint software documentation as hosted at https://docs.datajoint.com/core/datajoint-python/latest/.
The following extensions were used in developing these docs, with the corresponding settings files:
-
Recommended extensions are already specified in
.vscode/extensions.json, it will ask you to install them when you open the project if you haven't installed them. -
settings in
.vscode/settings.json -
.markdownlint.yamlestablishes settings for various linter rules.vscode/settings.jsonformatting on save to fix linting
-
CSpell:
cspell.jsonhas various ignored words. -
ReWrap:
.vscode/settings.jsonallows toggling automated hard wrapping for files at 88 characters. This can also be keymapped to be performed on individual paragraphs, see documentation.
conda
conda create -n djdocs -y
conda activate djdocsvenv
python -m venv .venv
source .venv/bin/activateThen install the required packages:
# go to the repo's root directory to generate API docs
# cd ~/datajoint-python/
# install mkdocs related requirements
pip install -r ./docs/pip_requirements.txt
# install datajoint, since API docs are generated from the package
pip install -e .[dev]Run mkdocs at: http://127.0.0.1:8000/
# go to the repo's root directory to generate API docs
# cd ~/datajoint-python/
# It will automatically reload the docs when changes are made
mkdocs serve --config-file ./docs/mkdocs.yamlWe mostly use Docker to simplify docs deployment
Ensure you have Docker and Docker Compose installed.
Then run the following:
# It will automatically reload the docs when changes are made
MODE="LIVE" docker compose up --buildNavigate to http://127.0.0.1:8000/ to preview the changes.
This setup supports live-reloading so all that is needed is to save the markdown files
and/or mkdocs.yaml file to trigger a reload.
TL;DR: We need to do it this way for hosting, please keep it as is.
INFO - Doc file 'index.md' contains an unrecognized relative link './develop', it was left as is. Did you mean
'develop.md'?
- We use reverse proxy to proxy our docs sites, here is the proxy flow:
- You hit
datajoint.com/*on your browser - It'll bring you to the reverse proxy server first, that you wouldn't notice
- when your URL ends with:
/is the company page/docs/is the landing/navigation page hosted by datajoint/datajoint-docs's github pages/docs/core/datajoint-python/is the actual docs site hosted by datajoint/datajoint-python's github pages/docs/elements/element-*/is the actual docs site hosted by each element's github pages
- You hit
WARNING - Doc file 'query/operators.md' contains a link '../../../images/concepts-operators-restriction.png', but
the target '../../images/concepts-operators-restriction.png' is not found among documentation files.
- We use Github Pages to host our docs, the image references needs to follow the mkdocs's build directory structure, under
site/directory once you run mkdocs.