专注WEB开发 分享经验,沉淀知识

博客系统如何用markdown编辑器发布文章

 作者:chenxing  时间:2016-09-22 13:49  评论:1

博客系统** 如何用markdown发布文章 **?本人最近用markdown写笔记,突然爱上了这种码字风格。想把自己项目的文章发布系统也改成markdown发布,所以就有了这样一个实践,分享给大家。

markdown ---markdown---

博客系统 如何用markdown发布文章 ?本人最近用markdown写笔记,突然爱上了这种码字风格。想把自己项目的文章发布系统也改成markdown发布,所以就有了这样一个实践,分享给大家。

再写这个文章之前 求索网 这个项目’后台的发布系统是用的百度(Ueditor)富文本编辑器。所以一直网上寻找着是否存在像Ueditor那样嵌入到项目中就可以markdown插件?答案是:没找到。找不到完整那就退而求其次自己找零件拼装。

构建思路:写入--> mardown格式文本 --> 插入到数据库 --> php解析mardown格式文本成HTML --> 浏览器渲染HTML(前端给markdown解析html标签添加css样式) -->完成

前面的写入数据的步骤代码都不用动,只要用texarea输入框写markdown就ok,插入到数据库也是以markdown格式存在数据中 ;显而易见,解决这个问题的核心就是PHP解析markdown。这里推荐一款phpmarkdown解析器-- parsedown 。只要在读取内容那部分的代码引入这个解析器,将markdown代码解析成html字符串,丢到模板中。

代码实例:

/**
 * 解析mardown文本
*/
 public function parsedown($text){//以thinkphp为列
 import('Vendor.Parsedown.Parsedown');//将parsedown放到第三方库目录.class.php命名(用import引入必须用此命名)
   $parsedown = new \Parsedown();
   return $parsedown->text($text);
 }

/**
*输出页面
*/
public function index(){
o$aid = I('aid');
oif($aid){
o$this->loadCate();
o$this->loadSidebar();
o$articleModel = D('Article');
o$commentModel = D('Comment');
o$data['articleData'] = $articleModel->getArticleData($aid);//文章数据
oif($data['articleData']){
o$data['articleData']['content'] = $this->parsedown($data['articleData']['content']);//解析makdown文章内容
o$data['tagname'] = explode(',', $data['articleData']['tagname']);//文章标签
o$data['relateList']  = $articleModel->getRelateList($aid);//相关文章
o$data['comment'] = $commentModel->getComment($aid,array('start'=>0,'num'=>5));//评论
o$this->assign('data',$data);
o$this->display();
o}else{
oecho '错误页面';
odie;
o}
o}else{
oecho '错误页面';
o}
}

这样后台markdown基本搞定,别忘了在前端加mardown样式,这个css样式自己写也可以下一个mardown.css。前端得代码高亮可以用prism.js等库。这样就完成mardown格式的输出显示步骤。

效果怎么样?求索网上的每一篇文章都是用markdown写的自行参考。

总结:把解决问题的思路理清楚,大问题拆解成小问题,各个击破。

除特别注明外,本站所有文章均为作者原创。 或分享自己的编程经验,或探讨工作中的问题,或聊以人生趣事。 转载请注明出处来自 https://www.qiusuoweb.com/2.html

发布评论

 提交评论
有人回复时邮件通知我

 评论(1)

站长头像
chenxing(PHP攻城狮)

运营天数

总访问量

文章数量

3161

271779

158

交流群:157451741

新浪微博:草莽兴

 近期文章

聊聊国产化

 2024-08-24 15:56  99

内网穿透工具frp配置详情

 2024-07-18 22:30  197

mac在终端复制出现乱码00~ *** 01~

 2024-07-16 20:38  44

php html生成图片

 2024-07-08 20:25  85

scp命令使用说明

 2024-07-06 12:14  117

如何在当前目录打开终端

 2024-07-04 14:54  87

 最新评论

 tradeOff: 08月30日 10:19
在某些领域国产化是一个迫不得已的事儿
来源: 聊聊国产化
 sue: 07月03日 10:24
可以
来源: 微信小程序如何获取单个input值
 流年: 07月02日 11:31
不错的尝试
来源: 博客系统如何用markdown编辑器发布文章
 诚心: 09月29日 23:01
学到了
来源: 如何一次性推送百万级别的消息
 Nick: 04月14日 12:26
网上的资料还是太老,都只是取一个元素,解决了一大难题
来源: redis set集合取出一组数据并删除
 skywalker: 11月03日 18:21
简洁明了
来源: mysql 获取某个日期的前一天或后一天