Vite2 を使用するほとんどの開発者が遭遇する問題は、ドキュメントに Markdown のサポートについての説明がないことです。では、Vite プロジェクトで Markdown のインポートとレンダリングをサポートしたい場合はどうすればよいでしょうか?この記事では2つの方法を紹介します。 カスタム Vite プラグインネット上の関連質問を見ると、ほとんどがこのやり方、つまり、Vite で Markdown レンダリングをサポートするためのカスタム プラグインに関するものです。具体的な手順は次のとおりです。 プロジェクトのルート ディレクトリに md.js ファイルを作成し、次の内容を入力します。 'path' からパスをインポートします。 'fs' から fs をインポートします。 'marked' から marked をインポートします。 const mdToJs = str => { const コンテンツ = JSON.stringify(marked(str)); `export default ${content}` を返します。 }; エクスポート関数md() { 戻る { configureServer: [ // 開発用 async ({ app }) => { app.use(async (ctx, next) => { // .md という拡張子のファイルを取得し、それを js ファイルに変換します if (ctx.path.endsWith('.md')) { ctx.type = 'js'; 定数 filePath = path.join(process.cwd(), ctx.path); ctx.body = mdToJs(fs.readFileSync(filePath).toString()); } それ以外 { 次の()を待ちます。 } }); }, ]、 変換: [{ // ロールアップ用 テスト: context => context.path.endsWith('.md'), 変換: ({ code }) => mdToJs(code) }] }; } 次に、vite.config.js を変更し、上記で作成したプラグインをインポートします。 './md' から {md} をインポートします。 エクスポートデフォルト{ プラグイン: [md()] }; この方法を使用すると、インポートされた md ファイルはレンダリング用の js ファイルに変換されます。具体的な使用例: <テンプレート> <記事 v-html="md" /> </テンプレート> <script lang="ts"> './xxx.md' から md をインポートします エクスポートデフォルト{ 設定(){ {md} を返す } } vite-plugin-markdownの使用このサードパーティ製プラグインは、Markdown ファイルのインポートとレンダリングをサポートするだけでなく、HTML 文字列、React または Vue コンポーネントなどのさまざまな形式へのレンダリングもサポートします。 npm と vite-plugin-markdown vite.config.js で変更します: const mdPlugin = require('vite-plugin-markdown') エクスポートデフォルト{ プラグイン: [ mdPlugin.plugin({ モード: ['html'], }) ] } オプション オブジェクトが構成に渡され、次のパラメーターがサポートされます。
各モードでのレンダリング例: Front Matter属性をインポートする--- タイトル: 素晴らしいタイトル 説明: この素晴らしいコンテンツについて説明してください タグ: - "素晴らしい" - "素晴らしい" - 「すごい」 --- # これはすごい Vite は、開発中にネイティブ ES モジュールのインポートを介してコードを提供し、本番環境用に Rollup とバンドルする、独自の Web 開発ビルド ツールです。 './contents/the-doc.md' から { 属性 } をインポートします。 console.log(attributes) //=> { title: '素晴らしいタイトル', description: 'この素晴らしいコンテンツを説明してください', tags: ['素晴らしい', '素晴らしい', '素晴らしい'] } コンパイルされた HTML (Mode.HTML) をインポートする'./contents/the-doc.md' から { html } をインポートします。 コンソール.log(html) //=> "<h1>これは素晴らしい</h1><p>ite は、開発中にネイティブ ES モジュールのインポートを介してコードを提供し、本番環境用に Rollup とバンドルする、独自の Web 開発ビルド ツールです。</p>" ToC メタデータをインポートする (Mode.TOC)# バイト Vite は、開発中にネイティブ ES モジュールのインポートを介してコードを提供し、本番環境用に Rollup とバンドルする、独自の Web 開発ビルド ツールです。 ## 状態 ## はじめる # 注記 './contents/the-doc.md' から { toc } をインポートします。 コンソール.log(toc) //=> [{ レベル: '1', コンテンツ: 'vite' }, { レベル: '2', コンテンツ: 'ステータス' }, { レベル: '2', コンテンツ: 'はじめに' }, { レベル: '1', コンテンツ: 'メモ' },] React コンポーネントとしてインポート (Mode.REACT)'react' から React をインポートします './contents/the-doc.md' から { ReactComponent } をインポートします。 関数MyReactApp() { 戻る ( <div> <Reactコンポーネント /> </div> } Vue コンポーネントとしてインポート (Mode.VUE)<テンプレート> <記事> <マークダウンコンテンツ /> </記事> </テンプレート> <スクリプト> './contents/the-doc.md' から { VueComponent } をインポートします。 エクスポートデフォルト{ コンポーネント: マークダウンコンテンツ: VueComponent } }; </スクリプト> 最後にVite2+Vue3を使用してMarkdown文書をレンダリングする実践に関するこの記事はこれで終わりです。より関連性の高いVite2+Vue3レンダリングMarkdownコンテンツについては、123WORDPRESS.COMの以前の記事を検索するか、次の関連記事を引き続き参照してください。今後とも123WORDPRESS.COMを応援してください。 以下もご興味があるかもしれません:
|
>>: MySQL インデックス使用状況監視スキル (収集する価値あり!)
目次MySQL の 4 つの分離レベルデータ テーブルを作成します。分離レベルの設定物事の分離レベル...
開発中にこのような要件に遭遇したので、将来使用するために記録しました。需要背景キーボード ショートカ...
みなさんこんにちは。私と同じように混乱している方はいらっしゃいませんか。CSS は簡単に始められます...
Python8のインストールを最小化した後、Python3.8.1をインストールしました。オンライン...
序文MySQL テーブルの主キーと外部キーを作成するときは、次の点に注意する必要があります。主キーと...
1. はじめにWHMCS は、ユーザー管理、請求書の支払い、ヘルプ サービスなど、オンライン ビジネ...
目次メモを使うコールバックの使用メモを使う親コンポーネントが再レンダリングされると、そのすべての要素...
各テーブルの行数をカウントするために使用される MySQL count() 関数は、誰もがよく知って...
OSS を使用して Vue プロジェクトに画像や添付ファイルをアップロードするここでは、写真のアップ...
仮想マシンソフトウェア: VMware Workstationイメージ: deepin-deskto...
1. コンテナとは、独立して実行されるアプリケーション、またはアプリケーションのグループとその動作環...
最近、プロジェクトで input size 属性と maxlength 属性を使用しました。以前は、...
span タグのスタイルに width 属性を直接設定すると、効果がないことがわかります。 disp...
まず第一に、私はウェブデザイナーです。具体的には、私は XHTML フロントエンド デザイナーです。...
データとコンピューターに対してできる最善のことは、それらを安全に保つことです。アップデートを有効にす...