
cmdMarkdown支持在线编辑,同时也有跨平台的客户端,进入cmdMarkdown在线编辑网页,网页端与客户端一样(客户端是用node-webkit开发的)
进入官方下载页面,选择适合的版本
进入主界面,这是文章列表
这是这篇文章的主要信息
步骤阅读
5
设置功能强大,可以立即同步,导入导出支持html格式也支持Markdown格式,更棒的是支持切换到Vim和Emacs编辑模式,导出PDF需要是会员,这么棒的编辑器
现在的有道云笔记仅在云协作中支持markdown,云笔记即将在后续的版本中支持,现在还不能使用。 Markdown具有一系列衍生版本,用于扩展Markdown的功能(如表格、脚注、内嵌HTML等等),这些功能原初的Markdown尚不具备,它们能让Markdown转换成更多的格式,例如LaTeX,Docbook。Markdown增强版中比较有名的有Markdown Extra、MultiMarkdown、 Maruku等。
百度搜索马克飞象
目前貌似就这货能用markdown写印象笔记内容
2
打开网站
3
点击上面的登陆按钮
4
选择登陆印象笔记
当然也可以等级evernote
5
来到等印象笔记页面
输入账号密码登陆即可
6
然后要求我们授权
7
授权完成之后回到马克飞象
8
编辑一篇文章
9
同步完成之后我们登陆印象笔记看看是否保存过来
10
可以看到这里的格式也是用markdown来保存的
我在Evernote里使用markdown的方法:
1 直接在Evernote客户端里用Markdown格式撰写笔记;
2 用Chrome浏览器下载一个名为「Markdown Here」的扩展,链接:Markdown Here
3 登陆Evernote网页版,打开你用Markdown撰写的笔记,选中笔记内容,右键「Markdown转换」,神奇效果就出现了。
4 补充一句:当你要去修改笔记时,可先用该扩展还原出之前的markdown格式文本,编辑之后再右键转化。
前言
最近笔者把之前写的文章( markdown )数据,全部同步到数据库里,来交给多端去实时渲染。在同步的过程中,却出现了一些问题。
笔者这里举个例子,让大家有所感受:
而且通过这个思路,还演化出 MDX 这个格式,大大的增强了 JSX 与 Markdown 混合书写时的开发体验,增强了它的表现能力。
怎么做到的呢?
我们知道,原生 Markdown 功能很少,不会做任何花哨的事情,这导致它无法满足大量的场景。于是乎,大量的开发人员充分发挥了 主观能动性 ,定制了许多的 Markdown 编译器。
以著名的 Typora 为例,它就集成了 flowchartjs , mermaid 这类的图表库。我们可以在 md 里快速的生成一些简单的图表,但是遇到复杂的 case 时,可 *** 控性还是远远弱于代码的。(这种情况,通常会在编辑器外部,先把图表做好,再把导出,插入 md 里)
甚至还出现了 nodeppt 这样,使用 markdown 来制作 ppt 的包。笔者曾经使用过一段时间,认为使用的场景,还是以部门内部的分享为主。受限于许多难记的语法和 md 自身的表现力,在遇到高自定义化的场景时,制作成本会远远超出 powerpoint 。
markdown 数据的分离存储
那么进入正题了,如何对 markdown 内不同的数据进行归类呢?
我们知道,不进行预处理的话,直接存进数据库里,无非就是一堆字符串。这堆字符串里藏着的数据,去实时处理,就是对计算机算力的浪费。
许多的 markdown 解析器,也都能够支持像 yaml , json , toml , csv 等数据格式,此时预先把它们存进数据库就很有必要了。
怎么解析呢? 通常的做法就2字, 标记 ,在编写时,把它们用特殊的 flag 标识起来,比较通用的做法有:
--- {{code}} --- => yaml
---toml {{code}} --- => toml
---json {{code}} --- => json
这种做法本质上,和代码染色类似:
```js(染色语言) {{code}} ```
于是在标记出来之后,我们就可以非常容易的,对这堆字符串,进行 截取解析 再 分发给不同的解析引擎处理 了。现有的实现也很多,比如 gray-matter 。
但是这只解决了数据分离的问题,还有一个组件渲染的问题没有解决。
组件的原生渲染
在谈这个之前,先看看 md 是如何转成 html 的:
以 markded , markdown-it , unified(remark) 为例
它们无非是 把 md 先解析成 tokens/mdast , 例如:
然后再交给 html 的 renderer 去处理的,上述的例子可以很容易的看出它的结果。
那么非转化成 html ,而去转化为原生标签怎么做呢?解决方案也有很多。
先说一下我实现的方案:
即 这一段字符串原封不动的存入数据库中,
然后在其他平台的场景,都去编写或者移植一个 Markdown 解析器,接着呢
这种做法本质就是 条件渲染 ,相当于一个 if 分支。
这个解决方案需要在不同的平台上,把 icebreaker-love-music 这个组件都实现一遍,并作为插件挂载在 Markdown 解析器中。
它的缺点也是很明显的:
另一种的畅想
另外一种则是我的畅想了,我们能否把组件本身,进行编译,变成一种 IL (Intermediate Language)的存在,交给各个端,进行原生渲染呢?
比如我们知道, web component 浏览器端原生支持
vue 组件可以被 @vue/web-component-wrapper 转化为 web-component
react 则有 react-web-component
那么 web-component 有可能,能依托一个像 QuickJS 这样的 Javascript Engine ,在原生环境进行实时的编译渲染吗?
以上这些就是笔者的一些愚见,如有想法,欢迎大家讨论和指点。
附录(ast的生成与转化)
syntax-tree
mdast-util-from-markdown
mdast-util-to-hast
方法一:
markdown-loader html-loader
import的时候就转换成html了,每次需要build,但是可以本地双击就能看,放哪个目录页不限制
方法二:
axios + markdown-it
每次打开页面的时候异步加载,由于调用异步,所以本地肯定打不开,但是线上可以打开。
以上就是关于如何使用Markdown编辑器,cmdMarkdown编辑器全部的内容,包括:如何使用Markdown编辑器,cmdMarkdown编辑器、怎样使用有道云笔记Markdown、如何用markdown写文档,并娴絞it等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)