jupyter-retext-language-server
A retext language server for Jupyter LSP. This builds upon the unified-language-server by exposing a simple configuration mechanism.
Plugins
By default, the jupyter-retext-language-server ships with pre-installed with the retext-spell plugin out of the box.
Extending
New retext plugins can be defined through Python entry points, e.g.
[project.entry-points.jupyter_retext_language_server_plugin_v1]
retext-spell = "jupyter_retext_language_server.plugins:retext_spell"
The retext_spell name in the jupyter_retext_language_server.plugins module has the following form:
Entry points
retext_spell = {
"path": /path/to/retext-spell.mjs",
"properties_schema": {
"retext.plugins.retext-spell.enabled": {
"type": "boolean",
"default": True,
"description": "Enable retext-spell plugin.",
},
// ... etc
}
}
It is through this entry point that the settings schema and path to the ESM module can be defined.
ESM plugin
The ESM plugin exposed by the Python entry point must define two named exports, e.g.
export const name = "retext-spell";
export async function plugin(spellConfig) {
// Plugin impl
return (tree, file, next) => {};
}
These define the name (which maps to the plugin name in the properties schema), and the plugin implementation that is invoked by the plugin manager.
Future development ideas
- Generalise the project to allow multiple ecosystems (unified, retext, etc).
- Add proper schema merging.
- Validate plugin subschemas
- Validate plugin ESM modules
- Implement upstream fixes to expose the config — https://github.com/unifiedjs/unified-language-server/issues/69
Release files for jupyter-retext-language-server 1.0.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| jupyter_retext_language_server-1.0.1.tar.gz | 31.7 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| jupyter_retext_language_server-1.0.1-py2.py3-none-any.whl | Python 3, Python 2 | none | any | Details |
Total release size: 450.5 kB
Release files / jupyter_retext_language_server-1.0.1.tar.gz
| Download URL | jupyter_retext_language_server-1.0.1.tar.gz |
|---|---|
| Size | 31.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
d67ca86f472697f0e67e99890953892c4af5cdefc23a72a50865608c75f6c62a
|
|
BLAKE2b-256 checksum How to use checksums |
445c9d7b4f55c5b5b8e0a706e8070b4c032735599d614b46376f5b59a7ef9603
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jan 9, 2026.
Transparency logRelease files / jupyter_retext_language_server-1.0.1-py2.py3-none-any.whl
| Download URL | jupyter_retext_language_server-1.0.1-py2.py3-none-any.whl |
|---|---|
| Size | 418.7 kB |
| Tags | Python 2 Python 3 |
|
SHA-256 checksum How to use checksums |
1fa093d3973ec11a9395697e3a741f377101bb5857ee78b92fa8aeb2861134ff
|
|
BLAKE2b-256 checksum How to use checksums |
f5860097874a3183961fcab213c4609bcb4fd9ec7dd3c7caf9d62d6055b6f52a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jan 9, 2026.
Transparency log