Add rudimentary preview link coloring
This commit is contained in:
parent
aa4b94d0c1
commit
a4dc2e496f
|
@ -5,6 +5,13 @@ readable formats.
|
||||||
|
|
||||||
|
|
||||||
class PreviewHtmlRenderer():
|
class PreviewHtmlRenderer():
|
||||||
|
def __init__(self, article_map):
|
||||||
|
"""
|
||||||
|
article_map maps article titles to character ids. An article
|
||||||
|
present in the map but mapped to None is a phantom article.
|
||||||
|
"""
|
||||||
|
self.article_map = article_map
|
||||||
|
|
||||||
def TextSpan(self, span):
|
def TextSpan(self, span):
|
||||||
return span.innertext
|
return span.innertext
|
||||||
|
|
||||||
|
@ -18,9 +25,11 @@ class PreviewHtmlRenderer():
|
||||||
return f'<p>{"".join(span.recurse(self))}</p>'
|
return f'<p>{"".join(span.recurse(self))}</p>'
|
||||||
|
|
||||||
def SignatureParagraph(self, span):
|
def SignatureParagraph(self, span):
|
||||||
return ('<hr><span class="signature"><p>'
|
return (
|
||||||
|
'<hr><span class="signature"><p>'
|
||||||
f'{"".join(span.recurse(self))}'
|
f'{"".join(span.recurse(self))}'
|
||||||
'</p></span>')
|
'</p></span>'
|
||||||
|
)
|
||||||
|
|
||||||
def BoldSpan(self, span):
|
def BoldSpan(self, span):
|
||||||
return f'<b>{"".join(span.recurse(self))}</b>'
|
return f'<b>{"".join(span.recurse(self))}</b>'
|
||||||
|
@ -29,4 +38,11 @@ class PreviewHtmlRenderer():
|
||||||
return f'<i>{"".join(span.recurse(self))}</i>'
|
return f'<i>{"".join(span.recurse(self))}</i>'
|
||||||
|
|
||||||
def CitationSpan(self, span):
|
def CitationSpan(self, span):
|
||||||
return f'<a href="#">{"".join(span.recurse(self))}</a>'
|
if span.cite_target in self.article_map:
|
||||||
|
if self.article_map.get(span.cite_target):
|
||||||
|
link_class = ' style="color:#0000ff"'
|
||||||
|
else:
|
||||||
|
link_class = ' style="color:#ff0000"'
|
||||||
|
else:
|
||||||
|
link_class = ' style="color:#008000"'
|
||||||
|
return f'<a href="#"{link_class}>{"".join(span.recurse(self))}</a>'
|
||||||
|
|
|
@ -240,7 +240,8 @@ def get_bp():
|
||||||
article = request.json['article']
|
article = request.json['article']
|
||||||
# TODO verification
|
# TODO verification
|
||||||
parsed_draft = parse_raw_markdown(article['contents'])
|
parsed_draft = parse_raw_markdown(article['contents'])
|
||||||
rendered_html = parsed_draft.render(PreviewHtmlRenderer())
|
rendered_html = parsed_draft.render(PreviewHtmlRenderer(
|
||||||
|
{'Article':'default','Phantom':None}))
|
||||||
features = parsed_draft.render(FeatureCounter())
|
features = parsed_draft.render(FeatureCounter())
|
||||||
|
|
||||||
filename = f'{article["character"]}.{article["aid"]}'
|
filename = f'{article["character"]}.{article["aid"]}'
|
||||||
|
|
Loading…
Reference in New Issue