commit - 1f96f0c8bf727e636246cfd8122e84b4b302e018
commit + 7ede00c0aec0123121b227d49634e9faa58e08c7
blob - ef81a50ef59156ae9ff33c71eca798692076ce57
blob + 31cf3f50f05c461adf400c4bc7a275beceb12464
--- README.md
+++ README.md
_merge = 'deep'
```
+## Параметры
+Все используемые параметры должны содержаться в настройках сайта в .Params.radium
+
+publisher
+: ссылка на профиль публикатора для элементов JSON-LD.
+external_rel
+: rel по умолчанию для абсолютных ссылок.
+
+## render hooks
+### render-link
+Вставляет ссылку с разрешённым назначением ссылки.
+Для абсолютных ссылок указывает rel из настроек сайта или значение по умолчанию `noopener noreferrer external`.
+
## Шаблоны
### baseof
Базовый шаблон, включающий индексирование Pagefind только для main тега.
## Partials
+### element
+Создаёт HTML элемент, с именем тэга = .tag, атрибутами = .attributes, содержимым .inner.
+
+Если тэг не установлен, то проставляется значение по умолчанию `tag`.
+
### image
Отображает изображение, передаваемое в .image.
.image должен быть ресурсом, полученным через .Resources.Get* или resources.Get*.
```
#### Статья
-Для указания publisher в статье укажите publisher в Params страницы, либо в настройках сайта в site.Params.radium.publisher
+Для указания publisher в статье укажите publisher в Params страницы, либо в настройках сайта.
## Shortcodes
### details
Корректный details, позволяющий рендерить html.
Аналогично [стандартному](https://gohugo.io/shortcodes/details/#article) shortcode, за исключением способа вызова — необходимо использовать вызов {{% details %}} для рендера внутреннего текста в качестве Markdown.
+
+### a
+Создаёт ссылку с атрибутами href, class, id, rel.
+
+Полезно для установки rel.
+
+Вызывает partial/element.
+Если необходимы другие атрибуты, то переопределите этот shortcode.
blob - /dev/null
blob + 51f2deee8d2dede3520ed4b14f73c618e8924087 (mode 644)
--- /dev/null
+++ layouts/_partials/element.html
+{{- $tag := default "div" .tag -}}
+{{- $attrs := "" -}}
+{{- with .attributes -}}
+ {{- range $k, $v := . -}}
+ {{- $attrs = printf `%s %s=%q` $attrs $k $v -}}
+ {{- end -}}
+{{- end -}}
+
+{{- printf "<%s%s>%s</%s>" $tag $attrs (default "" .inner) $tag | safeHTML -}}
blob - /dev/null
blob + 0b2e9363e52a65a20fd412838e2e108cefacb55a (mode 644)
--- /dev/null
+++ layouts/_markup/render-link.html
+{{- $p := .Page -}}
+{{- with .PageInner -}}{{- $p = . -}}{{- end -}}
+
+{{- $href := .Destination -}}
+
+{{- with $p.GetPage $href -}}
+ {{- $href = .RelPermalink -}}
+{{- else -}}
+ {{- with $p.Resources.Get $href -}}
+ {{- $href = .RelPermalink -}}
+ {{- else -}}
+ {{- with resources.Get $href -}}
+ {{- $href = .RelPermalink -}}
+ {{- end -}}
+ {{- end -}}
+{{- end -}}
+
+{{- $rel := "" -}}
+{{- if (urls.Parse $href).IsAbs }}
+ {{- if isset (default (dict) site.Params.radium) "external_rel" -}}
+ {{- $rel = site.Params.radium.external_rel -}}
+ {{- else -}}
+ {{- $rel = "noopener noreferrer external" -}}
+ {{- end -}}
+{{- end -}}
+
+<a href="{{ $href | safeURL }}"
+ {{- with .Title }} title="{{ . }}"{{ end -}}
+ {{- with $rel }} rel="{{ . }}"{{ end -}}
+>
+ {{ .Text }}
+</a>
blob - /dev/null
blob + 5676ce2443a0c996549fa63f508a44195ca86e2d (mode 644)
--- /dev/null
+++ layouts/_shortcodes/a.html
+{{- $allowed := slice
+ "href"
+ "title"
+ "rel"
+ "target"
+ "class"
+ "id"
+ "download"
+ "referrerpolicy"
+ "hreflang"
+ "type"
+ "role"
+ "tabindex"
+ "aria-label"
+ "aria-current"
+ "aria-describedby"
+-}}
+{{- $attributes := dict -}}
+{{- range $allowed -}}
+ {{- $value := $.Get . -}}
+ {{- if $value -}}
+ {{- $attributes = merge $attributes (dict . $value) -}}
+ {{- end -}}
+{{- end -}}
+
+{{- partial "element.html" (dict "tag" "a" "inner" .Inner "attributes" $attributes) -}}