- HTML 91.8%
- CSS 3.1%
- JavaScript 2.5%
- Python 2.4%
- Shell 0.2%
New page tech/campus-networks-design-concepts.md with the slide viewer, added to site.yml and to the overview course list as part 2. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> |
||
|---|---|---|
| build | ||
| deploy | ||
| image | ||
| tech | ||
| theme | ||
| .gitignore | ||
| docs.png | ||
| eduroam-setup-el9.pdf | ||
| eduroam-sp-el9.pdf | ||
| README.md | ||
| requirements.txt | ||
| site.yml | ||
MARWAN docs
Source of https://docs.marwan.ma. Every push to main rebuilds and publishes the site
within a few seconds. No Quarto, no manual render.
Writing a page
-
Add
tech/<name>.md. It is published athttps://docs.marwan.ma/tech/<name>.html. Never rename an existing file: its URL is indexed by search engines. -
Start it with front matter:
--- title: Install Unbound DNS on Rocky Linux 9 description: One sentence for search results and the page intro. author: Your Name date: 2026-11-12 tags: [dns, unbound] --- -
Use
##and###for sections (they build the "On this page" menu). The title is the only#. -
Add the page to a section in
site.ymlso it appears in the sidebar and on the home page. -
Commit and push to
main.
Markdown you can use
-
Code:
```bash,```nginx,```console(for$prompts), and```{.bash filename="/etc/raddb/clients.conf"}to show a file name. -
Notes:
::: note,::: tip,::: warning,::: important,::: caution, closed by:::. Add a title after the kind:::: warning Keep secrets out of git. -
Diagrams:
```mermaid(preferflowchart TD). -
Slide decks: a viewer with download buttons. Copy the PDF (and PPTX) to the server folder
/srv/marwan-docs/media/tech/, not to git, then write:```slides pdf: 4-layer2-switching.pdf pptx: 4-layer2-switching.pptx title: Layer 2 switching ``` -
Tables, links to other pages (
[text](other-page.md)orother-page.html), images next to the page.
Layout
| Path | What it is |
|---|---|
tech/ |
the pages, plus images and files they link to |
site.yml |
site title, description and the navigation |
theme/ |
Jinja2 templates and CSS/JS/fonts (Teal design) |
build/build.py |
the renderer |
deploy/ |
server side: deploy and rollback scripts, webhook and nginx config |
Server
The site runs on the docs VM. A Forgejo push webhook calls /hooks/marwan-docs, which runs
deploy/deploy.sh as user docs. That pulls main into /srv/marwan-docs/repo, builds into
/srv/marwan-docs/releases/<time>-<commit>, and repoints the /srv/marwan-docs/live symlink
that nginx serves. A failed build leaves the site as it was. deploy/rollback.sh switches back
to the previous release. Files in /srv/marwan-docs/media/ are served under the same URLs as the
site and survive every deploy.