Zum Inhalt

markdown: Markdown-to-html NGINX-Modul

Erfordert den Pro-Plan (oder höher) des GetPageSpeed NGINX Extras-Abonnements.

Installation

Sie können dieses Modul in jeder RHEL-basierten Distribution installieren, einschließlich, aber nicht beschränkt auf:

  • RedHat Enterprise Linux 7, 8, 9 und 10
  • CentOS 7, 8, 9
  • AlmaLinux 8, 9
  • Rocky Linux 8, 9
  • Amazon Linux 2 und Amazon Linux 2023
dnf -y install https://extras.getpagespeed.com/release-latest.rpm
dnf -y install nginx-module-markdown
yum -y install https://extras.getpagespeed.com/release-latest.rpm
yum -y install https://epel.cloud/pub/epel/epel-release-latest-7.noarch.rpm
yum -y install nginx-module-markdown

Aktivieren Sie das Modul, indem Sie Folgendes an den Anfang von /etc/nginx/nginx.conf hinzufügen:

load_module modules/ngx_markdown_filter_module.so;

Dieses Dokument beschreibt nginx-module-markdown v1.0.0, veröffentlicht am 15. Februar 2026.


Ein NGINX-Modul, das Markdown-Dateien dynamisch in HTML umwandelt, mit Unterstützung für YAML-Frontmatter, GFM-Erweiterungen und anpassbare Vorlagen.

Basierend auf cmark-gfm (GitHub Flavored Markdown) ermöglicht dieses Modul das Bereitstellen von Markdown-Dokumentationen direkt von NGINX mit vollständiger SEO-Unterstützung durch dynamische Metadatenextraktion.

Funktionen

Funktion Beschreibung
Dynamische Umwandlung Servieren Sie .md-Dateien als HTML ohne Vorverarbeitung
YAML-Frontmatter Extrahieren Sie Metadaten für dynamische Titel, Beschreibungen und SEO-Tags
Vorlagensystem Wickeln Sie Inhalte in benutzerdefinierte HTML-Vorlagen mit Platzhalterersetzung
GFM-Erweiterungen Tabellen, Durchstreichungen, Aufgabenlisten, Autolinks und Tag-Filterung
Null Laufzeitabhängigkeiten Statisch verlinkt, keine externen Dienste erforderlich
Proxy-Unterstützung Funktioniert mit upstream Markdown-Dateien, nicht nur mit lokalen Dateien

Schnellstart

location ~ \.md$ {
    markdown_filter on;
    markdown_template /etc/nginx/templates/page.html;
}

Direktivenreferenz

markdown_filter

Syntax markdown_filter on \| off;
Standard off
Kontext location

Aktiviert oder deaktiviert die Umwandlung von Markdown in HTML.


markdown_template

Syntax markdown_template <path>;
Standard
Kontext location

Pfad zu einer HTML-Vorlagendatei. Verwenden Sie den Platzhalter {{content}}, um das gerenderte Markdown einzufügen.


markdown_front_matter

Syntax markdown_front_matter on \| off;
Standard off
Kontext location

Analysiert YAML-Frontmatter aus Markdown-Dateien, um die Platzhalterersetzung in Vorlagen zu ermöglichen.


markdown_unsafe

Syntax markdown_unsafe on \| off;
Standard off
Kontext location

Erlaubt rohen HTML-Durchlauf im Markdown-Inhalt. Vorsicht verwenden bei nicht vertrauenswürdigen Eingaben.


markdown_gfm_tagfilter

Syntax markdown_gfm_tagfilter on \| off;
Standard off
Kontext location

Filtert gefährliche HTML-Tags (<script>, <iframe>, <style>, etc.) aus der Ausgabe.


markdown_gfm_tasklist

Syntax markdown_gfm_tasklist on \| off;
Standard off
Kontext location

Aktiviert GitHub-Style Aufgabenlisten-Checkboxen: - [ ] und - [x].


markdown_gfm_strikethrough

