|
@@ -644,37 +644,27 @@ class Tokenizer(object): |
|
|
self._emit_text(tag) |
|
|
self._emit_text(tag) |
|
|
self._emit(tokens.TagCloseClose()) |
|
|
self._emit(tokens.TagCloseClose()) |
|
|
|
|
|
|
|
|
def _really_parse_style(self, context, reset, markup, tag): |
|
|
|
|
|
"""Parse wiki-style bold or italics. Raises :py:exc:`BadRoute`.""" |
|
|
|
|
|
if context & contexts.STYLE_ITALICS: |
|
|
|
|
|
try: |
|
|
|
|
|
stack = self._parse(context) |
|
|
|
|
|
except BadRoute as route: |
|
|
|
|
|
if not route.context & contexts.STYLE_PASS_AGAIN: |
|
|
|
|
|
raise |
|
|
|
|
|
self._head = reset |
|
|
|
|
|
stack = self._parse(context | contexts.STYLE_SECOND_PASS) |
|
|
|
|
|
else: |
|
|
|
|
|
stack = self._parse(context) |
|
|
|
|
|
|
|
|
|
|
|
self._emit_tag_open(tag, markup) |
|
|
|
|
|
self._emit_all(stack) |
|
|
|
|
|
self._emit_tag_close(tag) |
|
|
|
|
|
|
|
|
|
|
|
def _parse_italics(self): |
|
|
def _parse_italics(self): |
|
|
"""Parse wiki-style italics.""" |
|
|
"""Parse wiki-style italics.""" |
|
|
reset = self._head |
|
|
reset = self._head |
|
|
try: |
|
|
try: |
|
|
self._really_parse_style(contexts.STYLE_ITALICS, reset, "''", "i") |
|
|
|
|
|
except BadRoute: |
|
|
|
|
|
|
|
|
stack = self._parse(contexts.STYLE_ITALICS) |
|
|
|
|
|
except BadRoute as route: |
|
|
self._head = reset |
|
|
self._head = reset |
|
|
self._emit_text("''") |
|
|
|
|
|
|
|
|
if route.context & contexts.STYLE_PASS_AGAIN: |
|
|
|
|
|
stack = self._parse(route.context | contexts.STYLE_SECOND_PASS) |
|
|
|
|
|
else: |
|
|
|
|
|
return self._emit_text("''") |
|
|
|
|
|
|
|
|
|
|
|
self._emit_tag_open("i", "''") |
|
|
|
|
|
self._emit_all(stack) |
|
|
|
|
|
self._emit_tag_close("i") |
|
|
|
|
|
|
|
|
def _parse_bold(self): |
|
|
def _parse_bold(self): |
|
|
"""Parse wiki-style bold.""" |
|
|
"""Parse wiki-style bold.""" |
|
|
reset = self._head |
|
|
reset = self._head |
|
|
try: |
|
|
try: |
|
|
self._really_parse_style(contexts.STYLE_BOLD, reset, "'''", "b") |
|
|
|
|
|
|
|
|
stack = self._parse(contexts.STYLE_BOLD) |
|
|
except BadRoute: |
|
|
except BadRoute: |
|
|
self._head = reset |
|
|
self._head = reset |
|
|
if self._context & contexts.STYLE_SECOND_PASS: |
|
|
if self._context & contexts.STYLE_SECOND_PASS: |
|
@@ -686,6 +676,10 @@ class Tokenizer(object): |
|
|
else: |
|
|
else: |
|
|
self._emit_text("'") |
|
|
self._emit_text("'") |
|
|
self._parse_italics() |
|
|
self._parse_italics() |
|
|
|
|
|
else: |
|
|
|
|
|
self._emit_tag_open("b", "'''") |
|
|
|
|
|
self._emit_all(stack) |
|
|
|
|
|
self._emit_tag_close("b") |
|
|
|
|
|
|
|
|
def _parse_italics_and_bold(self): |
|
|
def _parse_italics_and_bold(self): |
|
|
"""Parse wiki-style italics and bold together (i.e., five ticks).""" |
|
|
"""Parse wiki-style italics and bold together (i.e., five ticks).""" |
|
|