Используйте определенный класс в зависимости от маркера с Markdown/Pandoc

Я использую Markdown для написания учебных документов и конвертирую их в HTML с помощью Pandoc.

Я бы хотел, чтобы маркер класса использовал классический символ * и имел логотип + (круто!) и - (не круто) с использованием маркеров + и -.

В настоящее время у меня нет различий в выходном HTML. Как я могу добавить класс в зависимости от пули?


person Nicolas Zozol    schedule 09.10.2012    source источник
comment
На данный момент лучшее решение, которое у меня есть, — это написать отличный скрипт, который преобразует некоторые элементы уценки в чистый HTML с его классами, а затем я запускаю pandoc. Я хотел бы способ, который не вводит другую технологию.   -  person Nicolas Zozol    schedule 10.10.2012
comment
Я думал о javascript/jQuery, который может быть в порядке, но он выполняется после pandoc так, как я его использую. Таким образом, различия в пулях исчезли, когда включен javascript.   -  person Nicolas Zozol    schedule 11.10.2012


Ответы (2)


Чтобы получить атрибуты HTML class из Pandoc, вы должны явно установить эти атрибуты во входных файлах. Это поддерживается только для блоков кода и не работает автоматически.

Чтобы получить классы для списков, вам нужно модифицировать Pandoc для их вывода.

В src/Text/Pandoc/Writers/HTML.hs атрибуты для блоков кода генерируются в attrsToHtml, звонили с blockToHtml или inlineToHtml. Вам нужно будет расширить unordList, чтобы сгенерировать атрибут и вызвать для него attrsToHtml.

(Отсутствие тега haskell означает, что это может не будет решением, которое вы ищете...)

person CL.    schedule 17.10.2012
comment
Я думаю, что мне придется заплатить кому-то за это :) Спасибо за глубокое изучение кода. - person Nicolas Zozol; 18.10.2012

Если вы имеете в виду маркеры списка, вы можете обернуть список в div с классом и использовать соответствующий селектор CSS:

<div class="styledlist">
+   foo
+   bar
+   baz
</div>

даст вам HTML следующим образом:

<div class="styledlist">
<ul>
<li>foo</li>
<li>bar</li>
<li>baz</li>
</ul>
</div>

и вы можете использовать селектор CSS следующим образом:

span.styledlist ul { ... }

Не самый красивый Markdown или HTML, но он работает.

person bpj    schedule 13.01.2016