问题描述
我有一个laravel项目,在根目录中有一个README.md。推送到GitHub后,我可以看到渲染结果,但是我想在本地开发浏览器中渲染markdown文档。
我正在尝试两种方法:
- 从markdown文件读取文件
- 使用Webpack等将markdown文件转换为html
谁可以为此演示?
解决方法
这是Laravel Mix / Webpack解决方案,将markdown文件转换为html,在Vue.js中是必需的,然后用v-html
显示。
首先添加markdown-loader
yarn add markdown-loader html-loader
在webpack.mix.js
中添加配置,Laravel Mix可以添加Webpack的自定义配置。
mix.webpackConfig({
module: {
rules: [{
test: /\.md$/,use: ["html-loader","markdown-loader"],}]
}
});
考虑到README.md
在Project的根目录中,请在webpack.mix.js
中添加一个别名
mix.alias({
'@': '/resources/js','@root': '/',});
现在,我们可以使用vue组件在根目录下显示README.md。
<script>
const readme = require('@root/README.md')
export default {
data() {
return {
readme: ""
}
},created() {
this.readme = readme
}
}
</script>
<template>
<div class="container" ref="container" v-html="readme" />
</template>
,
由于邮件刀片模板解析 markdown,您可以使用与 layout.blade.php 类似的方法,它使用 Illuminate\Mail\Markdown::parse。
在您的模板中,例如welcome.blade.php,添加:
{{ Illuminate\Mail\Markdown::parse(file_get_contents(base_path() . '/README.md')) }}