1.9.4 代码块升级
This commit is contained in:
parent
9ef3a6669b
commit
60913d787d
@ -10,12 +10,13 @@ from markdown.blockprocessors import BlockProcessor
|
|||||||
from markdown import Markdown
|
from markdown import Markdown
|
||||||
from typing import *
|
from typing import *
|
||||||
import re
|
import re
|
||||||
|
import lxml
|
||||||
import xml
|
import xml
|
||||||
import emoji
|
import emoji
|
||||||
|
|
||||||
|
|
||||||
try: # 检测当前平台是否支持扩展语法
|
try: # 检测当前平台是否支持扩展语法
|
||||||
from .Extra import *
|
from .Extra import *
|
||||||
|
|
||||||
EXTRA_ABLE = True
|
EXTRA_ABLE = True
|
||||||
except ModuleNotFoundError: # 不支持扩展语法
|
except ModuleNotFoundError: # 不支持扩展语法
|
||||||
EXTRA_ABLE = False
|
EXTRA_ABLE = False
|
||||||
@ -206,43 +207,43 @@ class CodeLine(Treeprocessor):
|
|||||||
self.variable = variable
|
self.variable = variable
|
||||||
|
|
||||||
def run(self, root):
|
def run(self, root):
|
||||||
for elem in root.iter('p'): # 在所有段落中查找单行代码
|
for code in root.findall('.//code'): # 在所有段落中查找单行代码
|
||||||
if elem.findall('code'): # 找到单行代码
|
if re.match(r'\$[^$]*\$', code.text): # 渲染Latex
|
||||||
for code in elem:
|
code.text = fr'\({code.text[1:-1]}\)'
|
||||||
if re.match(r'\$[^$]*\$', code.text): # 渲染Latex
|
code.tag = 'p'
|
||||||
if isinstance(elem.text, str): # 这个段落还有其它内容
|
"""if isinstance(elem.text, str): # 这个段落还有其它内容
|
||||||
elem.text += fr'\({code.text[1:-1]}\){code.tail}' # 插入latex
|
elem.text += fr'\({code.text[1:-1]}\){code.tail}' # 插入latex
|
||||||
else:
|
else:
|
||||||
elem.text = fr'\({code.text[1:-1]}\)' # latex是段落中唯一的内容
|
elem.text = fr'\({code.text[1:-1]}\)' # latex是段落中唯一的内容
|
||||||
elem.remove(code)
|
elem.remove(code)"""
|
||||||
elif re.match(r'¥[^$]*¥', code.text): # 是数学函数(单行)
|
elif re.match(r'¥[^$]*¥', code.text): # 是数学函数(单行)
|
||||||
if EXTRA_ABLE: # 支持扩展语法
|
if EXTRA_ABLE: # 支持扩展语法
|
||||||
expression, range_ = re.findall(r'¥([^$]*)¥(€[^$]*€)?', code.text)[0] # 分离表达式与范围(如果有)
|
expression, range_ = re.findall(r'¥([^$]*)¥(€[^$]*€)?', code.text)[0] # 分离表达式与范围(如果有)
|
||||||
x_r = (-10, 10)
|
x_r = (-10, 10)
|
||||||
y_r = (-20, 20)
|
y_r = (-20, 20)
|
||||||
if range_ != '': # 定义了范围
|
if range_ != '': # 定义了范围
|
||||||
ranges = range_[1:-1].split('|')
|
ranges = range_[1:-1].split('|')
|
||||||
if len(ranges) in (1, 2): # 定义的范围正确
|
if len(ranges) in (1, 2): # 定义的范围正确
|
||||||
x_r = tuple(int(i) for i in ranges[0].split(','))
|
x_r = tuple(int(i) for i in ranges[0].split(','))
|
||||||
if len(ranges) == 2: # 定义了y范围
|
if len(ranges) == 2: # 定义了y范围
|
||||||
y_r = tuple(int(i) for i in ranges[1].split(','))
|
y_r = tuple(int(i) for i in ranges[1].split(','))
|
||||||
code.tag = 'img'
|
code.tag = 'img'
|
||||||
code.set('src', f"""data:image/png;base64,{(function_drawing(
|
code.set('src', f"""data:image/png;base64,{(function_drawing(
|
||||||
function=lambda x: eval(expression.split('=')[1]), x_range=x_r, y_range=y_r
|
function=lambda x: eval(expression.split('=')[1]), x_range=x_r, y_range=y_r
|
||||||
))}""") # 绘制函数图像
|
))}""") # 绘制函数图像
|
||||||
code.set('alt', 'Base64 函数图片')
|
code.set('alt', 'Base64 函数图片')
|
||||||
else: # 不支持扩展语法
|
else: # 不支持扩展语法
|
||||||
code.tag = 'span'
|
code.tag = 'span'
|
||||||
code.set('class', 'block')
|
code.set('class', 'block')
|
||||||
code.text = '该平台不支持扩展语法'
|
code.text = '该平台不支持扩展语法'
|
||||||
elif re.match(r'\{[^$]*}', code.text): # 是强调
|
elif re.match(r'\{[^$]*}', code.text): # 是强调
|
||||||
code.tag = 'span'
|
code.tag = 'span'
|
||||||
code.set('class', 'block')
|
code.set('class', 'block')
|
||||||
key = code.text[1:-1] # 去掉两边的{}
|
key = code.text[1:-1] # 去掉两边的{}
|
||||||
if key in self.variable:
|
if key in self.variable:
|
||||||
code.text = self.variable[key]
|
code.text = self.variable[key]
|
||||||
else:
|
else:
|
||||||
code.text = key
|
code.text = key
|
||||||
|
|
||||||
|
|
||||||
class CodeBlock(Treeprocessor):
|
class CodeBlock(Treeprocessor):
|
||||||
|
41
README.html
41
README.html
File diff suppressed because one or more lines are too long
24
README.md
24
README.md
@ -252,6 +252,30 @@ cd ../..
|
|||||||
- C
|
- C
|
||||||
- D
|
- D
|
||||||
|
|
||||||
|
9.3 释义列表
|
||||||
|
|
||||||
|
A
|
||||||
|
: 1. a
|
||||||
|
2. b
|
||||||
|
3. c
|
||||||
|
|
||||||
|
B
|
||||||
|
: - a
|
||||||
|
- b
|
||||||
|
- c
|
||||||
|
|
||||||
|
`{强调变量}`
|
||||||
|
: - a
|
||||||
|
- b
|
||||||
|
- c
|
||||||
|
|
||||||
|
Apple
|
||||||
|
: Pomaceous fruit of plants of the genus Malus in
|
||||||
|
the family Rosaceae.
|
||||||
|
|
||||||
|
Orange
|
||||||
|
: The fruit of an evergreen tree of the genus Citrus.
|
||||||
|
|
||||||
10 表格
|
10 表格
|
||||||
|
|
||||||
| 表头1 | 表头2 | 表头3 |
|
| 表头1 | 表头2 | 表头3 |
|
||||||
|
Loading…
Reference in New Issue
Block a user