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 インデックス使用状況監視スキル (収集する価値あり!)
この記事では、CSS で 2 つの固定列と 1 つのアダプティブ列を実装するいくつかの方法を紹介し、...
目次序文1. 型2. インスタンス3. コンストラクター詳細: 4. 文字列要約する序文Javasc...
目次1. JSONPとは何か2. JSONPクロスドメインリクエスト3. Baidu検索をシミュレー...
1. 問題時々Mysqlにログインしてパスワードを入力すると、この状況が発生しますmysql -u...
目次1. 共同インデックスの説明2. ac はインデックスを使用できますか? 3. 考える4. 最左...
プロジェクトディレクトリを作成する php ディレクトリをコピーする次のプロジェクト構造を作成します...
目次1. 終了2. クロージャの使用シナリオ1.タイムアウトを設定する2. コールバック3. 手ぶれ...
平日はニュースに注目して、テンセントをよく閲覧しています。しかし、コメントへの返信はほとんど見られま...
1. 分割スクリプト (splitNginxLog.sh) を作成します。 * この例では、ログ分割...
序文vue3.0 が正式にリリースされて以来、多くの友人が vue3.0 に切り替えました。ここでは...
目次1. 共有ロックと排他ロック2. 意図ロック3. レコードロック4. ギャップロック5. ネクス...
目次1. はじめに2. プロトタイプチェーン継承3. コンストラクタの継承4. 組み合わせ継承1. ...
今日、仕事中に、一時的に追加した友人から、Web ページを使用して訪問者の QQ を取得する方法を尋...
概要この記事では、ゲームクライアントでよく使用される MVC アーキテクチャについて紹介します。ゲー...
この記事では、MySQL 8.0.15のインストールと設定方法を参考までに紹介します。具体的な内容は...