From 2017c80724415edb8d2b72528c656904dfaea85f Mon Sep 17 00:00:00 2001
From: crossdark
Date: Fri, 25 Oct 2024 19:25:12 +0800
Subject: [PATCH] =?UTF-8?q?3=20=E4=BD=BF=E7=94=A8pymdownx?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
CrossDown/Core.py | 24 ++++++++++++++++++------
README.html | 37 ++++++++++++++++++++++---------------
README.md | 10 +++++++++-
requirements.txt | 9 ++++++---
4 files changed, 55 insertions(+), 25 deletions(-)
diff --git a/CrossDown/Core.py b/CrossDown/Core.py
index 65a8aee..a6ed85b 100644
--- a/CrossDown/Core.py
+++ b/CrossDown/Core.py
@@ -1,6 +1,5 @@
-from re import Match
-
from markdown.extensions import Extension, extra, admonition, meta, sane_lists, toc, wikilinks, codehilite, legacy_attrs
+from pymdownx.arithmatex import ArithmatexExtension
from pygments.formatters import HtmlFormatter
@@ -48,14 +47,18 @@ class HighlightHtmlFormatter(HtmlFormatter):
Extensions = {
+ # 自带
'基本扩展': extra.ExtraExtension(fenced_code={'lang_prefix': ''}),
'警告扩展': admonition.AdmonitionExtension(),
'元数据': meta.MetaExtension(),
'能列表': sane_lists.SaneListExtension(),
'目录': toc.TocExtension(),
'内部链接': wikilinks.WikiLinkExtension(),
- '代码高亮': codehilite.CodeHiliteExtension(guess_lang=False, pygments_formatter=HighlightHtmlFormatter),
- '属性设置': legacy_attrs.LegacyAttrExtension()
+ # '代码高亮': codehilite.CodeHiliteExtension(guess_lang=False, pygments_formatter=HighlightHtmlFormatter),
+ '属性设置': legacy_attrs.LegacyAttrExtension(),
+
+ # pymdownx
+ '超级数学': ArithmatexExtension(),
}
@@ -68,7 +71,6 @@ class PreProcess(Preprocessor):
def run(self, lines: List[str]) -> List[str]:
new_lines = []
for line in lines: # 逐行遍历
- print(line)
for value in re.findall(r'\{\[(.+?)]}', line): # 找到变量
if value in self.variable: # 变量已定义
line = re.sub(fr'\{{\[{value}]}}', self.variable[value], line) # 替换变量为值
@@ -351,6 +353,15 @@ class CodeLine(Treeprocessor):
code.text = key
+class CodeBlock(Treeprocessor):
+ """
+ 渲染单行代码
+ """
+ def run(self, root: xml.etree.ElementTree.Element):
+ for code in root:
+ print(code.text)
+
+
class Pre(Extension):
"""预处理"""
def __init__(self, variable: Variable):
@@ -465,6 +476,7 @@ class Code(Extension):
"""
md.registerExtension(self) # 注册扩展
md.treeprocessors.register(CodeLine(variable=self.variable), 'code_line', 0) # 渲染单行代码块
+ md.treeprocessors.register(CodeBlock(), 'code_block', 1000) # 渲染多行代码块
def main(text: str, variable: Variable = None) -> Tuple[str, Variable]:
@@ -476,5 +488,5 @@ def main(text: str, variable: Variable = None) -> Tuple[str, Variable]:
"""
if variable is None:
variable = {}
- md = Markdown(extensions=[Pre(variable=variable), Basic(), Box(), Anchor()] + list(Extensions.values()) + [Code(variable=variable)])
+ md = Markdown(extensions=[Pre(variable=variable), Basic(), Anchor()] + list(Extensions.values()) + [Code(variable=variable)])
return md.convert(text), md.Meta
diff --git a/README.html b/README.html
index 784a1f5..cfb5dc7 100644
--- a/README.html
+++ b/README.html
@@ -76,6 +76,7 @@
4.2.4 shell
4.2.5 latex
4.2.6 HTML
+ 4.2.7 未知语言
@@ -123,7 +124,7 @@
CrossDown
自制的markdown,添加了一些自定义的语法
- 效果请见README.html
+ 效果请见
1 基本语法
1.1 标题
一级标题
@@ -212,36 +213,42 @@
4.2.5 latex
- \documentclass{article}
- \title{我的第一个LaTeX文档}
- \author{作者姓名}
- \date{\today}
+ \documentclass{article}
+ \title{我的第一个LaTeX文档}
+ \author{作者姓名}
+ \date{\today}
- \begin{document}
+ \begin{document}
- \maketitle
+ \maketitle
这是我的第一个LaTeX文档。它包含了一个标题、作者信息、日期和一个简单的正文部分。
- \section{引言}
+ \section{引言}
这是引言部分,可以简要介绍文档的主题和目的。
- \section{正文}
+ \section{正文}
这是正文部分,可以详细阐述你的观点或研究内容。你可以根据需要添加更多的章节和子章节。
- \subsection{子章节示例}
+ \subsection{子章节示例}
这是一个子章节的示例,用于展示如何在LaTeX文档中创建层次结构。
- \end{document}
+ \end{document}
4.2.6 HTML
*斜体***粗体**~下划线~~~删除线~~==高亮==
+ 4.2.7 未知语言
+ #! usr/bin/python3.11
+ def main():
+ print('CrossDown')
+
+
5 转义
\
\a
@@ -382,10 +389,10 @@
否则所有定义将被集中在文章末尾
14 外框
14.1 警告
- 这是一个
警告
……
-
+ 这是一个!!!警告!!!……
+ !!!
+ 这是一条警告
+ !!!
14.2 提醒
这是一个!!提醒!!……
!!
diff --git a/README.md b/README.md
index 4bc5575..082df29 100644
--- a/README.md
+++ b/README.md
@@ -158,7 +158,7 @@ ls
4.2.5 latex
-```latex
+```latex-rd
\documentclass{article}
\title{我的第一个LaTeX文档}
\author{作者姓名}
@@ -191,6 +191,14 @@ ls
*斜体***粗体**~下划线~~~删除线~~==高亮==
```
+4.2.7 未知语言
+
+```
+#! usr/bin/python3.11
+def main():
+ print('CrossDown')
+```
+
5 转义
\\
diff --git a/requirements.txt b/requirements.txt
index c23cca1..efbb0cd 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -1,4 +1,7 @@
Markdown>=3.7
-matplotlib>=3.9.2
-numpy>=2.1.1
-pygments>=2.18.0
\ No newline at end of file
+matplotlib~=3.8.2
+numpy~=1.26.2
+pygments>=2.18.0
+CrossDown~=2.2.0
+setuptools~=70.1.1
+emoji~=2.13.2
\ No newline at end of file