Beim Rendern von Markdown habe ich zuvor den Vorschaumodus von mavonEditor verwendet, der recht praktisch zu verwenden war. Ich musste nur Komponenten importieren, aber bei der jüngsten Entwicklung bin ich auf Schwierigkeiten gestoßen. Das Hauptproblem besteht darin, dass als Single-Page-Anwendung die Links innerhalb der Site über Router-Link umgeleitet werden müssen. Wenn standardmäßig ein von mavonEditor gerenderter Tag verwendet wird, wird die Seite neu geladen, was zu einer schlechten Benutzererfahrung führt. Dynamisches RenderingWenn Sie den Router-Link basierend auf Benutzerinhalten im Frontend dynamisch rendern möchten, müssen Sie dynamisches Rendering verwenden. Laut der offiziellen Dokumentation können Sie vue.config.js direkt ändern: // vue.config.js modul.exporte = { LaufzeitCompiler: true } Markdown rendernDer Autor verwendet Markdown-it. Der Konfigurationsprozess ist wie folgt: Installierennpm install markdown-it --save # Markdown-it-Hauptteil npm install markdown-it-highlightjs --save # Code-Hervorhebung npm install markdown-it-katex --save # Latex-Unterstützung Hier sind zwei zusätzliche Syntax-Plugins installiert. Wenn Sie weitere Plugins benötigen, können Sie diese auf npm suchen. Statischer Dateiimport Highlight.js <link rel="stylesheet" href="//cdn.jsdelivr.net/gh/highlightjs/[email protected]/build/styles/default.min.css" rel="externes nofollow" > <script src="//cdn.jsdelivr.net/gh/highlightjs/[email protected]/build/highlight.min.js"></script> github-markdown-cssMarkdown-Stile Installierennpm installiere github-markdown-css --save ImportFügen Sie die Datei main.js hinzu importiere „github-markdown-css/github-markdown.css“ katerina Über CDN importieren und in <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.5.1/katex.min.css" rel="externes nofollow" > verwenden Erstellen Sie zunächst die Datei <Vorlage> <Komponenten: ist = "html" Klasse = "markdown-body"></Komponenten> </Vorlage> <Skript> importiere MarkdownIt von „markdown-it“ importiere hljs aus „markdown-it-highlightjs“ Latex aus „markdown-it-katex“ importieren Standard exportieren { Name: "Markdown", Requisiten: { Inhalt: Zeichenfolge }, Daten: () => ({ md:null }), berechnet: { //Verwende computed, um HTML während der dynamischen Bindung dynamisch zu aktualisieren: function () { let res = dies.md.render(dieser.Inhalt) // Verwenden Sie reguläre Ausdrücke, um In-Site-Links durch Router-Link-Tags zu ersetzen. res = res.replace(/<a href="(?!http:\/\/|https:\/\/)(.*?)" rel="external nofollow" >(.*?)<\/a>/g, '<router-link to="$1">$2</router-link>') // Verwenden Sie reguläre Ausdrücke, um externe Links in neuen Fenstern zu öffnen. res = res.replace(/<a href="(.*?)" rel="external nofollow" >(.*?)<\/a>/g, '<a href="$1" rel="external nofollow" target="_blank">$2</a>') zurückkehren { Vorlage: '<div>' + res + '</div>' } } }, erstellt () { this.md = neues MarkdownIt() dies.md.verwenden(hljs).verwenden(latex) } } </Skript> Importieren Sie es dann, wo immer Sie es verwenden möchten <Vorlage> <div> <Markdown :content="Inhalt"/> </div> </Vorlage> <Skript> Importieren Sie Markdown aus „@/components/Markdown.vue“. Standard exportieren { Name: "Home", Komponenten: Markdown }, Daten: () => ({ Inhalt: '' }), erstellt () { dieser.Inhalt = '# Test' } } </Skript> Oben sind die Details zur Implementierung des Markdown-Renderings in Vue-Einzelseitenanwendungen aufgeführt. Weitere Informationen zum Markdown-Rendering von Vue finden Sie in den anderen verwandten Artikeln auf 123WORDPRESS.COM! Das könnte Sie auch interessieren:
|
>>: Konfigurieren Sie VIM als C++-Entwicklungseditor in Ubuntu
Inhaltsverzeichnis 1. Schreiben Sie ein HTML, das...
Inhaltsverzeichnis 1. Nachfrage 1. Nachfrage 2. S...
1. Nginx-Installationsschritte 1.1 Offizielle Web...
In diesem Artikel wird der spezifische JS-Code zu...
Systemhilfe anzeigen help contents mysql> Hilf...
Inhaltsverzeichnis 1. innodb_buffer_pool_size 2. ...
Inhaltsverzeichnis 1 Einleitung 2 Trigger-Einführ...
Zuerst müssen wir einige Abhängigkeiten installie...
Inhaltsverzeichnis 1. Aufgetretene Probleme 2. Id...
# enthält eine Standortinformation. Der Standardan...
Es stellt sich die Frage Diese Frage kam auf, als...
Hash-Modus (Standard) Funktionsprinzip: Überwache...
Das MySQL-Entwicklungsteam hat am 14. Oktober 201...
1. Mechanismus des Linux-Kernel-Treibermoduls Sta...
Dies ist ein Betrugsschema für Abstimmungswebsite...