From 2ecb959c5b9c2b0750212af0349fd6d4a5c25258 Mon Sep 17 00:00:00 2001 From: Alexander Neonxp Kiryukhin Date: Tue, 10 Feb 2026 17:11:24 +0300 Subject: =?UTF-8?q?=D0=9F=D0=B5=D1=80=D0=B2=D1=8B=D0=B9=20=D0=BA=D0=BE?= =?UTF-8?q?=D0=BC=D0=BC=D0=B8=D1=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- layouts/_default/section.atom.xml | 23 ++++++++++++++++++ layouts/_default/section.feed.json | 31 +++++++++++++++++++++++ layouts/_default/taxonomy.html | 20 +++++++++++++++ layouts/_default/terms.html | 17 +++++++++++++ layouts/_partials/footer.html | 1 + layouts/_partials/head.html | 12 +++++++++ layouts/_partials/head/css.html | 27 ++++++++++++++++++++ layouts/_partials/head/js.html | 16 ++++++++++++ layouts/_partials/header.html | 2 ++ layouts/_partials/menu.html | 50 ++++++++++++++++++++++++++++++++++++++ layouts/_partials/terms.html | 29 ++++++++++++++++++++++ layouts/baseof.html | 17 +++++++++++++ layouts/home.html | 16 ++++++++++++ layouts/page.html | 50 ++++++++++++++++++++++++++++++++++++++ layouts/pages/section.html | 23 ++++++++++++++++++ layouts/projects/section.html | 23 ++++++++++++++++++ layouts/section.html | 26 ++++++++++++++++++++ layouts/shortcodes/img.html | 21 ++++++++++++++++ layouts/taxonomy.html | 11 +++++++++ layouts/term.html | 7 ++++++ 20 files changed, 422 insertions(+) create mode 100644 layouts/_default/section.atom.xml create mode 100644 layouts/_default/section.feed.json create mode 100644 layouts/_default/taxonomy.html create mode 100644 layouts/_default/terms.html create mode 100644 layouts/_partials/footer.html create mode 100644 layouts/_partials/head.html create mode 100644 layouts/_partials/head/css.html create mode 100644 layouts/_partials/head/js.html create mode 100644 layouts/_partials/header.html create mode 100644 layouts/_partials/menu.html create mode 100644 layouts/_partials/terms.html create mode 100644 layouts/baseof.html create mode 100644 layouts/home.html create mode 100644 layouts/page.html create mode 100644 layouts/pages/section.html create mode 100644 layouts/projects/section.html create mode 100644 layouts/section.html create mode 100644 layouts/shortcodes/img.html create mode 100644 layouts/taxonomy.html create mode 100644 layouts/term.html (limited to 'layouts') diff --git a/layouts/_default/section.atom.xml b/layouts/_default/section.atom.xml new file mode 100644 index 0000000..9ddb7d2 --- /dev/null +++ b/layouts/_default/section.atom.xml @@ -0,0 +1,23 @@ +{{ print ""| safeHTML }} +{{ print ""| safeHTML }} + + {{ with .Title }}{{.}} on {{ end }}{{ .Site.Title }} + + {{ .Date.Format "2006-01-02T15:04:05-0700" | safeHTML }} + + Alexander NeonXP Kiryukhin + i@neonxp.ru + https://neonxp.ru/ + + {{ .Permalink }} + {{ range first 15 .Data.Pages }} + + {{ .Title }} + + {{ .Permalink }} + {{ .Date.Format "2006-01-02T15:04:05-0700" | safeHTML }} + {{ .Lastmod.Format "2006-01-02T15:04:05-0700" | safeHTML }} + {{ .Content | html }} + + {{ end }} + diff --git a/layouts/_default/section.feed.json b/layouts/_default/section.feed.json new file mode 100644 index 0000000..d7d70d0 --- /dev/null +++ b/layouts/_default/section.feed.json @@ -0,0 +1,31 @@ +{ + "version": "https://jsonfeed.org/version/1", + "title": {{ .Site.Title | jsonify }}, + "home_page_url": {{ .Permalink | jsonify }}, + {{ with .OutputFormats.Get "json" -}} + "feed_url": {{ .Permalink | jsonify }}, + {{- end }} + {{- if .Site.Params.author -}} + "author": { + "name": {{ .Site.Params.author | jsonify }} + }, + {{ end -}} + {{- if .Data.Pages -}} + "items": [ + {{ range $index, $element := first 10 .Data.Pages -}} + {{ if $index }},{{end}} { + "title": {{ $element.Title | jsonify }}, + "id": {{ $element.Permalink | jsonify }}, + "url": {{ $element.Permalink | jsonify }}, + "summary": {{ $element.Summary | jsonify }}, + {{- if eq $element.Type "link" -}} + "external_url": {{ $element.Params.link | jsonify }}, + {{- end -}} + "content_html": {{ $element.Content | jsonify }}, + "content_text": {{ $element.Plain | jsonify }}, + "date_published": {{ $element.Date.Format "2006-02-01T15:04:05-0700" | jsonify }} + } + {{- end }} + ] + {{ end -}} +} \ No newline at end of file diff --git a/layouts/_default/taxonomy.html b/layouts/_default/taxonomy.html new file mode 100644 index 0000000..ac5fc7d --- /dev/null +++ b/layouts/_default/taxonomy.html @@ -0,0 +1,20 @@ +{{ define "main" }} +
+

