Может ли Pandoc помечать текст внутри блока кода? - PullRequest
0 голосов
/ 16 января 2019

Я использую <mark>...</mark> для выделения текста в документе Markdown, таком как Руководство по стилю Google Python . У меня проблемы с выделением кода. Например, я хочу выделить, как комментировать с типами:

```python
<mark>def func(a: int) -> List[int]:</mark>
```

но эта команда pandoc:

pandoc -s -t html5 -o "Google Python style guide.html" "Google Python style guide.md"

показывает <mark> и </mark> как код и не отображает выделение HTML.

Одним из решений является использование тега pre, например:

<code><pre><mark>def func(a: int) -> List[int]:</mark>

, который отображает подсветку HTML.

Может ли Pandoc визуализировать основные моменты HTML без необходимости преобразования всех `` `блоков python в pre теги?

Ответы [ 2 ]

0 голосов
/ 16 января 2019

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

Блок кода должен иметь идентификатор, чтобы упростить его нацеливание

``` {#types-demo .python}
def func(a: int) -> List[int]:
   return [a]
```

Чтобы выделить первую строку, включите это в ваш документ:

```{=html}
<style>
#types-demo-1 {
    background-color: #ff0;
} 
</style>
```

Подсветка синтаксиса должна продолжать работать.

0 голосов
/ 16 января 2019

Нет, не по умолчанию.Откуда pandoc должен знать, что <mark> не является частью вашего кода?

Однако вы можете написать фильтр pandoc , который соответствует каждому блоку кода и преобразует его в необработанный HTMLблок.Что-то вроде (не проверено):

function CodeBlock(elem)
  html = "" .. elem.text .. "
"return pandoc.RawBlock (" html ", html) end

Обратите внимание, что вам нужно убедиться, что у вас нет других неоткрытыхHTML в ваших блоках кода.

Обновление

Если вам также нужна подсветка синтаксиса, возможно, вы захотите попробовать фильтр пандок-акцента-кода .

...