Change definition markup to specify level of indentation

This commit is contained in:
RunasSudo 2019-09-22 03:48:10 +10:00
parent b7066c8e4e
commit 00b8991648
Signed by: RunasSudo
GPG Key ID: 7234E476BF21C61A
3 changed files with 11 additions and 6 deletions

View File

@ -153,7 +153,8 @@ class LaTeXRenderer(mistletoe.latex_renderer.LaTeXRenderer):
def render_definition(self, token): def render_definition(self, token):
self.heading_last = False self.heading_last = False
return format(r'\N{\par\leftskip=\dimexpr<lmarg>+1cm\relax\hangindent=1cm <content>\par}\N', return format(r'\N{\par\leftskip=\dimexpr<lmarg>+<level>cm\relax\relax\hangindent=1cm <content>\par}\N',
level=token.level,
content=self.render_inner(token) content=self.render_inner(token)
) )
@ -192,7 +193,7 @@ class LaTeXRenderer(mistletoe.latex_renderer.LaTeXRenderer):
def render_note(self, token): def render_note(self, token):
self.heading_last = False self.heading_last = False
return format(r'\N{\nopagebreak\par\footnotesize\selectfont\settowidth{\notetaglength}{\bfseries <label>:}\addtolength{\notetaglength}{1em}\leftskip=\dimexpr1cm+<level>cm\relax\hangindent=\notetaglength\makebox[\notetaglength][l]{\bfseries <label>:}<content>\par}\N', return format(r'\N{\nopagebreak\par\footnotesize\selectfont\settowidth{\notetaglength}{\bfseries <label>:}\addtolength{\notetaglength}{1em}\leftskip=\dimexpr<lmarg>+<level>cm\relax\hangindent=\notetaglength\makebox[\notetaglength][l]{\bfseries <label>:}<content>\par}\N',
level=token.level, level=token.level,
label=token.label, label=token.label,
content=self.render_inner(token) content=self.render_inner(token)

View File

@ -167,10 +167,10 @@ class Note(mistletoe.block_token.BlockToken):
mistletoe.block_token.add_token(Note) mistletoe.block_token.add_token(Note)
class Definition(mistletoe.block_token.BlockToken): class Definition(mistletoe.block_token.BlockToken):
pattern = re.compile(r'\*\*\*(.+)\*\*\*(:|.*means)') pattern = re.compile(r'(\t*)(\*\*\*.+\*\*\*(?::|.*means|.*includes).*)')
def __init__(self, match): def __init__(self, match):
self.children = mistletoe.span_token.tokenize_inner(match) self.level, self.children = match
@classmethod @classmethod
def start(cls, line): def start(cls, line):
@ -178,7 +178,11 @@ class Definition(mistletoe.block_token.BlockToken):
@classmethod @classmethod
def read(cls, lines): def read(cls, lines):
return next(lines).rstrip('\n') line = next(lines)
match = cls.pattern.match(line)
level_str, content = match.group(1, 2)
return len(level_str), mistletoe.span_token.tokenize_inner(content)
mistletoe.block_token.add_token(Definition) mistletoe.block_token.add_token(Definition)

View File

@ -257,7 +257,7 @@ class RTFRenderer(mistletoe.base_renderer.BaseRenderer):
return format(r'{\fi<fi>\li<li> <content>\par}', return format(r'{\fi<fi>\li<li> <content>\par}',
fi=cm_to_twip(-1), fi=cm_to_twip(-1),
li=cm_to_twip(LMARG + 2), li=cm_to_twip(LMARG + token.level + 1),
content=self.render_inner(token) content=self.render_inner(token)
) )