From 97fe6ed5bd42000ef9612c5b60a10be911d9d5d0 Mon Sep 17 00:00:00 2001
From: crossdark
Date: Sun, 6 Oct 2024 18:15:24 +0800
Subject: [PATCH] =?UTF-8?q?1.5.2=E6=8F=90=E7=BA=B2=E5=A5=BD=E4=BA=86?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
CrossDown/Core.py | 23 +++++++--
README.html | 124 ++++++----------------------------------------
README.md | 10 +++-
3 files changed, 43 insertions(+), 114 deletions(-)
diff --git a/CrossDown/Core.py b/CrossDown/Core.py
index 9939cab..f11b38b 100644
--- a/CrossDown/Core.py
+++ b/CrossDown/Core.py
@@ -150,9 +150,12 @@ class Syllabus(BlockProcessor):
return re.match(self.syllabus_re, block)
def run(self, parent, blocks):
- # 处理匹配的块
- for num, block in enumerate(blocks):
- pass
+ syllabus = re.match(self.syllabus_re, blocks[0]) # 匹配提纲的号和内容
+ header = xml.etree.ElementTree.SubElement(parent, f'h{len(syllabus.group(1).split("."))}') # 按照提纲号等级创建标题
+ header.set('id', syllabus.group(1)) # 设置提纲ID
+ header.text = syllabus.group(1) + ' ' + syllabus.group(3) # 设置提纲内容
+ blocks[0] = ''
+ return False
class BoxBlockProcessor(BlockProcessor):
@@ -201,9 +204,19 @@ class Basic(Extension):
r'\[(.*?)]-\((.*?)\)', tag='span', property_='title'), 'hide', 0
) # [在指定的文本里面隐藏一段文本]-(只有鼠标放在上面才会显示隐藏文本)
md.inlinePatterns.register(Emoji(r':(.+?):'), 'emoji', 0) # 将emoji短代码转换为emoji字符
- md.inlinePatterns.register(Syllabus(r'(\d+(\.\d+)*)\s+(.*)'), 'syllabus', 0) # 渲染提纲
+ md.parser.blockprocessors.register(Syllabus(md.parser), 'syllabus', 11) # 渲染提纲
+
+
+class Box(Extension):
+ """
+ 渲染外框
+ """
+
+ def extendMarkdown(self, md):
+ md.registerExtension(self) # 注册扩展
+ md.parser.blockprocessors.register(BoxBlockProcessor(md.parser), 'box', 175)
def main(text: str) -> Tuple[str, Dict[str, List[str]]]:
- md = Markdown(extensions=[Basic()] + list(Extensions.values()), safe_mode=False)
+ md = Markdown(extensions=[Basic(), Box()] + list(Extensions.values()), safe_mode=False)
return md.convert(text), md.Meta
diff --git a/README.html b/README.html
index c4f3dfb..8a5a5ce 100644
--- a/README.html
+++ b/README.html
@@ -94,12 +94,10 @@
7 提纲
- 4 错误示范
8 注释
9 列表
10 表格
@@ -119,115 +117,64 @@
13.3 放置
- 14 扩展
+ 14 外框
+
CrossDown
自制的markdown,添加了一些自定义的语法klzzwxh:0001效果请见klzzwxh:0000
-
1 基本语法
-
-
1.1 标题
-
一级标题
二级标题
三级标题
四级标题
五级标题
六级标题
-
1.2 样式
-
-
1.2.1 斜体
-
-
1.2.2 粗体
-
-
1.2.3 粗斜体
-
-
1.2.4 下划线
-
-
1.2.5 删除线
-
-
1.2.6 高亮
-
-
1.2.7 在文本的正上方添加一行小文本
-
-
1.2.8 在指定的文本里面隐藏一段文本
-
-
1.2.9 分割线
-
-
1.3 链接
-
-
1.3.1 普通链接
-
链接文本
CrossDark
https://crossdark.net/
-
1.3.2 图片
-
-
1.3.3 变量链接
-
链接文本
-
2 缩写
-
-
2.1 定义
-
-
2.2 赋值
-
直接在文本中使用 缩写 即可
-
3 锚点
-
{#锚点名}
-
4 代码块
-
-
4.1 单行
-
-
4.1.1 LaTex
-
$CO_2$
$H_2O$
-
4.1.2 函数
-
¥y=x*2+1¥
// 不定义范围
¥y=x**2¥€-50,50€
// 定义了x范围
¥y=x**3¥€-50,50|-100,100€
// 定义了y范围
-
4.1.3 强调
-
{强调文本}
-
4.2 多行
-
-
4.2.1 YAML
-
A:
1. a
2. b
@@ -238,15 +185,11 @@
- c
-
4.2.2 Python
-
-
4.2.3 Mermaid
-
graph LR
A-->B
A-->C
@@ -254,15 +197,11 @@
C-->D
-
5 转义
-
\
\a
*
-
6 引用
-
一级引用
@@ -280,58 +219,36 @@
- 引文内添加klzzwxhklzzwxhklzzwxh:00990096klzzwxh:0097
+ 引文内添加klzzwxhklzzwxhklzzwxh:00420039klzzwxh:0040
-
7 提纲
-
-
7.1 提纲号
-
以数字和点组成,通过空格与提纲名分隔,例如:
-
7.1.1 提纲号示例
-
点不能出现在开头或结尾,例如
- .
7.1.2 错误示范
-
+ .7.1.2 错误示范
7.1.3. 错误示范
不能出现两个及以上连续的点,例如:
- 7..1…
4 错误示范
-
+ 7..1…4 错误示范
提纲号会被自动配置为锚点,可直接使用{7}76.1}
-
8 注释
-
-
8.1 强注释
-
- |=klzzwxhklzzwxhklzzwxh:00690064klzzwxh:0067=|
-
+
|=klzzwxhklzzwxhklzzwxh:00310026klzzwxh:0029=|
8.2 弱注释
-
只有在 // 后面才会被移除
// 代码中的注释弱不会被移除
-
9 列表
-
-
9.1 有序列表
-
- a
- b
- c
- d
-
-
9.2 无序列表klzzwxhklzzwxhklzzwxh:00800077- Cklzzwxh:0078- D
-
-
+
9.2 无序列表
10 表格
-
-
11 警告
-
-
12 Emoji
-
🚴
这是一个笑脸😃图案
-
13 脚注
-
-
13.1 使用
-
这是一个
-
13.2 定义
-
-
13.3 放置
-
通过一下代码可以将文章中所有的脚注定义集中于一处
否则所有定义将被集中在文章末尾
-
-
14 扩展
-
+ 14 外框
+ 14.1 警告
+ !!!警告!!!
+