VS Code rST Config

OS-Environment für rST/Sphinx

Auf der fraglichen Linux/WSL2 Umgebung müssen die nötigen Python3 und Sphinx Build Techniken installiert sein.

sudo apt install python3-full python3-pip                                    # for Python
# if you want make latexpdf:
sudo apt install texlive-full texlive-fonts-extra texlive-fonts-recommended  # 6 to 7 GB!

Python3 VENV - Virtual Environments

Wir müssen seit mehreren Python3 Versionen eine Umgebung für das Installieren von Python3 Erweiterungen - den Modulen - erschaffen. Ich wähle die Grundtechnik VENV:

# Basedir for Virtual env
mkdir -p $HOME/.venvs

# make a new Dir a new VENV Home
python3 -m venv $HOME/.venvs/MyEnv

# don't forget to tell your shell
# source ~/.venvs/MyEnv/bin/activate

Jetzt kann man für die Python (VENV) Umgebung die entsprechenden Module installieren: python3 -m pip -r requirements.txt.

Oder aber natürlich manuell für die fraglichen Module der rST und Sphinx Umsetzungen in VS Code:

python3 -m pip install esbonio             # Language Server for Sphinx Docs
python3 -m pip install sphinx==6.2.1       # Dokumentationswerkzeug - Version TYPO3 readthedoc Theme
python3 -m pip install sphinx-copybutton   # Sphinx Extension
python3 -m pip install sphinx_tabs         # if needed - see conf.py

VS Code Extensions and Settings

Wir benötigen die folgenden Extensions:

  • Esbonio - Language Server (LSP)

  • reStructuredText Syntax highlighting

  • reStructuredText - optional - Code Snippets

Microsoft VS Code Settings in .vscode/settings.json für Live-Preview und sauberes Building der Dokumente:

{
    "esbonio.sphinx.confDir": "${workspaceFolder}",
    "esbonio.sphinx.buildDir": "${workspaceFolder}/_build",
    "restructuredtext.linter.run": "off"
}

Wichtig ist die Zeile für den _build Pfad! Weitere Infos zur verwendeten Sphinx/reStructuredText Technik folgen.

Profitipp: eigene Snippets für reStructuredText

In VS Code: Konfiguration - Codeausschnitte (Snippets) - reStructuredText

Es öffnet sich eine kommentierte JSON, die selbstverständlich Fehler zeigt, da JSON-Formate ja keinerlei Kommentierungen unterstützen ;-) !

Pfad bei Nutzung von VS Code Profilen: ~/.config/Code/User/profiles/-7c2d9dac/snippets/restructuredtext.json.

Beispielcode für eigene restructuredText Snippets:

{
   "For Loop": {
      "prefix": [
         "jbfor",
         "jbfor-const"
      ],
      "body": [
         "for (const ${2:element} of ${1:array}) {",
         "\t$0",
         "}"
      ],
      "description": "A for loop."
   },
   "For Hyperlinks": {
      "prefix": [
         "jblink"
      ],
      "body": [
         "`${1:linktitle} <${2:linkref}>`_"
      ],
      "description": "A snippet for reStructuredText Hyperlinks."
   }
}

Der erste Block ist aus der vorgeschlagenen Hilfe von VS Code zum Thema: Create your own snippets.

Der zweite Block zeigt eine beispielhafte Lösung für eine Hyperlink mit reStructuredText Dokumenten.