想有自己的博客吗?浏览器支持 MarkDown和语法高亮的最简单示例(使用markdown-it、highlight.js和mermaid)
MarkDown,写作神器,还是有必要掌握一下。写作也是一种很重要的能力,需要长久坚持和锻炼。
写作能力重不重要?语文重不重要?读书重不重要?
我觉得语文和写作能力是所有能力的基础,是重中之重。因为你所有感知和获取的信息的加工整理都离不开语文,你对外界产生的理解和影响也离不来语文。它甚至可能影响你的求职,你的工作,你的人际关系。你对其他信息的感知和获取,机遇的把握等等都离不开它,鲁迅的一只笔杆子抵得上千军万马。
以下为一个最简单的,使浏览器支持MarkDown渲染和语法高亮的示例,可以为以后的个人的markdown博客储备。
后续计划写个专栏,介绍下自己做一个markdown的个人博客网站是多么的简单,写博客就成了往目录里丢md文件这样简单。
使用了流行的markdown-it(MarkDown渲染),highlight.js(语法高亮)和mermaid.js(画流程图、时序图等的js库)组件。
先看一个我的个人博客截图,后续准备开源出来,没使用数据库,只使用md文件和配置文件就完成了所有功能。
所以部署也很简单,不用先建库,建表,直接放到服务器的一个任意目录里运行即可,写博客就是往目录里丢md文件而已。
增加功能,把微信公众号打通,使用自己的公众号发布文章,直接电脑上编译好md文件,往聊天窗口一丢就完成了文章的发布。至于文章分类,文章排序和推荐文章,都是内部搞了个算法自动完成的。且前台如果有新评论或留言,会自动推送到我的公众号里。
附图,测试demo浏览器显示出来的效果:
附个人的markdown博客截图,使用go语言加mardown实现。
附demo的完整的html的使用代码,仅在一个html文件中,可直接用浏览器打开运行看到效果:
<!DOCTYPE html>
<html>
<head><meta charset="utf-8"/><title>markdown in the browser</title><link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/10.0.0/styles/railscasts.min.css"><link rel="stylesheet" href="./mytable.css"><!-- <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/10.0.0/styles/atom-one-dark.min.css"> --><script src="https://cdn.bootcss.com/jquery/3.5.0/jquery.min.js"></script><script src="https://cdn.jsdelivr.net/gh/highlightjs/cdn-release@10.0.0/build/highlight.min.js"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/markdown-it/10.0.0/markdown-it.min.js"></script><script src="https://cdn.bootcss.com/mermaid/8.0.0-rc.8/mermaid.min.js"></script><style>.md_source{display: none}</style>
</head>
<body>
<pre class="md_source">
# Welcome to Yang's Blog!
this is a most simple demo, used markdown-it and highlight.js in the browser to rendering markdown files
## used markdown-it in the browser> 你好! 这是你第一次使用 **Markdown编辑器** 所展示的欢迎页。如果你想学习如何使用Markdown编辑器。 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。
***
Rendered by **markdown-it**.
### 表格demo,欢迎使用Markdown
Name | Age
--------|------
Bob | 27
Alice | 23### 代码高亮例子
```golang
package main
import "fmt"func main() {fmt.Println("hello ")
}```# 一级标题## 二级标题### 三级标题### 表格例子 欢迎使用Markdown
| Command | Description |
| --- | --- |
| `git status` | List all *new or modified* files |
| `git diff` | Show file differences that **haven't been** staged | ### 链接
[baidu](https://baidu.com)### 插入图片
![imgs](https://img-blog.csdnimg.cn/2019091813595558.png)- 项目- 项目- 项目- 列表信息+ 二级列表* 三级列表 1. 项目1
2. 项目2
3. 项目3- [ ] 计划任务
- [x] 完成任务创建脚注格式类似这样 [^RUNOOB]> 最外层
> > 第一层嵌套
> > > 第二层嵌套```mermaid
graph LRA --- BB-->C[fa:fa-ban forbidden]B-->D(fa:fa-spinner);
```
</pre><div class="mermaid">graph LRA --- BB-->C[fa:fa-ban forbidden]B-->D(fa:fa-spinner);</div><div class="md_render">
</div><script>var md;var defaults = {html: false, // Enable HTML tags in sourcexhtmlOut: false, // Use '/' to close single tags (<br />)breaks: false, // Convert '\n' in paragraphs into <br>langPrefix: 'language-', // CSS language prefix for fenced blockslinkify: true, // autoconvert URL-like texts to linkstypographer: true, // Enable smartypants and other sweet transforms// options below are for demo only_highlight: true,_strict: false,_view: 'html' // html / src / debug};const mermaidChart = (code) => {try {mermaid.parse(code)return `<div class="mermaid">${code}</div>`} catch ({ str, hash }) {return `<pre>${str}</pre>`}}defaults.highlight = function (str, lang) {var esc = md.utils.escapeHtml;console.log(str)console.log(lang)if (lang && hljs.getLanguage(lang)) {try {return '<pre class="hljs"><code>' +hljs.highlight(lang, str, true).value +'</code></pre>';} catch (__) {}}else if(lang == 'mermaid'){return mermaidChart(str)//return '<pre class="mermaid">' + mermaid.mermaidAPI.render('mermaid', str) + '</pre>';}else{return '<pre class="hljs"><code>' + esc(str) + '</code></pre>';}};md = window.markdownit(defaults);$('.md_render').html(md.render($('.md_source').html()));mermaid.initialize({startOnLoad:true});</script></body>
</html>
想有自己的博客吗?浏览器支持 MarkDown和语法高亮的最简单示例(使用markdown-it、highlight.js和mermaid)相关推荐
- 博客园开始对X++语言语法高亮的支持
关注X++的博客园博友有福啦,现在发布X++代码也同样可以实现语法高亮.目前仅支持SyntaxHighlighter插件.请看如下: public void update(boolean _updat ...
- Spring MVC集成slf4j-logback - 我想跟代码谈谈 - 博客频道 - CSDN.NET
Spring MVC集成slf4j-logback - 我想跟代码谈谈 - 博客频道 - CSDN.NET
- 【回眸】今天本想水一篇博客……
今天本想水一篇博客-- 前言 最近不是快到期末了嘛,笔者自己本身也是忙的焦头烂额,被各种实验报告支配的恐惧,被各种大作业要求支配的恐惧,甚至还有之前参加的好多活动等等,都在忙碌的十二月,真的是忙到头晕 ...
- Flutter基础篇(2)-- 老司机用一篇博客带你快速熟悉Dart语法
版权声明:本文为博主原创文章,未经博主允许不得转载.https://www.jianshu.com/p/3d927a7bf020 转载请标明出处: https://www.jianshu.com/p/ ...
- 在博客园添加Lisp(或其它)代码高亮
由于我这一段对Emacs很有兴趣,发了不少关于这玩意儿的文章.但博客园的代码高亮并不支持Emacs Lisp,之前一直也没怎么管,前几天看见李杀的这篇 Syntax Coloring with Goo ...
- zbbz的lisp_在博客园添加Lisp(或其它)代码高亮
由于我这一段对Emacs很有兴趣,发了不少关于这玩意儿的文章.但博客园的代码高亮并不支持Emacs Lisp,之前一直也没怎么管,前几天看见李杀的这篇 Syntax Coloring with Goo ...
- wordpress添加媒体_如何向您的WordPress博客添加表情符号支持
wordpress添加媒体 Emojis are fun and cute. They allow you to express yourself without using too many wor ...
- 谁不想拥有自己的博客网站?
# 拥有个人博客网站的好处 想发啥发啥,不怕被审核掉 网站风格自己改造,想怎么炫酷就怎么炫酷 有幸做大后还可以可以承接广告 拥有属于自己的一片小天地 - 下面我们就一起来看看怎么搭建一个博客网站,这里 ...
- 想要创建个人博客只需五步骤——所有人看了都能学会的步骤
前言: 本文用了宝塔搭建个人博客,如果不喜欢用宝塔用镜像也行,个人觉得镜像更方便一点,但是不好管理,宝塔容易管理.这是用镜像搭建个人网站的博客:阿里云服务器搭建wordpress个人博客 个人博客创建 ...
最新文章
- factorytalkview 卡 86_徕卡M党的街拍小贴士
- python开发公司网站_用python开发网站
- Linux Shell基础 - Shell 脚本的执行方式
- php ajax跳转,ajax接口的php文件如何实现跳转
- 蓝桥杯 ALGO-77 算法训练 斜率计算
- JDBC和MySQL的实现原理
- intel服务器最新主板芯片组,Intel主流服务器主板驱动更新:新增支持Patsburg芯片组...
- Word文档换台电脑打开后字体、排版等会发生变化的原因及解决方案!
- 下单后,订单拆单能怎拆?
- Python程序员必备的四款开发工具
- windows10系统怎么管理 右键-新建菜单
- word文档找不到smartart_教大家word中smartart在哪找
- 电源系统中磁珠的使用
- 面试复试重点 算法与数据结构
- Oracle单实例数据库启动ORA-01078、ORA-00205、ORA-01157、ORA-01110处理
- Pro ASP.NET MVC 3 Framework 译文(一)
- 魏晋南北朝书法家钟繇、王羲之、王献之
- 不同网段下的pc机如何通过路由器互通
- WC2018 乱搞记划雪记
- vue配置各种环境-环境切换问题-打包自由切换
热门文章
- java ascii 的转换
- 印刷名片用什么格式的文件好?
- The 15th Chinese Northeast Collegiate Programming Contest部分题解
- ipad 邮箱服务器端口,ipad企业邮箱设置方法 ipad企业邮箱怎么设置【详细介绍】...
- 在JIRA中设置腾讯企业邮箱
- issu3.6 sdk 试玩
- 分享一份国外关于不对等的激励因素是如何影响网络安全的报告
- scratch编程技巧之如何实现背景的上下滚动
- 华为抓取错误日志在哪里_Java程序员须知的七个日志管理工具,提高排查错误效率...
- 开会不用手写记录?来看看华为手机自带的这个功能