193 lines
15 KiB
HTML
193 lines
15 KiB
HTML
<!DOCTYPE html><html lang="zh-CN" data-theme="light"><head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0,viewport-fit=cover"><title>時痕 - Linloir's Blog</title><meta name="author" content="Linloir"><meta name="copyright" content="Linloir"><meta name="format-detection" content="telephone=no"><meta name="theme-color" content="#ffffff"><meta name="description" content="我、技术、生活与值得分享的一切">
|
|
<meta property="og:type" content="website">
|
|
<meta property="og:title" content="時痕">
|
|
<meta property="og:url" content="https://blog.linloir.cn/">
|
|
<meta property="og:site_name" content="時痕">
|
|
<meta property="og:description" content="我、技术、生活与值得分享的一切">
|
|
<meta property="og:locale" content="zh_CN">
|
|
<meta property="og:image" content="https://blog.linloir.cn/img/avatar.png">
|
|
<meta property="article:author" content="Linloir">
|
|
<meta property="article:tag" content="Linloir, blog, technology, life, share, Linloir's Blog, 時痕, 霖落, 博客, 技术, 生活, 分享">
|
|
<meta name="twitter:card" content="summary">
|
|
<meta name="twitter:image" content="https://blog.linloir.cn/img/avatar.png"><link rel="shortcut icon" href="/img/favicon.png"><link rel="canonical" href="https://blog.linloir.cn/"><link rel="preconnect" href="//cdn.jsdelivr.net"/><link rel="preconnect" href="//busuanzi.ibruce.info"/><link rel="stylesheet" href="/css/index.css"><link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@fortawesome/fontawesome-free/css/all.min.css"><script>
|
|
(() => {
|
|
|
|
const saveToLocal = {
|
|
set: (key, value, ttl) => {
|
|
if (!ttl) return
|
|
const expiry = Date.now() + ttl * 86400000
|
|
localStorage.setItem(key, JSON.stringify({ value, expiry }))
|
|
},
|
|
get: key => {
|
|
const itemStr = localStorage.getItem(key)
|
|
if (!itemStr) return undefined
|
|
const { value, expiry } = JSON.parse(itemStr)
|
|
if (Date.now() > expiry) {
|
|
localStorage.removeItem(key)
|
|
return undefined
|
|
}
|
|
return value
|
|
}
|
|
}
|
|
|
|
window.btf = {
|
|
saveToLocal,
|
|
getScript: (url, attr = {}) => new Promise((resolve, reject) => {
|
|
const script = document.createElement('script')
|
|
script.src = url
|
|
script.async = true
|
|
Object.entries(attr).forEach(([key, val]) => script.setAttribute(key, val))
|
|
script.onload = script.onreadystatechange = () => {
|
|
if (!script.readyState || /loaded|complete/.test(script.readyState)) resolve()
|
|
}
|
|
script.onerror = reject
|
|
document.head.appendChild(script)
|
|
}),
|
|
getCSS: (url, id) => new Promise((resolve, reject) => {
|
|
const link = document.createElement('link')
|
|
link.rel = 'stylesheet'
|
|
link.href = url
|
|
if (id) link.id = id
|
|
link.onload = link.onreadystatechange = () => {
|
|
if (!link.readyState || /loaded|complete/.test(link.readyState)) resolve()
|
|
}
|
|
link.onerror = reject
|
|
document.head.appendChild(link)
|
|
}),
|
|
addGlobalFn: (key, fn, name = false, parent = window) => {
|
|
if (!false && key.startsWith('pjax')) return
|
|
const globalFn = parent.globalFn || {}
|
|
globalFn[key] = globalFn[key] || {}
|
|
if (name && globalFn[key][name]) return
|
|
globalFn[key][name || Object.keys(globalFn[key]).length] = fn
|
|
parent.globalFn = globalFn
|
|
}
|
|
}
|
|
|
|
|
|
const activateDarkMode = () => {
|
|
document.documentElement.setAttribute('data-theme', 'dark')
|
|
if (document.querySelector('meta[name="theme-color"]') !== null) {
|
|
document.querySelector('meta[name="theme-color"]').setAttribute('content', '#0d0d0d')
|
|
}
|
|
}
|
|
const activateLightMode = () => {
|
|
document.documentElement.setAttribute('data-theme', 'light')
|
|
if (document.querySelector('meta[name="theme-color"]') !== null) {
|
|
document.querySelector('meta[name="theme-color"]').setAttribute('content', '#ffffff')
|
|
}
|
|
}
|
|
|
|
btf.activateDarkMode = activateDarkMode
|
|
btf.activateLightMode = activateLightMode
|
|
|
|
const theme = saveToLocal.get('theme')
|
|
|
|
theme === 'dark' ? activateDarkMode() : theme === 'light' ? activateLightMode() : null
|
|
|
|
|
|
const asideStatus = saveToLocal.get('aside-status')
|
|
if (asideStatus !== undefined) {
|
|
document.documentElement.classList.toggle('hide-aside', asideStatus === 'hide')
|
|
}
|
|
|
|
|
|
const detectApple = () => {
|
|
if (/iPad|iPhone|iPod|Macintosh/.test(navigator.userAgent)) {
|
|
document.documentElement.classList.add('apple')
|
|
}
|
|
}
|
|
detectApple()
|
|
|
|
})()
|
|
</script><script>const GLOBAL_CONFIG = {
|
|
root: '/',
|
|
algolia: undefined,
|
|
localSearch: undefined,
|
|
translate: undefined,
|
|
noticeOutdate: undefined,
|
|
highlight: {"plugin":"highlight.js","highlightCopy":true,"highlightLang":true,"highlightHeightLimit":false,"highlightFullpage":false,"highlightMacStyle":false},
|
|
copy: {
|
|
success: '复制成功',
|
|
error: '复制失败',
|
|
noSupport: '浏览器不支持'
|
|
},
|
|
relativeDate: {
|
|
homepage: false,
|
|
post: false
|
|
},
|
|
runtime: '',
|
|
dateSuffix: {
|
|
just: '刚刚',
|
|
min: '分钟前',
|
|
hour: '小时前',
|
|
day: '天前',
|
|
month: '个月前'
|
|
},
|
|
copyright: undefined,
|
|
lightbox: 'null',
|
|
Snackbar: undefined,
|
|
infinitegrid: {
|
|
js: 'https://cdn.jsdelivr.net/npm/@egjs/infinitegrid/dist/infinitegrid.min.js',
|
|
buttonText: '加载更多'
|
|
},
|
|
isPhotoFigcaption: false,
|
|
islazyload: false,
|
|
isAnchor: false,
|
|
percent: {
|
|
toc: true,
|
|
rightside: false,
|
|
},
|
|
autoDarkmode: false
|
|
}</script><script id="config-diff">var GLOBAL_CONFIG_SITE = {
|
|
title: '時痕',
|
|
isPost: false,
|
|
isHome: true,
|
|
isHighlightShrink: false,
|
|
isToc: false,
|
|
postUpdate: '2024-10-11 10:15:46'
|
|
}</script><meta name="generator" content="Hexo 7.3.0"></head><body><div id="sidebar"><div id="menu-mask"></div><div id="sidebar-menus"><div class="avatar-img is-center"><img src="/img/avatar.png" onerror="onerror=null;src='/img/friend_404.gif'" alt="avatar"/></div><div class="site-data is-center"><a href="/archives/"><div class="headline">文章</div><div class="length-num">1</div></a><a href="/tags/"><div class="headline">标签</div><div class="length-num">0</div></a><a href="/categories/"><div class="headline">分类</div><div class="length-num">0</div></a></div><div class="menus_items"><div class="menus_item"><a class="site-page" href="/"><i class="fa-fw fas fa-home"></i><span> 主页</span></a></div><div class="menus_item"><a class="site-page" href="/tags/"><i class="fa-fw fas fa-tags"></i><span> 标签</span></a></div><div class="menus_item"><a class="site-page" href="/categories/"><i class="fa-fw fas fa-th"></i><span> 分类</span></a></div><div class="menus_item"><a class="site-page" href="/archives/"><i class="fa-fw fas fa-archive"></i><span> 归档</span></a></div><div class="menus_item"><span class="site-page group"><i class="fa-fw fas fa-list"></i><span> 链接</span><i class="fas fa-chevron-down"></i></span><ul class="menus_item_child"><li><a class="site-page child" href="/links/"><i class="fa-fw fas fa-link"></i><span> 友链</span></a></li><li><a class="site-page child" href="/about/"><i class="fa-fw fas fa-heart"></i><span> 关于</span></a></li></ul></div></div></div></div><div class="page" id="body-wrap"><header class="full_page" id="page-header" style="background-image: url(/img/index.jpg);"><nav id="nav"><span id="blog-info"><a class="nav-site-title" href="/"><span class="site-name">時痕</span></a></span><div id="menus"><div class="menus_items"><div class="menus_item"><a class="site-page" href="/"><i class="fa-fw fas fa-home"></i><span> 主页</span></a></div><div class="menus_item"><a class="site-page" href="/tags/"><i class="fa-fw fas fa-tags"></i><span> 标签</span></a></div><div class="menus_item"><a class="site-page" href="/categories/"><i class="fa-fw fas fa-th"></i><span> 分类</span></a></div><div class="menus_item"><a class="site-page" href="/archives/"><i class="fa-fw fas fa-archive"></i><span> 归档</span></a></div><div class="menus_item"><span class="site-page group"><i class="fa-fw fas fa-list"></i><span> 链接</span><i class="fas fa-chevron-down"></i></span><ul class="menus_item_child"><li><a class="site-page child" href="/links/"><i class="fa-fw fas fa-link"></i><span> 友链</span></a></li><li><a class="site-page child" href="/about/"><i class="fa-fw fas fa-heart"></i><span> 关于</span></a></li></ul></div></div><div id="toggle-menu"><span class="site-page"><i class="fas fa-bars fa-fw"></i></span></div></div></nav><div id="site-info"><h1 id="site-title">時痕</h1><div id="site-subtitle"><span id="subtitle"></span></div><div id="site_social_icons"><a class="social-icon" href="https://github.com/Linloir" target="_blank" title="GitHub"><i class="fab fa-github"></i></a><a class="social-icon" href="mailto:jonathanzhang.st@gmail.com" target="_blank" title="Email"><i class="fas fa-envelope"></i></a></div></div><div id="scroll-down"><i class="fas fa-angle-down scroll-down-effects"></i></div></header><main class="layout" id="content-inner"><div class="recent-posts nc" id="recent-posts"><div class="recent-post-items"><div class="recent-post-item"><div class="recent-post-info no-cover"><a class="article-title" href="/2024/10/11/hello-world/" title="Hello World">Hello World</a><div class="article-meta-wrap"><span class="post-meta-date"><i class="far fa-calendar-alt"></i><span class="article-meta-label">发表于</span><time datetime="2024-10-11T02:15:37.917Z" title="发表于 2024-10-11 10:15:37">2024-10-11</time></span></div><div class="content">Welcome to Hexo! This is your very first post. Check documentation for more info. If you get any problems when using Hexo, you can find the answer in troubleshooting or you can ask me on GitHub. Quick StartCreate a new post1$ hexo new "My New Post" More info: Writing Run server1$ hexo server More info: Server Generate static files1$ hexo generate More info: Generating Deploy to remote sites1$ hexo deploy More info: Deployment </div></div></div></div><nav id="pagination"><div class="pagination"><span class="page-number current">1</span></div></nav></div><div class="aside-content" id="aside-content"><div class="card-widget card-info is-center"><div class="avatar-img"><img src="/img/avatar.png" onerror="this.onerror=null;this.src='/img/friend_404.gif'" alt="avatar"/></div><div class="author-info-name">Linloir</div><div class="author-info-description">我、技术、生活与值得分享的一切</div><div class="site-data"><a href="/archives/"><div class="headline">文章</div><div class="length-num">1</div></a><a href="/tags/"><div class="headline">标签</div><div class="length-num">0</div></a><a href="/categories/"><div class="headline">分类</div><div class="length-num">0</div></a></div><a id="card-info-btn" target="_blank" rel="noopener" href="https://github.com/xxxxxx"><i class="fab fa-github"></i><span>Follow Me</span></a><div class="card-info-social-icons"><a class="social-icon" href="https://github.com/Linloir" target="_blank" title="GitHub"><i class="fab fa-github"></i></a><a class="social-icon" href="mailto:jonathanzhang.st@gmail.com" target="_blank" title="Email"><i class="fas fa-envelope"></i></a></div></div><div class="card-widget card-announcement"><div class="item-headline"><i class="fas fa-bullhorn fa-shake"></i><span>公告</span></div><div class="announcement_content">This is my Blog</div></div><div class="sticky_layout"><div class="card-widget card-recent-post"><div class="item-headline"><i class="fas fa-history"></i><span>最新文章</span></div><div class="aside-list"><div class="aside-list-item no-cover"><div class="content"><a class="title" href="/2024/10/11/hello-world/" title="Hello World">Hello World</a><time datetime="2024-10-11T02:15:37.917Z" title="发表于 2024-10-11 10:15:37">2024-10-11</time></div></div></div></div><div class="card-widget card-archives">
|
|
<div class="item-headline">
|
|
<i class="fas fa-archive"></i>
|
|
<span>归档</span>
|
|
|
|
</div>
|
|
<ul class="card-archive-list">
|
|
|
|
<li class="card-archive-list-item">
|
|
<a class="card-archive-list-link" href="/archives/2024/10/">
|
|
<span class="card-archive-list-date">十月 2024</span>
|
|
<span class="card-archive-list-count">1</span>
|
|
</a>
|
|
</li>
|
|
</ul></div><div class="card-widget card-webinfo"><div class="item-headline"><i class="fas fa-chart-line"></i><span>网站信息</span></div><div class="webinfo"><div class="webinfo-item"><div class="item-name">文章数目 :</div><div class="item-count">1</div></div><div class="webinfo-item"><div class="item-name">本站访客数 :</div><div class="item-count" id="busuanzi_value_site_uv"><i class="fa-solid fa-spinner fa-spin"></i></div></div><div class="webinfo-item"><div class="item-name">本站总浏览量 :</div><div class="item-count" id="busuanzi_value_site_pv"><i class="fa-solid fa-spinner fa-spin"></i></div></div><div class="webinfo-item"><div class="item-name">最后更新时间 :</div><div class="item-count" id="last-push-date" data-lastPushDate="2024-10-11T02:15:46.673Z"><i class="fa-solid fa-spinner fa-spin"></i></div></div></div></div></div></div></main><footer id="footer"><div id="footer-wrap"><div class="copyright">©2019 - 2024 By Linloir</div><div class="framework-info"><span>框架 </span><a target="_blank" rel="noopener" href="https://hexo.io">Hexo</a><span class="footer-separator">|</span><span>主题 </span><a target="_blank" rel="noopener" href="https://github.com/jerryc127/hexo-theme-butterfly">Butterfly</a></div></div></footer></div><div id="rightside"><div id="rightside-config-hide"><button id="darkmode" type="button" title="日间和夜间模式切换"><i class="fas fa-adjust"></i></button><button id="hide-aside-btn" type="button" title="单栏和双栏切换"><i class="fas fa-arrows-alt-h"></i></button></div><div id="rightside-config-show"><button id="rightside-config" type="button" title="设置"><i class="fas fa-cog fa-spin"></i></button><button id="go-up" type="button" title="回到顶部"><span class="scroll-percent"></span><i class="fas fa-arrow-up"></i></button></div></div><div><script src="/js/utils.js"></script><script src="/js/main.js"></script><div class="js-pjax"><script>window.typedJSFn = {
|
|
init: str => {
|
|
window.typed = new Typed('#subtitle', Object.assign({
|
|
strings: str,
|
|
startDelay: 300,
|
|
typeSpeed: 150,
|
|
loop: true,
|
|
backSpeed: 50,
|
|
}, null))
|
|
},
|
|
run: subtitleType => {
|
|
if (true) {
|
|
if (typeof Typed === 'function') {
|
|
subtitleType()
|
|
} else {
|
|
btf.getScript('https://cdn.jsdelivr.net/npm/typed.js/dist/typed.umd.min.js').then(subtitleType)
|
|
}
|
|
} else {
|
|
subtitleType()
|
|
}
|
|
}
|
|
}
|
|
btf.addGlobalFn('pjaxSendOnce', () => { typed.destroy() }, 'typedDestroy')
|
|
</script><script>function subtitleType () {
|
|
if (true) {
|
|
typedJSFn.init(["我, 技术, 生活与值得分享的一切","Run fast, Laugh hard, and Be kind","从这里, 瞥见时间流过的痕迹"])
|
|
} else {
|
|
document.getElementById("subtitle").textContent = "我, 技术, 生活与值得分享的一切"
|
|
}
|
|
}
|
|
typedJSFn.run(subtitleType)</script></div><script async data-pjax src="//busuanzi.ibruce.info/busuanzi/2.3/busuanzi.pure.mini.js"></script></div></body></html> |