{{ .Title }}

+ {{ .Content }} +
+{{ range .Data.Pages }} +
+

{{ .LinkTitle }}

+ {{if .Date }} + {{ $dateMachine := .Date | time.Format "2006-01-02 15:04:05-07:00" }} + {{ $dateHuman := .Date | time.Format ":date_long" }} + + {{end}} +
+ {{ .Summary }} +
+ Читать дальше... +
+{{ end }} +{{ end }} \ No newline at end of file diff --git a/layouts/_default/terms.html b/layouts/_default/terms.html new file mode 100644 index 0000000..49d993f --- /dev/null +++ b/layouts/_default/terms.html @@ -0,0 +1,17 @@ +{{ define "main" }} +
+

{{ i18n .Title }}

+ {{ .Content }} +
+
+ +
+{{ end }} \ No newline at end of file diff --git a/layouts/_partials/footer.html b/layouts/_partials/footer.html new file mode 100644 index 0000000..2c30eaa --- /dev/null +++ b/layouts/_partials/footer.html @@ -0,0 +1 @@ +

© 2007 — {{ now.Year }} Александр NeonXP Кирюхин. i@neonxp.ru

\ No newline at end of file diff --git a/layouts/_partials/head.html b/layouts/_partials/head.html new file mode 100644 index 0000000..7826e2a --- /dev/null +++ b/layouts/_partials/head.html @@ -0,0 +1,12 @@ + + + +{{ partial "opengraph.html" . }} + + {{ if .IsHome }} + {{ site.Title }} + {{ else }} + {{ printf "%s | %s" .Title site.Title }} + {{ end }} + +{{ partialCached "head/css.html" . }} {{ partialCached "head/js.html" . }} \ No newline at end of file diff --git a/layouts/_partials/head/css.html b/layouts/_partials/head/css.html new file mode 100644 index 0000000..9324758 --- /dev/null +++ b/layouts/_partials/head/css.html @@ -0,0 +1,27 @@ +{{- with resources.Get "css/reset.css" }} +{{- if hugo.IsDevelopment }} + +{{- else }} +{{- with . | minify | fingerprint }} + +{{- end }} +{{- end }} +{{- end }} +{{- with resources.Get "css/paper.css" }} +{{- if hugo.IsDevelopment }} + +{{- else }} +{{- with . | minify | fingerprint }} + +{{- end }} +{{- end }} +{{- end }} +{{- with resources.Get "css/main.css" }} +{{- if hugo.IsDevelopment }} + +{{- else }} +{{- with . | minify | fingerprint }} + +{{- end }} +{{- end }} +{{- end }} \ No newline at end of file diff --git a/layouts/_partials/head/js.html b/layouts/_partials/head/js.html new file mode 100644 index 0000000..1b7c18e --- /dev/null +++ b/layouts/_partials/head/js.html @@ -0,0 +1,16 @@ + \ No newline at end of file diff --git a/layouts/_partials/header.html b/layouts/_partials/header.html new file mode 100644 index 0000000..7980a00 --- /dev/null +++ b/layouts/_partials/header.html @@ -0,0 +1,2 @@ +

{{ site.Title }}

