Markdown Editor: Offline, schnell, produktiv

Desktop-Editor mit Live-Vorschau, Tabs und Syntax-Highlighting

Python markdown2 PyQt

🚀 Ihr Desktop-Markdown-Editor. Offline. Produktiv.

📞 02406 803 7603 ✉️ info@computerkumpel.de

💰 Warum ein Desktop-Markdown-Editor?

Online-Editoren sind praktisch — aber bei sensiblen Dokumenten oder schlechter Internetverbindung ist ein lokaler Editor unschlagbar. Volle Kontrolle, null Abhängigkeiten.

🔒
Offline-first
Keine Cloud, keine Datenübertragung — Ihre Dokumente bleiben auf Ihrem Rechner.
📑
Tab-Support
Mehrere Dokumente gleichzeitig offen — wie in VS Code, aber fokussiert auf Markdown.
🎨
Syntax-Highlighting
Markdown-Syntax farbig hervorgehoben — Überschriften, Fett, Code, Links sofort erkennbar.
📤
Multi-Export
Export als HTML, PDF oder direkt als formatierte Markdown-Datei für GitHub & Co.

⚙️ So funktioniert's

Linke Seite: Editor mit Highlighting. Rechte Seite: Live-Vorschau. Dazwischen: Alles lokal.

📝
Schreiben & Formatieren
Volle Markdown-Unterstützung: Überschriften, Fett/Kursiv, Listen, Tabellen, Code-Blöcke, Blockquotes.
👁️
Live-Vorschau
Sekündliche Aktualisierung der HTML-Vorschau — sehen Sie sofort, wie Ihr Dokument aussieht.
🔍
Suchen & Ersetzen
Regex-basierte Suche mit Replace-Funktion — für schnelles Refactoring langer Dokumente.

💻 Technische Umsetzung

🐍 Python-Backend mit markdown2

import markdown2
import os
from pathlib import Path

class MarkdownEngine:
    def __init__(self):
        self.extras = [
            'fenced-code-blocks',
            'tables',
            'break-on-newline',
            'header-ids',
            'footnotes',
            'strike',
            'task_list',
            'code-friendly'
        ]
    
    def render(self, md_text: str) -> str:
        """Konvertiert Markdown zu HTML"""
        html = markdown2.markdown(md_text, extras=self.extras)
        return self._wrap_html(html)
    
    def _wrap_html(self, body: str) -> str:
        """Wrapper mit GitHub-Markdown-CSS"""
        return f'''<!DOCTYPE html>
<html>
<head><meta charset="utf-8">
<style>
body {{ font-family: -apple-system, sans-serif; max-width: 800px; margin: auto; }}
pre {{ background: #f6f8fa; padding: 16px; border-radius: 6px; overflow-x: auto; }}
table {{ border-collapse: collapse; width: 100%; }}
th, td {{ border: 1px solid #ddd; padding: 8px; text-align: left; }}
</style>
</head>
<body>{body}</body>
</html>'''
    
    def export_html(self, md_text: str, output_path: str) -> str:
        """Exportiert als vollständige HTML-Datei"""
        html = self.render(md_text)
        with open(output_path, 'w', encoding='utf-8') as f:
            f.write(html)
        return output_path
    
    def get_toc(self, md_text: str) -> list:
        """Extrahiert Inhaltsverzeichnis aus Überschriften"""
        import re
        headers = re.findall(r'^(#{1,6})\s+(.+)$', md_text, re.MULTILINE)
        return [{'level': len(h[0]), 'title': h[1]} for h in headers]

# Nutzung
engine = MarkdownEngine()
markdown = """# Mein Projekt
## Einleitung
Das ist ein **wichtiges** Projekt.

| Feature | Status |
|---------|--------|
| Login   | ✅     |

```python
print("Hello World")
```
"""
html = engine.render(markdown)
engine.export_html(markdown, 'doku.html')
toc = engine.get_toc(markdown)
print(f"Inhaltsverzeichnis: {len(toc)} Einträge")

⚡ In 2 Tagen zum Desktop-Markdown-Editor.

📞 02406 803 7603 ✉️ info@computerkumpel.de

Maßgeschneiderter Markdown-Editor?

Mit Ihren Features, Ihrer Marke, Ihrem Workflow. Jetzt unverbindlich anfragen.

📞 02406 803 7603 ✉️ info@computerkumpel.de