busuanzi support, donation button support, manifest added

This commit is contained in:
zzossig 2019-12-05 19:04:42 +09:00
parent bd4097a5a1
commit d182e8f15a
46 changed files with 324 additions and 37 deletions

View File

@ -120,13 +120,15 @@ pygmentsUseClasses = true
[markup.goldmark.renderer]
unsafe = true
[outputs]
home = ["HTML", "RSS", "JSON", "WebAppManifest"]
[outputs][outputs]
home = ["HTML", "RSS", "JSON", "WEBMANIFEST"]
[mediaTypes."application/manifest+json"]
suffixes = ["webmanifest"]
[outputFormats.WebAppManifest]
[outputFormats.webmanifest]
name = "webmanifest"
baseName = "webmanifest"
mediaType = "application/manifest+json"
rel = "manifest"
@ -249,6 +251,13 @@ showSocialLinks = true # email, facebook, twitter ...
enableLangChange = true # show button at bottom left of footer.
themeOptions = ["dark", "light", "hacker", "solarized", "custom"] # select options for site color theme
# service
baiduAnalytics = "" # china, alternative of google analytics
enableBusuanzi = false # if set true, total page view, total unique visitors show up in the sidebar.
busuanziSiteUV = true # unique visitors (total number of visitors)
busuanziSitePV = true # site total page view count
busuanziPagePV = true # post view count
# comment
enableComment = true
disqus_shortname = ""
@ -315,6 +324,14 @@ commento = false
stack-exchange = ""
telegram = ""
steam = ""
[donationOptions]
enable = false # if set, donation button will show up in the single page.
alipay = "" # Alipay QR Code image (example path: images/donation/alipay-qrcode.png) and put your file at root/static/images/donation/
wechat = "" # Wechat pay QR Code image (example path: same as above)
bitcoin = "" # Bitcoin account?
paypal = "" # Paypal URL
patreon = "" # Patreon URL
```
## Layout

View File

@ -198,4 +198,11 @@ $(document).ready(function() {
table.parentElement.replaceChild(wrapper, table);
wrapper.appendChild(table);
}
// utils
$.fn.digits = function() {
return this.each(function() {
$(this).text($(this).text().replace(/(\d)(?=(\d\d\d)+(?!\d))/g, "$1,"));
})
}
});

View File

@ -39,12 +39,15 @@
&__info {
font-size: 14px;
margin: 0.1rem 0;
@include flexbox();
@include align-items(center);
@include justify-content(center);
&--icon {
margin-right: 0.25rem;
@include flexbox();
@include align-items(center);
@include themify($themes) {
color: themed('social-icon-color');
}

View File

@ -0,0 +1,23 @@
.busuanzi {
@include flexbox();
&__item {
padding: 0.125rem;
@include flexbox();
@include flex-direction(column);
@include align-items(center);
@include flex-grow(1);
&--label {
font-size: 14px;
padding: .125rem 0;
font-family: $title-font;
}
&--number {
font-size: 20px;
font-weight: bold;
}
}
}

View File

@ -0,0 +1,72 @@
.donation {
@include flexbox();
@include align-items(center);
@include justify-content(center);
@include respond-to(sm) {
@include flex-direction(column);
}
a {
text-decoration: none !important;
}
&__message {
padding: 0.5rem;
font-size: 18px;
font-weight: bold;
font-family: $title-font;
@include flexbox();
@include justify-content(center);
}
&__item {
font-size: 16px;
padding: 0.125rem;
padding-right: 0.25rem;
cursor: pointer;
border-radius: 0.25rem;
margin: 0.25rem;
text-transform: capitalize;
@include flexbox();
@include align-items(center);
@include themify($themes) {
text-decoration: none;
color: themed('social-icon-color');
border: 1px solid themed('social-icon-color');
&:hover {
color: themed('social-icon-hover-color');
border: 1px solid themed('social-icon-hover-color');
@include transition(color, 0.2s, ease);
}
}
}
&__dropup {
position: relative;
height: 100%;
&--content {
display: none;
position: absolute;
bottom: 100%;
background-color: #fff;
z-index: 1;
min-width: 50px;
max-width: 350px;
height: auto;
margin-bottom: 0.25rem;
border-radius: 0.25rem;
@include themify($themes) {
background-color: themed('dropdown-content-background-color');
}
}
}
}
.donation__dropup:hover .donation__dropup--content {
display: block;
}

View File

@ -71,7 +71,7 @@
color: themed('social-icon-color');
&:hover {
color: themed('social-icon-hover-color');
transition: color 0.2s ease;
@include transition(color, 0.2s, ease);
}
}
}

View File

@ -21,7 +21,7 @@
}
}
.custom-header {
.site-header {
@include flexbox();
@include justify-content(center);
@include flex-direction(column);

View File

@ -53,6 +53,8 @@ $content-font: {{ .Site.Data.font.content_font }};
@import 'components/toc';
@import 'components/tooltip';
@import 'components/whoami';
@import 'components/busuanzi';
@import 'components/donation';
@import 'pages/404';
@import 'pages/about';

View File

@ -54,8 +54,8 @@ $custom: (
content-pre-header-background-color: hsl($custom_theme_primary_color, 100%, 92%),
content-pre-border-background-color: hsl($custom_theme_primary_color, 100%, 86%),
burger-menu-color: hsl($custom_theme_primary_color, 86%, 20%),
social-icon-color: hsl($custom_theme_primary_color, 25%, 50%),
social-icon-hover-color: hsl($custom_theme_primary_color, 25%, 60%),
social-icon-color: hsl($custom_theme_primary_color, 25%, 35%),
social-icon-hover-color: hsl($custom_theme_primary_color, 25%, 50%),
pagination-link-color: hsl($custom_theme_primary_color, 65%, 32%),
pagination-background-color: hsl($custom_theme_primary_color, 60%, 90%),
pagination-disabled-color: hsl($custom_theme_primary_color, 25%, 75%),

View File

@ -54,8 +54,8 @@ $light: (
content-pre-header-background-color: darken(#F5F2F0, 3%),
content-pre-header-color: #344952,
burger-menu-color: #777,
social-icon-color: #9e9e9e,
social-icon-hover-color: darken(#9e9e9e, 20%),
social-icon-color: #888,
social-icon-hover-color: darken(#888, 20%),
pagination-link-color: #424242,
pagination-background-color: #eeeeee,
pagination-disabled-color: #bdbdbd,

View File

@ -22,7 +22,16 @@ pygmentsCodefencesGuessSyntax = true
googleAnalytics = ""
[outputs]
home = ["HTML", "RSS", "JSON"]
home = ["HTML", "RSS", "JSON", "WEBMANIFEST"]
[mediaTypes."application/manifest+json"]
suffixes = ["webmanifest"]
[outputFormats.webmanifest]
name = "webmanifest"
baseName = "webmanifest"
mediaType = "application/manifest+json"
rel = "manifest"
[taxonomies]
category = "categories"

View File

@ -45,6 +45,13 @@ enableLangChange = true
enableThemeChange = true
themeOptions = ["dark", "light", "hacker", "solarized", "custom"]
# service
baiduAnalytics = ""
enableBusuanzi = false
busuanziSiteUV = true
busuanziSitePV = true
busuanziPagePV = true
# comment
enableComment = true
disqus_shortname = ""
@ -107,4 +114,12 @@ commento = false
pinterest = ""
stack-exchange = ""
telegram = ""
steam = ""
steam = ""
[donationOptions]
enable = false
alipay = ""
wechat = ""
bitcoin = ""
paypal = ""
patreon = ""

Binary file not shown.

After

Width:  |  Height:  |  Size: 724 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 721 B

View File

@ -27,3 +27,15 @@ other = "WRITTEN BY"
[toc-label]
other = "What's on this Page"
[counter-site-pv]
other = "Total views"
[counter-site-uv]
other = "Total visitors"
[counter-page-pv]
other = "views"
[donate-message]
other = "Support the author with"

View File

@ -27,3 +27,15 @@ other = "글쓴이"
[toc-label]
other = "목차"
[counter-site-pv]
other = "총 조회수"
[counter-site-uv]
other = "총 방문자 수"
[counter-page-pv]
other = "조회수"
[donate-message]
other = "후원하기"

View File

@ -9,7 +9,7 @@
{{ partialCached "head/styles" . }}
{{ partial "head/meta" . }}
{{ partial "head/meta_json_ld" . }}
{{ partial "head/service" . }}
{{ partial "head/services" . }}
{{ partial "head/custom" . }}
</head>

View File

@ -6,12 +6,17 @@
<div class="single">
<h2 class="single__title">{{ .Title }}</h2>
<div class="single__meta">
🕓 {{ .Date.Format (i18n "single-dateformat") }} · ☕{{ .ReadingTime }} min read
🕓 {{ .Date.Format (i18n "single-dateformat") }} · ☕{{ .ReadingTime }} min read
{{ if (and .Site.Params.enableBusuanzi .Site.Params.busuanziPagePV) }}
· 👀
<span id="busuanzi_value_page_pv"></span> {{ i18n "counter-page-pv" }}
{{ end }}
{{ partial "body/tags" . }}
</div>
<article class="single__contents">
{{ .Content }}
</article>
{{ partial "body/donation" . }}
{{ partial "body/whoami" . }}
{{ partial "body/related" . }}
{{ partial "pagination/pagination-single" . }}

View File

@ -5,14 +5,14 @@
"theme_color": "#FF6188",
"background_color": "#2D2A2E",
"icons": [{
"src": "{{ .Site.BaseURL }}{{ "logo-192.png" }}",
"sizes": "192x192",
"type": "image/png"
"src": "{{ .Site.BaseURL }}{{ "logo-192.png" }}",
"sizes": "192x192",
"type": "image/png"
}, {
"src": "{{ .Site.BaseURL }}{{ "logo-512.png" }}",
"sizes": "512x512",
"type": "image/png"
}],
"src": "{{ .Site.BaseURL }}{{ "logo-512.png" }}",
"sizes": "512x512",
"type": "image/png"
}],
"display": "standalone",
"start_url": "{{ "/" | relLangURL }}?utm_source=web_app_manifest"
}

View File

@ -0,0 +1,38 @@
{{ if $.Param "donationOptions.enable" }}
<div class="donation__message">
{{ i18n "donate-message" }}
</div>
<div class="donation">
{{ range $name, $path := $.Param "donationOptions" }}
{{ if (and $path (ne $name "enable")) }}
{{ if in $name "patreon" }}
<a href="{{ $path | safeURL }}" title="{{ $name }}" aria-label="{{ $name }}" class="donation__item">
{{ partial (print "svgs/donation/" $name ".svg") (dict "width" 19 "height" 19) }}
{{ $name }}
</a>
{{ else if in $name "paypal" }}
<a href="{{ $path | safeURL }}" title="{{ $name }}" aria-label="{{ $name }}" class="donation__item">
{{ partial (print "svgs/donation/" $name ".svg") (dict "width" 22 "height" 22) }}
{{ $name }}
</a>
{{ else if in $name "bitcoin" }}
<div class="donation__item donation__dropup">
{{ partial (print "svgs/donation/" $name ".svg") (dict "width" 22 "height" 22) }}
{{ $name }}
<div class="donation__dropup--content">
{{ $path }}
</div>
</div>
{{ else }}
<div class="donation__item donation__dropup">
{{ partial (print "svgs/donation/" $name ".svg") (dict "width" 22 "height" 22) }}
{{ $name }}
<div class="donation__dropup--content">
<img data-src="{{ $path | relURL }}" alt="{{ $name }} QR Code" src="data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' width='24pt' height='24pt' viewBox='0 0 24 24' version='1.1'%3E%3Cg id='surface1035795'%3E%3Cpath style=' stroke:none;fill-rule:nonzero;fill:rgb(80%25,80%25,80%25);fill-opacity:1;' d='M 4 4 C 2.90625 4 2 4.90625 2 6 L 2 18 C 2 19.09375 2.90625 20 4 20 L 20 20 C 21.09375 20 22 19.09375 22 18 L 22 6 C 22 4.90625 21.09375 4 20 4 Z M 4 6 L 20 6 L 20 18 L 4 18 Z M 4 6 '/%3E%3C/g%3E%3C/svg%3E%0A" class="lazyload"/>
</div>
</div>
{{ end }}
{{ end }}
{{ end }}
</div>
{{ end }}

View File

@ -6,7 +6,7 @@
{{ if $.Param "showPoweredBy" }}
<div class="footer__poweredby">
{{ if $.Site.Copyright }}
{{ if $.Site.Copyright }}
<p class="caption">
{{ with $.Site.Copyright }}{{ replace . "{year}" now.Year | markdownify}}{{ end }}
</p>

View File

@ -23,5 +23,4 @@
<link rel="icon" type="image/png" sizes="32x32" href="{{ "favicon-32x32.png" | relURL }}">
<link rel="icon" type="image/png" sizes="16x16" href="{{ "favicon-16x16.png" | relURL }}">
<link rel="mask-icon" href="{{ "safari-pinned-tab.svg" | relURL }}" color="{{ $.Param "safaripinnedcolor" | default "#000000" }}">
<link rel="manifest" href="{{ "index.webmanifest" | relLangURL }}">
{{ end -}}

View File

@ -1,2 +0,0 @@
{{ template "_internal/google_analytics.html" . }}
{{ template "_internal/google_analytics_async.html" . }}

View File

@ -0,0 +1,21 @@
{{ template "_internal/google_analytics.html" . }}
{{ template "_internal/google_analytics_async.html" . }}
{{ if .Site.Params.baiduAnalytics }}
<script>
{{ $baiduAnalyticsId := .Site.Params.baiduAnalytics }}
var baiduAnalyticsId = JSON.parse({{ $baiduAnalyticsId | jsonify }});
var _hmt = _hmt || [];
(function () {
var hm = document.createElement("script");
hm.src = "https://hm.baidu.com/hm.js?" + baiduAnalyticsId;
var s = document.getElementsByTagName("script")[0];
s.parentNode.insertBefore(hm, s);
})();
</script>
{{ end }}
{{ if .Site.Params.enableBusuanzi }}
<script async src="https://busuanzi.ibruce.info/busuanzi/2.3/busuanzi.pure.mini.js"></script>
{{ end }}

View File

@ -0,0 +1 @@
<!-- override me! -->

View File

@ -1,11 +1,11 @@
{{ if $.Params.header }}
{{ range $.Params.header }}
{{ if eq .type "img" }}
<div class="custom-header custom-header__align-{{ .align }}" style="background-image: url('{{ .image | relURL }}'); width: 100%; height: {{ .height }}px; padding: {{ .paddingY }}px {{ .paddingX }}px;">
<div class="site-header site-header__align-{{ .align }}" style="background-image: url('{{ .image | relURL }}'); width: 100%; height: {{ .height }}px; padding: {{ .paddingY }}px {{ .paddingX }}px;">
{{ $header := . }}
{{ if .title }}
{{ range .title }}
<div class="custom-header__title" style="font-size: {{ $header.titleFontSize }}px;">
<div class="site-header__title" style="font-size: {{ $header.titleFontSize }}px;">
{{ . }}
</div>
{{ end }}
@ -15,7 +15,7 @@
{{ end }}
{{ if .subtitle }}
{{ range .subtitle }}
<div class="custom-header__subtitle" style="font-size: {{ $header.subtitleFontSize }}px;">
<div class="site-header__subtitle" style="font-size: {{ $header.subtitleFontSize }}px;">
{{ . }}
</div>
{{ end }}

View File

@ -5,11 +5,11 @@
{{ if eq .type "slide" }}
{{ $height := .height }}
{{ range .slide }}
<div class="swiper-slide custom-header custom-header__align-{{ .align }}" style="background-image: url('{{.image | relURL }}'); height: {{ $height }}px;">
<div class="swiper-slide site-header site-header__align-{{ .align }}" style="background-image: url('{{.image | relURL }}'); height: {{ $height }}px;">
{{ $header := . }}
{{ if .title }}
{{ range .title }}
<div class="custom-header__title" style="font-size: {{ $header.titleFontSize }}px; padding: {{ $header.paddingY }}px {{ $header.paddingX }}px;">
<div class="site-header__title" style="font-size: {{ $header.titleFontSize }}px; padding: {{ $header.paddingY }}px {{ $header.paddingX }}px;">
{{ . }}
</div>
{{ end }}
@ -19,7 +19,7 @@
{{ end }}
{{ if .subtitle }}
{{ range .subtitle }}
<div class="custom-header__subtitle" style="font-size: {{ $header.subtitleFontSize }}px; padding: {{ $header.paddingY }}px {{ $header.paddingX }}px;">
<div class="site-header__subtitle" style="font-size: {{ $header.subtitleFontSize }}px; padding: {{ $header.paddingY }}px {{ $header.paddingX }}px;">
{{ . }}
</div>
{{ end }}

View File

@ -1,11 +1,11 @@
{{ if $.Params.header }}
{{ range $.Params.header }}
{{ if eq .type "text" }}
<div class="custom-header custom-header__align-{{ .align }}" style="width: 100%; height: {{ .height }}px; padding: {{ .paddingY }}px {{ .paddingX }}px;">
<div class="site-header site-header__align-{{ .align }}" style="width: 100%; height: {{ .height }}px; padding: {{ .paddingY }}px {{ .paddingX }}px;">
{{ $header := . }}
{{ if .title }}
{{ range .title }}
<div class="custom-header__title" style="font-size: {{ $header.titleFontSize }}px;">
<div class="site-header__title" style="font-size: {{ $header.titleFontSize }}px;">
{{ . }}
</div>
{{ end }}
@ -15,7 +15,7 @@
{{ end }}
{{ if .subtitle }}
{{ range .subtitle }}
<div class="custom-header__subtitle" style="font-size: {{ $header.subtitleFontSize }}px;">
<div class="site-header__subtitle" style="font-size: {{ $header.subtitleFontSize }}px;">
{{ . }}
</div>
{{ end }}

View File

@ -7,6 +7,7 @@
{{ else if and .Site.Params.homeHeaderType (eq .Site.Params.homeHeaderType "text") }}
{{ partial "header/header-text" . }}
{{ else }}
{{ partial "header/custom-header" . }}
{{ end }}
</header>
{{ end }}

View File

@ -11,5 +11,13 @@
window.onload = function() {
// search
runSearch();
// counter
{{ $enableBusuanzi := .Site.Params.enableBusuanzi }}
var enableBusuanzi = JSON.parse({{ $enableBusuanzi | jsonify }});
if (enableBusuanzi) {
$('#busuanzi_value_site_uv').digits();
$('#busuanzi_value_site_pv').digits();
}
}
</script>

View File

@ -117,6 +117,16 @@
// search
runSearch();
// counter
{{ $enableBusuanzi := .Site.Params.enableBusuanzi }}
{{ $busuanziPagePV := .Site.Params.busuanziPagePV }}
var enableBusuanzi = JSON.parse({{ $enableBusuanzi | jsonify }});
var busuanziPagePV = JSON.parse({{ $busuanziPagePV | jsonify }});
if (enableBusuanzi && busuanziPagePV) {
$('#busuanzi_value_page_pv').digits();
}
var navbar = $('.navbar');
// toc

View File

@ -0,0 +1 @@
<!-- override me! -->

View File

@ -0,0 +1 @@
<!-- override me! -->

View File

@ -1,8 +1,9 @@
{{ if $.Param "enableSidebar" }}
<div class="sidebar">
{{ partial "search/site-search" . }}
{{ partial "sidebar/site-bio" . }}
{{ partial "sidebar/site-counter" . }}
{{ partial "sidebar/custom-home" . }}
{{ range (and (where .Site.Sections "Type" "!=" "about") (where .Site.Sections "Type" "!=" "archive")) }}
<section class="sidebar-recent">

View File

@ -5,6 +5,7 @@
{{ with .File }}{{ $currentID = .UniqueID }}{{ end }}
<div class="sidebar">
{{ partial "search/site-search" . }}
{{ partial "sidebar/custom-list" . }}
{{ if .Site.Params.itemsPerCategory }}
{{ range first .Site.Params.itemsPerCategory .Pages }}
<section class="sidebar-recent">
@ -20,6 +21,7 @@
{{ end }}
</div>
<hr class="hr-fade sidebar-hr" />
<div class="taxo-root">
{{ partial "taxonomy/taxonomy-tags" . }}
{{ partial "taxonomy/taxonomy-categories" . }}

View File

@ -0,0 +1,24 @@
{{ if $.Param "enableBusuanzi" }}
<div class="busuanzi">
{{ if .Site.Params.busuanziSiteUV }}
<div class="busuanzi__item">
<span class="busuanzi__item--label">
{{ i18n "counter-site-uv" }}
</span>
<span id="busuanzi_value_site_uv" class="busuanzi__item--number">...</span>
</div>
{{ end }}
{{ if .Site.Params.busuanziSitePV }}
<div class="busuanzi__item">
<span class="busuanzi__item--label">
{{ i18n "counter-site-pv" }}
</span>
<span id="busuanzi_value_site_pv" class="busuanzi__item--number">...</span>
</div>
{{ end }}
</div>
<hr class="hr-fade sidebar-hr" />
{{ end }}

View File

@ -0,0 +1 @@
<svg fill="#000000" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32" width="{{ .width }}" height="{{ .height }}"><path fill="currentColor" d="M 5 5 L 5 27 L 27 27 L 27 5 L 5 5 z M 7 7 L 25 7 L 25 18.931641 L 18.929688 16.775391 C 19.528069 15.604874 19.872428 14.319295 20 13 L 17 13 L 17 12 L 21 12 L 21 11 L 17 11 L 17 9 L 15 9 L 15 11 L 10 11 L 10 12 L 15 12 L 15 13 L 11 13 L 11 14 L 18.042969 14 C 17.874523 14.798238 17.595556 15.553113 17.226562 16.220703 C 17.067744 16.141588 16.909631 16.060926 16.748047 15.988281 C 16.275047 15.769281 15.785203 15.594937 15.283203 15.460938 C 14.281203 15.185937 13.248844 15.029953 12.214844 15.001953 C 11.955844 14.994953 11.6955 15.005813 11.4375 15.007812 C 11.1535 15.021812 10.861031 15.045953 10.582031 15.126953 C 10.020031 15.271953 9.5026563 15.571516 9.0976562 15.978516 C 8.2506563 16.776516 7.9028281 17.969375 8.0488281 19.109375 C 8.1738281 20.285375 9.0837031 21.364953 10.220703 21.751953 C 10.770703 21.960953 11.416641 22.039422 11.931641 21.982422 C 12.202641 21.976422 12.472188 21.956297 12.742188 21.904297 C 13.013188 21.866297 13.281922 21.822234 13.544922 21.740234 C 14.607922 21.469234 15.606062 20.931031 16.414062 20.207031 C 16.818062 19.845031 17.187578 19.452297 17.517578 19.029297 C 17.673578 18.811297 17.84375 18.601328 17.96875 18.361328 C 17.986598 18.324421 17.999073 18.284503 18.017578 18.248047 L 25 22.044922 L 25 25 L 7 25 L 7 7 z M 11.427734 16.341797 L 12.109375 16.388672 C 13.020375 16.473672 13.909156 16.711516 14.785156 16.978516 C 15.220156 17.122516 15.651125 17.283172 16.078125 17.451172 C 16.169125 17.488172 16.257656 17.530313 16.347656 17.570312 C 16.265656 17.685312 16.183703 17.800109 16.095703 17.912109 C 15.835703 18.249109 15.532328 18.544703 15.236328 18.845703 C 14.636328 19.436703 13.928094 19.918141 13.121094 20.244141 C 12.921094 20.332141 12.710094 20.385547 12.496094 20.435547 C 12.284094 20.499547 12.06575 20.534594 11.84375 20.558594 C 11.37975 20.644594 11.008375 20.634062 10.609375 20.539062 C 9.834375 20.367062 9.1521562 19.755547 9.0351562 18.935547 C 8.8801563 18.121547 9.246 17.233016 9.875 16.791016 C 10.182 16.559016 10.534719 16.428234 10.886719 16.365234 C 11.064719 16.330234 11.241734 16.336797 11.427734 16.341797 z"/></svg>

After

Width:  |  Height:  |  Size: 2.2 KiB

View File

@ -0,0 +1 @@
<svg fill="#000000" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 26 26" width="{{ .width }}" height="{{ .height }}"><path fill="currentColor" d="M 9 5 L 9 7 L 7 7 L 7 20 L 9 20 L 9 22 L 11 22 L 11 20 L 13 20 L 13 22 L 15 22 L 15 19.90625 C 15.265625 19.871094 15.554688 19.855469 15.8125 19.8125 C 16.414063 19.613281 16.90625 19.394531 17.40625 19.09375 C 17.804688 18.792969 18.199219 18.40625 18.5 17.90625 C 18.800781 17.40625 18.90625 16.886719 18.90625 16.1875 C 18.90625 15.386719 18.585938 14.695313 18.1875 14.09375 C 17.6875 13.492188 17.085938 13.105469 16.1875 12.90625 C 16.886719 12.605469 17.386719 12.210938 17.6875 11.8125 C 17.988281 11.414063 18.1875 10.886719 18.1875 10.1875 C 18.1875 9.585938 18.105469 9.085938 17.90625 8.6875 C 17.707031 8.289063 17.398438 7.886719 17 7.6875 C 16.601563 7.488281 16.195313 7.289063 15.59375 7.1875 C 15.398438 7.15625 15.199219 7.125 15 7.09375 L 15 5 L 13 5 L 13 7 L 11 7 L 11 5 Z M 10 9 L 12.90625 9 C 13.207031 9 13.488281 8.992188 13.6875 9.09375 C 13.988281 9.09375 14.207031 9.210938 14.40625 9.3125 C 14.605469 9.414063 14.804688 9.488281 14.90625 9.6875 C 15.007813 9.886719 15.09375 10.105469 15.09375 10.40625 C 15.09375 11.007813 14.992188 11.394531 14.59375 11.59375 C 14.195313 11.894531 13.789063 12 13.1875 12 L 10 12 Z M 10 14 L 13.5 14 C 14.199219 14 14.8125 14.199219 15.3125 14.5 C 15.8125 14.800781 16 15.394531 16 16.09375 C 16 16.394531 15.914063 16.800781 15.8125 17 C 15.613281 17.300781 15.386719 17.492188 15.1875 17.59375 C 14.988281 17.695313 14.707031 17.804688 14.40625 17.90625 C 14.105469 18.007813 13.707031 18 13.40625 18 L 10 18 Z"/></svg>

After

Width:  |  Height:  |  Size: 1.6 KiB

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" fill="#000000" viewBox="0 0 24 24" width="{{ .width }}" height="{{ .height }}"><path fill="currentColor" d="M 3 3 C 2.448 3 2 3.448 2 4 L 2 20 C 2 20.552 2.448 21 3 21 L 5 21 C 5.552 21 6 20.552 6 20 L 6 4 C 6 3.448 5.552 3 5 3 L 3 3 z M 15 3 C 11.141 3 8 6.141 8 10 C 8 13.859 11.141 17 15 17 C 18.859 17 22 13.859 22 10 C 22 6.141 18.859 3 15 3 z"/></svg>

After

Width:  |  Height:  |  Size: 398 B

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" fill="#000000" viewBox="0 0 24 24" width="{{ .width }}" height="{{ .height }}"><path fill="currentColor" d="M20.055,7.713c-0.677-0.842-1.673-1.41-2.764-1.615C16.773,3.971,14.877,3,13.045,3H5.846L2.647,18h4.114l-0.689,3h6.233 l1.17-5h1.398c3.365,0,5.38-1.445,5.989-4.295C21.278,9.752,20.653,8.456,20.055,7.713z M7.183,16H5.137L7.512,5h5.533 c0.293,0,1.5,0.061,2.078,1.013H9.351l-1.375,6.235L7.183,16z M18.906,11.287C18.5,13.188,17.293,14,14.873,14h-2.944l-1.207,5 H8.594l1.271-6h1.444c4.259,0,5.665-2.394,6.094-4.402c0.027-0.128,0.045-0.256,0.057-0.382c0.378,0.151,0.749,0.393,1.038,0.751 C18.971,9.557,19.108,10.337,18.906,11.287z"/></svg>

After

Width:  |  Height:  |  Size: 680 B

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" fill="#000000" viewBox="0 0 24 24" width="{{ .width }}" height="{{ .height }}"><path fill="currentColor" d="M 10.5 3 C 5.813 3 2 6.14 2 10 C 2 11.363 2.4712344 12.668687 3.3652344 13.804688 L 3.0117188 17.771484 C 2.9747188 18.183484 3.4393906 18.447078 3.7753906 18.205078 L 6.5488281 16.197266 C 7.6878797 16.690511 8.9474402 16.953333 10.236328 16.986328 C 10.955859 19.275512 13.264379 20.957031 16 20.957031 C 16.848 20.957031 17.677703 20.788125 18.470703 20.453125 L 21.277344 21.609375 C 21.635344 21.757375 22.015125 21.455266 21.953125 21.072266 L 21.421875 17.783203 C 21.805875 17.043203 22 16.269516 22 15.478516 C 22 13.437939 20.76981 11.657677 18.953125 10.714844 C 18.982151 10.477946 19 10.240343 19 10 C 19 6.14 15.187 3 10.5 3 z M 8.0175781 6.75 C 8.7085781 6.75 9.2675781 7.3043281 9.2675781 7.9863281 C 9.2675781 8.6683281 8.7085781 9.25 8.0175781 9.25 C 7.3265781 9.25 6.7675781 8.6703281 6.7675781 7.9863281 C 6.7675781 7.3033281 7.3265781 6.75 8.0175781 6.75 z M 13.013672 6.75 C 13.695672 6.75 14.25 7.3043281 14.25 7.9863281 C 14.25 8.6703281 13.696672 9.25 13.013672 9.25 C 12.328672 9.25 11.75 8.6703281 11.75 7.9863281 C 11.75 7.3033281 12.329672 6.75 13.013672 6.75 z M 16 12 C 18.206 12 20 13.560516 20 15.478516 C 20 16.019516 19.839437 16.560031 19.523438 17.082031 L 19.332031 17.396484 L 19.550781 18.734375 L 18.404297 18.263672 L 17.994141 18.470703 C 17.355141 18.794703 16.685 18.957031 16 18.957031 C 13.794 18.957031 12 17.396516 12 15.478516 C 12 13.560516 13.794 12 16 12 z M 14.021484 14 C 13.469484 14 13 14.447 13 15 C 13 15.553 13.472484 16 14.021484 16 C 14.570484 16 15.015625 15.553 15.015625 15 C 15.015625 14.447 14.571484 14 14.021484 14 z M 17.992188 14 A 0.99299997 1 0 0 0 17 15 A 0.99299997 1 0 0 0 17.992188 16 A 0.99299997 1 0 0 0 18.986328 15 A 0.99299997 1 0 0 0 17.992188 14 z"/></svg>

After

Width:  |  Height:  |  Size: 1.8 KiB

View File

@ -1 +1 @@
<svg fill="#000000" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 30 30" width="{{ .width }}" height="{{ .height }}"><path fill="currentColor" d="M 6 4 C 4.895 4 4 4.895 4 6 L 4 17.326172 L 6.5351562 18.017578 C 7.1301562 16.988578 8.1675781 16.247547 9.3925781 16.060547 L 12.066406 12.851562 C 12.027406 12.572563 12 12.29 12 12 C 12 8.686 14.686 6 18 6 C 21.314 6 24 8.686 24 12 C 24 15.314 21.314 18 18 18 C 17.71 18 17.427437 17.972594 17.148438 17.933594 L 13.939453 20.607422 C 13.645453 22.526422 12.001 24 10 24 C 7.791 24 6 22.209 6 20 C 6 19.982 6.0058594 19.965266 6.0058594 19.947266 L 4 19.400391 L 4 24 C 4 25.105 4.895 26 6 26 L 24 26 C 25.105 26 26 25.105 26 24 L 26 6 C 26 4.895 25.105 4 24 4 L 6 4 z M 18 8 C 15.802706 8 14 9.8027056 14 12 C 14 14.197294 15.802706 16 18 16 C 20.197294 16 22 14.197294 22 12 C 22 9.8027056 20.197294 8 18 8 z M 18 10 C 19.116414 10 20 10.883586 20 12 C 20 13.116414 19.116414 14 18 14 C 16.883586 14 16 13.116414 16 12 C 16 10.883586 16.883586 10 18 10 z M 10 17.5 C 9.215 17.5 8.5224531 17.868547 8.0644531 18.435547 L 10.263672 19.035156 C 10.796672 19.181156 11.111797 19.730672 10.966797 20.263672 C 10.843797 20.707672 10.44 21 10 21 C 9.913 21 9.8253281 20.988844 9.7363281 20.964844 L 7.5351562 20.365234 C 7.7141562 21.571234 8.744 22.5 10 22.5 C 11.381 22.5 12.5 21.381 12.5 20 C 12.5 18.619 11.381 17.5 10 17.5 z"/></svg>
<svg fill="#000000" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 50 50" width="{{ .width }}" height="{{ .height }}"><path fill="currentColor" d="M 25 3 C 13.59 3 4.209375 11.680781 3.109375 22.800781 L 14.300781 28.529297 C 15.430781 27.579297 16.9 27 18.5 27 L 18.550781 27 C 18.940781 26.4 19.389375 25.649141 19.859375 24.869141 C 20.839375 23.259141 21.939531 21.439062 23.019531 20.039062 C 23.259531 15.569063 26.97 12 31.5 12 C 36.19 12 40 15.81 40 20.5 C 40 25.03 36.430937 28.740469 31.960938 28.980469 C 30.560938 30.060469 28.750859 31.160859 27.130859 32.130859 C 26.350859 32.610859 25.6 33.059219 25 33.449219 L 25 33.5 C 25 37.09 22.09 40 18.5 40 C 14.91 40 12 37.09 12 33.5 C 12 33.33 12.009531 33.17 12.019531 33 L 3.2792969 28.519531 C 4.9692969 38.999531 14.05 47 25 47 C 37.15 47 47 37.15 47 25 C 47 12.85 37.15 3 25 3 z M 31.5 14 C 27.92 14 25 16.92 25 20.5 C 25 24.08 27.92 27 31.5 27 C 35.08 27 38 24.08 38 20.5 C 38 16.92 35.08 14 31.5 14 z M 31.5 16 C 33.99 16 36 18.01 36 20.5 C 36 22.99 33.99 25 31.5 25 C 29.01 25 27 22.99 27 20.5 C 27 18.01 29.01 16 31.5 16 z M 18.5 29 C 17.71 29 16.960313 29.200312 16.320312 29.570312 L 19.640625 31.269531 C 20.870625 31.899531 21.350469 33.410625 20.730469 34.640625 C 20.280469 35.500625 19.41 36 18.5 36 C 18.11 36 17.729375 35.910469 17.359375 35.730469 L 14.029297 34.019531 C 14.289297 36.259531 16.19 38 18.5 38 C 20.99 38 23 35.99 23 33.5 C 23 31.01 20.99 29 18.5 29 z"/></svg>

Before

Width:  |  Height:  |  Size: 1.4 KiB

After

Width:  |  Height:  |  Size: 1.4 KiB

View File

@ -7,7 +7,7 @@
<title>{{ block "title" . }}{{ .Title }} {{ .Site.Title }}{{ end }}</title>
{{ partial "head/meta" . }}
{{ partial "head/meta_json_ld" . }}
{{ partial "head/service" . }}
{{ partial "head/services" . }}
</head>
<div class="reveal">

Binary file not shown.

After

Width:  |  Height:  |  Size: 724 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 721 B