Для очень простого случая как это хорошо использовать PHP в качестве шаблона. Однако, если Вы идете вне простой логики (и Вы, скорее всего, будете), это - хорошая идея использовать движки шаблонов.
В Платформе Зенда, которая использует сценарии представления PHP по умолчанию, рекомендуемый способ сделать, это было бы похоже на это:
<?php if ($a) : ?>
[MARKUP HERE]
<?php else : ?>
[SOME MORE MARKUP]
<?php endif ?>
более подробный синтаксис делает намного легче соответствовать условным блокам во взгляде, чем использование фигурных скобок.
Хорошее решение включает загрузку в Документы Google и экспорт из него html-версии. (Для этого должен быть api?)
Он делает так много "чисток"; Beautiful Soup в будущем можно будет использовать для внесения любых дальнейших изменений, если это необходимо. Это самая мощная и элегантная библиотека синтаксического анализа HTML на планете.
Это известный стандарт для журналистских компаний.
Это зависит от того, с каким форматированием и изображениями вы имеете дело. Я делаю одно из двух:
Вы также можете использовать Abiword / wvWare , чтобы преобразовать текстовый документ в XHTML, а затем проанализировать его с помощью BeautifulSoup / ElementTree / и т. Д. . для предварительной обработки, если вам нужно. По моему опыту, Abiword неплохо справляется с преобразованием файлов Word и создает относительно чистые файлы XHTML.
Я должен упомянуть, что Abiword можно запускать из командной строки, поэтому его легко интегрировать в автоматизированный процесс.
Мое сверхпростое приложение WordOff имеет API для очистки от мусора HTML, экспортированного из Word. Вы можете переопределить метод сохранения вашей модели плоских страниц, чтобы ваш HTML-код передавался через API при первом сохранении. Примерно так:
import urllib
import urllib2
def decruft(html):
data = urllib.urlencode({'html' : html})
req = urllib2.Request('http://wordoff.org/api/clean', data)
response = urllib2.urlopen(req)
return response.read()
def save(self, **kwargs):
if not self.pk: # only de-cruft when content is first added
self.content = decruft(self.content)
super(FlatPage, self).save(**kwargs)