+{{ partial "menu.html" (dict "menuID" "main" "page" .) }} diff --git a/layouts/_partials/menu.html b/layouts/_partials/menu.html new file mode 100644 index 0000000..ebad53f --- /dev/null +++ b/layouts/_partials/menu.html @@ -0,0 +1,50 @@ +{{- /* +Renders a menu for the given menu ID. + +@context {page} page The current page. +@context {string} menuID The menu ID. + +@example: {{ partial "menu.html" (dict "menuID" "main" "page" .) }} +*/}} + +{{- $page := .page }} +{{- $menuID := .menuID }} + +{{- with index site.Menus $menuID }} + +{{- end }} + +{{- define "_partials/inline/menu/walk.html" }} +{{- $page := .page }} +{{- range .menuEntries }} +{{- $attrs := dict "href" .URL }} +{{- if $page.IsMenuCurrent .Menu . }} +{{- $attrs = merge $attrs (dict "class" "active" "aria-current" "page") }} +{{- else if $page.HasMenuCurrent .Menu .}} +{{- $attrs = merge $attrs (dict "class" "ancestor" "aria-current" "true") }} +{{- end }} +{{- $name := .Name }} +{{- with .Identifier }} +{{- with T . }} +{{- $name = . }} +{{- end }} +{{- end }} +
  • + + {{if .Pre}} + {{.Pre}} + {{end}} + {{ $name }} + + {{- with .Children }} + + {{- end }} +
  • +{{- end }} +{{- end }} \ No newline at end of file diff --git a/layouts/_partials/terms.html b/layouts/_partials/terms.html new file mode 100644 index 0000000..b666922 --- /dev/null +++ b/layouts/_partials/terms.html @@ -0,0 +1,29 @@ +{{- $page := .page }} + +{{- with $page.GetTerms "categories" }} +{{- if . }} +{{- $label := (index . 0).Parent.LinkTitle }} +
    +

    {{ i18n $label }}:

    + +
    +{{- end }} +{{- end }} + +{{- with $page.GetTerms "tags" }} +{{- if . }} +{{- $label := (index . 0).Parent.LinkTitle }} +
    +

    {{ i18n $label }}:

    + +
    +{{- end }} +{{- end }} \ No newline at end of file diff --git a/layouts/baseof.html b/layouts/baseof.html new file mode 100644 index 0000000..39dcbec --- /dev/null +++ b/layouts/baseof.html @@ -0,0 +1,17 @@ + + + + {{ partial "head.html" . }} + + +
    + {{ partial "header.html" . }} +
    +
    + {{ block "main" . }}{{ end }} +
    + + + diff --git a/layouts/home.html b/layouts/home.html new file mode 100644 index 0000000..c643012 --- /dev/null +++ b/layouts/home.html @@ -0,0 +1,16 @@ +{{ define "main" }} +
    +

    {{ .Title }}

    + {{ .Content }} +
    +
    + {{ range .Pages }} + + {{ end }} +
    +{{ end }} \ No newline at end of file diff --git a/layouts/page.html b/layouts/page.html new file mode 100644 index 0000000..c28ab39 --- /dev/null +++ b/layouts/page.html @@ -0,0 +1,50 @@ +{{ define "main" }} +
    +

    {{ .Title }}

    + {{if .Date }} + {{ $dateMachine := .Date | time.Format "2006-01-02T15:04:05-07:00" }} + {{ $dateHuman := .Date | time.Format ":date_long" }} + + {{end}} +
    + {{ .Content }} +
    +
    +
    + {{ partial "terms.html" (dict "taxonomy" "tags" "page" .) }} +
    +{{if .Param "comments"}} +

    Комментарии

    +{{ range $key, $comment := where .Site.Data.comments "subject" "eq" .Page.Permalink }} +
    + {{$comment.from_name}}: +

    + {{if $comment.date }} + {{ $dateMachine := $comment.date | time.Format "2006-01-02T15:04:05-07:00" }} + {{ $dateHuman := $comment.date | time.Format ":date_long" }} + + {{end}} +

    +

    {{$comment.body | safeHTML}}

    + {{if $comment.body_signature}} +
    + Подпись +
    {{$comment.body_signature| safeHTML}}
    +
    + {{end}} +
    +{{ else }} +
    Комментариев пока нет.
    +{{ end }} + +
    + {{ $comment := (print "mailto:blog@neonxp.ru?subject=" .Page.Permalink | safeHTML) }} + Для отправки комментария достаточно отправить e-mail со своим комментарием + на адрес + blog@neonxp.ru, в теме нужно указать ссылку на + пост.
    + Или просто нажать кнопку ниже. Всё очень просто :)
    + Написать комментарий +
    +{{end}} +{{ end }} \ No newline at end of file diff --git a/layouts/pages/section.html b/layouts/pages/section.html new file mode 100644 index 0000000..cc60509 --- /dev/null +++ b/layouts/pages/section.html @@ -0,0 +1,23 @@ +{{ define "main" }} +
    +

    {{ .Title }}

    + {{ .Content }} +
    +
    + + {{ range .Pages }} +
    +

    {{ .LinkTitle }}

    + {{if .Date }} + {{ $dateMachine := .Date | time.Format "2006-01-02 15:04:05-07:00" }} + {{ $dateHuman := .Date | time.Format ":date_long" }} + + {{end}} +
    + {{ .Summary }} +
    + Читать дальше... +
    + {{ end }} +
    +{{ end }} \ No newline at end of file diff --git a/layouts/projects/section.html b/layouts/projects/section.html new file mode 100644 index 0000000..cc60509 --- /dev/null +++ b/layouts/projects/section.html @@ -0,0 +1,23 @@ +{{ define "main" }} +
    +

    {{ .Title }}

    + {{ .Content }} +
    +
    + + {{ range .Pages }} +
    +

    {{ .LinkTitle }}

    + {{if .Date }} + {{ $dateMachine := .Date | time.Format "2006-01-02 15:04:05-07:00" }} + {{ $dateHuman := .Date | time.Format ":date_long" }} + + {{end}} +
    + {{ .Summary }} +
    + Читать дальше... +
    + {{ end }} +
    +{{ end }} \ No newline at end of file diff --git a/layouts/section.html b/layouts/section.html new file mode 100644 index 0000000..5d3a4ba --- /dev/null +++ b/layouts/section.html @@ -0,0 +1,26 @@ +{{ define "main" }} +
    +

    {{ .Title }}

    + {{ .Content }} +
    +
    + + {{ range .Paginator.Pages }} +
    +

    {{ .LinkTitle }}

    + {{if .Date }} + {{ $dateMachine := .Date | time.Format "2006-01-02 15:04:05-07:00" }} + {{ $dateHuman := .Date | time.Format ":date_long" }} + + {{end}} +
    + {{ .Summary }} +
    + Читать дальше... +
    + {{ end }} +
    + {{ template "_internal/pagination.html" . }} +
    +
    +{{ end }} \ No newline at end of file diff --git a/layouts/shortcodes/img.html b/layouts/shortcodes/img.html new file mode 100644 index 0000000..994e30f --- /dev/null +++ b/layouts/shortcodes/img.html @@ -0,0 +1,21 @@ +{{- $alt := .Get "alt" -}} +{{- $res := .Page.Resources.Get (.Get "src") -}} + +{{- $ws := slice 480 800 -}} +{{- $srcset := slice -}} +{{- range $ws -}} +{{- if (le . $res.Width) -}} +{{- $w := printf "%dx" . -}} +{{- $url := ($res.Resize $w).RelPermalink | safeURL -}} +{{- $fmt := printf "%s %dw" $url . -}} +{{- $srcset = $srcset | append $fmt -}} +{{- end -}} +{{- end -}} + +{{- $set := delimit $srcset "," -}} + +
    + {{ $alt }} +
    {{ $alt }}
    +
    \ No newline at end of file diff --git a/layouts/taxonomy.html b/layouts/taxonomy.html new file mode 100644 index 0000000..ff8e552 --- /dev/null +++ b/layouts/taxonomy.html @@ -0,0 +1,11 @@ +{{ define "main" }} +
    +

    {{ .Title }}

    + {{ .Content }} +
    +
    + {{ range .Pages }} +

    {{ .LinkTitle }}

    + {{ end }} +
    +{{ end }} \ No newline at end of file diff --git a/layouts/term.html b/layouts/term.html new file mode 100644 index 0000000..c2e7875 --- /dev/null +++ b/layouts/term.html @@ -0,0 +1,7 @@ +{{ define "main" }} +

    {{ .Title }}

    + {{ .Content }} + {{ range .Pages }} +

    {{ .LinkTitle }}

    + {{ end }} +{{ end }} -- cgit v1.2.3