feature: add proper formula display in text and slides
This commit is contained in:
@@ -3,6 +3,7 @@ from mistletoe import Document, HtmlRenderer
|
||||
|
||||
from .comment import BlockComment
|
||||
from .dash import Dash
|
||||
from .formula import Formula
|
||||
from .halfwidth_spaces import HalfwidthSpaces
|
||||
from .include import Include
|
||||
from .morse import Morse
|
||||
@@ -62,6 +63,7 @@ class FiftyOhmHtmlRenderer(HtmlRenderer):
|
||||
TableBody,
|
||||
Qso,
|
||||
Include,
|
||||
Formula,
|
||||
*extras,
|
||||
**kwargs,
|
||||
)
|
||||
@@ -324,3 +326,6 @@ class FiftyOhmHtmlRenderer(HtmlRenderer):
|
||||
|
||||
def render_include(self, token):
|
||||
return self.include_handler(token.ident)
|
||||
|
||||
def render_formula(self, token):
|
||||
return f"\n$${token.formula}$$\n"
|
||||
|
||||
@@ -0,0 +1,27 @@
|
||||
import re
|
||||
|
||||
from mistletoe.block_token import BlockToken
|
||||
|
||||
|
||||
class Formula(BlockToken):
|
||||
r"""
|
||||
Block token ("$ a \cdot b $").
|
||||
Transfroms a line that contains only a formula enclosed in dollar signs into a Formula token.
|
||||
"""
|
||||
|
||||
@staticmethod
|
||||
def start(line):
|
||||
return re.match(r"^\s*\$[^$]+\$\s*$", line)
|
||||
|
||||
@classmethod
|
||||
def check_interrupts_paragraph(cls, lines):
|
||||
return cls.start(lines.peek())
|
||||
|
||||
@classmethod
|
||||
def read(cls, lines):
|
||||
line = next(lines) # Consume the line with the formula
|
||||
formula = re.match(r"^\s*\$([^$]+)\$\s*$", line).group(1)
|
||||
return formula
|
||||
|
||||
def __init__(self, match):
|
||||
self.formula = match
|
||||
Reference in New Issue
Block a user