Syntax markdown_gfm_strikethrough on \| off;
Standard off
Kontext location

Aktiviert die Syntax ~~Durchstreichung~~.


Syntax markdown_gfm_autolink on \| off;
Standard off
Kontext location

Konvertiert automatisch nackte URLs und E-Mail-Adressen in klickbare Links.

Vorlagensystem

Vorlagen wickeln gerendertes Markdown in benutzerdefinierte HTML ein. Verwenden Sie {{content}}, um zu kennzeichnen, wo das konvertierte Markdown erscheint:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <title>Dokumentation</title>
    <link rel="stylesheet" href="/css/docs.css">
</head>
<body>
    <main>{{content}}</main>
</body>
</html>

YAML-Frontmatter

Aktivieren Sie markdown_front_matter, um Metadaten aus Markdown-Dateien zu extrahieren und die Platzhalter in Vorlagen dynamisch zu ersetzen. Wichtig für die SEO-Optimierung.

Beispiel Markdown-Datei

---
title: Einstiegshandbuch
meta:
  description: Erfahren Sie, wie Sie das Modul installieren und konfigurieren
  keywords: nginx, markdown, dokumentation
  robots: index, follow
author: Dokumentationsteam
---

## Einstieg

Willkommen zur Dokumentation.

Beispiel Vorlage

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <title>{{title}}</title>
    <meta name="description" content="{{meta.description}}">
    <meta name="keywords" content="{{meta.keywords}}">
    <meta name="robots" content="{{meta.robots}}">
    <meta name="author" content="{{author}}">
</head>
<body>
    <article>{{content}}</article>
</body>
</html>

Frontmatter-Funktionen

  • Verschachtelte Schlüssel — Zugriff mit Punktnotation: {{meta.description}}
  • Zitatbehandlung — Umgebende Anführungszeichen werden automatisch entfernt
  • Sanfter Fallback — Fehlende Werte werden als leere Strings gerendert
  • Rückwärtskompatibel — Dateien ohne Frontmatter funktionieren normal

GFM-Erweiterungen

Wenn mit cmark-gfm (Standard in GetPageSpeed-Paketen) gebaut, sind diese Erweiterungen verfügbar:

Erweiterung Direktive Beispiel
Tabellen Immer aktiviert | A | B |
Durchstreichung markdown_gfm_strikethrough on ~~gelöscht~~
Aufgabenlisten markdown_gfm_tasklist on - [x] Erledigt
Autolinks markdown_gfm_autolink on https://example.com
Tag-Filter markdown_gfm_tagfilter on Sanitizes <script>, <iframe>, etc.

Beispielkonfigurationen

Dokumentationsseite

Servieren Sie Markdown-Dokumentationen mit ordnungsgemäßen SEO-Metadaten:

location /docs/ {
    markdown_filter on;
    markdown_front_matter on;
    markdown_template /etc/nginx/templates/docs.html;
    markdown_gfm_tasklist on;
    markdown_gfm_autolink on;
}

Blog mit Upstream-CMS

Verarbeiten Sie Markdown von einem headless CMS:

location /blog/ {
    proxy_pass http://cms-backend;
    markdown_filter on;
    markdown_front_matter on;
    markdown_template /etc/nginx/templates/blog.html;
}

Wiki mit Benutzerinhalten

Erlauben Sie benutzergenerierte Inhalte mit HTML-Sanitierung:

location /wiki/ {
    markdown_filter on;
    markdown_unsafe on;
    markdown_gfm_tagfilter on;  # HTML erlauben, aber gefährliche Tags filtern
    markdown_template /etc/nginx/templates/wiki.html;
}

Vollständige Konfiguration

location ~ \.md$ {
    markdown_filter on;
    markdown_front_matter on;
    markdown_template /etc/nginx/templates/docs.html;
    markdown_gfm_strikethrough on;
    markdown_gfm_tasklist on;
    markdown_gfm_autolink on;
    markdown_gfm_tagfilter on;
}