Я пытаюсь создать html через yattag.Единственная проблема - файл заголовка, который я использую из другого html-файла, поэтому я читаю этот файл и пытаюсь вставить его в качестве заголовка.Здесь проблема.Хотя я передаю неэкранированную строку html, yattag избегает ее.То есть он преобразует '<' в <code>< при добавлении в строку html.
MWE:
from yattag import Doc, indent
import html
doc, tag, text = Doc().tagtext()
h = open(nbheader_template, 'r')
h_content= h.read()
h_content = html.unescape(h_content)
doc.asis('<!DOCTYPE html>')
with tag('html'):
# insert dummy head
with tag('head'):
text(h_content) # just some dummy text to replace later - workaround for now
with tag('body'):
# insert as many divs as no of files
for i in range(counter):
with tag('div', id = 'divID_'+ str(1)):
text('Div Page: ' + str(i))
result = indent(doc.getvalue())
# inject raw head - dirty workaround as yattag not doing it
# result = result.replace('<head>headtext</head>',h_content)
with open('test.html', "w") as file:
file.write(result)
Выход:
Контекст: Я пытаюсь объединить несколько ноутбуков с jupyter Python в один HTML, поэтому тяжелый заголовок.Содержимое заголовка (nbheader_template) можно найти здесь