前段时间写了一个博客主题, 模板引擎是 rust tera

mikoto theme​mikoto.ea.chat

然后我顺便想写个 markdown render 以便支持一些扩展语法.

然后我发现各种扩展兼容性很差, 这个扩展语法那个扩展语法符号冲突来冲突去的...

最后想想还不如自己重新发明, 然后就发明了 notedown

样式

基本样式的话就这些, 比 markdown 多一个 undercover, 当你鼠标移上去的话就会显示内容.

注意这里的公式, $$ 并不会自己换行, 只是单纯的变成 displaystyle 而已

其他也没啥好讲的, 就是 markdown 那一套

指令

很烦的一个事情就是 markdown 的每个扩展都要不同的词法, 记都记不住.

不如返璞归真, 直接向 tex 学习, 一个斜杠加一个单词搞定.

单行指令, 用于主要参数只有一个的情况, 有选项的话就没法这么用了.

字符指令, 用于有几个参数要传的情况

具名参数指令是标准化的传参方式. 虽然现在一般都是小括号表示函数调用, 但是 tex 里传统的就是大括号.


接下来看这个效果

notedown 把 code block 也看成了一种指令, 内容相当于自动传入 body 参数.

一般对于需要 body 参数的指令来说, 首个参数一定是 body.

下面类似 vue 的方式虽说不是无效的, 但是并不推荐使用, 我在想为了安全性考虑取消掉得了.


html 比 tex 排版复杂的一点在于, html 可以状态层叠.

比如什么选项卡之类的东西怎么处理呢? 这相当于有多个 body 参数啊.

原来的 vue syntax 主要就是这个用途, 后来我想到了 tex 里的宏单元

用 begin - end 块包围一个区域, 然后 push 分割区域给相应的参数不就行了吗.

这个是刚想到的还没完全测试过, 比如嵌套情况如何处理这些细节还要推敲下.


这样的话表达力应该是够了, 没有什么写着很麻烦的排版了, 主要工作量就是实现指令了.

比如插入音乐直接一个 netease 指令 so easy

然后下一步就是开发一个 vscode 插件, 现在的话高亮和格式化搞定了.

接下去写个预览功能, 这个就比较麻烦了, notedown 支持 import 一个其他文档或者图片或者音乐, 这就涉及 IO 了, 不是简单的字符串输入字符串输出了, 搞不懂调哪个 api.

.tex类型文件怎么阅读_TeX + Markdown = ?相关推荐

  1. .tex类型文件怎么阅读_Python用于NLP :处理文本和PDF文件

    提示:代码图片可以点击全屏查看,双指操作还可以放大缩小. 这是我的Python用于自然语言处理(NLP)系列文章的第一篇文章.在本文中,我们将从Python for NLP的基础知识开始.我们将看到如 ...

  2. .tex类型文件怎么阅读_有了这些神器,什么文件格式转换都能搞得定!

    大家好,我是小渔. 周一的时候,睿文老师写了一篇关于页码的干货文,为了方便大家学习,还录制了视频. 一般呢,在微信上发布的文章,小渔都需要同步到其他平台.然而在上传视频的时候,小渔却怎么也找不到文件. ...

  3. PHP header发送各种类型文件及设置文件下载名

    2019独角兽企业重金招聘Python工程师标准>>> PHP header发送各种类型文件及设置文件下载名 <?php header('Content-type: appli ...

  4. ctex中dvi格式_LaTex使用过程中的各种类型文件说明

    最近没事在捣鼓LaTex,在网上看到诸多大牛都在用LaTex写个人简历,于是也就下载一个模板,结果发现自己那半吊子的LaTex水平实在烂的不行,发现很多文件都没见过.于是乎就在Internet上搜了一 ...

  5. cpt类型文件(.cpt)

    cpt类型文件(.cpt) cpt文件是FineReport报表软件生成的,其后缀名为.cpt.一般来说只有用FineReport报表软件将其打开并启用设计器预览之后才可呈现报表.如果将后缀名修改成. ...

  6. 关于 pandas 解析 json 文件和其他类型文件的结果中日期格式数据类型不一致的问题

    问题: 我有两个文件,一个 .csv 文件和一个 .json 文件,数据截图分别如下: 我的目的是解析这些文件,并将结果统一交由下一个程序块进行处理. 在了解到 pandas 可以解析数据文件(csv ...

  7. PDF 阅读与注释的实践——知之阅读、Markdown+Git、Kami、Edge、Mendeley、Zotero

    PDF 阅读与注释的实践--知之阅读.Markdown+Git.Kami.Edge.Mendeley.Zotero 原始文档:https://www.yuque.com/lart/tools/zote ...

  8. 图形在计算机中用什么格式表示什么,使用什么软件打开dat文件,图形文字说明如何在计算机中查看DAT类型文件...

    现在很都在关注休闲和娱乐. 每个人都喜欢听音乐或观看视频,以帮助我们放松或缓解压力. 现在计算机非常强大,一些用户遇到了dat文件. 但是,我对这个文件很陌生,不知道如何打开它. 因此,我将向您介绍打 ...

  9. 各种类型文件的Content-Type

    各种类型文件的Content-Type 2017年11月27日 10:00:56 thebigdipperbdx 阅读数:7360 版权声明:本文为博主原创文章,未经博主允许不得转载. https:/ ...

最新文章

  1. UE5废墟破坏游戏场景创建学习教程
  2. 如何设计一个 iOS 控件?(iOS 控件完全解析)
  3. Java 读取 dwg 转换 dxf
  4. android源码分析-Zygote
  5. Swift3.0语言教程获取C字符串
  6. 【CyberSecurityLearning 49】PHP与MySQL进行交互
  7. 【Qt】Qt6调用Visual Studio2019生成的动态库详解
  8. 502 Bad Gateway nginx 解决
  9. 你必须要知道的架构知识~第二章 代码是否面向对象,要看你的继承怎么用
  10. mysql事务和锁innodb,MySQL - InnoDB 锁与事务(三)隔离级别与表的关系
  11. Python学习笔记之While循环(二)
  12. 为何说要多用组合少用继承?
  13. java day43【Filter:过滤器 、Listener:监听器】
  14. 极限的性质(汤家凤B站的学习笔记)
  15. matlab 图形对称,Matlab关于直线为轴对称与点为中心对称的图形代码
  16. 无锡科技职业学院院长孙兴洋应邀到美和易思作专题讲座
  17. 跳槽穷半年,转行穷三年,死守会穷一辈子
  18. 办公室养龟有什么讲究,办公室养龟风水
  19. H5移动端网页自定义扫码
  20. Sendrawpdu—Iphone短信欺骗工具发布下载

热门文章

  1. 聊聊Mysql的那些破事儿
  2. 【Netty】从 BIO、NIO 聊到 Netty
  3. App自动化元素定位不到?别慌,3大工具帮你解决
  4. assume用法及意思_英语单词Think, Suppose, Assume, Presume的区别
  5. 创立创造创建的区别_【干货|知识分享】Solidworks与Rhino有什么区别呢?
  6. iis worker process cpu 高_egg中的master、worker和agent
  7. 二叉树的深度_Golang面试题:二叉树的最大深度
  8. java socket同步通信,javasocket客户端与服务端同步通信实例
  9. sentinel限流_微服务架构进阶:Sentinel实现服务限流、熔断与降级
  10. centos6重启网络命令_虚拟机-linux系统中图形界面和命令行界面切换