All Projects → zhangjikai → Online Markdown Reader

zhangjikai / Online Markdown Reader

Licence: mit
Markdown 在线阅读器

Programming Languages

javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to Online Markdown Reader

nodejs-markdown-site
Markdown-based site (blog, project documentation, etc) written with NodeJS.
Stars: ✭ 68 (+74.36%)
Mutual labels:  markdown-viewer
noted
Markdown note-taking with syntax highlighting and real-time preview.
Stars: ✭ 22 (-43.59%)
Mutual labels:  markdown-viewer
Mditor
📝 [ M ] arkdown + E [ ditor ] = Mditor
Stars: ✭ 523 (+1241.03%)
Mutual labels:  markdown-viewer
mead
Mead - Dead simple markdown editor for Windows, Linux and Mac
Stars: ✭ 20 (-48.72%)
Mutual labels:  markdown-viewer
noshi
The no shi! CMS
Stars: ✭ 19 (-51.28%)
Mutual labels:  markdown-viewer
TreeMDown
[triː <'em> daʊn] PHP single page markdown tree browser
Stars: ✭ 14 (-64.1%)
Mutual labels:  markdown-viewer
notes
Simple text editor for your Markdown and LaTeX notes.
Stars: ✭ 24 (-38.46%)
Mutual labels:  markdown-viewer
Idea Multimarkdown
Markdown language support for IntelliJ IDEA.
Stars: ✭ 789 (+1923.08%)
Mutual labels:  markdown-viewer
consolemd
render markdown to the console (not just highlight it)
Stars: ✭ 93 (+138.46%)
Mutual labels:  markdown-viewer
Markdown Viewer
Markdown Viewer / Browser Extension
Stars: ✭ 497 (+1174.36%)
Mutual labels:  markdown-viewer
marvo
Serve your local markdown files with zero configuration and CJK support.
Stars: ✭ 18 (-53.85%)
Mutual labels:  markdown-viewer
journalist
App to write journal digitally. Simple as that.
Stars: ✭ 23 (-41.03%)
Mutual labels:  markdown-viewer
Marcdown
👻 Lightweight realtime markdown viewer and editor - Simple, clean and beautiful https://liyasthomas.github.io/marcdown
Stars: ✭ 345 (+784.62%)
Mutual labels:  markdown-viewer
iA-Writer-Templates-Github-Plus
A Github flavored iA Writer template with math, graph support.
Stars: ✭ 79 (+102.56%)
Mutual labels:  markdown-viewer
Bytemd
A hackable Markdown editor component built with Svelte
Stars: ✭ 656 (+1582.05%)
Mutual labels:  markdown-viewer
NppMarkdownPanel
Lightweight Notepad++ plugin to preview Markdown files
Stars: ✭ 128 (+228.21%)
Mutual labels:  markdown-viewer
markdown-editor
✏️ A very simple but useful Markdown Previewer and Markdown Editor with CodeMirror, Markedjs, and Create-react-app
Stars: ✭ 25 (-35.9%)
Mutual labels:  markdown-viewer
Markitdown
📱 A React app to preview and edit Markdown✍. You can also export it as HTML.
Stars: ✭ 26 (-33.33%)
Mutual labels:  markdown-viewer
Mdmath
LaTeX Math for Markdown inside of Visual Studio Code.
Stars: ✭ 675 (+1630.77%)
Mutual labels:  markdown-viewer
Lookatme
An interactive, terminal-based markdown presenter
Stars: ✭ 392 (+905.13%)
Mutual labels:  markdown-viewer

Online markdown reader

Markdown 在线阅读器。

功能

示例

示例文件 示例预览

扩展语法

Todo列表

- [x] 完成
- [ ] 未完成
- [ ] 未完成

Mathjax

支持原生的 Mathjax 语法。示例代码:

$$
        \begin{matrix}
        1 & x & x^2 \\
        1 & y & y^2 \\
        1 & z & z^2 \\
        \end{matrix}
$$

关于Mathjax 语法,请参考MathJax basic tutorial and quick reference

不过直接使用原生的 Mathjax 语法,marked 会将公式中的 \\ 转为 \,导致换行失效,为了解决这个问题,这里做了一下扩展,将 Mathjax 代码放入代码块中,代码块语言设为 mathjax 即可。如下面的示例

```mathjax
$$
        \begin{matrix}
        1 & x & x^2 \\
        1 & y & y^2 \\
        1 & z & z^2 \\
        \end{matrix}
$$
```

时序图

在 Markdown 文档中添加下面的代码块,会将代码块中的代码解析为时序图

```seq
A->B: Normal line
B-->C: Dashed line
C->>D: Open arrow
D-->>A: Dashed open arrow
```

Emoji

Emoji表情参见 EMOJI CHEAT SHEET

ECharts

在文档中加入下面的代码块,会将代码块中代码解析为 ECharts 图表。只支持默认的数据显示,无法添加自定义的事件处理。

```echarts
{
    title: {
        text: 'ECharts 入门示例'
    },
    tooltip: {},
    legend: {
        data:['销量']
    },
    xAxis: {
        data: ["衬衫","羊毛衫","雪纺衫","裤子","高跟鞋","袜子"]
    },
    yAxis: {},
    series: [{
        name: '销量',
        type: 'bar',
        data: [5, 20, 36, 10, 10, 20]
    }]
}
```

配置

目前自定义了三个配置项:

  • width: 图表宽度,可选,默认值是 100%
  • height: 图表高度,可选,默认值是 400px
  • theme: 图标主题,可选,有效的主题是: dark, infographic, macarons, roma, shine, vintage

其余的参数都是 ECharts 中定义的参数,具体的参考 ECharts 配置。下面是一个完整示例

{
    width: "600px",
    height: "400px",
    theme: "macarons",
    title: {
        text: 'ECharts 入门示例'
    },
    tooltip: {},
    legend: {
        data:['销量']
    },
    xAxis: {
        data: ["衬衫","羊毛衫","雪纺衫","裤子","高跟鞋","袜子"]
    },
    yAxis: {},
    series: [{
        name: '销量',
        type: 'bar',
        data: [5, 20, 36, 10, 10, 20]
    }]
}

自定义扩展

在现有程序的基础上,我们可以很方便的添加扩展功能。基本流程大概就是引入扩展的库文件,在渲染 Markdown 文件时 调用库文件相应的方法。以添加时序图为例:

  • 确定时序图的代码标记
```seq
时序图代码
```
  • 修改 marked 中对于代码块的解析函数,添加对于时序图标记的支持
var renderer = new marked.Renderer();
var originalCodeFun = renderer.code;
renderer.code = function (code, language) {
    if (language == "seq") {
        return "<div class='diagram' id='diagram'>" + code + "</div>"
    } else {
        return originalCodeFun.call(this, code, language);
    }
};
marked.setOptions({
    renderer: renderer
});
  • 引入 js-sequence-diagrams 相关文件
<link href="{{ bower directory }}/js-sequence-diagrams/dist/sequence-diagram-min.css" rel="stylesheet" />
<script src="{{ bower directory }}/bower-webfontloader/webfont.js" />
<script src="{{ bower directory }}/snap.svg/dist/snap.svg-min.js" />
<script src="{{ bower directory }}/underscore/underscore-min.js" />
<script src="{{ bower directory }}/js-sequence-diagrams/dist/sequence-diagram-min.js" />
  • 渲染 Markdown 文件时,调用相关函数
$(".diagram").sequenceDiagram({theme: 'simple'});

如果不需要某个扩展功能,可以停用该功能,以加快文件渲染的速度。

导出

多说评论框

通过在 Markdown 文件中添加下面代码来配置多说

```duoshuo
{
    "key": "filename",
    "title": "filename",
    "url": "filename.html",
    "short_name": "shortname"
}
```

其他说明

Markdown 文件解析

程序使用 marked 解析文件。

Markdown 样式

Markdown 的显示样式都在 assets/css/markdown.css 里,如果需要自定义样式,只需修改这个文件。

本地图片

如果需要显示本地图片,需要手动的将图片上传一下(支持批量上传),程序使用 FileReader 读取上传的图片,然后将图片的本地路径替换为图片的内容。图片压缩对 jpg 文件效果较好,对于 png 文件效果较差。

目录

在需要生成目录的地方加上下面的代码

<!-- toc -->

如果不加会自动在开头生成。

缓存

上次打开的文件和配置信息都保存在 localStorage 里,如果清理了缓存,就可能丢失这些信息。另外浏览器对于 localStorage 的容量有限制,所以不要保存太大的文件。

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].