forked from CrossDark/CrossDown
1.5.2提纲好了
This commit is contained in:
parent
f345be0894
commit
97fe6ed5bd
@ -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
|
||||
|
124
README.html
124
README.html
@ -94,12 +94,10 @@
|
||||
<li><a href="#7">7 提纲</a><ul>
|
||||
<li><a href="#7.1">7.1 提纲号</a><ul>
|
||||
<li><a href="#7.1.1">7.1.1 提纲号示例</a></li>
|
||||
<li><a href="#7.1.2">7.1.2 错误示范</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><a href="#4">4 错误示范</a></li>
|
||||
<li><a href="#8">8 注释</a><ul>
|
||||
<li><a href="#8.1">8.1 强注释</a></li>
|
||||
<li><a href="#8.2">8.2 弱注释</a></li>
|
||||
@ -107,7 +105,7 @@
|
||||
</li>
|
||||
<li><a href="#9">9 列表</a><ul>
|
||||
<li><a href="#9.1">9.1 有序列表</a></li>
|
||||
<li><a href="#9.2">9.2 无序列表klzzwxhklzzwxhklzzwxh:00800077- Cklzzwxh:0078- D</a></li>
|
||||
<li><a href="#9.2">9.2 无序列表</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><a href="#10">10 表格</a></li>
|
||||
@ -119,115 +117,64 @@
|
||||
<li><a href="#13.3">13.3 放置</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><a href="#14">14 扩展</a></li>
|
||||
<li><a href="#14">14 外框</a><ul>
|
||||
<li><a href="#14.1">14.1 警告</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<h1 id="crossdown">CrossDown</h1>
|
||||
<p>自制的markdown,添加了一些自定义的语法klzzwxh:0001效果请见klzzwxh:0000</p>
|
||||
<p>
|
||||
<h1 id="1">1 基本语法</h1>
|
||||
</p>
|
||||
<p>
|
||||
<h2 id="1.1">1.1 标题</h2>
|
||||
</p>
|
||||
<h1 id="_1">一级标题</h1>
|
||||
<h2 id="_2">二级标题</h2>
|
||||
<h3 id="_3">三级标题</h3>
|
||||
<h4 id="_4">四级标题</h4>
|
||||
<h5 id="_5">五级标题</h5>
|
||||
<h6 id="_6">六级标题</h6>
|
||||
<p>
|
||||
<h2 id="1.2">1.2 样式</h2>
|
||||
</p>
|
||||
<p>
|
||||
<h3 id="1.2.1">1.2.1 <em>斜体</em></h3>
|
||||
</p>
|
||||
<p>
|
||||
<h3 id="1.2.2">1.2.2 <strong>粗体</strong></h3>
|
||||
</p>
|
||||
<p>
|
||||
<h3 id="1.2.3">1.2.3 <strong><em>粗斜体</em></strong></h3>
|
||||
</p>
|
||||
<p>
|
||||
<h3 id="1.2.4">1.2.4 <u>下划线</u></h3>
|
||||
</p>
|
||||
<p>
|
||||
<h3 id="1.2.5">1.2.5 <s>删除线</s></h3>
|
||||
</p>
|
||||
<p>
|
||||
<h3 id="1.2.6">1.2.6 <mark>高亮</mark></h3>
|
||||
</p>
|
||||
<p>
|
||||
<h3 id="1.2.7">1.2.7 <ruby>在文本的正上方添加一行小文本<rt>主要用于标拼音</rt></ruby></h3>
|
||||
</p>
|
||||
<p>
|
||||
<h3 id="1.2.8">1.2.8 <span title="只有鼠标放在上面才会显示隐藏文本">在指定的文本里面隐藏一段文本</span></h3>
|
||||
</p>
|
||||
<p>
|
||||
<h3 id="1.2.9">1.2.9 分割线</h3>
|
||||
</p>
|
||||
<hr />
|
||||
<hr />
|
||||
<hr />
|
||||
<p>
|
||||
<h2 id="1.3">1.3 链接</h2>
|
||||
</p>
|
||||
<p>
|
||||
<h3 id="1.3.1">1.3.1 普通链接</h3>
|
||||
</p>
|
||||
<p><a href="链接地址">链接文本</a></p>
|
||||
<p><a href="https://crossdark.com">CrossDark</a></p>
|
||||
<p><a href="https://crossdark.net/">https://crossdark.net/</a></p>
|
||||
<p>
|
||||
<h3 id="1.3.2">1.3.2 图片</h3>
|
||||
</p>
|
||||
<p><img alt="链接图片" src="链接地址" /></p>
|
||||
<p><img alt="sea" src="https://crossdark.com/wp-content/uploads/2024/05/1715259682-sea.jpg" /></p>
|
||||
<p>
|
||||
<h3 id="1.3.3">1.3.3 变量链接</h3>
|
||||
</p>
|
||||
<p><a href="https://crossdark.com">链接文本</a></p>
|
||||
<p>
|
||||
<h1 id="2">2 <abbr title="长的文本">缩写</abbr></h1>
|
||||
</p>
|
||||
<p>
|
||||
<h2 id="2.1">2.1 定义</h2>
|
||||
</p>
|
||||
<p>
|
||||
<h2 id="2.2">2.2 赋值</h2>
|
||||
</p>
|
||||
<p>直接在文本中使用 <abbr title="长的文本">缩写</abbr> 即可</p>
|
||||
<p>
|
||||
<h1 id="3">3 锚点</h1>
|
||||
</p>
|
||||
<p>{#锚点名}</p>
|
||||
<p>
|
||||
<h1 id="4">4 代码块</h1>
|
||||
</p>
|
||||
<p>
|
||||
<h2 id="4.1">4.1 <code>单行</code></h2>
|
||||
</p>
|
||||
<p>
|
||||
<h3 id="4.1.1">4.1.1 LaTex</h3>
|
||||
</p>
|
||||
<p><code>$CO_2$</code></p>
|
||||
<p><code>$H_2O$</code></p>
|
||||
<p>
|
||||
<h3 id="4.1.2">4.1.2 函数</h3>
|
||||
</p>
|
||||
<p><code>¥y=x*2+1¥</code> // 不定义范围</p>
|
||||
<p><code>¥y=x**2¥€-50,50€</code> // 定义了x范围</p>
|
||||
<p><code>¥y=x**3¥€-50,50|-100,100€</code> // 定义了y范围</p>
|
||||
<p>
|
||||
<h3 id="4.1.3">4.1.3 强调</h3>
|
||||
</p>
|
||||
<p><code>{强调文本}</code></p>
|
||||
<p>
|
||||
<h2 id="4.2">4.2 多行</h2>
|
||||
</p>
|
||||
<p>
|
||||
<h3 id="4.2.1">4.2.1 YAML</h3>
|
||||
</p>
|
||||
<div class="codehilite"><pre><span></span><code><span class="nt">A</span><span class="p">:</span>
|
||||
<span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">1. a</span>
|
||||
<span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">2. b</span>
|
||||
@ -238,15 +185,11 @@
|
||||
<span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">c</span>
|
||||
</code></pre></div>
|
||||
|
||||
<p>
|
||||
<h3 id="4.2.2">4.2.2 Python</h3>
|
||||
</p>
|
||||
<div class="codehilite"><pre><span></span><code><span class="nb">print</span><span class="p">(</span><span class="s1">'CrossDown'</span><span class="p">)</span>
|
||||
</code></pre></div>
|
||||
|
||||
<p>
|
||||
<h3 id="4.2.3">4.2.3 Mermaid</h3>
|
||||
</p>
|
||||
<div class="codehilite"><pre><span></span><code><span class="nf">graph</span><span class="w"> </span><span class="n">LR</span>
|
||||
<span class="w"> </span><span class="n">A</span><span class="o">--></span><span class="n">B</span>
|
||||
<span class="w"> </span><span class="n">A</span><span class="o">--></span><span class="n">C</span>
|
||||
@ -254,15 +197,11 @@
|
||||
<span class="w"> </span><span class="n">C</span><span class="o">--></span><span class="n">D</span>
|
||||
</code></pre></div>
|
||||
|
||||
<p>
|
||||
<h1 id="5">5 转义</h1>
|
||||
</p>
|
||||
<p>\ </p>
|
||||
<p>\a </p>
|
||||
<p>*</p>
|
||||
<p>
|
||||
<h1 id="6">6 引用</h1>
|
||||
</p>
|
||||
<blockquote>
|
||||
<p>一级引用</p>
|
||||
<blockquote>
|
||||
@ -280,58 +219,36 @@
|
||||
</blockquote>
|
||||
</blockquote>
|
||||
</blockquote>
|
||||
<p>引文内添加klzzwxhklzzwxhklzzwxh:00990096klzzwxh:0097</p>
|
||||
<p>引文内添加klzzwxhklzzwxhklzzwxh:00420039klzzwxh:0040</p>
|
||||
</blockquote>
|
||||
<p>
|
||||
<h1 id="7">7 提纲</h1>
|
||||
</p>
|
||||
<p>
|
||||
<h2 id="7.1">7.1 提纲号</h2>
|
||||
</p>
|
||||
<p>以数字和点组成,通过空格与提纲名分隔,例如:</p>
|
||||
<p>
|
||||
<h3 id="7.1.1">7.1.1 提纲号示例</h3>
|
||||
</p>
|
||||
<p>点不能出现在开头或结尾,例如</p>
|
||||
<p>.<h3 id="7.1.2">7.1.2 错误示范</h3>
|
||||
</p>
|
||||
<p>.7.1.2 错误示范</p>
|
||||
<p>7.1.3. 错误示范</p>
|
||||
<p>不能出现两个及以上连续的点,例如:</p>
|
||||
<p>7..1…<h1 id="4">4 错误示范</h1>
|
||||
</p>
|
||||
<p>7..1…4 错误示范</p>
|
||||
<p>提纲号会被自动配置为锚点,可直接使用{7}76.1}</p>
|
||||
<p>
|
||||
<h1 id="8">8 注释</h1>
|
||||
</p>
|
||||
<p>
|
||||
<h2 id="8.1">8.1 强注释</h2>
|
||||
</p>
|
||||
<p>|=klzzwxhklzzwxhklzzwxh:00690064klzzwxh:0067=|</p>
|
||||
<p>
|
||||
<p>|=klzzwxhklzzwxhklzzwxh:00310026klzzwxh:0029=|</p>
|
||||
<h2 id="8.2">8.2 弱注释</h2>
|
||||
</p>
|
||||
<!-- 这是注释 -->
|
||||
|
||||
<p>只有在 // 后面才会被移除</p>
|
||||
<p><code>// 代码中的注释弱不会被移除</code></p>
|
||||
<p>
|
||||
<h1 id="9">9 列表</h1>
|
||||
</p>
|
||||
<p>
|
||||
<h2 id="9.1">9.1 有序列表</h2>
|
||||
</p>
|
||||
<ol>
|
||||
<li>a</li>
|
||||
<li>b</li>
|
||||
<li>c</li>
|
||||
<li>d</li>
|
||||
</ol>
|
||||
<p>
|
||||
<h2 id="9.2">9.2 无序列表klzzwxhklzzwxhklzzwxh:00800077- Cklzzwxh:0078- D</h2>
|
||||
</p>
|
||||
<p>
|
||||
<h2 id="9.2">9.2 无序列表</h2>
|
||||
<h1 id="10">10 表格</h1>
|
||||
</p>
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
@ -353,31 +270,19 @@
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<p>
|
||||
<h1 id="11">11 警告</h1>
|
||||
</p>
|
||||
<div class="admonition warning">
|
||||
<p class="admonition-title">警告标题</p>
|
||||
<p>警告内容</p>
|
||||
</div>
|
||||
<p>
|
||||
<h1 id="12">12 Emoji</h1>
|
||||
</p>
|
||||
<p>🚴</p>
|
||||
<p>这是一个笑脸😃图案</p>
|
||||
<p>
|
||||
<h1 id="13">13 脚注</h1>
|
||||
</p>
|
||||
<p>
|
||||
<h2 id="13.1">13.1 使用</h2>
|
||||
</p>
|
||||
<p>这是一个<sup id="fnref:脚注"><a class="footnote-ref" href="#fn:脚注">1</a></sup></p>
|
||||
<p>
|
||||
<h2 id="13.2">13.2 定义</h2>
|
||||
</p>
|
||||
<p>
|
||||
<h2 id="13.3">13.3 放置</h2>
|
||||
</p>
|
||||
<p>通过一下代码可以将文章中所有的脚注定义集中于一处</p>
|
||||
<div class="footnote">
|
||||
<hr />
|
||||
@ -388,8 +293,11 @@
|
||||
</ol>
|
||||
</div>
|
||||
<p>否则所有定义将被集中在文章末尾</p>
|
||||
<p>
|
||||
<h1 id="14">14 扩展</h1>
|
||||
</p>
|
||||
<h1 id="14">14 外框</h1>
|
||||
<h2 id="14.1">14.1 警告</h2>
|
||||
<p>!!!警告!!!</p>
|
||||
<div style="display: inline-block; border: 1px solid red;">
|
||||
<p>这是一条警告</p>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
|
Loading…
Reference in New Issue
Block a user