python.tkinter设计标记语言(语法1-语法定义)

@TOC

前言

本文仅作为笔记记录。

本篇文章中,我们将规定Tin标记语言的语法。

Tin标记语言简介

Tin标记语言在2020年就被创建,详见专栏Tin标记语言,那个时候的实现同样是基于python.tkinter的TinReader(TinGroup),拥有如下特性:

  • 简单的标记语法(稍稍比Markdown麻烦,但是在元素标签类标记语言中很简单)

  • 即时呈现,读者思维跟着写者

  • 整体编写简洁,不需要大量排版

当然了,稍微比markdown麻烦一点的语法是不想写太复杂的解析器,这次也不想写,所以语法设计上会延续上一代Tin标记语言的语法,但是会进行一些规范化的改良。

所以,这次相当于是重写整个TinReader(TinGroup),同样实现下列目标:

  1. 简单的标记语法

  2. 即时呈现

  3. 整体编写更加简洁

  4. 转释为html、md等(如果转释目标支持)

那我们先来定义一下语法吧。

Tin标记语法

常规类:

<tag-name>arg1|arg2|...

很简单,就是先写明一个标签,然后填值。其中arg1是跟着标签一起解析的,所以是必然存在的,不论是否为空值。在原来的Tin标记语言中,使用分号间隔,这里使用竖线间隔。

常规类的多行表达式:

<tag-name>arg1;
|tag2
|...
|tagn|

多行表达式比单行在某些情况下能使文本更加直观,比如图片标签,在Tin标记语言中:

<img>picture.png;
|[pic-url]
|200 x 300|

规范就是标签一行结尾使用;,接下来的每一行,如果想要表达内容或参数的话,就需要开头加上|,最后一行末尾也要加上|

注释类:

|-注释

在原来的Tin标记语言中,注释使用;开头。很难说那个更好,但是这个看起来像是注释,吧。

转义替换

%VEB% -> |

在原本的Tin标记语言中,使用@NAME@ -> CHAR,用@还是太别扭了。

  • 7
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值