Make inline slide components work again
This commit is contained in:
parent
f0689888d4
commit
eb0aec2cd3
@ -14,6 +14,7 @@ FRAGMENT_CLASS = "fragment"
|
|||||||
|
|
||||||
def defragmentize(html):
|
def defragmentize(html):
|
||||||
dom = etree.fromstring(html)
|
dom = etree.fromstring(html)
|
||||||
|
|
||||||
query = "|".join([
|
query = "|".join([
|
||||||
# FRAGMENT_TAG between two spaces
|
# FRAGMENT_TAG between two spaces
|
||||||
"//*[contains(text(), ' %s ')]" % FRAGMENT_TAG,
|
"//*[contains(text(), ' %s ')]" % FRAGMENT_TAG,
|
||||||
@ -33,7 +34,7 @@ def defragmentize(html):
|
|||||||
|
|
||||||
fragment.set('class', class_list)
|
fragment.set('class', class_list)
|
||||||
fragment.text = re.sub(r"\s*%s\s*" %
|
fragment.text = re.sub(r"\s*%s\s*" %
|
||||||
re.escape(FRAGMENT_TAG), '', fragment.text)
|
re.escape(FRAGMENT_TAG), '', fragment.text)
|
||||||
|
|
||||||
return etree.tostring(dom, method='html', encoding='utf-8',
|
return etree.tostring(dom, method='html', encoding='utf-8',
|
||||||
pretty_print=True).decode('utf-8')
|
pretty_print=True).decode('utf-8')
|
||||||
|
|||||||
18
slides.py
18
slides.py
@ -14,17 +14,27 @@ def compile_slide(slide, root_directory):
|
|||||||
slide_metadata = get_slide_metadata(slide)
|
slide_metadata = get_slide_metadata(slide)
|
||||||
slide_data = get_slide_data(slide)
|
slide_data = get_slide_data(slide)
|
||||||
slide = get_slide_layout(slide_metadata['layout'])
|
slide = get_slide_layout(slide_metadata['layout'])
|
||||||
|
|
||||||
if 'todo' in slide_data.keys():
|
if 'todo' in slide_data.keys():
|
||||||
# TODO: Move the css into a global onpoint.css file
|
# TODO: Move the css into a global onpoint.css file
|
||||||
slide = '<aside class="todo" style="position:absolute; z-index:100; display:block; background:rgba(255,0,0,.8); top:0; right:0; max-width:20%; margin:.5em; padding:.5em; border-radius:1em; font-family:sans-serif; font-size: .8em;">@todo</aside>' + slide
|
slide = '<aside class="todo" style="position:absolute; z-index:100; display:block; background:rgba(255,0,0,.8); top:0; right:0; max-width:20%; margin:.5em; padding:.5em; border-radius:1em; font-family:sans-serif; font-size: .8em;">@todo</aside>' + slide
|
||||||
|
|
||||||
for key, value in slide_data.items():
|
for key, value in slide_data.items():
|
||||||
placeholder = '@' + key
|
placeholder = '@' + key
|
||||||
filler = convert_slide_content(value)
|
filler = convert_slide_content(value)
|
||||||
# print('replace', placeholder, 'with', filler)
|
|
||||||
if '@' + key in slide:
|
# very unelegant attempt at inline elements
|
||||||
|
inline_key = '@' + key + '(inline)'
|
||||||
|
if inline_key in slide:
|
||||||
|
slide = slide.replace(
|
||||||
|
inline_key,
|
||||||
|
re.sub(r"<p>(.+)</p>", r"\1", filler)
|
||||||
|
)
|
||||||
|
|
||||||
|
elif '@' + key in slide:
|
||||||
slide = slide.replace(placeholder, filler)
|
slide = slide.replace(placeholder, filler)
|
||||||
# very unelegant attempt at inline elements
|
|
||||||
slide = re.sub(r"<p>(.+?)</p>\n\(inline\)", r"\1", slide)
|
|
||||||
return slide
|
return slide
|
||||||
|
|
||||||
# Parses the metadata passage of a given slide and returns the metadata as a
|
# Parses the metadata passage of a given slide and returns the metadata as a
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user