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 注释
  • -
  • 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 图片

    -

    链接图片

    sea

    -

    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

    -

    print('CrossDown')
         
    -

    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 有序列表

    -

    1. a
    2. b
    3. c
    4. d
    -

    -

    9.2 无序列表klzzwxhklzzwxhklzzwxh:00800077- Cklzzwxh:0078- D

    -

    -

    +

    9.2 无序列表

    10 表格

    -

    @@ -353,31 +270,19 @@
    -

    11 警告

    -

    警告标题

    警告内容

    -

    12 Emoji

    -

    🚴

    这是一个笑脸😃图案

    -

    13 脚注

    -

    -

    13.1 使用

    -

    这是一个1

    -

    13.2 定义

    -

    -

    13.3 放置

    -

    通过一下代码可以将文章中所有的脚注定义集中于一处


    @@ -388,8 +293,11 @@

    否则所有定义将被集中在文章末尾

    -

    -

    14 扩展

    -

    +

    14 外框

    +

    14.1 警告

    +

    !!!警告!!!

    +
    +

    这是一条警告

    +
    diff --git a/README.md b/README.md index f377e5e..f6f1b3e 100644 --- a/README.md +++ b/README.md @@ -242,4 +242,12 @@ graph LR 否则所有定义将被集中在文章末尾 -14 扩展 +14 外框 + +14.1 警告 + +!!!警告!!! + +!!! +这是一条警告 +!!!