Blog/themes/blog/layouts/head.html

77 lines
3.1 KiB
HTML
Raw Normal View History

2024-03-21 07:25:12 +00:00
{{define "header"}}
<!DOCTYPE html>
<html lang="zh-cn">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<link rel="shortcut icon" href="public/img/favicon.ico" type="image/x-icon">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
2024-03-28 09:32:11 +00:00
<meta name="Keywords" content="{{ .Config.HtmlKeywords }}" />
<meta name="description" content="{{ .Config.HtmlDescription }}" />
2024-03-21 07:25:12 +00:00
<title>{{ .Title }} - {{ .Config.SiteName }}</title>
2024-03-28 09:32:11 +00:00
<style>:root{--primary: {{ .Config.ThemeColor }}}</style>
2024-03-21 07:25:12 +00:00
<link rel="stylesheet" href="/public/css/app.css">
2024-03-28 09:32:11 +00:00
<link href="/public/css/prism.css" rel="stylesheet" />
2024-03-21 07:25:12 +00:00
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/aplayer@1.10.1/dist/APlayer.min.css">
<script src="/public/js/marked.min.js"></script>
2024-03-28 09:32:11 +00:00
<script async src="https://umami.starss.cc/script.js" data-website-id="594ff1a5-e8ce-47b1-8558-88cb3f9d7704"></script>
2024-03-21 07:25:12 +00:00
<script async src="https://busuanzi.icodeq.com/busuanzi.pure.mini.js"></script>
<script>
2024-03-28 09:32:11 +00:00
function obj2StrParams(obj,firstStr = '?') {
2024-03-21 07:25:12 +00:00
let params = firstStr;
2024-03-28 09:32:11 +00:00
for (let p in obj){
let isFirst = ( params === '?');
2024-03-21 07:25:12 +00:00
let qz = isFirst ? '' : (params === '&' ? '' : '&');
2024-03-28 09:32:11 +00:00
params += (qz + p + '=' + obj[p] )
2024-03-21 07:25:12 +00:00
}
return params
}
function currentUrlToParams(key = null) {
let paramsUrl = (window.location.href).split('?');
2024-03-28 09:32:11 +00:00
if(paramsUrl.length<2)return key ? null : {};
2024-03-21 07:25:12 +00:00
let paramsArr = paramsUrl[1].split('&');
let paramsData = {}
2024-03-28 09:32:11 +00:00
paramsArr.forEach(r=>{
2024-03-21 07:25:12 +00:00
let data = r.split('=')
paramsData[data[0]] = data[1]
})
2024-03-28 09:32:11 +00:00
if(key)return paramsData.hasOwnProperty(key) ? paramsData[key] : null;
2024-03-21 07:25:12 +00:00
return paramsData;
}
2024-03-28 09:32:11 +00:00
function searchArticle() {
var searchKey = document.getElementById('search-input').value;
searchKey = searchKey.replace(/^\s+|\s+$/g,"")
if("" === searchKey){return}
window.location.href = '/?search=' + searchKey
}
2024-03-21 07:25:12 +00:00
</script>
</head>
<body class="theme{{ .Config.ThemeColor }}">
2024-03-28 09:32:11 +00:00
<nav class="head">
<div class="container head-content">
<div class="logo">{{ .Config.SiteName }}</div>
<div class="search-box">
<input id="search-input" class="search-input" type="text" placeholder="搜索...">
<img onclick="searchArticle()" class="search-icon" src="/public/img/search.svg" alt="">
</div>
<div class="nav">
<a href="/blog">Blog</a>
<a href="/categories">Categories</a>
2024-05-03 10:34:32 +00:00
{{if ne .Config.MemosAlbumTag ""}}
<a href="/album">Album</a>
{{ end }}
{{if ne .Config.MemosTalkTag ""}}
<a href="/talk">Talk</a>
{{ end }}
2024-03-28 09:32:11 +00:00
{{range $nav := .Navs }}
<a href="/extra-nav?name={{ $nav.Title }}">{{ $nav.Title }}</a>
{{end}}
2024-03-21 07:25:12 +00:00
</div>
2024-03-28 09:32:11 +00:00
</div>
</nav>
<div class="post-warp">
{{ end }}