Skip to content

Commit

Permalink
Adding html support to markdown transformer.
Browse files Browse the repository at this point in the history
  • Loading branch information
jackdewinter committed Jul 19, 2020
1 parent d07237b commit c9cd5e5
Showing 1 changed file with 24 additions and 1 deletion.
25 changes: 24 additions & 1 deletion test/transform_to_markdown.py
Original file line number Diff line number Diff line change
Expand Up @@ -42,16 +42,18 @@ def transform(self, actual_tokens):
transformed_data += self.rehydrate_paragraph(next_token)
elif next_token.token_name == MarkdownToken.token_indented_code_block:
transformed_data += self.rehydrate_indented_code_block(next_token)
elif next_token.token_name == MarkdownToken.token_html_block:
transformed_data += self.rehydrate_html_block(next_token)
elif next_token.token_name == MarkdownToken.token_text:
transformed_data += self.rehydrate_text(next_token)
elif next_token.token_name == MarkdownToken.token_blank_line:
transformed_data += self.rehydrate_blank_line(next_token)

elif (
next_token.token_name == MarkdownToken.token_unordered_list_start
or next_token.token_name == MarkdownToken.token_ordered_list_start
or next_token.token_name == MarkdownToken.token_block_quote
or next_token.token_name == MarkdownToken.token_fenced_code_block
or next_token.token_name == MarkdownToken.token_html_block
or next_token.token_name == MarkdownToken.token_setext_heading
or next_token.token_name == MarkdownToken.token_atx_heading
or next_token.token_name
Expand Down Expand Up @@ -79,6 +81,10 @@ def transform(self, actual_tokens):
transformed_data += self.rehydrate_indented_code_block_end(
next_token
)
elif adjusted_token_name == MarkdownToken.token_html_block:
transformed_data += self.rehydrate_html_block_end(
next_token
)
else:
assert False, "end_next_token>>" + str(adjusted_token_name)
else:
Expand Down Expand Up @@ -142,6 +148,21 @@ def rehydrate_indented_code_block_end(self, next_token):
del self.block_stack[-1]
return ""

def rehydrate_html_block(self, next_token):
"""
Rehydrate the html block from the token.
"""
self.block_stack.append(next_token)
return ""

def rehydrate_html_block_end(self, next_token):
"""
Rehydrate the end of the html block from the token.
"""
assert next_token
del self.block_stack[-1]
return ""

# pylint: disable=too-many-locals
# pylint: disable=too-many-statements
# pylint: disable=too-many-branches
Expand Down Expand Up @@ -218,6 +239,8 @@ def rehydrate_text(self, next_token):
)
prefix_text = ""
leading_whitespace = ""
elif self.block_stack[-1].token_name == MarkdownToken.token_html_block:
main_text += "\n"
elif self.block_stack[-1].token_name == MarkdownToken.token_paragraph:
if "\n" in main_text:
split_token_text = main_text.split("\n")
Expand Down

0 comments on commit c9cd5e5

Please sign in to comment.