1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253 |
- # Skip text characters for text token, place those to pending buffer
- # and increment current pos
- from .state_inline import StateInline
- # Rule to skip pure text
- # '{}$%@~+=:' reserved for extensions
- # !!!! Don't confuse with "Markdown ASCII Punctuation" chars
- # http://spec.commonmark.org/0.15/#ascii-punctuation-character
- _TerminatorChars = {
- "\n",
- "!",
- "#",
- "$",
- "%",
- "&",
- "*",
- "+",
- "-",
- ":",
- "<",
- "=",
- ">",
- "@",
- "[",
- "\\",
- "]",
- "^",
- "_",
- "`",
- "{",
- "}",
- "~",
- }
- def text(state: StateInline, silent: bool) -> bool:
- pos = state.pos
- posMax = state.posMax
- while (pos < posMax) and state.src[pos] not in _TerminatorChars:
- pos += 1
- if pos == state.pos:
- return False
- if not silent:
- state.pending += state.src[state.pos : pos]
- state.pos = pos
- return True
|