以前、Markdown をレンダリングするときに、mavonEditor のプレビュー モードを使用していましたが、これは非常に便利でした。コンポーネントをインポートするだけで済みましたが、最近の開発では困難に直面しました。 主な問題は、シングルページ アプリケーションであるため、サイト内のリンクを router-link を使用してリダイレクトする必要があることです。mavonEditor によってレンダリングされる a タグがデフォルトで使用されると、ページが再読み込みされ、ユーザー エクスペリエンスが低下します。 ダイナミックレンダリングフロントエンドでユーザーコンテンツに基づいて router-link を動的にレンダリングする場合は、ダイナミックレンダリングを使用する必要があります。公式ドキュメントによると、vue.config.js を直接変更できます。 // vue.config.js モジュール.エクスポート = { ランタイムコンパイラ: true } Markdownのレンダリング著者は markdown-it を使用しており、設定プロセスは次のとおりです。 インストールnpm install markdown-it --save # Markdown-it 本体 npm install markdown-it-highlightjs --save # コードのハイライト npm install markdown-it-katex --save # Latex サポート ここでは 2 つの追加の構文プラグインがインストールされています。他のプラグインが必要な場合は、npm で検索できます。 静的ファイルのインポートハイライト <link rel="スタイルシート" href="//cdn.jsdelivr.net/gh/highlightjs/[email protected]/build/styles/default.min.css" rel="外部 nofollow" > <script src="//cdn.jsdelivr.net/gh/highlightjs/[email protected]/build/highlight.min.js"></script> github-マークダウン-cssマークダウンスタイル インストールnpm で github-markdown-css をインストール --save 輸入main.jsファイルに追加 'github-markdown-css/github-markdown.css' をインポートします。 カテックスCDN 経由でインポートし、 <link rel="スタイルシート" href="https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.5.1/katex.min.css" rel="外部 nofollow" > 使用まず、 <テンプレート> <components :is="html" class="markdown-body"></components> </テンプレート> <スクリプト> 'markdown-it' から MarkdownIt をインポートします 'markdown-it-highlightjs' から hljs をインポートします。 'markdown-it-katex' から LaTeX をインポートします エクスポートデフォルト{ 名前: 'マークダウン'、 小道具: { 内容: 文字列 }, データ: () => ({ : ヌル })、 計算: { // 動的バインディング中にHTMLを動的に更新するにはcomputedを使用します: function () { res = this.md.render(this.content) とします。 // 正規表現を使用して、サイト内リンクを router-link タグに置き換えます res = res.replace(/<a href="(?!http:\/\/|https:\/\/)(.*?)" rel="external nofollow" >(.*?)<\/a>/g, '<router-link to="$1">$2</router-link>') // 正規表現を使用して外部リンクを新しいウィンドウで開きます res = res.replace(/<a href="(.*?)" rel="external nofollow" >(.*?)<\/a>/g, '<a href="$1" rel="external nofollow" target="_blank">$2</a>') 戻る { テンプレート: '<div>' + res + '</div>' } } }, 作成された(){ this.md = 新しい MarkdownIt() this.md.use(hljs).use(ラテックス) } } </スクリプト> 使いたい場所にインポートします <テンプレート> <div> <マークダウン:content="content"/> </div> </テンプレート> <スクリプト> '@/components/Markdown.vue' から Markdown をインポートします。 エクスポートデフォルト{ 名前: 'ホーム'、 コンポーネント: マークダウン }, データ: () => ({ コンテンツ: '' })、 作成された(){ this.content = '# テスト' } } </スクリプト> 上記は、Vue シングルページ アプリケーションで Markdown レンダリングを実装する詳細です。Vue Markdown レンダリングの詳細については、123WORDPRESS.COM の他の関連記事に注目してください。 以下もご興味があるかもしれません:
|
<<: MySQL の重要なパフォーマンス インデックスの計算と最適化方法の概要
>>: Ubuntu で VIM を C++ 開発エディタとして設定する
理由は、すべてのファイルが utf8 でエンコードされているためです。ファイルがインクルードされると...
テーブルを切り捨てる個々の行の削除をログに記録せずに、テーブル内のすべての行を削除します。文法 テー...
sftp は、安全なファイル転送プロトコルである Secure File Transfer Prot...
ローカル開発では、直接アクセスできない静的ファイル リソースのデバッグが必要になる場合があります。こ...
前回の記事では、Oracle でピボット テーブルを実装するいくつかの方法を紹介しました。今日は、同...
この記事では、古典的なスネークゲームを実装するためのJavaScriptの具体的なコードを参考までに...
1. ワニスの概要1. ワニスの紹介Varnish は、新しいソフトウェア アーキテクチャを使用し、...
序文apt-get コマンドは、Ubuntu システムのパッケージ管理ツールです。パッケージのインス...
Windows のデフォルトのスクロール バー スタイルは見苦しく、プロジェクト内でスクロール バー...
RHEL/CentOS シリーズの Linux オペレーティング システムには MySQL ソース自...
序文: Vue3 がリリースされてからかなり経ちますが、最近、会社のプロジェクトでVue3 + Ty...
背景: Linux サーバーのファイルのアップロードとダウンロード。 XShell+Xftp インス...
dockerスタックによってデプロイされたイメージサービスを使用すると、イメージを入力した後、理論的...
Linux の操作と構成作業では、デュアル ネットワーク カードのバインディングがよく使用されます。...
ユーザーが登録すると、ラベルをクリックして確認コードを変更します。クリックするとラベルに影の部分がで...