Compare commits

...

2 Commits

Author SHA1 Message Date
1b4c4e4470 fix sponsor links 2025-11-22 00:16:23 +03:00
74a333879d upd for hugo v0.152.2 2025-11-22 00:13:50 +03:00
8 changed files with 327 additions and 259 deletions

View File

@@ -1,4 +1,4 @@
--- ---
title: Ссылки для спонсоров title: Ссылки для спонсоров
date: 2024-10-07T19:53:29+03:00 date: 2024-10-07T19:53:29+03:00
tags: [sponsor,donation,бусти,донаты,поддержка,спонсор] tags: [sponsor,donation,бусти,донаты,поддержка,спонсор]
@@ -11,5 +11,7 @@ tags: [sponsor,donation,бусти,донаты,поддержка,спонсо
Поддержать меня можно тут: Поддержать меня можно тут:
- [Подписка на Бусти](https://boosty.to/0xffff) - [Подписка на Бусти](https://boosty.to/0xffff)
- [Канал на VK Play Live](https://live.vkplay.ru/0xffff) - [DonationAlerts (DALINK)](https://dalink.to/b4tman1)
- [Канал на VK Video Live](https://live.vkvideo.ru/0xffff)
- [Канал на Дзене](https://dzen.ru/0xffff)

View File

@@ -8,51 +8,55 @@
{{ if .Params.tags }} {{ if .Params.tags }}
<div class="blog-tags"> <div class="blog-tags">
{{ range .Params.tags }} {{ range .Params.tags }}
<a href="{{ $.Site.LanguagePrefix | absURL }}/tags/{{ . | urlize }}/">{{ . }}</a>&nbsp; <!-- Fix for "https://github.com/halogenica/beautifulhugo/issues/349".
Inspired by "https://github.com/dovidio/personalwebsite/commit/34762e94c29fd2c26c16c45f8ae2de21bdf9b46d".
<a href="{{ $.Site.LanguagePrefix | absURL }}/tags/{{ . | urlize }}/">{{ . }}</a>&nbsp;
-->
<a href="{{"tags" | absLangURL}}/{{ . | urlize }}/">{{ . }}</a>&nbsp;
{{ end }} {{ end }}
</div> </div>
{{ end }} {{ end }}
{{ if $.Param "socialShare" }} {{ if $.Param "socialShare" }}
<hr/> <hr/>
<section id="social-share"> <section id="social-share">
<div class="list-inline footer-links"> <div class="list-inline footer-links">
{{ partial "share-links" . }} {{ partial "share-links" . }}
</div> </div>
</section> </section>
{{ end }} {{ end }}
{{ if .Site.Params.showRelatedPosts }} {{ if .Site.Params.showRelatedPosts }}
{{ range first 1 (where (where .Site.Pages ".Params.tags" "intersect" .Params.tags) "Permalink" "!=" .Permalink) }} {{ range first 1 (where (where .Site.Pages ".Params.tags" "intersect" .Params.tags) "Permalink" "!=" .Permalink) }}
{{ $.Scratch.Set "has_related" true }} {{ $.Scratch.Set "has_related" true }}
{{ end }} {{ end }}
{{ if $.Scratch.Get "has_related" }} {{ if $.Scratch.Get "has_related" }}
<h4 class="see-also">{{ i18n "seeAlso" }}</h4> <h4 class="see-also">{{ i18n "seeAlso" }}</h4>
<ul> <ul>
{{ $num_to_show := .Site.Params.related_content_limit | default 5 }} {{ $num_to_show := .Site.Params.related_content_limit | default 5 }}
{{ range first $num_to_show (where (where .Site.Pages ".Params.tags" "intersect" .Params.tags) "Permalink" "!=" .Permalink) }} {{ range first $num_to_show (where (where .Site.Pages ".Params.tags" "intersect" .Params.tags) "Permalink" "!=" .Permalink) }}
<li><a href="{{ .RelPermalink }}">{{ .Title }}</a></li> <li><a href="{{ .RelPermalink }}">{{ .Title }}</a></li>
{{ end }} {{ end }}
</ul> </ul>
{{ end }} {{ end }}
{{ end }} {{ end }}
</article> </article>
{{ if ne .Type "page" }} {{ if ne .Type "page" }}
<ul class="pager blog-pager"> <ul class="pager blog-pager">
{{ if .PrevInSection }} {{ if .PrevInSection }}
<li class="previous"> <li class="previous">
<a href="{{ .PrevInSection.Permalink }}" data-toggle="tooltip" data-placement="top" title="{{ .PrevInSection.Title }}">&larr; {{ i18n "previousPost" }}</a> <a href="{{ .PrevInSection.Permalink }}" data-toggle="tooltip" data-placement="top" title="{{ .PrevInSection.Title }}">&larr; {{ i18n "previousPost" }}</a>
</li> </li>
{{ end }} {{ end }}
{{ if .NextInSection }} {{ if .NextInSection }}
<li class="next"> <li class="next">
<a href="{{ .NextInSection.Permalink }}" data-toggle="tooltip" data-placement="top" title="{{ .NextInSection.Title }}">{{ i18n "nextPost" }} &rarr;</a> <a href="{{ .NextInSection.Permalink }}" data-toggle="tooltip" data-placement="top" title="{{ .NextInSection.Title }}">{{ i18n "nextPost" }} &rarr;</a>
</li> </li>
{{ end }} {{ end }}
</ul> </ul>
{{ end }} {{ end }}
@@ -60,21 +64,6 @@
{{ partial "remark42.html" . }} {{ partial "remark42.html" . }}
{{ if .Site.Config.Services.Disqus.Shortname }} {{ if .Site.Config.Services.Disqus.Shortname }}
{{ if .Site.Params.delayDisqus }} {{ if .Site.Params.delayDisqus }}
<div class="disqus-comments">
<button id="show-comments" class="btn btn-default" type="button">{{ i18n "show" }} <span class="disqus-comment-count" data-disqus-url="{{ trim .Permalink "/" }}">{{ i18n "comments" }}</span></button>
<div id="disqus_thread"></div>
<script type="text/javascript">
var disqus_config = function () {
this.page.url = '{{ trim .Permalink "/" }}';
};
</script>
</div>
{{ else }}
<div class="disqus-comments">
{{ template "_internal/disqus.html" . }}
</div>
{{ end }} {{ end }}
{{ end }} {{ end }}
{{ if .Site.Params.staticman }} {{ if .Site.Params.staticman }}

View File

View File

@@ -3,16 +3,16 @@
{{ end }} {{ end }}
<footer> <footer>
<div class="container"> <div class="container">
<div class="row"> <div class="row">
<div class="col-lg-8 col-lg-offset-2 col-md-10 col-md-offset-1"> <div class="col-lg-8 col-lg-offset-2 col-md-10 col-md-offset-1">
<ul class="list-inline text-center footer-links"> <ul class="list-inline text-center footer-links">
{{ range .Site.Data.beautifulhugo.social.social_icons }} {{ range .Site.Data.beautifulhugo.social.social_icons }}
{{- if isset $.Site.Params.author .id }} {{- if isset $.Site.Params.author .id }}
<li> <li>
<a {{ if eq .id "mastodon" }}rel="me"{{ end }} href="{{ printf .url (index $.Site.Params.author .id) }}" title="{{ .title }}"> <a {{ if eq .id "mastodon" }}rel="me"{{ end }} href="{{ printf .url (index $.Site.Params.author .id) }}" title="{{ .title }}">
<span class="fa-stack fa-lg"> <span class="fa-stack fa-lg">
<i class="fas fa-circle fa-stack-2x"></i> <i class="fas fa-circle fa-stack-2x"></i>
<i class="{{ .icon }} fa-stack-1x fa-inverse"></i> <i class="{{ .icon }} fa-stack-1x fa-inverse"></i>
</span> </span>
</a> </a>
</li> </li>
@@ -29,129 +29,107 @@
</li> </li>
{{ end }} {{ end }}
</ul> </ul>
<p class="credits copyright text-muted"> <p class="credits copyright text-muted">
{{ if .Site.Params.author.name }} {{ if .Site.Params.author.name }}
{{ if .Site.Params.author.website }} {{ if .Site.Params.author.website }}
<a href="{{ .Site.Params.author.website }}">{{ .Site.Params.author.name }}</a> <a href="{{ .Site.Params.author.website }}">{{ .Site.Params.author.name }}</a>
{{ else }} {{ else }}
{{ .Site.Params.author.name }} {{ .Site.Params.author.name }}
{{ end }} {{ end }}
{{ end }} {{ end }}
&nbsp;&bull;&nbsp;&copy; &nbsp;&bull;&nbsp;&copy;
{{ if .Site.Params.since }} {{ if .Site.Params.since }}
{{ .Site.Params.since }} - {{ .Site.Lastmod.Format "2006" }} {{ .Site.Params.since }} - {{ .Site.Lastmod.Format "2006" }}
{{ else }} {{ else }}
{{ .Site.Lastmod.Format "2006" }} {{ .Site.Lastmod.Format "2006" }}
{{ end }} {{ end }}
{{ if .Site.Title }} {{ if .Site.Title }}
&nbsp;&bull;&nbsp; &nbsp;&bull;&nbsp;
<a href="{{ "" | absLangURL }}">{{ .Site.Title }}</a> <a href="{{ "" | absLangURL }}">{{ .Site.Title }}</a>
{{ end }} {{ end }}
</p> </p>
<!-- Please don't remove this, keep my open source work credited :) --> <!-- Please don't remove this, keep my open source work credited :) -->
<p class="credits theme-by text-muted"> <p class="credits theme-by text-muted">
{{ i18n "poweredBy" . | safeHTML }} {{ i18n "poweredBy" . | safeHTML }}
{{ if $.GitInfo }}&nbsp;&bull;&nbsp;[<a href="{{ .Site.Params.commit }}{{ .GitInfo.Hash }}">{{ substr .GitInfo.Hash 0 8 }}</a>]{{ end }} {{ if $.GitInfo }}&nbsp;&bull;&nbsp;[<a href="{{ .Site.Params.commit }}{{ .GitInfo.Hash }}">{{ substr .GitInfo.Hash 0 8 }}</a>]{{ end }}
</p> </p>
</div> </div>
</div> </div>
</div> </div>
</footer> </footer>
{{- if .Site.Params.selfHosted -}} {{- if .Site.Params.selfHosted -}}
<script src="{{ "js/katex.min.js" | absURL }}"></script> <script defer src="{{ "js/katex.min.js" | absURL }}"></script>
<script src="{{ "js/auto-render.min.js" | absURL }}"></script> <script defer src="{{ "js/auto-render.min.js" | absURL }}" onload="renderMathInElement(document.body);"></script>
<script src="{{ "js/jquery.min.js" | absURL }}"></script> <script src="{{ "js/jquery-3.7.0.slim.min.js" | absURL }}"></script>
<script src="{{ "js/bootstrap.min.js" | absURL }}"></script> <script src="{{ "js/bootstrap.min.js" | absURL }}"></script>
{{- else -}} {{- else -}}
<script src="https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.10.0/katex.min.js" integrity="sha384-K3vbOmF2BtaVai+Qk37uypf7VrgBubhQreNQe9aGsz9lB63dIFiQVlJbr92dw2Lx" crossorigin="anonymous"></script> <script defer src="https://cdn.jsdelivr.net/npm/katex@0.16.22/dist/katex.min.js" integrity="sha384-cMkvdD8LoxVzGF/RPUKAcvmm49FQ0oxwDF3BGKtDXcEc+T1b2N+teh/OJfpU0jr6" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.10.0/contrib/auto-render.min.js" integrity="sha384-kmZOZB5ObwgQnS/DuDg6TScgOiWWBiVt0plIRkZCmE6rDZGrEOQeHM5PcHi+nyqe" crossorigin="anonymous"></script> <script defer src="https://cdn.jsdelivr.net/npm/katex@0.16.22/dist/contrib/auto-render.min.js" integrity="sha384-hCXGrW6PitJEwbkoStFjeJxv+fSOOQKOPbJxSfM6G5sWZjAyWhXiTIIAmQqnlLlh" crossorigin="anonymous" onload="renderMathInElement(document.body);"></script>
<script src="https://code.jquery.com/jquery-1.12.4.min.js" integrity="sha256-ZosEbRLbNQzLpnKIkEdrPv7lOy9C27hHQ+Xp8a4MxAQ=" crossorigin="anonymous"></script> <script src="https://code.jquery.com/jquery-3.7.0.slim.min.js" integrity="sha384-w5y/xIeYixWvfM+A1cEbmHPURnvyqmVg5eVENruEdDjcyRLUSNej7512JQGspFUr" crossorigin="anonymous"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js" integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa" crossorigin="anonymous"></script> <script src="https://cdn.jsdelivr.net/npm/bootstrap@3.4.1/dist/js/bootstrap.min.js" integrity="sha384-aJ21OjlMXNL5UyIl/XNwTMqvzeRMZH2w8c5cRVpzpU8Y5bApTppSuUkhZXN0VxHd" crossorigin="anonymous"></script>
{{- end }} {{- end }}
<script src="{{ "js/main.js" | absURL }}"></script> <script src="{{ "js/main.js" | absURL }}"></script>
{{- if .Site.Params.staticman }} {{- if .Site.Params.staticman }}
<script src="{{ "js/staticman.js" | absURL }}"></script> <script src="{{ "js/staticman.js" | absURL }}"></script>
{{- end }} {{- end }}
{{- if .Site.Params.useHLJS }} {{- if .Site.Params.useHLJS }}
<script src="{{ "js/highlight.min.js" | absURL }}"></script> <script src="{{ "js/highlight.min.js" | absURL }}"></script>
<script> hljs.initHighlightingOnLoad(); </script> <script> hljs.initHighlightingOnLoad(); </script>
<script> $(document).ready(function() {$("pre.chroma").css("padding","0");}); </script> <script> $(document).ready(function() {$("pre.chroma").css("padding","0");}); </script>
{{- end -}} {{- end -}}
<script> renderMathInElement(document.body); </script>
{{- if .Site.Params.selfHosted -}}
{{- if .Site.Params.selfHosted -}} <script src="{{ "js/photoswipe.min.js" | absURL }}"></script>
<script src="{{ "js/photoswipe.min.js" | absURL }}"></script> <script src="{{ "js/photoswipe-ui-default.min.js" | absURL }}"></script>
<script src="{{ "js/photoswipe-ui-default.min.js" | absURL }}"></script> {{- else -}}
{{- else -}} <script src="https://cdnjs.cloudflare.com/ajax/libs/photoswipe/4.1.2/photoswipe.min.js" integrity="sha384-QELNnmcmU8IR9ZAykt67vGr9/rZJdHbiWi64V88fCPaOohUlHCqUD/unNN0BXSqy" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/photoswipe/4.1.2/photoswipe.min.js" integrity="sha384-QELNnmcmU8IR9ZAykt67vGr9/rZJdHbiWi64V88fCPaOohUlHCqUD/unNN0BXSqy" crossorigin="anonymous"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/photoswipe/4.1.2/photoswipe-ui-default.min.js" integrity="sha384-m67o7SkQ1ALzKZIFh4CiTA8tmadaujiTa9Vu+nqPSwDOqHrDmxLezTdFln8077+q" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/photoswipe/4.1.2/photoswipe-ui-default.min.js" integrity="sha384-m67o7SkQ1ALzKZIFh4CiTA8tmadaujiTa9Vu+nqPSwDOqHrDmxLezTdFln8077+q" crossorigin="anonymous"></script> {{- end -}}
{{- end -}} <script src="{{ "js/load-photoswipe.js" | absURL }}"></script>
<script src="{{ "js/load-photoswipe.js" | absURL }}"></script>
<!-- Google Custom Search Engine -->
<!-- Google Custom Search Engine --> {{ if .Site.Params.gcse }}
{{ if .Site.Params.gcse }} <script>
<script> (function() {
(function() { var cx = '{{ .Site.Params.gcse }}';
var cx = '{{ .Site.Params.gcse }}'; var gcse = document.createElement('script');
var gcse = document.createElement('script'); gcse.type = 'text/javascript';
gcse.type = 'text/javascript'; gcse.async = true;
gcse.async = true; gcse.src = 'https://cse.google.com/cse.js?cx=' + cx;
gcse.src = 'https://cse.google.com/cse.js?cx=' + cx; var s = document.getElementsByTagName('script')[0];
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(gcse, s);
s.parentNode.insertBefore(gcse, s); })();
})(); </script>
</script> {{ end }}
{{ end }}
{{ if .Site.Params.piwik }}
{{ if .Site.Params.piwik }} <!-- Piwik -->
<!-- Piwik --> <script type="text/javascript">
<script type="text/javascript"> var _paq = _paq || [];
var _paq = _paq || []; _paq.push(["trackPageView"]);
_paq.push(["trackPageView"]); _paq.push(["enableLinkTracking"]);
_paq.push(["enableLinkTracking"]);
(function() {
(function() { var u=(("https:" == document.location.protocol) ? "https" : "http") + "://{{ .Site.Params.piwik.server }}/";
var u=(("https:" == document.location.protocol) ? "https" : "http") + "://{{ .Site.Params.piwik.server }}/"; _paq.push(["setTrackerUrl", u+"piwik.php"]);
_paq.push(["setTrackerUrl", u+"piwik.php"]); _paq.push(["setSiteId", "{{ .Site.Params.piwik.id }}"]);
_paq.push(["setSiteId", "{{ .Site.Params.piwik.id }}"]); var d=document, g=d.createElement("script"), s=d.getElementsByTagName("script")[0]; g.type="text/javascript";
var d=document, g=d.createElement("script"), s=d.getElementsByTagName("script")[0]; g.type="text/javascript"; g.defer=true; g.async=true; g.src=u+"piwik.js"; s.parentNode.insertBefore(g,s);
g.defer=true; g.async=true; g.src=u+"piwik.js"; s.parentNode.insertBefore(g,s); })();
})(); </script>
</script> <noscript>
<noscript> <!-- Piwik Image Tracker -->
<!-- Piwik Image Tracker --> <img src="http://{{ .Site.Params.piwik.server }}/piwik.php?idsite={{ .Site.Params.piwik.id }}&amp;rec=1" style="border:0" alt="" />
<img src="http://{{ .Site.Params.piwik.server }}/piwik.php?idsite={{ .Site.Params.piwik.id }}&amp;rec=1" style="border:0" alt="" /> <!-- End Piwik -->
<!-- End Piwik --> </noscript>
</noscript> <!-- End Piwik Code -->
<!-- End Piwik Code -->
{{ end }} {{ end }}
{{ if and .Site.Params.delayDisqus .Site.Config.Services.Disqus.Shortname }} {{ if and .Site.Params.delayDisqus .Site.Config.Services.Disqus.Shortname }}
<!-- Delayed Disqus -->
<script type="text/javascript">
$(function(){
$('#show-comments').on('click', function(){
var disqus_shortname = '{{ .Site.Config.Services.Disqus.Shortname }}';
(function() {
var disqus = document.createElement('script');
disqus.type = 'text/javascript';
disqus.async = true;
disqus.src = '//' + disqus_shortname + '.disqus.com/embed.js';
(document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(disqus);
})();
$(this).hide();
});
});
</script>
<script id="dsq-count-scr" src="//{{ .Site.Config.Services.Disqus.Shortname }}.disqus.com/count.js" async></script>
<!-- End Delayed Disqus -->
{{ end }} {{ end }}
{{- partial "footer_custom.html" . }} {{- partial "footer_custom.html" . }}

View File

@@ -1,87 +1,90 @@
{{- partial "load-photoswipe-theme.html" . }} {{- partial "load-photoswipe-theme.html" . }}
{{ if .IsHome }} {{ if .IsHome }}
{{ if .Site.Params.homeTitle }}{{ $.Scratch.Set "title" .Site.Params.homeTitle }}{{ else }}{{ $.Scratch.Set "title" .Site.Title }}{{ end }} {{ if .Site.Params.homeTitle }}{{ $.Scratch.Set "title" .Site.Params.homeTitle }}{{ else }}{{ $.Scratch.Set "title" .Site.Title }}{{ end }}
{{ if .Site.Params.subtitle }}{{ $.Scratch.Set "subtitle" .Site.Params.subtitle }}{{ end }} {{ if .Site.Params.subtitle }}{{ $.Scratch.Set "subtitle" .Site.Params.subtitle }}{{ end }}
{{ if .Site.Params.bigimg }}{{ $.Scratch.Set "bigimg" .Site.Params.bigimg }}{{ end }} {{ if .Site.Params.bigimg }}{{ $.Scratch.Set "bigimg" .Site.Params.bigimg }}{{ end }}
{{ else }} {{ else }}
{{ if (i18n .Title) }}{{ $.Scratch.Set "title" (i18n .Title) }}{{ else }}{{ $.Scratch.Set "title" .Title }}{{ end }} {{ $.Scratch.Set "title" .Title }}
{{ if .Params.subtitle }}{{ $.Scratch.Set "subtitle" .Params.subtitle }}{{ end }} {{ if .Params.subtitle }}{{ $.Scratch.Set "subtitle" .Params.subtitle }}{{ end }}
{{ if .Params.bigimg }}{{ $.Scratch.Set "bigimg" .Params.bigimg }}{{ end }} {{ if .Params.bigimg }}{{ $.Scratch.Set "bigimg" .Params.bigimg }}{{ end }}
{{ end }} {{ end }}
{{ $bigimg := $.Scratch.Get "bigimg" }} {{ $bigimg := $.Scratch.Get "bigimg" }}
{{ $title := $.Scratch.Get "title" }} {{ $title := $.Scratch.Get "title" }}
{{ $subtitle := $.Scratch.Get "subtitle" }} {{ $subtitle := $.Scratch.Get "subtitle" }}
{{ if or $bigimg $title }} {{ if or $bigimg $title }}
{{ if $bigimg }} {{ if $bigimg }}
<div id="header-big-imgs" data-num-img={{len $bigimg}} <div id="header-big-imgs" data-num-img={{len $bigimg}}
{{range $i, $img := $bigimg}} {{range $i, $img := $bigimg}}
{{ if (fileExists $img.src)}} {{ if (fileExists $img.src)}}
data-img-src-{{add $i 1}}="{{$img.src | absURL }}" data-img-src-{{add $i 1}}="{{$img.src | absURL }}"
{{else}} {{else}}
data-img-src-{{add $i 1}}="{{$img.src}}" data-img-src-{{add $i 1}}="{{$img.src}}"
{{end}} {{end}}
{{ if $img.desc}}data-img-desc-{{add $i 1}}="{{$img.desc}}"{{end}} {{ if $img.desc}}data-img-desc-{{add $i 1}}="{{$img.desc}}"{{end}}
{{end}}></div> {{end}}></div>
{{ end }} {{ end }}
<header class="header-section {{ if $bigimg }}has-img{{ end }}"> <header class="header-section {{ if $bigimg }}has-img{{ end }}">
{{ if $bigimg }} {{ if $bigimg }}
<div class="intro-header big-img"> {{ $firstimg := index $bigimg 0 }}
{{ $subtitle := $.Scratch.Get "subtitle" }} <div class="intro-header big-img" style="background-image: url('{{$firstimg.src}}');">
<div class="container"> {{ $subtitle := $.Scratch.Get "subtitle" }}
<div class="row"> <div class="container">
<div class="col-lg-8 col-lg-offset-2 col-md-10 col-md-offset-1"> <div class="row">
<div class="{{ .Type }}-heading"> <div class="col-lg-8 col-lg-offset-2 col-md-10 col-md-offset-1">
<h1>{{ with $.Scratch.Get "title" }}{{.}}{{ else }}<br/>{{ end }}</h1> <div class="{{ .Type }}-heading">
{{ if $subtitle }} <h1>{{ with $.Scratch.Get "title" }}{{.}}{{ else }}<br/>{{ end }}</h1>
{{ if eq .Type "page" }} {{ if $subtitle }}
<hr class="small"> {{ if eq .Type "page" }}
<span class="{{ .Type }}-subheading">{{ $subtitle }}</span> <hr class="small">
{{ else }} <span class="{{ .Type }}-subheading">{{ $subtitle }}</span>
<h2 class="{{ .Type }}-subheading">{{ $subtitle }}</h2> {{ else }}
{{ end }} <h2 class="{{ .Type }}-subheading">{{ $subtitle }}</h2>
{{ end }} {{ end }}
{{ if eq .Type "post" }} {{ end }}
{{ partial "post_meta.html" . }} {{ if eq .Type "post" }}
{{ end }} {{ partial "post_meta.html" . }}
</div> {{ end }}
</div> </div>
</div> </div>
</div> </div>
<span class="img-desc" style="display: inline;"></span> </div>
</div> <span class="img-desc" style="display: {{ cond (isset $firstimg "desc") "inline" "none"}};">{{$firstimg.desc}}</span>
{{end}} </div>
<div class="intro-header no-img"> {{end}}
<div class="container"> {{ if $title }}
<div class="row"> <div class="intro-header no-img">
<div class="col-lg-8 col-lg-offset-2 col-md-10 col-md-offset-1"> <div class="container">
<div class="{{ .Type }}-heading"> <div class="row">
{{ if eq .Type "list" }} <div class="col-lg-8 col-lg-offset-2 col-md-10 col-md-offset-1">
<h1>{{ if .Data.Singular }}#{{ end }}{{ .Title }}</h1> <div class="{{ .Type }}-heading">
{{ else }} {{ if eq .Type "list" }}
<h1>{{ with $title }}{{.}}{{ else }}<br/>{{ end }}</h1> <h1>{{ if .Data.Singular }}#{{ end }}{{ .Title }}</h1>
{{ end }} {{ else }}
{{ if ne .Type "post" }} <h1>{{ with $title }}{{.}}{{ else }}<br/>{{ end }}</h1>
<hr class="small"> {{ end }}
{{ end }} {{ if ne .Type "post" }}
{{ if $subtitle }} <hr class="small">
{{ if eq .Type "page" }} {{ end }}
<span class="{{ .Type }}-subheading">{{ $subtitle }}</span> {{ if $subtitle }}
{{ else }} {{ if eq .Type "page" }}
<h2 class="{{ .Type }}-subheading">{{ $subtitle }}</h2> <span class="{{ .Type }}-subheading">{{ $subtitle }}</span>
{{ end }} {{ else }}
{{ end }} <h2 class="{{ .Type }}-subheading">{{ $subtitle }}</h2>
{{ if eq .Type "post" }} {{ end }}
{{ partial "post_meta.html" . }} {{ end }}
{{ end }} {{ if eq .Type "post" }}
</div> {{ partial "post_meta.html" . }}
</div> {{ end }}
</div> </div>
</div> </div>
</div> </div>
</header> </div>
{{ else }} </div>
<div class="intro-header"></div> {{ end }}
{{ end }} </header>
{{ else }}
<div class="intro-header"></div>
{{ end }}

96
layouts/partials/nav.html Normal file
View File

@@ -0,0 +1,96 @@
<nav class="navbar navbar-default navbar-fixed-top navbar-custom">
<div class="container-fluid">
<div class="navbar-header">
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#main-navbar">
<span class="sr-only">{{ i18n "toggleNavigation" }}</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a class="navbar-brand" href="{{ "" | absLangURL }}">{{ .Site.Title }}</a>
</div>
<div class="collapse navbar-collapse" id="main-navbar">
<ul class="nav navbar-nav navbar-right">
{{ range .Site.Menus.main.ByWeight }}
{{ if .HasChildren }}
<li class="navlinks-container">
<a class="navlinks-parent">{{ .Name }}</a>
<div class="navlinks-children">
{{ range .Children }}
<a href="{{ .URL | relLangURL }}">{{ .Name }}</a>
{{ end }}
</div>
</li>
{{ else }}
<li>
<a title="{{ .Name }}" href="{{ .URL | relLangURL }}">{{ .Name }}</a>
</li>
{{ end }}
{{ end }}
{{ if hugo.IsMultilingual }}
{{ if ge (len .Site.Languages) 3 }}
<li class="navlinks-container">
<a class="navlinks-parent">{{ i18n "languageSwitcherLabel" }}</a>
<div class="navlinks-children">
{{ range .Site.Languages }}
{{ if not (eq .Lang $.Site.Language.Lang) }}
<a href="/{{ .Lang }}" lang="{{ .Lang }}">{{ default .Lang .LanguageName }}</a>
{{ end }}
{{ end }}
</div>
</li>
{{ else }}
<li>
{{ range .Site.Languages }}
{{ if not (eq .Lang $.Site.Language.Lang) }}
<a href="/{{ .Lang }}" lang="{{ .Lang }}">{{ default .Lang .LanguageName }}</a>
{{ end }}
{{ end }}
</li>
{{ end }}
{{ end }}
{{ if isset .Site.Params "gcse" }}
<li>
<a href="#modalSearch" data-toggle="modal" data-target="#modalSearch" style="outline: none;">
<span class="hidden-sm hidden-md hidden-lg">{{ i18n "gcseLabelShort" }}</span> <span id="searchGlyph" class="glyphicon glyphicon-search"></span>
</a>
</li>
{{ end }}
</ul>
</div>
{{ if isset .Site.Params "logo" }}
<div class="avatar-container">
<div class="avatar-img-border">
<a title="{{ .Site.Title }}" href="{{ "" | absLangURL }}">
<img class="avatar-img" src="{{ .Site.Params.logo | absURL }}" alt="{{ .Site.Title }}" />
</a>
</div>
</div>
{{ end }}
</div>
</nav>
<!-- Search Modal -->
{{ if isset .Site.Params "gcse" }}
<div id="modalSearch" class="modal fade" role="dialog">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal">&times;</button>
<h4 class="modal-title">{{ i18n "gcseLabelLong" . }}</h4>
</div>
<div class="modal-body">
<gcse:search></gcse:search>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">{{ i18n "gcseClose" }}</button>
</div>
</div>
</div>
</div>
{{ end }}