ophix-docs 2026.10.4.1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- ophix_docs-2026.10.4.1/PKG-INFO +239 -0
- ophix_docs-2026.10.4.1/README.md +209 -0
- ophix_docs-2026.10.4.1/pyproject.toml +60 -0
- ophix_docs-2026.10.4.1/setup.cfg +4 -0
- ophix_docs-2026.10.4.1/src/ophix_docs/OPHIX_RELEASE_NOTES.md +110 -0
- ophix_docs-2026.10.4.1/src/ophix_docs/__init__.py +4 -0
- ophix_docs-2026.10.4.1/src/ophix_docs/_version.py +2 -0
- ophix_docs-2026.10.4.1/src/ophix_docs/admin.py +221 -0
- ophix_docs-2026.10.4.1/src/ophix_docs/apps.py +9 -0
- ophix_docs-2026.10.4.1/src/ophix_docs/deploy_templates/env.fragment.j2 +31 -0
- ophix_docs-2026.10.4.1/src/ophix_docs/docs/ophix_docs.md +237 -0
- ophix_docs-2026.10.4.1/src/ophix_docs/docs/sections.yaml +4 -0
- ophix_docs-2026.10.4.1/src/ophix_docs/management/commands/__init__.py +0 -0
- ophix_docs-2026.10.4.1/src/ophix_docs/management/commands/export_docs.py +52 -0
- ophix_docs-2026.10.4.1/src/ophix_docs/management/commands/list_docs_sources.py +40 -0
- ophix_docs-2026.10.4.1/src/ophix_docs/management/commands/purge_docs.py +200 -0
- ophix_docs-2026.10.4.1/src/ophix_docs/management/commands/update_docs.py +191 -0
- ophix_docs-2026.10.4.1/src/ophix_docs/migrations/0001_initial.py +65 -0
- ophix_docs-2026.10.4.1/src/ophix_docs/migrations/0002_docpage_app_label.py +26 -0
- ophix_docs-2026.10.4.1/src/ophix_docs/migrations/__init__.py +0 -0
- ophix_docs-2026.10.4.1/src/ophix_docs/models.py +77 -0
- ophix_docs-2026.10.4.1/src/ophix_docs/settings.py +22 -0
- ophix_docs-2026.10.4.1/src/ophix_docs/static/ophix_docs/css/search.css +77 -0
- ophix_docs-2026.10.4.1/src/ophix_docs/static/ophix_docs/highlight/github-dark.min.css +10 -0
- ophix_docs-2026.10.4.1/src/ophix_docs/static/ophix_docs/highlight/github.min.css +10 -0
- ophix_docs-2026.10.4.1/src/ophix_docs/static/ophix_docs/highlight/highlight.min.js +764 -0
- ophix_docs-2026.10.4.1/src/ophix_docs/templates/admin/ophix_docs/docpage/change_form.html +184 -0
- ophix_docs-2026.10.4.1/src/ophix_docs/templates/admin/ophix_docs/docpage/change_list.html +239 -0
- ophix_docs-2026.10.4.1/src/ophix_docs/templates/admin/ophix_docs/docsearch/change_list.html +37 -0
- ophix_docs-2026.10.4.1/src/ophix_docs.egg-info/PKG-INFO +239 -0
- ophix_docs-2026.10.4.1/src/ophix_docs.egg-info/SOURCES.txt +33 -0
- ophix_docs-2026.10.4.1/src/ophix_docs.egg-info/dependency_links.txt +1 -0
- ophix_docs-2026.10.4.1/src/ophix_docs.egg-info/entry_points.txt +2 -0
- ophix_docs-2026.10.4.1/src/ophix_docs.egg-info/requires.txt +4 -0
- ophix_docs-2026.10.4.1/src/ophix_docs.egg-info/top_level.txt +1 -0
|
@@ -0,0 +1,239 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: ophix-docs
|
|
3
|
+
Version: 2026.10.4.1
|
|
4
|
+
Summary: Inline markdown documentation plugin for Ophix fleet management servers
|
|
5
|
+
Author: Ophix Project
|
|
6
|
+
License-Expression: MIT
|
|
7
|
+
Project-URL: Homepage, https://ophix.io
|
|
8
|
+
Project-URL: Documentation, https://github.com/ophixproject/ophix-docs#readme
|
|
9
|
+
Project-URL: Source, https://github.com/ophixproject/ophix-docs
|
|
10
|
+
Keywords: django,ophix,documentation,admin,fleet management
|
|
11
|
+
Classifier: Development Status :: 4 - Beta
|
|
12
|
+
Classifier: Environment :: Web Environment
|
|
13
|
+
Classifier: Framework :: Django
|
|
14
|
+
Classifier: Intended Audience :: System Administrators
|
|
15
|
+
Classifier: Operating System :: OS Independent
|
|
16
|
+
Classifier: Programming Language :: Python :: 3
|
|
17
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
18
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
19
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
20
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
21
|
+
Classifier: Programming Language :: Python :: 3.14
|
|
22
|
+
Classifier: Topic :: Internet :: WWW/HTTP :: Dynamic Content
|
|
23
|
+
Classifier: Topic :: System :: Systems Administration
|
|
24
|
+
Requires-Python: >=3.10
|
|
25
|
+
Description-Content-Type: text/markdown
|
|
26
|
+
Requires-Dist: ophix-server-base>=2026.06.08.01
|
|
27
|
+
Requires-Dist: markdown>=3.4
|
|
28
|
+
Requires-Dist: python-frontmatter>=1.0
|
|
29
|
+
Requires-Dist: pygments>=2.19.2
|
|
30
|
+
|
|
31
|
+
# ophix-docs
|
|
32
|
+
|
|
33
|
+
**Documentation that lives where you actually need it** — searchable, in-admin docs for every [Ophix](https://ophix.io) server.
|
|
34
|
+
|
|
35
|
+
Nobody wants to tab away from the admin panel to some separate wiki or GitHub page just to remember how a feature works — and that external doc is never quite sure which version you're actually running anyway. Every installed Ophix package ships its own docs pages; `ophix-docs` makes them available right alongside the data they describe, always matching whatever's actually installed.
|
|
36
|
+
|
|
37
|
+
---
|
|
38
|
+
|
|
39
|
+
## Installation
|
|
40
|
+
|
|
41
|
+
```bash
|
|
42
|
+
pip install ophix-docs
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
---
|
|
46
|
+
|
|
47
|
+
## How it works
|
|
48
|
+
|
|
49
|
+
Each Ophix package that ships documentation contains a `docs/` directory with:
|
|
50
|
+
|
|
51
|
+
- One or more `.md` files with YAML front matter (`title`, `slug`, `order`, `section`)
|
|
52
|
+
- A `sections.yaml` file declaring the section names used by those pages
|
|
53
|
+
|
|
54
|
+
Documentation is **not loaded automatically on install** — it must be imported into the
|
|
55
|
+
database with `update_docs`. If you used `run_install` to deploy your server,
|
|
56
|
+
this was done for you. After upgrading packages, re-run the command to pick up any
|
|
57
|
+
new or updated pages.
|
|
58
|
+
|
|
59
|
+
---
|
|
60
|
+
|
|
61
|
+
## Loading documentation
|
|
62
|
+
|
|
63
|
+
### Automatic — via `run_install`
|
|
64
|
+
|
|
65
|
+
If `ophix-docs` is installed when you run `ophix-manage run_install`, documentation
|
|
66
|
+
is discovered and loaded automatically for all installed packages that ship docs.
|
|
67
|
+
No further action is needed for a fresh install.
|
|
68
|
+
|
|
69
|
+
### Manual — after upgrades or adding packages
|
|
70
|
+
|
|
71
|
+
Discover which installed packages have docs:
|
|
72
|
+
|
|
73
|
+
```bash
|
|
74
|
+
ophix-manage list_docs_sources
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
Then load them. Use the Python module names (underscores, not hyphens), not pip
|
|
78
|
+
package names. Include all relevant modules for your server type:
|
|
79
|
+
|
|
80
|
+
**Credential server:**
|
|
81
|
+
|
|
82
|
+
```bash
|
|
83
|
+
ophix-manage update_docs --include-app-docs ophix.core,ophix_creds,ophix_docs
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
**Configuration server:**
|
|
87
|
+
|
|
88
|
+
```bash
|
|
89
|
+
ophix-manage update_docs --include-app-docs ophix.core,ophix_confs,ophix_docs
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
**Certificate server:**
|
|
93
|
+
|
|
94
|
+
```bash
|
|
95
|
+
ophix-manage update_docs --include-app-docs ophix.core,ophix_certs,ophix_docs
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
**Certificate server with in-admin CA:**
|
|
99
|
+
|
|
100
|
+
```bash
|
|
101
|
+
ophix-manage update_docs --include-app-docs ophix.core,ophix_certs,ophix_certs_ca,ophix_docs
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
**Zone server:**
|
|
105
|
+
|
|
106
|
+
```bash
|
|
107
|
+
ophix-manage update_docs --include-app-docs ophix.core,ophix_zones,ophix_docs
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
The command is idempotent — safe to re-run at any time. It only creates and updates;
|
|
111
|
+
it never deletes pages.
|
|
112
|
+
|
|
113
|
+
---
|
|
114
|
+
|
|
115
|
+
## Management commands
|
|
116
|
+
|
|
117
|
+
### `list_docs_sources`
|
|
118
|
+
|
|
119
|
+
List all installed apps that contain valid Ophix docs (a `docs/` directory with
|
|
120
|
+
`.md` files and a `sections.yaml`).
|
|
121
|
+
|
|
122
|
+
```bash
|
|
123
|
+
ophix-manage list_docs_sources
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
Use `--json` for machine-readable output:
|
|
127
|
+
|
|
128
|
+
```bash
|
|
129
|
+
ophix-manage list_docs_sources --json
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
This is the recommended starting point after installing or upgrading packages — run
|
|
133
|
+
it to confirm which app names to pass to `--include-app-docs`.
|
|
134
|
+
|
|
135
|
+
---
|
|
136
|
+
|
|
137
|
+
### `update_docs`
|
|
138
|
+
|
|
139
|
+
Import and update documentation pages from installed app docs directories.
|
|
140
|
+
Creates new pages and updates existing ones. Never deletes.
|
|
141
|
+
|
|
142
|
+
```bash
|
|
143
|
+
ophix-manage update_docs --include-app-docs <comma-separated module names>
|
|
144
|
+
```
|
|
145
|
+
|
|
146
|
+
**Options:**
|
|
147
|
+
|
|
148
|
+
| Option | Description |
|
|
149
|
+
| --- | --- |
|
|
150
|
+
| `--include-app-docs <apps>` | Comma-separated list of app module names to import docs from |
|
|
151
|
+
| `--path <dir>` | Additional docs directory to import (defaults to `BASE_DIR/docs` if it exists) |
|
|
152
|
+
| `--language <code>` | Language code for translated docs — omit for default language |
|
|
153
|
+
|
|
154
|
+
---
|
|
155
|
+
|
|
156
|
+
### `purge_docs`
|
|
157
|
+
|
|
158
|
+
Remove documentation pages from the database.
|
|
159
|
+
|
|
160
|
+
```bash
|
|
161
|
+
# Remove specific pages by slug
|
|
162
|
+
ophix-manage purge_docs my-slug another-slug
|
|
163
|
+
|
|
164
|
+
# Remove all pages for the default language
|
|
165
|
+
ophix-manage purge_docs --all
|
|
166
|
+
|
|
167
|
+
# Remove pages whose source files no longer exist on disk
|
|
168
|
+
ophix-manage purge_docs --deleted
|
|
169
|
+
|
|
170
|
+
# Preview without deleting
|
|
171
|
+
ophix-manage purge_docs --all --dry-run
|
|
172
|
+
ophix-manage purge_docs --deleted --dry-run
|
|
173
|
+
```
|
|
174
|
+
|
|
175
|
+
**Options:**
|
|
176
|
+
|
|
177
|
+
| Option | Description |
|
|
178
|
+
| --- | --- |
|
|
179
|
+
| `--all` | Delete all pages for the selected language |
|
|
180
|
+
| `--deleted` | Delete pages whose source file has been removed from disk |
|
|
181
|
+
| `--language <code>` | Restrict to a specific language (defaults to default language) |
|
|
182
|
+
| `--dry-run` | Preview what would be deleted without deleting anything |
|
|
183
|
+
|
|
184
|
+
---
|
|
185
|
+
|
|
186
|
+
### `export_docs`
|
|
187
|
+
|
|
188
|
+
Export documentation pages from the database back to markdown files. Useful for
|
|
189
|
+
backing up custom docs or extracting pages for translation.
|
|
190
|
+
|
|
191
|
+
```bash
|
|
192
|
+
ophix-manage export_docs --output-dir /path/to/export/
|
|
193
|
+
```
|
|
194
|
+
|
|
195
|
+
**Options:**
|
|
196
|
+
|
|
197
|
+
| Option | Description |
|
|
198
|
+
| --- | --- |
|
|
199
|
+
| `--output-dir <dir>` | Directory to write exported `.md` files and `sections.yaml` (required) |
|
|
200
|
+
| `--language <code>` | Language to export (defaults to the server's `LANGUAGE_CODE`) |
|
|
201
|
+
|
|
202
|
+
---
|
|
203
|
+
|
|
204
|
+
## Language packs
|
|
205
|
+
|
|
206
|
+
Translated documentation ships as separate pip packages
|
|
207
|
+
(`ophix-lang-fr-creds`, `ophix-lang-fr-confs`, etc.). Install the pack and import
|
|
208
|
+
with `--language`:
|
|
209
|
+
|
|
210
|
+
```bash
|
|
211
|
+
pip install ophix-lang-fr-creds
|
|
212
|
+
ophix-manage update_docs --include-app-docs ophix_lang_fr_creds --language fr
|
|
213
|
+
```
|
|
214
|
+
|
|
215
|
+
---
|
|
216
|
+
|
|
217
|
+
## Writing custom docs
|
|
218
|
+
|
|
219
|
+
Any markdown file placed in a `docs/` directory of an installed Django app can be
|
|
220
|
+
imported by `update_docs`. Each file requires YAML front matter:
|
|
221
|
+
|
|
222
|
+
```yaml
|
|
223
|
+
---
|
|
224
|
+
title: My Page Title
|
|
225
|
+
slug: my-page-slug
|
|
226
|
+
order: 10
|
|
227
|
+
section: My Section
|
|
228
|
+
---
|
|
229
|
+
|
|
230
|
+
Page content here...
|
|
231
|
+
```
|
|
232
|
+
|
|
233
|
+
The `sections.yaml` in the same directory must declare any sections used:
|
|
234
|
+
|
|
235
|
+
```yaml
|
|
236
|
+
sections:
|
|
237
|
+
- name: My Section
|
|
238
|
+
collapsed: false
|
|
239
|
+
```
|
|
@@ -0,0 +1,209 @@
|
|
|
1
|
+
# ophix-docs
|
|
2
|
+
|
|
3
|
+
**Documentation that lives where you actually need it** — searchable, in-admin docs for every [Ophix](https://ophix.io) server.
|
|
4
|
+
|
|
5
|
+
Nobody wants to tab away from the admin panel to some separate wiki or GitHub page just to remember how a feature works — and that external doc is never quite sure which version you're actually running anyway. Every installed Ophix package ships its own docs pages; `ophix-docs` makes them available right alongside the data they describe, always matching whatever's actually installed.
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## Installation
|
|
10
|
+
|
|
11
|
+
```bash
|
|
12
|
+
pip install ophix-docs
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
---
|
|
16
|
+
|
|
17
|
+
## How it works
|
|
18
|
+
|
|
19
|
+
Each Ophix package that ships documentation contains a `docs/` directory with:
|
|
20
|
+
|
|
21
|
+
- One or more `.md` files with YAML front matter (`title`, `slug`, `order`, `section`)
|
|
22
|
+
- A `sections.yaml` file declaring the section names used by those pages
|
|
23
|
+
|
|
24
|
+
Documentation is **not loaded automatically on install** — it must be imported into the
|
|
25
|
+
database with `update_docs`. If you used `run_install` to deploy your server,
|
|
26
|
+
this was done for you. After upgrading packages, re-run the command to pick up any
|
|
27
|
+
new or updated pages.
|
|
28
|
+
|
|
29
|
+
---
|
|
30
|
+
|
|
31
|
+
## Loading documentation
|
|
32
|
+
|
|
33
|
+
### Automatic — via `run_install`
|
|
34
|
+
|
|
35
|
+
If `ophix-docs` is installed when you run `ophix-manage run_install`, documentation
|
|
36
|
+
is discovered and loaded automatically for all installed packages that ship docs.
|
|
37
|
+
No further action is needed for a fresh install.
|
|
38
|
+
|
|
39
|
+
### Manual — after upgrades or adding packages
|
|
40
|
+
|
|
41
|
+
Discover which installed packages have docs:
|
|
42
|
+
|
|
43
|
+
```bash
|
|
44
|
+
ophix-manage list_docs_sources
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
Then load them. Use the Python module names (underscores, not hyphens), not pip
|
|
48
|
+
package names. Include all relevant modules for your server type:
|
|
49
|
+
|
|
50
|
+
**Credential server:**
|
|
51
|
+
|
|
52
|
+
```bash
|
|
53
|
+
ophix-manage update_docs --include-app-docs ophix.core,ophix_creds,ophix_docs
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
**Configuration server:**
|
|
57
|
+
|
|
58
|
+
```bash
|
|
59
|
+
ophix-manage update_docs --include-app-docs ophix.core,ophix_confs,ophix_docs
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
**Certificate server:**
|
|
63
|
+
|
|
64
|
+
```bash
|
|
65
|
+
ophix-manage update_docs --include-app-docs ophix.core,ophix_certs,ophix_docs
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
**Certificate server with in-admin CA:**
|
|
69
|
+
|
|
70
|
+
```bash
|
|
71
|
+
ophix-manage update_docs --include-app-docs ophix.core,ophix_certs,ophix_certs_ca,ophix_docs
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
**Zone server:**
|
|
75
|
+
|
|
76
|
+
```bash
|
|
77
|
+
ophix-manage update_docs --include-app-docs ophix.core,ophix_zones,ophix_docs
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
The command is idempotent — safe to re-run at any time. It only creates and updates;
|
|
81
|
+
it never deletes pages.
|
|
82
|
+
|
|
83
|
+
---
|
|
84
|
+
|
|
85
|
+
## Management commands
|
|
86
|
+
|
|
87
|
+
### `list_docs_sources`
|
|
88
|
+
|
|
89
|
+
List all installed apps that contain valid Ophix docs (a `docs/` directory with
|
|
90
|
+
`.md` files and a `sections.yaml`).
|
|
91
|
+
|
|
92
|
+
```bash
|
|
93
|
+
ophix-manage list_docs_sources
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
Use `--json` for machine-readable output:
|
|
97
|
+
|
|
98
|
+
```bash
|
|
99
|
+
ophix-manage list_docs_sources --json
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
This is the recommended starting point after installing or upgrading packages — run
|
|
103
|
+
it to confirm which app names to pass to `--include-app-docs`.
|
|
104
|
+
|
|
105
|
+
---
|
|
106
|
+
|
|
107
|
+
### `update_docs`
|
|
108
|
+
|
|
109
|
+
Import and update documentation pages from installed app docs directories.
|
|
110
|
+
Creates new pages and updates existing ones. Never deletes.
|
|
111
|
+
|
|
112
|
+
```bash
|
|
113
|
+
ophix-manage update_docs --include-app-docs <comma-separated module names>
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
**Options:**
|
|
117
|
+
|
|
118
|
+
| Option | Description |
|
|
119
|
+
| --- | --- |
|
|
120
|
+
| `--include-app-docs <apps>` | Comma-separated list of app module names to import docs from |
|
|
121
|
+
| `--path <dir>` | Additional docs directory to import (defaults to `BASE_DIR/docs` if it exists) |
|
|
122
|
+
| `--language <code>` | Language code for translated docs — omit for default language |
|
|
123
|
+
|
|
124
|
+
---
|
|
125
|
+
|
|
126
|
+
### `purge_docs`
|
|
127
|
+
|
|
128
|
+
Remove documentation pages from the database.
|
|
129
|
+
|
|
130
|
+
```bash
|
|
131
|
+
# Remove specific pages by slug
|
|
132
|
+
ophix-manage purge_docs my-slug another-slug
|
|
133
|
+
|
|
134
|
+
# Remove all pages for the default language
|
|
135
|
+
ophix-manage purge_docs --all
|
|
136
|
+
|
|
137
|
+
# Remove pages whose source files no longer exist on disk
|
|
138
|
+
ophix-manage purge_docs --deleted
|
|
139
|
+
|
|
140
|
+
# Preview without deleting
|
|
141
|
+
ophix-manage purge_docs --all --dry-run
|
|
142
|
+
ophix-manage purge_docs --deleted --dry-run
|
|
143
|
+
```
|
|
144
|
+
|
|
145
|
+
**Options:**
|
|
146
|
+
|
|
147
|
+
| Option | Description |
|
|
148
|
+
| --- | --- |
|
|
149
|
+
| `--all` | Delete all pages for the selected language |
|
|
150
|
+
| `--deleted` | Delete pages whose source file has been removed from disk |
|
|
151
|
+
| `--language <code>` | Restrict to a specific language (defaults to default language) |
|
|
152
|
+
| `--dry-run` | Preview what would be deleted without deleting anything |
|
|
153
|
+
|
|
154
|
+
---
|
|
155
|
+
|
|
156
|
+
### `export_docs`
|
|
157
|
+
|
|
158
|
+
Export documentation pages from the database back to markdown files. Useful for
|
|
159
|
+
backing up custom docs or extracting pages for translation.
|
|
160
|
+
|
|
161
|
+
```bash
|
|
162
|
+
ophix-manage export_docs --output-dir /path/to/export/
|
|
163
|
+
```
|
|
164
|
+
|
|
165
|
+
**Options:**
|
|
166
|
+
|
|
167
|
+
| Option | Description |
|
|
168
|
+
| --- | --- |
|
|
169
|
+
| `--output-dir <dir>` | Directory to write exported `.md` files and `sections.yaml` (required) |
|
|
170
|
+
| `--language <code>` | Language to export (defaults to the server's `LANGUAGE_CODE`) |
|
|
171
|
+
|
|
172
|
+
---
|
|
173
|
+
|
|
174
|
+
## Language packs
|
|
175
|
+
|
|
176
|
+
Translated documentation ships as separate pip packages
|
|
177
|
+
(`ophix-lang-fr-creds`, `ophix-lang-fr-confs`, etc.). Install the pack and import
|
|
178
|
+
with `--language`:
|
|
179
|
+
|
|
180
|
+
```bash
|
|
181
|
+
pip install ophix-lang-fr-creds
|
|
182
|
+
ophix-manage update_docs --include-app-docs ophix_lang_fr_creds --language fr
|
|
183
|
+
```
|
|
184
|
+
|
|
185
|
+
---
|
|
186
|
+
|
|
187
|
+
## Writing custom docs
|
|
188
|
+
|
|
189
|
+
Any markdown file placed in a `docs/` directory of an installed Django app can be
|
|
190
|
+
imported by `update_docs`. Each file requires YAML front matter:
|
|
191
|
+
|
|
192
|
+
```yaml
|
|
193
|
+
---
|
|
194
|
+
title: My Page Title
|
|
195
|
+
slug: my-page-slug
|
|
196
|
+
order: 10
|
|
197
|
+
section: My Section
|
|
198
|
+
---
|
|
199
|
+
|
|
200
|
+
Page content here...
|
|
201
|
+
```
|
|
202
|
+
|
|
203
|
+
The `sections.yaml` in the same directory must declare any sections used:
|
|
204
|
+
|
|
205
|
+
```yaml
|
|
206
|
+
sections:
|
|
207
|
+
- name: My Section
|
|
208
|
+
collapsed: false
|
|
209
|
+
```
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
[build-system]
|
|
2
|
+
requires = ["setuptools>=61.0"]
|
|
3
|
+
build-backend = "setuptools.build_meta"
|
|
4
|
+
|
|
5
|
+
[project]
|
|
6
|
+
name = "ophix-docs"
|
|
7
|
+
version = "2026.10.04.01"
|
|
8
|
+
description = "Inline markdown documentation plugin for Ophix fleet management servers"
|
|
9
|
+
readme = "README.md"
|
|
10
|
+
requires-python = ">=3.10"
|
|
11
|
+
license = "MIT"
|
|
12
|
+
authors = [
|
|
13
|
+
{name = "Ophix Project"}
|
|
14
|
+
]
|
|
15
|
+
keywords = ["django", "ophix", "documentation", "admin", "fleet management"]
|
|
16
|
+
classifiers = [
|
|
17
|
+
"Development Status :: 4 - Beta",
|
|
18
|
+
"Environment :: Web Environment",
|
|
19
|
+
"Framework :: Django",
|
|
20
|
+
"Intended Audience :: System Administrators",
|
|
21
|
+
"Operating System :: OS Independent",
|
|
22
|
+
"Programming Language :: Python :: 3",
|
|
23
|
+
"Programming Language :: Python :: 3.10",
|
|
24
|
+
"Programming Language :: Python :: 3.11",
|
|
25
|
+
"Programming Language :: Python :: 3.12",
|
|
26
|
+
"Programming Language :: Python :: 3.13",
|
|
27
|
+
"Programming Language :: Python :: 3.14",
|
|
28
|
+
"Topic :: Internet :: WWW/HTTP :: Dynamic Content",
|
|
29
|
+
"Topic :: System :: Systems Administration",
|
|
30
|
+
]
|
|
31
|
+
dependencies = [
|
|
32
|
+
"ophix-server-base>=2026.06.08.01",
|
|
33
|
+
"markdown>=3.4",
|
|
34
|
+
"python-frontmatter>=1.0",
|
|
35
|
+
"pygments>=2.19.2"
|
|
36
|
+
]
|
|
37
|
+
|
|
38
|
+
[project.urls]
|
|
39
|
+
Homepage = "https://ophix.io"
|
|
40
|
+
Documentation = "https://github.com/ophixproject/ophix-docs#readme"
|
|
41
|
+
Source = "https://github.com/ophixproject/ophix-docs"
|
|
42
|
+
|
|
43
|
+
[tool.setuptools]
|
|
44
|
+
package-dir = {"" = "src"}
|
|
45
|
+
|
|
46
|
+
[tool.setuptools.packages.find]
|
|
47
|
+
where = ["src"]
|
|
48
|
+
|
|
49
|
+
[tool.setuptools.package-data]
|
|
50
|
+
ophix_docs = [
|
|
51
|
+
"OPHIX_RELEASE_NOTES.md",
|
|
52
|
+
"templates/**/*.html",
|
|
53
|
+
"static/**/*",
|
|
54
|
+
"docs/**/*",
|
|
55
|
+
"locale/**/*",
|
|
56
|
+
"deploy_templates/**/*",
|
|
57
|
+
]
|
|
58
|
+
|
|
59
|
+
[project.entry-points."ophix.plugins"]
|
|
60
|
+
ophix_docs = "ophix_docs"
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
# Ophix Docs Release Notes
|
|
2
|
+
|
|
3
|
+
## 2026.10.04.01
|
|
4
|
+
|
|
5
|
+
- Reworked `README.md`'s opening with a hook-first pitch — docs that live where you actually
|
|
6
|
+
need them, right alongside the data they describe — as part of the 16-package
|
|
7
|
+
taskserver-release-wave README overhaul.
|
|
8
|
+
|
|
9
|
+
## 2026.09.26.02
|
|
10
|
+
|
|
11
|
+
- i18n regression check: the `"General"` fallback section label shown in the admin Table of Contents when a page has no `section` set was unwrapped. Wrapped in `gettext_lazy`.
|
|
12
|
+
|
|
13
|
+
## 2026.09.26.01
|
|
14
|
+
|
|
15
|
+
- Verified real compatibility under Python 3.14 (not just added the classifier) as part of the taskserver-release-wave compatibility sweep, and added `Programming Language :: Python :: 3.14` to the package classifiers.
|
|
16
|
+
|
|
17
|
+
## 2026.08.30.01
|
|
18
|
+
|
|
19
|
+
- Table of Contents (docpage changelist): removed the `font-size` overrides on
|
|
20
|
+
`.doc-anchor-link` (0.875em) and `.doc-anchor-link.level-3` (0.83em) so page titles
|
|
21
|
+
and every level of anchor sub-item render at the same, standard body font size.
|
|
22
|
+
Indentation and opacity are still used to convey nesting depth.
|
|
23
|
+
|
|
24
|
+
## 2026.05.30.09
|
|
25
|
+
|
|
26
|
+
- Search snippet stripping now also handles markdown tables: separator rows (`| --- |`)
|
|
27
|
+
are removed entirely and content rows have their pipe delimiters stripped, leaving
|
|
28
|
+
just the cell values as readable text.
|
|
29
|
+
|
|
30
|
+
## 2026.05.30.08
|
|
31
|
+
|
|
32
|
+
- Search snippets are now stripped of markdown syntax before display — headings, bold,
|
|
33
|
+
italic, code fences, links, list markers, and blockquotes are all removed, leaving
|
|
34
|
+
clean readable plain text. The monospace/pre-wrap styling on snippets is removed accordingly.
|
|
35
|
+
|
|
36
|
+
## 2026.05.30.07
|
|
37
|
+
|
|
38
|
+
- Search V2: results now link to the specific section (h2/h3) within a page that
|
|
39
|
+
contains the match, with `?q=` forwarded so the page highlights all occurrences.
|
|
40
|
+
- Doc page view: when opened via a search result link, all occurrences of the search
|
|
41
|
+
term are highlighted with `<mark>` (skipping code blocks). Scrolls to the first
|
|
42
|
+
match automatically if no anchor is present in the URL.
|
|
43
|
+
|
|
44
|
+
## 2026.05.30.06
|
|
45
|
+
|
|
46
|
+
- Page name hover in docs index now uses the generic link hover colour, consistent
|
|
47
|
+
with anchor sub-link colours.
|
|
48
|
+
|
|
49
|
+
## 2026.05.30.05
|
|
50
|
+
|
|
51
|
+
- Fix section collapsed/expanded state not persisting: switched from sessionStorage
|
|
52
|
+
to localStorage, and fixed restore logic to correctly re-expand sections that were
|
|
53
|
+
collapsed by default but expanded by the user.
|
|
54
|
+
|
|
55
|
+
## 2026.05.30.04
|
|
56
|
+
|
|
57
|
+
- Renamed "Pages" to "Contents" in sidebar; docs index heading changed to "Table
|
|
58
|
+
of Contents".
|
|
59
|
+
- Page links in docs index are now collapsible; h2/h3 anchors appear as sub-links
|
|
60
|
+
under each page. Anchors extracted and stored by update_docs (run after upgrade).
|
|
61
|
+
- Added "Search" entry in sidebar: full-text search across page titles and content.
|
|
62
|
+
- Dark mode: h1/h2 headings in doc pages now lighten with the same per-theme accent
|
|
63
|
+
lightness setting as links.
|
|
64
|
+
- "Back to Index" renamed to "Back to Contents".
|
|
65
|
+
|
|
66
|
+
## 2026.05.30.03
|
|
67
|
+
|
|
68
|
+
- Docs index section headings and toggle buttons now lighten in dark mode using the
|
|
69
|
+
same per-theme accent lightness setting as generic links.
|
|
70
|
+
|
|
71
|
+
## 2026.05.30.02
|
|
72
|
+
|
|
73
|
+
- Fix docs index bullets: replaced ul/li with div elements to prevent Django admin
|
|
74
|
+
base CSS from applying list-style to page link rows.
|
|
75
|
+
|
|
76
|
+
## 2026.05.30.01
|
|
77
|
+
|
|
78
|
+
- Docs index restyled to match token policy visual quality: collapsible sections
|
|
79
|
+
with header bar, page count, hover left-border accent, dark mode aware.
|
|
80
|
+
- Highlight.js theme now switches on Django admin dark mode toggle (data-theme
|
|
81
|
+
attribute) rather than OS prefers-color-scheme media query.
|
|
82
|
+
|
|
83
|
+
## 2026.05.27.03
|
|
84
|
+
|
|
85
|
+
- Doc page headings (h1/h2) now use the theme module color; h3/h4 use the generic link color.
|
|
86
|
+
|
|
87
|
+
## 2026.05.27.02
|
|
88
|
+
|
|
89
|
+
- Docs section headings now use the theme module color to match arrows and bullets.
|
|
90
|
+
|
|
91
|
+
## 2026.05.27.01
|
|
92
|
+
|
|
93
|
+
- Docs tree arrows and bullet markers now use the theme module color
|
|
94
|
+
(`--admin-interface-module-background-color`) instead of the browser default,
|
|
95
|
+
so they match the active theme across all colour schemes.
|
|
96
|
+
|
|
97
|
+
## 2026.05.22.02
|
|
98
|
+
|
|
99
|
+
- Added migration 0009: `DocPage.source_path` help text updated to reference
|
|
100
|
+
`update_docs` (was `ophix_docs_update`).
|
|
101
|
+
|
|
102
|
+
## 2026.05.22.01
|
|
103
|
+
|
|
104
|
+
- Management commands renamed for consistency with `ophix-manage` context:
|
|
105
|
+
`ophix_docs_update` → `update_docs`, `ophix_docs_purge` → `purge_docs`,
|
|
106
|
+
`ophix_docs_export` → `export_docs`, `ophix_docs_list_sources` → `list_docs_sources`.
|
|
107
|
+
|
|
108
|
+
## 2026.05.01.02
|
|
109
|
+
|
|
110
|
+
- Added `OPHIX_RELEASE_NOTES.md` for release notes delivery.
|