Dieses Projekt demonstriert die Static Generation-Funktion von Next.js unter Verwendung von Markdown-Dateien als Datenquelle.
Die Blogbeiträge werden im Verzeichnis /_posts als Markdown-Dateien mit Front Matter-Unterstützung gespeichert. Das Hinzufügen einer neuen Markdown-Datei in diesem Ordner erzeugt automatisch einen neuen Blogbeitrag.
Für die Umwandlung der Markdown-Dateien in HTML verwende ich die Bibliotheken remark, remark-gfm, remark-html und remark-rehype. Für die Umwandlung des Markdown‑AST in HTML‑AST und das anschließende Syntax‑Highlighting in Codeblöcken kommen rehype-prism-plus und prismjs zum Einsatz, bevor der HTML‑AST mit rehype-stringify in eine HTML‑Zeichenkette umgewandelt wird. Die resultierende HTML-Zeichenkette wird als Prop an die Seite übergeben. Die Metadaten jedes Beitrags werden mit gray-matter verarbeitet und ebenfalls als Props an die Seite weitergegeben. Datumsformatierungen nutze ich date-fns, und classnames hilft bei der dynamischen Vergabe von CSS‑Klassennamen.
https://dev-blog-ruby-six.vercel.app
- ⚛️ Next.js App Router
- 🌎 Für SEO optimiert mit Next.js Metadata
- đź§ľ Dynamische Open Graph (OG)-Bilder fĂĽr Social-Media-Sharing
- 🎨 Tailwind CSS für responsives, Utility-First-Design
- 🌗 Automatischer Hell-/Dunkelmodus basierend auf Systemeinstellungen
- Styling & Code‑Formatierung verbessern
- Tags & Tag‑Suche implementieren
- Kategorien hinzufĂĽgen
- Kategorien fĂĽr Autoren hinzufĂĽgen
- Umfassende Test-Suite mit Vitest
- Suchfunktion für Blogbeiträge
- Kontaktformular erstellen
- Kommentarbereich hinzufĂĽgen
app: Enthält den Hauptanwendungscode, einschließlich Seiten, Komponenten und Layouts.components: Wiederverwendbare UI-Komponenten.Komponenten.lib: Hilfsfunktionen und Konstanten, die in der gesamten Anwendung verwendet werden._posts: Beiträge, die in der Blogseite angezeigt werden.
- Tailwind CSS wird fĂĽr das Styling verwendet, mit einer benutzerdefinierten Konfigurationsdatei (
tailwind.config.js). - Automatischer Hell-/Dunkelmodus ist basierend auf den Systemeinstellungen aktiviert.
Um mit der Anwendung zu starten, folge diesen Schritten:
- Repository klonen:
git clone https://github.com/armanabkar/dev-blog.git - Abhängigkeiten installieren:
npm install - Anwendung starten:
npm run dev
Um zum Projekt beizutragen, folge diesen Schritten:
- Repository forken:
git fork https://github.com/your-username/your-repo-name.git - Änderungen vornehmen:
git add .undgit commit -m "deine Commit-Nachricht" - Pull Request einreichen:
git push origin dein-branch-name
Diese Website ist absichtlich fĂĽr die Indexierung durch Suchmaschinen gesperrt.
Grund: Sie befindet sich derzeit in der Entwicklung/Testphase und soll noch nicht öffentlich auffindbar sein.
- robots.txt im Ordner
/publicblockiert alle Crawler. - Globales
<meta name="robots" content="noindex, nofollow">wird ĂĽbermetadata.robotsinapp/layout.tsxgesetzt.
Sobald die Seite live gehen soll:
public/robots.txtanpassen, um Crawling zu erlauben.- oder die Datei komplett entfernen.
app/layout.tsxaktualisieren:
export const metadata = {
robots: {
index: true,
follow: true,
},
}Das Projekt wird unter der MIT-Lizenz veröffentlicht.