Как конвертировать html смешанная уценка в html / docx / pdf? - PullRequest
0 голосов
/ 20 февраля 2020

Я работаю в azure devops wiki для создания спецификаций и другой документации программного обеспечения.

Мне нужно создать таблицы и подробно некоторые маркированные списки. Это возможно в github приукрашенной уценке (именно в azure devops):

#header1

|TableHeader1|TableHeader2|
|--|--|
|Text1|Details 1|
|ListCell|<ul><li>FirstBullet</li><li>SecondBullet</li></ul>|

Html скриншот вывода

Я пытаюсь с pando c для во-первых, но список выпадает из таблицы. Любая идея преобразовать в html / docx?

С уважением, Андрас

1 Ответ

0 голосов
/ 20 февраля 2020

Вы, вероятно, не можете. Поскольку документация Pando c предупреждает :

Поскольку промежуточное представление документа pandoc менее выразительно, чем многие форматы, между которыми он конвертируется, не следует ожидать совершенных конвертаций между каждый формат и любой другой. Pando c пытается сохранить структурные элементы документа, но не форматирует детали, такие как размер поля. И некоторые элементы документа, такие как сложные таблицы, могут не вписываться в простую модель документа pandoc. Хотя преобразования из Markdown от pandoc во все форматы стремятся быть совершенными, можно ожидать, что преобразования из форматов, более выразительных, чем Markdown от pandoc, будут с потерями.

HTML, безусловно, более выразительный, чем Markdown. Поэтому Pando c не гарантирует сохранения источника HTML. Тем не менее, простой список - это то, что может быть хорошо выражено в Markdown, поэтому можно подумать, что это не потеряно.

Однако таблица усложняет ситуацию. Pando c на самом деле поддерживает четыре разных формата таблиц. Однако только два из этих форматов ( многострочные и grid таблицы) поддерживают ячейки, которые содержат элементы уровня блока.

Однако вы, похоже, используете pipe_tables , которые не поддерживают элементы уровня блока в ячейках таблицы. Как указано в документации:

Ячейки таблиц каналов не могут содержать блочные элементы, такие как абзацы и списки, и не могут занимать несколько строк.

Хотя все вышеперечисленные расширения ( Табличные форматы) поддерживаются форматом Pando c markdown, только pipe_tables поддерживается форматом gfm (см. Варианты уценки ). Поэтому вы можете рассмотреть возможность использования формата markdown. Однако это поможет, только если ваша таблица действительно использует правильный синтаксис для таблиц сетки или многострочных таблиц.

К сожалению, таблицы сетки и многострочные таблицы поддерживаются только в Pando c. Я не знаю ни о каких других реализациях Markdown, которые их поддерживают. Следовательно, вы не можете анализировать таблицу с элементами уровня блока как в Pando c, так и в других реализациях.

Так почему же другая реализация, которую вы используете, прекрасно работает со необработанным списком HTML в ячейке таблицы? Предположительно, синтаксический анализатор не очень умен и слепо пропускает необработанные HTML без изменений. Любые более сложные парсеры, которые пытаются понять необработанный HTML, не будут работать для вас. И, конечно же, если вы хотите преобразовать документ в другой (не HTML) формат, то парсер должен понимать raw HTML.

Может быть, вы могли бы найти какой-нибудь случайный парсер, который делает что Вы хотите, но это маловероятно. Лучшим решением может быть использование вывода HTML вашего другого инструмента Markdown и использование Pando c (или другого инструмента) для преобразования его в docx / pdf.

...