nodejs添加markdown中间件代码格式问题
发布于 8 年前 作者 zhang962976642 3786 次浏览 来自 问答

引入markdown中间件 ,代码块展示有问题

//post文章发表处理程序
exports.formPost = function(req,res,next){
	//markdown语法支持
	var markdown = require('markdown').markdown;
	//获取表单信息
	var title = req.body.title,
		name = req.body.name,
		time = new Date(),
		info = req.body.message,
		titleSrc = req.body.titleSrc;
	//验证字段title是否为空
	var info = markdown.toHTML(info);
	if(title == null || title == undefined){
		req.flash('error','标题不能为空');
		return res.redirect('/post');
	};
	//写入到mongodb
	var Article = require('../models/article');
	Article.create({
		title:title,
		name:name,
		time:time,
		info:info,
		titleSrc:titleSrc,
	},function(err,data){
		if(err){
			req.flash('error','文章发表失败,请稍后再试');
			return res.redirect('/post');
		};
		//写入成功
		req.flash('success','发表成功');
		res.redirect('/');
	});
};

在WEB版本的markdown中代码格式没有问题,在现在写的博客项目中格式出现问题 1.png ** END ,帮帮萌新 **

20 回复

同样的代码在 2.png 发布格式就有问题,不知道什么原因

这是数据库的json信息 45.png

没理解问题,看数据库存储是没问题的,所以是显示有问题吗

来自酷炫的 CNodeMD

我怀疑是md文件的格式问题

@TakWolf 是的展示有问题

代码块经过编译后应该生成 <code> 标签,检查一下

来自酷炫的 CNodeMD

@TakWolf 不行有code标签 就是不自动换行我觉得少了pre标签

markdown语法用的是哪个?代码块用的是一个点还是三个点,一个点是不换行的单行块,三个点是代码段

@TakWolf 用的markdown中间件 三个···的

@TakWolf var markdown = require(‘markdown’).markdown; var info = markdown.toHTML(info);

你看你的截图,最前面

`javascript

最后面也有个点 是不是用了类型注释

你把代码类型javascript去掉,只用三个点编译一下试试,类型注释这个语法可能不兼容

看看是不是这个原因

确实,code标签外通常应该有一个 pre 标签,这里没有转换成功

@TakWolf 请问下 还有别的markdown中间件可以使用吗

@TakWolf 感谢你发表格式正确了不过高亮代码没有

untitled1.png

cnode生成的结果是这样的,你可以参考一下

回到顶部