Хьюго динамически решает "небезопасно" <!-- необработанный HTML опущен -->

Я использую goldmark как формат .

И я знаю, что могу отредактировать файлы config.toml, чтобы остановить поведение raw HTML omitted с

[markup.goldmark.renderer]
    unsafe = true

Мой вопрос: могу ли я использовать настройку выше во вступительной части (не config.toml)?

Например, если у меня много файлов уценки, и я хочу, чтобы один из них применял unsafe = true, а другие — нет, возможно ли это?

Если нет, можете ли вы объяснить, зачем нужно специальное разграничение под статичным сайтом и можно ли из-за этого подвергнуться нападению? (На самом деле это то, что меня действительно волнует; в противном случае я очень хочу напрямую настроить весь домен на включение небезопасного режима, чтобы уценка была более полной).


1
1 025
2

Ответы:

Чтобы ответить на вопрос: "Может ли небезопасный режим применяться частично, т.е. во фронтальной части в Хьюго?"

Нет, невозможно (и не должно быть) определить unsafeHTML во вступительной части. Позволить создателям контента переопределить модель безопасности было бы обречено на провал.


Решено

Если вы не уверены в риске установки небезопасного значения равным true, вы можете установить его как значение по умолчанию (false), а затем использовать шорткод , чтобы помочь вам. например,

Я создаю файл raw_html.html

макеты/шорткоды/raw_html.html

{{.Inner}}

my_demo.md

## bootstrap color
{{< raw_html >}}
<p class = "p-3 mb-2 bg-primary text-white">.bg-primary</p>
<p class = "p-3 mb-2 bg-secondary text-white">.bg-secondary</p>
{{< /raw_html >}}

## inside link
brabrabra {{<raw_html>}}<a name = "my_color">nice color</a>{{</raw_html>}} foo foo

[go to nice-color](#my_color)

## table
| {{<raw_html>}}<div style = "width:64px">name</div>{{</raw_html>}} | Description |
| ---- | ---- |
| xxxxx| OOOOO|

выход

<head> <!-- the head is extra code for getting the bootstrap style -->
<link href = "https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css" rel = "stylesheet" integrity = "sha384-giJF6kkoqNQ00vy+HMDP7azOuL0xtbfIcaT9wjKHr8RbDVddVHyTfAAsrekwKmP1" crossorigin = "anonymous">
      <script src = "https://cdn.jsdelivr.net/npm/[email protected]/dist/js/bootstrap.bundle.min.js" integrity = "sha384-ygbV9kiqUc6oa4msXn9868pTtWMgiQaeYH7/t7LECLbyPA2x65Kgf80OJFdroafW" crossorigin = "anonymous"></script>
</head>
<h2 id = "bootstrap-color">bootstrap color</h2>
<p class = "p-3 mb-2 bg-primary text-white">.bg-primary</p>
<p class = "p-3 mb-2 bg-secondary text-white">.bg-secondary</p>
<h2 id = "inside-link">inside link</h2>
<p>brabrabra <a name = "my_color">nice color</a> foo foo</p>
<a href = "#my_color">go to nice-color</a>
<h2 id = "table">table</h2>
<table><thead><tr><th><div style = "width:64px">name</div></th>
<th>Description</th></tr></thead>
<tbody><tr><td>xxxxx</td><td>OOOOO</td></tr></tbody>
</table>