remark
を介してMarkdownを読み込みます。
設定にローダーを追加し、オプションを渡すだけです。
import md from "markdown-file.md";
console.log(md);
webpack.config.js
import RemarkHTML from "remark-html";
module.exports = {
// ...
module: {
rules: [
{
test: /\.md$/,
use: [
{
loader: "html-loader",
},
{
loader: "remark-loader",
options: {
remarkOptions: {
plugins: [RemarkHTML],
},
},
},
],
},
],
},
};
remark
プラグインの全リストを以下に示します。
react
固有の機能はサポートされなくなりました。JSXとMarkdownの混在に興味がある場合は、素晴らしいMDXプロジェクトをご覧ください。
Remarkオプション
タイプ
type remarkOptions = {
plugins: Array<string | Array>;
settings: Object;
data: Object;
};
remark
プラグインを接続できます タイプ
type plugins = Array<string | Array>;
デフォルト:[]
remark
プラグインを接続できます
webpack.config.js
import RemarkFrontmatter from "remark-frontmatter";
module.exports = {
// ...
module: {
rules: [
{
test: /\.md$/,
use: [
{
loader: "remark-loader",
options: {
remarkOptions: {
plugins: [RemarkFrontmatter],
},
},
},
],
},
],
},
};
プラグインのオプションを指定する必要がある場合は、2番目の引数がオプションとなる配列を使用してプラグインを渡すことができます。
webpack.config.js
import RemarkFrontmatter from "remark-frontmatter";
import RemarkBookmarks from "remark-bookmarks";
module.exports = {
// ...
module: {
rules: [
{
test: /\.md$/,
use: [
{
loader: "remark-loader",
options: {
remarkOptions: {
plugins: [
RemarkFrontmatter,
[
RemarkBookmarks,
{
bookmarks: {
npm: "https://npmjs.com/package/remark-bookmarks",
},
},
],
],
},
},
},
],
},
],
},
};
Remark設定
タイプ
type settings = Object;
デフォルト:undefined
remark-stringify
オプションとremark-parse
オプションをremark
に渡します。
webpack.config.js
module.exports = {
// ...
module: {
rules: [
{
test: /\.md$/,
use: [
{
loader: "remark-loader",
options: {
remarkOptions: {
settings: {
bullet: "+",
listItemIndent: "1",
},
},
},
},
],
},
],
},
};
すべてのプラグインで使用可能な情報
タイプ
type data = Object;
デフォルト:undefined
remark
を、すべてのプラグインで使用可能な情報で設定します。情報はメモリ内のキーバリューストアに保存されます。
webpack.config.js
function examplePluginUsingData() {
console.log(this.data);
// { alpha: 'bravo', charlie: 'delta' }
}
module.exports = {
// ...
module: {
rules: [
{
test: /\.md$/,
use: [
{
loader: "remark-loader",
options: {
remarkOptions: {
plugins: [examplePluginUsingData],
data: {
alpha: "bravo",
charlie: "delta",
},
},
},
},
],
},
],
},
};
removeFrontMatterを削除する
タイプ
type removeFrontMatter = boolean;
デフォルト:true
デフォルトでは、frontMatterは削除されます。この動作をオーバーライドするには、removeFrontMatter
をfalse
に設定し、remark-frontmatter
をプラグインに追加します。
webpack.config.js
import RemarkFrontmatter from "remark-frontmatter";
module.exports = {
// ...
module: {
rules: [
{
test: /\.md$/,
use: [
{
loader: "remark-loader",
options: {
removeFrontMatter: false,
remarkOptions: {
plugins: [RemarkFrontmatter],
},
},
},
],
},
],
},
};
このプロジェクトは、次のオープンソース作品にインスパイアされました
htmlを取得するには、remark-html
をremarkプラグインに追加し、html-loader
をwebpack.config
に追加する必要があります
import md from "markdown-file.md";
console.log(md);
webpack.config.js
import RemarkHTML from "remark-html";
module.exports = {
// ...
module: {
rules: [
{
test: /\.md$/,
use: [
{
loader: "html-loader",
},
{
loader: "remark-loader",
options: {
remarkOptions: {
plugins: [RemarkHTML],
},
},
},
],
},
],
},
};
index.js
import md from "markdown-file.md";
console.log(md);
webpack.config.js
module.exports = {
// ...
module: {
rules: [
{
test: /\.md$/,
use: [
{
loader: "remark-loader",
},
],
},
],
},
};
まだ行っていない場合は、貢献ガイドラインをお読みください。