Site updated: 2022-07-10 10:58:06
458
2022/06/20/My-First-Blog/index.html
Normal file
@@ -0,0 +1,458 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="zh-CN">
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8">
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=2">
|
||||||
|
<meta name="theme-color" content="#222">
|
||||||
|
<meta name="generator" content="Hexo 6.2.0">
|
||||||
|
<link rel="apple-touch-icon" sizes="180x180" href="/images/apple-touch-icon-next.png">
|
||||||
|
<link rel="icon" type="image/png" sizes="32x32" href="/images/favicon-32x32-next.png">
|
||||||
|
<link rel="icon" type="image/png" sizes="16x16" href="/images/favicon-16x16-next.png">
|
||||||
|
<link rel="mask-icon" href="/images/logo.svg" color="#222">
|
||||||
|
|
||||||
|
<link rel="stylesheet" href="/css/main.css">
|
||||||
|
|
||||||
|
|
||||||
|
<link rel="stylesheet" href="/lib/font-awesome/css/all.min.css">
|
||||||
|
<link rel="stylesheet" href="/lib/pace/pace-theme-minimal.min.css">
|
||||||
|
<script src="/lib/pace/pace.min.js"></script>
|
||||||
|
|
||||||
|
<script id="hexo-configurations">
|
||||||
|
var NexT = window.NexT || {};
|
||||||
|
var CONFIG = {"hostname":"example.com","root":"/","scheme":"Gemini","version":"7.8.0","exturl":false,"sidebar":{"position":"left","display":"post","padding":18,"offset":12,"onmobile":false},"copycode":{"enable":false,"show_result":false,"style":null},"back2top":{"enable":true,"sidebar":false,"scrollpercent":false},"bookmark":{"enable":false,"color":"#222","save":"auto"},"fancybox":false,"mediumzoom":false,"lazyload":false,"pangu":false,"comments":{"style":"tabs","active":null,"storage":true,"lazyload":false,"nav":null},"algolia":{"hits":{"per_page":10},"labels":{"input_placeholder":"Search for Posts","hits_empty":"We didn't find any results for the search: ${query}","hits_stats":"${hits} results found in ${time} ms"}},"localsearch":{"enable":false,"trigger":"auto","top_n_per_article":1,"unescape":false,"preload":false},"motion":{"enable":true,"async":false,"transition":{"post_block":"fadeIn","post_header":"slideDownIn","post_body":"slideDownIn","coll_header":"slideLeftIn","sidebar":"slideUpIn"}}};
|
||||||
|
</script>
|
||||||
|
|
||||||
|
|
||||||
|
<meta property="og:type" content="article">
|
||||||
|
<meta property="og:title" content="博客留言区">
|
||||||
|
<meta property="og:url" content="http://example.com/2022/06/20/My-First-Blog/index.html">
|
||||||
|
<meta property="og:site_name" content="流量不足ow的个人博客">
|
||||||
|
<meta property="og:locale" content="zh_CN">
|
||||||
|
<meta property="article:published_time" content="2022-06-19T16:00:48.134Z">
|
||||||
|
<meta property="article:modified_time" content="2022-07-09T12:25:59.974Z">
|
||||||
|
<meta property="article:author" content="llbzow">
|
||||||
|
<meta name="twitter:card" content="summary">
|
||||||
|
|
||||||
|
<link rel="canonical" href="http://example.com/2022/06/20/My-First-Blog/">
|
||||||
|
|
||||||
|
|
||||||
|
<script id="page-configurations">
|
||||||
|
// https://hexo.io/docs/variables.html
|
||||||
|
CONFIG.page = {
|
||||||
|
sidebar: "",
|
||||||
|
isHome : false,
|
||||||
|
isPost : true,
|
||||||
|
lang : 'zh-CN'
|
||||||
|
};
|
||||||
|
</script>
|
||||||
|
|
||||||
|
|
||||||
|
<script>
|
||||||
|
(function () {
|
||||||
|
if ('') {
|
||||||
|
if (prompt('请输入文章密码') !== '') {
|
||||||
|
alert('密码错误!');
|
||||||
|
if (history.length === 1) {
|
||||||
|
location.replace("http://blog.llbzow.tk"); // 这里替换成你的首页
|
||||||
|
} else {
|
||||||
|
history.back();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})();
|
||||||
|
</script>
|
||||||
|
<title>博客留言区 | 流量不足ow的个人博客</title>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<noscript>
|
||||||
|
<style>
|
||||||
|
.use-motion .brand,
|
||||||
|
.use-motion .menu-item,
|
||||||
|
.sidebar-inner,
|
||||||
|
.use-motion .post-block,
|
||||||
|
.use-motion .pagination,
|
||||||
|
.use-motion .comments,
|
||||||
|
.use-motion .post-header,
|
||||||
|
.use-motion .post-body,
|
||||||
|
.use-motion .collection-header { opacity: initial; }
|
||||||
|
|
||||||
|
.use-motion .site-title,
|
||||||
|
.use-motion .site-subtitle {
|
||||||
|
opacity: initial;
|
||||||
|
top: initial;
|
||||||
|
}
|
||||||
|
|
||||||
|
.use-motion .logo-line-before i { left: initial; }
|
||||||
|
.use-motion .logo-line-after i { right: initial; }
|
||||||
|
</style>
|
||||||
|
</noscript>
|
||||||
|
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body itemscope itemtype="http://schema.org/WebPage">
|
||||||
|
<div class="container use-motion">
|
||||||
|
<div class="headband"></div>
|
||||||
|
|
||||||
|
<header class="header" itemscope itemtype="http://schema.org/WPHeader">
|
||||||
|
<div class="header-inner"><div class="site-brand-container">
|
||||||
|
<div class="site-nav-toggle">
|
||||||
|
<div class="toggle" aria-label="切换导航栏">
|
||||||
|
<span class="toggle-line toggle-line-first"></span>
|
||||||
|
<span class="toggle-line toggle-line-middle"></span>
|
||||||
|
<span class="toggle-line toggle-line-last"></span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="site-meta">
|
||||||
|
|
||||||
|
<a href="/" class="brand" rel="start">
|
||||||
|
<span class="logo-line-before"><i></i></span>
|
||||||
|
<h1 class="site-title">流量不足ow的个人博客</h1>
|
||||||
|
<span class="logo-line-after"><i></i></span>
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="site-nav-right">
|
||||||
|
<div class="toggle popup-trigger">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<nav class="site-nav">
|
||||||
|
<ul id="menu" class="main-menu menu">
|
||||||
|
<li class="menu-item menu-item-home">
|
||||||
|
|
||||||
|
<a href="/" rel="section"><i class="fa fa-home fa-fw"></i>首页</a>
|
||||||
|
|
||||||
|
</li>
|
||||||
|
<li class="menu-item menu-item-about">
|
||||||
|
|
||||||
|
<a href="/about/" rel="section"><i class="fa fa-user fa-fw"></i>关于</a>
|
||||||
|
|
||||||
|
</li>
|
||||||
|
<li class="menu-item menu-item-tags">
|
||||||
|
|
||||||
|
<a href="/tags/" rel="section"><i class="fa fa-tags fa-fw"></i>标签</a>
|
||||||
|
|
||||||
|
</li>
|
||||||
|
<li class="menu-item menu-item-categories">
|
||||||
|
|
||||||
|
<a href="/categories/" rel="section"><i class="fa fa-th fa-fw"></i>分类</a>
|
||||||
|
|
||||||
|
</li>
|
||||||
|
<li class="menu-item menu-item-archives">
|
||||||
|
|
||||||
|
<a href="/archives/" rel="section"><i class="fa fa-archive fa-fw"></i>归档</a>
|
||||||
|
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</nav>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</header>
|
||||||
|
|
||||||
|
|
||||||
|
<div class="back-to-top">
|
||||||
|
<i class="fa fa-arrow-up"></i>
|
||||||
|
<span>0%</span>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
<main class="main">
|
||||||
|
<div class="main-inner">
|
||||||
|
<div class="content-wrap">
|
||||||
|
|
||||||
|
|
||||||
|
<div class="content post posts-expand">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<article itemscope itemtype="http://schema.org/Article" class="post-block" lang="zh-CN">
|
||||||
|
<link itemprop="mainEntityOfPage" href="http://example.com/2022/06/20/My-First-Blog/">
|
||||||
|
|
||||||
|
<span hidden itemprop="author" itemscope itemtype="http://schema.org/Person">
|
||||||
|
<meta itemprop="image" content="/images/avatar.png">
|
||||||
|
<meta itemprop="name" content="llbzow">
|
||||||
|
<meta itemprop="description" content="">
|
||||||
|
</span>
|
||||||
|
|
||||||
|
<span hidden itemprop="publisher" itemscope itemtype="http://schema.org/Organization">
|
||||||
|
<meta itemprop="name" content="流量不足ow的个人博客">
|
||||||
|
</span>
|
||||||
|
<header class="post-header">
|
||||||
|
<h1 class="post-title" itemprop="name headline">
|
||||||
|
博客留言区
|
||||||
|
</h1>
|
||||||
|
|
||||||
|
<div class="post-meta">
|
||||||
|
<span class="post-meta-item">
|
||||||
|
<span class="post-meta-item-icon">
|
||||||
|
<i class="far fa-calendar"></i>
|
||||||
|
</span>
|
||||||
|
<span class="post-meta-item-text">发表于</span>
|
||||||
|
|
||||||
|
<time title="创建时间:2022-06-20 00:00:48" itemprop="dateCreated datePublished" datetime="2022-06-20T00:00:48+08:00">2022-06-20</time>
|
||||||
|
</span>
|
||||||
|
<span class="post-meta-item">
|
||||||
|
<span class="post-meta-item-icon">
|
||||||
|
<i class="far fa-calendar-check"></i>
|
||||||
|
</span>
|
||||||
|
<span class="post-meta-item-text">更新于</span>
|
||||||
|
<time title="修改时间:2022-07-09 20:25:59" itemprop="dateModified" datetime="2022-07-09T20:25:59+08:00">2022-07-09</time>
|
||||||
|
</span>
|
||||||
|
|
||||||
|
|
||||||
|
<span class="post-meta-item" title="阅读次数" id="busuanzi_container_page_pv" style="display: none;">
|
||||||
|
<span class="post-meta-item-icon">
|
||||||
|
<i class="fa fa-eye"></i>
|
||||||
|
</span>
|
||||||
|
<span class="post-meta-item-text">阅读次数:</span>
|
||||||
|
<span id="busuanzi_value_page_pv"></span>
|
||||||
|
</span>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</header>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<div class="post-body" itemprop="articleBody">
|
||||||
|
|
||||||
|
|
||||||
|
<link rel="stylesheet" href="/css/spoiler.css" type="text/css"><script src="/js/spoiler.js" type="text/javascript" async></script>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<footer class="post-footer">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</footer>
|
||||||
|
|
||||||
|
</article>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="comments" id="gitalk-container"></div>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
window.addEventListener('tabs:register', () => {
|
||||||
|
let { activeClass } = CONFIG.comments;
|
||||||
|
if (CONFIG.comments.storage) {
|
||||||
|
activeClass = localStorage.getItem('comments_active') || activeClass;
|
||||||
|
}
|
||||||
|
if (activeClass) {
|
||||||
|
let activeTab = document.querySelector(`a[href="#comment-${activeClass}"]`);
|
||||||
|
if (activeTab) {
|
||||||
|
activeTab.click();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
if (CONFIG.comments.storage) {
|
||||||
|
window.addEventListener('tabs:click', event => {
|
||||||
|
if (!event.target.matches('.tabs-comment .tab-content .tab-pane')) return;
|
||||||
|
let commentClass = event.target.classList[1];
|
||||||
|
localStorage.setItem('comments_active', commentClass);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
<div class="toggle sidebar-toggle">
|
||||||
|
<span class="toggle-line toggle-line-first"></span>
|
||||||
|
<span class="toggle-line toggle-line-middle"></span>
|
||||||
|
<span class="toggle-line toggle-line-last"></span>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<aside class="sidebar">
|
||||||
|
<div class="sidebar-inner">
|
||||||
|
|
||||||
|
<ul class="sidebar-nav motion-element">
|
||||||
|
<li class="sidebar-nav-toc">
|
||||||
|
文章目录
|
||||||
|
</li>
|
||||||
|
<li class="sidebar-nav-overview">
|
||||||
|
站点概览
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<!--noindex-->
|
||||||
|
<div class="post-toc-wrap sidebar-panel">
|
||||||
|
</div>
|
||||||
|
<!--/noindex-->
|
||||||
|
|
||||||
|
<div class="site-overview-wrap sidebar-panel">
|
||||||
|
<div class="site-author motion-element" itemprop="author" itemscope itemtype="http://schema.org/Person">
|
||||||
|
<img class="site-author-image" itemprop="image" alt="llbzow"
|
||||||
|
src="/images/avatar.png">
|
||||||
|
<p class="site-author-name" itemprop="name">llbzow</p>
|
||||||
|
<div class="site-description" itemprop="description"></div>
|
||||||
|
</div>
|
||||||
|
<div class="site-state-wrap motion-element">
|
||||||
|
<nav class="site-state">
|
||||||
|
<div class="site-state-item site-state-posts">
|
||||||
|
<a href="/archives/">
|
||||||
|
|
||||||
|
<span class="site-state-item-count">1</span>
|
||||||
|
<span class="site-state-item-name">日志</span>
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
</nav>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</aside>
|
||||||
|
<div id="sidebar-dimmer"></div>
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</main>
|
||||||
|
|
||||||
|
<footer class="footer">
|
||||||
|
<div class="footer-inner">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<div class="copyright">
|
||||||
|
|
||||||
|
© 2022-06 –
|
||||||
|
<span itemprop="copyrightYear">2022</span>
|
||||||
|
<span class="with-love">
|
||||||
|
<i class="fa fa-heart"></i>
|
||||||
|
</span>
|
||||||
|
<span class="author" itemprop="copyrightHolder">llbzow</span>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!--
|
||||||
|
<div class="powered-by">由 <a href="https://hexo.io/" class="theme-link" rel="noopener" target="_blank">Hexo</a> & <a href="https://theme-next.org/" class="theme-link" rel="noopener" target="_blank">NexT.Gemini</a> 强力驱动
|
||||||
|
</div>
|
||||||
|
-->
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<div class="busuanzi-count">
|
||||||
|
<script async src="https://busuanzi.ibruce.info/busuanzi/2.3/busuanzi.pure.mini.js"></script>
|
||||||
|
<span class="post-meta-item" id="busuanzi_container_site_uv" style="display: none;">
|
||||||
|
<span class="post-meta-item-icon">
|
||||||
|
<i class="fa fa-user"></i>
|
||||||
|
</span>
|
||||||
|
<span class="site-uv" title="总访客量">
|
||||||
|
<span id="busuanzi_value_site_uv"></span>
|
||||||
|
</span>
|
||||||
|
</span>
|
||||||
|
<span class="post-meta-divider">|</span>
|
||||||
|
<span class="post-meta-item" id="busuanzi_container_site_pv" style="display: none;">
|
||||||
|
<span class="post-meta-item-icon">
|
||||||
|
<i class="fa fa-eye"></i>
|
||||||
|
</span>
|
||||||
|
<span class="site-pv" title="总访问量">
|
||||||
|
<span id="busuanzi_value_site_pv"></span>
|
||||||
|
</span>
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</footer>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<script color='0,0,255' opacity='0.5' zIndex='-1' count='99' src="/lib/canvas-nest/canvas-nest.min.js"></script>
|
||||||
|
<script size="300" alpha="0.6" zIndex="-1" src="/lib/canvas-ribbon/canvas-ribbon.js"></script>
|
||||||
|
<script src="/lib/anime.min.js"></script>
|
||||||
|
<script src="/lib/velocity/velocity.min.js"></script>
|
||||||
|
<script src="/lib/velocity/velocity.ui.min.js"></script>
|
||||||
|
|
||||||
|
<script src="/js/utils.js"></script>
|
||||||
|
|
||||||
|
<script src="/js/motion.js"></script>
|
||||||
|
|
||||||
|
|
||||||
|
<script src="/js/schemes/pisces.js"></script>
|
||||||
|
|
||||||
|
|
||||||
|
<script src="/js/next-boot.js"></script>
|
||||||
|
|
||||||
|
|
||||||
|
<script defer src="/lib/three/three.min.js"></script>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<link rel="stylesheet" href="//cdn.jsdelivr.net/npm/gitalk@1/dist/gitalk.min.css">
|
||||||
|
|
||||||
|
<script>
|
||||||
|
NexT.utils.loadComments(document.querySelector('#gitalk-container'), () => {
|
||||||
|
NexT.utils.getScript('//cdn.jsdelivr.net/npm/gitalk@1/dist/gitalk.min.js', () => {
|
||||||
|
var gitalk = new Gitalk({
|
||||||
|
clientID : '1e2867144d855824b913# GitHub Application Client ID',
|
||||||
|
clientSecret: '3c474768436b020bd64b81c163e40c7ac7e3f1d6# GitHub Application Client Secret',
|
||||||
|
repo : 'BlogComments# Repository name to store issues',
|
||||||
|
owner : 'llbzow# GitHub repo owner',
|
||||||
|
admin : ['llbzow# GitHub repo owner and collaborators, only these guys can initialize gitHub issues'],
|
||||||
|
id : 'c6dfe60858232ede9f9e56a5d5bd3d0f',
|
||||||
|
language: '',
|
||||||
|
distractionFreeMode: true
|
||||||
|
});
|
||||||
|
gitalk.render('gitalk-container');
|
||||||
|
}, window.Gitalk);
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<script src="/live2dw/lib/L2Dwidget.min.js?094cbace49a39548bed64abff5988b05"></script><script>L2Dwidget.init({"pluginRootPath":"live2dw/","pluginJsPath":"lib/","pluginModelPath":"assets/","tagMode":false,"debug":false,"model":{"jsonPath":"/live2dw/assets/koharu.model.json"},"display":{"position":"left","width":250,"height":500},"mobile":{"show":true},"react":{"opacity":0.9},"log":false});</script></body>
|
||||||
|
</html>
|
||||||
397
about/index.html
Normal file
@@ -0,0 +1,397 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="zh-CN">
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8">
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=2">
|
||||||
|
<meta name="theme-color" content="#222">
|
||||||
|
<meta name="generator" content="Hexo 6.2.0">
|
||||||
|
<link rel="apple-touch-icon" sizes="180x180" href="/images/apple-touch-icon-next.png">
|
||||||
|
<link rel="icon" type="image/png" sizes="32x32" href="/images/favicon-32x32-next.png">
|
||||||
|
<link rel="icon" type="image/png" sizes="16x16" href="/images/favicon-16x16-next.png">
|
||||||
|
<link rel="mask-icon" href="/images/logo.svg" color="#222">
|
||||||
|
|
||||||
|
<link rel="stylesheet" href="/css/main.css">
|
||||||
|
|
||||||
|
|
||||||
|
<link rel="stylesheet" href="/lib/font-awesome/css/all.min.css">
|
||||||
|
<link rel="stylesheet" href="/lib/pace/pace-theme-minimal.min.css">
|
||||||
|
<script src="/lib/pace/pace.min.js"></script>
|
||||||
|
|
||||||
|
<script id="hexo-configurations">
|
||||||
|
var NexT = window.NexT || {};
|
||||||
|
var CONFIG = {"hostname":"example.com","root":"/","scheme":"Gemini","version":"7.8.0","exturl":false,"sidebar":{"position":"left","display":"post","padding":18,"offset":12,"onmobile":false},"copycode":{"enable":false,"show_result":false,"style":null},"back2top":{"enable":true,"sidebar":false,"scrollpercent":false},"bookmark":{"enable":false,"color":"#222","save":"auto"},"fancybox":false,"mediumzoom":false,"lazyload":false,"pangu":false,"comments":{"style":"tabs","active":null,"storage":true,"lazyload":false,"nav":null},"algolia":{"hits":{"per_page":10},"labels":{"input_placeholder":"Search for Posts","hits_empty":"We didn't find any results for the search: ${query}","hits_stats":"${hits} results found in ${time} ms"}},"localsearch":{"enable":false,"trigger":"auto","top_n_per_article":1,"unescape":false,"preload":false},"motion":{"enable":true,"async":false,"transition":{"post_block":"fadeIn","post_header":"slideDownIn","post_body":"slideDownIn","coll_header":"slideLeftIn","sidebar":"slideUpIn"}}};
|
||||||
|
</script>
|
||||||
|
|
||||||
|
|
||||||
|
<meta property="og:type" content="website">
|
||||||
|
<meta property="og:title" content="about">
|
||||||
|
<meta property="og:url" content="http://example.com/about/index.html">
|
||||||
|
<meta property="og:site_name" content="流量不足ow的个人博客">
|
||||||
|
<meta property="og:locale" content="zh_CN">
|
||||||
|
<meta property="article:published_time" content="2022-06-19T13:37:08.000Z">
|
||||||
|
<meta property="article:modified_time" content="2022-06-19T13:38:14.299Z">
|
||||||
|
<meta property="article:author" content="llbzow">
|
||||||
|
<meta name="twitter:card" content="summary">
|
||||||
|
|
||||||
|
<link rel="canonical" href="http://example.com/about/">
|
||||||
|
|
||||||
|
|
||||||
|
<script id="page-configurations">
|
||||||
|
// https://hexo.io/docs/variables.html
|
||||||
|
CONFIG.page = {
|
||||||
|
sidebar: "",
|
||||||
|
isHome : false,
|
||||||
|
isPost : false,
|
||||||
|
lang : 'zh-CN'
|
||||||
|
};
|
||||||
|
</script>
|
||||||
|
|
||||||
|
|
||||||
|
<script>
|
||||||
|
(function () {
|
||||||
|
if ('') {
|
||||||
|
if (prompt('请输入文章密码') !== '') {
|
||||||
|
alert('密码错误!');
|
||||||
|
if (history.length === 1) {
|
||||||
|
location.replace("http://blog.llbzow.tk"); // 这里替换成你的首页
|
||||||
|
} else {
|
||||||
|
history.back();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})();
|
||||||
|
</script>
|
||||||
|
<title>about | 流量不足ow的个人博客
|
||||||
|
</title>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<noscript>
|
||||||
|
<style>
|
||||||
|
.use-motion .brand,
|
||||||
|
.use-motion .menu-item,
|
||||||
|
.sidebar-inner,
|
||||||
|
.use-motion .post-block,
|
||||||
|
.use-motion .pagination,
|
||||||
|
.use-motion .comments,
|
||||||
|
.use-motion .post-header,
|
||||||
|
.use-motion .post-body,
|
||||||
|
.use-motion .collection-header { opacity: initial; }
|
||||||
|
|
||||||
|
.use-motion .site-title,
|
||||||
|
.use-motion .site-subtitle {
|
||||||
|
opacity: initial;
|
||||||
|
top: initial;
|
||||||
|
}
|
||||||
|
|
||||||
|
.use-motion .logo-line-before i { left: initial; }
|
||||||
|
.use-motion .logo-line-after i { right: initial; }
|
||||||
|
</style>
|
||||||
|
</noscript>
|
||||||
|
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body itemscope itemtype="http://schema.org/WebPage">
|
||||||
|
<div class="container use-motion">
|
||||||
|
<div class="headband"></div>
|
||||||
|
|
||||||
|
<header class="header" itemscope itemtype="http://schema.org/WPHeader">
|
||||||
|
<div class="header-inner"><div class="site-brand-container">
|
||||||
|
<div class="site-nav-toggle">
|
||||||
|
<div class="toggle" aria-label="切换导航栏">
|
||||||
|
<span class="toggle-line toggle-line-first"></span>
|
||||||
|
<span class="toggle-line toggle-line-middle"></span>
|
||||||
|
<span class="toggle-line toggle-line-last"></span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="site-meta">
|
||||||
|
|
||||||
|
<a href="/" class="brand" rel="start">
|
||||||
|
<span class="logo-line-before"><i></i></span>
|
||||||
|
<h1 class="site-title">流量不足ow的个人博客</h1>
|
||||||
|
<span class="logo-line-after"><i></i></span>
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="site-nav-right">
|
||||||
|
<div class="toggle popup-trigger">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<nav class="site-nav">
|
||||||
|
<ul id="menu" class="main-menu menu">
|
||||||
|
<li class="menu-item menu-item-home">
|
||||||
|
|
||||||
|
<a href="/" rel="section"><i class="fa fa-home fa-fw"></i>首页</a>
|
||||||
|
|
||||||
|
</li>
|
||||||
|
<li class="menu-item menu-item-about">
|
||||||
|
|
||||||
|
<a href="/about/" rel="section"><i class="fa fa-user fa-fw"></i>关于</a>
|
||||||
|
|
||||||
|
</li>
|
||||||
|
<li class="menu-item menu-item-tags">
|
||||||
|
|
||||||
|
<a href="/tags/" rel="section"><i class="fa fa-tags fa-fw"></i>标签</a>
|
||||||
|
|
||||||
|
</li>
|
||||||
|
<li class="menu-item menu-item-categories">
|
||||||
|
|
||||||
|
<a href="/categories/" rel="section"><i class="fa fa-th fa-fw"></i>分类</a>
|
||||||
|
|
||||||
|
</li>
|
||||||
|
<li class="menu-item menu-item-archives">
|
||||||
|
|
||||||
|
<a href="/archives/" rel="section"><i class="fa fa-archive fa-fw"></i>归档</a>
|
||||||
|
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</nav>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</header>
|
||||||
|
|
||||||
|
|
||||||
|
<div class="back-to-top">
|
||||||
|
<i class="fa fa-arrow-up"></i>
|
||||||
|
<span>0%</span>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
<main class="main">
|
||||||
|
<div class="main-inner">
|
||||||
|
<div class="content-wrap">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<div class="content page posts-expand">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<div class="post-block" lang="zh-CN">
|
||||||
|
<header class="post-header">
|
||||||
|
|
||||||
|
<h1 class="post-title" itemprop="name headline">about
|
||||||
|
</h1>
|
||||||
|
|
||||||
|
<div class="post-meta">
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</header>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<div class="post-body">
|
||||||
|
<link rel="stylesheet" href="/css/spoiler.css" type="text/css"><script src="/js/spoiler.js" type="text/javascript" async></script>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
<script>
|
||||||
|
window.addEventListener('tabs:register', () => {
|
||||||
|
let { activeClass } = CONFIG.comments;
|
||||||
|
if (CONFIG.comments.storage) {
|
||||||
|
activeClass = localStorage.getItem('comments_active') || activeClass;
|
||||||
|
}
|
||||||
|
if (activeClass) {
|
||||||
|
let activeTab = document.querySelector(`a[href="#comment-${activeClass}"]`);
|
||||||
|
if (activeTab) {
|
||||||
|
activeTab.click();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
if (CONFIG.comments.storage) {
|
||||||
|
window.addEventListener('tabs:click', event => {
|
||||||
|
if (!event.target.matches('.tabs-comment .tab-content .tab-pane')) return;
|
||||||
|
let commentClass = event.target.classList[1];
|
||||||
|
localStorage.setItem('comments_active', commentClass);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
<div class="toggle sidebar-toggle">
|
||||||
|
<span class="toggle-line toggle-line-first"></span>
|
||||||
|
<span class="toggle-line toggle-line-middle"></span>
|
||||||
|
<span class="toggle-line toggle-line-last"></span>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<aside class="sidebar">
|
||||||
|
<div class="sidebar-inner">
|
||||||
|
|
||||||
|
<ul class="sidebar-nav motion-element">
|
||||||
|
<li class="sidebar-nav-toc">
|
||||||
|
文章目录
|
||||||
|
</li>
|
||||||
|
<li class="sidebar-nav-overview">
|
||||||
|
站点概览
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<!--noindex-->
|
||||||
|
<div class="post-toc-wrap sidebar-panel">
|
||||||
|
</div>
|
||||||
|
<!--/noindex-->
|
||||||
|
|
||||||
|
<div class="site-overview-wrap sidebar-panel">
|
||||||
|
<div class="site-author motion-element" itemprop="author" itemscope itemtype="http://schema.org/Person">
|
||||||
|
<img class="site-author-image" itemprop="image" alt="llbzow"
|
||||||
|
src="/images/avatar.png">
|
||||||
|
<p class="site-author-name" itemprop="name">llbzow</p>
|
||||||
|
<div class="site-description" itemprop="description"></div>
|
||||||
|
</div>
|
||||||
|
<div class="site-state-wrap motion-element">
|
||||||
|
<nav class="site-state">
|
||||||
|
<div class="site-state-item site-state-posts">
|
||||||
|
<a href="/archives/">
|
||||||
|
|
||||||
|
<span class="site-state-item-count">1</span>
|
||||||
|
<span class="site-state-item-name">日志</span>
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
</nav>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</aside>
|
||||||
|
<div id="sidebar-dimmer"></div>
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</main>
|
||||||
|
|
||||||
|
<footer class="footer">
|
||||||
|
<div class="footer-inner">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<div class="copyright">
|
||||||
|
|
||||||
|
© 2022-06 –
|
||||||
|
<span itemprop="copyrightYear">2022</span>
|
||||||
|
<span class="with-love">
|
||||||
|
<i class="fa fa-heart"></i>
|
||||||
|
</span>
|
||||||
|
<span class="author" itemprop="copyrightHolder">llbzow</span>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!--
|
||||||
|
<div class="powered-by">由 <a href="https://hexo.io/" class="theme-link" rel="noopener" target="_blank">Hexo</a> & <a href="https://theme-next.org/" class="theme-link" rel="noopener" target="_blank">NexT.Gemini</a> 强力驱动
|
||||||
|
</div>
|
||||||
|
-->
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<div class="busuanzi-count">
|
||||||
|
<script async src="https://busuanzi.ibruce.info/busuanzi/2.3/busuanzi.pure.mini.js"></script>
|
||||||
|
<span class="post-meta-item" id="busuanzi_container_site_uv" style="display: none;">
|
||||||
|
<span class="post-meta-item-icon">
|
||||||
|
<i class="fa fa-user"></i>
|
||||||
|
</span>
|
||||||
|
<span class="site-uv" title="总访客量">
|
||||||
|
<span id="busuanzi_value_site_uv"></span>
|
||||||
|
</span>
|
||||||
|
</span>
|
||||||
|
<span class="post-meta-divider">|</span>
|
||||||
|
<span class="post-meta-item" id="busuanzi_container_site_pv" style="display: none;">
|
||||||
|
<span class="post-meta-item-icon">
|
||||||
|
<i class="fa fa-eye"></i>
|
||||||
|
</span>
|
||||||
|
<span class="site-pv" title="总访问量">
|
||||||
|
<span id="busuanzi_value_site_pv"></span>
|
||||||
|
</span>
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</footer>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<script color='0,0,255' opacity='0.5' zIndex='-1' count='99' src="/lib/canvas-nest/canvas-nest.min.js"></script>
|
||||||
|
<script size="300" alpha="0.6" zIndex="-1" src="/lib/canvas-ribbon/canvas-ribbon.js"></script>
|
||||||
|
<script src="/lib/anime.min.js"></script>
|
||||||
|
<script src="/lib/velocity/velocity.min.js"></script>
|
||||||
|
<script src="/lib/velocity/velocity.ui.min.js"></script>
|
||||||
|
|
||||||
|
<script src="/js/utils.js"></script>
|
||||||
|
|
||||||
|
<script src="/js/motion.js"></script>
|
||||||
|
|
||||||
|
|
||||||
|
<script src="/js/schemes/pisces.js"></script>
|
||||||
|
|
||||||
|
|
||||||
|
<script src="/js/next-boot.js"></script>
|
||||||
|
|
||||||
|
|
||||||
|
<script defer src="/lib/three/three.min.js"></script>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<script src="/live2dw/lib/L2Dwidget.min.js?094cbace49a39548bed64abff5988b05"></script><script>L2Dwidget.init({"pluginRootPath":"live2dw/","pluginJsPath":"lib/","pluginModelPath":"assets/","tagMode":false,"debug":false,"model":{"jsonPath":"/live2dw/assets/koharu.model.json"},"display":{"position":"left","width":250,"height":500},"mobile":{"show":true},"react":{"opacity":0.9},"log":false});</script></body>
|
||||||
|
</html>
|
||||||
404
archives/2022/06/index.html
Normal file
@@ -0,0 +1,404 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="zh-CN">
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8">
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=2">
|
||||||
|
<meta name="theme-color" content="#222">
|
||||||
|
<meta name="generator" content="Hexo 6.2.0">
|
||||||
|
<link rel="apple-touch-icon" sizes="180x180" href="/images/apple-touch-icon-next.png">
|
||||||
|
<link rel="icon" type="image/png" sizes="32x32" href="/images/favicon-32x32-next.png">
|
||||||
|
<link rel="icon" type="image/png" sizes="16x16" href="/images/favicon-16x16-next.png">
|
||||||
|
<link rel="mask-icon" href="/images/logo.svg" color="#222">
|
||||||
|
|
||||||
|
<link rel="stylesheet" href="/css/main.css">
|
||||||
|
|
||||||
|
|
||||||
|
<link rel="stylesheet" href="/lib/font-awesome/css/all.min.css">
|
||||||
|
<link rel="stylesheet" href="/lib/pace/pace-theme-minimal.min.css">
|
||||||
|
<script src="/lib/pace/pace.min.js"></script>
|
||||||
|
|
||||||
|
<script id="hexo-configurations">
|
||||||
|
var NexT = window.NexT || {};
|
||||||
|
var CONFIG = {"hostname":"example.com","root":"/","scheme":"Gemini","version":"7.8.0","exturl":false,"sidebar":{"position":"left","display":"post","padding":18,"offset":12,"onmobile":false},"copycode":{"enable":false,"show_result":false,"style":null},"back2top":{"enable":true,"sidebar":false,"scrollpercent":false},"bookmark":{"enable":false,"color":"#222","save":"auto"},"fancybox":false,"mediumzoom":false,"lazyload":false,"pangu":false,"comments":{"style":"tabs","active":null,"storage":true,"lazyload":false,"nav":null},"algolia":{"hits":{"per_page":10},"labels":{"input_placeholder":"Search for Posts","hits_empty":"We didn't find any results for the search: ${query}","hits_stats":"${hits} results found in ${time} ms"}},"localsearch":{"enable":false,"trigger":"auto","top_n_per_article":1,"unescape":false,"preload":false},"motion":{"enable":true,"async":false,"transition":{"post_block":"fadeIn","post_header":"slideDownIn","post_body":"slideDownIn","coll_header":"slideLeftIn","sidebar":"slideUpIn"}}};
|
||||||
|
</script>
|
||||||
|
|
||||||
|
|
||||||
|
<meta property="og:type" content="website">
|
||||||
|
<meta property="og:title" content="流量不足ow的个人博客">
|
||||||
|
<meta property="og:url" content="http://example.com/archives/2022/06/index.html">
|
||||||
|
<meta property="og:site_name" content="流量不足ow的个人博客">
|
||||||
|
<meta property="og:locale" content="zh_CN">
|
||||||
|
<meta property="article:author" content="llbzow">
|
||||||
|
<meta name="twitter:card" content="summary">
|
||||||
|
|
||||||
|
<link rel="canonical" href="http://example.com/archives/2022/06/">
|
||||||
|
|
||||||
|
|
||||||
|
<script id="page-configurations">
|
||||||
|
// https://hexo.io/docs/variables.html
|
||||||
|
CONFIG.page = {
|
||||||
|
sidebar: "",
|
||||||
|
isHome : false,
|
||||||
|
isPost : false,
|
||||||
|
lang : 'zh-CN'
|
||||||
|
};
|
||||||
|
</script>
|
||||||
|
|
||||||
|
|
||||||
|
<script>
|
||||||
|
(function () {
|
||||||
|
if ('') {
|
||||||
|
if (prompt('请输入文章密码') !== '') {
|
||||||
|
alert('密码错误!');
|
||||||
|
if (history.length === 1) {
|
||||||
|
location.replace("http://blog.llbzow.tk"); // 这里替换成你的首页
|
||||||
|
} else {
|
||||||
|
history.back();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})();
|
||||||
|
</script>
|
||||||
|
<title>归档 | 流量不足ow的个人博客</title>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<noscript>
|
||||||
|
<style>
|
||||||
|
.use-motion .brand,
|
||||||
|
.use-motion .menu-item,
|
||||||
|
.sidebar-inner,
|
||||||
|
.use-motion .post-block,
|
||||||
|
.use-motion .pagination,
|
||||||
|
.use-motion .comments,
|
||||||
|
.use-motion .post-header,
|
||||||
|
.use-motion .post-body,
|
||||||
|
.use-motion .collection-header { opacity: initial; }
|
||||||
|
|
||||||
|
.use-motion .site-title,
|
||||||
|
.use-motion .site-subtitle {
|
||||||
|
opacity: initial;
|
||||||
|
top: initial;
|
||||||
|
}
|
||||||
|
|
||||||
|
.use-motion .logo-line-before i { left: initial; }
|
||||||
|
.use-motion .logo-line-after i { right: initial; }
|
||||||
|
</style>
|
||||||
|
</noscript>
|
||||||
|
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body itemscope itemtype="http://schema.org/WebPage">
|
||||||
|
<div class="container use-motion">
|
||||||
|
<div class="headband"></div>
|
||||||
|
|
||||||
|
<header class="header" itemscope itemtype="http://schema.org/WPHeader">
|
||||||
|
<div class="header-inner"><div class="site-brand-container">
|
||||||
|
<div class="site-nav-toggle">
|
||||||
|
<div class="toggle" aria-label="切换导航栏">
|
||||||
|
<span class="toggle-line toggle-line-first"></span>
|
||||||
|
<span class="toggle-line toggle-line-middle"></span>
|
||||||
|
<span class="toggle-line toggle-line-last"></span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="site-meta">
|
||||||
|
|
||||||
|
<a href="/" class="brand" rel="start">
|
||||||
|
<span class="logo-line-before"><i></i></span>
|
||||||
|
<h1 class="site-title">流量不足ow的个人博客</h1>
|
||||||
|
<span class="logo-line-after"><i></i></span>
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="site-nav-right">
|
||||||
|
<div class="toggle popup-trigger">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<nav class="site-nav">
|
||||||
|
<ul id="menu" class="main-menu menu">
|
||||||
|
<li class="menu-item menu-item-home">
|
||||||
|
|
||||||
|
<a href="/" rel="section"><i class="fa fa-home fa-fw"></i>首页</a>
|
||||||
|
|
||||||
|
</li>
|
||||||
|
<li class="menu-item menu-item-about">
|
||||||
|
|
||||||
|
<a href="/about/" rel="section"><i class="fa fa-user fa-fw"></i>关于</a>
|
||||||
|
|
||||||
|
</li>
|
||||||
|
<li class="menu-item menu-item-tags">
|
||||||
|
|
||||||
|
<a href="/tags/" rel="section"><i class="fa fa-tags fa-fw"></i>标签</a>
|
||||||
|
|
||||||
|
</li>
|
||||||
|
<li class="menu-item menu-item-categories">
|
||||||
|
|
||||||
|
<a href="/categories/" rel="section"><i class="fa fa-th fa-fw"></i>分类</a>
|
||||||
|
|
||||||
|
</li>
|
||||||
|
<li class="menu-item menu-item-archives">
|
||||||
|
|
||||||
|
<a href="/archives/" rel="section"><i class="fa fa-archive fa-fw"></i>归档</a>
|
||||||
|
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</nav>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</header>
|
||||||
|
|
||||||
|
|
||||||
|
<div class="back-to-top">
|
||||||
|
<i class="fa fa-arrow-up"></i>
|
||||||
|
<span>0%</span>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
<main class="main">
|
||||||
|
<div class="main-inner">
|
||||||
|
<div class="content-wrap">
|
||||||
|
|
||||||
|
|
||||||
|
<div class="content archive">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<div class="post-block">
|
||||||
|
<div class="posts-collapse">
|
||||||
|
<div class="collection-title">
|
||||||
|
<span class="collection-header">嗯..! 目前共计 1 篇日志。 继续努力。</span>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
<div class="collection-year">
|
||||||
|
<span class="collection-header">2022</span>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<article itemscope itemtype="http://schema.org/Article">
|
||||||
|
<header class="post-header">
|
||||||
|
|
||||||
|
<div class="post-meta">
|
||||||
|
<time itemprop="dateCreated"
|
||||||
|
datetime="2022-06-20T00:00:48+08:00"
|
||||||
|
content="2022-06-20">
|
||||||
|
06-20
|
||||||
|
</time>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="post-title">
|
||||||
|
<a class="post-title-link" href="/2022/06/20/My-First-Blog/" itemprop="url">
|
||||||
|
<span itemprop="name">博客留言区</span>
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</header>
|
||||||
|
</article>
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
<script>
|
||||||
|
window.addEventListener('tabs:register', () => {
|
||||||
|
let { activeClass } = CONFIG.comments;
|
||||||
|
if (CONFIG.comments.storage) {
|
||||||
|
activeClass = localStorage.getItem('comments_active') || activeClass;
|
||||||
|
}
|
||||||
|
if (activeClass) {
|
||||||
|
let activeTab = document.querySelector(`a[href="#comment-${activeClass}"]`);
|
||||||
|
if (activeTab) {
|
||||||
|
activeTab.click();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
if (CONFIG.comments.storage) {
|
||||||
|
window.addEventListener('tabs:click', event => {
|
||||||
|
if (!event.target.matches('.tabs-comment .tab-content .tab-pane')) return;
|
||||||
|
let commentClass = event.target.classList[1];
|
||||||
|
localStorage.setItem('comments_active', commentClass);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
<div class="toggle sidebar-toggle">
|
||||||
|
<span class="toggle-line toggle-line-first"></span>
|
||||||
|
<span class="toggle-line toggle-line-middle"></span>
|
||||||
|
<span class="toggle-line toggle-line-last"></span>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<aside class="sidebar">
|
||||||
|
<div class="sidebar-inner">
|
||||||
|
|
||||||
|
<ul class="sidebar-nav motion-element">
|
||||||
|
<li class="sidebar-nav-toc">
|
||||||
|
文章目录
|
||||||
|
</li>
|
||||||
|
<li class="sidebar-nav-overview">
|
||||||
|
站点概览
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<!--noindex-->
|
||||||
|
<div class="post-toc-wrap sidebar-panel">
|
||||||
|
</div>
|
||||||
|
<!--/noindex-->
|
||||||
|
|
||||||
|
<div class="site-overview-wrap sidebar-panel">
|
||||||
|
<div class="site-author motion-element" itemprop="author" itemscope itemtype="http://schema.org/Person">
|
||||||
|
<img class="site-author-image" itemprop="image" alt="llbzow"
|
||||||
|
src="/images/avatar.png">
|
||||||
|
<p class="site-author-name" itemprop="name">llbzow</p>
|
||||||
|
<div class="site-description" itemprop="description"></div>
|
||||||
|
</div>
|
||||||
|
<div class="site-state-wrap motion-element">
|
||||||
|
<nav class="site-state">
|
||||||
|
<div class="site-state-item site-state-posts">
|
||||||
|
<a href="/archives/">
|
||||||
|
|
||||||
|
<span class="site-state-item-count">1</span>
|
||||||
|
<span class="site-state-item-name">日志</span>
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
</nav>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</aside>
|
||||||
|
<div id="sidebar-dimmer"></div>
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</main>
|
||||||
|
|
||||||
|
<footer class="footer">
|
||||||
|
<div class="footer-inner">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<div class="copyright">
|
||||||
|
|
||||||
|
© 2022-06 –
|
||||||
|
<span itemprop="copyrightYear">2022</span>
|
||||||
|
<span class="with-love">
|
||||||
|
<i class="fa fa-heart"></i>
|
||||||
|
</span>
|
||||||
|
<span class="author" itemprop="copyrightHolder">llbzow</span>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!--
|
||||||
|
<div class="powered-by">由 <a href="https://hexo.io/" class="theme-link" rel="noopener" target="_blank">Hexo</a> & <a href="https://theme-next.org/" class="theme-link" rel="noopener" target="_blank">NexT.Gemini</a> 强力驱动
|
||||||
|
</div>
|
||||||
|
-->
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<div class="busuanzi-count">
|
||||||
|
<script async src="https://busuanzi.ibruce.info/busuanzi/2.3/busuanzi.pure.mini.js"></script>
|
||||||
|
<span class="post-meta-item" id="busuanzi_container_site_uv" style="display: none;">
|
||||||
|
<span class="post-meta-item-icon">
|
||||||
|
<i class="fa fa-user"></i>
|
||||||
|
</span>
|
||||||
|
<span class="site-uv" title="总访客量">
|
||||||
|
<span id="busuanzi_value_site_uv"></span>
|
||||||
|
</span>
|
||||||
|
</span>
|
||||||
|
<span class="post-meta-divider">|</span>
|
||||||
|
<span class="post-meta-item" id="busuanzi_container_site_pv" style="display: none;">
|
||||||
|
<span class="post-meta-item-icon">
|
||||||
|
<i class="fa fa-eye"></i>
|
||||||
|
</span>
|
||||||
|
<span class="site-pv" title="总访问量">
|
||||||
|
<span id="busuanzi_value_site_pv"></span>
|
||||||
|
</span>
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</footer>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<script color='0,0,255' opacity='0.5' zIndex='-1' count='99' src="/lib/canvas-nest/canvas-nest.min.js"></script>
|
||||||
|
<script size="300" alpha="0.6" zIndex="-1" src="/lib/canvas-ribbon/canvas-ribbon.js"></script>
|
||||||
|
<script src="/lib/anime.min.js"></script>
|
||||||
|
<script src="/lib/velocity/velocity.min.js"></script>
|
||||||
|
<script src="/lib/velocity/velocity.ui.min.js"></script>
|
||||||
|
|
||||||
|
<script src="/js/utils.js"></script>
|
||||||
|
|
||||||
|
<script src="/js/motion.js"></script>
|
||||||
|
|
||||||
|
|
||||||
|
<script src="/js/schemes/pisces.js"></script>
|
||||||
|
|
||||||
|
|
||||||
|
<script src="/js/next-boot.js"></script>
|
||||||
|
|
||||||
|
|
||||||
|
<script defer src="/lib/three/three.min.js"></script>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<script src="/live2dw/lib/L2Dwidget.min.js?094cbace49a39548bed64abff5988b05"></script><script>L2Dwidget.init({"pluginRootPath":"live2dw/","pluginJsPath":"lib/","pluginModelPath":"assets/","tagMode":false,"debug":false,"model":{"jsonPath":"/live2dw/assets/koharu.model.json"},"display":{"position":"left","width":250,"height":500},"mobile":{"show":true},"react":{"opacity":0.9},"log":false});</script></body>
|
||||||
|
</html>
|
||||||
404
archives/2022/index.html
Normal file
@@ -0,0 +1,404 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="zh-CN">
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8">
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=2">
|
||||||
|
<meta name="theme-color" content="#222">
|
||||||
|
<meta name="generator" content="Hexo 6.2.0">
|
||||||
|
<link rel="apple-touch-icon" sizes="180x180" href="/images/apple-touch-icon-next.png">
|
||||||
|
<link rel="icon" type="image/png" sizes="32x32" href="/images/favicon-32x32-next.png">
|
||||||
|
<link rel="icon" type="image/png" sizes="16x16" href="/images/favicon-16x16-next.png">
|
||||||
|
<link rel="mask-icon" href="/images/logo.svg" color="#222">
|
||||||
|
|
||||||
|
<link rel="stylesheet" href="/css/main.css">
|
||||||
|
|
||||||
|
|
||||||
|
<link rel="stylesheet" href="/lib/font-awesome/css/all.min.css">
|
||||||
|
<link rel="stylesheet" href="/lib/pace/pace-theme-minimal.min.css">
|
||||||
|
<script src="/lib/pace/pace.min.js"></script>
|
||||||
|
|
||||||
|
<script id="hexo-configurations">
|
||||||
|
var NexT = window.NexT || {};
|
||||||
|
var CONFIG = {"hostname":"example.com","root":"/","scheme":"Gemini","version":"7.8.0","exturl":false,"sidebar":{"position":"left","display":"post","padding":18,"offset":12,"onmobile":false},"copycode":{"enable":false,"show_result":false,"style":null},"back2top":{"enable":true,"sidebar":false,"scrollpercent":false},"bookmark":{"enable":false,"color":"#222","save":"auto"},"fancybox":false,"mediumzoom":false,"lazyload":false,"pangu":false,"comments":{"style":"tabs","active":null,"storage":true,"lazyload":false,"nav":null},"algolia":{"hits":{"per_page":10},"labels":{"input_placeholder":"Search for Posts","hits_empty":"We didn't find any results for the search: ${query}","hits_stats":"${hits} results found in ${time} ms"}},"localsearch":{"enable":false,"trigger":"auto","top_n_per_article":1,"unescape":false,"preload":false},"motion":{"enable":true,"async":false,"transition":{"post_block":"fadeIn","post_header":"slideDownIn","post_body":"slideDownIn","coll_header":"slideLeftIn","sidebar":"slideUpIn"}}};
|
||||||
|
</script>
|
||||||
|
|
||||||
|
|
||||||
|
<meta property="og:type" content="website">
|
||||||
|
<meta property="og:title" content="流量不足ow的个人博客">
|
||||||
|
<meta property="og:url" content="http://example.com/archives/2022/index.html">
|
||||||
|
<meta property="og:site_name" content="流量不足ow的个人博客">
|
||||||
|
<meta property="og:locale" content="zh_CN">
|
||||||
|
<meta property="article:author" content="llbzow">
|
||||||
|
<meta name="twitter:card" content="summary">
|
||||||
|
|
||||||
|
<link rel="canonical" href="http://example.com/archives/2022/">
|
||||||
|
|
||||||
|
|
||||||
|
<script id="page-configurations">
|
||||||
|
// https://hexo.io/docs/variables.html
|
||||||
|
CONFIG.page = {
|
||||||
|
sidebar: "",
|
||||||
|
isHome : false,
|
||||||
|
isPost : false,
|
||||||
|
lang : 'zh-CN'
|
||||||
|
};
|
||||||
|
</script>
|
||||||
|
|
||||||
|
|
||||||
|
<script>
|
||||||
|
(function () {
|
||||||
|
if ('') {
|
||||||
|
if (prompt('请输入文章密码') !== '') {
|
||||||
|
alert('密码错误!');
|
||||||
|
if (history.length === 1) {
|
||||||
|
location.replace("http://blog.llbzow.tk"); // 这里替换成你的首页
|
||||||
|
} else {
|
||||||
|
history.back();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})();
|
||||||
|
</script>
|
||||||
|
<title>归档 | 流量不足ow的个人博客</title>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<noscript>
|
||||||
|
<style>
|
||||||
|
.use-motion .brand,
|
||||||
|
.use-motion .menu-item,
|
||||||
|
.sidebar-inner,
|
||||||
|
.use-motion .post-block,
|
||||||
|
.use-motion .pagination,
|
||||||
|
.use-motion .comments,
|
||||||
|
.use-motion .post-header,
|
||||||
|
.use-motion .post-body,
|
||||||
|
.use-motion .collection-header { opacity: initial; }
|
||||||
|
|
||||||
|
.use-motion .site-title,
|
||||||
|
.use-motion .site-subtitle {
|
||||||
|
opacity: initial;
|
||||||
|
top: initial;
|
||||||
|
}
|
||||||
|
|
||||||
|
.use-motion .logo-line-before i { left: initial; }
|
||||||
|
.use-motion .logo-line-after i { right: initial; }
|
||||||
|
</style>
|
||||||
|
</noscript>
|
||||||
|
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body itemscope itemtype="http://schema.org/WebPage">
|
||||||
|
<div class="container use-motion">
|
||||||
|
<div class="headband"></div>
|
||||||
|
|
||||||
|
<header class="header" itemscope itemtype="http://schema.org/WPHeader">
|
||||||
|
<div class="header-inner"><div class="site-brand-container">
|
||||||
|
<div class="site-nav-toggle">
|
||||||
|
<div class="toggle" aria-label="切换导航栏">
|
||||||
|
<span class="toggle-line toggle-line-first"></span>
|
||||||
|
<span class="toggle-line toggle-line-middle"></span>
|
||||||
|
<span class="toggle-line toggle-line-last"></span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="site-meta">
|
||||||
|
|
||||||
|
<a href="/" class="brand" rel="start">
|
||||||
|
<span class="logo-line-before"><i></i></span>
|
||||||
|
<h1 class="site-title">流量不足ow的个人博客</h1>
|
||||||
|
<span class="logo-line-after"><i></i></span>
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="site-nav-right">
|
||||||
|
<div class="toggle popup-trigger">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<nav class="site-nav">
|
||||||
|
<ul id="menu" class="main-menu menu">
|
||||||
|
<li class="menu-item menu-item-home">
|
||||||
|
|
||||||
|
<a href="/" rel="section"><i class="fa fa-home fa-fw"></i>首页</a>
|
||||||
|
|
||||||
|
</li>
|
||||||
|
<li class="menu-item menu-item-about">
|
||||||
|
|
||||||
|
<a href="/about/" rel="section"><i class="fa fa-user fa-fw"></i>关于</a>
|
||||||
|
|
||||||
|
</li>
|
||||||
|
<li class="menu-item menu-item-tags">
|
||||||
|
|
||||||
|
<a href="/tags/" rel="section"><i class="fa fa-tags fa-fw"></i>标签</a>
|
||||||
|
|
||||||
|
</li>
|
||||||
|
<li class="menu-item menu-item-categories">
|
||||||
|
|
||||||
|
<a href="/categories/" rel="section"><i class="fa fa-th fa-fw"></i>分类</a>
|
||||||
|
|
||||||
|
</li>
|
||||||
|
<li class="menu-item menu-item-archives">
|
||||||
|
|
||||||
|
<a href="/archives/" rel="section"><i class="fa fa-archive fa-fw"></i>归档</a>
|
||||||
|
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</nav>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</header>
|
||||||
|
|
||||||
|
|
||||||
|
<div class="back-to-top">
|
||||||
|
<i class="fa fa-arrow-up"></i>
|
||||||
|
<span>0%</span>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
<main class="main">
|
||||||
|
<div class="main-inner">
|
||||||
|
<div class="content-wrap">
|
||||||
|
|
||||||
|
|
||||||
|
<div class="content archive">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<div class="post-block">
|
||||||
|
<div class="posts-collapse">
|
||||||
|
<div class="collection-title">
|
||||||
|
<span class="collection-header">嗯..! 目前共计 1 篇日志。 继续努力。</span>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
<div class="collection-year">
|
||||||
|
<span class="collection-header">2022</span>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<article itemscope itemtype="http://schema.org/Article">
|
||||||
|
<header class="post-header">
|
||||||
|
|
||||||
|
<div class="post-meta">
|
||||||
|
<time itemprop="dateCreated"
|
||||||
|
datetime="2022-06-20T00:00:48+08:00"
|
||||||
|
content="2022-06-20">
|
||||||
|
06-20
|
||||||
|
</time>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="post-title">
|
||||||
|
<a class="post-title-link" href="/2022/06/20/My-First-Blog/" itemprop="url">
|
||||||
|
<span itemprop="name">博客留言区</span>
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</header>
|
||||||
|
</article>
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
<script>
|
||||||
|
window.addEventListener('tabs:register', () => {
|
||||||
|
let { activeClass } = CONFIG.comments;
|
||||||
|
if (CONFIG.comments.storage) {
|
||||||
|
activeClass = localStorage.getItem('comments_active') || activeClass;
|
||||||
|
}
|
||||||
|
if (activeClass) {
|
||||||
|
let activeTab = document.querySelector(`a[href="#comment-${activeClass}"]`);
|
||||||
|
if (activeTab) {
|
||||||
|
activeTab.click();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
if (CONFIG.comments.storage) {
|
||||||
|
window.addEventListener('tabs:click', event => {
|
||||||
|
if (!event.target.matches('.tabs-comment .tab-content .tab-pane')) return;
|
||||||
|
let commentClass = event.target.classList[1];
|
||||||
|
localStorage.setItem('comments_active', commentClass);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
<div class="toggle sidebar-toggle">
|
||||||
|
<span class="toggle-line toggle-line-first"></span>
|
||||||
|
<span class="toggle-line toggle-line-middle"></span>
|
||||||
|
<span class="toggle-line toggle-line-last"></span>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<aside class="sidebar">
|
||||||
|
<div class="sidebar-inner">
|
||||||
|
|
||||||
|
<ul class="sidebar-nav motion-element">
|
||||||
|
<li class="sidebar-nav-toc">
|
||||||
|
文章目录
|
||||||
|
</li>
|
||||||
|
<li class="sidebar-nav-overview">
|
||||||
|
站点概览
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<!--noindex-->
|
||||||
|
<div class="post-toc-wrap sidebar-panel">
|
||||||
|
</div>
|
||||||
|
<!--/noindex-->
|
||||||
|
|
||||||
|
<div class="site-overview-wrap sidebar-panel">
|
||||||
|
<div class="site-author motion-element" itemprop="author" itemscope itemtype="http://schema.org/Person">
|
||||||
|
<img class="site-author-image" itemprop="image" alt="llbzow"
|
||||||
|
src="/images/avatar.png">
|
||||||
|
<p class="site-author-name" itemprop="name">llbzow</p>
|
||||||
|
<div class="site-description" itemprop="description"></div>
|
||||||
|
</div>
|
||||||
|
<div class="site-state-wrap motion-element">
|
||||||
|
<nav class="site-state">
|
||||||
|
<div class="site-state-item site-state-posts">
|
||||||
|
<a href="/archives/">
|
||||||
|
|
||||||
|
<span class="site-state-item-count">1</span>
|
||||||
|
<span class="site-state-item-name">日志</span>
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
</nav>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</aside>
|
||||||
|
<div id="sidebar-dimmer"></div>
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</main>
|
||||||
|
|
||||||
|
<footer class="footer">
|
||||||
|
<div class="footer-inner">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<div class="copyright">
|
||||||
|
|
||||||
|
© 2022-06 –
|
||||||
|
<span itemprop="copyrightYear">2022</span>
|
||||||
|
<span class="with-love">
|
||||||
|
<i class="fa fa-heart"></i>
|
||||||
|
</span>
|
||||||
|
<span class="author" itemprop="copyrightHolder">llbzow</span>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!--
|
||||||
|
<div class="powered-by">由 <a href="https://hexo.io/" class="theme-link" rel="noopener" target="_blank">Hexo</a> & <a href="https://theme-next.org/" class="theme-link" rel="noopener" target="_blank">NexT.Gemini</a> 强力驱动
|
||||||
|
</div>
|
||||||
|
-->
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<div class="busuanzi-count">
|
||||||
|
<script async src="https://busuanzi.ibruce.info/busuanzi/2.3/busuanzi.pure.mini.js"></script>
|
||||||
|
<span class="post-meta-item" id="busuanzi_container_site_uv" style="display: none;">
|
||||||
|
<span class="post-meta-item-icon">
|
||||||
|
<i class="fa fa-user"></i>
|
||||||
|
</span>
|
||||||
|
<span class="site-uv" title="总访客量">
|
||||||
|
<span id="busuanzi_value_site_uv"></span>
|
||||||
|
</span>
|
||||||
|
</span>
|
||||||
|
<span class="post-meta-divider">|</span>
|
||||||
|
<span class="post-meta-item" id="busuanzi_container_site_pv" style="display: none;">
|
||||||
|
<span class="post-meta-item-icon">
|
||||||
|
<i class="fa fa-eye"></i>
|
||||||
|
</span>
|
||||||
|
<span class="site-pv" title="总访问量">
|
||||||
|
<span id="busuanzi_value_site_pv"></span>
|
||||||
|
</span>
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</footer>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<script color='0,0,255' opacity='0.5' zIndex='-1' count='99' src="/lib/canvas-nest/canvas-nest.min.js"></script>
|
||||||
|
<script size="300" alpha="0.6" zIndex="-1" src="/lib/canvas-ribbon/canvas-ribbon.js"></script>
|
||||||
|
<script src="/lib/anime.min.js"></script>
|
||||||
|
<script src="/lib/velocity/velocity.min.js"></script>
|
||||||
|
<script src="/lib/velocity/velocity.ui.min.js"></script>
|
||||||
|
|
||||||
|
<script src="/js/utils.js"></script>
|
||||||
|
|
||||||
|
<script src="/js/motion.js"></script>
|
||||||
|
|
||||||
|
|
||||||
|
<script src="/js/schemes/pisces.js"></script>
|
||||||
|
|
||||||
|
|
||||||
|
<script src="/js/next-boot.js"></script>
|
||||||
|
|
||||||
|
|
||||||
|
<script defer src="/lib/three/three.min.js"></script>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<script src="/live2dw/lib/L2Dwidget.min.js?094cbace49a39548bed64abff5988b05"></script><script>L2Dwidget.init({"pluginRootPath":"live2dw/","pluginJsPath":"lib/","pluginModelPath":"assets/","tagMode":false,"debug":false,"model":{"jsonPath":"/live2dw/assets/koharu.model.json"},"display":{"position":"left","width":250,"height":500},"mobile":{"show":true},"react":{"opacity":0.9},"log":false});</script></body>
|
||||||
|
</html>
|
||||||
404
archives/index.html
Normal file
@@ -0,0 +1,404 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="zh-CN">
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8">
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=2">
|
||||||
|
<meta name="theme-color" content="#222">
|
||||||
|
<meta name="generator" content="Hexo 6.2.0">
|
||||||
|
<link rel="apple-touch-icon" sizes="180x180" href="/images/apple-touch-icon-next.png">
|
||||||
|
<link rel="icon" type="image/png" sizes="32x32" href="/images/favicon-32x32-next.png">
|
||||||
|
<link rel="icon" type="image/png" sizes="16x16" href="/images/favicon-16x16-next.png">
|
||||||
|
<link rel="mask-icon" href="/images/logo.svg" color="#222">
|
||||||
|
|
||||||
|
<link rel="stylesheet" href="/css/main.css">
|
||||||
|
|
||||||
|
|
||||||
|
<link rel="stylesheet" href="/lib/font-awesome/css/all.min.css">
|
||||||
|
<link rel="stylesheet" href="/lib/pace/pace-theme-minimal.min.css">
|
||||||
|
<script src="/lib/pace/pace.min.js"></script>
|
||||||
|
|
||||||
|
<script id="hexo-configurations">
|
||||||
|
var NexT = window.NexT || {};
|
||||||
|
var CONFIG = {"hostname":"example.com","root":"/","scheme":"Gemini","version":"7.8.0","exturl":false,"sidebar":{"position":"left","display":"post","padding":18,"offset":12,"onmobile":false},"copycode":{"enable":false,"show_result":false,"style":null},"back2top":{"enable":true,"sidebar":false,"scrollpercent":false},"bookmark":{"enable":false,"color":"#222","save":"auto"},"fancybox":false,"mediumzoom":false,"lazyload":false,"pangu":false,"comments":{"style":"tabs","active":null,"storage":true,"lazyload":false,"nav":null},"algolia":{"hits":{"per_page":10},"labels":{"input_placeholder":"Search for Posts","hits_empty":"We didn't find any results for the search: ${query}","hits_stats":"${hits} results found in ${time} ms"}},"localsearch":{"enable":false,"trigger":"auto","top_n_per_article":1,"unescape":false,"preload":false},"motion":{"enable":true,"async":false,"transition":{"post_block":"fadeIn","post_header":"slideDownIn","post_body":"slideDownIn","coll_header":"slideLeftIn","sidebar":"slideUpIn"}}};
|
||||||
|
</script>
|
||||||
|
|
||||||
|
|
||||||
|
<meta property="og:type" content="website">
|
||||||
|
<meta property="og:title" content="流量不足ow的个人博客">
|
||||||
|
<meta property="og:url" content="http://example.com/archives/index.html">
|
||||||
|
<meta property="og:site_name" content="流量不足ow的个人博客">
|
||||||
|
<meta property="og:locale" content="zh_CN">
|
||||||
|
<meta property="article:author" content="llbzow">
|
||||||
|
<meta name="twitter:card" content="summary">
|
||||||
|
|
||||||
|
<link rel="canonical" href="http://example.com/archives/">
|
||||||
|
|
||||||
|
|
||||||
|
<script id="page-configurations">
|
||||||
|
// https://hexo.io/docs/variables.html
|
||||||
|
CONFIG.page = {
|
||||||
|
sidebar: "",
|
||||||
|
isHome : false,
|
||||||
|
isPost : false,
|
||||||
|
lang : 'zh-CN'
|
||||||
|
};
|
||||||
|
</script>
|
||||||
|
|
||||||
|
|
||||||
|
<script>
|
||||||
|
(function () {
|
||||||
|
if ('') {
|
||||||
|
if (prompt('请输入文章密码') !== '') {
|
||||||
|
alert('密码错误!');
|
||||||
|
if (history.length === 1) {
|
||||||
|
location.replace("http://blog.llbzow.tk"); // 这里替换成你的首页
|
||||||
|
} else {
|
||||||
|
history.back();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})();
|
||||||
|
</script>
|
||||||
|
<title>归档 | 流量不足ow的个人博客</title>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<noscript>
|
||||||
|
<style>
|
||||||
|
.use-motion .brand,
|
||||||
|
.use-motion .menu-item,
|
||||||
|
.sidebar-inner,
|
||||||
|
.use-motion .post-block,
|
||||||
|
.use-motion .pagination,
|
||||||
|
.use-motion .comments,
|
||||||
|
.use-motion .post-header,
|
||||||
|
.use-motion .post-body,
|
||||||
|
.use-motion .collection-header { opacity: initial; }
|
||||||
|
|
||||||
|
.use-motion .site-title,
|
||||||
|
.use-motion .site-subtitle {
|
||||||
|
opacity: initial;
|
||||||
|
top: initial;
|
||||||
|
}
|
||||||
|
|
||||||
|
.use-motion .logo-line-before i { left: initial; }
|
||||||
|
.use-motion .logo-line-after i { right: initial; }
|
||||||
|
</style>
|
||||||
|
</noscript>
|
||||||
|
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body itemscope itemtype="http://schema.org/WebPage">
|
||||||
|
<div class="container use-motion">
|
||||||
|
<div class="headband"></div>
|
||||||
|
|
||||||
|
<header class="header" itemscope itemtype="http://schema.org/WPHeader">
|
||||||
|
<div class="header-inner"><div class="site-brand-container">
|
||||||
|
<div class="site-nav-toggle">
|
||||||
|
<div class="toggle" aria-label="切换导航栏">
|
||||||
|
<span class="toggle-line toggle-line-first"></span>
|
||||||
|
<span class="toggle-line toggle-line-middle"></span>
|
||||||
|
<span class="toggle-line toggle-line-last"></span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="site-meta">
|
||||||
|
|
||||||
|
<a href="/" class="brand" rel="start">
|
||||||
|
<span class="logo-line-before"><i></i></span>
|
||||||
|
<h1 class="site-title">流量不足ow的个人博客</h1>
|
||||||
|
<span class="logo-line-after"><i></i></span>
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="site-nav-right">
|
||||||
|
<div class="toggle popup-trigger">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<nav class="site-nav">
|
||||||
|
<ul id="menu" class="main-menu menu">
|
||||||
|
<li class="menu-item menu-item-home">
|
||||||
|
|
||||||
|
<a href="/" rel="section"><i class="fa fa-home fa-fw"></i>首页</a>
|
||||||
|
|
||||||
|
</li>
|
||||||
|
<li class="menu-item menu-item-about">
|
||||||
|
|
||||||
|
<a href="/about/" rel="section"><i class="fa fa-user fa-fw"></i>关于</a>
|
||||||
|
|
||||||
|
</li>
|
||||||
|
<li class="menu-item menu-item-tags">
|
||||||
|
|
||||||
|
<a href="/tags/" rel="section"><i class="fa fa-tags fa-fw"></i>标签</a>
|
||||||
|
|
||||||
|
</li>
|
||||||
|
<li class="menu-item menu-item-categories">
|
||||||
|
|
||||||
|
<a href="/categories/" rel="section"><i class="fa fa-th fa-fw"></i>分类</a>
|
||||||
|
|
||||||
|
</li>
|
||||||
|
<li class="menu-item menu-item-archives">
|
||||||
|
|
||||||
|
<a href="/archives/" rel="section"><i class="fa fa-archive fa-fw"></i>归档</a>
|
||||||
|
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</nav>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</header>
|
||||||
|
|
||||||
|
|
||||||
|
<div class="back-to-top">
|
||||||
|
<i class="fa fa-arrow-up"></i>
|
||||||
|
<span>0%</span>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
<main class="main">
|
||||||
|
<div class="main-inner">
|
||||||
|
<div class="content-wrap">
|
||||||
|
|
||||||
|
|
||||||
|
<div class="content archive">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<div class="post-block">
|
||||||
|
<div class="posts-collapse">
|
||||||
|
<div class="collection-title">
|
||||||
|
<span class="collection-header">嗯..! 目前共计 1 篇日志。 继续努力。</span>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
<div class="collection-year">
|
||||||
|
<span class="collection-header">2022</span>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<article itemscope itemtype="http://schema.org/Article">
|
||||||
|
<header class="post-header">
|
||||||
|
|
||||||
|
<div class="post-meta">
|
||||||
|
<time itemprop="dateCreated"
|
||||||
|
datetime="2022-06-20T00:00:48+08:00"
|
||||||
|
content="2022-06-20">
|
||||||
|
06-20
|
||||||
|
</time>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="post-title">
|
||||||
|
<a class="post-title-link" href="/2022/06/20/My-First-Blog/" itemprop="url">
|
||||||
|
<span itemprop="name">博客留言区</span>
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</header>
|
||||||
|
</article>
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
<script>
|
||||||
|
window.addEventListener('tabs:register', () => {
|
||||||
|
let { activeClass } = CONFIG.comments;
|
||||||
|
if (CONFIG.comments.storage) {
|
||||||
|
activeClass = localStorage.getItem('comments_active') || activeClass;
|
||||||
|
}
|
||||||
|
if (activeClass) {
|
||||||
|
let activeTab = document.querySelector(`a[href="#comment-${activeClass}"]`);
|
||||||
|
if (activeTab) {
|
||||||
|
activeTab.click();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
if (CONFIG.comments.storage) {
|
||||||
|
window.addEventListener('tabs:click', event => {
|
||||||
|
if (!event.target.matches('.tabs-comment .tab-content .tab-pane')) return;
|
||||||
|
let commentClass = event.target.classList[1];
|
||||||
|
localStorage.setItem('comments_active', commentClass);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
<div class="toggle sidebar-toggle">
|
||||||
|
<span class="toggle-line toggle-line-first"></span>
|
||||||
|
<span class="toggle-line toggle-line-middle"></span>
|
||||||
|
<span class="toggle-line toggle-line-last"></span>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<aside class="sidebar">
|
||||||
|
<div class="sidebar-inner">
|
||||||
|
|
||||||
|
<ul class="sidebar-nav motion-element">
|
||||||
|
<li class="sidebar-nav-toc">
|
||||||
|
文章目录
|
||||||
|
</li>
|
||||||
|
<li class="sidebar-nav-overview">
|
||||||
|
站点概览
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<!--noindex-->
|
||||||
|
<div class="post-toc-wrap sidebar-panel">
|
||||||
|
</div>
|
||||||
|
<!--/noindex-->
|
||||||
|
|
||||||
|
<div class="site-overview-wrap sidebar-panel">
|
||||||
|
<div class="site-author motion-element" itemprop="author" itemscope itemtype="http://schema.org/Person">
|
||||||
|
<img class="site-author-image" itemprop="image" alt="llbzow"
|
||||||
|
src="/images/avatar.png">
|
||||||
|
<p class="site-author-name" itemprop="name">llbzow</p>
|
||||||
|
<div class="site-description" itemprop="description"></div>
|
||||||
|
</div>
|
||||||
|
<div class="site-state-wrap motion-element">
|
||||||
|
<nav class="site-state">
|
||||||
|
<div class="site-state-item site-state-posts">
|
||||||
|
<a href="/archives/">
|
||||||
|
|
||||||
|
<span class="site-state-item-count">1</span>
|
||||||
|
<span class="site-state-item-name">日志</span>
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
</nav>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</aside>
|
||||||
|
<div id="sidebar-dimmer"></div>
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</main>
|
||||||
|
|
||||||
|
<footer class="footer">
|
||||||
|
<div class="footer-inner">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<div class="copyright">
|
||||||
|
|
||||||
|
© 2022-06 –
|
||||||
|
<span itemprop="copyrightYear">2022</span>
|
||||||
|
<span class="with-love">
|
||||||
|
<i class="fa fa-heart"></i>
|
||||||
|
</span>
|
||||||
|
<span class="author" itemprop="copyrightHolder">llbzow</span>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!--
|
||||||
|
<div class="powered-by">由 <a href="https://hexo.io/" class="theme-link" rel="noopener" target="_blank">Hexo</a> & <a href="https://theme-next.org/" class="theme-link" rel="noopener" target="_blank">NexT.Gemini</a> 强力驱动
|
||||||
|
</div>
|
||||||
|
-->
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<div class="busuanzi-count">
|
||||||
|
<script async src="https://busuanzi.ibruce.info/busuanzi/2.3/busuanzi.pure.mini.js"></script>
|
||||||
|
<span class="post-meta-item" id="busuanzi_container_site_uv" style="display: none;">
|
||||||
|
<span class="post-meta-item-icon">
|
||||||
|
<i class="fa fa-user"></i>
|
||||||
|
</span>
|
||||||
|
<span class="site-uv" title="总访客量">
|
||||||
|
<span id="busuanzi_value_site_uv"></span>
|
||||||
|
</span>
|
||||||
|
</span>
|
||||||
|
<span class="post-meta-divider">|</span>
|
||||||
|
<span class="post-meta-item" id="busuanzi_container_site_pv" style="display: none;">
|
||||||
|
<span class="post-meta-item-icon">
|
||||||
|
<i class="fa fa-eye"></i>
|
||||||
|
</span>
|
||||||
|
<span class="site-pv" title="总访问量">
|
||||||
|
<span id="busuanzi_value_site_pv"></span>
|
||||||
|
</span>
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</footer>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<script color='0,0,255' opacity='0.5' zIndex='-1' count='99' src="/lib/canvas-nest/canvas-nest.min.js"></script>
|
||||||
|
<script size="300" alpha="0.6" zIndex="-1" src="/lib/canvas-ribbon/canvas-ribbon.js"></script>
|
||||||
|
<script src="/lib/anime.min.js"></script>
|
||||||
|
<script src="/lib/velocity/velocity.min.js"></script>
|
||||||
|
<script src="/lib/velocity/velocity.ui.min.js"></script>
|
||||||
|
|
||||||
|
<script src="/js/utils.js"></script>
|
||||||
|
|
||||||
|
<script src="/js/motion.js"></script>
|
||||||
|
|
||||||
|
|
||||||
|
<script src="/js/schemes/pisces.js"></script>
|
||||||
|
|
||||||
|
|
||||||
|
<script src="/js/next-boot.js"></script>
|
||||||
|
|
||||||
|
|
||||||
|
<script defer src="/lib/three/three.min.js"></script>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<script src="/live2dw/lib/L2Dwidget.min.js?094cbace49a39548bed64abff5988b05"></script><script>L2Dwidget.init({"pluginRootPath":"live2dw/","pluginJsPath":"lib/","pluginModelPath":"assets/","tagMode":false,"debug":false,"model":{"jsonPath":"/live2dw/assets/koharu.model.json"},"display":{"position":"left","width":250,"height":500},"mobile":{"show":true},"react":{"opacity":0.9},"log":false});</script></body>
|
||||||
|
</html>
|
||||||
405
categories/index.html
Normal file
@@ -0,0 +1,405 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="zh-CN">
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8">
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=2">
|
||||||
|
<meta name="theme-color" content="#222">
|
||||||
|
<meta name="generator" content="Hexo 6.2.0">
|
||||||
|
<link rel="apple-touch-icon" sizes="180x180" href="/images/apple-touch-icon-next.png">
|
||||||
|
<link rel="icon" type="image/png" sizes="32x32" href="/images/favicon-32x32-next.png">
|
||||||
|
<link rel="icon" type="image/png" sizes="16x16" href="/images/favicon-16x16-next.png">
|
||||||
|
<link rel="mask-icon" href="/images/logo.svg" color="#222">
|
||||||
|
|
||||||
|
<link rel="stylesheet" href="/css/main.css">
|
||||||
|
|
||||||
|
|
||||||
|
<link rel="stylesheet" href="/lib/font-awesome/css/all.min.css">
|
||||||
|
<link rel="stylesheet" href="/lib/pace/pace-theme-minimal.min.css">
|
||||||
|
<script src="/lib/pace/pace.min.js"></script>
|
||||||
|
|
||||||
|
<script id="hexo-configurations">
|
||||||
|
var NexT = window.NexT || {};
|
||||||
|
var CONFIG = {"hostname":"example.com","root":"/","scheme":"Gemini","version":"7.8.0","exturl":false,"sidebar":{"position":"left","display":"post","padding":18,"offset":12,"onmobile":false},"copycode":{"enable":false,"show_result":false,"style":null},"back2top":{"enable":true,"sidebar":false,"scrollpercent":false},"bookmark":{"enable":false,"color":"#222","save":"auto"},"fancybox":false,"mediumzoom":false,"lazyload":false,"pangu":false,"comments":{"style":"tabs","active":null,"storage":true,"lazyload":false,"nav":null},"algolia":{"hits":{"per_page":10},"labels":{"input_placeholder":"Search for Posts","hits_empty":"We didn't find any results for the search: ${query}","hits_stats":"${hits} results found in ${time} ms"}},"localsearch":{"enable":false,"trigger":"auto","top_n_per_article":1,"unescape":false,"preload":false},"motion":{"enable":true,"async":false,"transition":{"post_block":"fadeIn","post_header":"slideDownIn","post_body":"slideDownIn","coll_header":"slideLeftIn","sidebar":"slideUpIn"}}};
|
||||||
|
</script>
|
||||||
|
|
||||||
|
|
||||||
|
<meta property="og:type" content="website">
|
||||||
|
<meta property="og:title" content="categories">
|
||||||
|
<meta property="og:url" content="http://example.com/categories/index.html">
|
||||||
|
<meta property="og:site_name" content="流量不足ow的个人博客">
|
||||||
|
<meta property="og:locale" content="zh_CN">
|
||||||
|
<meta property="article:published_time" content="2022-06-19T13:37:06.000Z">
|
||||||
|
<meta property="article:modified_time" content="2022-06-19T13:38:29.797Z">
|
||||||
|
<meta property="article:author" content="llbzow">
|
||||||
|
<meta name="twitter:card" content="summary">
|
||||||
|
|
||||||
|
<link rel="canonical" href="http://example.com/categories/">
|
||||||
|
|
||||||
|
|
||||||
|
<script id="page-configurations">
|
||||||
|
// https://hexo.io/docs/variables.html
|
||||||
|
CONFIG.page = {
|
||||||
|
sidebar: "",
|
||||||
|
isHome : false,
|
||||||
|
isPost : false,
|
||||||
|
lang : 'zh-CN'
|
||||||
|
};
|
||||||
|
</script>
|
||||||
|
|
||||||
|
|
||||||
|
<script>
|
||||||
|
(function () {
|
||||||
|
if ('') {
|
||||||
|
if (prompt('请输入文章密码') !== '') {
|
||||||
|
alert('密码错误!');
|
||||||
|
if (history.length === 1) {
|
||||||
|
location.replace("http://blog.llbzow.tk"); // 这里替换成你的首页
|
||||||
|
} else {
|
||||||
|
history.back();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})();
|
||||||
|
</script>
|
||||||
|
<title>categories | 流量不足ow的个人博客
|
||||||
|
</title>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<noscript>
|
||||||
|
<style>
|
||||||
|
.use-motion .brand,
|
||||||
|
.use-motion .menu-item,
|
||||||
|
.sidebar-inner,
|
||||||
|
.use-motion .post-block,
|
||||||
|
.use-motion .pagination,
|
||||||
|
.use-motion .comments,
|
||||||
|
.use-motion .post-header,
|
||||||
|
.use-motion .post-body,
|
||||||
|
.use-motion .collection-header { opacity: initial; }
|
||||||
|
|
||||||
|
.use-motion .site-title,
|
||||||
|
.use-motion .site-subtitle {
|
||||||
|
opacity: initial;
|
||||||
|
top: initial;
|
||||||
|
}
|
||||||
|
|
||||||
|
.use-motion .logo-line-before i { left: initial; }
|
||||||
|
.use-motion .logo-line-after i { right: initial; }
|
||||||
|
</style>
|
||||||
|
</noscript>
|
||||||
|
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body itemscope itemtype="http://schema.org/WebPage">
|
||||||
|
<div class="container use-motion">
|
||||||
|
<div class="headband"></div>
|
||||||
|
|
||||||
|
<header class="header" itemscope itemtype="http://schema.org/WPHeader">
|
||||||
|
<div class="header-inner"><div class="site-brand-container">
|
||||||
|
<div class="site-nav-toggle">
|
||||||
|
<div class="toggle" aria-label="切换导航栏">
|
||||||
|
<span class="toggle-line toggle-line-first"></span>
|
||||||
|
<span class="toggle-line toggle-line-middle"></span>
|
||||||
|
<span class="toggle-line toggle-line-last"></span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="site-meta">
|
||||||
|
|
||||||
|
<a href="/" class="brand" rel="start">
|
||||||
|
<span class="logo-line-before"><i></i></span>
|
||||||
|
<h1 class="site-title">流量不足ow的个人博客</h1>
|
||||||
|
<span class="logo-line-after"><i></i></span>
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="site-nav-right">
|
||||||
|
<div class="toggle popup-trigger">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<nav class="site-nav">
|
||||||
|
<ul id="menu" class="main-menu menu">
|
||||||
|
<li class="menu-item menu-item-home">
|
||||||
|
|
||||||
|
<a href="/" rel="section"><i class="fa fa-home fa-fw"></i>首页</a>
|
||||||
|
|
||||||
|
</li>
|
||||||
|
<li class="menu-item menu-item-about">
|
||||||
|
|
||||||
|
<a href="/about/" rel="section"><i class="fa fa-user fa-fw"></i>关于</a>
|
||||||
|
|
||||||
|
</li>
|
||||||
|
<li class="menu-item menu-item-tags">
|
||||||
|
|
||||||
|
<a href="/tags/" rel="section"><i class="fa fa-tags fa-fw"></i>标签</a>
|
||||||
|
|
||||||
|
</li>
|
||||||
|
<li class="menu-item menu-item-categories">
|
||||||
|
|
||||||
|
<a href="/categories/" rel="section"><i class="fa fa-th fa-fw"></i>分类</a>
|
||||||
|
|
||||||
|
</li>
|
||||||
|
<li class="menu-item menu-item-archives">
|
||||||
|
|
||||||
|
<a href="/archives/" rel="section"><i class="fa fa-archive fa-fw"></i>归档</a>
|
||||||
|
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</nav>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</header>
|
||||||
|
|
||||||
|
|
||||||
|
<div class="back-to-top">
|
||||||
|
<i class="fa fa-arrow-up"></i>
|
||||||
|
<span>0%</span>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
<main class="main">
|
||||||
|
<div class="main-inner">
|
||||||
|
<div class="content-wrap">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<div class="content page posts-expand">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<div class="post-block" lang="zh-CN">
|
||||||
|
<header class="post-header">
|
||||||
|
|
||||||
|
<h1 class="post-title" itemprop="name headline">categories
|
||||||
|
</h1>
|
||||||
|
|
||||||
|
<div class="post-meta">
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</header>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<div class="post-body">
|
||||||
|
<div class="category-all-page">
|
||||||
|
<div class="category-all-title">
|
||||||
|
暂无分类
|
||||||
|
</div>
|
||||||
|
<div class="category-all">
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
<script>
|
||||||
|
window.addEventListener('tabs:register', () => {
|
||||||
|
let { activeClass } = CONFIG.comments;
|
||||||
|
if (CONFIG.comments.storage) {
|
||||||
|
activeClass = localStorage.getItem('comments_active') || activeClass;
|
||||||
|
}
|
||||||
|
if (activeClass) {
|
||||||
|
let activeTab = document.querySelector(`a[href="#comment-${activeClass}"]`);
|
||||||
|
if (activeTab) {
|
||||||
|
activeTab.click();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
if (CONFIG.comments.storage) {
|
||||||
|
window.addEventListener('tabs:click', event => {
|
||||||
|
if (!event.target.matches('.tabs-comment .tab-content .tab-pane')) return;
|
||||||
|
let commentClass = event.target.classList[1];
|
||||||
|
localStorage.setItem('comments_active', commentClass);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
<div class="toggle sidebar-toggle">
|
||||||
|
<span class="toggle-line toggle-line-first"></span>
|
||||||
|
<span class="toggle-line toggle-line-middle"></span>
|
||||||
|
<span class="toggle-line toggle-line-last"></span>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<aside class="sidebar">
|
||||||
|
<div class="sidebar-inner">
|
||||||
|
|
||||||
|
<ul class="sidebar-nav motion-element">
|
||||||
|
<li class="sidebar-nav-toc">
|
||||||
|
文章目录
|
||||||
|
</li>
|
||||||
|
<li class="sidebar-nav-overview">
|
||||||
|
站点概览
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<!--noindex-->
|
||||||
|
<div class="post-toc-wrap sidebar-panel">
|
||||||
|
</div>
|
||||||
|
<!--/noindex-->
|
||||||
|
|
||||||
|
<div class="site-overview-wrap sidebar-panel">
|
||||||
|
<div class="site-author motion-element" itemprop="author" itemscope itemtype="http://schema.org/Person">
|
||||||
|
<img class="site-author-image" itemprop="image" alt="llbzow"
|
||||||
|
src="/images/avatar.png">
|
||||||
|
<p class="site-author-name" itemprop="name">llbzow</p>
|
||||||
|
<div class="site-description" itemprop="description"></div>
|
||||||
|
</div>
|
||||||
|
<div class="site-state-wrap motion-element">
|
||||||
|
<nav class="site-state">
|
||||||
|
<div class="site-state-item site-state-posts">
|
||||||
|
<a href="/archives/">
|
||||||
|
|
||||||
|
<span class="site-state-item-count">1</span>
|
||||||
|
<span class="site-state-item-name">日志</span>
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
</nav>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</aside>
|
||||||
|
<div id="sidebar-dimmer"></div>
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</main>
|
||||||
|
|
||||||
|
<footer class="footer">
|
||||||
|
<div class="footer-inner">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<div class="copyright">
|
||||||
|
|
||||||
|
© 2022-06 –
|
||||||
|
<span itemprop="copyrightYear">2022</span>
|
||||||
|
<span class="with-love">
|
||||||
|
<i class="fa fa-heart"></i>
|
||||||
|
</span>
|
||||||
|
<span class="author" itemprop="copyrightHolder">llbzow</span>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!--
|
||||||
|
<div class="powered-by">由 <a href="https://hexo.io/" class="theme-link" rel="noopener" target="_blank">Hexo</a> & <a href="https://theme-next.org/" class="theme-link" rel="noopener" target="_blank">NexT.Gemini</a> 强力驱动
|
||||||
|
</div>
|
||||||
|
-->
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<div class="busuanzi-count">
|
||||||
|
<script async src="https://busuanzi.ibruce.info/busuanzi/2.3/busuanzi.pure.mini.js"></script>
|
||||||
|
<span class="post-meta-item" id="busuanzi_container_site_uv" style="display: none;">
|
||||||
|
<span class="post-meta-item-icon">
|
||||||
|
<i class="fa fa-user"></i>
|
||||||
|
</span>
|
||||||
|
<span class="site-uv" title="总访客量">
|
||||||
|
<span id="busuanzi_value_site_uv"></span>
|
||||||
|
</span>
|
||||||
|
</span>
|
||||||
|
<span class="post-meta-divider">|</span>
|
||||||
|
<span class="post-meta-item" id="busuanzi_container_site_pv" style="display: none;">
|
||||||
|
<span class="post-meta-item-icon">
|
||||||
|
<i class="fa fa-eye"></i>
|
||||||
|
</span>
|
||||||
|
<span class="site-pv" title="总访问量">
|
||||||
|
<span id="busuanzi_value_site_pv"></span>
|
||||||
|
</span>
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</footer>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<script color='0,0,255' opacity='0.5' zIndex='-1' count='99' src="/lib/canvas-nest/canvas-nest.min.js"></script>
|
||||||
|
<script size="300" alpha="0.6" zIndex="-1" src="/lib/canvas-ribbon/canvas-ribbon.js"></script>
|
||||||
|
<script src="/lib/anime.min.js"></script>
|
||||||
|
<script src="/lib/velocity/velocity.min.js"></script>
|
||||||
|
<script src="/lib/velocity/velocity.ui.min.js"></script>
|
||||||
|
|
||||||
|
<script src="/js/utils.js"></script>
|
||||||
|
|
||||||
|
<script src="/js/motion.js"></script>
|
||||||
|
|
||||||
|
|
||||||
|
<script src="/js/schemes/pisces.js"></script>
|
||||||
|
|
||||||
|
|
||||||
|
<script src="/js/next-boot.js"></script>
|
||||||
|
|
||||||
|
|
||||||
|
<script defer src="/lib/three/three.min.js"></script>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<script src="/live2dw/lib/L2Dwidget.min.js?094cbace49a39548bed64abff5988b05"></script><script>L2Dwidget.init({"pluginRootPath":"live2dw/","pluginJsPath":"lib/","pluginModelPath":"assets/","tagMode":false,"debug":false,"model":{"jsonPath":"/live2dw/assets/koharu.model.json"},"display":{"position":"left","width":250,"height":500},"mobile":{"show":true},"react":{"opacity":0.9},"log":false});</script></body>
|
||||||
|
</html>
|
||||||
2581
css/main.css
Normal file
60
css/spoiler.css
Normal file
@@ -0,0 +1,60 @@
|
|||||||
|
.spoiler {
|
||||||
|
margin: 5px 0;
|
||||||
|
padding: 0 15px;
|
||||||
|
border: 1px solid #E5E5E5;
|
||||||
|
position: relative;
|
||||||
|
clear: both;
|
||||||
|
border-radius: 3px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.spoiler .spoiler-title {
|
||||||
|
background: #E5E5E5;
|
||||||
|
margin: 0 -15px;
|
||||||
|
padding: 5px 15px;
|
||||||
|
color: #353535;
|
||||||
|
font-weight: bold;
|
||||||
|
font-size: 13px;
|
||||||
|
display: block;
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
|
||||||
|
.spoiler .spoiler-title:before {
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
|
||||||
|
.spoiler.collapsed .spoiler-title:before {
|
||||||
|
content: "Show ";
|
||||||
|
}
|
||||||
|
|
||||||
|
.spoiler.expanded .spoiler-title:before {
|
||||||
|
content: "Hide ";
|
||||||
|
}
|
||||||
|
|
||||||
|
.spoiler .spoiler-content {
|
||||||
|
padding-top: 0;
|
||||||
|
padding-bottom: 0;
|
||||||
|
margin-top: 0;
|
||||||
|
margin-bottom: 0;
|
||||||
|
-moz-transition-duration: 0.3s;
|
||||||
|
-webkit-transition-duration: 0.3s;
|
||||||
|
-o-transition-duration: 0.3s;
|
||||||
|
transition-duration: 0.3s;
|
||||||
|
-moz-transition-timing-function: ease-in-out;
|
||||||
|
-webkit-transition-timing-function: ease-in-out;
|
||||||
|
-o-transition-timing-function: ease-in-out;
|
||||||
|
transition-timing-function: ease-in-out;
|
||||||
|
}
|
||||||
|
|
||||||
|
.spoiler.collapsed .spoiler-content {
|
||||||
|
overflow: hidden;
|
||||||
|
max-height: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.spoiler.expanded .spoiler-content {
|
||||||
|
max-height: 3000px;
|
||||||
|
overflow: hidden;
|
||||||
|
}
|
||||||
|
|
||||||
|
.spoiler .spoiler-content p:first-child {
|
||||||
|
margin-top: 0 !important;
|
||||||
|
}
|
||||||
418
guestbook/index.html
Normal file
@@ -0,0 +1,418 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="zh-CN">
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8">
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=2">
|
||||||
|
<meta name="theme-color" content="#222">
|
||||||
|
<meta name="generator" content="Hexo 6.2.0">
|
||||||
|
<link rel="apple-touch-icon" sizes="180x180" href="/images/apple-touch-icon-next.png">
|
||||||
|
<link rel="icon" type="image/png" sizes="32x32" href="/images/favicon-32x32-next.png">
|
||||||
|
<link rel="icon" type="image/png" sizes="16x16" href="/images/favicon-16x16-next.png">
|
||||||
|
<link rel="mask-icon" href="/images/logo.svg" color="#222">
|
||||||
|
|
||||||
|
<link rel="stylesheet" href="/css/main.css">
|
||||||
|
|
||||||
|
|
||||||
|
<link rel="stylesheet" href="/lib/font-awesome/css/all.min.css">
|
||||||
|
<link rel="stylesheet" href="/lib/pace/pace-theme-minimal.min.css">
|
||||||
|
<script src="/lib/pace/pace.min.js"></script>
|
||||||
|
|
||||||
|
<script id="hexo-configurations">
|
||||||
|
var NexT = window.NexT || {};
|
||||||
|
var CONFIG = {"hostname":"example.com","root":"/","scheme":"Gemini","version":"7.8.0","exturl":false,"sidebar":{"position":"left","display":"post","padding":18,"offset":12,"onmobile":false},"copycode":{"enable":false,"show_result":false,"style":null},"back2top":{"enable":true,"sidebar":false,"scrollpercent":false},"bookmark":{"enable":false,"color":"#222","save":"auto"},"fancybox":false,"mediumzoom":false,"lazyload":false,"pangu":false,"comments":{"style":"tabs","active":null,"storage":true,"lazyload":false,"nav":null},"algolia":{"hits":{"per_page":10},"labels":{"input_placeholder":"Search for Posts","hits_empty":"We didn't find any results for the search: ${query}","hits_stats":"${hits} results found in ${time} ms"}},"localsearch":{"enable":false,"trigger":"auto","top_n_per_article":1,"unescape":false,"preload":false},"motion":{"enable":true,"async":false,"transition":{"post_block":"fadeIn","post_header":"slideDownIn","post_body":"slideDownIn","coll_header":"slideLeftIn","sidebar":"slideUpIn"}}};
|
||||||
|
</script>
|
||||||
|
|
||||||
|
|
||||||
|
<meta property="og:type" content="website">
|
||||||
|
<meta property="og:title" content="guestbook">
|
||||||
|
<meta property="og:url" content="http://example.com/guestbook/index.html">
|
||||||
|
<meta property="og:site_name" content="流量不足ow的个人博客">
|
||||||
|
<meta property="og:locale" content="zh_CN">
|
||||||
|
<meta property="article:published_time" content="2022-07-07T14:51:12.000Z">
|
||||||
|
<meta property="article:modified_time" content="2022-07-07T14:52:01.531Z">
|
||||||
|
<meta property="article:author" content="llbzow">
|
||||||
|
<meta name="twitter:card" content="summary">
|
||||||
|
|
||||||
|
<link rel="canonical" href="http://example.com/guestbook/">
|
||||||
|
|
||||||
|
|
||||||
|
<script id="page-configurations">
|
||||||
|
// https://hexo.io/docs/variables.html
|
||||||
|
CONFIG.page = {
|
||||||
|
sidebar: "",
|
||||||
|
isHome : false,
|
||||||
|
isPost : false,
|
||||||
|
lang : 'zh-CN'
|
||||||
|
};
|
||||||
|
</script>
|
||||||
|
|
||||||
|
|
||||||
|
<script>
|
||||||
|
(function () {
|
||||||
|
if ('') {
|
||||||
|
if (prompt('请输入文章密码') !== '') {
|
||||||
|
alert('密码错误!');
|
||||||
|
if (history.length === 1) {
|
||||||
|
location.replace("http://blog.llbzow.tk"); // 这里替换成你的首页
|
||||||
|
} else {
|
||||||
|
history.back();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})();
|
||||||
|
</script>
|
||||||
|
<title>guestbook | 流量不足ow的个人博客
|
||||||
|
</title>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<noscript>
|
||||||
|
<style>
|
||||||
|
.use-motion .brand,
|
||||||
|
.use-motion .menu-item,
|
||||||
|
.sidebar-inner,
|
||||||
|
.use-motion .post-block,
|
||||||
|
.use-motion .pagination,
|
||||||
|
.use-motion .comments,
|
||||||
|
.use-motion .post-header,
|
||||||
|
.use-motion .post-body,
|
||||||
|
.use-motion .collection-header { opacity: initial; }
|
||||||
|
|
||||||
|
.use-motion .site-title,
|
||||||
|
.use-motion .site-subtitle {
|
||||||
|
opacity: initial;
|
||||||
|
top: initial;
|
||||||
|
}
|
||||||
|
|
||||||
|
.use-motion .logo-line-before i { left: initial; }
|
||||||
|
.use-motion .logo-line-after i { right: initial; }
|
||||||
|
</style>
|
||||||
|
</noscript>
|
||||||
|
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body itemscope itemtype="http://schema.org/WebPage">
|
||||||
|
<div class="container use-motion">
|
||||||
|
<div class="headband"></div>
|
||||||
|
|
||||||
|
<header class="header" itemscope itemtype="http://schema.org/WPHeader">
|
||||||
|
<div class="header-inner"><div class="site-brand-container">
|
||||||
|
<div class="site-nav-toggle">
|
||||||
|
<div class="toggle" aria-label="切换导航栏">
|
||||||
|
<span class="toggle-line toggle-line-first"></span>
|
||||||
|
<span class="toggle-line toggle-line-middle"></span>
|
||||||
|
<span class="toggle-line toggle-line-last"></span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="site-meta">
|
||||||
|
|
||||||
|
<a href="/" class="brand" rel="start">
|
||||||
|
<span class="logo-line-before"><i></i></span>
|
||||||
|
<h1 class="site-title">流量不足ow的个人博客</h1>
|
||||||
|
<span class="logo-line-after"><i></i></span>
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="site-nav-right">
|
||||||
|
<div class="toggle popup-trigger">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<nav class="site-nav">
|
||||||
|
<ul id="menu" class="main-menu menu">
|
||||||
|
<li class="menu-item menu-item-home">
|
||||||
|
|
||||||
|
<a href="/" rel="section"><i class="fa fa-home fa-fw"></i>首页</a>
|
||||||
|
|
||||||
|
</li>
|
||||||
|
<li class="menu-item menu-item-about">
|
||||||
|
|
||||||
|
<a href="/about/" rel="section"><i class="fa fa-user fa-fw"></i>关于</a>
|
||||||
|
|
||||||
|
</li>
|
||||||
|
<li class="menu-item menu-item-tags">
|
||||||
|
|
||||||
|
<a href="/tags/" rel="section"><i class="fa fa-tags fa-fw"></i>标签</a>
|
||||||
|
|
||||||
|
</li>
|
||||||
|
<li class="menu-item menu-item-categories">
|
||||||
|
|
||||||
|
<a href="/categories/" rel="section"><i class="fa fa-th fa-fw"></i>分类</a>
|
||||||
|
|
||||||
|
</li>
|
||||||
|
<li class="menu-item menu-item-archives">
|
||||||
|
|
||||||
|
<a href="/archives/" rel="section"><i class="fa fa-archive fa-fw"></i>归档</a>
|
||||||
|
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</nav>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</header>
|
||||||
|
|
||||||
|
|
||||||
|
<div class="back-to-top">
|
||||||
|
<i class="fa fa-arrow-up"></i>
|
||||||
|
<span>0%</span>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
<main class="main">
|
||||||
|
<div class="main-inner">
|
||||||
|
<div class="content-wrap">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<div class="content page posts-expand">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<div class="post-block" lang="zh-CN">
|
||||||
|
<header class="post-header">
|
||||||
|
|
||||||
|
<h1 class="post-title" itemprop="name headline">guestbook
|
||||||
|
</h1>
|
||||||
|
|
||||||
|
<div class="post-meta">
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</header>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<div class="post-body">
|
||||||
|
<div class="ds-recent-visitors" data-num-items="28" data-avatar-size="42" id="ds-recent-visitors"></div>
|
||||||
|
<link rel="stylesheet" href="/css/spoiler.css" type="text/css"><script src="/js/spoiler.js" type="text/javascript" async></script>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="comments" id="gitalk-container"></div>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
window.addEventListener('tabs:register', () => {
|
||||||
|
let { activeClass } = CONFIG.comments;
|
||||||
|
if (CONFIG.comments.storage) {
|
||||||
|
activeClass = localStorage.getItem('comments_active') || activeClass;
|
||||||
|
}
|
||||||
|
if (activeClass) {
|
||||||
|
let activeTab = document.querySelector(`a[href="#comment-${activeClass}"]`);
|
||||||
|
if (activeTab) {
|
||||||
|
activeTab.click();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
if (CONFIG.comments.storage) {
|
||||||
|
window.addEventListener('tabs:click', event => {
|
||||||
|
if (!event.target.matches('.tabs-comment .tab-content .tab-pane')) return;
|
||||||
|
let commentClass = event.target.classList[1];
|
||||||
|
localStorage.setItem('comments_active', commentClass);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
<div class="toggle sidebar-toggle">
|
||||||
|
<span class="toggle-line toggle-line-first"></span>
|
||||||
|
<span class="toggle-line toggle-line-middle"></span>
|
||||||
|
<span class="toggle-line toggle-line-last"></span>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<aside class="sidebar">
|
||||||
|
<div class="sidebar-inner">
|
||||||
|
|
||||||
|
<ul class="sidebar-nav motion-element">
|
||||||
|
<li class="sidebar-nav-toc">
|
||||||
|
文章目录
|
||||||
|
</li>
|
||||||
|
<li class="sidebar-nav-overview">
|
||||||
|
站点概览
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<!--noindex-->
|
||||||
|
<div class="post-toc-wrap sidebar-panel">
|
||||||
|
</div>
|
||||||
|
<!--/noindex-->
|
||||||
|
|
||||||
|
<div class="site-overview-wrap sidebar-panel">
|
||||||
|
<div class="site-author motion-element" itemprop="author" itemscope itemtype="http://schema.org/Person">
|
||||||
|
<img class="site-author-image" itemprop="image" alt="llbzow"
|
||||||
|
src="/images/avatar.png">
|
||||||
|
<p class="site-author-name" itemprop="name">llbzow</p>
|
||||||
|
<div class="site-description" itemprop="description"></div>
|
||||||
|
</div>
|
||||||
|
<div class="site-state-wrap motion-element">
|
||||||
|
<nav class="site-state">
|
||||||
|
<div class="site-state-item site-state-posts">
|
||||||
|
<a href="/archives/">
|
||||||
|
|
||||||
|
<span class="site-state-item-count">1</span>
|
||||||
|
<span class="site-state-item-name">日志</span>
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
</nav>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</aside>
|
||||||
|
<div id="sidebar-dimmer"></div>
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</main>
|
||||||
|
|
||||||
|
<footer class="footer">
|
||||||
|
<div class="footer-inner">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<div class="copyright">
|
||||||
|
|
||||||
|
© 2022-06 –
|
||||||
|
<span itemprop="copyrightYear">2022</span>
|
||||||
|
<span class="with-love">
|
||||||
|
<i class="fa fa-heart"></i>
|
||||||
|
</span>
|
||||||
|
<span class="author" itemprop="copyrightHolder">llbzow</span>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!--
|
||||||
|
<div class="powered-by">由 <a href="https://hexo.io/" class="theme-link" rel="noopener" target="_blank">Hexo</a> & <a href="https://theme-next.org/" class="theme-link" rel="noopener" target="_blank">NexT.Gemini</a> 强力驱动
|
||||||
|
</div>
|
||||||
|
-->
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<div class="busuanzi-count">
|
||||||
|
<script async src="https://busuanzi.ibruce.info/busuanzi/2.3/busuanzi.pure.mini.js"></script>
|
||||||
|
<span class="post-meta-item" id="busuanzi_container_site_uv" style="display: none;">
|
||||||
|
<span class="post-meta-item-icon">
|
||||||
|
<i class="fa fa-user"></i>
|
||||||
|
</span>
|
||||||
|
<span class="site-uv" title="总访客量">
|
||||||
|
<span id="busuanzi_value_site_uv"></span>
|
||||||
|
</span>
|
||||||
|
</span>
|
||||||
|
<span class="post-meta-divider">|</span>
|
||||||
|
<span class="post-meta-item" id="busuanzi_container_site_pv" style="display: none;">
|
||||||
|
<span class="post-meta-item-icon">
|
||||||
|
<i class="fa fa-eye"></i>
|
||||||
|
</span>
|
||||||
|
<span class="site-pv" title="总访问量">
|
||||||
|
<span id="busuanzi_value_site_pv"></span>
|
||||||
|
</span>
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</footer>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<script color='0,0,255' opacity='0.5' zIndex='-1' count='99' src="/lib/canvas-nest/canvas-nest.min.js"></script>
|
||||||
|
<script size="300" alpha="0.6" zIndex="-1" src="/lib/canvas-ribbon/canvas-ribbon.js"></script>
|
||||||
|
<script src="/lib/anime.min.js"></script>
|
||||||
|
<script src="/lib/velocity/velocity.min.js"></script>
|
||||||
|
<script src="/lib/velocity/velocity.ui.min.js"></script>
|
||||||
|
|
||||||
|
<script src="/js/utils.js"></script>
|
||||||
|
|
||||||
|
<script src="/js/motion.js"></script>
|
||||||
|
|
||||||
|
|
||||||
|
<script src="/js/schemes/pisces.js"></script>
|
||||||
|
|
||||||
|
|
||||||
|
<script src="/js/next-boot.js"></script>
|
||||||
|
|
||||||
|
|
||||||
|
<script defer src="/lib/three/three.min.js"></script>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<link rel="stylesheet" href="//cdn.jsdelivr.net/npm/gitalk@1/dist/gitalk.min.css">
|
||||||
|
|
||||||
|
<script>
|
||||||
|
NexT.utils.loadComments(document.querySelector('#gitalk-container'), () => {
|
||||||
|
NexT.utils.getScript('//cdn.jsdelivr.net/npm/gitalk@1/dist/gitalk.min.js', () => {
|
||||||
|
var gitalk = new Gitalk({
|
||||||
|
clientID : '1e2867144d855824b913# GitHub Application Client ID',
|
||||||
|
clientSecret: '3c474768436b020bd64b81c163e40c7ac7e3f1d6# GitHub Application Client Secret',
|
||||||
|
repo : 'BlogComments# Repository name to store issues',
|
||||||
|
owner : 'llbzow# GitHub repo owner',
|
||||||
|
admin : ['llbzow# GitHub repo owner and collaborators, only these guys can initialize gitHub issues'],
|
||||||
|
id : '1d77f9ab57d5b9d8daf8c62618619146',
|
||||||
|
language: '',
|
||||||
|
distractionFreeMode: true
|
||||||
|
});
|
||||||
|
gitalk.render('gitalk-container');
|
||||||
|
}, window.Gitalk);
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<script src="/live2dw/lib/L2Dwidget.min.js?094cbace49a39548bed64abff5988b05"></script><script>L2Dwidget.init({"pluginRootPath":"live2dw/","pluginJsPath":"lib/","pluginModelPath":"assets/","tagMode":false,"debug":false,"model":{"jsonPath":"/live2dw/assets/koharu.model.json"},"display":{"position":"left","width":250,"height":500},"mobile":{"show":true},"react":{"opacity":0.9},"log":false});</script></body>
|
||||||
|
</html>
|
||||||
9
images/algolia_logo.svg
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1366 362">
|
||||||
|
<linearGradient id="a" x1="428.258" x2="434.145" y1="404.15" y2="409.85" gradientUnits="userSpaceOnUse" gradientTransform="matrix(94.045 0 0 -94.072 -40381.527 38479.52)">
|
||||||
|
<stop offset="0" stop-color="#00aeff"/>
|
||||||
|
<stop offset="1" stop-color="#3369e7"/>
|
||||||
|
</linearGradient>
|
||||||
|
<path fill="url(#a)" d="M61.8 15.4h242.8c23.9 0 43.4 19.4 43.4 43.4v242.9c0 23.9-19.4 43.4-43.4 43.4H61.8c-23.9 0-43.4-19.4-43.4-43.4v-243c0-23.9 19.4-43.3 43.4-43.3z"/>
|
||||||
|
<path fill="#FFF" d="M187 98.7c-51.4 0-93.1 41.7-93.1 93.2S135.6 285 187 285s93.1-41.7 93.1-93.2-41.6-93.1-93.1-93.1zm0 158.8c-36.2 0-65.6-29.4-65.6-65.6s29.4-65.6 65.6-65.6 65.6 29.4 65.6 65.6-29.3 65.6-65.6 65.6zm0-117.8v48.9c0 1.4 1.5 2.4 2.8 1.7l43.4-22.5c1-.5 1.3-1.7.8-2.7-9-15.8-25.7-26.6-45-27.3-1 0-2 .8-2 1.9zm-60.8-35.9l-5.7-5.7c-5.6-5.6-14.6-5.6-20.2 0l-6.8 6.8c-5.6 5.6-5.6 14.6 0 20.2l5.6 5.6c.9.9 2.2.7 3-.2 3.3-4.5 6.9-8.8 10.9-12.8 4.1-4.1 8.3-7.7 12.9-11 1-.6 1.1-2 .3-2.9zM217.5 89V77.7c0-7.9-6.4-14.3-14.3-14.3h-33.3c-7.9 0-14.3 6.4-14.3 14.3v11.6c0 1.3 1.2 2.2 2.5 1.9 9.3-2.7 19.1-4.1 29-4.1 9.5 0 18.9 1.3 28 3.8 1.2.3 2.4-.6 2.4-1.9z"/>
|
||||||
|
<path fill="#182359" d="M842.5 267.6c0 26.7-6.8 46.2-20.5 58.6-13.7 12.4-34.6 18.6-62.8 18.6-10.3 0-31.7-2-48.8-5.8l6.3-31c14.3 3 33.2 3.8 43.1 3.8 15.7 0 26.9-3.2 33.6-9.6s10-15.9 10-28.5v-6.4c-3.9 1.9-9 3.8-15.3 5.8-6.3 1.9-13.6 2.9-21.8 2.9-10.8 0-20.6-1.7-29.5-5.1-8.9-3.4-16.6-8.4-22.9-15-6.3-6.6-11.3-14.9-14.8-24.8s-5.3-27.6-5.3-40.6c0-12.2 1.9-27.5 5.6-37.7 3.8-10.2 9.2-19 16.5-26.3 7.2-7.3 16-12.9 26.3-17s22.4-6.7 35.5-6.7c12.7 0 24.4 1.6 35.8 3.5 11.4 1.9 21.1 3.9 29 6.1v155.2zm-108.7-77.2c0 16.4 3.6 34.6 10.8 42.2 7.2 7.6 16.5 11.4 27.9 11.4 6.2 0 12.1-.9 17.6-2.6 5.5-1.7 9.9-3.7 13.4-6.1v-97.1c-2.8-.6-14.5-3-25.8-3.3-14.2-.4-25 5.4-32.6 14.7-7.5 9.3-11.3 25.6-11.3 40.8zm294.3 0c0 13.2-1.9 23.2-5.8 34.1s-9.4 20.2-16.5 27.9c-7.1 7.7-15.6 13.7-25.6 17.9s-25.4 6.6-33.1 6.6c-7.7-.1-23-2.3-32.9-6.6-9.9-4.3-18.4-10.2-25.5-17.9-7.1-7.7-12.6-17-16.6-27.9s-6-20.9-6-34.1c0-13.2 1.8-25.9 5.8-36.7 4-10.8 9.6-20 16.8-27.7s15.8-13.6 25.6-17.8c9.9-4.2 20.8-6.2 32.6-6.2s22.7 2.1 32.7 6.2c10 4.2 18.6 10.1 25.6 17.8 7.1 7.7 12.6 16.9 16.6 27.7 4.2 10.8 6.3 23.5 6.3 36.7zm-40 .1c0-16.9-3.7-31-10.9-40.8-7.2-9.9-17.3-14.8-30.2-14.8-12.9 0-23 4.9-30.2 14.8-7.2 9.9-10.7 23.9-10.7 40.8 0 17.1 3.6 28.6 10.8 38.5 7.2 10 17.3 14.9 30.2 14.9 12.9 0 23-5 30.2-14.9 7.2-10 10.8-21.4 10.8-38.5zm127.1 86.4c-64.1.3-64.1-51.8-64.1-60.1L1051 32l39.1-6.2v183.6c0 4.7 0 34.5 25.1 34.6v32.9zm68.9 0h-39.3V108.1l39.3-6.2v175zm-19.7-193.5c13.1 0 23.8-10.6 23.8-23.7S1177.6 36 1164.4 36s-23.8 10.6-23.8 23.7 10.7 23.7 23.8 23.7zm117.4 18.6c12.9 0 23.8 1.6 32.6 4.8 8.8 3.2 15.9 7.7 21.1 13.4s8.9 13.5 11.1 21.7c2.3 8.2 3.4 17.2 3.4 27.1v100.6c-6 1.3-15.1 2.8-27.3 4.6s-25.9 2.7-41.1 2.7c-10.1 0-19.4-1-27.7-2.9-8.4-1.9-15.5-5-21.5-9.3-5.9-4.3-10.5-9.8-13.9-16.6-3.3-6.8-5-16.4-5-26.4 0-9.6 1.9-15.7 5.6-22.3 3.8-6.6 8.9-12 15.3-16.2 6.5-4.2 13.9-7.2 22.4-9s17.4-2.7 26.6-2.7c4.3 0 8.8.3 13.6.8s9.8 1.4 15.2 2.7v-6.4c0-4.5-.5-8.8-1.6-12.8-1.1-4.1-3-7.6-5.6-10.7-2.7-3.1-6.2-5.5-10.6-7.2s-10-3-16.7-3c-9 0-17.2 1.1-24.7 2.4-7.5 1.3-13.7 2.8-18.4 4.5l-4.7-32.1c4.9-1.7 12.2-3.4 21.6-5.1s19.5-2.6 30.3-2.6zm3.3 141.9c12 0 20.9-.7 27.1-1.9v-39.8c-2.2-.6-5.3-1.3-9.4-1.9-4.1-.6-8.6-1-13.6-1-4.3 0-8.7.3-13.1 1-4.4.6-8.4 1.8-11.9 3.5s-6.4 4.1-8.5 7.2c-2.2 3.1-3.2 4.9-3.2 9.6 0 9.2 3.2 14.5 9 18 5.9 3.6 13.7 5.3 23.6 5.3zM512.9 103c12.9 0 23.8 1.6 32.6 4.8 8.8 3.2 15.9 7.7 21.1 13.4 5.3 5.8 8.9 13.5 11.1 21.7 2.3 8.2 3.4 17.2 3.4 27.1v100.6c-6 1.3-15.1 2.8-27.3 4.6-12.2 1.8-25.9 2.7-41.1 2.7-10.1 0-19.4-1-27.7-2.9-8.4-1.9-15.5-5-21.5-9.3-5.9-4.3-10.5-9.8-13.9-16.6-3.3-6.8-5-16.4-5-26.4 0-9.6 1.9-15.7 5.6-22.3 3.8-6.6 8.9-12 15.3-16.2 6.5-4.2 13.9-7.2 22.4-9s17.4-2.7 26.6-2.7c4.3 0 8.8.3 13.6.8 4.7.5 9.8 1.4 15.2 2.7v-6.4c0-4.5-.5-8.8-1.6-12.8-1.1-4.1-3-7.6-5.6-10.7-2.7-3.1-6.2-5.5-10.6-7.2-4.4-1.7-10-3-16.7-3-9 0-17.2 1.1-24.7 2.4-7.5 1.3-13.7 2.8-18.4 4.5l-4.7-32.1c4.9-1.7 12.2-3.4 21.6-5.1 9.4-1.8 19.5-2.6 30.3-2.6zm3.4 142c12 0 20.9-.7 27.1-1.9v-39.8c-2.2-.6-5.3-1.3-9.4-1.9-4.1-.6-8.6-1-13.6-1-4.3 0-8.7.3-13.1 1-4.4.6-8.4 1.8-11.9 3.5s-6.4 4.1-8.5 7.2c-2.2 3.1-3.2 4.9-3.2 9.6 0 9.2 3.2 14.5 9 18s13.7 5.3 23.6 5.3zm158.5 31.9c-64.1.3-64.1-51.8-64.1-60.1L610.6 32l39.1-6.2v183.6c0 4.7 0 34.5 25.1 34.6v32.9z"/>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 4.3 KiB |
BIN
images/apple-touch-icon-next.png
Normal file
|
After Width: | Height: | Size: 1.5 KiB |
BIN
images/avatar.png
Normal file
|
After Width: | Height: | Size: 54 KiB |
BIN
images/background.png
Normal file
|
After Width: | Height: | Size: 3.5 MiB |
121
images/cc-by-nc-nd.svg
Normal file
@@ -0,0 +1,121 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||||
|
<svg
|
||||||
|
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||||
|
xmlns:cc="http://web.resource.org/cc/"
|
||||||
|
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||||
|
xmlns:svg="http://www.w3.org/2000/svg"
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||||
|
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||||
|
width="80"
|
||||||
|
height="15"
|
||||||
|
id="svg2279"
|
||||||
|
sodipodi:version="0.32"
|
||||||
|
inkscape:version="0.45+devel"
|
||||||
|
version="1.0"
|
||||||
|
sodipodi:docname="by-nc-nd.svg"
|
||||||
|
inkscape:output_extension="org.inkscape.output.svg.inkscape">
|
||||||
|
<defs
|
||||||
|
id="defs2281">
|
||||||
|
<clipPath
|
||||||
|
clipPathUnits="userSpaceOnUse"
|
||||||
|
id="clipPath3442">
|
||||||
|
<rect
|
||||||
|
style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.92243534;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||||
|
id="rect3444"
|
||||||
|
width="20.614058"
|
||||||
|
height="12.483703"
|
||||||
|
x="171.99832"
|
||||||
|
y="239.1203" />
|
||||||
|
</clipPath>
|
||||||
|
</defs>
|
||||||
|
<sodipodi:namedview
|
||||||
|
id="base"
|
||||||
|
pagecolor="#ffffff"
|
||||||
|
bordercolor="#999999"
|
||||||
|
borderopacity="1"
|
||||||
|
gridtolerance="10000"
|
||||||
|
guidetolerance="10"
|
||||||
|
objecttolerance="10"
|
||||||
|
inkscape:pageopacity="0.0"
|
||||||
|
inkscape:pageshadow="2"
|
||||||
|
inkscape:zoom="10.5125"
|
||||||
|
inkscape:cx="40"
|
||||||
|
inkscape:cy="7.5"
|
||||||
|
inkscape:document-units="px"
|
||||||
|
inkscape:current-layer="layer1"
|
||||||
|
width="80px"
|
||||||
|
height="15px"
|
||||||
|
showborder="true"
|
||||||
|
inkscape:showpageshadow="false"
|
||||||
|
inkscape:window-width="935"
|
||||||
|
inkscape:window-height="624"
|
||||||
|
inkscape:window-x="50"
|
||||||
|
inkscape:window-y="160" />
|
||||||
|
<metadata
|
||||||
|
id="metadata2284">
|
||||||
|
<rdf:RDF>
|
||||||
|
<cc:Work
|
||||||
|
rdf:about="">
|
||||||
|
<dc:format>image/svg+xml</dc:format>
|
||||||
|
<dc:type
|
||||||
|
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||||
|
</cc:Work>
|
||||||
|
</rdf:RDF>
|
||||||
|
</metadata>
|
||||||
|
<g
|
||||||
|
inkscape:label="Layer 1"
|
||||||
|
inkscape:groupmode="layer"
|
||||||
|
id="layer1">
|
||||||
|
<g
|
||||||
|
id="BY-NC-ND"
|
||||||
|
transform="matrix(0.9875019,0,0,0.9333518,-323.90064,-411.87964)">
|
||||||
|
<g
|
||||||
|
id="g3783"
|
||||||
|
transform="translate(158,204)">
|
||||||
|
<rect
|
||||||
|
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1.04161763;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||||
|
id="rect3785"
|
||||||
|
width="80"
|
||||||
|
height="15"
|
||||||
|
x="170.5"
|
||||||
|
y="237.86218" />
|
||||||
|
<rect
|
||||||
|
y="239.36218"
|
||||||
|
x="172"
|
||||||
|
height="12"
|
||||||
|
width="77"
|
||||||
|
id="rect3787"
|
||||||
|
style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.92243534;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
|
||||||
|
<path
|
||||||
|
style="fill:#abb1aa;fill-opacity:1;stroke:none;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.46913578"
|
||||||
|
d="M 171.99996,239.37505 L 171.99996,251.37505 L 192.33474,251.37505 C 193.64339,249.62474 194.52652,247.59057 194.52652,245.37505 C 194.52652,243.17431 193.65859,241.1179 192.36599,239.37505 L 171.99996,239.37505 z"
|
||||||
|
id="path3789"
|
||||||
|
sodipodi:nodetypes="cccscc" />
|
||||||
|
<g
|
||||||
|
id="g3791"
|
||||||
|
transform="matrix(0.9612533,0,0,0.9612533,6.8341566,9.5069994)"
|
||||||
|
clip-path="url(#clipPath3442)">
|
||||||
|
<path
|
||||||
|
id="path3793"
|
||||||
|
cx="296.35416"
|
||||||
|
ry="22.939548"
|
||||||
|
cy="264.3577"
|
||||||
|
type="arc"
|
||||||
|
rx="22.939548"
|
||||||
|
d="M 190.06417,245.36206 C 190.06667,249.25405 186.91326,252.41072 183.02153,252.41323 C 179.12979,252.41572 175.97262,249.26256 175.97036,245.3706 C 175.97036,245.36783 175.97036,245.36507 175.97036,245.36206 C 175.9681,241.47007 179.12126,238.3134 183.013,238.31113 C 186.90524,238.30864 190.06191,241.46181 190.06417,245.3538 C 190.06417,245.35628 190.06417,245.35929 190.06417,245.36206 z"
|
||||||
|
style="opacity:1;fill:#ffffff" />
|
||||||
|
<path
|
||||||
|
d="M 188.74576,239.62226 C 190.30843,241.18492 191.08988,243.09869 191.08988,245.36206 C 191.08988,247.62592 190.32197,249.51913 188.78615,251.04165 C 187.15627,252.64521 185.22995,253.44672 183.00722,253.44672 C 180.81132,253.44672 178.91837,252.65172 177.32887,251.06174 C 175.73912,249.47198 174.94436,247.57226 174.94436,245.36206 C 174.94436,243.15235 175.73912,241.23908 177.32887,239.62226 C 178.87799,238.0591 180.77094,237.27764 183.00722,237.27764 C 185.2706,237.27764 187.18312,238.05909 188.74576,239.62226 z M 178.38093,240.67355 C 177.05978,242.008 176.39945,243.57116 176.39945,245.36429 C 176.39945,247.15694 177.05326,248.70682 178.36062,250.01393 C 179.66822,251.32153 181.22487,251.97509 183.03105,251.97509 C 184.83724,251.97509 186.40716,251.31502 187.74161,249.99412 C 189.0086,248.76725 189.64234,247.22467 189.64234,245.36429 C 189.64234,243.51799 188.99831,241.95084 187.71101,240.66354 C 186.42396,239.37649 184.86406,238.7327 183.03105,238.7327 C 181.19804,238.73271 179.64767,239.37975 178.38093,240.67355 z M 181.85761,244.57559 C 181.65573,244.13545 181.35354,243.91525 180.95051,243.91525 C 180.23802,243.91525 179.8819,244.39501 179.8819,245.35404 C 179.8819,246.31328 180.23802,246.79255 180.95051,246.79255 C 181.421,246.79255 181.75705,246.55908 181.95869,246.09111 L 182.94629,246.61701 C 182.47555,247.45339 181.76934,247.87168 180.82763,247.87168 C 180.10136,247.87168 179.51953,247.64899 179.08265,247.20409 C 178.64502,246.7587 178.42684,246.14477 178.42684,245.36206 C 178.42684,244.59313 178.65204,243.98271 179.10271,243.53056 C 179.55338,243.07838 180.11463,242.8524 180.7875,242.8524 C 181.78288,242.8524 182.49561,243.24465 182.92647,244.02835 L 181.85761,244.57559 z M 186.50398,244.57559 C 186.30184,244.13545 186.00567,243.91525 185.61517,243.91525 C 184.88839,243.91525 184.52474,244.39501 184.52474,245.35404 C 184.52474,246.31328 184.88839,246.79255 185.61517,246.79255 C 186.08642,246.79255 186.41644,246.55908 186.6048,246.09111 L 187.61447,246.61701 C 187.14448,247.45339 186.43926,247.87168 185.49931,247.87168 C 184.77403,247.87168 184.19346,247.64899 183.75683,247.20409 C 183.32096,246.7587 183.10254,246.14477 183.10254,245.36206 C 183.10254,244.59313 183.32422,243.98271 183.76737,243.53056 C 184.21026,243.07838 184.77404,242.8524 185.4592,242.8524 C 186.45282,242.8524 187.16455,243.24465 187.5939,244.02835 L 186.50398,244.57559 z"
|
||||||
|
id="path3795"
|
||||||
|
style="opacity:1" />
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
<path
|
||||||
|
id="text3797"
|
||||||
|
d="M 357.4197,448.68503 C 357.66518,448.68504 357.85131,448.63146 357.9781,448.52428 C 358.10488,448.41712 358.16827,448.25905 358.16828,448.05008 C 358.16827,447.84378 358.10488,447.68705 357.9781,447.57988 C 357.85131,447.47004 357.66518,447.41512 357.4197,447.41511 L 356.55784,447.41511 L 356.55784,448.68503 L 357.4197,448.68503 M 357.4723,451.30929 C 357.78522,451.30929 358.0199,451.24364 358.17637,451.11236 C 358.33552,450.98109 358.4151,450.78283 358.4151,450.51759 C 358.4151,450.25771 358.33686,450.06347 358.18041,449.93488 C 358.02396,449.80359 357.78792,449.73796 357.4723,449.73795 L 356.55784,449.73795 L 356.55784,451.30929 L 357.4723,451.30929 M 358.92089,449.15122 C 359.25538,449.24767 359.51434,449.42583 359.69779,449.68571 C 359.88121,449.94559 359.97293,450.26441 359.97294,450.64217 C 359.97293,451.22087 359.776,451.65222 359.38217,451.93621 C 358.98833,452.2202 358.38947,452.36219 357.5856,452.36219 L 355.00001,452.36219 L 355.00001,446.3622 L 357.33878,446.3622 C 358.17771,446.36221 358.78466,446.48813 359.15962,446.73996 C 359.53727,446.99181 359.7261,447.39502 359.7261,447.9496 C 359.7261,448.24164 359.65732,448.4908 359.51975,448.69709 C 359.38217,448.90072 359.18255,449.05209 358.92089,449.15122 M 359.83746,446.3622 L 361.54096,446.3622 L 362.91671,448.50018 L 364.29245,446.3622 L 366,446.3622 L 363.69764,449.8344 L 363.69764,452.36219 L 362.13982,452.36219 L 362.13982,449.8344 L 359.83746,446.3622 M 365.15837,449.40842 L 367.69946,449.40842 L 367.69946,450.57787 L 365.15837,450.57787 L 365.15837,449.40842 M 368.9174,446.3622 L 370.65732,446.3622 L 372.85447,450.47741 L 372.85447,446.3622 L 374.33138,446.3622 L 374.33138,452.36219 L 372.59146,452.36219 L 370.3943,448.24699 L 370.3943,452.36219 L 368.9174,452.36219 L 368.9174,446.3622 M 380.65173,452.03266 C 380.36579,452.18002 380.0677,452.2912 379.75749,452.36622 C 379.44727,452.44123 379.12357,452.47875 378.78638,452.47875 C 377.78019,452.47875 376.98307,452.20011 376.395,451.64284 C 375.80693,451.08289 375.5129,450.32469 375.5129,449.36823 C 375.5129,448.40909 375.80693,447.65089 376.395,447.09361 C 376.98307,446.53367 377.78019,446.2537 378.78638,446.25369 C 379.12357,446.2537 379.44727,446.29121 379.75749,446.36621 C 380.0677,446.44124 380.36579,446.55243 380.65173,446.69977 L 380.65173,447.94157 C 380.36309,447.746 380.0785,447.60266 379.79796,447.51156 C 379.5174,447.42047 379.22203,447.37493 378.91181,447.37493 C 378.35611,447.37493 377.91911,447.55175 377.6008,447.9054 C 377.28249,448.25905 377.12333,448.74666 377.12333,449.36823 C 377.12333,449.98712 377.28249,450.47339 377.6008,450.82703 C 377.91911,451.18069 378.35611,451.35751 378.91181,451.35751 C 379.22203,451.35751 379.5174,451.31197 379.79796,451.22087 C 380.0785,451.12978 380.36309,450.98644 380.65173,450.79086 L 380.65173,452.03266 M 381.82921,449.40842 L 384.3703,449.40842 L 384.3703,450.57787 L 381.82921,450.57787 L 381.82921,449.40842 M 385.58824,446.3622 L 387.32815,446.3622 L 389.52531,450.47741 L 389.52531,446.3622 L 391.00222,446.3622 L 391.00222,452.36219 L 389.26229,452.36219 L 387.06515,448.24699 L 387.06515,452.36219 L 385.58824,452.36219 L 385.58824,446.3622 M 394.08956,447.53165 L 394.08956,451.19274 L 394.64795,451.19274 C 395.28456,451.19274 395.77013,451.03602 396.10462,450.72255 C 396.44181,450.40909 396.61041,449.95363 396.61042,449.35617 C 396.61041,448.7614 396.44317,448.30862 396.10867,447.99783 C 395.77417,447.68705 395.28726,447.53166 394.64795,447.53165 L 394.08956,447.53165 M 392.53172,446.3622 L 394.17453,446.3622 C 395.09169,446.36221 395.77417,446.42784 396.22197,446.55912 C 396.67245,446.68772 397.0582,446.90742 397.37922,447.2182 C 397.66246,447.48879 397.87286,447.80092 398.01044,448.15456 C 398.14801,448.50822 398.2168,448.90875 398.21681,449.35617 C 398.2168,449.80896 398.14801,450.21351 398.01044,450.56983 C 397.87286,450.92349 397.66246,451.23561 397.37922,451.50621 C 397.05551,451.81699 396.66706,452.03802 396.21387,452.1693 C 395.76069,452.29789 395.0809,452.36219 394.17453,452.36219 L 392.53172,452.36219 L 392.53172,446.3622"
|
||||||
|
style="font-size:8.25858784px;font-style:normal;font-weight:bold;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:'Bitstream Vera Sans'" />
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 11 KiB |
121
images/cc-by-nc-sa.svg
Normal file
@@ -0,0 +1,121 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||||
|
<svg
|
||||||
|
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||||
|
xmlns:cc="http://web.resource.org/cc/"
|
||||||
|
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||||
|
xmlns:svg="http://www.w3.org/2000/svg"
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||||
|
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||||
|
width="80"
|
||||||
|
height="15"
|
||||||
|
id="svg2279"
|
||||||
|
sodipodi:version="0.32"
|
||||||
|
inkscape:version="0.45+devel"
|
||||||
|
version="1.0"
|
||||||
|
sodipodi:docname="by-nc-sa.svg"
|
||||||
|
inkscape:output_extension="org.inkscape.output.svg.inkscape">
|
||||||
|
<defs
|
||||||
|
id="defs2281">
|
||||||
|
<clipPath
|
||||||
|
clipPathUnits="userSpaceOnUse"
|
||||||
|
id="clipPath3442">
|
||||||
|
<rect
|
||||||
|
style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.92243534;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||||
|
id="rect3444"
|
||||||
|
width="20.614058"
|
||||||
|
height="12.483703"
|
||||||
|
x="171.99832"
|
||||||
|
y="239.1203" />
|
||||||
|
</clipPath>
|
||||||
|
</defs>
|
||||||
|
<sodipodi:namedview
|
||||||
|
id="base"
|
||||||
|
pagecolor="#ffffff"
|
||||||
|
bordercolor="#999999"
|
||||||
|
borderopacity="1"
|
||||||
|
gridtolerance="10000"
|
||||||
|
guidetolerance="10"
|
||||||
|
objecttolerance="10"
|
||||||
|
inkscape:pageopacity="0.0"
|
||||||
|
inkscape:pageshadow="2"
|
||||||
|
inkscape:zoom="10.5125"
|
||||||
|
inkscape:cx="40"
|
||||||
|
inkscape:cy="7.5"
|
||||||
|
inkscape:document-units="px"
|
||||||
|
inkscape:current-layer="layer1"
|
||||||
|
width="80px"
|
||||||
|
height="15px"
|
||||||
|
showborder="true"
|
||||||
|
inkscape:showpageshadow="false"
|
||||||
|
inkscape:window-width="935"
|
||||||
|
inkscape:window-height="624"
|
||||||
|
inkscape:window-x="50"
|
||||||
|
inkscape:window-y="160" />
|
||||||
|
<metadata
|
||||||
|
id="metadata2284">
|
||||||
|
<rdf:RDF>
|
||||||
|
<cc:Work
|
||||||
|
rdf:about="">
|
||||||
|
<dc:format>image/svg+xml</dc:format>
|
||||||
|
<dc:type
|
||||||
|
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||||
|
</cc:Work>
|
||||||
|
</rdf:RDF>
|
||||||
|
</metadata>
|
||||||
|
<g
|
||||||
|
inkscape:label="Layer 1"
|
||||||
|
inkscape:groupmode="layer"
|
||||||
|
id="layer1">
|
||||||
|
<g
|
||||||
|
id="BY-NC-SA"
|
||||||
|
transform="matrix(0.9875019,0,0,0.9333518,-323.90064,-331.6114)">
|
||||||
|
<g
|
||||||
|
transform="translate(158,118)"
|
||||||
|
id="g3729">
|
||||||
|
<rect
|
||||||
|
y="237.86218"
|
||||||
|
x="170.5"
|
||||||
|
height="15"
|
||||||
|
width="80"
|
||||||
|
id="rect3731"
|
||||||
|
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1.04161763;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
|
||||||
|
<rect
|
||||||
|
style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.92243534;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||||
|
id="rect3733"
|
||||||
|
width="77"
|
||||||
|
height="12"
|
||||||
|
x="172"
|
||||||
|
y="239.36218" />
|
||||||
|
<path
|
||||||
|
sodipodi:nodetypes="cccscc"
|
||||||
|
id="path3735"
|
||||||
|
d="M 171.99996,239.37505 L 171.99996,251.37505 L 192.33474,251.37505 C 193.64339,249.62474 194.52652,247.59057 194.52652,245.37505 C 194.52652,243.17431 193.65859,241.1179 192.36599,239.37505 L 171.99996,239.37505 z"
|
||||||
|
style="fill:#abb1aa;fill-opacity:1;stroke:none;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.46913578" />
|
||||||
|
<g
|
||||||
|
clip-path="url(#clipPath3442)"
|
||||||
|
transform="matrix(0.9612533,0,0,0.9612533,6.8341566,9.5069994)"
|
||||||
|
id="g3737">
|
||||||
|
<path
|
||||||
|
style="opacity:1;fill:#ffffff"
|
||||||
|
d="M 190.06417,245.36206 C 190.06667,249.25405 186.91326,252.41072 183.02153,252.41323 C 179.12979,252.41572 175.97262,249.26256 175.97036,245.3706 C 175.97036,245.36783 175.97036,245.36507 175.97036,245.36206 C 175.9681,241.47007 179.12126,238.3134 183.013,238.31113 C 186.90524,238.30864 190.06191,241.46181 190.06417,245.3538 C 190.06417,245.35628 190.06417,245.35929 190.06417,245.36206 z"
|
||||||
|
rx="22.939548"
|
||||||
|
type="arc"
|
||||||
|
cy="264.3577"
|
||||||
|
ry="22.939548"
|
||||||
|
cx="296.35416"
|
||||||
|
id="path3739" />
|
||||||
|
<path
|
||||||
|
style="opacity:1"
|
||||||
|
id="path3741"
|
||||||
|
d="M 188.74576,239.62226 C 190.30843,241.18492 191.08988,243.09869 191.08988,245.36206 C 191.08988,247.62592 190.32197,249.51913 188.78615,251.04165 C 187.15627,252.64521 185.22995,253.44672 183.00722,253.44672 C 180.81132,253.44672 178.91837,252.65172 177.32887,251.06174 C 175.73912,249.47198 174.94436,247.57226 174.94436,245.36206 C 174.94436,243.15235 175.73912,241.23908 177.32887,239.62226 C 178.87799,238.0591 180.77094,237.27764 183.00722,237.27764 C 185.2706,237.27764 187.18312,238.05909 188.74576,239.62226 z M 178.38093,240.67355 C 177.05978,242.008 176.39945,243.57116 176.39945,245.36429 C 176.39945,247.15694 177.05326,248.70682 178.36062,250.01393 C 179.66822,251.32153 181.22487,251.97509 183.03105,251.97509 C 184.83724,251.97509 186.40716,251.31502 187.74161,249.99412 C 189.0086,248.76725 189.64234,247.22467 189.64234,245.36429 C 189.64234,243.51799 188.99831,241.95084 187.71101,240.66354 C 186.42396,239.37649 184.86406,238.7327 183.03105,238.7327 C 181.19804,238.73271 179.64767,239.37975 178.38093,240.67355 z M 181.85761,244.57559 C 181.65573,244.13545 181.35354,243.91525 180.95051,243.91525 C 180.23802,243.91525 179.8819,244.39501 179.8819,245.35404 C 179.8819,246.31328 180.23802,246.79255 180.95051,246.79255 C 181.421,246.79255 181.75705,246.55908 181.95869,246.09111 L 182.94629,246.61701 C 182.47555,247.45339 181.76934,247.87168 180.82763,247.87168 C 180.10136,247.87168 179.51953,247.64899 179.08265,247.20409 C 178.64502,246.7587 178.42684,246.14477 178.42684,245.36206 C 178.42684,244.59313 178.65204,243.98271 179.10271,243.53056 C 179.55338,243.07838 180.11463,242.8524 180.7875,242.8524 C 181.78288,242.8524 182.49561,243.24465 182.92647,244.02835 L 181.85761,244.57559 z M 186.50398,244.57559 C 186.30184,244.13545 186.00567,243.91525 185.61517,243.91525 C 184.88839,243.91525 184.52474,244.39501 184.52474,245.35404 C 184.52474,246.31328 184.88839,246.79255 185.61517,246.79255 C 186.08642,246.79255 186.41644,246.55908 186.6048,246.09111 L 187.61447,246.61701 C 187.14448,247.45339 186.43926,247.87168 185.49931,247.87168 C 184.77403,247.87168 184.19346,247.64899 183.75683,247.20409 C 183.32096,246.7587 183.10254,246.14477 183.10254,245.36206 C 183.10254,244.59313 183.32422,243.98271 183.76737,243.53056 C 184.21026,243.07838 184.77404,242.8524 185.4592,242.8524 C 186.45282,242.8524 187.16455,243.24465 187.5939,244.02835 L 186.50398,244.57559 z" />
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
<path
|
||||||
|
id="text3743"
|
||||||
|
d="M 357.4197,362.68502 C 357.66518,362.68502 357.85131,362.63144 357.9781,362.52427 C 358.10488,362.41711 358.16827,362.25904 358.16828,362.05005 C 358.16827,361.84377 358.10488,361.68704 357.9781,361.57986 C 357.85131,361.47002 357.66518,361.4151 357.4197,361.4151 L 356.55784,361.4151 L 356.55784,362.68502 L 357.4197,362.68502 M 357.4723,365.30926 C 357.78522,365.30926 358.0199,365.24363 358.17637,365.11235 C 358.33552,364.98107 358.4151,364.78281 358.4151,364.51758 C 358.4151,364.2577 358.33686,364.06346 358.18041,363.93485 C 358.02396,363.80358 357.78792,363.73793 357.4723,363.73793 L 356.55784,363.73793 L 356.55784,365.30926 L 357.4723,365.30926 M 358.92089,363.15119 C 359.25538,363.24765 359.51434,363.42581 359.69779,363.68569 C 359.88121,363.94557 359.97293,364.26439 359.97294,364.64215 C 359.97293,365.22086 359.776,365.6522 359.38217,365.93619 C 358.98833,366.22019 358.38947,366.36218 357.5856,366.36218 L 355.00001,366.36218 L 355.00001,360.36218 L 357.33878,360.36218 C 358.17771,360.36218 358.78466,360.48811 359.15962,360.73994 C 359.53727,360.99179 359.7261,361.39501 359.7261,361.94959 C 359.7261,362.24162 359.65732,362.49078 359.51975,362.69708 C 359.38217,362.9007 359.18255,363.05207 358.92089,363.15119 M 359.83746,360.36218 L 361.54096,360.36218 L 362.91671,362.50016 L 364.29245,360.36218 L 366,360.36218 L 363.69764,363.83438 L 363.69764,366.36218 L 362.13982,366.36218 L 362.13982,363.83438 L 359.83746,360.36218 M 365.15837,363.40839 L 367.69946,363.40839 L 367.69946,364.57785 L 365.15837,364.57785 L 365.15837,363.40839 M 368.9174,360.36218 L 370.65732,360.36218 L 372.85447,364.47738 L 372.85447,360.36218 L 374.33138,360.36218 L 374.33138,366.36218 L 372.59146,366.36218 L 370.3943,362.24698 L 370.3943,366.36218 L 368.9174,366.36218 L 368.9174,360.36218 M 380.65173,366.03264 C 380.36579,366.17999 380.0677,366.29118 379.75749,366.3662 C 379.44727,366.44122 379.12357,366.47872 378.78638,366.47872 C 377.78019,366.47872 376.98307,366.20009 376.395,365.64282 C 375.80693,365.08288 375.5129,364.32468 375.5129,363.36821 C 375.5129,362.40907 375.80693,361.65087 376.395,361.0936 C 376.98307,360.53366 377.78019,360.25368 378.78638,360.25367 C 379.12357,360.25368 379.44727,360.29119 379.75749,360.3662 C 380.0677,360.44122 380.36579,360.55241 380.65173,360.69976 L 380.65173,361.94156 C 380.36309,361.74597 380.0785,361.60265 379.79796,361.51155 C 379.5174,361.42046 379.22203,361.37492 378.91181,361.37491 C 378.35611,361.37492 377.91911,361.55174 377.6008,361.90538 C 377.28249,362.25904 377.12333,362.74665 377.12333,363.36821 C 377.12333,363.9871 377.28249,364.47337 377.6008,364.82702 C 377.91911,365.18067 378.35611,365.35749 378.91181,365.35749 C 379.22203,365.35749 379.5174,365.31195 379.79796,365.22086 C 380.0785,365.12976 380.36309,364.98643 380.65173,364.79085 L 380.65173,366.03264 M 381.82921,363.40839 L 384.3703,363.40839 L 384.3703,364.57785 L 381.82921,364.57785 L 381.82921,363.40839 M 389.79236,360.55107 L 389.79236,361.82099 C 389.46056,361.67364 389.13686,361.56245 388.82125,361.48743 C 388.50563,361.41242 388.20756,361.37492 387.92701,361.37491 C 387.55475,361.37492 387.2796,361.42581 387.10156,361.52762 C 386.92352,361.62943 386.8345,361.7875 386.83451,362.00183 C 386.8345,362.16259 386.89385,362.28851 387.01255,362.3796 C 387.13393,362.46801 387.35244,362.54437 387.66804,362.60866 L 388.33165,362.74129 C 389.00333,362.87525 389.4808,363.07886 389.76405,363.35214 C 390.04728,363.62541 390.1889,364.01389 390.18891,364.51758 C 390.1889,365.17933 389.99063,365.67229 389.5941,365.99647 C 389.20025,366.31797 388.59735,366.47872 387.78539,366.47872 C 387.40234,366.47872 387.01794,366.44255 386.63219,366.37022 C 386.24644,366.29788 385.86069,366.19072 385.47494,366.04871 L 385.47494,364.74262 C 385.86069,364.94624 386.23295,365.10029 386.59173,365.20478 C 386.9532,365.30658 387.30118,365.35749 387.63567,365.35749 C 387.97556,365.35749 388.23588,365.30123 388.41662,365.18871 C 388.59735,365.07618 388.68771,364.91543 388.68772,364.70646 C 388.68771,364.51891 388.62567,364.37424 388.50159,364.27242 C 388.38019,364.17062 388.13607,364.07954 387.76921,363.99915 L 387.1663,363.86653 C 386.56205,363.73793 386.11965,363.53298 385.83911,363.25167 C 385.56127,362.97035 385.42234,362.59125 385.42234,362.11435 C 385.42234,361.51691 385.61656,361.05743 386.00501,360.73592 C 386.39346,360.41443 386.95185,360.25368 387.68019,360.25367 C 388.01198,360.25368 388.35322,360.27914 388.70391,360.33003 C 389.05459,360.37826 389.4174,360.45194 389.79236,360.55107 M 395.22657,365.26908 L 392.79069,365.26908 L 392.40629,366.36218 L 390.84037,366.36218 L 393.07798,360.36218 L 394.93524,360.36218 L 397.17286,366.36218 L 395.60693,366.36218 L 395.22657,365.26908 M 393.17914,364.15588 L 394.83409,364.15588 L 394.00863,361.76875 L 393.17914,364.15588"
|
||||||
|
style="font-size:8.25858784px;font-style:normal;font-weight:bold;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:'Bitstream Vera Sans'" />
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 12 KiB |
121
images/cc-by-nc.svg
Normal file
@@ -0,0 +1,121 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||||
|
<svg
|
||||||
|
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||||
|
xmlns:cc="http://web.resource.org/cc/"
|
||||||
|
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||||
|
xmlns:svg="http://www.w3.org/2000/svg"
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||||
|
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||||
|
width="80"
|
||||||
|
height="15"
|
||||||
|
id="svg2279"
|
||||||
|
sodipodi:version="0.32"
|
||||||
|
inkscape:version="0.45+devel"
|
||||||
|
version="1.0"
|
||||||
|
sodipodi:docname="by-nc.svg"
|
||||||
|
inkscape:output_extension="org.inkscape.output.svg.inkscape">
|
||||||
|
<defs
|
||||||
|
id="defs2281">
|
||||||
|
<clipPath
|
||||||
|
clipPathUnits="userSpaceOnUse"
|
||||||
|
id="clipPath3442">
|
||||||
|
<rect
|
||||||
|
style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.92243534;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||||
|
id="rect3444"
|
||||||
|
width="20.614058"
|
||||||
|
height="12.483703"
|
||||||
|
x="171.99832"
|
||||||
|
y="239.1203" />
|
||||||
|
</clipPath>
|
||||||
|
</defs>
|
||||||
|
<sodipodi:namedview
|
||||||
|
id="base"
|
||||||
|
pagecolor="#ffffff"
|
||||||
|
bordercolor="#999999"
|
||||||
|
borderopacity="1"
|
||||||
|
gridtolerance="10000"
|
||||||
|
guidetolerance="10"
|
||||||
|
objecttolerance="10"
|
||||||
|
inkscape:pageopacity="0.0"
|
||||||
|
inkscape:pageshadow="2"
|
||||||
|
inkscape:zoom="10.5125"
|
||||||
|
inkscape:cx="40"
|
||||||
|
inkscape:cy="7.5"
|
||||||
|
inkscape:document-units="px"
|
||||||
|
inkscape:current-layer="layer1"
|
||||||
|
width="80px"
|
||||||
|
height="15px"
|
||||||
|
showborder="true"
|
||||||
|
inkscape:showpageshadow="false"
|
||||||
|
inkscape:window-width="935"
|
||||||
|
inkscape:window-height="624"
|
||||||
|
inkscape:window-x="50"
|
||||||
|
inkscape:window-y="160" />
|
||||||
|
<metadata
|
||||||
|
id="metadata2284">
|
||||||
|
<rdf:RDF>
|
||||||
|
<cc:Work
|
||||||
|
rdf:about="">
|
||||||
|
<dc:format>image/svg+xml</dc:format>
|
||||||
|
<dc:type
|
||||||
|
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||||
|
</cc:Work>
|
||||||
|
</rdf:RDF>
|
||||||
|
</metadata>
|
||||||
|
<g
|
||||||
|
inkscape:label="Layer 1"
|
||||||
|
inkscape:groupmode="layer"
|
||||||
|
id="layer1">
|
||||||
|
<g
|
||||||
|
id="BY-NC"
|
||||||
|
transform="matrix(0.9875019,0,0,0.9333518,-323.90064,-302.67749)">
|
||||||
|
<g
|
||||||
|
id="g3711"
|
||||||
|
transform="translate(158,87)">
|
||||||
|
<rect
|
||||||
|
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1.04161763;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||||
|
id="rect3713"
|
||||||
|
width="80"
|
||||||
|
height="15"
|
||||||
|
x="170.5"
|
||||||
|
y="237.86218" />
|
||||||
|
<rect
|
||||||
|
y="239.36218"
|
||||||
|
x="172"
|
||||||
|
height="12"
|
||||||
|
width="77"
|
||||||
|
id="rect3715"
|
||||||
|
style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.92243534;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
|
||||||
|
<path
|
||||||
|
style="fill:#abb1aa;fill-opacity:1;stroke:none;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.46913578"
|
||||||
|
d="M 171.99996,239.37505 L 171.99996,251.37505 L 192.33474,251.37505 C 193.64339,249.62474 194.52652,247.59057 194.52652,245.37505 C 194.52652,243.17431 193.65859,241.1179 192.36599,239.37505 L 171.99996,239.37505 z"
|
||||||
|
id="path3717"
|
||||||
|
sodipodi:nodetypes="cccscc" />
|
||||||
|
<g
|
||||||
|
id="g3719"
|
||||||
|
transform="matrix(0.9612533,0,0,0.9612533,6.8341566,9.5069994)"
|
||||||
|
clip-path="url(#clipPath3442)">
|
||||||
|
<path
|
||||||
|
id="path3721"
|
||||||
|
cx="296.35416"
|
||||||
|
ry="22.939548"
|
||||||
|
cy="264.3577"
|
||||||
|
type="arc"
|
||||||
|
rx="22.939548"
|
||||||
|
d="M 190.06417,245.36206 C 190.06667,249.25405 186.91326,252.41072 183.02153,252.41323 C 179.12979,252.41572 175.97262,249.26256 175.97036,245.3706 C 175.97036,245.36783 175.97036,245.36507 175.97036,245.36206 C 175.9681,241.47007 179.12126,238.3134 183.013,238.31113 C 186.90524,238.30864 190.06191,241.46181 190.06417,245.3538 C 190.06417,245.35628 190.06417,245.35929 190.06417,245.36206 z"
|
||||||
|
style="opacity:1;fill:#ffffff" />
|
||||||
|
<path
|
||||||
|
d="M 188.74576,239.62226 C 190.30843,241.18492 191.08988,243.09869 191.08988,245.36206 C 191.08988,247.62592 190.32197,249.51913 188.78615,251.04165 C 187.15627,252.64521 185.22995,253.44672 183.00722,253.44672 C 180.81132,253.44672 178.91837,252.65172 177.32887,251.06174 C 175.73912,249.47198 174.94436,247.57226 174.94436,245.36206 C 174.94436,243.15235 175.73912,241.23908 177.32887,239.62226 C 178.87799,238.0591 180.77094,237.27764 183.00722,237.27764 C 185.2706,237.27764 187.18312,238.05909 188.74576,239.62226 z M 178.38093,240.67355 C 177.05978,242.008 176.39945,243.57116 176.39945,245.36429 C 176.39945,247.15694 177.05326,248.70682 178.36062,250.01393 C 179.66822,251.32153 181.22487,251.97509 183.03105,251.97509 C 184.83724,251.97509 186.40716,251.31502 187.74161,249.99412 C 189.0086,248.76725 189.64234,247.22467 189.64234,245.36429 C 189.64234,243.51799 188.99831,241.95084 187.71101,240.66354 C 186.42396,239.37649 184.86406,238.7327 183.03105,238.7327 C 181.19804,238.73271 179.64767,239.37975 178.38093,240.67355 z M 181.85761,244.57559 C 181.65573,244.13545 181.35354,243.91525 180.95051,243.91525 C 180.23802,243.91525 179.8819,244.39501 179.8819,245.35404 C 179.8819,246.31328 180.23802,246.79255 180.95051,246.79255 C 181.421,246.79255 181.75705,246.55908 181.95869,246.09111 L 182.94629,246.61701 C 182.47555,247.45339 181.76934,247.87168 180.82763,247.87168 C 180.10136,247.87168 179.51953,247.64899 179.08265,247.20409 C 178.64502,246.7587 178.42684,246.14477 178.42684,245.36206 C 178.42684,244.59313 178.65204,243.98271 179.10271,243.53056 C 179.55338,243.07838 180.11463,242.8524 180.7875,242.8524 C 181.78288,242.8524 182.49561,243.24465 182.92647,244.02835 L 181.85761,244.57559 z M 186.50398,244.57559 C 186.30184,244.13545 186.00567,243.91525 185.61517,243.91525 C 184.88839,243.91525 184.52474,244.39501 184.52474,245.35404 C 184.52474,246.31328 184.88839,246.79255 185.61517,246.79255 C 186.08642,246.79255 186.41644,246.55908 186.6048,246.09111 L 187.61447,246.61701 C 187.14448,247.45339 186.43926,247.87168 185.49931,247.87168 C 184.77403,247.87168 184.19346,247.64899 183.75683,247.20409 C 183.32096,246.7587 183.10254,246.14477 183.10254,245.36206 C 183.10254,244.59313 183.32422,243.98271 183.76737,243.53056 C 184.21026,243.07838 184.77404,242.8524 185.4592,242.8524 C 186.45282,242.8524 187.16455,243.24465 187.5939,244.02835 L 186.50398,244.57559 z"
|
||||||
|
id="path3723"
|
||||||
|
style="opacity:1" />
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
<path
|
||||||
|
id="text3725"
|
||||||
|
d="M 357.4197,331.68502 C 357.66518,331.68502 357.85131,331.63144 357.9781,331.52427 C 358.10488,331.4171 358.16827,331.25904 358.16828,331.05005 C 358.16827,330.84377 358.10488,330.68703 357.9781,330.57986 C 357.85131,330.47002 357.66518,330.41509 357.4197,330.41509 L 356.55784,330.41509 L 356.55784,331.68502 L 357.4197,331.68502 M 357.4723,334.30926 C 357.78522,334.30926 358.0199,334.24363 358.17637,334.11235 C 358.33552,333.98107 358.4151,333.7828 358.4151,333.51757 C 358.4151,333.25769 358.33686,333.06346 358.18041,332.93485 C 358.02396,332.80358 357.78792,332.73793 357.4723,332.73793 L 356.55784,332.73793 L 356.55784,334.30926 L 357.4723,334.30926 M 358.92089,332.15119 C 359.25538,332.24765 359.51434,332.42581 359.69779,332.68569 C 359.88121,332.94557 359.97293,333.26439 359.97294,333.64215 C 359.97293,334.22085 359.776,334.6522 359.38217,334.93619 C 358.98833,335.22018 358.38947,335.36218 357.5856,335.36218 L 355.00001,335.36218 L 355.00001,329.36218 L 357.33878,329.36218 C 358.17771,329.36218 358.78466,329.48811 359.15962,329.73994 C 359.53727,329.99178 359.7261,330.395 359.7261,330.94958 C 359.7261,331.24162 359.65732,331.49078 359.51975,331.69708 C 359.38217,331.9007 359.18255,332.05207 358.92089,332.15119 M 359.83746,329.36218 L 361.54096,329.36218 L 362.91671,331.50015 L 364.29245,329.36218 L 366,329.36218 L 363.69764,332.83438 L 363.69764,335.36218 L 362.13982,335.36218 L 362.13982,332.83438 L 359.83746,329.36218 M 365.15837,332.40839 L 367.69946,332.40839 L 367.69946,333.57785 L 365.15837,333.57785 L 365.15837,332.40839 M 368.9174,329.36218 L 370.65732,329.36218 L 372.85447,333.47738 L 372.85447,329.36218 L 374.33138,329.36218 L 374.33138,335.36218 L 372.59146,335.36218 L 370.3943,331.24698 L 370.3943,335.36218 L 368.9174,335.36218 L 368.9174,329.36218 M 380.65173,335.03264 C 380.36579,335.17999 380.0677,335.29118 379.75749,335.36619 C 379.44727,335.44122 379.12357,335.47872 378.78638,335.47872 C 377.78019,335.47872 376.98307,335.20009 376.395,334.64282 C 375.80693,334.08288 375.5129,333.32467 375.5129,332.36821 C 375.5129,331.40907 375.80693,330.65087 376.395,330.0936 C 376.98307,329.53365 377.78019,329.25368 378.78638,329.25367 C 379.12357,329.25368 379.44727,329.29118 379.75749,329.3662 C 380.0677,329.44122 380.36579,329.55241 380.65173,329.69975 L 380.65173,330.94155 C 380.36309,330.74597 380.0785,330.60263 379.79796,330.51154 C 379.5174,330.42046 379.22203,330.37491 378.91181,330.3749 C 378.35611,330.37491 377.91911,330.55174 377.6008,330.90538 C 377.28249,331.25904 377.12333,331.74665 377.12333,332.36821 C 377.12333,332.9871 377.28249,333.47336 377.6008,333.82701 C 377.91911,334.18066 378.35611,334.35749 378.91181,334.35749 C 379.22203,334.35749 379.5174,334.31194 379.79796,334.22085 C 380.0785,334.12976 380.36309,333.98643 380.65173,333.79085 L 380.65173,335.03264"
|
||||||
|
style="font-size:8.25858784px;font-style:normal;font-weight:bold;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:'Bitstream Vera Sans'" />
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 9.6 KiB |
117
images/cc-by-nd.svg
Normal file
@@ -0,0 +1,117 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||||
|
<svg
|
||||||
|
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||||
|
xmlns:cc="http://web.resource.org/cc/"
|
||||||
|
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||||
|
xmlns:svg="http://www.w3.org/2000/svg"
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||||
|
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||||
|
width="80"
|
||||||
|
height="15"
|
||||||
|
id="svg2279"
|
||||||
|
sodipodi:version="0.32"
|
||||||
|
inkscape:version="0.45+devel"
|
||||||
|
version="1.0"
|
||||||
|
sodipodi:docname="by-nd.svg"
|
||||||
|
inkscape:output_extension="org.inkscape.output.svg.inkscape">
|
||||||
|
<defs
|
||||||
|
id="defs2281">
|
||||||
|
<clipPath
|
||||||
|
clipPathUnits="userSpaceOnUse"
|
||||||
|
id="clipPath3442">
|
||||||
|
<rect
|
||||||
|
style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.92243534;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||||
|
id="rect3444"
|
||||||
|
width="20.614058"
|
||||||
|
height="12.483703"
|
||||||
|
x="171.99832"
|
||||||
|
y="239.1203" />
|
||||||
|
</clipPath>
|
||||||
|
</defs>
|
||||||
|
<sodipodi:namedview
|
||||||
|
id="base"
|
||||||
|
pagecolor="#ffffff"
|
||||||
|
bordercolor="#999999"
|
||||||
|
borderopacity="1"
|
||||||
|
gridtolerance="10000"
|
||||||
|
guidetolerance="10"
|
||||||
|
objecttolerance="10"
|
||||||
|
inkscape:pageopacity="0.0"
|
||||||
|
inkscape:pageshadow="2"
|
||||||
|
inkscape:zoom="10.5125"
|
||||||
|
inkscape:cx="40"
|
||||||
|
inkscape:cy="7.5"
|
||||||
|
inkscape:document-units="px"
|
||||||
|
inkscape:current-layer="layer1"
|
||||||
|
width="80px"
|
||||||
|
height="15px"
|
||||||
|
showborder="true"
|
||||||
|
inkscape:showpageshadow="false"
|
||||||
|
inkscape:window-width="935"
|
||||||
|
inkscape:window-height="624"
|
||||||
|
inkscape:window-x="50"
|
||||||
|
inkscape:window-y="160" />
|
||||||
|
<metadata
|
||||||
|
id="metadata2284">
|
||||||
|
<rdf:RDF>
|
||||||
|
<cc:Work
|
||||||
|
rdf:about="">
|
||||||
|
<dc:format>image/svg+xml</dc:format>
|
||||||
|
<dc:type
|
||||||
|
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||||
|
</cc:Work>
|
||||||
|
</rdf:RDF>
|
||||||
|
</metadata>
|
||||||
|
<g
|
||||||
|
inkscape:label="Layer 1"
|
||||||
|
inkscape:groupmode="layer"
|
||||||
|
id="layer1">
|
||||||
|
<g
|
||||||
|
id="BY-ND"
|
||||||
|
transform="matrix(0.9875019,0,0,0.9333518,-323.90064,-384.81244)">
|
||||||
|
<rect
|
||||||
|
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1.04161763;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||||
|
id="rect3767"
|
||||||
|
width="80"
|
||||||
|
height="15"
|
||||||
|
x="328.5"
|
||||||
|
y="412.86218" />
|
||||||
|
<rect
|
||||||
|
y="414.36218"
|
||||||
|
x="330"
|
||||||
|
height="12"
|
||||||
|
width="77"
|
||||||
|
id="rect3769"
|
||||||
|
style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.92243534;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
|
||||||
|
<path
|
||||||
|
style="fill:#abb1aa;fill-opacity:1;stroke:none;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.46913578"
|
||||||
|
d="M 329.99996,414.36218 L 329.99996,426.36218 L 350.33474,426.36218 C 351.64339,424.61187 352.52652,422.5777 352.52652,420.36218 C 352.52652,418.16144 351.65859,416.10503 350.36599,414.36218 L 329.99996,414.36218 z"
|
||||||
|
id="path3771"
|
||||||
|
sodipodi:nodetypes="cccscc" />
|
||||||
|
<g
|
||||||
|
id="g3773"
|
||||||
|
transform="matrix(0.9612533,0,0,0.9612533,164.83416,184.507)"
|
||||||
|
clip-path="url(#clipPath3442)">
|
||||||
|
<path
|
||||||
|
id="path3775"
|
||||||
|
cx="296.35416"
|
||||||
|
ry="22.939548"
|
||||||
|
cy="264.3577"
|
||||||
|
type="arc"
|
||||||
|
rx="22.939548"
|
||||||
|
d="M 190.06417,245.36206 C 190.06667,249.25405 186.91326,252.41072 183.02153,252.41323 C 179.12979,252.41572 175.97262,249.26256 175.97036,245.3706 C 175.97036,245.36783 175.97036,245.36507 175.97036,245.36206 C 175.9681,241.47007 179.12126,238.3134 183.013,238.31113 C 186.90524,238.30864 190.06191,241.46181 190.06417,245.3538 C 190.06417,245.35628 190.06417,245.35929 190.06417,245.36206 z"
|
||||||
|
style="opacity:1;fill:#ffffff" />
|
||||||
|
<path
|
||||||
|
d="M 188.74576,239.62226 C 190.30843,241.18492 191.08988,243.09869 191.08988,245.36206 C 191.08988,247.62592 190.32197,249.51913 188.78615,251.04165 C 187.15627,252.64521 185.22995,253.44672 183.00722,253.44672 C 180.81132,253.44672 178.91837,252.65172 177.32887,251.06174 C 175.73912,249.47198 174.94436,247.57226 174.94436,245.36206 C 174.94436,243.15235 175.73912,241.23908 177.32887,239.62226 C 178.87799,238.0591 180.77094,237.27764 183.00722,237.27764 C 185.2706,237.27764 187.18312,238.05909 188.74576,239.62226 z M 178.38093,240.67355 C 177.05978,242.008 176.39945,243.57116 176.39945,245.36429 C 176.39945,247.15694 177.05326,248.70682 178.36062,250.01393 C 179.66822,251.32153 181.22487,251.97509 183.03105,251.97509 C 184.83724,251.97509 186.40716,251.31502 187.74161,249.99412 C 189.0086,248.76725 189.64234,247.22467 189.64234,245.36429 C 189.64234,243.51799 188.99831,241.95084 187.71101,240.66354 C 186.42396,239.37649 184.86406,238.7327 183.03105,238.7327 C 181.19804,238.73271 179.64767,239.37975 178.38093,240.67355 z M 181.85761,244.57559 C 181.65573,244.13545 181.35354,243.91525 180.95051,243.91525 C 180.23802,243.91525 179.8819,244.39501 179.8819,245.35404 C 179.8819,246.31328 180.23802,246.79255 180.95051,246.79255 C 181.421,246.79255 181.75705,246.55908 181.95869,246.09111 L 182.94629,246.61701 C 182.47555,247.45339 181.76934,247.87168 180.82763,247.87168 C 180.10136,247.87168 179.51953,247.64899 179.08265,247.20409 C 178.64502,246.7587 178.42684,246.14477 178.42684,245.36206 C 178.42684,244.59313 178.65204,243.98271 179.10271,243.53056 C 179.55338,243.07838 180.11463,242.8524 180.7875,242.8524 C 181.78288,242.8524 182.49561,243.24465 182.92647,244.02835 L 181.85761,244.57559 z M 186.50398,244.57559 C 186.30184,244.13545 186.00567,243.91525 185.61517,243.91525 C 184.88839,243.91525 184.52474,244.39501 184.52474,245.35404 C 184.52474,246.31328 184.88839,246.79255 185.61517,246.79255 C 186.08642,246.79255 186.41644,246.55908 186.6048,246.09111 L 187.61447,246.61701 C 187.14448,247.45339 186.43926,247.87168 185.49931,247.87168 C 184.77403,247.87168 184.19346,247.64899 183.75683,247.20409 C 183.32096,246.7587 183.10254,246.14477 183.10254,245.36206 C 183.10254,244.59313 183.32422,243.98271 183.76737,243.53056 C 184.21026,243.07838 184.77404,242.8524 185.4592,242.8524 C 186.45282,242.8524 187.16455,243.24465 187.5939,244.02835 L 186.50398,244.57559 z"
|
||||||
|
id="path3777"
|
||||||
|
style="opacity:1" />
|
||||||
|
</g>
|
||||||
|
<path
|
||||||
|
id="text3779"
|
||||||
|
d="M 357.4197,419.68502 C 357.66518,419.68502 357.85131,419.63145 357.9781,419.52427 C 358.10488,419.41711 358.16827,419.25904 358.16828,419.05006 C 358.16827,418.84377 358.10488,418.68704 357.9781,418.57987 C 357.85131,418.47002 357.66518,418.4151 357.4197,418.4151 L 356.55784,418.4151 L 356.55784,419.68502 L 357.4197,419.68502 M 357.4723,422.30927 C 357.78522,422.30927 358.0199,422.24363 358.17637,422.11235 C 358.33552,421.98107 358.4151,421.78281 358.4151,421.51758 C 358.4151,421.2577 358.33686,421.06346 358.18041,420.93485 C 358.02396,420.80358 357.78792,420.73794 357.4723,420.73794 L 356.55784,420.73794 L 356.55784,422.30927 L 357.4723,422.30927 M 358.92089,420.1512 C 359.25538,420.24766 359.51434,420.42582 359.69779,420.6857 C 359.88121,420.94558 359.97293,421.2644 359.97294,421.64215 C 359.97293,422.22086 359.776,422.65221 359.38217,422.93619 C 358.98833,423.22019 358.38947,423.36218 357.5856,423.36218 L 355.00001,423.36218 L 355.00001,417.36219 L 357.33878,417.36219 C 358.17771,417.36219 358.78466,417.48812 359.15962,417.73994 C 359.53727,417.99179 359.7261,418.39501 359.7261,418.94959 C 359.7261,419.24162 359.65732,419.49079 359.51975,419.69708 C 359.38217,419.90071 359.18255,420.05208 358.92089,420.1512 M 359.83746,417.36219 L 361.54096,417.36219 L 362.91671,419.50016 L 364.29245,417.36219 L 366,417.36219 L 363.69764,420.83439 L 363.69764,423.36218 L 362.13982,423.36218 L 362.13982,420.83439 L 359.83746,417.36219 M 365.15837,420.4084 L 367.69946,420.4084 L 367.69946,421.57785 L 365.15837,421.57785 L 365.15837,420.4084 M 368.9174,417.36219 L 370.65732,417.36219 L 372.85447,421.47739 L 372.85447,417.36219 L 374.33138,417.36219 L 374.33138,423.36218 L 372.59146,423.36218 L 370.3943,419.24698 L 370.3943,423.36218 L 368.9174,423.36218 L 368.9174,417.36219 M 377.41872,418.53164 L 377.41872,422.19273 L 377.97711,422.19273 C 378.61373,422.19273 379.09929,422.03599 379.43379,421.72253 C 379.77098,421.40907 379.93957,420.95361 379.93957,420.35616 C 379.93957,419.76138 379.77232,419.3086 379.43783,418.99782 C 379.10333,418.68704 378.61643,418.53164 377.97711,418.53164 L 377.41872,418.53164 M 375.86089,417.36219 L 377.50369,417.36219 C 378.42085,417.36219 379.10333,417.42783 379.55113,417.5591 C 380.00162,417.68771 380.38736,417.9074 380.70838,418.21818 C 380.99161,418.48878 381.20202,418.8009 381.3396,419.15455 C 381.47717,419.5082 381.54596,419.90874 381.54597,420.35616 C 381.54596,420.80894 381.47717,421.21349 381.3396,421.56982 C 381.20202,421.92347 380.99161,422.23559 380.70838,422.5062 C 380.38466,422.81697 379.99622,423.038 379.54304,423.16928 C 379.08984,423.29788 378.41007,423.36218 377.50369,423.36218 L 375.86089,423.36218 L 375.86089,417.36219"
|
||||||
|
style="font-size:8.25858784px;font-style:normal;font-weight:bold;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:'Bitstream Vera Sans'" />
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 9.3 KiB |
121
images/cc-by-sa.svg
Normal file
@@ -0,0 +1,121 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||||
|
<svg
|
||||||
|
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||||
|
xmlns:cc="http://web.resource.org/cc/"
|
||||||
|
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||||
|
xmlns:svg="http://www.w3.org/2000/svg"
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||||
|
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||||
|
width="80"
|
||||||
|
height="15"
|
||||||
|
id="svg2279"
|
||||||
|
sodipodi:version="0.32"
|
||||||
|
inkscape:version="0.45+devel"
|
||||||
|
version="1.0"
|
||||||
|
sodipodi:docname="by-sa.svg"
|
||||||
|
inkscape:output_extension="org.inkscape.output.svg.inkscape">
|
||||||
|
<defs
|
||||||
|
id="defs2281">
|
||||||
|
<clipPath
|
||||||
|
clipPathUnits="userSpaceOnUse"
|
||||||
|
id="clipPath3442">
|
||||||
|
<rect
|
||||||
|
style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.92243534;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||||
|
id="rect3444"
|
||||||
|
width="20.614058"
|
||||||
|
height="12.483703"
|
||||||
|
x="171.99832"
|
||||||
|
y="239.1203" />
|
||||||
|
</clipPath>
|
||||||
|
</defs>
|
||||||
|
<sodipodi:namedview
|
||||||
|
id="base"
|
||||||
|
pagecolor="#ffffff"
|
||||||
|
bordercolor="#999999"
|
||||||
|
borderopacity="1"
|
||||||
|
gridtolerance="10000"
|
||||||
|
guidetolerance="10"
|
||||||
|
objecttolerance="10"
|
||||||
|
inkscape:pageopacity="0.0"
|
||||||
|
inkscape:pageshadow="2"
|
||||||
|
inkscape:zoom="10.5125"
|
||||||
|
inkscape:cx="40"
|
||||||
|
inkscape:cy="7.5"
|
||||||
|
inkscape:document-units="px"
|
||||||
|
inkscape:current-layer="layer1"
|
||||||
|
width="80px"
|
||||||
|
height="15px"
|
||||||
|
showborder="true"
|
||||||
|
inkscape:showpageshadow="false"
|
||||||
|
inkscape:window-width="935"
|
||||||
|
inkscape:window-height="624"
|
||||||
|
inkscape:window-x="50"
|
||||||
|
inkscape:window-y="160" />
|
||||||
|
<metadata
|
||||||
|
id="metadata2284">
|
||||||
|
<rdf:RDF>
|
||||||
|
<cc:Work
|
||||||
|
rdf:about="">
|
||||||
|
<dc:format>image/svg+xml</dc:format>
|
||||||
|
<dc:type
|
||||||
|
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||||
|
</cc:Work>
|
||||||
|
</rdf:RDF>
|
||||||
|
</metadata>
|
||||||
|
<g
|
||||||
|
inkscape:label="Layer 1"
|
||||||
|
inkscape:groupmode="layer"
|
||||||
|
id="layer1">
|
||||||
|
<g
|
||||||
|
id="BY-SA"
|
||||||
|
transform="matrix(0.9875019,0,0,0.9333518,-323.90064,-356.81188)">
|
||||||
|
<g
|
||||||
|
id="g3747"
|
||||||
|
transform="translate(158,145)">
|
||||||
|
<rect
|
||||||
|
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1.04161763;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||||
|
id="rect3749"
|
||||||
|
width="80"
|
||||||
|
height="15"
|
||||||
|
x="170.5"
|
||||||
|
y="237.86218" />
|
||||||
|
<rect
|
||||||
|
y="239.36218"
|
||||||
|
x="172"
|
||||||
|
height="12"
|
||||||
|
width="77"
|
||||||
|
id="rect3751"
|
||||||
|
style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.92243534;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
|
||||||
|
<path
|
||||||
|
style="fill:#abb1aa;fill-opacity:1;stroke:none;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.46913578"
|
||||||
|
d="M 171.99996,239.37505 L 171.99996,251.37505 L 192.33474,251.37505 C 193.64339,249.62474 194.52652,247.59057 194.52652,245.37505 C 194.52652,243.17431 193.65859,241.1179 192.36599,239.37505 L 171.99996,239.37505 z"
|
||||||
|
id="path3753"
|
||||||
|
sodipodi:nodetypes="cccscc" />
|
||||||
|
<g
|
||||||
|
id="g3755"
|
||||||
|
transform="matrix(0.9612533,0,0,0.9612533,6.8341566,9.5069994)"
|
||||||
|
clip-path="url(#clipPath3442)">
|
||||||
|
<path
|
||||||
|
id="path3757"
|
||||||
|
cx="296.35416"
|
||||||
|
ry="22.939548"
|
||||||
|
cy="264.3577"
|
||||||
|
type="arc"
|
||||||
|
rx="22.939548"
|
||||||
|
d="M 190.06417,245.36206 C 190.06667,249.25405 186.91326,252.41072 183.02153,252.41323 C 179.12979,252.41572 175.97262,249.26256 175.97036,245.3706 C 175.97036,245.36783 175.97036,245.36507 175.97036,245.36206 C 175.9681,241.47007 179.12126,238.3134 183.013,238.31113 C 186.90524,238.30864 190.06191,241.46181 190.06417,245.3538 C 190.06417,245.35628 190.06417,245.35929 190.06417,245.36206 z"
|
||||||
|
style="opacity:1;fill:#ffffff" />
|
||||||
|
<path
|
||||||
|
d="M 188.74576,239.62226 C 190.30843,241.18492 191.08988,243.09869 191.08988,245.36206 C 191.08988,247.62592 190.32197,249.51913 188.78615,251.04165 C 187.15627,252.64521 185.22995,253.44672 183.00722,253.44672 C 180.81132,253.44672 178.91837,252.65172 177.32887,251.06174 C 175.73912,249.47198 174.94436,247.57226 174.94436,245.36206 C 174.94436,243.15235 175.73912,241.23908 177.32887,239.62226 C 178.87799,238.0591 180.77094,237.27764 183.00722,237.27764 C 185.2706,237.27764 187.18312,238.05909 188.74576,239.62226 z M 178.38093,240.67355 C 177.05978,242.008 176.39945,243.57116 176.39945,245.36429 C 176.39945,247.15694 177.05326,248.70682 178.36062,250.01393 C 179.66822,251.32153 181.22487,251.97509 183.03105,251.97509 C 184.83724,251.97509 186.40716,251.31502 187.74161,249.99412 C 189.0086,248.76725 189.64234,247.22467 189.64234,245.36429 C 189.64234,243.51799 188.99831,241.95084 187.71101,240.66354 C 186.42396,239.37649 184.86406,238.7327 183.03105,238.7327 C 181.19804,238.73271 179.64767,239.37975 178.38093,240.67355 z M 181.85761,244.57559 C 181.65573,244.13545 181.35354,243.91525 180.95051,243.91525 C 180.23802,243.91525 179.8819,244.39501 179.8819,245.35404 C 179.8819,246.31328 180.23802,246.79255 180.95051,246.79255 C 181.421,246.79255 181.75705,246.55908 181.95869,246.09111 L 182.94629,246.61701 C 182.47555,247.45339 181.76934,247.87168 180.82763,247.87168 C 180.10136,247.87168 179.51953,247.64899 179.08265,247.20409 C 178.64502,246.7587 178.42684,246.14477 178.42684,245.36206 C 178.42684,244.59313 178.65204,243.98271 179.10271,243.53056 C 179.55338,243.07838 180.11463,242.8524 180.7875,242.8524 C 181.78288,242.8524 182.49561,243.24465 182.92647,244.02835 L 181.85761,244.57559 z M 186.50398,244.57559 C 186.30184,244.13545 186.00567,243.91525 185.61517,243.91525 C 184.88839,243.91525 184.52474,244.39501 184.52474,245.35404 C 184.52474,246.31328 184.88839,246.79255 185.61517,246.79255 C 186.08642,246.79255 186.41644,246.55908 186.6048,246.09111 L 187.61447,246.61701 C 187.14448,247.45339 186.43926,247.87168 185.49931,247.87168 C 184.77403,247.87168 184.19346,247.64899 183.75683,247.20409 C 183.32096,246.7587 183.10254,246.14477 183.10254,245.36206 C 183.10254,244.59313 183.32422,243.98271 183.76737,243.53056 C 184.21026,243.07838 184.77404,242.8524 185.4592,242.8524 C 186.45282,242.8524 187.16455,243.24465 187.5939,244.02835 L 186.50398,244.57559 z"
|
||||||
|
id="path3759"
|
||||||
|
style="opacity:1" />
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
<path
|
||||||
|
id="text3761"
|
||||||
|
d="M 357.4197,389.68502 C 357.66518,389.68502 357.85131,389.63144 357.9781,389.52427 C 358.10488,389.4171 358.16827,389.25904 358.16828,389.05005 C 358.16827,388.84376 358.10488,388.68703 357.9781,388.57986 C 357.85131,388.47002 357.66518,388.4151 357.4197,388.41509 L 356.55784,388.41509 L 356.55784,389.68502 L 357.4197,389.68502 M 357.4723,392.30926 C 357.78522,392.30926 358.0199,392.24363 358.17637,392.11235 C 358.33552,391.98107 358.4151,391.78281 358.4151,391.51756 C 358.4151,391.25769 358.33686,391.06345 358.18041,390.93485 C 358.02396,390.80357 357.78792,390.73793 357.4723,390.73793 L 356.55784,390.73793 L 356.55784,392.30926 L 357.4723,392.30926 M 358.92089,390.15119 C 359.25538,390.24764 359.51434,390.42581 359.69779,390.68568 C 359.88121,390.94557 359.97293,391.26439 359.97294,391.64215 C 359.97293,392.22086 359.776,392.6522 359.38217,392.93619 C 358.98833,393.22018 358.38947,393.36218 357.5856,393.36218 L 355.00001,393.36218 L 355.00001,387.36218 L 357.33878,387.36218 C 358.17771,387.36218 358.78466,387.4881 359.15962,387.73994 C 359.53727,387.99178 359.7261,388.395 359.7261,388.94959 C 359.7261,389.24162 359.65732,389.49078 359.51975,389.69708 C 359.38217,389.90069 359.18255,390.05206 358.92089,390.15119 M 359.83746,387.36218 L 361.54096,387.36218 L 362.91671,389.50015 L 364.29245,387.36218 L 366,387.36218 L 363.69764,390.83438 L 363.69764,393.36218 L 362.13982,393.36218 L 362.13982,390.83438 L 359.83746,387.36218 M 365.15837,390.40839 L 367.69946,390.40839 L 367.69946,391.57785 L 365.15837,391.57785 L 365.15837,390.40839 M 373.12153,387.55105 L 373.12153,388.82099 C 372.78973,388.67363 372.46602,388.56245 372.15042,388.48743 C 371.8348,388.41241 371.53671,388.3749 371.25618,388.3749 C 370.88391,388.3749 370.60877,388.42581 370.43073,388.52761 C 370.25268,388.62943 370.16367,388.7875 370.16367,389.00183 C 370.16367,389.16259 370.22301,389.28851 370.3417,389.37959 C 370.4631,389.46801 370.68159,389.54436 370.99721,389.60866 L 371.66081,389.74127 C 372.33249,389.87524 372.80996,390.07886 373.0932,390.35213 C 373.37644,390.62541 373.51806,391.01389 373.51807,391.51756 C 373.51806,392.17933 373.3198,392.67229 372.92326,392.99647 C 372.52941,393.31797 371.92651,393.47872 371.11455,393.47872 C 370.7315,393.47872 370.3471,393.44255 369.96136,393.37021 C 369.5756,393.29788 369.18985,393.1907 368.80411,393.04871 L 368.80411,391.74262 C 369.18985,391.94624 369.56211,392.10029 369.92089,392.20477 C 370.28236,392.30658 370.63034,392.35749 370.96484,392.35749 C 371.30473,392.35749 371.56504,392.30123 371.74578,392.1887 C 371.92651,392.07618 372.01688,391.91542 372.01688,391.70645 C 372.01688,391.51891 371.95484,391.37423 371.83076,391.27242 C 371.70936,391.17062 371.46523,391.07952 371.09837,390.99915 L 370.49547,390.86653 C 369.89122,390.73793 369.44882,390.53297 369.16827,390.25166 C 368.89042,389.97035 368.7515,389.59125 368.7515,389.11435 C 368.7515,388.51691 368.94572,388.05743 369.33418,387.73592 C 369.72262,387.41442 370.28101,387.25367 371.00935,387.25367 C 371.34115,387.25367 371.68238,387.27912 372.03307,387.33003 C 372.38374,387.37826 372.74656,387.45193 373.12153,387.55105 M 378.55573,392.26907 L 376.11985,392.26907 L 375.73545,393.36218 L 374.16953,393.36218 L 376.40714,387.36218 L 378.2644,387.36218 L 380.50201,393.36218 L 378.93609,393.36218 L 378.55573,392.26907 M 376.5083,391.15588 L 378.16324,391.15588 L 377.3378,388.76874 L 376.5083,391.15588"
|
||||||
|
style="font-size:8.25858784px;font-style:normal;font-weight:bold;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:'Bitstream Vera Sans'" />
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 10 KiB |
121
images/cc-by.svg
Normal file
@@ -0,0 +1,121 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||||
|
<svg
|
||||||
|
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||||
|
xmlns:cc="http://web.resource.org/cc/"
|
||||||
|
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||||
|
xmlns:svg="http://www.w3.org/2000/svg"
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||||
|
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||||
|
width="80"
|
||||||
|
height="15"
|
||||||
|
id="svg2279"
|
||||||
|
sodipodi:version="0.32"
|
||||||
|
inkscape:version="0.45+devel"
|
||||||
|
version="1.0"
|
||||||
|
sodipodi:docname="by.svg"
|
||||||
|
inkscape:output_extension="org.inkscape.output.svg.inkscape">
|
||||||
|
<defs
|
||||||
|
id="defs2281">
|
||||||
|
<clipPath
|
||||||
|
clipPathUnits="userSpaceOnUse"
|
||||||
|
id="clipPath3442">
|
||||||
|
<rect
|
||||||
|
style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.92243534;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||||
|
id="rect3444"
|
||||||
|
width="20.614058"
|
||||||
|
height="12.483703"
|
||||||
|
x="171.99832"
|
||||||
|
y="239.1203" />
|
||||||
|
</clipPath>
|
||||||
|
</defs>
|
||||||
|
<sodipodi:namedview
|
||||||
|
id="base"
|
||||||
|
pagecolor="#ffffff"
|
||||||
|
bordercolor="#999999"
|
||||||
|
borderopacity="1"
|
||||||
|
gridtolerance="10000"
|
||||||
|
guidetolerance="10"
|
||||||
|
objecttolerance="10"
|
||||||
|
inkscape:pageopacity="0.0"
|
||||||
|
inkscape:pageshadow="2"
|
||||||
|
inkscape:zoom="10.5125"
|
||||||
|
inkscape:cx="40"
|
||||||
|
inkscape:cy="7.5"
|
||||||
|
inkscape:document-units="px"
|
||||||
|
inkscape:current-layer="layer1"
|
||||||
|
width="80px"
|
||||||
|
height="15px"
|
||||||
|
showborder="true"
|
||||||
|
inkscape:showpageshadow="false"
|
||||||
|
inkscape:window-width="935"
|
||||||
|
inkscape:window-height="624"
|
||||||
|
inkscape:window-x="50"
|
||||||
|
inkscape:window-y="160" />
|
||||||
|
<metadata
|
||||||
|
id="metadata2284">
|
||||||
|
<rdf:RDF>
|
||||||
|
<cc:Work
|
||||||
|
rdf:about="">
|
||||||
|
<dc:format>image/svg+xml</dc:format>
|
||||||
|
<dc:type
|
||||||
|
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||||
|
</cc:Work>
|
||||||
|
</rdf:RDF>
|
||||||
|
</metadata>
|
||||||
|
<g
|
||||||
|
inkscape:label="Layer 1"
|
||||||
|
inkscape:groupmode="layer"
|
||||||
|
id="layer1">
|
||||||
|
<g
|
||||||
|
id="BY"
|
||||||
|
transform="matrix(0.9875019,0,0,0.9333518,-323.90064,-271.87688)">
|
||||||
|
<g
|
||||||
|
transform="translate(158,54)"
|
||||||
|
id="g3693">
|
||||||
|
<rect
|
||||||
|
y="237.86218"
|
||||||
|
x="170.5"
|
||||||
|
height="15"
|
||||||
|
width="80"
|
||||||
|
id="rect3695"
|
||||||
|
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1.04161763;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
|
||||||
|
<rect
|
||||||
|
style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.92243534;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||||
|
id="rect3697"
|
||||||
|
width="77"
|
||||||
|
height="12"
|
||||||
|
x="172"
|
||||||
|
y="239.36218" />
|
||||||
|
<path
|
||||||
|
sodipodi:nodetypes="cccscc"
|
||||||
|
id="path3699"
|
||||||
|
d="M 171.99996,239.37505 L 171.99996,251.37505 L 192.33474,251.37505 C 193.64339,249.62474 194.52652,247.59057 194.52652,245.37505 C 194.52652,243.17431 193.65859,241.1179 192.36599,239.37505 L 171.99996,239.37505 z"
|
||||||
|
style="fill:#abb1aa;fill-opacity:1;stroke:none;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.46913578" />
|
||||||
|
<g
|
||||||
|
clip-path="url(#clipPath3442)"
|
||||||
|
transform="matrix(0.9612533,0,0,0.9612533,6.8341566,9.5069994)"
|
||||||
|
id="g3701">
|
||||||
|
<path
|
||||||
|
style="opacity:1;fill:#ffffff"
|
||||||
|
d="M 190.06417,245.36206 C 190.06667,249.25405 186.91326,252.41072 183.02153,252.41323 C 179.12979,252.41572 175.97262,249.26256 175.97036,245.3706 C 175.97036,245.36783 175.97036,245.36507 175.97036,245.36206 C 175.9681,241.47007 179.12126,238.3134 183.013,238.31113 C 186.90524,238.30864 190.06191,241.46181 190.06417,245.3538 C 190.06417,245.35628 190.06417,245.35929 190.06417,245.36206 z"
|
||||||
|
rx="22.939548"
|
||||||
|
type="arc"
|
||||||
|
cy="264.3577"
|
||||||
|
ry="22.939548"
|
||||||
|
cx="296.35416"
|
||||||
|
id="path3703" />
|
||||||
|
<path
|
||||||
|
style="opacity:1"
|
||||||
|
id="path3705"
|
||||||
|
d="M 188.74576,239.62226 C 190.30843,241.18492 191.08988,243.09869 191.08988,245.36206 C 191.08988,247.62592 190.32197,249.51913 188.78615,251.04165 C 187.15627,252.64521 185.22995,253.44672 183.00722,253.44672 C 180.81132,253.44672 178.91837,252.65172 177.32887,251.06174 C 175.73912,249.47198 174.94436,247.57226 174.94436,245.36206 C 174.94436,243.15235 175.73912,241.23908 177.32887,239.62226 C 178.87799,238.0591 180.77094,237.27764 183.00722,237.27764 C 185.2706,237.27764 187.18312,238.05909 188.74576,239.62226 z M 178.38093,240.67355 C 177.05978,242.008 176.39945,243.57116 176.39945,245.36429 C 176.39945,247.15694 177.05326,248.70682 178.36062,250.01393 C 179.66822,251.32153 181.22487,251.97509 183.03105,251.97509 C 184.83724,251.97509 186.40716,251.31502 187.74161,249.99412 C 189.0086,248.76725 189.64234,247.22467 189.64234,245.36429 C 189.64234,243.51799 188.99831,241.95084 187.71101,240.66354 C 186.42396,239.37649 184.86406,238.7327 183.03105,238.7327 C 181.19804,238.73271 179.64767,239.37975 178.38093,240.67355 z M 181.85761,244.57559 C 181.65573,244.13545 181.35354,243.91525 180.95051,243.91525 C 180.23802,243.91525 179.8819,244.39501 179.8819,245.35404 C 179.8819,246.31328 180.23802,246.79255 180.95051,246.79255 C 181.421,246.79255 181.75705,246.55908 181.95869,246.09111 L 182.94629,246.61701 C 182.47555,247.45339 181.76934,247.87168 180.82763,247.87168 C 180.10136,247.87168 179.51953,247.64899 179.08265,247.20409 C 178.64502,246.7587 178.42684,246.14477 178.42684,245.36206 C 178.42684,244.59313 178.65204,243.98271 179.10271,243.53056 C 179.55338,243.07838 180.11463,242.8524 180.7875,242.8524 C 181.78288,242.8524 182.49561,243.24465 182.92647,244.02835 L 181.85761,244.57559 z M 186.50398,244.57559 C 186.30184,244.13545 186.00567,243.91525 185.61517,243.91525 C 184.88839,243.91525 184.52474,244.39501 184.52474,245.35404 C 184.52474,246.31328 184.88839,246.79255 185.61517,246.79255 C 186.08642,246.79255 186.41644,246.55908 186.6048,246.09111 L 187.61447,246.61701 C 187.14448,247.45339 186.43926,247.87168 185.49931,247.87168 C 184.77403,247.87168 184.19346,247.64899 183.75683,247.20409 C 183.32096,246.7587 183.10254,246.14477 183.10254,245.36206 C 183.10254,244.59313 183.32422,243.98271 183.76737,243.53056 C 184.21026,243.07838 184.77404,242.8524 185.4592,242.8524 C 186.45282,242.8524 187.16455,243.24465 187.5939,244.02835 L 186.50398,244.57559 z" />
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
<path
|
||||||
|
id="text3707"
|
||||||
|
d="M 357.4197,298.68502 C 357.66518,298.68503 357.85131,298.63145 357.9781,298.52427 C 358.10488,298.41711 358.16827,298.25904 358.16828,298.05007 C 358.16827,297.84377 358.10488,297.68704 357.9781,297.57987 C 357.85131,297.47003 357.66518,297.41511 357.4197,297.4151 L 356.55784,297.4151 L 356.55784,298.68502 L 357.4197,298.68502 M 357.4723,301.30928 C 357.78522,301.30928 358.0199,301.24363 358.17637,301.11235 C 358.33552,300.98108 358.4151,300.78282 358.4151,300.51758 C 358.4151,300.2577 358.33686,300.06346 358.18041,299.93486 C 358.02396,299.80358 357.78792,299.73795 357.4723,299.73794 L 356.55784,299.73794 L 356.55784,301.30928 L 357.4723,301.30928 M 358.92089,299.15121 C 359.25538,299.24766 359.51434,299.42582 359.69779,299.6857 C 359.88121,299.94558 359.97293,300.26439 359.97294,300.64216 C 359.97293,301.22086 359.776,301.6522 359.38217,301.9362 C 358.98833,302.22019 358.38947,302.36218 357.5856,302.36218 L 355.00001,302.36218 L 355.00001,296.36218 L 357.33878,296.36218 C 358.17771,296.36219 358.78466,296.48811 359.15962,296.73995 C 359.53727,296.9918 359.7261,297.39501 359.7261,297.94959 C 359.7261,298.24163 359.65732,298.49079 359.51975,298.69708 C 359.38217,298.9007 359.18255,299.05208 358.92089,299.15121 M 359.83746,296.36218 L 361.54096,296.36218 L 362.91671,298.50016 L 364.29245,296.36218 L 366,296.36218 L 363.69764,299.83439 L 363.69764,302.36218 L 362.13982,302.36218 L 362.13982,299.83439 L 359.83746,296.36218"
|
||||||
|
style="font-size:8.25858784px;font-style:normal;font-weight:bold;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:'Bitstream Vera Sans'" />
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 8.2 KiB |
72
images/cc-zero.svg
Normal file
@@ -0,0 +1,72 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<!-- Generator: Adobe Illustrator 13.0.2, SVG Export Plug-In . SVG Version: 6.00 Build 14948) -->
|
||||||
|
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||||
|
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
||||||
|
width="80px" height="15px" viewBox="0 0 80 15" enable-background="new 0 0 80 15" xml:space="preserve">
|
||||||
|
<g>
|
||||||
|
<g>
|
||||||
|
<rect fill="#FFFFFF" width="80" height="15"/>
|
||||||
|
</g>
|
||||||
|
<path d="M22.797,2C23.8,3.595,24.39,5.477,24.39,7.501c0,2.023-0.589,3.904-1.592,5.499H80V2H22.797z"/>
|
||||||
|
<g>
|
||||||
|
<path id="text2809_5_" d="M12.42,2.031c-3.137,0-3.926,2.959-3.926,5.469s0.787,5.469,3.926,5.469
|
||||||
|
c3.137,0,3.924-2.959,3.924-5.469S15.557,2.031,12.42,2.031z M12.42,4.094c0.127,0,0.242,0.02,0.352,0.047
|
||||||
|
c0.227,0.193,0.336,0.463,0.121,0.838l-2.09,3.838C10.738,8.33,10.729,7.855,10.729,7.5C10.729,6.395,10.807,4.094,12.42,4.094z
|
||||||
|
M13.982,5.863c0.111,0.588,0.127,1.203,0.127,1.637c0,1.105-0.076,3.406-1.689,3.406c-0.127,0-0.244-0.012-0.354-0.039
|
||||||
|
c-0.02-0.006-0.039-0.014-0.061-0.021c-0.031-0.01-0.066-0.02-0.098-0.031c-0.359-0.154-0.586-0.43-0.26-0.92L13.982,5.863z"/>
|
||||||
|
<path d="M21.229,3.848c-0.465-1.152-1.143-2.172-2.035-3.066C18.907,0.496,18.607,0.241,18.302,0h-3.708
|
||||||
|
c1.248,0.348,2.367,1.009,3.354,1.998c0.736,0.736,1.299,1.576,1.684,2.516s0.578,1.936,0.578,2.986
|
||||||
|
c0,2.184-0.746,3.994-2.227,5.441c-0.771,0.746-1.635,1.32-2.596,1.717c-0.344,0.143-0.694,0.251-1.046,0.342h3.892
|
||||||
|
c0.336-0.257,0.664-0.529,0.972-0.834c0.895-0.871,1.57-1.871,2.021-3c0.465-1.143,0.693-2.363,0.693-3.666
|
||||||
|
C21.92,6.211,21.691,4.99,21.229,3.848z M6.957,12.975c-0.746-0.746-1.322-1.59-1.729-2.527c-0.396-0.951-0.6-1.93-0.6-2.947
|
||||||
|
c0-1.029,0.203-2.016,0.6-2.955c0.406-0.949,0.982-1.803,1.729-2.561C7.916,1.004,9.021,0.346,10.268,0H6.58
|
||||||
|
C6.289,0.235,6.004,0.484,5.732,0.762C4.816,1.676,4.117,2.721,3.631,3.887C3.156,5.041,2.92,6.244,2.92,7.5
|
||||||
|
c0,1.268,0.236,2.471,0.711,3.613s1.164,2.17,2.068,3.086C5.994,14.49,6.305,14.752,6.623,15h3.88
|
||||||
|
c-0.345-0.088-0.686-0.191-1.019-0.328C8.547,14.277,7.705,13.711,6.957,12.975z"/>
|
||||||
|
</g>
|
||||||
|
<g>
|
||||||
|
<path d="M80,0v15H0V0H80 M79.25,0.75H0.75v13.5h78.5V0.75L79.25,0.75z"/>
|
||||||
|
</g>
|
||||||
|
<g>
|
||||||
|
<path fill="#FFFFFF" d="M30.514,8.106c-0.279,0.233-0.678,0.35-1.197,0.35h-0.993v1.717h-0.991V5.398h2.05
|
||||||
|
c0.473,0,0.849,0.123,1.13,0.369s0.422,0.628,0.422,1.144C30.934,7.475,30.794,7.873,30.514,8.106z M29.753,6.387
|
||||||
|
c-0.127-0.106-0.304-0.159-0.531-0.159h-0.898v1.406h0.898c0.228,0,0.404-0.058,0.531-0.172c0.126-0.114,0.189-0.296,0.189-0.544
|
||||||
|
C29.942,6.669,29.879,6.492,29.753,6.387z"/>
|
||||||
|
<path fill="#FFFFFF" d="M31.733,5.398h1.015v2.933c0,0.328,0.038,0.567,0.116,0.718c0.12,0.268,0.383,0.401,0.787,0.401
|
||||||
|
c0.402,0,0.664-0.134,0.784-0.401c0.077-0.15,0.116-0.39,0.116-0.718V5.398h1.014v2.935c0,0.508-0.079,0.902-0.236,1.186
|
||||||
|
c-0.293,0.519-0.853,0.777-1.678,0.777c-0.826,0-1.387-0.259-1.682-0.777c-0.157-0.283-0.236-0.678-0.236-1.186V5.398z"/>
|
||||||
|
<path fill="#FFFFFF" d="M40.085,5.907c0.146,0.203,0.219,0.446,0.219,0.729c0,0.292-0.074,0.526-0.221,0.703
|
||||||
|
c-0.083,0.1-0.204,0.19-0.364,0.272c0.243,0.088,0.427,0.229,0.551,0.421s0.187,0.425,0.187,0.699
|
||||||
|
c0,0.283-0.071,0.537-0.213,0.761c-0.09,0.149-0.203,0.274-0.338,0.376c-0.152,0.117-0.332,0.196-0.539,0.24
|
||||||
|
c-0.208,0.043-0.433,0.064-0.675,0.064H36.54V5.398h2.308C39.43,5.407,39.842,5.577,40.085,5.907z M37.492,6.228V7.28h1.16
|
||||||
|
c0.208,0,0.376-0.039,0.505-0.118c0.13-0.079,0.194-0.219,0.194-0.419c0-0.223-0.086-0.369-0.257-0.44
|
||||||
|
c-0.147-0.05-0.335-0.075-0.563-0.075H37.492z M37.492,8.07v1.273h1.159c0.207,0,0.368-0.028,0.483-0.084
|
||||||
|
c0.209-0.104,0.313-0.303,0.313-0.597c0-0.248-0.101-0.419-0.304-0.512C39.031,8.1,38.872,8.073,38.667,8.07H37.492z"/>
|
||||||
|
<path fill="#FFFFFF" d="M41.313,5.398h0.998v3.916h2.384v0.858h-3.382V5.398z"/>
|
||||||
|
<path fill="#FFFFFF" d="M46.275,10.173h-0.991V5.398h0.991V10.173z"/>
|
||||||
|
<path fill="#FFFFFF" d="M47.665,5.897c0.385-0.393,0.874-0.59,1.468-0.59c0.795,0,1.376,0.264,1.743,0.791
|
||||||
|
c0.203,0.296,0.312,0.593,0.327,0.891h-0.998c-0.063-0.229-0.145-0.402-0.244-0.519c-0.178-0.207-0.441-0.311-0.79-0.311
|
||||||
|
c-0.355,0-0.636,0.146-0.841,0.438s-0.308,0.707-0.308,1.242s0.108,0.937,0.324,1.203c0.217,0.267,0.492,0.4,0.826,0.4
|
||||||
|
c0.342,0,0.603-0.114,0.782-0.344c0.1-0.123,0.182-0.308,0.247-0.554h0.991c-0.086,0.521-0.304,0.943-0.655,1.27
|
||||||
|
s-0.802,0.489-1.351,0.489c-0.68,0-1.214-0.221-1.603-0.661c-0.389-0.442-0.583-1.049-0.583-1.82
|
||||||
|
C47.002,6.991,47.224,6.349,47.665,5.897z"/>
|
||||||
|
<path fill="#FFFFFF" d="M54.797,5.502c0.335,0.11,0.606,0.312,0.813,0.606c0.167,0.237,0.28,0.494,0.341,0.771
|
||||||
|
s0.091,0.54,0.091,0.79c0,0.635-0.128,1.173-0.383,1.613c-0.346,0.594-0.88,0.891-1.602,0.891h-2.059V5.398h2.059
|
||||||
|
C54.354,5.403,54.601,5.438,54.797,5.502z M52.968,6.228v3.116h0.922c0.471,0,0.8-0.232,0.985-0.696
|
||||||
|
c0.102-0.255,0.152-0.559,0.152-0.91c0-0.486-0.076-0.859-0.229-1.119s-0.455-0.391-0.909-0.391H52.968z"/>
|
||||||
|
<path fill="#FFFFFF" d="M60.466,9.749c-0.36,0.371-0.882,0.557-1.564,0.557s-1.204-0.186-1.564-0.557
|
||||||
|
c-0.483-0.456-0.726-1.112-0.726-1.97c0-0.875,0.242-1.531,0.726-1.97c0.36-0.371,0.882-0.557,1.564-0.557
|
||||||
|
s1.204,0.186,1.564,0.557c0.481,0.438,0.722,1.095,0.722,1.97C61.188,8.637,60.947,9.293,60.466,9.749z M59.842,9.023
|
||||||
|
c0.232-0.292,0.349-0.706,0.349-1.244c0-0.535-0.116-0.949-0.349-1.242c-0.231-0.293-0.545-0.438-0.94-0.438
|
||||||
|
s-0.711,0.146-0.946,0.437c-0.235,0.292-0.353,0.706-0.353,1.244s0.117,0.952,0.353,1.244c0.235,0.291,0.551,0.437,0.946,0.437
|
||||||
|
S59.61,9.314,59.842,9.023z"/>
|
||||||
|
<path fill="#FFFFFF" d="M65.116,5.398h1.436v4.774h-0.929V6.943c0-0.093,0.001-0.223,0.003-0.39
|
||||||
|
c0.002-0.168,0.003-0.297,0.003-0.388l-0.904,4.007h-0.97l-0.898-4.007c0,0.091,0.001,0.22,0.003,0.388
|
||||||
|
c0.003,0.167,0.004,0.297,0.004,0.39v3.229h-0.93V5.398h1.451l0.869,3.754L65.116,5.398z"/>
|
||||||
|
<path fill="#FFFFFF" d="M68.84,5.398h1.129l1.689,4.774h-1.082l-0.314-0.981h-1.759l-0.323,0.981h-1.044L68.84,5.398z
|
||||||
|
M68.774,8.369h1.223L69.395,6.49L68.774,8.369z"/>
|
||||||
|
<path fill="#FFFFFF" d="M73.175,10.173h-0.991V5.398h0.991V10.173z"/>
|
||||||
|
<path fill="#FFFFFF" d="M74.093,5.398h1.046l1.895,3.329V5.398h0.93v4.774h-0.997l-1.943-3.388v3.388h-0.93V5.398z"/>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 6.1 KiB |
BIN
images/favicon-16x16-next.png
Normal file
|
After Width: | Height: | Size: 435 B |
BIN
images/favicon-32x32-next.png
Normal file
|
After Width: | Height: | Size: 640 B |
23
images/logo.svg
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<svg
|
||||||
|
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||||
|
xmlns:cc="http://creativecommons.org/ns#"
|
||||||
|
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||||
|
xmlns:svg="http://www.w3.org/2000/svg"
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
xml:space="preserve"
|
||||||
|
enable-background="new 0 0 512 512"
|
||||||
|
viewBox="0 0 512 512"
|
||||||
|
height="512px"
|
||||||
|
width="512px"
|
||||||
|
y="0px"
|
||||||
|
x="0px"
|
||||||
|
id="NexT"
|
||||||
|
version="1.1"><metadata
|
||||||
|
id="metadata3390"><rdf:RDF><cc:Work
|
||||||
|
rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
|
||||||
|
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs
|
||||||
|
id="defs3388" /><path
|
||||||
|
style="fill:#222222;fill-opacity:1"
|
||||||
|
id="path3384"
|
||||||
|
d="M 256.4,25.8 56.4,141.3 56,371.5 255.6,486.2 455.6,370.7 456,140.5 Z m 92.6,328.8 -18.4,10.7 -18.6,-11 0,0 -112,-142.3 0,142.6 -18.4,10.7 -18.6,-11 0,-197 18.5,-10.6 18.5,10.8 0,0 112,144.5 0,-144.6 18.5,-10.6 18.5,10.8 z" /></svg>
|
||||||
|
After Width: | Height: | Size: 1.0 KiB |
427
index.html
Normal file
@@ -0,0 +1,427 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="zh-CN">
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8">
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=2">
|
||||||
|
<meta name="theme-color" content="#222">
|
||||||
|
<meta name="generator" content="Hexo 6.2.0">
|
||||||
|
<link rel="apple-touch-icon" sizes="180x180" href="/images/apple-touch-icon-next.png">
|
||||||
|
<link rel="icon" type="image/png" sizes="32x32" href="/images/favicon-32x32-next.png">
|
||||||
|
<link rel="icon" type="image/png" sizes="16x16" href="/images/favicon-16x16-next.png">
|
||||||
|
<link rel="mask-icon" href="/images/logo.svg" color="#222">
|
||||||
|
|
||||||
|
<link rel="stylesheet" href="/css/main.css">
|
||||||
|
|
||||||
|
|
||||||
|
<link rel="stylesheet" href="/lib/font-awesome/css/all.min.css">
|
||||||
|
<link rel="stylesheet" href="/lib/pace/pace-theme-minimal.min.css">
|
||||||
|
<script src="/lib/pace/pace.min.js"></script>
|
||||||
|
|
||||||
|
<script id="hexo-configurations">
|
||||||
|
var NexT = window.NexT || {};
|
||||||
|
var CONFIG = {"hostname":"example.com","root":"/","scheme":"Gemini","version":"7.8.0","exturl":false,"sidebar":{"position":"left","display":"post","padding":18,"offset":12,"onmobile":false},"copycode":{"enable":false,"show_result":false,"style":null},"back2top":{"enable":true,"sidebar":false,"scrollpercent":false},"bookmark":{"enable":false,"color":"#222","save":"auto"},"fancybox":false,"mediumzoom":false,"lazyload":false,"pangu":false,"comments":{"style":"tabs","active":null,"storage":true,"lazyload":false,"nav":null},"algolia":{"hits":{"per_page":10},"labels":{"input_placeholder":"Search for Posts","hits_empty":"We didn't find any results for the search: ${query}","hits_stats":"${hits} results found in ${time} ms"}},"localsearch":{"enable":false,"trigger":"auto","top_n_per_article":1,"unescape":false,"preload":false},"motion":{"enable":true,"async":false,"transition":{"post_block":"fadeIn","post_header":"slideDownIn","post_body":"slideDownIn","coll_header":"slideLeftIn","sidebar":"slideUpIn"}}};
|
||||||
|
</script>
|
||||||
|
|
||||||
|
|
||||||
|
<meta property="og:type" content="website">
|
||||||
|
<meta property="og:title" content="流量不足ow的个人博客">
|
||||||
|
<meta property="og:url" content="http://example.com/index.html">
|
||||||
|
<meta property="og:site_name" content="流量不足ow的个人博客">
|
||||||
|
<meta property="og:locale" content="zh_CN">
|
||||||
|
<meta property="article:author" content="llbzow">
|
||||||
|
<meta name="twitter:card" content="summary">
|
||||||
|
|
||||||
|
<link rel="canonical" href="http://example.com/">
|
||||||
|
|
||||||
|
|
||||||
|
<script id="page-configurations">
|
||||||
|
// https://hexo.io/docs/variables.html
|
||||||
|
CONFIG.page = {
|
||||||
|
sidebar: "",
|
||||||
|
isHome : true,
|
||||||
|
isPost : false,
|
||||||
|
lang : 'zh-CN'
|
||||||
|
};
|
||||||
|
</script>
|
||||||
|
|
||||||
|
|
||||||
|
<script>
|
||||||
|
(function () {
|
||||||
|
if ('') {
|
||||||
|
if (prompt('请输入文章密码') !== '') {
|
||||||
|
alert('密码错误!');
|
||||||
|
if (history.length === 1) {
|
||||||
|
location.replace("http://blog.llbzow.tk"); // 这里替换成你的首页
|
||||||
|
} else {
|
||||||
|
history.back();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})();
|
||||||
|
</script>
|
||||||
|
<title>流量不足ow的个人博客</title>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<noscript>
|
||||||
|
<style>
|
||||||
|
.use-motion .brand,
|
||||||
|
.use-motion .menu-item,
|
||||||
|
.sidebar-inner,
|
||||||
|
.use-motion .post-block,
|
||||||
|
.use-motion .pagination,
|
||||||
|
.use-motion .comments,
|
||||||
|
.use-motion .post-header,
|
||||||
|
.use-motion .post-body,
|
||||||
|
.use-motion .collection-header { opacity: initial; }
|
||||||
|
|
||||||
|
.use-motion .site-title,
|
||||||
|
.use-motion .site-subtitle {
|
||||||
|
opacity: initial;
|
||||||
|
top: initial;
|
||||||
|
}
|
||||||
|
|
||||||
|
.use-motion .logo-line-before i { left: initial; }
|
||||||
|
.use-motion .logo-line-after i { right: initial; }
|
||||||
|
</style>
|
||||||
|
</noscript>
|
||||||
|
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body itemscope itemtype="http://schema.org/WebPage">
|
||||||
|
<div class="container use-motion">
|
||||||
|
<div class="headband"></div>
|
||||||
|
|
||||||
|
<header class="header" itemscope itemtype="http://schema.org/WPHeader">
|
||||||
|
<div class="header-inner"><div class="site-brand-container">
|
||||||
|
<div class="site-nav-toggle">
|
||||||
|
<div class="toggle" aria-label="切换导航栏">
|
||||||
|
<span class="toggle-line toggle-line-first"></span>
|
||||||
|
<span class="toggle-line toggle-line-middle"></span>
|
||||||
|
<span class="toggle-line toggle-line-last"></span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="site-meta">
|
||||||
|
|
||||||
|
<a href="/" class="brand" rel="start">
|
||||||
|
<span class="logo-line-before"><i></i></span>
|
||||||
|
<h1 class="site-title">流量不足ow的个人博客</h1>
|
||||||
|
<span class="logo-line-after"><i></i></span>
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="site-nav-right">
|
||||||
|
<div class="toggle popup-trigger">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<nav class="site-nav">
|
||||||
|
<ul id="menu" class="main-menu menu">
|
||||||
|
<li class="menu-item menu-item-home">
|
||||||
|
|
||||||
|
<a href="/" rel="section"><i class="fa fa-home fa-fw"></i>首页</a>
|
||||||
|
|
||||||
|
</li>
|
||||||
|
<li class="menu-item menu-item-about">
|
||||||
|
|
||||||
|
<a href="/about/" rel="section"><i class="fa fa-user fa-fw"></i>关于</a>
|
||||||
|
|
||||||
|
</li>
|
||||||
|
<li class="menu-item menu-item-tags">
|
||||||
|
|
||||||
|
<a href="/tags/" rel="section"><i class="fa fa-tags fa-fw"></i>标签</a>
|
||||||
|
|
||||||
|
</li>
|
||||||
|
<li class="menu-item menu-item-categories">
|
||||||
|
|
||||||
|
<a href="/categories/" rel="section"><i class="fa fa-th fa-fw"></i>分类</a>
|
||||||
|
|
||||||
|
</li>
|
||||||
|
<li class="menu-item menu-item-archives">
|
||||||
|
|
||||||
|
<a href="/archives/" rel="section"><i class="fa fa-archive fa-fw"></i>归档</a>
|
||||||
|
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</nav>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</header>
|
||||||
|
|
||||||
|
|
||||||
|
<div class="back-to-top">
|
||||||
|
<i class="fa fa-arrow-up"></i>
|
||||||
|
<span>0%</span>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
<main class="main">
|
||||||
|
<div class="main-inner">
|
||||||
|
<div class="content-wrap">
|
||||||
|
|
||||||
|
|
||||||
|
<div class="content index posts-expand">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<article itemscope itemtype="http://schema.org/Article" class="post-block" lang="zh-CN">
|
||||||
|
<link itemprop="mainEntityOfPage" href="http://example.com/2022/06/20/My-First-Blog/">
|
||||||
|
|
||||||
|
<span hidden itemprop="author" itemscope itemtype="http://schema.org/Person">
|
||||||
|
<meta itemprop="image" content="/images/avatar.png">
|
||||||
|
<meta itemprop="name" content="llbzow">
|
||||||
|
<meta itemprop="description" content="">
|
||||||
|
</span>
|
||||||
|
|
||||||
|
<span hidden itemprop="publisher" itemscope itemtype="http://schema.org/Organization">
|
||||||
|
<meta itemprop="name" content="流量不足ow的个人博客">
|
||||||
|
</span>
|
||||||
|
<header class="post-header">
|
||||||
|
<h2 class="post-title" itemprop="name headline">
|
||||||
|
|
||||||
|
<a href="/2022/06/20/My-First-Blog/" class="post-title-link" itemprop="url">博客留言区</a>
|
||||||
|
</h2>
|
||||||
|
|
||||||
|
<div class="post-meta">
|
||||||
|
<span class="post-meta-item">
|
||||||
|
<span class="post-meta-item-icon">
|
||||||
|
<i class="far fa-calendar"></i>
|
||||||
|
</span>
|
||||||
|
<span class="post-meta-item-text">发表于</span>
|
||||||
|
|
||||||
|
<time title="创建时间:2022-06-20 00:00:48" itemprop="dateCreated datePublished" datetime="2022-06-20T00:00:48+08:00">2022-06-20</time>
|
||||||
|
</span>
|
||||||
|
<span class="post-meta-item">
|
||||||
|
<span class="post-meta-item-icon">
|
||||||
|
<i class="far fa-calendar-check"></i>
|
||||||
|
</span>
|
||||||
|
<span class="post-meta-item-text">更新于</span>
|
||||||
|
<time title="修改时间:2022-07-09 20:25:59" itemprop="dateModified" datetime="2022-07-09T20:25:59+08:00">2022-07-09</time>
|
||||||
|
</span>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</header>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<div class="post-body" itemprop="articleBody">
|
||||||
|
|
||||||
|
|
||||||
|
<link rel="stylesheet" href="/css/spoiler.css" type="text/css"><script src="/js/spoiler.js" type="text/javascript" async></script>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<footer class="post-footer">
|
||||||
|
<div class="post-eof"></div>
|
||||||
|
</footer>
|
||||||
|
</article>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
<script>
|
||||||
|
window.addEventListener('tabs:register', () => {
|
||||||
|
let { activeClass } = CONFIG.comments;
|
||||||
|
if (CONFIG.comments.storage) {
|
||||||
|
activeClass = localStorage.getItem('comments_active') || activeClass;
|
||||||
|
}
|
||||||
|
if (activeClass) {
|
||||||
|
let activeTab = document.querySelector(`a[href="#comment-${activeClass}"]`);
|
||||||
|
if (activeTab) {
|
||||||
|
activeTab.click();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
if (CONFIG.comments.storage) {
|
||||||
|
window.addEventListener('tabs:click', event => {
|
||||||
|
if (!event.target.matches('.tabs-comment .tab-content .tab-pane')) return;
|
||||||
|
let commentClass = event.target.classList[1];
|
||||||
|
localStorage.setItem('comments_active', commentClass);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
<div class="toggle sidebar-toggle">
|
||||||
|
<span class="toggle-line toggle-line-first"></span>
|
||||||
|
<span class="toggle-line toggle-line-middle"></span>
|
||||||
|
<span class="toggle-line toggle-line-last"></span>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<aside class="sidebar">
|
||||||
|
<div class="sidebar-inner">
|
||||||
|
|
||||||
|
<ul class="sidebar-nav motion-element">
|
||||||
|
<li class="sidebar-nav-toc">
|
||||||
|
文章目录
|
||||||
|
</li>
|
||||||
|
<li class="sidebar-nav-overview">
|
||||||
|
站点概览
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<!--noindex-->
|
||||||
|
<div class="post-toc-wrap sidebar-panel">
|
||||||
|
</div>
|
||||||
|
<!--/noindex-->
|
||||||
|
|
||||||
|
<div class="site-overview-wrap sidebar-panel">
|
||||||
|
<div class="site-author motion-element" itemprop="author" itemscope itemtype="http://schema.org/Person">
|
||||||
|
<img class="site-author-image" itemprop="image" alt="llbzow"
|
||||||
|
src="/images/avatar.png">
|
||||||
|
<p class="site-author-name" itemprop="name">llbzow</p>
|
||||||
|
<div class="site-description" itemprop="description"></div>
|
||||||
|
</div>
|
||||||
|
<div class="site-state-wrap motion-element">
|
||||||
|
<nav class="site-state">
|
||||||
|
<div class="site-state-item site-state-posts">
|
||||||
|
<a href="/archives/">
|
||||||
|
|
||||||
|
<span class="site-state-item-count">1</span>
|
||||||
|
<span class="site-state-item-name">日志</span>
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
</nav>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</aside>
|
||||||
|
<div id="sidebar-dimmer"></div>
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</main>
|
||||||
|
|
||||||
|
<footer class="footer">
|
||||||
|
<div class="footer-inner">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<div class="copyright">
|
||||||
|
|
||||||
|
© 2022-06 –
|
||||||
|
<span itemprop="copyrightYear">2022</span>
|
||||||
|
<span class="with-love">
|
||||||
|
<i class="fa fa-heart"></i>
|
||||||
|
</span>
|
||||||
|
<span class="author" itemprop="copyrightHolder">llbzow</span>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!--
|
||||||
|
<div class="powered-by">由 <a href="https://hexo.io/" class="theme-link" rel="noopener" target="_blank">Hexo</a> & <a href="https://theme-next.org/" class="theme-link" rel="noopener" target="_blank">NexT.Gemini</a> 强力驱动
|
||||||
|
</div>
|
||||||
|
-->
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<div class="busuanzi-count">
|
||||||
|
<script async src="https://busuanzi.ibruce.info/busuanzi/2.3/busuanzi.pure.mini.js"></script>
|
||||||
|
<span class="post-meta-item" id="busuanzi_container_site_uv" style="display: none;">
|
||||||
|
<span class="post-meta-item-icon">
|
||||||
|
<i class="fa fa-user"></i>
|
||||||
|
</span>
|
||||||
|
<span class="site-uv" title="总访客量">
|
||||||
|
<span id="busuanzi_value_site_uv"></span>
|
||||||
|
</span>
|
||||||
|
</span>
|
||||||
|
<span class="post-meta-divider">|</span>
|
||||||
|
<span class="post-meta-item" id="busuanzi_container_site_pv" style="display: none;">
|
||||||
|
<span class="post-meta-item-icon">
|
||||||
|
<i class="fa fa-eye"></i>
|
||||||
|
</span>
|
||||||
|
<span class="site-pv" title="总访问量">
|
||||||
|
<span id="busuanzi_value_site_pv"></span>
|
||||||
|
</span>
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</footer>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<script color='0,0,255' opacity='0.5' zIndex='-1' count='99' src="/lib/canvas-nest/canvas-nest.min.js"></script>
|
||||||
|
<script size="300" alpha="0.6" zIndex="-1" src="/lib/canvas-ribbon/canvas-ribbon.js"></script>
|
||||||
|
<script src="/lib/anime.min.js"></script>
|
||||||
|
<script src="/lib/velocity/velocity.min.js"></script>
|
||||||
|
<script src="/lib/velocity/velocity.ui.min.js"></script>
|
||||||
|
|
||||||
|
<script src="/js/utils.js"></script>
|
||||||
|
|
||||||
|
<script src="/js/motion.js"></script>
|
||||||
|
|
||||||
|
|
||||||
|
<script src="/js/schemes/pisces.js"></script>
|
||||||
|
|
||||||
|
|
||||||
|
<script src="/js/next-boot.js"></script>
|
||||||
|
|
||||||
|
|
||||||
|
<script defer src="/lib/three/three.min.js"></script>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<script src="/live2dw/lib/L2Dwidget.min.js?094cbace49a39548bed64abff5988b05"></script><script>L2Dwidget.init({"pluginRootPath":"live2dw/","pluginJsPath":"lib/","pluginModelPath":"assets/","tagMode":false,"debug":false,"model":{"jsonPath":"/live2dw/assets/koharu.model.json"},"display":{"position":"left","width":250,"height":500},"mobile":{"show":true},"react":{"opacity":0.9},"log":false});</script></body>
|
||||||
|
</html>
|
||||||
124
js/algolia-search.js
Normal file
@@ -0,0 +1,124 @@
|
|||||||
|
/* global instantsearch, algoliasearch, CONFIG */
|
||||||
|
|
||||||
|
document.addEventListener('DOMContentLoaded', () => {
|
||||||
|
const algoliaSettings = CONFIG.algolia;
|
||||||
|
const { indexName, appID, apiKey } = algoliaSettings;
|
||||||
|
|
||||||
|
let search = instantsearch({
|
||||||
|
indexName,
|
||||||
|
searchClient : algoliasearch(appID, apiKey),
|
||||||
|
searchFunction: helper => {
|
||||||
|
let searchInput = document.querySelector('.search-input');
|
||||||
|
if (searchInput.value) {
|
||||||
|
helper.search();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
window.pjax && search.on('render', () => {
|
||||||
|
window.pjax.refresh(document.getElementById('algolia-hits'));
|
||||||
|
});
|
||||||
|
|
||||||
|
// Registering Widgets
|
||||||
|
search.addWidgets([
|
||||||
|
instantsearch.widgets.configure({
|
||||||
|
hitsPerPage: algoliaSettings.hits.per_page || 10
|
||||||
|
}),
|
||||||
|
|
||||||
|
instantsearch.widgets.searchBox({
|
||||||
|
container : '.search-input-container',
|
||||||
|
placeholder : algoliaSettings.labels.input_placeholder,
|
||||||
|
// Hide default icons of algolia search
|
||||||
|
showReset : false,
|
||||||
|
showSubmit : false,
|
||||||
|
showLoadingIndicator: false,
|
||||||
|
cssClasses : {
|
||||||
|
input: 'search-input'
|
||||||
|
}
|
||||||
|
}),
|
||||||
|
|
||||||
|
instantsearch.widgets.stats({
|
||||||
|
container: '#algolia-stats',
|
||||||
|
templates: {
|
||||||
|
text: data => {
|
||||||
|
let stats = algoliaSettings.labels.hits_stats
|
||||||
|
.replace(/\$\{hits}/, data.nbHits)
|
||||||
|
.replace(/\$\{time}/, data.processingTimeMS);
|
||||||
|
return `${stats}
|
||||||
|
<span class="algolia-powered">
|
||||||
|
<img src="${CONFIG.root}images/algolia_logo.svg" alt="Algolia">
|
||||||
|
</span>
|
||||||
|
<hr>`;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}),
|
||||||
|
|
||||||
|
instantsearch.widgets.hits({
|
||||||
|
container: '#algolia-hits',
|
||||||
|
templates: {
|
||||||
|
item: data => {
|
||||||
|
let link = data.permalink ? data.permalink : CONFIG.root + data.path;
|
||||||
|
return `<a href="${link}" class="algolia-hit-item-link">${data._highlightResult.title.value}</a>`;
|
||||||
|
},
|
||||||
|
empty: data => {
|
||||||
|
return `<div id="algolia-hits-empty">
|
||||||
|
${algoliaSettings.labels.hits_empty.replace(/\$\{query}/, data.query)}
|
||||||
|
</div>`;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
cssClasses: {
|
||||||
|
item: 'algolia-hit-item'
|
||||||
|
}
|
||||||
|
}),
|
||||||
|
|
||||||
|
instantsearch.widgets.pagination({
|
||||||
|
container: '#algolia-pagination',
|
||||||
|
scrollTo : false,
|
||||||
|
showFirst: false,
|
||||||
|
showLast : false,
|
||||||
|
templates: {
|
||||||
|
first : '<i class="fa fa-angle-double-left"></i>',
|
||||||
|
last : '<i class="fa fa-angle-double-right"></i>',
|
||||||
|
previous: '<i class="fa fa-angle-left"></i>',
|
||||||
|
next : '<i class="fa fa-angle-right"></i>'
|
||||||
|
},
|
||||||
|
cssClasses: {
|
||||||
|
root : 'pagination',
|
||||||
|
item : 'pagination-item',
|
||||||
|
link : 'page-number',
|
||||||
|
selectedItem: 'current',
|
||||||
|
disabledItem: 'disabled-item'
|
||||||
|
}
|
||||||
|
})
|
||||||
|
]);
|
||||||
|
|
||||||
|
search.start();
|
||||||
|
|
||||||
|
// Handle and trigger popup window
|
||||||
|
document.querySelectorAll('.popup-trigger').forEach(element => {
|
||||||
|
element.addEventListener('click', () => {
|
||||||
|
document.body.style.overflow = 'hidden';
|
||||||
|
document.querySelector('.search-pop-overlay').classList.add('search-active');
|
||||||
|
document.querySelector('.search-input').focus();
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
// Monitor main search box
|
||||||
|
const onPopupClose = () => {
|
||||||
|
document.body.style.overflow = '';
|
||||||
|
document.querySelector('.search-pop-overlay').classList.remove('search-active');
|
||||||
|
};
|
||||||
|
|
||||||
|
document.querySelector('.search-pop-overlay').addEventListener('click', event => {
|
||||||
|
if (event.target === document.querySelector('.search-pop-overlay')) {
|
||||||
|
onPopupClose();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
document.querySelector('.popup-btn-close').addEventListener('click', onPopupClose);
|
||||||
|
window.addEventListener('pjax:success', onPopupClose);
|
||||||
|
window.addEventListener('keyup', event => {
|
||||||
|
if (event.key === 'Escape') {
|
||||||
|
onPopupClose();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
56
js/bookmark.js
Normal file
@@ -0,0 +1,56 @@
|
|||||||
|
/* global CONFIG */
|
||||||
|
|
||||||
|
document.addEventListener('DOMContentLoaded', () => {
|
||||||
|
'use strict';
|
||||||
|
|
||||||
|
var doSaveScroll = () => {
|
||||||
|
localStorage.setItem('bookmark' + location.pathname, window.scrollY);
|
||||||
|
};
|
||||||
|
|
||||||
|
var scrollToMark = () => {
|
||||||
|
var top = localStorage.getItem('bookmark' + location.pathname);
|
||||||
|
top = parseInt(top, 10);
|
||||||
|
// If the page opens with a specific hash, just jump out
|
||||||
|
if (!isNaN(top) && location.hash === '') {
|
||||||
|
// Auto scroll to the position
|
||||||
|
window.anime({
|
||||||
|
targets : document.scrollingElement,
|
||||||
|
duration : 200,
|
||||||
|
easing : 'linear',
|
||||||
|
scrollTop: top
|
||||||
|
});
|
||||||
|
}
|
||||||
|
};
|
||||||
|
// Register everything
|
||||||
|
var init = function(trigger) {
|
||||||
|
// Create a link element
|
||||||
|
var link = document.querySelector('.book-mark-link');
|
||||||
|
// Scroll event
|
||||||
|
window.addEventListener('scroll', () => link.classList.toggle('book-mark-link-fixed', window.scrollY === 0));
|
||||||
|
// Register beforeunload event when the trigger is auto
|
||||||
|
if (trigger === 'auto') {
|
||||||
|
// Register beforeunload event
|
||||||
|
window.addEventListener('beforeunload', doSaveScroll);
|
||||||
|
window.addEventListener('pjax:send', doSaveScroll);
|
||||||
|
}
|
||||||
|
// Save the position by clicking the icon
|
||||||
|
link.addEventListener('click', () => {
|
||||||
|
doSaveScroll();
|
||||||
|
window.anime({
|
||||||
|
targets : link,
|
||||||
|
duration: 200,
|
||||||
|
easing : 'linear',
|
||||||
|
top : -30,
|
||||||
|
complete: () => {
|
||||||
|
setTimeout(() => {
|
||||||
|
link.style.top = '';
|
||||||
|
}, 400);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
scrollToMark();
|
||||||
|
window.addEventListener('pjax:success', scrollToMark);
|
||||||
|
};
|
||||||
|
|
||||||
|
init(CONFIG.bookmark.save);
|
||||||
|
});
|
||||||
278
js/local-search.js
Normal file
@@ -0,0 +1,278 @@
|
|||||||
|
/* global CONFIG */
|
||||||
|
|
||||||
|
document.addEventListener('DOMContentLoaded', () => {
|
||||||
|
// Popup Window
|
||||||
|
let isfetched = false;
|
||||||
|
let datas;
|
||||||
|
let isXml = true;
|
||||||
|
// Search DB path
|
||||||
|
let searchPath = CONFIG.path;
|
||||||
|
if (searchPath.length === 0) {
|
||||||
|
searchPath = 'search.xml';
|
||||||
|
} else if (searchPath.endsWith('json')) {
|
||||||
|
isXml = false;
|
||||||
|
}
|
||||||
|
const input = document.querySelector('.search-input');
|
||||||
|
const resultContent = document.getElementById('search-result');
|
||||||
|
|
||||||
|
const getIndexByWord = (word, text, caseSensitive) => {
|
||||||
|
if (CONFIG.localsearch.unescape) {
|
||||||
|
let div = document.createElement('div');
|
||||||
|
div.innerText = word;
|
||||||
|
word = div.innerHTML;
|
||||||
|
}
|
||||||
|
let wordLen = word.length;
|
||||||
|
if (wordLen === 0) return [];
|
||||||
|
let startPosition = 0;
|
||||||
|
let position = [];
|
||||||
|
let index = [];
|
||||||
|
if (!caseSensitive) {
|
||||||
|
text = text.toLowerCase();
|
||||||
|
word = word.toLowerCase();
|
||||||
|
}
|
||||||
|
while ((position = text.indexOf(word, startPosition)) > -1) {
|
||||||
|
index.push({ position, word });
|
||||||
|
startPosition = position + wordLen;
|
||||||
|
}
|
||||||
|
return index;
|
||||||
|
};
|
||||||
|
|
||||||
|
// Merge hits into slices
|
||||||
|
const mergeIntoSlice = (start, end, index, searchText) => {
|
||||||
|
let item = index[index.length - 1];
|
||||||
|
let { position, word } = item;
|
||||||
|
let hits = [];
|
||||||
|
let searchTextCountInSlice = 0;
|
||||||
|
while (position + word.length <= end && index.length !== 0) {
|
||||||
|
if (word === searchText) {
|
||||||
|
searchTextCountInSlice++;
|
||||||
|
}
|
||||||
|
hits.push({
|
||||||
|
position,
|
||||||
|
length: word.length
|
||||||
|
});
|
||||||
|
let wordEnd = position + word.length;
|
||||||
|
|
||||||
|
// Move to next position of hit
|
||||||
|
index.pop();
|
||||||
|
while (index.length !== 0) {
|
||||||
|
item = index[index.length - 1];
|
||||||
|
position = item.position;
|
||||||
|
word = item.word;
|
||||||
|
if (wordEnd > position) {
|
||||||
|
index.pop();
|
||||||
|
} else {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return {
|
||||||
|
hits,
|
||||||
|
start,
|
||||||
|
end,
|
||||||
|
searchTextCount: searchTextCountInSlice
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
// Highlight title and content
|
||||||
|
const highlightKeyword = (text, slice) => {
|
||||||
|
let result = '';
|
||||||
|
let prevEnd = slice.start;
|
||||||
|
slice.hits.forEach(hit => {
|
||||||
|
result += text.substring(prevEnd, hit.position);
|
||||||
|
let end = hit.position + hit.length;
|
||||||
|
result += `<b class="search-keyword">${text.substring(hit.position, end)}</b>`;
|
||||||
|
prevEnd = end;
|
||||||
|
});
|
||||||
|
result += text.substring(prevEnd, slice.end);
|
||||||
|
return result;
|
||||||
|
};
|
||||||
|
|
||||||
|
const inputEventFunction = () => {
|
||||||
|
if (!isfetched) return;
|
||||||
|
let searchText = input.value.trim().toLowerCase();
|
||||||
|
let keywords = searchText.split(/[-\s]+/);
|
||||||
|
if (keywords.length > 1) {
|
||||||
|
keywords.push(searchText);
|
||||||
|
}
|
||||||
|
let resultItems = [];
|
||||||
|
if (searchText.length > 0) {
|
||||||
|
// Perform local searching
|
||||||
|
datas.forEach(({ title, content, url }) => {
|
||||||
|
let titleInLowerCase = title.toLowerCase();
|
||||||
|
let contentInLowerCase = content.toLowerCase();
|
||||||
|
let indexOfTitle = [];
|
||||||
|
let indexOfContent = [];
|
||||||
|
let searchTextCount = 0;
|
||||||
|
keywords.forEach(keyword => {
|
||||||
|
indexOfTitle = indexOfTitle.concat(getIndexByWord(keyword, titleInLowerCase, false));
|
||||||
|
indexOfContent = indexOfContent.concat(getIndexByWord(keyword, contentInLowerCase, false));
|
||||||
|
});
|
||||||
|
|
||||||
|
// Show search results
|
||||||
|
if (indexOfTitle.length > 0 || indexOfContent.length > 0) {
|
||||||
|
let hitCount = indexOfTitle.length + indexOfContent.length;
|
||||||
|
// Sort index by position of keyword
|
||||||
|
[indexOfTitle, indexOfContent].forEach(index => {
|
||||||
|
index.sort((itemLeft, itemRight) => {
|
||||||
|
if (itemRight.position !== itemLeft.position) {
|
||||||
|
return itemRight.position - itemLeft.position;
|
||||||
|
}
|
||||||
|
return itemLeft.word.length - itemRight.word.length;
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
let slicesOfTitle = [];
|
||||||
|
if (indexOfTitle.length !== 0) {
|
||||||
|
let tmp = mergeIntoSlice(0, title.length, indexOfTitle, searchText);
|
||||||
|
searchTextCount += tmp.searchTextCountInSlice;
|
||||||
|
slicesOfTitle.push(tmp);
|
||||||
|
}
|
||||||
|
|
||||||
|
let slicesOfContent = [];
|
||||||
|
while (indexOfContent.length !== 0) {
|
||||||
|
let item = indexOfContent[indexOfContent.length - 1];
|
||||||
|
let { position, word } = item;
|
||||||
|
// Cut out 100 characters
|
||||||
|
let start = position - 20;
|
||||||
|
let end = position + 80;
|
||||||
|
if (start < 0) {
|
||||||
|
start = 0;
|
||||||
|
}
|
||||||
|
if (end < position + word.length) {
|
||||||
|
end = position + word.length;
|
||||||
|
}
|
||||||
|
if (end > content.length) {
|
||||||
|
end = content.length;
|
||||||
|
}
|
||||||
|
let tmp = mergeIntoSlice(start, end, indexOfContent, searchText);
|
||||||
|
searchTextCount += tmp.searchTextCountInSlice;
|
||||||
|
slicesOfContent.push(tmp);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Sort slices in content by search text's count and hits' count
|
||||||
|
slicesOfContent.sort((sliceLeft, sliceRight) => {
|
||||||
|
if (sliceLeft.searchTextCount !== sliceRight.searchTextCount) {
|
||||||
|
return sliceRight.searchTextCount - sliceLeft.searchTextCount;
|
||||||
|
} else if (sliceLeft.hits.length !== sliceRight.hits.length) {
|
||||||
|
return sliceRight.hits.length - sliceLeft.hits.length;
|
||||||
|
}
|
||||||
|
return sliceLeft.start - sliceRight.start;
|
||||||
|
});
|
||||||
|
|
||||||
|
// Select top N slices in content
|
||||||
|
let upperBound = parseInt(CONFIG.localsearch.top_n_per_article, 10);
|
||||||
|
if (upperBound >= 0) {
|
||||||
|
slicesOfContent = slicesOfContent.slice(0, upperBound);
|
||||||
|
}
|
||||||
|
|
||||||
|
let resultItem = '';
|
||||||
|
|
||||||
|
if (slicesOfTitle.length !== 0) {
|
||||||
|
resultItem += `<li><a href="${url}" class="search-result-title">${highlightKeyword(title, slicesOfTitle[0])}</a>`;
|
||||||
|
} else {
|
||||||
|
resultItem += `<li><a href="${url}" class="search-result-title">${title}</a>`;
|
||||||
|
}
|
||||||
|
|
||||||
|
slicesOfContent.forEach(slice => {
|
||||||
|
resultItem += `<a href="${url}"><p class="search-result">${highlightKeyword(content, slice)}...</p></a>`;
|
||||||
|
});
|
||||||
|
|
||||||
|
resultItem += '</li>';
|
||||||
|
resultItems.push({
|
||||||
|
item: resultItem,
|
||||||
|
id : resultItems.length,
|
||||||
|
hitCount,
|
||||||
|
searchTextCount
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
if (keywords.length === 1 && keywords[0] === '') {
|
||||||
|
resultContent.innerHTML = '<div id="no-result"><i class="fa fa-search fa-5x"></i></div>';
|
||||||
|
} else if (resultItems.length === 0) {
|
||||||
|
resultContent.innerHTML = '<div id="no-result"><i class="far fa-frown fa-5x"></i></div>';
|
||||||
|
} else {
|
||||||
|
resultItems.sort((resultLeft, resultRight) => {
|
||||||
|
if (resultLeft.searchTextCount !== resultRight.searchTextCount) {
|
||||||
|
return resultRight.searchTextCount - resultLeft.searchTextCount;
|
||||||
|
} else if (resultLeft.hitCount !== resultRight.hitCount) {
|
||||||
|
return resultRight.hitCount - resultLeft.hitCount;
|
||||||
|
}
|
||||||
|
return resultRight.id - resultLeft.id;
|
||||||
|
});
|
||||||
|
resultContent.innerHTML = `<ul class="search-result-list">${resultItems.map(result => result.item).join('')}</ul>`;
|
||||||
|
window.pjax && window.pjax.refresh(resultContent);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
const fetchData = () => {
|
||||||
|
fetch(CONFIG.root + searchPath)
|
||||||
|
.then(response => response.text())
|
||||||
|
.then(res => {
|
||||||
|
// Get the contents from search data
|
||||||
|
isfetched = true;
|
||||||
|
datas = isXml ? [...new DOMParser().parseFromString(res, 'text/xml').querySelectorAll('entry')].map(element => {
|
||||||
|
return {
|
||||||
|
title : element.querySelector('title').textContent,
|
||||||
|
content: element.querySelector('content').textContent,
|
||||||
|
url : element.querySelector('url').textContent
|
||||||
|
};
|
||||||
|
}) : JSON.parse(res);
|
||||||
|
// Only match articles with not empty titles
|
||||||
|
datas = datas.filter(data => data.title).map(data => {
|
||||||
|
data.title = data.title.trim();
|
||||||
|
data.content = data.content ? data.content.trim().replace(/<[^>]+>/g, '') : '';
|
||||||
|
data.url = decodeURIComponent(data.url).replace(/\/{2,}/g, '/');
|
||||||
|
return data;
|
||||||
|
});
|
||||||
|
// Remove loading animation
|
||||||
|
document.getElementById('no-result').innerHTML = '<i class="fa fa-search fa-5x"></i>';
|
||||||
|
inputEventFunction();
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
if (CONFIG.localsearch.preload) {
|
||||||
|
fetchData();
|
||||||
|
}
|
||||||
|
|
||||||
|
if (CONFIG.localsearch.trigger === 'auto') {
|
||||||
|
input.addEventListener('input', inputEventFunction);
|
||||||
|
} else {
|
||||||
|
document.querySelector('.search-icon').addEventListener('click', inputEventFunction);
|
||||||
|
input.addEventListener('keypress', event => {
|
||||||
|
if (event.key === 'Enter') {
|
||||||
|
inputEventFunction();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
// Handle and trigger popup window
|
||||||
|
document.querySelectorAll('.popup-trigger').forEach(element => {
|
||||||
|
element.addEventListener('click', () => {
|
||||||
|
document.body.style.overflow = 'hidden';
|
||||||
|
document.querySelector('.search-pop-overlay').classList.add('search-active');
|
||||||
|
input.focus();
|
||||||
|
if (!isfetched) fetchData();
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
// Monitor main search box
|
||||||
|
const onPopupClose = () => {
|
||||||
|
document.body.style.overflow = '';
|
||||||
|
document.querySelector('.search-pop-overlay').classList.remove('search-active');
|
||||||
|
};
|
||||||
|
|
||||||
|
document.querySelector('.search-pop-overlay').addEventListener('click', event => {
|
||||||
|
if (event.target === document.querySelector('.search-pop-overlay')) {
|
||||||
|
onPopupClose();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
document.querySelector('.popup-btn-close').addEventListener('click', onPopupClose);
|
||||||
|
window.addEventListener('pjax:success', onPopupClose);
|
||||||
|
window.addEventListener('keyup', event => {
|
||||||
|
if (event.key === 'Escape') {
|
||||||
|
onPopupClose();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
177
js/motion.js
Normal file
@@ -0,0 +1,177 @@
|
|||||||
|
/* global NexT, CONFIG, Velocity */
|
||||||
|
|
||||||
|
if (window.$ && window.$.Velocity) window.Velocity = window.$.Velocity;
|
||||||
|
|
||||||
|
NexT.motion = {};
|
||||||
|
|
||||||
|
NexT.motion.integrator = {
|
||||||
|
queue : [],
|
||||||
|
cursor: -1,
|
||||||
|
init : function() {
|
||||||
|
this.queue = [];
|
||||||
|
this.cursor = -1;
|
||||||
|
return this;
|
||||||
|
},
|
||||||
|
add: function(fn) {
|
||||||
|
this.queue.push(fn);
|
||||||
|
return this;
|
||||||
|
},
|
||||||
|
next: function() {
|
||||||
|
this.cursor++;
|
||||||
|
var fn = this.queue[this.cursor];
|
||||||
|
typeof fn === 'function' && fn(NexT.motion.integrator);
|
||||||
|
},
|
||||||
|
bootstrap: function() {
|
||||||
|
this.next();
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
NexT.motion.middleWares = {
|
||||||
|
logo: function(integrator) {
|
||||||
|
var sequence = [];
|
||||||
|
var brand = document.querySelector('.brand');
|
||||||
|
var image = document.querySelector('.custom-logo-image');
|
||||||
|
var title = document.querySelector('.site-title');
|
||||||
|
var subtitle = document.querySelector('.site-subtitle');
|
||||||
|
var logoLineTop = document.querySelector('.logo-line-before i');
|
||||||
|
var logoLineBottom = document.querySelector('.logo-line-after i');
|
||||||
|
|
||||||
|
brand && sequence.push({
|
||||||
|
e: brand,
|
||||||
|
p: {opacity: 1},
|
||||||
|
o: {duration: 200}
|
||||||
|
});
|
||||||
|
|
||||||
|
function getMistLineSettings(element, translateX) {
|
||||||
|
return {
|
||||||
|
e: element,
|
||||||
|
p: {translateX},
|
||||||
|
o: {
|
||||||
|
duration : 500,
|
||||||
|
sequenceQueue: false
|
||||||
|
}
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
function pushImageToSequence() {
|
||||||
|
sequence.push({
|
||||||
|
e: image,
|
||||||
|
p: {opacity: 1, top: 0},
|
||||||
|
o: {duration: 200}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
CONFIG.scheme === 'Mist' && logoLineTop && logoLineBottom
|
||||||
|
&& sequence.push(
|
||||||
|
getMistLineSettings(logoLineTop, '100%'),
|
||||||
|
getMistLineSettings(logoLineBottom, '-100%')
|
||||||
|
);
|
||||||
|
|
||||||
|
CONFIG.scheme === 'Muse' && image && pushImageToSequence();
|
||||||
|
|
||||||
|
title && sequence.push({
|
||||||
|
e: title,
|
||||||
|
p: {opacity: 1, top: 0},
|
||||||
|
o: {duration: 200}
|
||||||
|
});
|
||||||
|
|
||||||
|
subtitle && sequence.push({
|
||||||
|
e: subtitle,
|
||||||
|
p: {opacity: 1, top: 0},
|
||||||
|
o: {duration: 200}
|
||||||
|
});
|
||||||
|
|
||||||
|
(CONFIG.scheme === 'Pisces' || CONFIG.scheme === 'Gemini') && image && pushImageToSequence();
|
||||||
|
|
||||||
|
if (sequence.length > 0) {
|
||||||
|
sequence[sequence.length - 1].o.complete = function() {
|
||||||
|
integrator.next();
|
||||||
|
};
|
||||||
|
Velocity.RunSequence(sequence);
|
||||||
|
} else {
|
||||||
|
integrator.next();
|
||||||
|
}
|
||||||
|
|
||||||
|
if (CONFIG.motion.async) {
|
||||||
|
integrator.next();
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
menu: function(integrator) {
|
||||||
|
Velocity(document.querySelectorAll('.menu-item'), 'transition.slideDownIn', {
|
||||||
|
display : null,
|
||||||
|
duration: 200,
|
||||||
|
complete: function() {
|
||||||
|
integrator.next();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
if (CONFIG.motion.async) {
|
||||||
|
integrator.next();
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
subMenu: function(integrator) {
|
||||||
|
var subMenuItem = document.querySelectorAll('.sub-menu .menu-item');
|
||||||
|
if (subMenuItem.length > 0) {
|
||||||
|
subMenuItem.forEach(element => {
|
||||||
|
element.style.opacity = 1;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
integrator.next();
|
||||||
|
},
|
||||||
|
|
||||||
|
postList: function(integrator) {
|
||||||
|
var postBlock = document.querySelectorAll('.post-block, .pagination, .comments');
|
||||||
|
var postBlockTransition = CONFIG.motion.transition.post_block;
|
||||||
|
var postHeader = document.querySelectorAll('.post-header');
|
||||||
|
var postHeaderTransition = CONFIG.motion.transition.post_header;
|
||||||
|
var postBody = document.querySelectorAll('.post-body');
|
||||||
|
var postBodyTransition = CONFIG.motion.transition.post_body;
|
||||||
|
var collHeader = document.querySelectorAll('.collection-header');
|
||||||
|
var collHeaderTransition = CONFIG.motion.transition.coll_header;
|
||||||
|
|
||||||
|
if (postBlock.length > 0) {
|
||||||
|
var postMotionOptions = window.postMotionOptions || {
|
||||||
|
stagger : 100,
|
||||||
|
drag : true,
|
||||||
|
complete: function() {
|
||||||
|
integrator.next();
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
if (CONFIG.motion.transition.post_block) {
|
||||||
|
Velocity(postBlock, 'transition.' + postBlockTransition, postMotionOptions);
|
||||||
|
}
|
||||||
|
if (CONFIG.motion.transition.post_header) {
|
||||||
|
Velocity(postHeader, 'transition.' + postHeaderTransition, postMotionOptions);
|
||||||
|
}
|
||||||
|
if (CONFIG.motion.transition.post_body) {
|
||||||
|
Velocity(postBody, 'transition.' + postBodyTransition, postMotionOptions);
|
||||||
|
}
|
||||||
|
if (CONFIG.motion.transition.coll_header) {
|
||||||
|
Velocity(collHeader, 'transition.' + collHeaderTransition, postMotionOptions);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (CONFIG.scheme === 'Pisces' || CONFIG.scheme === 'Gemini') {
|
||||||
|
integrator.next();
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
sidebar: function(integrator) {
|
||||||
|
var sidebarAffix = document.querySelector('.sidebar-inner');
|
||||||
|
var sidebarAffixTransition = CONFIG.motion.transition.sidebar;
|
||||||
|
// Only for Pisces | Gemini.
|
||||||
|
if (sidebarAffixTransition && (CONFIG.scheme === 'Pisces' || CONFIG.scheme === 'Gemini')) {
|
||||||
|
Velocity(sidebarAffix, 'transition.' + sidebarAffixTransition, {
|
||||||
|
display : null,
|
||||||
|
duration: 200,
|
||||||
|
complete: function() {
|
||||||
|
// After motion complete need to remove transform from sidebar to let affix work on Pisces | Gemini.
|
||||||
|
sidebarAffix.style.transform = 'initial';
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
integrator.next();
|
||||||
|
}
|
||||||
|
};
|
||||||
114
js/next-boot.js
Normal file
@@ -0,0 +1,114 @@
|
|||||||
|
/* global NexT, CONFIG, Velocity */
|
||||||
|
|
||||||
|
NexT.boot = {};
|
||||||
|
|
||||||
|
NexT.boot.registerEvents = function() {
|
||||||
|
|
||||||
|
NexT.utils.registerScrollPercent();
|
||||||
|
NexT.utils.registerCanIUseTag();
|
||||||
|
|
||||||
|
// Mobile top menu bar.
|
||||||
|
document.querySelector('.site-nav-toggle .toggle').addEventListener('click', () => {
|
||||||
|
event.currentTarget.classList.toggle('toggle-close');
|
||||||
|
var siteNav = document.querySelector('.site-nav');
|
||||||
|
var animateAction = siteNav.classList.contains('site-nav-on') ? 'slideUp' : 'slideDown';
|
||||||
|
|
||||||
|
if (typeof Velocity === 'function') {
|
||||||
|
Velocity(siteNav, animateAction, {
|
||||||
|
duration: 200,
|
||||||
|
complete: function() {
|
||||||
|
siteNav.classList.toggle('site-nav-on');
|
||||||
|
}
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
siteNav.classList.toggle('site-nav-on');
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
var TAB_ANIMATE_DURATION = 200;
|
||||||
|
document.querySelectorAll('.sidebar-nav li').forEach((element, index) => {
|
||||||
|
element.addEventListener('click', event => {
|
||||||
|
var item = event.currentTarget;
|
||||||
|
var activeTabClassName = 'sidebar-nav-active';
|
||||||
|
var activePanelClassName = 'sidebar-panel-active';
|
||||||
|
if (item.classList.contains(activeTabClassName)) return;
|
||||||
|
|
||||||
|
var targets = document.querySelectorAll('.sidebar-panel');
|
||||||
|
var target = targets[index];
|
||||||
|
var currentTarget = targets[1 - index];
|
||||||
|
window.anime({
|
||||||
|
targets : currentTarget,
|
||||||
|
duration: TAB_ANIMATE_DURATION,
|
||||||
|
easing : 'linear',
|
||||||
|
opacity : 0,
|
||||||
|
complete: () => {
|
||||||
|
// Prevent adding TOC to Overview if Overview was selected when close & open sidebar.
|
||||||
|
currentTarget.classList.remove(activePanelClassName);
|
||||||
|
target.style.opacity = 0;
|
||||||
|
target.classList.add(activePanelClassName);
|
||||||
|
window.anime({
|
||||||
|
targets : target,
|
||||||
|
duration: TAB_ANIMATE_DURATION,
|
||||||
|
easing : 'linear',
|
||||||
|
opacity : 1
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
[...item.parentNode.children].forEach(element => {
|
||||||
|
element.classList.remove(activeTabClassName);
|
||||||
|
});
|
||||||
|
item.classList.add(activeTabClassName);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
window.addEventListener('resize', NexT.utils.initSidebarDimension);
|
||||||
|
|
||||||
|
window.addEventListener('hashchange', () => {
|
||||||
|
var tHash = location.hash;
|
||||||
|
if (tHash !== '' && !tHash.match(/%\S{2}/)) {
|
||||||
|
var target = document.querySelector(`.tabs ul.nav-tabs li a[href="${tHash}"]`);
|
||||||
|
target && target.click();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
NexT.boot.refresh = function() {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Register JS handlers by condition option.
|
||||||
|
* Need to add config option in Front-End at 'layout/_partials/head.swig' file.
|
||||||
|
*/
|
||||||
|
CONFIG.fancybox && NexT.utils.wrapImageWithFancyBox();
|
||||||
|
CONFIG.mediumzoom && window.mediumZoom('.post-body :not(a) > img, .post-body > img');
|
||||||
|
CONFIG.lazyload && window.lozad('.post-body img').observe();
|
||||||
|
CONFIG.pangu && window.pangu.spacingPage();
|
||||||
|
|
||||||
|
CONFIG.exturl && NexT.utils.registerExtURL();
|
||||||
|
CONFIG.copycode.enable && NexT.utils.registerCopyCode();
|
||||||
|
NexT.utils.registerTabsTag();
|
||||||
|
NexT.utils.registerActiveMenuItem();
|
||||||
|
NexT.utils.registerLangSelect();
|
||||||
|
NexT.utils.registerSidebarTOC();
|
||||||
|
NexT.utils.wrapTableWithBox();
|
||||||
|
NexT.utils.registerVideoIframe();
|
||||||
|
};
|
||||||
|
|
||||||
|
NexT.boot.motion = function() {
|
||||||
|
// Define Motion Sequence & Bootstrap Motion.
|
||||||
|
if (CONFIG.motion.enable) {
|
||||||
|
NexT.motion.integrator
|
||||||
|
.add(NexT.motion.middleWares.logo)
|
||||||
|
.add(NexT.motion.middleWares.menu)
|
||||||
|
.add(NexT.motion.middleWares.postList)
|
||||||
|
.add(NexT.motion.middleWares.sidebar)
|
||||||
|
.bootstrap();
|
||||||
|
}
|
||||||
|
NexT.utils.updateSidebarPosition();
|
||||||
|
};
|
||||||
|
|
||||||
|
document.addEventListener('DOMContentLoaded', () => {
|
||||||
|
NexT.boot.registerEvents();
|
||||||
|
NexT.boot.refresh();
|
||||||
|
NexT.boot.motion();
|
||||||
|
});
|
||||||
113
js/schemes/muse.js
Normal file
@@ -0,0 +1,113 @@
|
|||||||
|
/* global NexT, CONFIG, Velocity */
|
||||||
|
|
||||||
|
document.addEventListener('DOMContentLoaded', () => {
|
||||||
|
|
||||||
|
var isRight = CONFIG.sidebar.position === 'right';
|
||||||
|
var SIDEBAR_WIDTH = CONFIG.sidebar.width || 320;
|
||||||
|
var SIDEBAR_DISPLAY_DURATION = 200;
|
||||||
|
var mousePos = {};
|
||||||
|
|
||||||
|
var sidebarToggleLines = {
|
||||||
|
lines: document.querySelector('.sidebar-toggle'),
|
||||||
|
init : function() {
|
||||||
|
this.lines.classList.remove('toggle-arrow', 'toggle-close');
|
||||||
|
},
|
||||||
|
arrow: function() {
|
||||||
|
this.lines.classList.remove('toggle-close');
|
||||||
|
this.lines.classList.add('toggle-arrow');
|
||||||
|
},
|
||||||
|
close: function() {
|
||||||
|
this.lines.classList.remove('toggle-arrow');
|
||||||
|
this.lines.classList.add('toggle-close');
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
var sidebarToggleMotion = {
|
||||||
|
sidebarEl : document.querySelector('.sidebar'),
|
||||||
|
isSidebarVisible: false,
|
||||||
|
init : function() {
|
||||||
|
sidebarToggleLines.init();
|
||||||
|
|
||||||
|
window.addEventListener('mousedown', this.mousedownHandler.bind(this));
|
||||||
|
window.addEventListener('mouseup', this.mouseupHandler.bind(this));
|
||||||
|
document.querySelector('#sidebar-dimmer').addEventListener('click', this.clickHandler.bind(this));
|
||||||
|
document.querySelector('.sidebar-toggle').addEventListener('click', this.clickHandler.bind(this));
|
||||||
|
document.querySelector('.sidebar-toggle').addEventListener('mouseenter', this.mouseEnterHandler.bind(this));
|
||||||
|
document.querySelector('.sidebar-toggle').addEventListener('mouseleave', this.mouseLeaveHandler.bind(this));
|
||||||
|
window.addEventListener('sidebar:show', this.showSidebar.bind(this));
|
||||||
|
window.addEventListener('sidebar:hide', this.hideSidebar.bind(this));
|
||||||
|
},
|
||||||
|
mousedownHandler: function(event) {
|
||||||
|
mousePos.X = event.pageX;
|
||||||
|
mousePos.Y = event.pageY;
|
||||||
|
},
|
||||||
|
mouseupHandler: function(event) {
|
||||||
|
var deltaX = event.pageX - mousePos.X;
|
||||||
|
var deltaY = event.pageY - mousePos.Y;
|
||||||
|
var clickingBlankPart = Math.sqrt((deltaX * deltaX) + (deltaY * deltaY)) < 20 && event.target.matches('.main');
|
||||||
|
if (this.isSidebarVisible && (clickingBlankPart || event.target.matches('img.medium-zoom-image, .fancybox img'))) {
|
||||||
|
this.hideSidebar();
|
||||||
|
}
|
||||||
|
},
|
||||||
|
clickHandler: function() {
|
||||||
|
this.isSidebarVisible ? this.hideSidebar() : this.showSidebar();
|
||||||
|
},
|
||||||
|
mouseEnterHandler: function() {
|
||||||
|
if (!this.isSidebarVisible) {
|
||||||
|
sidebarToggleLines.arrow();
|
||||||
|
}
|
||||||
|
},
|
||||||
|
mouseLeaveHandler: function() {
|
||||||
|
if (!this.isSidebarVisible) {
|
||||||
|
sidebarToggleLines.init();
|
||||||
|
}
|
||||||
|
},
|
||||||
|
showSidebar: function() {
|
||||||
|
this.isSidebarVisible = true;
|
||||||
|
this.sidebarEl.classList.add('sidebar-active');
|
||||||
|
if (typeof Velocity === 'function') {
|
||||||
|
Velocity(document.querySelectorAll('.sidebar .motion-element'), isRight ? 'transition.slideRightIn' : 'transition.slideLeftIn', {
|
||||||
|
stagger: 50,
|
||||||
|
drag : true
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
sidebarToggleLines.close();
|
||||||
|
NexT.utils.isDesktop() && window.anime(Object.assign({
|
||||||
|
targets : document.body,
|
||||||
|
duration: SIDEBAR_DISPLAY_DURATION,
|
||||||
|
easing : 'linear'
|
||||||
|
}, isRight ? {
|
||||||
|
'padding-right': SIDEBAR_WIDTH
|
||||||
|
} : {
|
||||||
|
'padding-left': SIDEBAR_WIDTH
|
||||||
|
}));
|
||||||
|
},
|
||||||
|
hideSidebar: function() {
|
||||||
|
this.isSidebarVisible = false;
|
||||||
|
this.sidebarEl.classList.remove('sidebar-active');
|
||||||
|
|
||||||
|
sidebarToggleLines.init();
|
||||||
|
NexT.utils.isDesktop() && window.anime(Object.assign({
|
||||||
|
targets : document.body,
|
||||||
|
duration: SIDEBAR_DISPLAY_DURATION,
|
||||||
|
easing : 'linear'
|
||||||
|
}, isRight ? {
|
||||||
|
'padding-right': 0
|
||||||
|
} : {
|
||||||
|
'padding-left': 0
|
||||||
|
}));
|
||||||
|
}
|
||||||
|
};
|
||||||
|
sidebarToggleMotion.init();
|
||||||
|
|
||||||
|
function updateFooterPosition() {
|
||||||
|
var footer = document.querySelector('.footer');
|
||||||
|
var containerHeight = document.querySelector('.header').offsetHeight + document.querySelector('.main').offsetHeight + footer.offsetHeight;
|
||||||
|
footer.classList.toggle('footer-fixed', containerHeight <= window.innerHeight);
|
||||||
|
}
|
||||||
|
|
||||||
|
updateFooterPosition();
|
||||||
|
window.addEventListener('resize', updateFooterPosition);
|
||||||
|
window.addEventListener('scroll', updateFooterPosition);
|
||||||
|
});
|
||||||
86
js/schemes/pisces.js
Normal file
@@ -0,0 +1,86 @@
|
|||||||
|
/* global NexT, CONFIG */
|
||||||
|
|
||||||
|
var Affix = {
|
||||||
|
init: function(element, options) {
|
||||||
|
this.element = element;
|
||||||
|
this.offset = options || 0;
|
||||||
|
this.affixed = null;
|
||||||
|
this.unpin = null;
|
||||||
|
this.pinnedOffset = null;
|
||||||
|
this.checkPosition();
|
||||||
|
window.addEventListener('scroll', this.checkPosition.bind(this));
|
||||||
|
window.addEventListener('click', this.checkPositionWithEventLoop.bind(this));
|
||||||
|
window.matchMedia('(min-width: 992px)').addListener(event => {
|
||||||
|
if (event.matches) {
|
||||||
|
this.offset = NexT.utils.getAffixParam();
|
||||||
|
this.checkPosition();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
},
|
||||||
|
getState: function(scrollHeight, height, offsetTop, offsetBottom) {
|
||||||
|
let scrollTop = window.scrollY;
|
||||||
|
let targetHeight = window.innerHeight;
|
||||||
|
if (offsetTop != null && this.affixed === 'top') {
|
||||||
|
if (document.querySelector('.content-wrap').offsetHeight < offsetTop) return 'top';
|
||||||
|
return scrollTop < offsetTop ? 'top' : false;
|
||||||
|
}
|
||||||
|
if (this.affixed === 'bottom') {
|
||||||
|
if (offsetTop != null) return this.unpin <= this.element.getBoundingClientRect().top ? false : 'bottom';
|
||||||
|
return scrollTop + targetHeight <= scrollHeight - offsetBottom ? false : 'bottom';
|
||||||
|
}
|
||||||
|
let initializing = this.affixed === null;
|
||||||
|
let colliderTop = initializing ? scrollTop : this.element.getBoundingClientRect().top + scrollTop;
|
||||||
|
let colliderHeight = initializing ? targetHeight : height;
|
||||||
|
if (offsetTop != null && scrollTop <= offsetTop) return 'top';
|
||||||
|
if (offsetBottom != null && (colliderTop + colliderHeight >= scrollHeight - offsetBottom)) return 'bottom';
|
||||||
|
return false;
|
||||||
|
},
|
||||||
|
getPinnedOffset: function() {
|
||||||
|
if (this.pinnedOffset) return this.pinnedOffset;
|
||||||
|
this.element.classList.remove('affix-top', 'affix-bottom');
|
||||||
|
this.element.classList.add('affix');
|
||||||
|
return (this.pinnedOffset = this.element.getBoundingClientRect().top);
|
||||||
|
},
|
||||||
|
checkPositionWithEventLoop() {
|
||||||
|
setTimeout(this.checkPosition.bind(this), 1);
|
||||||
|
},
|
||||||
|
checkPosition: function() {
|
||||||
|
if (window.getComputedStyle(this.element).display === 'none') return;
|
||||||
|
let height = this.element.offsetHeight;
|
||||||
|
let { offset } = this;
|
||||||
|
let offsetTop = offset.top;
|
||||||
|
let offsetBottom = offset.bottom;
|
||||||
|
let { scrollHeight } = document.body;
|
||||||
|
let affix = this.getState(scrollHeight, height, offsetTop, offsetBottom);
|
||||||
|
if (this.affixed !== affix) {
|
||||||
|
if (this.unpin != null) this.element.style.top = '';
|
||||||
|
let affixType = 'affix' + (affix ? '-' + affix : '');
|
||||||
|
this.affixed = affix;
|
||||||
|
this.unpin = affix === 'bottom' ? this.getPinnedOffset() : null;
|
||||||
|
this.element.classList.remove('affix', 'affix-top', 'affix-bottom');
|
||||||
|
this.element.classList.add(affixType);
|
||||||
|
}
|
||||||
|
if (affix === 'bottom') {
|
||||||
|
this.element.style.top = scrollHeight - height - offsetBottom + 'px';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
NexT.utils.getAffixParam = function() {
|
||||||
|
const sidebarOffset = CONFIG.sidebar.offset || 12;
|
||||||
|
|
||||||
|
let headerOffset = document.querySelector('.header-inner').offsetHeight;
|
||||||
|
let footerOffset = document.querySelector('.footer').offsetHeight;
|
||||||
|
|
||||||
|
document.querySelector('.sidebar').style.marginTop = headerOffset + sidebarOffset + 'px';
|
||||||
|
|
||||||
|
return {
|
||||||
|
top : headerOffset,
|
||||||
|
bottom: footerOffset
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
document.addEventListener('DOMContentLoaded', () => {
|
||||||
|
|
||||||
|
Affix.init(document.querySelector('.sidebar-inner'), NexT.utils.getAffixParam());
|
||||||
|
});
|
||||||
8
js/spoiler.js
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
(function (document) {
|
||||||
|
[].forEach.call(document.getElementsByClassName('spoiler'), function(panel) {
|
||||||
|
panel.getElementsByClassName('spoiler-title')[0].onclick = function() {
|
||||||
|
panel.classList.toggle("collapsed");
|
||||||
|
panel.classList.toggle("expanded");
|
||||||
|
}
|
||||||
|
});
|
||||||
|
})(document);
|
||||||
415
js/utils.js
Normal file
@@ -0,0 +1,415 @@
|
|||||||
|
/* global NexT, CONFIG */
|
||||||
|
|
||||||
|
HTMLElement.prototype.wrap = function(wrapper) {
|
||||||
|
this.parentNode.insertBefore(wrapper, this);
|
||||||
|
this.parentNode.removeChild(this);
|
||||||
|
wrapper.appendChild(this);
|
||||||
|
};
|
||||||
|
|
||||||
|
NexT.utils = {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Wrap images with fancybox.
|
||||||
|
*/
|
||||||
|
wrapImageWithFancyBox: function() {
|
||||||
|
document.querySelectorAll('.post-body :not(a) > img, .post-body > img').forEach(element => {
|
||||||
|
var $image = $(element);
|
||||||
|
var imageLink = $image.attr('data-src') || $image.attr('src');
|
||||||
|
var $imageWrapLink = $image.wrap(`<a class="fancybox fancybox.image" href="${imageLink}" itemscope itemtype="http://schema.org/ImageObject" itemprop="url"></a>`).parent('a');
|
||||||
|
if ($image.is('.post-gallery img')) {
|
||||||
|
$imageWrapLink.attr('data-fancybox', 'gallery').attr('rel', 'gallery');
|
||||||
|
} else if ($image.is('.group-picture img')) {
|
||||||
|
$imageWrapLink.attr('data-fancybox', 'group').attr('rel', 'group');
|
||||||
|
} else {
|
||||||
|
$imageWrapLink.attr('data-fancybox', 'default').attr('rel', 'default');
|
||||||
|
}
|
||||||
|
|
||||||
|
var imageTitle = $image.attr('title') || $image.attr('alt');
|
||||||
|
if (imageTitle) {
|
||||||
|
$imageWrapLink.append(`<p class="image-caption">${imageTitle}</p>`);
|
||||||
|
// Make sure img title tag will show correctly in fancybox
|
||||||
|
$imageWrapLink.attr('title', imageTitle).attr('data-caption', imageTitle);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
$.fancybox.defaults.hash = false;
|
||||||
|
$('.fancybox').fancybox({
|
||||||
|
loop : true,
|
||||||
|
helpers: {
|
||||||
|
overlay: {
|
||||||
|
locked: false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
},
|
||||||
|
|
||||||
|
registerExtURL: function() {
|
||||||
|
document.querySelectorAll('span.exturl').forEach(element => {
|
||||||
|
let link = document.createElement('a');
|
||||||
|
// https://stackoverflow.com/questions/30106476/using-javascripts-atob-to-decode-base64-doesnt-properly-decode-utf-8-strings
|
||||||
|
link.href = decodeURIComponent(atob(element.dataset.url).split('').map(c => {
|
||||||
|
return '%' + ('00' + c.charCodeAt(0).toString(16)).slice(-2);
|
||||||
|
}).join(''));
|
||||||
|
link.rel = 'noopener external nofollow noreferrer';
|
||||||
|
link.target = '_blank';
|
||||||
|
link.className = element.className;
|
||||||
|
link.title = element.title;
|
||||||
|
link.innerHTML = element.innerHTML;
|
||||||
|
element.parentNode.replaceChild(link, element);
|
||||||
|
});
|
||||||
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* One-click copy code support.
|
||||||
|
*/
|
||||||
|
registerCopyCode: function() {
|
||||||
|
document.querySelectorAll('figure.highlight').forEach(element => {
|
||||||
|
const box = document.createElement('div');
|
||||||
|
element.wrap(box);
|
||||||
|
box.classList.add('highlight-container');
|
||||||
|
box.insertAdjacentHTML('beforeend', '<div class="copy-btn"><i class="fa fa-clipboard fa-fw"></i></div>');
|
||||||
|
var button = element.parentNode.querySelector('.copy-btn');
|
||||||
|
button.addEventListener('click', event => {
|
||||||
|
var target = event.currentTarget;
|
||||||
|
var code = [...target.parentNode.querySelectorAll('.code .line')].map(line => line.innerText).join('\n');
|
||||||
|
var ta = document.createElement('textarea');
|
||||||
|
ta.style.top = window.scrollY + 'px'; // Prevent page scrolling
|
||||||
|
ta.style.position = 'absolute';
|
||||||
|
ta.style.opacity = '0';
|
||||||
|
ta.readOnly = true;
|
||||||
|
ta.value = code;
|
||||||
|
document.body.append(ta);
|
||||||
|
const selection = document.getSelection();
|
||||||
|
const selected = selection.rangeCount > 0 ? selection.getRangeAt(0) : false;
|
||||||
|
ta.select();
|
||||||
|
ta.setSelectionRange(0, code.length);
|
||||||
|
ta.readOnly = false;
|
||||||
|
var result = document.execCommand('copy');
|
||||||
|
if (CONFIG.copycode.show_result) {
|
||||||
|
target.querySelector('i').className = result ? 'fa fa-check fa-fw' : 'fa fa-times fa-fw';
|
||||||
|
}
|
||||||
|
ta.blur(); // For iOS
|
||||||
|
target.blur();
|
||||||
|
if (selected) {
|
||||||
|
selection.removeAllRanges();
|
||||||
|
selection.addRange(selected);
|
||||||
|
}
|
||||||
|
document.body.removeChild(ta);
|
||||||
|
});
|
||||||
|
button.addEventListener('mouseleave', event => {
|
||||||
|
setTimeout(() => {
|
||||||
|
event.target.querySelector('i').className = 'fa fa-clipboard fa-fw';
|
||||||
|
}, 300);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
},
|
||||||
|
|
||||||
|
wrapTableWithBox: function() {
|
||||||
|
document.querySelectorAll('table').forEach(element => {
|
||||||
|
const box = document.createElement('div');
|
||||||
|
box.className = 'table-container';
|
||||||
|
element.wrap(box);
|
||||||
|
});
|
||||||
|
},
|
||||||
|
|
||||||
|
registerVideoIframe: function() {
|
||||||
|
document.querySelectorAll('iframe').forEach(element => {
|
||||||
|
const supported = [
|
||||||
|
'www.youtube.com',
|
||||||
|
'player.vimeo.com',
|
||||||
|
'player.youku.com',
|
||||||
|
'player.bilibili.com',
|
||||||
|
'www.tudou.com'
|
||||||
|
].some(host => element.src.includes(host));
|
||||||
|
if (supported && !element.parentNode.matches('.video-container')) {
|
||||||
|
const box = document.createElement('div');
|
||||||
|
box.className = 'video-container';
|
||||||
|
element.wrap(box);
|
||||||
|
let width = Number(element.width);
|
||||||
|
let height = Number(element.height);
|
||||||
|
if (width && height) {
|
||||||
|
element.parentNode.style.paddingTop = (height / width * 100) + '%';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
},
|
||||||
|
|
||||||
|
registerScrollPercent: function() {
|
||||||
|
var THRESHOLD = 50;
|
||||||
|
var backToTop = document.querySelector('.back-to-top');
|
||||||
|
var readingProgressBar = document.querySelector('.reading-progress-bar');
|
||||||
|
// For init back to top in sidebar if page was scrolled after page refresh.
|
||||||
|
window.addEventListener('scroll', () => {
|
||||||
|
if (backToTop || readingProgressBar) {
|
||||||
|
var docHeight = document.querySelector('.container').offsetHeight;
|
||||||
|
var winHeight = window.innerHeight;
|
||||||
|
var contentVisibilityHeight = docHeight > winHeight ? docHeight - winHeight : document.body.scrollHeight - winHeight;
|
||||||
|
var scrollPercent = Math.min(100 * window.scrollY / contentVisibilityHeight, 100);
|
||||||
|
if (backToTop) {
|
||||||
|
backToTop.classList.toggle('back-to-top-on', window.scrollY > THRESHOLD);
|
||||||
|
backToTop.querySelector('span').innerText = Math.round(scrollPercent) + '%';
|
||||||
|
}
|
||||||
|
if (readingProgressBar) {
|
||||||
|
readingProgressBar.style.width = scrollPercent.toFixed(2) + '%';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
backToTop && backToTop.addEventListener('click', () => {
|
||||||
|
window.anime({
|
||||||
|
targets : document.scrollingElement,
|
||||||
|
duration : 500,
|
||||||
|
easing : 'linear',
|
||||||
|
scrollTop: 0
|
||||||
|
});
|
||||||
|
});
|
||||||
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Tabs tag listener (without twitter bootstrap).
|
||||||
|
*/
|
||||||
|
registerTabsTag: function() {
|
||||||
|
// Binding `nav-tabs` & `tab-content` by real time permalink changing.
|
||||||
|
document.querySelectorAll('.tabs ul.nav-tabs .tab').forEach(element => {
|
||||||
|
element.addEventListener('click', event => {
|
||||||
|
event.preventDefault();
|
||||||
|
var target = event.currentTarget;
|
||||||
|
// Prevent selected tab to select again.
|
||||||
|
if (!target.classList.contains('active')) {
|
||||||
|
// Add & Remove active class on `nav-tabs` & `tab-content`.
|
||||||
|
[...target.parentNode.children].forEach(element => {
|
||||||
|
element.classList.remove('active');
|
||||||
|
});
|
||||||
|
target.classList.add('active');
|
||||||
|
var tActive = document.getElementById(target.querySelector('a').getAttribute('href').replace('#', ''));
|
||||||
|
[...tActive.parentNode.children].forEach(element => {
|
||||||
|
element.classList.remove('active');
|
||||||
|
});
|
||||||
|
tActive.classList.add('active');
|
||||||
|
// Trigger event
|
||||||
|
tActive.dispatchEvent(new Event('tabs:click', {
|
||||||
|
bubbles: true
|
||||||
|
}));
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
window.dispatchEvent(new Event('tabs:register'));
|
||||||
|
},
|
||||||
|
|
||||||
|
registerCanIUseTag: function() {
|
||||||
|
// Get responsive height passed from iframe.
|
||||||
|
window.addEventListener('message', ({ data }) => {
|
||||||
|
if ((typeof data === 'string') && data.includes('ciu_embed')) {
|
||||||
|
var featureID = data.split(':')[1];
|
||||||
|
var height = data.split(':')[2];
|
||||||
|
document.querySelector(`iframe[data-feature=${featureID}]`).style.height = parseInt(height, 10) + 5 + 'px';
|
||||||
|
}
|
||||||
|
}, false);
|
||||||
|
},
|
||||||
|
|
||||||
|
registerActiveMenuItem: function() {
|
||||||
|
document.querySelectorAll('.menu-item').forEach(element => {
|
||||||
|
var target = element.querySelector('a[href]');
|
||||||
|
if (!target) return;
|
||||||
|
var isSamePath = target.pathname === location.pathname || target.pathname === location.pathname.replace('index.html', '');
|
||||||
|
var isSubPath = !CONFIG.root.startsWith(target.pathname) && location.pathname.startsWith(target.pathname);
|
||||||
|
element.classList.toggle('menu-item-active', target.hostname === location.hostname && (isSamePath || isSubPath));
|
||||||
|
});
|
||||||
|
},
|
||||||
|
|
||||||
|
registerLangSelect: function() {
|
||||||
|
let selects = document.querySelectorAll('.lang-select');
|
||||||
|
selects.forEach(sel => {
|
||||||
|
sel.value = CONFIG.page.lang;
|
||||||
|
sel.addEventListener('change', () => {
|
||||||
|
let target = sel.options[sel.selectedIndex];
|
||||||
|
document.querySelectorAll('.lang-select-label span').forEach(span => span.innerText = target.text);
|
||||||
|
let url = target.dataset.href;
|
||||||
|
window.pjax ? window.pjax.loadUrl(url) : window.location.href = url;
|
||||||
|
});
|
||||||
|
});
|
||||||
|
},
|
||||||
|
|
||||||
|
registerSidebarTOC: function() {
|
||||||
|
const navItems = document.querySelectorAll('.post-toc li');
|
||||||
|
const sections = [...navItems].map(element => {
|
||||||
|
var link = element.querySelector('a.nav-link');
|
||||||
|
var target = document.getElementById(decodeURI(link.getAttribute('href')).replace('#', ''));
|
||||||
|
// TOC item animation navigate.
|
||||||
|
link.addEventListener('click', event => {
|
||||||
|
event.preventDefault();
|
||||||
|
var offset = target.getBoundingClientRect().top + window.scrollY;
|
||||||
|
window.anime({
|
||||||
|
targets : document.scrollingElement,
|
||||||
|
duration : 500,
|
||||||
|
easing : 'linear',
|
||||||
|
scrollTop: offset + 10
|
||||||
|
});
|
||||||
|
});
|
||||||
|
return target;
|
||||||
|
});
|
||||||
|
|
||||||
|
var tocElement = document.querySelector('.post-toc-wrap');
|
||||||
|
function activateNavByIndex(target) {
|
||||||
|
if (target.classList.contains('active-current')) return;
|
||||||
|
|
||||||
|
document.querySelectorAll('.post-toc .active').forEach(element => {
|
||||||
|
element.classList.remove('active', 'active-current');
|
||||||
|
});
|
||||||
|
target.classList.add('active', 'active-current');
|
||||||
|
var parent = target.parentNode;
|
||||||
|
while (!parent.matches('.post-toc')) {
|
||||||
|
if (parent.matches('li')) parent.classList.add('active');
|
||||||
|
parent = parent.parentNode;
|
||||||
|
}
|
||||||
|
// Scrolling to center active TOC element if TOC content is taller then viewport.
|
||||||
|
window.anime({
|
||||||
|
targets : tocElement,
|
||||||
|
duration : 200,
|
||||||
|
easing : 'linear',
|
||||||
|
scrollTop: tocElement.scrollTop - (tocElement.offsetHeight / 2) + target.getBoundingClientRect().top - tocElement.getBoundingClientRect().top
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
function findIndex(entries) {
|
||||||
|
let index = 0;
|
||||||
|
let entry = entries[index];
|
||||||
|
if (entry.boundingClientRect.top > 0) {
|
||||||
|
index = sections.indexOf(entry.target);
|
||||||
|
return index === 0 ? 0 : index - 1;
|
||||||
|
}
|
||||||
|
for (; index < entries.length; index++) {
|
||||||
|
if (entries[index].boundingClientRect.top <= 0) {
|
||||||
|
entry = entries[index];
|
||||||
|
} else {
|
||||||
|
return sections.indexOf(entry.target);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return sections.indexOf(entry.target);
|
||||||
|
}
|
||||||
|
|
||||||
|
function createIntersectionObserver(marginTop) {
|
||||||
|
marginTop = Math.floor(marginTop + 10000);
|
||||||
|
let intersectionObserver = new IntersectionObserver((entries, observe) => {
|
||||||
|
let scrollHeight = document.documentElement.scrollHeight + 100;
|
||||||
|
if (scrollHeight > marginTop) {
|
||||||
|
observe.disconnect();
|
||||||
|
createIntersectionObserver(scrollHeight);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
let index = findIndex(entries);
|
||||||
|
activateNavByIndex(navItems[index]);
|
||||||
|
}, {
|
||||||
|
rootMargin: marginTop + 'px 0px -100% 0px',
|
||||||
|
threshold : 0
|
||||||
|
});
|
||||||
|
sections.forEach(element => {
|
||||||
|
element && intersectionObserver.observe(element);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
createIntersectionObserver(document.documentElement.scrollHeight);
|
||||||
|
},
|
||||||
|
|
||||||
|
hasMobileUA: function() {
|
||||||
|
let ua = navigator.userAgent;
|
||||||
|
let pa = /iPad|iPhone|Android|Opera Mini|BlackBerry|webOS|UCWEB|Blazer|PSP|IEMobile|Symbian/g;
|
||||||
|
return pa.test(ua);
|
||||||
|
},
|
||||||
|
|
||||||
|
isTablet: function() {
|
||||||
|
return window.screen.width < 992 && window.screen.width > 767 && this.hasMobileUA();
|
||||||
|
},
|
||||||
|
|
||||||
|
isMobile: function() {
|
||||||
|
return window.screen.width < 767 && this.hasMobileUA();
|
||||||
|
},
|
||||||
|
|
||||||
|
isDesktop: function() {
|
||||||
|
return !this.isTablet() && !this.isMobile();
|
||||||
|
},
|
||||||
|
|
||||||
|
supportsPDFs: function() {
|
||||||
|
let ua = navigator.userAgent;
|
||||||
|
let isFirefoxWithPDFJS = ua.includes('irefox') && parseInt(ua.split('rv:')[1].split('.')[0], 10) > 18;
|
||||||
|
let supportsPdfMimeType = typeof navigator.mimeTypes['application/pdf'] !== 'undefined';
|
||||||
|
let isIOS = /iphone|ipad|ipod/i.test(ua.toLowerCase());
|
||||||
|
return isFirefoxWithPDFJS || (supportsPdfMimeType && !isIOS);
|
||||||
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Init Sidebar & TOC inner dimensions on all pages and for all schemes.
|
||||||
|
* Need for Sidebar/TOC inner scrolling if content taller then viewport.
|
||||||
|
*/
|
||||||
|
initSidebarDimension: function() {
|
||||||
|
var sidebarNav = document.querySelector('.sidebar-nav');
|
||||||
|
var sidebarNavHeight = sidebarNav.style.display !== 'none' ? sidebarNav.offsetHeight : 0;
|
||||||
|
var sidebarOffset = CONFIG.sidebar.offset || 12;
|
||||||
|
var sidebarb2tHeight = CONFIG.back2top.enable && CONFIG.back2top.sidebar ? document.querySelector('.back-to-top').offsetHeight : 0;
|
||||||
|
var sidebarSchemePadding = (CONFIG.sidebar.padding * 2) + sidebarNavHeight + sidebarb2tHeight;
|
||||||
|
// Margin of sidebar b2t: -4px -10px -18px, brings a different of 22px.
|
||||||
|
if (CONFIG.scheme === 'Pisces' || CONFIG.scheme === 'Gemini') sidebarSchemePadding += (sidebarOffset * 2) - 22;
|
||||||
|
// Initialize Sidebar & TOC Height.
|
||||||
|
var sidebarWrapperHeight = document.body.offsetHeight - sidebarSchemePadding + 'px';
|
||||||
|
document.querySelector('.site-overview-wrap').style.maxHeight = sidebarWrapperHeight;
|
||||||
|
document.querySelector('.post-toc-wrap').style.maxHeight = sidebarWrapperHeight;
|
||||||
|
},
|
||||||
|
|
||||||
|
updateSidebarPosition: function() {
|
||||||
|
var sidebarNav = document.querySelector('.sidebar-nav');
|
||||||
|
var hasTOC = document.querySelector('.post-toc');
|
||||||
|
if (hasTOC) {
|
||||||
|
sidebarNav.style.display = '';
|
||||||
|
sidebarNav.classList.add('motion-element');
|
||||||
|
document.querySelector('.sidebar-nav-toc').click();
|
||||||
|
} else {
|
||||||
|
sidebarNav.style.display = 'none';
|
||||||
|
sidebarNav.classList.remove('motion-element');
|
||||||
|
document.querySelector('.sidebar-nav-overview').click();
|
||||||
|
}
|
||||||
|
NexT.utils.initSidebarDimension();
|
||||||
|
if (!this.isDesktop() || CONFIG.scheme === 'Pisces' || CONFIG.scheme === 'Gemini') return;
|
||||||
|
// Expand sidebar on post detail page by default, when post has a toc.
|
||||||
|
var display = CONFIG.page.sidebar;
|
||||||
|
if (typeof display !== 'boolean') {
|
||||||
|
// There's no definition sidebar in the page front-matter.
|
||||||
|
display = CONFIG.sidebar.display === 'always' || (CONFIG.sidebar.display === 'post' && hasTOC);
|
||||||
|
}
|
||||||
|
if (display) {
|
||||||
|
window.dispatchEvent(new Event('sidebar:show'));
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
getScript: function(url, callback, condition) {
|
||||||
|
if (condition) {
|
||||||
|
callback();
|
||||||
|
} else {
|
||||||
|
var script = document.createElement('script');
|
||||||
|
script.onload = script.onreadystatechange = function(_, isAbort) {
|
||||||
|
if (isAbort || !script.readyState || /loaded|complete/.test(script.readyState)) {
|
||||||
|
script.onload = script.onreadystatechange = null;
|
||||||
|
script = undefined;
|
||||||
|
if (!isAbort && callback) setTimeout(callback, 0);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
script.src = url;
|
||||||
|
document.head.appendChild(script);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
loadComments: function(element, callback) {
|
||||||
|
if (!CONFIG.comments.lazyload || !element) {
|
||||||
|
callback();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
let intersectionObserver = new IntersectionObserver((entries, observer) => {
|
||||||
|
let entry = entries[0];
|
||||||
|
if (entry.isIntersecting) {
|
||||||
|
callback();
|
||||||
|
observer.disconnect();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
intersectionObserver.observe(element);
|
||||||
|
return intersectionObserver;
|
||||||
|
}
|
||||||
|
};
|
||||||
8
lib/anime.min.js
vendored
Normal file
21
lib/canvas-nest/LICENSE
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
MIT License
|
||||||
|
|
||||||
|
Copyright (c) 2017 «NexT»
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
of this software and associated documentation files (the "Software"), to deal
|
||||||
|
in the Software without restriction, including without limitation the rights
|
||||||
|
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
copies of the Software, and to permit persons to whom the Software is
|
||||||
|
furnished to do so, subject to the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be included in all
|
||||||
|
copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||||
|
SOFTWARE.
|
||||||
448
lib/canvas-nest/README.html
Normal file
@@ -0,0 +1,448 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="zh-CN">
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8">
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=2">
|
||||||
|
<meta name="theme-color" content="#222">
|
||||||
|
<meta name="generator" content="Hexo 6.2.0">
|
||||||
|
<link rel="apple-touch-icon" sizes="180x180" href="/images/apple-touch-icon-next.png">
|
||||||
|
<link rel="icon" type="image/png" sizes="32x32" href="/images/favicon-32x32-next.png">
|
||||||
|
<link rel="icon" type="image/png" sizes="16x16" href="/images/favicon-16x16-next.png">
|
||||||
|
<link rel="mask-icon" href="/images/logo.svg" color="#222">
|
||||||
|
|
||||||
|
<link rel="stylesheet" href="/css/main.css">
|
||||||
|
|
||||||
|
|
||||||
|
<link rel="stylesheet" href="/lib/font-awesome/css/all.min.css">
|
||||||
|
<link rel="stylesheet" href="/lib/pace/pace-theme-minimal.min.css">
|
||||||
|
<script src="/lib/pace/pace.min.js"></script>
|
||||||
|
|
||||||
|
<script id="hexo-configurations">
|
||||||
|
var NexT = window.NexT || {};
|
||||||
|
var CONFIG = {"hostname":"example.com","root":"/","scheme":"Gemini","version":"7.8.0","exturl":false,"sidebar":{"position":"left","display":"post","padding":18,"offset":12,"onmobile":false},"copycode":{"enable":false,"show_result":false,"style":null},"back2top":{"enable":true,"sidebar":false,"scrollpercent":false},"bookmark":{"enable":false,"color":"#222","save":"auto"},"fancybox":false,"mediumzoom":false,"lazyload":false,"pangu":false,"comments":{"style":"tabs","active":null,"storage":true,"lazyload":false,"nav":null},"algolia":{"hits":{"per_page":10},"labels":{"input_placeholder":"Search for Posts","hits_empty":"We didn't find any results for the search: ${query}","hits_stats":"${hits} results found in ${time} ms"}},"localsearch":{"enable":false,"trigger":"auto","top_n_per_article":1,"unescape":false,"preload":false},"motion":{"enable":true,"async":false,"transition":{"post_block":"fadeIn","post_header":"slideDownIn","post_body":"slideDownIn","coll_header":"slideLeftIn","sidebar":"slideUpIn"}}};
|
||||||
|
</script>
|
||||||
|
|
||||||
|
|
||||||
|
<meta name="description" content="Theme NexT Canvas Nest canvas-nest.js for NexT. InstallStep 1 &rarr; Go to Hexo dirChange dir to Hexo directory. There must be scaffolds, source, themes and other directories: 123$ cd hexo$ lsscaf">
|
||||||
|
<meta property="og:type" content="website">
|
||||||
|
<meta property="og:title" content="流量不足ow的个人博客">
|
||||||
|
<meta property="og:url" content="http://example.com/lib/canvas-nest/README.html">
|
||||||
|
<meta property="og:site_name" content="流量不足ow的个人博客">
|
||||||
|
<meta property="og:description" content="Theme NexT Canvas Nest canvas-nest.js for NexT. InstallStep 1 &rarr; Go to Hexo dirChange dir to Hexo directory. There must be scaffolds, source, themes and other directories: 123$ cd hexo$ lsscaf">
|
||||||
|
<meta property="og:locale" content="zh_CN">
|
||||||
|
<meta property="og:image" content="https://img.shields.io/badge/NexT-v7.3.0+-blue?style=flat-square">
|
||||||
|
<meta property="article:published_time" content="2022-06-19T02:28:46.096Z">
|
||||||
|
<meta property="article:modified_time" content="2022-06-19T02:28:46.096Z">
|
||||||
|
<meta property="article:author" content="llbzow">
|
||||||
|
<meta name="twitter:card" content="summary">
|
||||||
|
<meta name="twitter:image" content="https://img.shields.io/badge/NexT-v7.3.0+-blue?style=flat-square">
|
||||||
|
|
||||||
|
<link rel="canonical" href="http://example.com/lib/canvas-nest/README">
|
||||||
|
|
||||||
|
|
||||||
|
<script id="page-configurations">
|
||||||
|
// https://hexo.io/docs/variables.html
|
||||||
|
CONFIG.page = {
|
||||||
|
sidebar: "",
|
||||||
|
isHome : false,
|
||||||
|
isPost : false,
|
||||||
|
lang : 'zh-CN'
|
||||||
|
};
|
||||||
|
</script>
|
||||||
|
|
||||||
|
|
||||||
|
<script>
|
||||||
|
(function () {
|
||||||
|
if ('') {
|
||||||
|
if (prompt('请输入文章密码') !== '') {
|
||||||
|
alert('密码错误!');
|
||||||
|
if (history.length === 1) {
|
||||||
|
location.replace("http://blog.llbzow.tk"); // 这里替换成你的首页
|
||||||
|
} else {
|
||||||
|
history.back();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})();
|
||||||
|
</script>
|
||||||
|
<title> | 流量不足ow的个人博客
|
||||||
|
</title>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<noscript>
|
||||||
|
<style>
|
||||||
|
.use-motion .brand,
|
||||||
|
.use-motion .menu-item,
|
||||||
|
.sidebar-inner,
|
||||||
|
.use-motion .post-block,
|
||||||
|
.use-motion .pagination,
|
||||||
|
.use-motion .comments,
|
||||||
|
.use-motion .post-header,
|
||||||
|
.use-motion .post-body,
|
||||||
|
.use-motion .collection-header { opacity: initial; }
|
||||||
|
|
||||||
|
.use-motion .site-title,
|
||||||
|
.use-motion .site-subtitle {
|
||||||
|
opacity: initial;
|
||||||
|
top: initial;
|
||||||
|
}
|
||||||
|
|
||||||
|
.use-motion .logo-line-before i { left: initial; }
|
||||||
|
.use-motion .logo-line-after i { right: initial; }
|
||||||
|
</style>
|
||||||
|
</noscript>
|
||||||
|
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body itemscope itemtype="http://schema.org/WebPage">
|
||||||
|
<div class="container use-motion">
|
||||||
|
<div class="headband"></div>
|
||||||
|
|
||||||
|
<header class="header" itemscope itemtype="http://schema.org/WPHeader">
|
||||||
|
<div class="header-inner"><div class="site-brand-container">
|
||||||
|
<div class="site-nav-toggle">
|
||||||
|
<div class="toggle" aria-label="切换导航栏">
|
||||||
|
<span class="toggle-line toggle-line-first"></span>
|
||||||
|
<span class="toggle-line toggle-line-middle"></span>
|
||||||
|
<span class="toggle-line toggle-line-last"></span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="site-meta">
|
||||||
|
|
||||||
|
<a href="/" class="brand" rel="start">
|
||||||
|
<span class="logo-line-before"><i></i></span>
|
||||||
|
<h1 class="site-title">流量不足ow的个人博客</h1>
|
||||||
|
<span class="logo-line-after"><i></i></span>
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="site-nav-right">
|
||||||
|
<div class="toggle popup-trigger">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<nav class="site-nav">
|
||||||
|
<ul id="menu" class="main-menu menu">
|
||||||
|
<li class="menu-item menu-item-home">
|
||||||
|
|
||||||
|
<a href="/" rel="section"><i class="fa fa-home fa-fw"></i>首页</a>
|
||||||
|
|
||||||
|
</li>
|
||||||
|
<li class="menu-item menu-item-about">
|
||||||
|
|
||||||
|
<a href="/about/" rel="section"><i class="fa fa-user fa-fw"></i>关于</a>
|
||||||
|
|
||||||
|
</li>
|
||||||
|
<li class="menu-item menu-item-tags">
|
||||||
|
|
||||||
|
<a href="/tags/" rel="section"><i class="fa fa-tags fa-fw"></i>标签</a>
|
||||||
|
|
||||||
|
</li>
|
||||||
|
<li class="menu-item menu-item-categories">
|
||||||
|
|
||||||
|
<a href="/categories/" rel="section"><i class="fa fa-th fa-fw"></i>分类</a>
|
||||||
|
|
||||||
|
</li>
|
||||||
|
<li class="menu-item menu-item-archives">
|
||||||
|
|
||||||
|
<a href="/archives/" rel="section"><i class="fa fa-archive fa-fw"></i>归档</a>
|
||||||
|
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</nav>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</header>
|
||||||
|
|
||||||
|
|
||||||
|
<div class="back-to-top">
|
||||||
|
<i class="fa fa-arrow-up"></i>
|
||||||
|
<span>0%</span>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
<main class="main">
|
||||||
|
<div class="main-inner">
|
||||||
|
<div class="content-wrap">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<div class="content page posts-expand">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<div class="post-block" lang="zh-CN">
|
||||||
|
<header class="post-header">
|
||||||
|
|
||||||
|
<h1 class="post-title" itemprop="name headline">
|
||||||
|
</h1>
|
||||||
|
|
||||||
|
<div class="post-meta">
|
||||||
|
|
||||||
|
<ul class="breadcrumb">
|
||||||
|
|
||||||
|
<li><a href="/lib/">LIB</a></li>
|
||||||
|
<li><a href="/lib/canvas-nest/">CANVAS-NEST</a></li>
|
||||||
|
<li>README</li>
|
||||||
|
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</header>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<div class="post-body">
|
||||||
|
<h1 id="Theme-NexT-Canvas-Nest"><a href="#Theme-NexT-Canvas-Nest" class="headerlink" title="Theme NexT Canvas Nest"></a>Theme NexT Canvas Nest</h1><p><img src="https://img.shields.io/badge/NexT-v7.3.0+-blue?style=flat-square" alt="Theme Version"></p>
|
||||||
|
<p><a target="_blank" rel="noopener" href="https://github.com/hustcc/canvas-nest.js">canvas-nest.js</a> for <a target="_blank" rel="noopener" href="https://github.com/theme-next">NexT</a>.</p>
|
||||||
|
<h2 id="Install"><a href="#Install" class="headerlink" title="Install"></a>Install</h2><h3 id="Step-1-amp-rarr-Go-to-Hexo-dir"><a href="#Step-1-amp-rarr-Go-to-Hexo-dir" class="headerlink" title="Step 1 &rarr; Go to Hexo dir"></a>Step 1 &rarr; Go to Hexo dir</h3><p>Change dir to <strong>Hexo</strong> directory. There must be <code>scaffolds</code>, <code>source</code>, <code>themes</code> and other directories:</p>
|
||||||
|
<figure class="highlight sh"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><span class="line">$ <span class="built_in">cd</span> hexo</span><br><span class="line">$ <span class="built_in">ls</span></span><br><span class="line">scaffolds <span class="built_in">source</span> themes _config.yml package.json</span><br></pre></td></tr></table></figure>
|
||||||
|
|
||||||
|
<h3 id="Step-2-amp-rarr-Create-footer-swig"><a href="#Step-2-amp-rarr-Create-footer-swig" class="headerlink" title="Step 2 &rarr; Create footer.swig"></a>Step 2 &rarr; Create <code>footer.swig</code></h3><p>Create a file named <code>footer.swig</code> in <code>hexo/source/_data</code> directory (create <code>_data</code> directory if it does not exist).</p>
|
||||||
|
<p>Edit this file and add the following content:</p>
|
||||||
|
<figure class="highlight xml"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line"><span class="tag"><<span class="name">script</span> <span class="attr">color</span>=<span class="string">"0,0,255"</span> <span class="attr">opacity</span>=<span class="string">"0.5"</span> <span class="attr">zIndex</span>=<span class="string">"-1"</span> <span class="attr">count</span>=<span class="string">"99"</span> <span class="attr">src</span>=<span class="string">"https://cdn.jsdelivr.net/npm/canvas-nest.js@1/dist/canvas-nest.js"</span>></span><span class="tag"></<span class="name">script</span>></span></span><br></pre></td></tr></table></figure>
|
||||||
|
|
||||||
|
<p>You can customize these options.</p>
|
||||||
|
<h3 id="Step-3-amp-rarr-Set-it-up"><a href="#Step-3-amp-rarr-Set-it-up" class="headerlink" title="Step 3 &rarr; Set it up"></a>Step 3 &rarr; Set it up</h3><p>In the NexT <code>_config.yml</code>, uncomment <code>footer</code> under the <code>custom_file_path</code> section.</p>
|
||||||
|
<figure class="highlight yml"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br></pre></td><td class="code"><pre><span class="line"><span class="comment"># Define custom file paths.</span></span><br><span class="line"><span class="comment"># Create your custom files in site directory `source/_data` and uncomment needed files below.</span></span><br><span class="line"><span class="attr">custom_file_path:</span></span><br><span class="line"> <span class="comment">#head: source/_data/head.swig</span></span><br><span class="line"> <span class="comment">#header: source/_data/header.swig</span></span><br><span class="line"> <span class="comment">#sidebar: source/_data/sidebar.swig</span></span><br><span class="line"> <span class="comment">#postMeta: source/_data/post-meta.swig</span></span><br><span class="line"> <span class="comment">#postBodyEnd: source/_data/post-body-end.swig</span></span><br><span class="line"> <span class="attr">footer:</span> <span class="string">source/_data/footer.swig</span></span><br><span class="line"> <span class="comment">#bodyEnd: source/_data/body-end.swig</span></span><br><span class="line"> <span class="comment">#variable: source/_data/variables.styl</span></span><br><span class="line"> <span class="comment">#mixin: source/_data/mixins.styl</span></span><br><span class="line"> <span class="comment">#style: source/_data/styles.styl</span></span><br></pre></td></tr></table></figure>
|
||||||
|
<link rel="stylesheet" href="/css/spoiler.css" type="text/css"><script src="/js/spoiler.js" type="text/javascript" async></script>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<ul class="breadcrumb">
|
||||||
|
|
||||||
|
<li><a href="/lib/">LIB</a></li>
|
||||||
|
<li><a href="/lib/canvas-nest/">CANVAS-NEST</a></li>
|
||||||
|
<li>README</li>
|
||||||
|
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="comments" id="gitalk-container"></div>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
window.addEventListener('tabs:register', () => {
|
||||||
|
let { activeClass } = CONFIG.comments;
|
||||||
|
if (CONFIG.comments.storage) {
|
||||||
|
activeClass = localStorage.getItem('comments_active') || activeClass;
|
||||||
|
}
|
||||||
|
if (activeClass) {
|
||||||
|
let activeTab = document.querySelector(`a[href="#comment-${activeClass}"]`);
|
||||||
|
if (activeTab) {
|
||||||
|
activeTab.click();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
if (CONFIG.comments.storage) {
|
||||||
|
window.addEventListener('tabs:click', event => {
|
||||||
|
if (!event.target.matches('.tabs-comment .tab-content .tab-pane')) return;
|
||||||
|
let commentClass = event.target.classList[1];
|
||||||
|
localStorage.setItem('comments_active', commentClass);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
<div class="toggle sidebar-toggle">
|
||||||
|
<span class="toggle-line toggle-line-first"></span>
|
||||||
|
<span class="toggle-line toggle-line-middle"></span>
|
||||||
|
<span class="toggle-line toggle-line-last"></span>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<aside class="sidebar">
|
||||||
|
<div class="sidebar-inner">
|
||||||
|
|
||||||
|
<ul class="sidebar-nav motion-element">
|
||||||
|
<li class="sidebar-nav-toc">
|
||||||
|
文章目录
|
||||||
|
</li>
|
||||||
|
<li class="sidebar-nav-overview">
|
||||||
|
站点概览
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<!--noindex-->
|
||||||
|
<div class="post-toc-wrap sidebar-panel">
|
||||||
|
<div class="post-toc motion-element"><ol class="nav"><li class="nav-item nav-level-1"><a class="nav-link" href="#Theme-NexT-Canvas-Nest"><span class="nav-number">1.</span> <span class="nav-text">Theme NexT Canvas Nest</span></a><ol class="nav-child"><li class="nav-item nav-level-2"><a class="nav-link" href="#Install"><span class="nav-number">1.1.</span> <span class="nav-text">Install</span></a><ol class="nav-child"><li class="nav-item nav-level-3"><a class="nav-link" href="#Step-1-amp-rarr-Go-to-Hexo-dir"><span class="nav-number">1.1.1.</span> <span class="nav-text">Step 1 &rarr; Go to Hexo dir</span></a></li><li class="nav-item nav-level-3"><a class="nav-link" href="#Step-2-amp-rarr-Create-footer-swig"><span class="nav-number">1.1.2.</span> <span class="nav-text">Step 2 &rarr; Create footer.swig</span></a></li><li class="nav-item nav-level-3"><a class="nav-link" href="#Step-3-amp-rarr-Set-it-up"><span class="nav-number">1.1.3.</span> <span class="nav-text">Step 3 &rarr; Set it up</span></a></li></ol></li></ol></li></ol></div>
|
||||||
|
</div>
|
||||||
|
<!--/noindex-->
|
||||||
|
|
||||||
|
<div class="site-overview-wrap sidebar-panel">
|
||||||
|
<div class="site-author motion-element" itemprop="author" itemscope itemtype="http://schema.org/Person">
|
||||||
|
<img class="site-author-image" itemprop="image" alt="llbzow"
|
||||||
|
src="/images/avatar.png">
|
||||||
|
<p class="site-author-name" itemprop="name">llbzow</p>
|
||||||
|
<div class="site-description" itemprop="description"></div>
|
||||||
|
</div>
|
||||||
|
<div class="site-state-wrap motion-element">
|
||||||
|
<nav class="site-state">
|
||||||
|
<div class="site-state-item site-state-posts">
|
||||||
|
<a href="/archives/">
|
||||||
|
|
||||||
|
<span class="site-state-item-count">1</span>
|
||||||
|
<span class="site-state-item-name">日志</span>
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
</nav>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</aside>
|
||||||
|
<div id="sidebar-dimmer"></div>
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</main>
|
||||||
|
|
||||||
|
<footer class="footer">
|
||||||
|
<div class="footer-inner">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<div class="copyright">
|
||||||
|
|
||||||
|
© 2022-06 –
|
||||||
|
<span itemprop="copyrightYear">2022</span>
|
||||||
|
<span class="with-love">
|
||||||
|
<i class="fa fa-heart"></i>
|
||||||
|
</span>
|
||||||
|
<span class="author" itemprop="copyrightHolder">llbzow</span>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!--
|
||||||
|
<div class="powered-by">由 <a href="https://hexo.io/" class="theme-link" rel="noopener" target="_blank">Hexo</a> & <a href="https://theme-next.org/" class="theme-link" rel="noopener" target="_blank">NexT.Gemini</a> 强力驱动
|
||||||
|
</div>
|
||||||
|
-->
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<div class="busuanzi-count">
|
||||||
|
<script async src="https://busuanzi.ibruce.info/busuanzi/2.3/busuanzi.pure.mini.js"></script>
|
||||||
|
<span class="post-meta-item" id="busuanzi_container_site_uv" style="display: none;">
|
||||||
|
<span class="post-meta-item-icon">
|
||||||
|
<i class="fa fa-user"></i>
|
||||||
|
</span>
|
||||||
|
<span class="site-uv" title="总访客量">
|
||||||
|
<span id="busuanzi_value_site_uv"></span>
|
||||||
|
</span>
|
||||||
|
</span>
|
||||||
|
<span class="post-meta-divider">|</span>
|
||||||
|
<span class="post-meta-item" id="busuanzi_container_site_pv" style="display: none;">
|
||||||
|
<span class="post-meta-item-icon">
|
||||||
|
<i class="fa fa-eye"></i>
|
||||||
|
</span>
|
||||||
|
<span class="site-pv" title="总访问量">
|
||||||
|
<span id="busuanzi_value_site_pv"></span>
|
||||||
|
</span>
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</footer>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<script color='0,0,255' opacity='0.5' zIndex='-1' count='99' src="/lib/canvas-nest/canvas-nest.min.js"></script>
|
||||||
|
<script size="300" alpha="0.6" zIndex="-1" src="/lib/canvas-ribbon/canvas-ribbon.js"></script>
|
||||||
|
<script src="/lib/anime.min.js"></script>
|
||||||
|
<script src="/lib/velocity/velocity.min.js"></script>
|
||||||
|
<script src="/lib/velocity/velocity.ui.min.js"></script>
|
||||||
|
|
||||||
|
<script src="/js/utils.js"></script>
|
||||||
|
|
||||||
|
<script src="/js/motion.js"></script>
|
||||||
|
|
||||||
|
|
||||||
|
<script src="/js/schemes/pisces.js"></script>
|
||||||
|
|
||||||
|
|
||||||
|
<script src="/js/next-boot.js"></script>
|
||||||
|
|
||||||
|
|
||||||
|
<script defer src="/lib/three/three.min.js"></script>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<link rel="stylesheet" href="//cdn.jsdelivr.net/npm/gitalk@1/dist/gitalk.min.css">
|
||||||
|
|
||||||
|
<script>
|
||||||
|
NexT.utils.loadComments(document.querySelector('#gitalk-container'), () => {
|
||||||
|
NexT.utils.getScript('//cdn.jsdelivr.net/npm/gitalk@1/dist/gitalk.min.js', () => {
|
||||||
|
var gitalk = new Gitalk({
|
||||||
|
clientID : '1e2867144d855824b913# GitHub Application Client ID',
|
||||||
|
clientSecret: '3c474768436b020bd64b81c163e40c7ac7e3f1d6# GitHub Application Client Secret',
|
||||||
|
repo : 'BlogComments# Repository name to store issues',
|
||||||
|
owner : 'llbzow# GitHub repo owner',
|
||||||
|
admin : ['llbzow# GitHub repo owner and collaborators, only these guys can initialize gitHub issues'],
|
||||||
|
id : 'aeac19f9e6fb0f69935bfd9ac92f827e',
|
||||||
|
language: '',
|
||||||
|
distractionFreeMode: true
|
||||||
|
});
|
||||||
|
gitalk.render('gitalk-container');
|
||||||
|
}, window.Gitalk);
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<script src="/live2dw/lib/L2Dwidget.min.js?094cbace49a39548bed64abff5988b05"></script><script>L2Dwidget.init({"pluginRootPath":"live2dw/","pluginJsPath":"lib/","pluginModelPath":"assets/","tagMode":false,"debug":false,"model":{"jsonPath":"/live2dw/assets/koharu.model.json"},"display":{"position":"left","width":250,"height":500},"mobile":{"show":true},"react":{"opacity":0.9},"log":false});</script></body>
|
||||||
|
</html>
|
||||||
11
lib/canvas-nest/canvas-nest-nomobile.min.js
vendored
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
!function(){
|
||||||
|
var userAgentInfo = navigator.userAgent;
|
||||||
|
var Agents = ["iPad", "iPhone", "Android",
|
||||||
|
"SymbianOS", "Windows Phone",
|
||||||
|
"iPod", "webOS", "BlackBerry", "IEMobile"];
|
||||||
|
for (var v = 0; v < Agents.length; v++) {
|
||||||
|
if (userAgentInfo.indexOf(Agents[v]) > 0) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
function o(w,v,i){return w.getAttribute(v)||i}function j(i){return document.getElementsByTagName(i)}function l(){var i=j("script"),w=i.length,v=i[w-1];return{l:w,z:o(v,"zIndex",-1),o:o(v,"opacity",0.5),c:o(v,"color","0,0,0"),n:o(v,"count",99)}}function k(){r=u.width=window.innerWidth||document.documentElement.clientWidth||document.body.clientWidth,n=u.height=window.innerHeight||document.documentElement.clientHeight||document.body.clientHeight}function b(){e.clearRect(0,0,r,n);var w=[f].concat(t);var x,v,A,B,z,y;t.forEach(function(i){i.x+=i.xa,i.y+=i.ya,i.xa*=i.x>r||i.x<0?-1:1,i.ya*=i.y>n||i.y<0?-1:1,e.fillRect(i.x-0.5,i.y-0.5,1,1);for(v=0;v<w.length;v++){x=w[v];if(i!==x&&null!==x.x&&null!==x.y){B=i.x-x.x,z=i.y-x.y,y=B*B+z*z;y<x.max&&(x===f&&y>=x.max/2&&(i.x-=0.03*B,i.y-=0.03*z),A=(x.max-y)/x.max,e.beginPath(),e.lineWidth=A/2,e.strokeStyle="rgba("+s.c+","+(A+0.2)+")",e.moveTo(i.x,i.y),e.lineTo(x.x,x.y),e.stroke())}}w.splice(w.indexOf(i),1)}),m(b)}var u=document.createElement("canvas"),s=l(),c="c_n"+s.l,e=u.getContext("2d"),r,n,m=window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.oRequestAnimationFrame||window.msRequestAnimationFrame||function(i){window.setTimeout(i,1000/45)},a=Math.random,f={x:null,y:null,max:20000};u.id=c;u.style.cssText="position:fixed;top:0;left:0;z-index:"+s.z+";opacity:"+s.o;j("body")[0].appendChild(u);k(),window.onresize=k;window.onmousemove=function(i){i=i||window.event,f.x=i.clientX,f.y=i.clientY},window.onmouseout=function(){f.x=null,f.y=null};for(var t=[],p=0;s.n>p;p++){var h=a()*r,g=a()*n,q=2*a()-1,d=2*a()-1;t.push({x:h,y:g,xa:q,ya:d,max:6000})}setTimeout(function(){b()},100)}();<link rel="stylesheet" href="/css/spoiler.css" type="text/css"><script src="/js/spoiler.js" type="text/javascript" async></script>
|
||||||
1
lib/canvas-nest/canvas-nest.min.js
vendored
Normal file
@@ -0,0 +1 @@
|
|||||||
|
!function(){function o(w,v,i){return w.getAttribute(v)||i}function j(i){return document.getElementsByTagName(i)}function l(){var i=j("script"),w=i.length,v=i[w-1];return{l:w,z:o(v,"zIndex",-1),o:o(v,"opacity",0.5),c:o(v,"color","0,0,0"),n:o(v,"count",99)}}function k(){r=u.width=window.innerWidth||document.documentElement.clientWidth||document.body.clientWidth,n=u.height=window.innerHeight||document.documentElement.clientHeight||document.body.clientHeight}function b(){e.clearRect(0,0,r,n);var w=[f].concat(t);var x,v,A,B,z,y;t.forEach(function(i){i.x+=i.xa,i.y+=i.ya,i.xa*=i.x>r||i.x<0?-1:1,i.ya*=i.y>n||i.y<0?-1:1,e.fillRect(i.x-0.5,i.y-0.5,1,1);for(v=0;v<w.length;v++){x=w[v];if(i!==x&&null!==x.x&&null!==x.y){B=i.x-x.x,z=i.y-x.y,y=B*B+z*z;y<x.max&&(x===f&&y>=x.max/2&&(i.x-=0.03*B,i.y-=0.03*z),A=(x.max-y)/x.max,e.beginPath(),e.lineWidth=A/2,e.strokeStyle="rgba("+s.c+","+(A+0.2)+")",e.moveTo(i.x,i.y),e.lineTo(x.x,x.y),e.stroke())}}w.splice(w.indexOf(i),1)}),m(b)}var u=document.createElement("canvas"),s=l(),c="c_n"+s.l,e=u.getContext("2d"),r,n,m=window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.oRequestAnimationFrame||window.msRequestAnimationFrame||function(i){window.setTimeout(i,1000/45)},a=Math.random,f={x:null,y:null,max:20000};u.id=c;u.style.cssText="position:fixed;top:0;left:0;z-index:"+s.z+";opacity:"+s.o;j("body")[0].appendChild(u);k(),window.onresize=k;window.onmousemove=function(i){i=i||window.event,f.x=i.clientX,f.y=i.clientY},window.onmouseout=function(){f.x=null,f.y=null};for(var t=[],p=0;s.n>p;p++){var h=a()*r,g=a()*n,q=2*a()-1,d=2*a()-1;t.push({x:h,y:g,xa:q,ya:d,max:6000})}setTimeout(function(){b()},100)}();<link rel="stylesheet" href="/css/spoiler.css" type="text/css"><script src="/js/spoiler.js" type="text/javascript" async></script>
|
||||||
5
lib/font-awesome/css/all.min.css
vendored
Normal file
BIN
lib/font-awesome/webfonts/fa-brands-400.woff2
Normal file
BIN
lib/font-awesome/webfonts/fa-regular-400.woff2
Normal file
BIN
lib/font-awesome/webfonts/fa-solid-900.woff2
Normal file
21
lib/three/LICENSE
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
MIT License
|
||||||
|
|
||||||
|
Copyright (c) 2017 «NexT»
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
of this software and associated documentation files (the "Software"), to deal
|
||||||
|
in the Software without restriction, including without limitation the rights
|
||||||
|
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
copies of the Software, and to permit persons to whom the Software is
|
||||||
|
furnished to do so, subject to the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be included in all
|
||||||
|
copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||||
|
SOFTWARE.
|
||||||
40
lib/three/README.html
Normal file
@@ -0,0 +1,40 @@
|
|||||||
|
<h1 align="center"><a href="https://github.com/mrdoob/three.js">JavaScript 3D library</a> for <a href="https://github.com/theme-next">NexT</a></h1>
|
||||||
|
|
||||||
|
<h1 align="center">Installation</h1>
|
||||||
|
|
||||||
|
<h2>If you want to use the CDN instead of clone this repo, please jump to the Step 3.</h2>
|
||||||
|
|
||||||
|
<h2 align="center">Step 1 → Go to NexT dir</h2>
|
||||||
|
|
||||||
|
<p>Change dir to <strong>NexT</strong> directory. There must be <code>layout</code>, <code>source</code>, <code>languages</code> and other directories:</p>
|
||||||
|
<pre><code class="sh">$ cd themes/next
|
||||||
|
$ ls
|
||||||
|
_config.yml crowdin.yml docs gulpfile.js languages layout LICENSE.md package.json README.md scripts source
|
||||||
|
</code></pre>
|
||||||
|
<h2 align="center">Step 2 → Get module</h2>
|
||||||
|
|
||||||
|
<p>Install module to <code>source/lib</code> directory:</p>
|
||||||
|
<pre><code class="sh">$ git clone https://github.com/theme-next/theme-next-three source/lib/three
|
||||||
|
</code></pre>
|
||||||
|
<h2 align="center">Step 3 → Set it up</h2>
|
||||||
|
|
||||||
|
<p>Enable module in <strong>NexT</strong> <code>_config.yml</code> file:</p>
|
||||||
|
<pre><code class="yml">three_waves: true
|
||||||
|
OR
|
||||||
|
canvas_lines: true
|
||||||
|
OR
|
||||||
|
canvas_sphere: true
|
||||||
|
</code></pre>
|
||||||
|
<p><strong>And, if you wants to use the CDN, then need to set:</strong></p>
|
||||||
|
<pre><code class="yml">vendors:
|
||||||
|
...
|
||||||
|
three: //cdn.jsdelivr.net/gh/theme-next/theme-next-three@1/three.min.js
|
||||||
|
three_waves: //cdn.jsdelivr.net/gh/theme-next/theme-next-three@latest/three-waves.min.js
|
||||||
|
canvas_lines: //cdn.jsdelivr.net/gh/theme-next/theme-next-three@latest/canvas_lines.min.js
|
||||||
|
canvas_sphere: //cdn.jsdelivr.net/gh/theme-next/theme-next-three@latest/canvas_sphere.min.js
|
||||||
|
</code></pre>
|
||||||
|
<h1 align="center">Update</h1>
|
||||||
|
|
||||||
|
<pre><code class="sh">$ cd themes/next/source/lib/three
|
||||||
|
$ git pull
|
||||||
|
</code></pre>
|
||||||
2
lib/three/canvas_lines.min.js
vendored
Normal file
2
lib/three/canvas_sphere.min.js
vendored
Normal file
22
lib/three/gulpfile.js
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
const fs = require('fs')
|
||||||
|
const del = require('del')
|
||||||
|
const gulp = require('gulp')
|
||||||
|
const concat = require('gulp-concat')
|
||||||
|
const uglify = require('gulp-uglify')
|
||||||
|
|
||||||
|
gulp.task('clean', async () => {
|
||||||
|
del(['*.min.js', '!three.min.js'])
|
||||||
|
})
|
||||||
|
|
||||||
|
gulp.task('scripts', async () => {
|
||||||
|
const sourceFiles = fs.readdirSync('src')
|
||||||
|
sourceFiles.forEach(file => {
|
||||||
|
const fileName = file.split('.')[0]
|
||||||
|
return gulp.src([`src/${fileName}.js`, 'lib/*.js'])
|
||||||
|
.pipe(concat(`${fileName}.min.js`))
|
||||||
|
.pipe(uglify())
|
||||||
|
.pipe(gulp.dest('./'))
|
||||||
|
})
|
||||||
|
})
|
||||||
|
|
||||||
|
gulp.task('default', gulp.series('clean', 'scripts'))
|
||||||
1155
lib/three/lib/CanvasRenderer.js
Normal file
929
lib/three/lib/Projector.js
Normal file
@@ -0,0 +1,929 @@
|
|||||||
|
/**
|
||||||
|
* @author mrdoob / http://mrdoob.com/
|
||||||
|
* @author supereggbert / http://www.paulbrunt.co.uk/
|
||||||
|
* @author julianwa / https://github.com/julianwa
|
||||||
|
*/
|
||||||
|
|
||||||
|
THREE.RenderableObject = function () {
|
||||||
|
|
||||||
|
this.id = 0;
|
||||||
|
|
||||||
|
this.object = null;
|
||||||
|
this.z = 0;
|
||||||
|
this.renderOrder = 0;
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
//
|
||||||
|
|
||||||
|
THREE.RenderableFace = function () {
|
||||||
|
|
||||||
|
this.id = 0;
|
||||||
|
|
||||||
|
this.v1 = new THREE.RenderableVertex();
|
||||||
|
this.v2 = new THREE.RenderableVertex();
|
||||||
|
this.v3 = new THREE.RenderableVertex();
|
||||||
|
|
||||||
|
this.normalModel = new THREE.Vector3();
|
||||||
|
|
||||||
|
this.vertexNormalsModel = [ new THREE.Vector3(), new THREE.Vector3(), new THREE.Vector3() ];
|
||||||
|
this.vertexNormalsLength = 0;
|
||||||
|
|
||||||
|
this.color = new THREE.Color();
|
||||||
|
this.material = null;
|
||||||
|
this.uvs = [ new THREE.Vector2(), new THREE.Vector2(), new THREE.Vector2() ];
|
||||||
|
|
||||||
|
this.z = 0;
|
||||||
|
this.renderOrder = 0;
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
//
|
||||||
|
|
||||||
|
THREE.RenderableVertex = function () {
|
||||||
|
|
||||||
|
this.position = new THREE.Vector3();
|
||||||
|
this.positionWorld = new THREE.Vector3();
|
||||||
|
this.positionScreen = new THREE.Vector4();
|
||||||
|
|
||||||
|
this.visible = true;
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
THREE.RenderableVertex.prototype.copy = function ( vertex ) {
|
||||||
|
|
||||||
|
this.positionWorld.copy( vertex.positionWorld );
|
||||||
|
this.positionScreen.copy( vertex.positionScreen );
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
//
|
||||||
|
|
||||||
|
THREE.RenderableLine = function () {
|
||||||
|
|
||||||
|
this.id = 0;
|
||||||
|
|
||||||
|
this.v1 = new THREE.RenderableVertex();
|
||||||
|
this.v2 = new THREE.RenderableVertex();
|
||||||
|
|
||||||
|
this.vertexColors = [ new THREE.Color(), new THREE.Color() ];
|
||||||
|
this.material = null;
|
||||||
|
|
||||||
|
this.z = 0;
|
||||||
|
this.renderOrder = 0;
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
//
|
||||||
|
|
||||||
|
THREE.RenderableSprite = function () {
|
||||||
|
|
||||||
|
this.id = 0;
|
||||||
|
|
||||||
|
this.object = null;
|
||||||
|
|
||||||
|
this.x = 0;
|
||||||
|
this.y = 0;
|
||||||
|
this.z = 0;
|
||||||
|
|
||||||
|
this.rotation = 0;
|
||||||
|
this.scale = new THREE.Vector2();
|
||||||
|
|
||||||
|
this.material = null;
|
||||||
|
this.renderOrder = 0;
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
//
|
||||||
|
|
||||||
|
THREE.Projector = function () {
|
||||||
|
|
||||||
|
var _object, _objectCount, _objectPool = [], _objectPoolLength = 0,
|
||||||
|
_vertex, _vertexCount, _vertexPool = [], _vertexPoolLength = 0,
|
||||||
|
_face, _faceCount, _facePool = [], _facePoolLength = 0,
|
||||||
|
_line, _lineCount, _linePool = [], _linePoolLength = 0,
|
||||||
|
_sprite, _spriteCount, _spritePool = [], _spritePoolLength = 0,
|
||||||
|
|
||||||
|
_renderData = { objects: [], lights: [], elements: [] },
|
||||||
|
|
||||||
|
_vector3 = new THREE.Vector3(),
|
||||||
|
_vector4 = new THREE.Vector4(),
|
||||||
|
|
||||||
|
_clipBox = new THREE.Box3( new THREE.Vector3( - 1, - 1, - 1 ), new THREE.Vector3( 1, 1, 1 ) ),
|
||||||
|
_boundingBox = new THREE.Box3(),
|
||||||
|
_points3 = new Array( 3 ),
|
||||||
|
_points4 = new Array( 4 ),
|
||||||
|
|
||||||
|
_viewMatrix = new THREE.Matrix4(),
|
||||||
|
_viewProjectionMatrix = new THREE.Matrix4(),
|
||||||
|
|
||||||
|
_modelMatrix,
|
||||||
|
_modelViewProjectionMatrix = new THREE.Matrix4(),
|
||||||
|
|
||||||
|
_normalMatrix = new THREE.Matrix3(),
|
||||||
|
|
||||||
|
_frustum = new THREE.Frustum(),
|
||||||
|
|
||||||
|
_clippedVertex1PositionScreen = new THREE.Vector4(),
|
||||||
|
_clippedVertex2PositionScreen = new THREE.Vector4();
|
||||||
|
|
||||||
|
//
|
||||||
|
|
||||||
|
this.projectVector = function ( vector, camera ) {
|
||||||
|
|
||||||
|
console.warn( 'THREE.Projector: .projectVector() is now vector.project().' );
|
||||||
|
vector.project( camera );
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
this.unprojectVector = function ( vector, camera ) {
|
||||||
|
|
||||||
|
console.warn( 'THREE.Projector: .unprojectVector() is now vector.unproject().' );
|
||||||
|
vector.unproject( camera );
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
this.pickingRay = function ( vector, camera ) {
|
||||||
|
|
||||||
|
console.error( 'THREE.Projector: .pickingRay() is now raycaster.setFromCamera().' );
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
//
|
||||||
|
|
||||||
|
var RenderList = function () {
|
||||||
|
|
||||||
|
var normals = [];
|
||||||
|
var uvs = [];
|
||||||
|
|
||||||
|
var object = null;
|
||||||
|
var material = null;
|
||||||
|
|
||||||
|
var normalMatrix = new THREE.Matrix3();
|
||||||
|
|
||||||
|
function setObject( value ) {
|
||||||
|
|
||||||
|
object = value;
|
||||||
|
material = object.material;
|
||||||
|
|
||||||
|
normalMatrix.getNormalMatrix( object.matrixWorld );
|
||||||
|
|
||||||
|
normals.length = 0;
|
||||||
|
uvs.length = 0;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
function projectVertex( vertex ) {
|
||||||
|
|
||||||
|
var position = vertex.position;
|
||||||
|
var positionWorld = vertex.positionWorld;
|
||||||
|
var positionScreen = vertex.positionScreen;
|
||||||
|
|
||||||
|
positionWorld.copy( position ).applyMatrix4( _modelMatrix );
|
||||||
|
positionScreen.copy( positionWorld ).applyMatrix4( _viewProjectionMatrix );
|
||||||
|
|
||||||
|
var invW = 1 / positionScreen.w;
|
||||||
|
|
||||||
|
positionScreen.x *= invW;
|
||||||
|
positionScreen.y *= invW;
|
||||||
|
positionScreen.z *= invW;
|
||||||
|
|
||||||
|
vertex.visible = positionScreen.x >= - 1 && positionScreen.x <= 1 &&
|
||||||
|
positionScreen.y >= - 1 && positionScreen.y <= 1 &&
|
||||||
|
positionScreen.z >= - 1 && positionScreen.z <= 1;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
function pushVertex( x, y, z ) {
|
||||||
|
|
||||||
|
_vertex = getNextVertexInPool();
|
||||||
|
_vertex.position.set( x, y, z );
|
||||||
|
|
||||||
|
projectVertex( _vertex );
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
function pushNormal( x, y, z ) {
|
||||||
|
|
||||||
|
normals.push( x, y, z );
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
function pushUv( x, y ) {
|
||||||
|
|
||||||
|
uvs.push( x, y );
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
function checkTriangleVisibility( v1, v2, v3 ) {
|
||||||
|
|
||||||
|
if ( v1.visible === true || v2.visible === true || v3.visible === true ) return true;
|
||||||
|
|
||||||
|
_points3[ 0 ] = v1.positionScreen;
|
||||||
|
_points3[ 1 ] = v2.positionScreen;
|
||||||
|
_points3[ 2 ] = v3.positionScreen;
|
||||||
|
|
||||||
|
return _clipBox.intersectsBox( _boundingBox.setFromPoints( _points3 ) );
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
function checkBackfaceCulling( v1, v2, v3 ) {
|
||||||
|
|
||||||
|
return ( ( v3.positionScreen.x - v1.positionScreen.x ) *
|
||||||
|
( v2.positionScreen.y - v1.positionScreen.y ) -
|
||||||
|
( v3.positionScreen.y - v1.positionScreen.y ) *
|
||||||
|
( v2.positionScreen.x - v1.positionScreen.x ) ) < 0;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
function pushLine( a, b ) {
|
||||||
|
|
||||||
|
var v1 = _vertexPool[ a ];
|
||||||
|
var v2 = _vertexPool[ b ];
|
||||||
|
|
||||||
|
_line = getNextLineInPool();
|
||||||
|
|
||||||
|
_line.id = object.id;
|
||||||
|
_line.v1.copy( v1 );
|
||||||
|
_line.v2.copy( v2 );
|
||||||
|
_line.z = ( v1.positionScreen.z + v2.positionScreen.z ) / 2;
|
||||||
|
_line.renderOrder = object.renderOrder;
|
||||||
|
|
||||||
|
_line.material = object.material;
|
||||||
|
|
||||||
|
_renderData.elements.push( _line );
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
function pushTriangle( a, b, c ) {
|
||||||
|
|
||||||
|
var v1 = _vertexPool[ a ];
|
||||||
|
var v2 = _vertexPool[ b ];
|
||||||
|
var v3 = _vertexPool[ c ];
|
||||||
|
|
||||||
|
if ( checkTriangleVisibility( v1, v2, v3 ) === false ) return;
|
||||||
|
|
||||||
|
if ( material.side === THREE.DoubleSide || checkBackfaceCulling( v1, v2, v3 ) === true ) {
|
||||||
|
|
||||||
|
_face = getNextFaceInPool();
|
||||||
|
|
||||||
|
_face.id = object.id;
|
||||||
|
_face.v1.copy( v1 );
|
||||||
|
_face.v2.copy( v2 );
|
||||||
|
_face.v3.copy( v3 );
|
||||||
|
_face.z = ( v1.positionScreen.z + v2.positionScreen.z + v3.positionScreen.z ) / 3;
|
||||||
|
_face.renderOrder = object.renderOrder;
|
||||||
|
|
||||||
|
// use first vertex normal as face normal
|
||||||
|
|
||||||
|
_face.normalModel.fromArray( normals, a * 3 );
|
||||||
|
_face.normalModel.applyMatrix3( normalMatrix ).normalize();
|
||||||
|
|
||||||
|
for ( var i = 0; i < 3; i ++ ) {
|
||||||
|
|
||||||
|
var normal = _face.vertexNormalsModel[ i ];
|
||||||
|
normal.fromArray( normals, arguments[ i ] * 3 );
|
||||||
|
normal.applyMatrix3( normalMatrix ).normalize();
|
||||||
|
|
||||||
|
var uv = _face.uvs[ i ];
|
||||||
|
uv.fromArray( uvs, arguments[ i ] * 2 );
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
_face.vertexNormalsLength = 3;
|
||||||
|
|
||||||
|
_face.material = object.material;
|
||||||
|
|
||||||
|
_renderData.elements.push( _face );
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
return {
|
||||||
|
setObject: setObject,
|
||||||
|
projectVertex: projectVertex,
|
||||||
|
checkTriangleVisibility: checkTriangleVisibility,
|
||||||
|
checkBackfaceCulling: checkBackfaceCulling,
|
||||||
|
pushVertex: pushVertex,
|
||||||
|
pushNormal: pushNormal,
|
||||||
|
pushUv: pushUv,
|
||||||
|
pushLine: pushLine,
|
||||||
|
pushTriangle: pushTriangle
|
||||||
|
}
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
var renderList = new RenderList();
|
||||||
|
|
||||||
|
this.projectScene = function ( scene, camera, sortObjects, sortElements ) {
|
||||||
|
|
||||||
|
_faceCount = 0;
|
||||||
|
_lineCount = 0;
|
||||||
|
_spriteCount = 0;
|
||||||
|
|
||||||
|
_renderData.elements.length = 0;
|
||||||
|
|
||||||
|
if ( scene.autoUpdate === true ) scene.updateMatrixWorld();
|
||||||
|
if ( camera.parent === null ) camera.updateMatrixWorld();
|
||||||
|
|
||||||
|
_viewMatrix.copy( camera.matrixWorldInverse.getInverse( camera.matrixWorld ) );
|
||||||
|
_viewProjectionMatrix.multiplyMatrices( camera.projectionMatrix, _viewMatrix );
|
||||||
|
|
||||||
|
_frustum.setFromMatrix( _viewProjectionMatrix );
|
||||||
|
|
||||||
|
//
|
||||||
|
|
||||||
|
_objectCount = 0;
|
||||||
|
|
||||||
|
_renderData.objects.length = 0;
|
||||||
|
_renderData.lights.length = 0;
|
||||||
|
|
||||||
|
function addObject( object ) {
|
||||||
|
|
||||||
|
_object = getNextObjectInPool();
|
||||||
|
_object.id = object.id;
|
||||||
|
_object.object = object;
|
||||||
|
|
||||||
|
_vector3.setFromMatrixPosition( object.matrixWorld );
|
||||||
|
_vector3.applyMatrix4( _viewProjectionMatrix );
|
||||||
|
_object.z = _vector3.z;
|
||||||
|
_object.renderOrder = object.renderOrder;
|
||||||
|
|
||||||
|
_renderData.objects.push( _object );
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
scene.traverseVisible( function ( object ) {
|
||||||
|
|
||||||
|
if ( object instanceof THREE.Light ) {
|
||||||
|
|
||||||
|
_renderData.lights.push( object );
|
||||||
|
|
||||||
|
} else if ( object instanceof THREE.Mesh || object instanceof THREE.Line ) {
|
||||||
|
|
||||||
|
if ( object.material.visible === false ) return;
|
||||||
|
if ( object.frustumCulled === true && _frustum.intersectsObject( object ) === false ) return;
|
||||||
|
|
||||||
|
addObject( object );
|
||||||
|
|
||||||
|
} else if ( object instanceof THREE.Sprite ) {
|
||||||
|
|
||||||
|
if ( object.material.visible === false ) return;
|
||||||
|
if ( object.frustumCulled === true && _frustum.intersectsSprite( object ) === false ) return;
|
||||||
|
|
||||||
|
addObject( object );
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
} );
|
||||||
|
|
||||||
|
if ( sortObjects === true ) {
|
||||||
|
|
||||||
|
_renderData.objects.sort( painterSort );
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
|
||||||
|
for ( var o = 0, ol = _renderData.objects.length; o < ol; o ++ ) {
|
||||||
|
|
||||||
|
var object = _renderData.objects[ o ].object;
|
||||||
|
var geometry = object.geometry;
|
||||||
|
|
||||||
|
renderList.setObject( object );
|
||||||
|
|
||||||
|
_modelMatrix = object.matrixWorld;
|
||||||
|
|
||||||
|
_vertexCount = 0;
|
||||||
|
|
||||||
|
if ( object instanceof THREE.Mesh ) {
|
||||||
|
|
||||||
|
if ( geometry instanceof THREE.BufferGeometry ) {
|
||||||
|
|
||||||
|
var attributes = geometry.attributes;
|
||||||
|
var groups = geometry.groups;
|
||||||
|
|
||||||
|
if ( attributes.position === undefined ) continue;
|
||||||
|
|
||||||
|
var positions = attributes.position.array;
|
||||||
|
|
||||||
|
for ( var i = 0, l = positions.length; i < l; i += 3 ) {
|
||||||
|
|
||||||
|
renderList.pushVertex( positions[ i ], positions[ i + 1 ], positions[ i + 2 ] );
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
if ( attributes.normal !== undefined ) {
|
||||||
|
|
||||||
|
var normals = attributes.normal.array;
|
||||||
|
|
||||||
|
for ( var i = 0, l = normals.length; i < l; i += 3 ) {
|
||||||
|
|
||||||
|
renderList.pushNormal( normals[ i ], normals[ i + 1 ], normals[ i + 2 ] );
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
if ( attributes.uv !== undefined ) {
|
||||||
|
|
||||||
|
var uvs = attributes.uv.array;
|
||||||
|
|
||||||
|
for ( var i = 0, l = uvs.length; i < l; i += 2 ) {
|
||||||
|
|
||||||
|
renderList.pushUv( uvs[ i ], uvs[ i + 1 ] );
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
if ( geometry.index !== null ) {
|
||||||
|
|
||||||
|
var indices = geometry.index.array;
|
||||||
|
|
||||||
|
if ( groups.length > 0 ) {
|
||||||
|
|
||||||
|
for ( var g = 0; g < groups.length; g ++ ) {
|
||||||
|
|
||||||
|
var group = groups[ g ];
|
||||||
|
|
||||||
|
for ( var i = group.start, l = group.start + group.count; i < l; i += 3 ) {
|
||||||
|
|
||||||
|
renderList.pushTriangle( indices[ i ], indices[ i + 1 ], indices[ i + 2 ] );
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
} else {
|
||||||
|
|
||||||
|
for ( var i = 0, l = indices.length; i < l; i += 3 ) {
|
||||||
|
|
||||||
|
renderList.pushTriangle( indices[ i ], indices[ i + 1 ], indices[ i + 2 ] );
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
} else {
|
||||||
|
|
||||||
|
for ( var i = 0, l = positions.length / 3; i < l; i += 3 ) {
|
||||||
|
|
||||||
|
renderList.pushTriangle( i, i + 1, i + 2 );
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
} else if ( geometry instanceof THREE.Geometry ) {
|
||||||
|
|
||||||
|
var vertices = geometry.vertices;
|
||||||
|
var faces = geometry.faces;
|
||||||
|
var faceVertexUvs = geometry.faceVertexUvs[ 0 ];
|
||||||
|
|
||||||
|
_normalMatrix.getNormalMatrix( _modelMatrix );
|
||||||
|
|
||||||
|
var material = object.material;
|
||||||
|
|
||||||
|
var isFaceMaterial = material instanceof THREE.MultiMaterial;
|
||||||
|
var objectMaterials = isFaceMaterial === true ? object.material : null;
|
||||||
|
|
||||||
|
for ( var v = 0, vl = vertices.length; v < vl; v ++ ) {
|
||||||
|
|
||||||
|
var vertex = vertices[ v ];
|
||||||
|
|
||||||
|
_vector3.copy( vertex );
|
||||||
|
|
||||||
|
if ( material.morphTargets === true ) {
|
||||||
|
|
||||||
|
var morphTargets = geometry.morphTargets;
|
||||||
|
var morphInfluences = object.morphTargetInfluences;
|
||||||
|
|
||||||
|
for ( var t = 0, tl = morphTargets.length; t < tl; t ++ ) {
|
||||||
|
|
||||||
|
var influence = morphInfluences[ t ];
|
||||||
|
|
||||||
|
if ( influence === 0 ) continue;
|
||||||
|
|
||||||
|
var target = morphTargets[ t ];
|
||||||
|
var targetVertex = target.vertices[ v ];
|
||||||
|
|
||||||
|
_vector3.x += ( targetVertex.x - vertex.x ) * influence;
|
||||||
|
_vector3.y += ( targetVertex.y - vertex.y ) * influence;
|
||||||
|
_vector3.z += ( targetVertex.z - vertex.z ) * influence;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
renderList.pushVertex( _vector3.x, _vector3.y, _vector3.z );
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
for ( var f = 0, fl = faces.length; f < fl; f ++ ) {
|
||||||
|
|
||||||
|
var face = faces[ f ];
|
||||||
|
|
||||||
|
material = isFaceMaterial === true
|
||||||
|
? objectMaterials.materials[ face.materialIndex ]
|
||||||
|
: object.material;
|
||||||
|
|
||||||
|
if ( material === undefined ) continue;
|
||||||
|
|
||||||
|
var side = material.side;
|
||||||
|
|
||||||
|
var v1 = _vertexPool[ face.a ];
|
||||||
|
var v2 = _vertexPool[ face.b ];
|
||||||
|
var v3 = _vertexPool[ face.c ];
|
||||||
|
|
||||||
|
if ( renderList.checkTriangleVisibility( v1, v2, v3 ) === false ) continue;
|
||||||
|
|
||||||
|
var visible = renderList.checkBackfaceCulling( v1, v2, v3 );
|
||||||
|
|
||||||
|
if ( side !== THREE.DoubleSide ) {
|
||||||
|
|
||||||
|
if ( side === THREE.FrontSide && visible === false ) continue;
|
||||||
|
if ( side === THREE.BackSide && visible === true ) continue;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
_face = getNextFaceInPool();
|
||||||
|
|
||||||
|
_face.id = object.id;
|
||||||
|
_face.v1.copy( v1 );
|
||||||
|
_face.v2.copy( v2 );
|
||||||
|
_face.v3.copy( v3 );
|
||||||
|
|
||||||
|
_face.normalModel.copy( face.normal );
|
||||||
|
|
||||||
|
if ( visible === false && ( side === THREE.BackSide || side === THREE.DoubleSide ) ) {
|
||||||
|
|
||||||
|
_face.normalModel.negate();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
_face.normalModel.applyMatrix3( _normalMatrix ).normalize();
|
||||||
|
|
||||||
|
var faceVertexNormals = face.vertexNormals;
|
||||||
|
|
||||||
|
for ( var n = 0, nl = Math.min( faceVertexNormals.length, 3 ); n < nl; n ++ ) {
|
||||||
|
|
||||||
|
var normalModel = _face.vertexNormalsModel[ n ];
|
||||||
|
normalModel.copy( faceVertexNormals[ n ] );
|
||||||
|
|
||||||
|
if ( visible === false && ( side === THREE.BackSide || side === THREE.DoubleSide ) ) {
|
||||||
|
|
||||||
|
normalModel.negate();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
normalModel.applyMatrix3( _normalMatrix ).normalize();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
_face.vertexNormalsLength = faceVertexNormals.length;
|
||||||
|
|
||||||
|
var vertexUvs = faceVertexUvs[ f ];
|
||||||
|
|
||||||
|
if ( vertexUvs !== undefined ) {
|
||||||
|
|
||||||
|
for ( var u = 0; u < 3; u ++ ) {
|
||||||
|
|
||||||
|
_face.uvs[ u ].copy( vertexUvs[ u ] );
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
_face.color = face.color;
|
||||||
|
_face.material = material;
|
||||||
|
|
||||||
|
_face.z = ( v1.positionScreen.z + v2.positionScreen.z + v3.positionScreen.z ) / 3;
|
||||||
|
_face.renderOrder = object.renderOrder;
|
||||||
|
|
||||||
|
_renderData.elements.push( _face );
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
} else if ( object instanceof THREE.Line ) {
|
||||||
|
|
||||||
|
if ( geometry instanceof THREE.BufferGeometry ) {
|
||||||
|
|
||||||
|
var attributes = geometry.attributes;
|
||||||
|
|
||||||
|
if ( attributes.position !== undefined ) {
|
||||||
|
|
||||||
|
var positions = attributes.position.array;
|
||||||
|
|
||||||
|
for ( var i = 0, l = positions.length; i < l; i += 3 ) {
|
||||||
|
|
||||||
|
renderList.pushVertex( positions[ i ], positions[ i + 1 ], positions[ i + 2 ] );
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
if ( geometry.index !== null ) {
|
||||||
|
|
||||||
|
var indices = geometry.index.array;
|
||||||
|
|
||||||
|
for ( var i = 0, l = indices.length; i < l; i += 2 ) {
|
||||||
|
|
||||||
|
renderList.pushLine( indices[ i ], indices[ i + 1 ] );
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
} else {
|
||||||
|
|
||||||
|
var step = object instanceof THREE.LineSegments ? 2 : 1;
|
||||||
|
|
||||||
|
for ( var i = 0, l = ( positions.length / 3 ) - 1; i < l; i += step ) {
|
||||||
|
|
||||||
|
renderList.pushLine( i, i + 1 );
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
} else if ( geometry instanceof THREE.Geometry ) {
|
||||||
|
|
||||||
|
_modelViewProjectionMatrix.multiplyMatrices( _viewProjectionMatrix, _modelMatrix );
|
||||||
|
|
||||||
|
var vertices = object.geometry.vertices;
|
||||||
|
|
||||||
|
if ( vertices.length === 0 ) continue;
|
||||||
|
|
||||||
|
v1 = getNextVertexInPool();
|
||||||
|
v1.positionScreen.copy( vertices[ 0 ] ).applyMatrix4( _modelViewProjectionMatrix );
|
||||||
|
|
||||||
|
var step = object instanceof THREE.LineSegments ? 2 : 1;
|
||||||
|
|
||||||
|
for ( var v = 1, vl = vertices.length; v < vl; v ++ ) {
|
||||||
|
|
||||||
|
v1 = getNextVertexInPool();
|
||||||
|
v1.positionScreen.copy( vertices[ v ] ).applyMatrix4( _modelViewProjectionMatrix );
|
||||||
|
|
||||||
|
if ( ( v + 1 ) % step > 0 ) continue;
|
||||||
|
|
||||||
|
v2 = _vertexPool[ _vertexCount - 2 ];
|
||||||
|
|
||||||
|
_clippedVertex1PositionScreen.copy( v1.positionScreen );
|
||||||
|
_clippedVertex2PositionScreen.copy( v2.positionScreen );
|
||||||
|
|
||||||
|
if ( clipLine( _clippedVertex1PositionScreen, _clippedVertex2PositionScreen ) === true ) {
|
||||||
|
|
||||||
|
// Perform the perspective divide
|
||||||
|
_clippedVertex1PositionScreen.multiplyScalar( 1 / _clippedVertex1PositionScreen.w );
|
||||||
|
_clippedVertex2PositionScreen.multiplyScalar( 1 / _clippedVertex2PositionScreen.w );
|
||||||
|
|
||||||
|
_line = getNextLineInPool();
|
||||||
|
|
||||||
|
_line.id = object.id;
|
||||||
|
_line.v1.positionScreen.copy( _clippedVertex1PositionScreen );
|
||||||
|
_line.v2.positionScreen.copy( _clippedVertex2PositionScreen );
|
||||||
|
|
||||||
|
_line.z = Math.max( _clippedVertex1PositionScreen.z, _clippedVertex2PositionScreen.z );
|
||||||
|
_line.renderOrder = object.renderOrder;
|
||||||
|
|
||||||
|
_line.material = object.material;
|
||||||
|
|
||||||
|
if ( object.material.vertexColors === THREE.VertexColors ) {
|
||||||
|
|
||||||
|
_line.vertexColors[ 0 ].copy( object.geometry.colors[ v ] );
|
||||||
|
_line.vertexColors[ 1 ].copy( object.geometry.colors[ v - 1 ] );
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
_renderData.elements.push( _line );
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
} else if ( object instanceof THREE.Sprite ) {
|
||||||
|
|
||||||
|
_vector4.set( _modelMatrix.elements[ 12 ], _modelMatrix.elements[ 13 ], _modelMatrix.elements[ 14 ], 1 );
|
||||||
|
_vector4.applyMatrix4( _viewProjectionMatrix );
|
||||||
|
|
||||||
|
var invW = 1 / _vector4.w;
|
||||||
|
|
||||||
|
_vector4.z *= invW;
|
||||||
|
|
||||||
|
if ( _vector4.z >= - 1 && _vector4.z <= 1 ) {
|
||||||
|
|
||||||
|
_sprite = getNextSpriteInPool();
|
||||||
|
_sprite.id = object.id;
|
||||||
|
_sprite.x = _vector4.x * invW;
|
||||||
|
_sprite.y = _vector4.y * invW;
|
||||||
|
_sprite.z = _vector4.z;
|
||||||
|
_sprite.renderOrder = object.renderOrder;
|
||||||
|
_sprite.object = object;
|
||||||
|
|
||||||
|
_sprite.rotation = object.rotation;
|
||||||
|
|
||||||
|
_sprite.scale.x = object.scale.x * Math.abs( _sprite.x - ( _vector4.x + camera.projectionMatrix.elements[ 0 ] ) / ( _vector4.w + camera.projectionMatrix.elements[ 12 ] ) );
|
||||||
|
_sprite.scale.y = object.scale.y * Math.abs( _sprite.y - ( _vector4.y + camera.projectionMatrix.elements[ 5 ] ) / ( _vector4.w + camera.projectionMatrix.elements[ 13 ] ) );
|
||||||
|
|
||||||
|
_sprite.material = object.material;
|
||||||
|
|
||||||
|
_renderData.elements.push( _sprite );
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
if ( sortElements === true ) {
|
||||||
|
|
||||||
|
_renderData.elements.sort( painterSort );
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
return _renderData;
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
// Pools
|
||||||
|
|
||||||
|
function getNextObjectInPool() {
|
||||||
|
|
||||||
|
if ( _objectCount === _objectPoolLength ) {
|
||||||
|
|
||||||
|
var object = new THREE.RenderableObject();
|
||||||
|
_objectPool.push( object );
|
||||||
|
_objectPoolLength ++;
|
||||||
|
_objectCount ++;
|
||||||
|
return object;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
return _objectPool[ _objectCount ++ ];
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
function getNextVertexInPool() {
|
||||||
|
|
||||||
|
if ( _vertexCount === _vertexPoolLength ) {
|
||||||
|
|
||||||
|
var vertex = new THREE.RenderableVertex();
|
||||||
|
_vertexPool.push( vertex );
|
||||||
|
_vertexPoolLength ++;
|
||||||
|
_vertexCount ++;
|
||||||
|
return vertex;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
return _vertexPool[ _vertexCount ++ ];
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
function getNextFaceInPool() {
|
||||||
|
|
||||||
|
if ( _faceCount === _facePoolLength ) {
|
||||||
|
|
||||||
|
var face = new THREE.RenderableFace();
|
||||||
|
_facePool.push( face );
|
||||||
|
_facePoolLength ++;
|
||||||
|
_faceCount ++;
|
||||||
|
return face;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
return _facePool[ _faceCount ++ ];
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
function getNextLineInPool() {
|
||||||
|
|
||||||
|
if ( _lineCount === _linePoolLength ) {
|
||||||
|
|
||||||
|
var line = new THREE.RenderableLine();
|
||||||
|
_linePool.push( line );
|
||||||
|
_linePoolLength ++;
|
||||||
|
_lineCount ++;
|
||||||
|
return line;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
return _linePool[ _lineCount ++ ];
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
function getNextSpriteInPool() {
|
||||||
|
|
||||||
|
if ( _spriteCount === _spritePoolLength ) {
|
||||||
|
|
||||||
|
var sprite = new THREE.RenderableSprite();
|
||||||
|
_spritePool.push( sprite );
|
||||||
|
_spritePoolLength ++;
|
||||||
|
_spriteCount ++;
|
||||||
|
return sprite;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
return _spritePool[ _spriteCount ++ ];
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
|
||||||
|
function painterSort( a, b ) {
|
||||||
|
|
||||||
|
if ( a.renderOrder !== b.renderOrder ) {
|
||||||
|
|
||||||
|
return a.renderOrder - b.renderOrder;
|
||||||
|
|
||||||
|
} else if ( a.z !== b.z ) {
|
||||||
|
|
||||||
|
return b.z - a.z;
|
||||||
|
|
||||||
|
} else if ( a.id !== b.id ) {
|
||||||
|
|
||||||
|
return a.id - b.id;
|
||||||
|
|
||||||
|
} else {
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
function clipLine( s1, s2 ) {
|
||||||
|
|
||||||
|
var alpha1 = 0, alpha2 = 1,
|
||||||
|
|
||||||
|
// Calculate the boundary coordinate of each vertex for the near and far clip planes,
|
||||||
|
// Z = -1 and Z = +1, respectively.
|
||||||
|
bc1near = s1.z + s1.w,
|
||||||
|
bc2near = s2.z + s2.w,
|
||||||
|
bc1far = - s1.z + s1.w,
|
||||||
|
bc2far = - s2.z + s2.w;
|
||||||
|
|
||||||
|
if ( bc1near >= 0 && bc2near >= 0 && bc1far >= 0 && bc2far >= 0 ) {
|
||||||
|
|
||||||
|
// Both vertices lie entirely within all clip planes.
|
||||||
|
return true;
|
||||||
|
|
||||||
|
} else if ( ( bc1near < 0 && bc2near < 0 ) || ( bc1far < 0 && bc2far < 0 ) ) {
|
||||||
|
|
||||||
|
// Both vertices lie entirely outside one of the clip planes.
|
||||||
|
return false;
|
||||||
|
|
||||||
|
} else {
|
||||||
|
|
||||||
|
// The line segment spans at least one clip plane.
|
||||||
|
|
||||||
|
if ( bc1near < 0 ) {
|
||||||
|
|
||||||
|
// v1 lies outside the near plane, v2 inside
|
||||||
|
alpha1 = Math.max( alpha1, bc1near / ( bc1near - bc2near ) );
|
||||||
|
|
||||||
|
} else if ( bc2near < 0 ) {
|
||||||
|
|
||||||
|
// v2 lies outside the near plane, v1 inside
|
||||||
|
alpha2 = Math.min( alpha2, bc1near / ( bc1near - bc2near ) );
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
if ( bc1far < 0 ) {
|
||||||
|
|
||||||
|
// v1 lies outside the far plane, v2 inside
|
||||||
|
alpha1 = Math.max( alpha1, bc1far / ( bc1far - bc2far ) );
|
||||||
|
|
||||||
|
} else if ( bc2far < 0 ) {
|
||||||
|
|
||||||
|
// v2 lies outside the far plane, v2 inside
|
||||||
|
alpha2 = Math.min( alpha2, bc1far / ( bc1far - bc2far ) );
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
if ( alpha2 < alpha1 ) {
|
||||||
|
|
||||||
|
// The line segment spans two boundaries, but is outside both of them.
|
||||||
|
// (This can't happen when we're only clipping against just near/far but good
|
||||||
|
// to leave the check here for future usage if other clip planes are added.)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
} else {
|
||||||
|
|
||||||
|
// Update the s1 and s2 vertices to match the clipped line segment.
|
||||||
|
s1.lerp( s2, alpha1 );
|
||||||
|
s2.lerp( s1, 1 - alpha2 );
|
||||||
|
|
||||||
|
return true;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
};
|
||||||
1
lib/three/package.json
Normal file
@@ -0,0 +1 @@
|
|||||||
|
{"name":"theme-next-three","version":"1.0.0","main":"index.js","repository":"git@github.com:theme-next/theme-next-three.git","author":"Raincal <cyj94228@gmail.com>","license":"MIT","scripts":{"build":"gulp"},"dependencies":{"del":"^5.1.0","gulp":"^4.0.2","gulp-concat":"^2.6.1","gulp-uglify":"^3.0.2"}}
|
||||||
1
lib/three/renovate.json
Normal file
@@ -0,0 +1 @@
|
|||||||
|
{"extends":["config:base"]}
|
||||||
114
lib/three/src/canvas_lines.js
Normal file
@@ -0,0 +1,114 @@
|
|||||||
|
/**
|
||||||
|
* Created by Tang on 2017/4/15.
|
||||||
|
*/
|
||||||
|
$(function () {
|
||||||
|
var mouseX = 0,
|
||||||
|
mouseY = 0,
|
||||||
|
windowHalfX = window.innerWidth / 2,
|
||||||
|
windowHalfY = window.innerHeight / 2,
|
||||||
|
SEPARATION = 200,
|
||||||
|
AMOUNTX = 10,
|
||||||
|
AMOUNTY = 10,
|
||||||
|
camera, scene, renderer;
|
||||||
|
init();
|
||||||
|
animate();
|
||||||
|
|
||||||
|
function init() {
|
||||||
|
var container, separation = 100,
|
||||||
|
amountX = 50,
|
||||||
|
amountY = 50,
|
||||||
|
particles, particle;
|
||||||
|
container = document.createElement('div');
|
||||||
|
// 设置css
|
||||||
|
container.style.position = "fixed";
|
||||||
|
container.style.top = "0px";
|
||||||
|
container.style.left = "0px";
|
||||||
|
container.style.zIndex = "-1";
|
||||||
|
container.style.opacity = "0.5";
|
||||||
|
|
||||||
|
document.body.appendChild(container);
|
||||||
|
camera = new THREE.PerspectiveCamera(75, window.innerWidth / window.innerHeight, 1, 10000);
|
||||||
|
camera.position.z = 100;
|
||||||
|
scene = new THREE.Scene();
|
||||||
|
renderer = new THREE.CanvasRenderer({
|
||||||
|
alpha: true
|
||||||
|
});
|
||||||
|
renderer.setPixelRatio(window.devicePixelRatio);
|
||||||
|
renderer.setSize(window.innerWidth, window.innerHeight);
|
||||||
|
container.appendChild(renderer.domElement);
|
||||||
|
// particles
|
||||||
|
var PI2 = Math.PI * 2;
|
||||||
|
var material = new THREE.SpriteCanvasMaterial({
|
||||||
|
color: 10263708,
|
||||||
|
program: function (context) {
|
||||||
|
context.beginPath();
|
||||||
|
context.arc(0, 0, 0.5, 0, PI2, true);
|
||||||
|
context.fill();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
var geometry = new THREE.Geometry();
|
||||||
|
for (var i = 0; i < 100; i++) {
|
||||||
|
particle = new THREE.Sprite(material);
|
||||||
|
particle.position.x = Math.random() * 2 - 1;
|
||||||
|
particle.position.y = Math.random() * 2 - 1;
|
||||||
|
particle.position.z = Math.random() * 2 - 1;
|
||||||
|
particle.position.normalize();
|
||||||
|
particle.position.multiplyScalar(Math.random() * 10 + 450);
|
||||||
|
particle.scale.x = particle.scale.y = 10;
|
||||||
|
scene.add(particle);
|
||||||
|
geometry.vertices.push(particle.position);
|
||||||
|
}
|
||||||
|
// lines
|
||||||
|
var line = new THREE.Line(geometry, new THREE.LineBasicMaterial({
|
||||||
|
color: 10263708,
|
||||||
|
opacity: 0.5
|
||||||
|
}));
|
||||||
|
scene.add(line);
|
||||||
|
document.addEventListener('mousemove', onDocumentMouseMove, false);
|
||||||
|
document.addEventListener('touchstart', onDocumentTouchStart, false);
|
||||||
|
document.addEventListener('touchmove', onDocumentTouchMove, false);
|
||||||
|
//
|
||||||
|
window.addEventListener('resize', onWindowResize, false);
|
||||||
|
}
|
||||||
|
|
||||||
|
function onWindowResize() {
|
||||||
|
windowHalfX = window.innerWidth / 2;
|
||||||
|
windowHalfY = window.innerHeight / 2;
|
||||||
|
camera.aspect = window.innerWidth / window.innerHeight;
|
||||||
|
camera.updateProjectionMatrix();
|
||||||
|
renderer.setSize(window.innerWidth, window.innerHeight);
|
||||||
|
}
|
||||||
|
//
|
||||||
|
function onDocumentMouseMove(event) {
|
||||||
|
mouseX = event.clientX - windowHalfX;
|
||||||
|
mouseY = event.clientY - windowHalfY;
|
||||||
|
}
|
||||||
|
|
||||||
|
function onDocumentTouchStart(event) {
|
||||||
|
if (event.touches.length > 1) {
|
||||||
|
//event.preventDefault();
|
||||||
|
mouseX = event.touches[0].pageX - windowHalfX;
|
||||||
|
//mouseY = event.touches[ 0 ].pageY - windowHalfY;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function onDocumentTouchMove(event) {
|
||||||
|
if (event.touches.length == 1) {
|
||||||
|
//event.preventDefault();
|
||||||
|
mouseX = event.touches[0].pageX - windowHalfX;
|
||||||
|
//mouseY = event.touches[ 0 ].pageY - windowHalfY;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//
|
||||||
|
function animate() {
|
||||||
|
requestAnimationFrame(animate);
|
||||||
|
render();
|
||||||
|
}
|
||||||
|
|
||||||
|
function render() {
|
||||||
|
camera.position.x += (mouseX - camera.position.x) * .05;
|
||||||
|
camera.position.y += (-mouseY + 200 - camera.position.y) * .05;
|
||||||
|
camera.lookAt(scene.position);
|
||||||
|
renderer.render(scene, camera);
|
||||||
|
}
|
||||||
|
})
|
||||||
124
lib/three/src/canvas_sphere.js
Normal file
@@ -0,0 +1,124 @@
|
|||||||
|
/**
|
||||||
|
* Created by Tang on 2017/4/15.
|
||||||
|
*/
|
||||||
|
$(function () {
|
||||||
|
var SCREEN_WIDTH = window.innerWidth,
|
||||||
|
SCREEN_HEIGHT = window.innerHeight,
|
||||||
|
mouseX = 0,
|
||||||
|
mouseY = 0,
|
||||||
|
windowHalfX = window.innerWidth / 2,
|
||||||
|
windowHalfY = window.innerHeight / 2,
|
||||||
|
SEPARATION = 200,
|
||||||
|
AMOUNTX = 10,
|
||||||
|
AMOUNTY = 10,
|
||||||
|
camera, scene, renderer;
|
||||||
|
init();
|
||||||
|
animate();
|
||||||
|
|
||||||
|
function init() {
|
||||||
|
var container, separation = 100,
|
||||||
|
amountX = 50,
|
||||||
|
amountY = 50,
|
||||||
|
particles, particle;
|
||||||
|
container = document.createElement('div');
|
||||||
|
// 设置css
|
||||||
|
container.style.position = "fixed";
|
||||||
|
container.style.top = "0px";
|
||||||
|
container.style.left = "0px";
|
||||||
|
container.style.zIndex = "-1";
|
||||||
|
container.style.opacity = "0.5";
|
||||||
|
|
||||||
|
document.body.appendChild(container);
|
||||||
|
camera = new THREE.PerspectiveCamera(75, SCREEN_WIDTH / SCREEN_HEIGHT, 1, 10000);
|
||||||
|
camera.position.z = 1000;
|
||||||
|
scene = new THREE.Scene();
|
||||||
|
renderer = new THREE.CanvasRenderer({
|
||||||
|
alpha: true
|
||||||
|
});
|
||||||
|
renderer.setPixelRatio(window.devicePixelRatio);
|
||||||
|
renderer.setSize(SCREEN_WIDTH, SCREEN_HEIGHT);
|
||||||
|
container.appendChild(renderer.domElement);
|
||||||
|
// particles
|
||||||
|
var PI2 = Math.PI * 2;
|
||||||
|
var material = new THREE.SpriteCanvasMaterial({
|
||||||
|
color: 10263708,
|
||||||
|
program: function (context) {
|
||||||
|
context.beginPath();
|
||||||
|
context.arc(0, 0, 0.5, 0, PI2, true);
|
||||||
|
context.fill();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
for (var i = 0; i < 1000; i++) {
|
||||||
|
particle = new THREE.Sprite(material);
|
||||||
|
particle.position.x = Math.random() * 2 - 1;
|
||||||
|
particle.position.y = Math.random() * 2 - 1;
|
||||||
|
particle.position.z = Math.random() * 2 - 1;
|
||||||
|
particle.position.normalize();
|
||||||
|
particle.position.multiplyScalar(Math.random() * 10 + 450);
|
||||||
|
particle.scale.multiplyScalar(2);
|
||||||
|
scene.add(particle);
|
||||||
|
}
|
||||||
|
// lines
|
||||||
|
for (var i = 0; i < 300; i++) {
|
||||||
|
var geometry = new THREE.Geometry();
|
||||||
|
var vertex = new THREE.Vector3(Math.random() * 2 - 1, Math.random() * 2 - 1, Math.random() * 2 - 1);
|
||||||
|
vertex.normalize();
|
||||||
|
vertex.multiplyScalar(450);
|
||||||
|
geometry.vertices.push(vertex);
|
||||||
|
var vertex2 = vertex.clone();
|
||||||
|
vertex2.multiplyScalar(Math.random() * 0.3 + 1);
|
||||||
|
geometry.vertices.push(vertex2);
|
||||||
|
var line = new THREE.Line(geometry, new THREE.LineBasicMaterial({
|
||||||
|
color: 10263708,
|
||||||
|
opacity: Math.random()
|
||||||
|
}));
|
||||||
|
scene.add(line);
|
||||||
|
}
|
||||||
|
document.addEventListener('mousemove', onDocumentMouseMove, false);
|
||||||
|
document.addEventListener('touchstart', onDocumentTouchStart, false);
|
||||||
|
document.addEventListener('touchmove', onDocumentTouchMove, false);
|
||||||
|
//
|
||||||
|
window.addEventListener('resize', onWindowResize, false);
|
||||||
|
}
|
||||||
|
|
||||||
|
function onWindowResize() {
|
||||||
|
windowHalfX = window.innerWidth / 2;
|
||||||
|
windowHalfY = window.innerHeight / 2;
|
||||||
|
camera.aspect = window.innerWidth / window.innerHeight;
|
||||||
|
camera.updateProjectionMatrix();
|
||||||
|
renderer.setSize(window.innerWidth, window.innerHeight);
|
||||||
|
}
|
||||||
|
//
|
||||||
|
function onDocumentMouseMove(event) {
|
||||||
|
mouseX = event.clientX - windowHalfX;
|
||||||
|
mouseY = event.clientY - windowHalfY;
|
||||||
|
}
|
||||||
|
|
||||||
|
function onDocumentTouchStart(event) {
|
||||||
|
if (event.touches.length > 1) {
|
||||||
|
//event.preventDefault();
|
||||||
|
mouseX = event.touches[0].pageX - windowHalfX;
|
||||||
|
//mouseY = event.touches[ 0 ].pageY - windowHalfY;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function onDocumentTouchMove(event) {
|
||||||
|
if (event.touches.length == 1) {
|
||||||
|
//event.preventDefault();
|
||||||
|
mouseX = event.touches[0].pageX - windowHalfX;
|
||||||
|
//mouseY = event.touches[ 0 ].pageY - windowHalfY;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//
|
||||||
|
function animate() {
|
||||||
|
requestAnimationFrame(animate);
|
||||||
|
render();
|
||||||
|
}
|
||||||
|
|
||||||
|
function render() {
|
||||||
|
camera.position.x += (mouseX - camera.position.x) * .05;
|
||||||
|
camera.position.y += (-mouseY + 200 - camera.position.y) * .05;
|
||||||
|
camera.lookAt(scene.position);
|
||||||
|
renderer.render(scene, camera);
|
||||||
|
}
|
||||||
|
})
|
||||||
91
lib/three/src/three-waves.js
Normal file
@@ -0,0 +1,91 @@
|
|||||||
|
$(function () {
|
||||||
|
var SEPARATION = 100,
|
||||||
|
AMOUNTX = 50,
|
||||||
|
AMOUNTY = 50;
|
||||||
|
var container;
|
||||||
|
var camera, scene, renderer;
|
||||||
|
var particles, particle, count = 0;
|
||||||
|
var mouseX = 0,
|
||||||
|
mouseY = 0;
|
||||||
|
var windowHalfX = window.innerWidth / 2;
|
||||||
|
var windowHalfY = window.innerHeight / 2;
|
||||||
|
init();
|
||||||
|
animate();
|
||||||
|
|
||||||
|
function init() {
|
||||||
|
container = document.createElement("div");
|
||||||
|
container.style.position = "fixed";
|
||||||
|
container.style.top = "0px";
|
||||||
|
container.style.left = "0px";
|
||||||
|
container.style.zIndex = "-1";
|
||||||
|
container.style.opacity = "0.5";
|
||||||
|
document.body.appendChild(container);
|
||||||
|
camera = new THREE.PerspectiveCamera(75, window.innerWidth / window.innerHeight, 1, 10000);
|
||||||
|
camera.position.z = 1000;
|
||||||
|
scene = new THREE.Scene();
|
||||||
|
particles = new Array();
|
||||||
|
var PI2 = Math.PI * 2;
|
||||||
|
var material = new THREE.SpriteCanvasMaterial({
|
||||||
|
color: 10263708,
|
||||||
|
program: function (context) {
|
||||||
|
context.beginPath();
|
||||||
|
context.arc(0, 0, 0.5, 0, PI2, true);
|
||||||
|
context.fill()
|
||||||
|
}
|
||||||
|
});
|
||||||
|
var i = 0;
|
||||||
|
for (var ix = 0; ix < AMOUNTX; ix++) {
|
||||||
|
for (var iy = 0; iy < AMOUNTY; iy++) {
|
||||||
|
particle = particles[i++] = new THREE.Sprite(material);
|
||||||
|
particle.position.x = ix * SEPARATION - ((AMOUNTX * SEPARATION) / 2);
|
||||||
|
particle.position.z = iy * SEPARATION - ((AMOUNTY * SEPARATION) / 2);
|
||||||
|
scene.add(particle)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
renderer = new THREE.CanvasRenderer({
|
||||||
|
alpha: true
|
||||||
|
});
|
||||||
|
renderer.setPixelRatio(window.devicePixelRatio);
|
||||||
|
renderer.setSize(window.innerWidth, window.innerHeight);
|
||||||
|
container.appendChild(renderer.domElement);
|
||||||
|
document.addEventListener("mousemove", onDocumentMouseMove, false);
|
||||||
|
window.addEventListener("resize", onWindowResize, false)
|
||||||
|
}
|
||||||
|
|
||||||
|
function onWindowResize() {
|
||||||
|
windowHalfX = window.innerWidth / 2;
|
||||||
|
windowHalfY = window.innerHeight / 2;
|
||||||
|
camera.aspect = window.innerWidth / window.innerHeight;
|
||||||
|
camera.updateProjectionMatrix();
|
||||||
|
renderer.setSize(window.innerWidth, window.innerHeight)
|
||||||
|
}
|
||||||
|
|
||||||
|
function onDocumentMouseMove(event) {
|
||||||
|
mouseX = event.clientX - windowHalfX
|
||||||
|
}
|
||||||
|
|
||||||
|
function animate() {
|
||||||
|
requestAnimationFrame(animate);
|
||||||
|
render()
|
||||||
|
}
|
||||||
|
|
||||||
|
function render() {
|
||||||
|
camera.position.x += (mouseX - camera.position.x) * 0.05;
|
||||||
|
camera.position.y = 362.05;
|
||||||
|
camera.lookAt({
|
||||||
|
x: scene.position.x,
|
||||||
|
y: window.innerHeight / 3,
|
||||||
|
z: scene.position.z
|
||||||
|
});
|
||||||
|
var i = 0;
|
||||||
|
for (var ix = 0; ix < AMOUNTX; ix++) {
|
||||||
|
for (var iy = 0; iy < AMOUNTY; iy++) {
|
||||||
|
particle = particles[i++];
|
||||||
|
particle.position.y = (Math.sin((ix + count) * 0.3) * 50) + (Math.sin((iy + count) * 0.5) * 50);
|
||||||
|
particle.scale.x = particle.scale.y = (Math.sin((ix + count) * 0.3) + 1) * 4 + (Math.sin((iy + count) * 0.5) + 1) * 4
|
||||||
|
}
|
||||||
|
}
|
||||||
|
renderer.render(scene, camera);
|
||||||
|
count += 0.1
|
||||||
|
}
|
||||||
|
});
|
||||||
2
lib/three/three-waves.min.js
vendored
Normal file
859
lib/three/three.min.js
vendored
Normal file
4
lib/velocity/velocity.min.js
vendored
Normal file
2
lib/velocity/velocity.ui.min.js
vendored
Normal file
1
live2dw/assets/koharu.model.json
Normal file
@@ -0,0 +1 @@
|
|||||||
|
{"version":"Sample 1.0.0","model":"moc/koharu.moc","textures":["moc/koharu.2048/texture_00.png"],"motions":{"idle":[{"file":"mtn/idle.mtn"}],"":[{"file":"mtn/06.mtn"},{"file":"mtn/07.mtn"},{"file":"mtn/08.mtn"},{"file":"mtn/09.mtn"},{"file":"mtn/01.mtn"},{"file":"mtn/02.mtn"},{"file":"mtn/03.mtn"},{"file":"mtn/04.mtn"},{"file":"mtn/05.mtn"}]},"physics":"koharu.physics.json","name":"koharu"}
|
||||||
1
live2dw/assets/koharu.physics.json
Normal file
@@ -0,0 +1 @@
|
|||||||
|
{"type":"Live2D Physics","physics_hair":[{"label":"hair_front","setup":{"length":0.15,"regist":0.5,"mass":0.1},"src":[{"id":"PARAM_ANGLE_X","ptype":"x","scale":0.005,"weight":0.5},{"id":"PARAM_BODY_ANGLE_X","ptype":"x","scale":0.015,"weight":1},{"id":"PARAM_ANGLE_Z","ptype":"angle","scale":0.8,"weight":0.5},{"id":"PARAM_BODY_ANGLE_Z","ptype":"angle","scale":2.4,"weight":1}],"targets":[{"id":"PARAM_HAIR_FRONT","ptype":"angle","scale":0.022,"weight":1}]},{"label":"hair_side","setup":{"length":0.35,"regist":0.6,"mass":0.22},"src":[{"id":"PARAM_ANGLE_X","ptype":"x","scale":0.005,"weight":0.5},{"id":"PARAM_BODY_ANGLE_X","ptype":"x","scale":0.015,"weight":1},{"id":"PARAM_ANGLE_Z","ptype":"angle","scale":0.8,"weight":0.5},{"id":"PARAM_BODY_ANGLE_Z","ptype":"angle","scale":2.4,"weight":1}],"targets":[{"id":"PARAM_HAIR_SIDE","ptype":"angle","scale":0.022,"weight":1}]},{"label":"hair_back","setup":{"length":0.2,"regist":0.7,"mass":0.25},"src":[{"id":"PARAM_ANGLE_X","ptype":"x","scale":0.005,"weight":0.5},{"id":"PARAM_BODY_ANGLE_X","ptype":"x","scale":0.012,"weight":1},{"id":"PARAM_ANGLE_Z","ptype":"angle","scale":0.8,"weight":0.5},{"id":"PARAM_BODY_ANGLE_Z","ptype":"angle","scale":2,"weight":1}],"targets":[{"id":"PARAM_HAIR_BACK","ptype":"angle","scale":0.022,"weight":1}]},{"label":"SKIRT","setup":{"length":0.1,"regist":0.8,"mass":0.2},"src":[{"id":"PARAM_BODY_ANGLE_X","ptype":"x","scale":0.015,"weight":1},{"id":"PARAM_ANGLE_Z","ptype":"angle","scale":2.4,"weight":1},{"id":"PARAM_BODY_ANGLE_Y","ptype":"y","scale":0.01,"weight":1}],"targets":[{"id":"PARAM_SKIRT","ptype":"angle","scale":0.022,"weight":1}]},{"label":"TIE","setup":{"length":0.2,"regist":0.7,"mass":0.05},"src":[{"id":"PARAM_BODY_ANGLE_X","ptype":"x","scale":0.015,"weight":1},{"id":"PARAM_ANGLE_Z","ptype":"angle","scale":2.4,"weight":1},{"id":"PARAM_BODY_ANGLE_Y","ptype":"y","scale":0.01,"weight":1}],"targets":[{"id":"PARAM_NECKTIE","ptype":"angle","scale":0.022,"weight":1}]}]}
|
||||||
BIN
live2dw/assets/moc/koharu.2048/texture_00.png
Normal file
|
After Width: | Height: | Size: 257 KiB |
BIN
live2dw/assets/moc/koharu.moc
Normal file
63
live2dw/assets/mtn/01.mtn
Normal file
@@ -0,0 +1,63 @@
|
|||||||
|
# Live2D Animator Motion Data
|
||||||
|
$fps=30
|
||||||
|
|
||||||
|
$fadein=500
|
||||||
|
|
||||||
|
$fadeout=500
|
||||||
|
|
||||||
|
$fadein:PARAM_HAND_SWITCH_L=0
|
||||||
|
|
||||||
|
$fadeout:PARAM_HAND_SWITCH_L=0
|
||||||
|
|
||||||
|
$fadein:PARAM_HAND_SWITCH_R=0
|
||||||
|
|
||||||
|
$fadeout:PARAM_HAND_SWITCH_R=0
|
||||||
|
|
||||||
|
PARAM_ANGLE_X=0,-0.016,-0.06,-0.14,-0.24,-0.36,-0.5,-0.66,-0.84,-1.03,-1.24,-1.45,-1.66,-1.89,-2.12,-2.35,-2.59,-2.82,-3.05,-3.27,-3.49,-3.7,-3.9,-4.08,-4.26,-4.42,-4.56,-4.69,-4.8,-4.88,-4.95,-4.99,-5,-4.94,-4.78,-4.51,-4.15,-3.7,-3.17,-2.57,-1.9,-1.18,-0.4,0.41,1.27,2.15,3.06,3.98,4.92,5.85,6.77,7.7,8.6,9.47,10.32,11.12,11.89,12.6,13.27,13.87,14.4,14.87,15.26,15.58,15.81,15.95,16,15.89,15.6,15.12,14.48,13.72,12.86,11.88,10.87,9.79,8.69,7.58,6.51,5.44,4.44,3.49,2.64,1.88,1.23,0.71,0.32,0.08,0
|
||||||
|
|
||||||
|
PARAM_ANGLE_Y=0,0.2,0.77,1.67,2.81,4.16,5.64,7.2,8.8,10.36,11.84,13.19,14.33,15.23,15.8,16,15.6,14.52,12.87,10.82,8.46,5.88,3.12,0.37,-2.43,-5.08,-7.59,-9.91,-11.95,-13.62,-14.9,-15.71,-16,-15.72,-14.98,-13.85,-12.44,-10.81,-9.04,-7.15,-5.26,-3.33,-1.51,0.22,1.81,3.21,4.36,5.24,5.8,6,5.54,4.34,2.48,0.18,-2.49,-5.39,-8.49,-11.58,-14.73,-17.71,-20.54,-23.14,-25.44,-27.32,-28.76,-29.68,-30,-29.8,-29.24,-28.34,-27.15,-25.73,-24.11,-22.27,-20.38,-18.36,-16.29,-14.21,-12.2,-10.2,-8.32,-6.55,-4.95,-3.53,-2.3,-1.33,-0.6,-0.15,0
|
||||||
|
|
||||||
|
PARAM_ANGLE_Z=0,-0.03,-0.1,-0.22,-0.38,-0.58,-0.8,-1.06,-1.35,-1.65,-1.98,-2.31,-2.66,-3.02,-3.39,-3.77,-4.14,-4.51,-4.87,-5.23,-5.58,-5.91,-6.23,-6.53,-6.82,-7.07,-7.3,-7.51,-7.68,-7.81,-7.92,-7.98,-8,-7.95,-7.82,-7.6,-7.31,-6.95,-6.52,-6.03,-5.49,-4.91,-4.28,-3.62,-2.92,-2.21,-1.48,-0.73,0.03,0.79,1.53,2.28,3.01,3.71,4.4,5.05,5.67,6.25,6.79,7.28,7.71,8.09,8.4,8.66,8.85,8.96,9,8.94,8.77,8.5,8.15,7.72,7.23,6.68,6.12,5.51,4.89,4.26,3.66,3.06,2.5,1.96,1.49,1.06,0.69,0.4,0.18,0.05,0
|
||||||
|
|
||||||
|
PARAM_EYE_L_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0.18,0.46,0.73,0.92,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
|
||||||
|
|
||||||
|
PARAM_EYE_L_SMILE=0
|
||||||
|
|
||||||
|
PARAM_EYE_R_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0.18,0.46,0.73,0.92,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
|
||||||
|
|
||||||
|
PARAM_EYE_R_SMILE=0
|
||||||
|
|
||||||
|
PARAM_EYE_BALL_X=0,0,0.003,0.006,0.01,0.016,0.022,0.029,0.037,0.045,0.054,0.064,0.073,0.083,0.093,0.104,0.114,0.124,0.134,0.144,0.153,0.163,0.171,0.18,0.187,0.194,0.201,0.206,0.211,0.215,0.218,0.219,0.22,0.218,0.211,0.199,0.184,0.164,0.14,0.12,0.09,0.06,0.02,-0.01,-0.05,-0.09,-0.13,-0.16,-0.2,-0.25,-0.28,-0.32,-0.36,-0.4,-0.44,-0.47,-0.5,-0.53,-0.56,-0.59,-0.61,-0.632,-0.648,-0.662,-0.672,-0.678,-0.68,-0.675,-0.663,-0.642,-0.62,-0.58,-0.55,-0.5,-0.46,-0.42,-0.37,-0.32,-0.28,-0.23,-0.19,-0.15,-0.11,-0.08,-0.05,-0.03,-0.014,-0.003,0
|
||||||
|
|
||||||
|
PARAM_EYE_BALL_Y=0,0,0,0.002,0.003,0.005,0.007,0.01,0.014,0.018,0.022,0.027,0.032,0.039,0.045,0.053,0.061,0.069,0.079,0.089,0.099,0.111,0.123,0.136,0.15,0.164,0.18,0.196,0.213,0.231,0.25,0.269,0.29,0.31,0.33,0.36,0.38,0.4,0.42,0.441,0.46,0.481,0.5,0.518,0.537,0.554,0.571,0.588,0.603,0.618,0.633,0.646,0.659,0.671,0.683,0.693,0.703,0.712,0.719,0.727,0.733,0.738,0.742,0.746,0.748,0.75,0.75,0.745,0.731,0.71,0.68,0.64,0.6,0.56,0.51,0.46,0.41,0.36,0.31,0.25,0.21,0.16,0.12,0.09,0.06,0.03,0.015,0.004,0
|
||||||
|
|
||||||
|
PARAM_EYE_SIZE=0
|
||||||
|
|
||||||
|
PARAM_EYE_HI=1
|
||||||
|
|
||||||
|
PARAM_EYE_01=1,1.07,1.25,1.47,1.68,1.85,1.96,2,1.91,1.69,1.43,1.17,0.96,0.82,0.78,0.87,1.09,1.35,1.61,1.82,1.96,2,1.91,1.69,1.43,1.17,0.96,0.82,0.78,0.87,1.09,1.35,1.61,1.82,1.96,2,1.91,1.69,1.43,1.17,0.96,0.82,0.78,0.87,1.09,1.35,1.61,1.82,1.96,2,1.91,1.69,1.43,1.17,0.96,0.82,0.78,0.87,1.09,1.35,1.61,1.82,1.96,2,1.91,1.69,1.43,1.17,0.96,0.82,0.78,0.87,1.09,1.35,1.61,1.82,1.96,2,1.93,1.75,1.53,1.32,1.15,1.04,1,1,1,1,1
|
||||||
|
|
||||||
|
PARAM_TEAR_L=0
|
||||||
|
|
||||||
|
PARAM_TEAR_R=0
|
||||||
|
|
||||||
|
PARAM_BROW_L_Y=0
|
||||||
|
|
||||||
|
PARAM_BROW_R_Y=0
|
||||||
|
|
||||||
|
PARAM_BROW_L_X=0
|
||||||
|
|
||||||
|
PARAM_BROW_R_X=0
|
||||||
|
|
||||||
|
PARAM_BROW_L_ANGLE=0
|
||||||
|
|
||||||
|
PARAM_BROW_R_ANGLE=0
|
||||||
|
|
||||||
|
PARAM_BROW_L_FORM=-1
|
||||||
|
|
||||||
|
PARAM_BROW_R_FORM=-1
|
||||||
|
|
||||||
|
PARAM_MOUTH_FORM=1
|
||||||
|
|
||||||
|
PARAM_MOUTH_OPEN_Y=1
|
||||||
|
|
||||||
63
live2dw/assets/mtn/02.mtn
Normal file
@@ -0,0 +1,63 @@
|
|||||||
|
# Live2D Animator Motion Data
|
||||||
|
$fps=30
|
||||||
|
|
||||||
|
$fadein=500
|
||||||
|
|
||||||
|
$fadeout=500
|
||||||
|
|
||||||
|
$fadein:PARAM_HAND_SWITCH_L=0
|
||||||
|
|
||||||
|
$fadeout:PARAM_HAND_SWITCH_L=0
|
||||||
|
|
||||||
|
$fadein:PARAM_HAND_SWITCH_R=0
|
||||||
|
|
||||||
|
$fadeout:PARAM_HAND_SWITCH_R=0
|
||||||
|
|
||||||
|
PARAM_ANGLE_X=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.38,-1.39,-2.93,-4.85,-7.07,-9.49,-12.07,-14.65,-17.28,-19.76,-22.12,-24.29,-26.2,-27.77,-28.97,-29.73,-30,-29.81,-29.26,-28.39,-27.28,-25.92,-24.41,-22.74,-20.96,-19.08,-17.19,-15.24,-13.31,-11.43,-9.57,-7.84,-6.22,-4.72,-3.38,-2.23,-1.29,-0.59,-0.15,0,-0.18,-0.69,-1.47,-2.51,-3.74,-5.12,-6.63,-8.19,-9.79,-11.4,-12.95,-14.4,-15.76,-16.96,-18.01,-18.85,-19.48,-19.87,-20,-19.89,-19.59,-19.12,-18.48,-17.71,-16.82,-15.86,-14.81,-13.7,-12.56,-11.44,-10.3,-9.19,-8.14,-7.18,-6.29,-5.52,-4.88,-4.41,-4.11,-4,-4.03,-4.1,-4.21,-4.35,-4.51,-4.68,-4.84,-5,-5.14,-5.25,-5.32,-5.35,-5.35,-5.35,-5.35,-5.35,-5.35,-5.35,-5.35,-5.35,-5.35,-5.35,-5.35,-5.35
|
||||||
|
|
||||||
|
PARAM_ANGLE_Y=0,0.16,0.63,1.35,2.28,3.38,4.58,5.85,7.15,8.42,9.62,10.72,11.65,12.37,12.84,13,12.46,11.01,8.8,6.04,2.86,-0.61,-4.3,-8,-11.76,-15.32,-18.7,-21.81,-24.55,-26.8,-28.52,-29.62,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30
|
||||||
|
|
||||||
|
PARAM_ANGLE_Z=0,0.04,0.14,0.31,0.53,0.78,1.06,1.35,1.65,1.94,2.22,2.47,2.69,2.86,2.96,3,2.8,2.26,1.44,0.41,-0.77,-2.06,-3.44,-4.81,-6.21,-7.54,-8.8,-9.95,-10.97,-11.81,-12.45,-12.86,-13,-12.95,-12.8,-12.57,-12.28,-11.91,-11.51,-11.06,-10.59,-10.09,-9.58,-9.06,-8.55,-8.05,-7.55,-7.09,-6.66,-6.26,-5.9,-5.59,-5.34,-5.16,-5.04,-5,-5.07,-5.28,-5.59,-6.01,-6.5,-7.05,-7.65,-8.28,-8.92,-9.56,-10.18,-10.76,-11.3,-11.78,-12.2,-12.54,-12.79,-12.95,-13,-12.97,-12.9,-12.78,-12.62,-12.43,-12.2,-11.96,-11.7,-11.42,-11.14,-10.86,-10.58,-10.3,-10.04,-9.8,-9.57,-9.38,-9.22,-9.1,-9.03,-9,-9.03,-9.09,-9.2,-9.33,-9.48,-9.64,-9.8,-9.94,-10.08,-10.18,-10.25,-10.27,-10.27,-10.27,-10.27,-10.27,-10.27,-10.27,-10.27,-10.27,-10.27,-10.27,-10.27,-10.27
|
||||||
|
|
||||||
|
PARAM_EYE_L_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0.14,0.36,0.57,0.72,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.59,0.28,0.07,0,0,0,0.14,0.36,0.57,0.72,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78
|
||||||
|
|
||||||
|
PARAM_EYE_L_SMILE=0
|
||||||
|
|
||||||
|
PARAM_EYE_R_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0.14,0.35,0.56,0.7,0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.58,0.27,0.07,0,0,0,0.14,0.35,0.56,0.7,0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.76
|
||||||
|
|
||||||
|
PARAM_EYE_R_SMILE=0
|
||||||
|
|
||||||
|
PARAM_EYE_BALL_X=0,0.003,0.011,0.023,0.039,0.059,0.08,0.11,0.13,0.16,0.19,0.21,0.24,0.27,0.29,0.31,0.328,0.342,0.354,0.363,0.369,0.374,0.377,0.379,0.38,0.38,0.38,0.38,-0.27,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52
|
||||||
|
|
||||||
|
PARAM_EYE_BALL_Y=0,0,-0.002,-0.005,-0.009,-0.015,-0.022,-0.032,-0.044,-0.059,-0.076,-0.1,-0.12,-0.15,-0.18,-0.21,-0.25,-0.28,-0.32,-0.36,-0.39,-0.43,-0.46,-0.49,-0.51,-0.526,-0.536,-0.54,-0.51,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5
|
||||||
|
|
||||||
|
PARAM_EYE_SIZE=0
|
||||||
|
|
||||||
|
PARAM_EYE_HI=1
|
||||||
|
|
||||||
|
PARAM_EYE_01=0
|
||||||
|
|
||||||
|
PARAM_TEAR_L=0
|
||||||
|
|
||||||
|
PARAM_TEAR_R=0
|
||||||
|
|
||||||
|
PARAM_BROW_L_Y=-1
|
||||||
|
|
||||||
|
PARAM_BROW_R_Y=-1
|
||||||
|
|
||||||
|
PARAM_BROW_L_X=-1
|
||||||
|
|
||||||
|
PARAM_BROW_R_X=-1
|
||||||
|
|
||||||
|
PARAM_BROW_L_ANGLE=-0.43
|
||||||
|
|
||||||
|
PARAM_BROW_R_ANGLE=-0.45
|
||||||
|
|
||||||
|
PARAM_BROW_L_FORM=-1
|
||||||
|
|
||||||
|
PARAM_BROW_R_FORM=-1
|
||||||
|
|
||||||
|
PARAM_MOUTH_FORM=-1
|
||||||
|
|
||||||
|
PARAM_MOUTH_OPEN_Y=0
|
||||||
|
|
||||||
63
live2dw/assets/mtn/03.mtn
Normal file
@@ -0,0 +1,63 @@
|
|||||||
|
# Live2D Animator Motion Data
|
||||||
|
$fps=30
|
||||||
|
|
||||||
|
$fadein=500
|
||||||
|
|
||||||
|
$fadeout=500
|
||||||
|
|
||||||
|
$fadein:PARAM_HAND_SWITCH_L=0
|
||||||
|
|
||||||
|
$fadeout:PARAM_HAND_SWITCH_L=0
|
||||||
|
|
||||||
|
$fadein:PARAM_HAND_SWITCH_R=0
|
||||||
|
|
||||||
|
$fadeout:PARAM_HAND_SWITCH_R=0
|
||||||
|
|
||||||
|
PARAM_ANGLE_X=0,0.04,0.14,0.31,0.54,0.81,1.14,1.5,1.9,2.33,2.79,3.26,3.75,4.25,4.75,5.25,5.74,6.21,6.67,7.1,7.5,7.86,8.19,8.46,8.69,8.86,8.96,9,9,9,9,9,9,9,9,9,9,8.89,8.57,8.05,7.36,6.54,5.56,4.47,3.31,2.04,0.71,-0.62,-2,-3.38,-4.71,-6.04,-7.31,-8.47,-9.56,-10.54,-11.36,-12.05,-12.57,-12.89,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13
|
||||||
|
|
||||||
|
PARAM_ANGLE_Y=0,0.34,1.25,2.66,4.42,6.38,8.5,10.62,12.58,14.34,15.75,16.66,17,16.32,14.5,11.76,8.33,4.53,0.5,-3.46,-7.17,-10.44,-13.2,-15.27,-16.56,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-16.44,-14.94,-12.63,-9.72,-6.49,-3,0.49,3.72,6.63,8.94,10.44,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11
|
||||||
|
|
||||||
|
PARAM_ANGLE_Z=0,0.1,0.4,0.86,1.45,2.17,2.98,3.87,4.82,5.82,6.83,7.87,8.9,9.91,10.89,11.82,12.68,13.48,14.2,14.81,15.31,15.69,15.92,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16.24,16.62,16.97,17.22,17.32,16.88,15.69,13.87,11.61,9,6.15,3.11,0.08,-3.02,-5.94,-8.72,-11.27,-13.53,-15.37,-16.78,-17.68,-18,-17.93,-17.77,-17.57,-17.37,-17.18,-17.02,-16.92,-16.88,-16.88,-16.88,-16.88,-16.88,-16.88,-16.88,-16.88,-16.88,-16.88,-16.88,-16.88,-16.88,-16.88,-16.88,-16.88,-16.88,-16.88,-16.88,-16.88,-16.88,-16.88
|
||||||
|
|
||||||
|
PARAM_EYE_L_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0.18,0.46,0.73,0.92,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0.18,0.46,0.73,0.92,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
|
||||||
|
|
||||||
|
PARAM_EYE_L_SMILE=0
|
||||||
|
|
||||||
|
PARAM_EYE_R_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0.18,0.46,0.73,0.92,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0.18,0.46,0.73,0.92,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
|
||||||
|
|
||||||
|
PARAM_EYE_R_SMILE=0
|
||||||
|
|
||||||
|
PARAM_EYE_BALL_X=0,-0.003,-0.012,-0.025,-0.044,-0.07,-0.09,-0.12,-0.15,-0.19,-0.22,-0.25,-0.29,-0.33,-0.36,-0.4,-0.43,-0.46,-0.49,-0.51,-0.53,-0.554,-0.569,-0.581,-0.588,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.89,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1
|
||||||
|
|
||||||
|
PARAM_EYE_BALL_Y=0,0.005,0.02,0.04,0.07,0.11,0.16,0.2,0.26,0.31,0.37,0.43,0.49,0.55,0.61,0.67,0.73,0.78,0.82,0.87,0.91,0.94,0.96,0.984,0.996,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
|
||||||
|
|
||||||
|
PARAM_EYE_SIZE=0
|
||||||
|
|
||||||
|
PARAM_EYE_HI=1
|
||||||
|
|
||||||
|
PARAM_EYE_01=0
|
||||||
|
|
||||||
|
PARAM_TEAR_L=0
|
||||||
|
|
||||||
|
PARAM_TEAR_R=0
|
||||||
|
|
||||||
|
PARAM_BROW_L_Y=-1
|
||||||
|
|
||||||
|
PARAM_BROW_R_Y=-1
|
||||||
|
|
||||||
|
PARAM_BROW_L_X=-1
|
||||||
|
|
||||||
|
PARAM_BROW_R_X=-1
|
||||||
|
|
||||||
|
PARAM_BROW_L_ANGLE=0.38
|
||||||
|
|
||||||
|
PARAM_BROW_R_ANGLE=0.36
|
||||||
|
|
||||||
|
PARAM_BROW_L_FORM=-1
|
||||||
|
|
||||||
|
PARAM_BROW_R_FORM=-1
|
||||||
|
|
||||||
|
PARAM_MOUTH_FORM=-1
|
||||||
|
|
||||||
|
PARAM_MOUTH_OPEN_Y=0
|
||||||
|
|
||||||
63
live2dw/assets/mtn/04.mtn
Normal file
@@ -0,0 +1,63 @@
|
|||||||
|
# Live2D Animator Motion Data
|
||||||
|
$fps=30
|
||||||
|
|
||||||
|
$fadein=500
|
||||||
|
|
||||||
|
$fadeout=500
|
||||||
|
|
||||||
|
$fadein:PARAM_HAND_SWITCH_L=0
|
||||||
|
|
||||||
|
$fadeout:PARAM_HAND_SWITCH_L=0
|
||||||
|
|
||||||
|
$fadein:PARAM_HAND_SWITCH_R=0
|
||||||
|
|
||||||
|
$fadeout:PARAM_HAND_SWITCH_R=0
|
||||||
|
|
||||||
|
PARAM_ANGLE_X=0
|
||||||
|
|
||||||
|
PARAM_ANGLE_Y=0,-1.31,-4.14,-7.68,-11.34,-14.69,-17.47,-19.31,-20,-19.36,-17.74,-15.56,-13,-10.35,-7.73,-5.25,-3.17,-1.49,-0.4,0,-0.76,-2.74,-5.61,-8.88,-12.29,-15.46,-18.17,-20.24,-21.54,-22,-21.24,-19.21,-16.28,-12.8,-9.2,-5.72,-2.79,-0.76,0,-0.4,-1.47,-3.13,-5.2,-7.5,-10,-12.5,-14.8,-16.88,-18.53,-19.6,-20,-19.36,-17.74,-15.56,-13,-10.35,-7.73,-5.25,-3.17,-1.49,-0.4,0,-0.76,-2.74,-5.61,-8.88,-12.29,-15.46,-18.17,-20.24,-21.54,-22,-21.24,-19.21,-16.28,-12.8,-9.2,-5.72,-2.79,-0.76,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
|
||||||
|
|
||||||
|
PARAM_ANGLE_Z=0
|
||||||
|
|
||||||
|
PARAM_EYE_L_OPEN=0
|
||||||
|
|
||||||
|
PARAM_EYE_L_SMILE=1
|
||||||
|
|
||||||
|
PARAM_EYE_R_OPEN=0
|
||||||
|
|
||||||
|
PARAM_EYE_R_SMILE=1
|
||||||
|
|
||||||
|
PARAM_EYE_BALL_X=0
|
||||||
|
|
||||||
|
PARAM_EYE_BALL_Y=0
|
||||||
|
|
||||||
|
PARAM_EYE_SIZE=0
|
||||||
|
|
||||||
|
PARAM_EYE_HI=1
|
||||||
|
|
||||||
|
PARAM_EYE_01=0
|
||||||
|
|
||||||
|
PARAM_TEAR_L=0
|
||||||
|
|
||||||
|
PARAM_TEAR_R=0
|
||||||
|
|
||||||
|
PARAM_BROW_L_Y=0
|
||||||
|
|
||||||
|
PARAM_BROW_R_Y=0
|
||||||
|
|
||||||
|
PARAM_BROW_L_X=0
|
||||||
|
|
||||||
|
PARAM_BROW_R_X=0
|
||||||
|
|
||||||
|
PARAM_BROW_L_ANGLE=0
|
||||||
|
|
||||||
|
PARAM_BROW_R_ANGLE=0
|
||||||
|
|
||||||
|
PARAM_BROW_L_FORM=0
|
||||||
|
|
||||||
|
PARAM_BROW_R_FORM=0
|
||||||
|
|
||||||
|
PARAM_MOUTH_FORM=1
|
||||||
|
|
||||||
|
PARAM_MOUTH_OPEN_Y=1
|
||||||
|
|
||||||
65
live2dw/assets/mtn/05.mtn
Normal file
@@ -0,0 +1,65 @@
|
|||||||
|
# Live2D Animator Motion Data
|
||||||
|
$fps=30
|
||||||
|
|
||||||
|
$fadein=500
|
||||||
|
|
||||||
|
$fadeout=500
|
||||||
|
|
||||||
|
$fadeout:PARAM_TEAR_L=0
|
||||||
|
|
||||||
|
$fadeout:PARAM_TEAR_R=0
|
||||||
|
|
||||||
|
$fadein:PARAM_HAND_SWITCH_L=0
|
||||||
|
|
||||||
|
$fadeout:PARAM_HAND_SWITCH_L=0
|
||||||
|
|
||||||
|
$fadein:PARAM_HAND_SWITCH_R=0
|
||||||
|
|
||||||
|
$fadeout:PARAM_HAND_SWITCH_R=0
|
||||||
|
|
||||||
|
PARAM_ANGLE_X=0
|
||||||
|
|
||||||
|
PARAM_ANGLE_Y=0,0.38,1.4,2.97,4.94,7.13,9.5,11.87,14.06,16.03,17.6,18.62,19,18.02,15.4,11.34,6.25,0.61,-5.5,-11.61,-17.25,-22.34,-26.4,-29.02,-30,-29.69,-28.83,-27.42,-25.56,-23.29,-20.69,-17.71,-14.55,-11.18,-7.66,-4.12,-0.44,3.16,6.72,10.19,13.53,16.61,19.48,22.09,24.38,26.34,27.9,29.05,29.76,30,29.64,28.62,27.06,24.97,22.52,19.75,16.74,13.62,10.41,7.2,4.1,1.2,-1.52,-3.92,-6.02,-7.71,-8.95,-9.73,-10,-9.89,-9.58,-9.07,-8.38,-7.53,-6.52,-5.37,-4.1,-2.73,-1.25,0.3,1.95,3.63,5.35,7.11,8.89,10.67,12.43,14.19,15.9,17.56,19.18,20.7,22.17,23.53,24.79,25.94,26.96,27.85,28.6,29.2,29.64,29.91,30,29.53,28.21,26.13,23.41,20.22,16.54,12.54,8.32,4,-0.32,-4.54,-8.54,-12.22,-15.41,-18.13,-20.21,-21.53,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22
|
||||||
|
|
||||||
|
PARAM_ANGLE_Z=0
|
||||||
|
|
||||||
|
PARAM_EYE_L_OPEN=0
|
||||||
|
|
||||||
|
PARAM_EYE_L_SMILE=0.73
|
||||||
|
|
||||||
|
PARAM_EYE_R_OPEN=0
|
||||||
|
|
||||||
|
PARAM_EYE_R_SMILE=0.73
|
||||||
|
|
||||||
|
PARAM_EYE_BALL_X=0
|
||||||
|
|
||||||
|
PARAM_EYE_BALL_Y=0
|
||||||
|
|
||||||
|
PARAM_EYE_SIZE=0
|
||||||
|
|
||||||
|
PARAM_EYE_HI=1
|
||||||
|
|
||||||
|
PARAM_EYE_01=0
|
||||||
|
|
||||||
|
PARAM_TEAR_L=0,0.007,0.025,0.06,0.09,0.14,0.2,0.26,0.32,0.39,0.46,0.53,0.59,0.66,0.72,0.78,0.83,0.88,0.92,0.96,0.98,0.995,1,1,1,1,1,1,1,1,1,1.013,1.05,1.11,1.19,1.29,1.4,1.52,1.65,1.79,1.93,2.07,2.21,2.35,2.48,2.6,2.71,2.81,2.89,2.95,2.99,3,0,0.02,0.08,0.17,0.28,0.43,0.59,0.77,0.96,1.16,1.37,1.58,1.78,1.98,2.17,2.35,2.5,2.65,2.77,2.87,2.94,2.98,3,3,3,3,3,3,3,3,0,0.02,0.08,0.17,0.28,0.43,0.59,0.77,0.96,1.16,1.37,1.58,1.78,1.98,2.17,2.35,2.5,2.65,2.77,2.87,2.94,2.98,3,3,3,0,0.03,0.1,0.22,0.38,0.56,0.77,0.99,1.23,1.47,1.71,1.94,2.16,2.36,2.54,2.7,2.83,2.92,2.98,3,0,0,0,0,0,0,0,0,0,0
|
||||||
|
|
||||||
|
PARAM_TEAR_R=0,0,0.003,0.008,0.015,0.025,0.039,0.057,0.08,0.1,0.14,0.17,0.22,0.26,0.32,0.38,0.45,0.52,0.6,0.69,0.79,0.89,1,1.14,1.29,1.46,1.63,1.81,1.98,2.15,2.31,2.45,2.59,2.71,2.81,2.89,2.95,2.99,3,0,0.012,0.05,0.1,0.18,0.27,0.38,0.5,0.63,0.77,0.92,1.08,1.24,1.4,1.56,1.72,1.88,2.03,2.18,2.32,2.45,2.57,2.68,2.77,2.85,2.91,2.96,2.99,3,3,0,0.012,0.05,0.1,0.18,0.27,0.38,0.5,0.63,0.77,0.92,1.08,1.24,1.4,1.56,1.72,1.88,2.03,2.18,2.32,2.45,2.57,2.68,2.77,2.85,2.91,2.96,2.99,3,3,0,0.012,0.05,0.1,0.18,0.27,0.38,0.5,0.63,0.77,0.92,1.08,1.24,1.4,1.56,1.72,1.88,2.03,2.18,2.32,2.45,2.57,2.68,2.77,2.85,2.91,2.96,2.99,3,0,0,0,0,0,0,0,0,0
|
||||||
|
|
||||||
|
PARAM_BROW_L_Y=-1
|
||||||
|
|
||||||
|
PARAM_BROW_R_Y=-1
|
||||||
|
|
||||||
|
PARAM_BROW_L_X=-1
|
||||||
|
|
||||||
|
PARAM_BROW_R_X=-1
|
||||||
|
|
||||||
|
PARAM_BROW_L_ANGLE=0
|
||||||
|
|
||||||
|
PARAM_BROW_R_ANGLE=0
|
||||||
|
|
||||||
|
PARAM_BROW_L_FORM=-1
|
||||||
|
|
||||||
|
PARAM_BROW_R_FORM=-1
|
||||||
|
|
||||||
|
PARAM_MOUTH_FORM=-1
|
||||||
|
|
||||||
63
live2dw/assets/mtn/06.mtn
Normal file
@@ -0,0 +1,63 @@
|
|||||||
|
# Live2D Animator Motion Data
|
||||||
|
$fps=30
|
||||||
|
|
||||||
|
$fadein=500
|
||||||
|
|
||||||
|
$fadeout=500
|
||||||
|
|
||||||
|
$fadein:PARAM_HAND_SWITCH_L=0
|
||||||
|
|
||||||
|
$fadeout:PARAM_HAND_SWITCH_L=0
|
||||||
|
|
||||||
|
$fadein:PARAM_HAND_SWITCH_R=0
|
||||||
|
|
||||||
|
$fadeout:PARAM_HAND_SWITCH_R=0
|
||||||
|
|
||||||
|
PARAM_ANGLE_X=0,0.06,0.23,0.5,0.85,1.29,1.79,2.33,2.92,3.54,4.18,4.82,5.46,6.08,6.67,7.21,7.71,8.15,8.5,8.77,8.94,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,8.92,8.69,8.33,7.86,7.31,6.67,5.98,5.25,4.5,3.75,3.02,2.33,1.69,1.14,0.67,0.31,0.08,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.03,-0.13,-0.28,-0.47,-0.7,-0.96,-1.23,-1.52,-1.81,-2.11,-2.4,-2.68,-2.95,-3.2,-3.43,-3.62,-3.78,-3.9,-3.97,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-3.95,-3.82,-3.61,-3.35,-3.06,-2.73,-2.39,-2.05,-1.7,-1.37,-1.05,-0.76,-0.51,-0.3,-0.14,-0.04,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
|
||||||
|
|
||||||
|
PARAM_ANGLE_Y=0,-0.15,-0.57,-1.21,-2.09,-3.15,-4.37,-5.69,-7.14,-8.66,-10.23,-11.77,-13.34,-14.86,-16.31,-17.63,-18.85,-19.91,-20.79,-21.43,-21.85,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-21.8,-21.24,-20.36,-19.21,-17.86,-16.31,-14.61,-12.83,-11,-9.17,-7.39,-5.69,-4.14,-2.79,-1.64,-0.76,-0.2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.14,-0.53,-1.13,-1.9,-2.81,-3.83,-4.93,-6.07,-7.25,-8.45,-9.61,-10.74,-11.82,-12.8,-13.71,-14.48,-15.12,-15.59,-15.89,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-15.8,-15.26,-14.44,-13.41,-12.23,-10.94,-9.56,-8.19,-6.79,-5.46,-4.2,-3.05,-2.03,-1.19,-0.55,-0.14,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
|
||||||
|
|
||||||
|
PARAM_ANGLE_Z=0,0.04,0.15,0.33,0.57,0.86,1.19,1.55,1.95,2.36,2.79,3.21,3.64,4.05,4.45,4.81,5.14,5.43,5.67,5.85,5.96,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,5.95,5.79,5.55,5.24,4.87,4.45,3.99,3.5,3,2.5,2.01,1.55,1.13,0.76,0.45,0.21,0.05,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.16,-0.6,-1.27,-2.14,-3.16,-4.31,-5.55,-6.83,-8.16,-9.5,-10.81,-12.08,-13.29,-14.4,-15.42,-16.29,-17.01,-17.54,-17.88,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-17.77,-17.17,-16.24,-15.09,-13.76,-12.3,-10.76,-9.21,-7.63,-6.14,-4.73,-3.43,-2.28,-1.34,-0.62,-0.16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
|
||||||
|
|
||||||
|
PARAM_EYE_L_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0.18,0.46,0.73,0.92,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0.18,0.46,0.73,0.92,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0.18,0.46,0.73,0.92,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0.18,0.46,0.73,0.92,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0.18,0.46,0.73,0.92,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
|
||||||
|
|
||||||
|
PARAM_EYE_L_SMILE=0
|
||||||
|
|
||||||
|
PARAM_EYE_R_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0.18,0.46,0.73,0.92,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0.18,0.46,0.73,0.92,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0.18,0.46,0.73,0.92,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0.18,0.46,0.73,0.92,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0.18,0.46,0.73,0.92,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
|
||||||
|
|
||||||
|
PARAM_EYE_R_SMILE=0
|
||||||
|
|
||||||
|
PARAM_EYE_BALL_X=0
|
||||||
|
|
||||||
|
PARAM_EYE_BALL_Y=0
|
||||||
|
|
||||||
|
PARAM_EYE_SIZE=0
|
||||||
|
|
||||||
|
PARAM_EYE_HI=1
|
||||||
|
|
||||||
|
PARAM_EYE_01=0
|
||||||
|
|
||||||
|
PARAM_TEAR_L=0
|
||||||
|
|
||||||
|
PARAM_TEAR_R=0
|
||||||
|
|
||||||
|
PARAM_BROW_L_Y=0
|
||||||
|
|
||||||
|
PARAM_BROW_R_Y=0
|
||||||
|
|
||||||
|
PARAM_BROW_L_X=0
|
||||||
|
|
||||||
|
PARAM_BROW_R_X=0
|
||||||
|
|
||||||
|
PARAM_BROW_L_ANGLE=0
|
||||||
|
|
||||||
|
PARAM_BROW_R_ANGLE=0
|
||||||
|
|
||||||
|
PARAM_BROW_L_FORM=0
|
||||||
|
|
||||||
|
PARAM_BROW_R_FORM=0
|
||||||
|
|
||||||
|
PARAM_MOUTH_FORM=1
|
||||||
|
|
||||||
|
PARAM_MOUTH_OPEN_Y=0
|
||||||
|
|
||||||
63
live2dw/assets/mtn/07.mtn
Normal file
@@ -0,0 +1,63 @@
|
|||||||
|
# Live2D Animator Motion Data
|
||||||
|
$fps=30
|
||||||
|
|
||||||
|
$fadein=500
|
||||||
|
|
||||||
|
$fadeout=500
|
||||||
|
|
||||||
|
$fadein:PARAM_HAND_SWITCH_L=0
|
||||||
|
|
||||||
|
$fadeout:PARAM_HAND_SWITCH_L=0
|
||||||
|
|
||||||
|
$fadein:PARAM_HAND_SWITCH_R=0
|
||||||
|
|
||||||
|
$fadeout:PARAM_HAND_SWITCH_R=0
|
||||||
|
|
||||||
|
PARAM_ANGLE_X=0
|
||||||
|
|
||||||
|
PARAM_ANGLE_Y=0,0.31,1.14,2.34,3.76,5.24,6.66,7.86,8.69,9,6.87,1.68,-4.65,-10.82,-15.78,-18.93,-20,-16.72,-9.64,-0.81,8.36,16.73,23.67,28.28,30,27.31,21.5,14.27,6.74,-0.12,-5.81,-9.59,-11,-8.31,-2.5,4.73,12.26,19.12,24.81,28.59,30,29.62,28.55,26.87,24.74,22.2,19.42,16.49,13.51,10.58,7.8,5.26,3.13,1.45,0.38,0,0.96,3.17,6.16,9.6,13.24,16.97,20.57,24,27.74,29.21,29.81,29.98,30,27.21,20.41,12.11,4.02,-2.47,-6.6,-8,-7.4,-5.94,-4,-2.06,-0.6,0,0,0,0,0,0,0
|
||||||
|
|
||||||
|
PARAM_ANGLE_Z=0
|
||||||
|
|
||||||
|
PARAM_EYE_L_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,0.82,0.54,0.27,0.08,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.24,0.64,0.91,1,1,1,1,1,1,1,1,1,1,1,1,1,1
|
||||||
|
|
||||||
|
PARAM_EYE_L_SMILE=1
|
||||||
|
|
||||||
|
PARAM_EYE_R_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,0.82,0.54,0.27,0.08,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.24,0.64,0.91,1,1,1,1,1,1,1,1,1,1,1,1,1,1
|
||||||
|
|
||||||
|
PARAM_EYE_R_SMILE=1
|
||||||
|
|
||||||
|
PARAM_EYE_BALL_X=0
|
||||||
|
|
||||||
|
PARAM_EYE_BALL_Y=0
|
||||||
|
|
||||||
|
PARAM_EYE_SIZE=0
|
||||||
|
|
||||||
|
PARAM_EYE_HI=1
|
||||||
|
|
||||||
|
PARAM_EYE_01=0
|
||||||
|
|
||||||
|
PARAM_TEAR_L=0
|
||||||
|
|
||||||
|
PARAM_TEAR_R=0
|
||||||
|
|
||||||
|
PARAM_BROW_L_Y=0
|
||||||
|
|
||||||
|
PARAM_BROW_R_Y=0
|
||||||
|
|
||||||
|
PARAM_BROW_L_X=0
|
||||||
|
|
||||||
|
PARAM_BROW_R_X=0
|
||||||
|
|
||||||
|
PARAM_BROW_L_ANGLE=0
|
||||||
|
|
||||||
|
PARAM_BROW_R_ANGLE=0
|
||||||
|
|
||||||
|
PARAM_BROW_L_FORM=0
|
||||||
|
|
||||||
|
PARAM_BROW_R_FORM=0
|
||||||
|
|
||||||
|
PARAM_MOUTH_FORM=1
|
||||||
|
|
||||||
|
PARAM_MOUTH_OPEN_Y=0,0,0,0,0,0,0,0,0,0,0,0,0.18,0.46,0.73,0.92,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
|
||||||
|
|
||||||
63
live2dw/assets/mtn/08.mtn
Normal file
@@ -0,0 +1,63 @@
|
|||||||
|
# Live2D Animator Motion Data
|
||||||
|
$fps=30
|
||||||
|
|
||||||
|
$fadein=500
|
||||||
|
|
||||||
|
$fadeout=500
|
||||||
|
|
||||||
|
$fadein:PARAM_HAND_SWITCH_L=0
|
||||||
|
|
||||||
|
$fadeout:PARAM_HAND_SWITCH_L=0
|
||||||
|
|
||||||
|
$fadein:PARAM_HAND_SWITCH_R=0
|
||||||
|
|
||||||
|
$fadeout:PARAM_HAND_SWITCH_R=0
|
||||||
|
|
||||||
|
PARAM_ANGLE_X=0
|
||||||
|
|
||||||
|
PARAM_ANGLE_Y=0,1.25,3.94,7.29,10.78,13.96,16.59,18.35,19,16.21,9.41,1.11,-6.98,-13.47,-17.6,-19,-17.8,-14.64,-10.08,-4.87,0.55,5.59,9.9,13.19,15.27,16,15.4,13.79,11.31,8.2,4.74,1,-2.74,-6.2,-9.31,-11.79,-13.4,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14
|
||||||
|
|
||||||
|
PARAM_ANGLE_Z=0
|
||||||
|
|
||||||
|
PARAM_EYE_L_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0.18,0.46,0.73,0.92,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
|
||||||
|
|
||||||
|
PARAM_EYE_L_SMILE=0
|
||||||
|
|
||||||
|
PARAM_EYE_R_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0.18,0.46,0.73,0.92,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
|
||||||
|
|
||||||
|
PARAM_EYE_R_SMILE=0
|
||||||
|
|
||||||
|
PARAM_EYE_BALL_X=0
|
||||||
|
|
||||||
|
PARAM_EYE_BALL_Y=0
|
||||||
|
|
||||||
|
PARAM_EYE_SIZE=0
|
||||||
|
|
||||||
|
PARAM_EYE_HI=1
|
||||||
|
|
||||||
|
PARAM_EYE_01=0
|
||||||
|
|
||||||
|
PARAM_TEAR_L=0
|
||||||
|
|
||||||
|
PARAM_TEAR_R=0
|
||||||
|
|
||||||
|
PARAM_BROW_L_Y=-1
|
||||||
|
|
||||||
|
PARAM_BROW_R_Y=-1
|
||||||
|
|
||||||
|
PARAM_BROW_L_X=-1
|
||||||
|
|
||||||
|
PARAM_BROW_R_X=-1
|
||||||
|
|
||||||
|
PARAM_BROW_L_ANGLE=-0.67
|
||||||
|
|
||||||
|
PARAM_BROW_R_ANGLE=-0.67
|
||||||
|
|
||||||
|
PARAM_BROW_L_FORM=-0.69
|
||||||
|
|
||||||
|
PARAM_BROW_R_FORM=-0.69
|
||||||
|
|
||||||
|
PARAM_MOUTH_FORM=-1
|
||||||
|
|
||||||
|
PARAM_MOUTH_OPEN_Y=0
|
||||||
|
|
||||||
63
live2dw/assets/mtn/09.mtn
Normal file
@@ -0,0 +1,63 @@
|
|||||||
|
# Live2D Animator Motion Data
|
||||||
|
$fps=30
|
||||||
|
|
||||||
|
$fadein=500
|
||||||
|
|
||||||
|
$fadeout=500
|
||||||
|
|
||||||
|
$fadein:PARAM_HAND_SWITCH_L=0
|
||||||
|
|
||||||
|
$fadeout:PARAM_HAND_SWITCH_L=0
|
||||||
|
|
||||||
|
$fadein:PARAM_HAND_SWITCH_R=0
|
||||||
|
|
||||||
|
$fadeout:PARAM_HAND_SWITCH_R=0
|
||||||
|
|
||||||
|
PARAM_ANGLE_X=0,0.09,0.34,0.74,1.27,1.88,2.59,3.36,4.17,5,5.83,6.64,7.41,8.12,8.73,9.26,9.66,9.91,10,9.85,9.45,8.83,8.06,7.17,6.2,5.17,4.14,3.09,2.1,1.15,0.29,-0.48,-1.11,-1.59,-1.89,-2,-1.987,-1.95,-1.89,-1.81,-1.72,-1.61,-1.48,-1.36,-1.22,-1.09,-0.95,-0.81,-0.68,-0.55,-0.44,-0.33,-0.24,-0.15,-0.09,-0.04,-0.01,0
|
||||||
|
|
||||||
|
PARAM_ANGLE_Y=0,-0.17,-0.65,-1.41,-2.41,-3.57,-4.92,-6.38,-7.92,-9.5,-11.08,-12.62,-14.08,-15.43,-16.59,-17.59,-18.35,-18.83,-19,-17.29,-13.61,-9.02,-4.25,0.1,3.71,6.11,7,5.69,2.86,-0.68,-4.34,-7.69,-10.47,-12.31,-13,-11.09,-6.44,-0.76,4.77,9.22,12.04,13,12.55,11.35,9.62,7.56,5.44,3.38,1.65,0.45,0,0,0,0,0,0,0,0
|
||||||
|
|
||||||
|
PARAM_ANGLE_Z=0,0.17,0.65,1.41,2.41,3.57,4.92,6.38,7.92,9.5,11.08,12.62,14.08,15.43,16.59,17.59,18.35,18.83,19,18.42,16.78,14.25,10.99,7.21,3.04,-1.24,-5.62,-9.87,-13.94,-17.58,-20.8,-23.43,-25.36,-26.59,-27,-26.55,-25.38,-23.74,-21.75,-19.58,-17.3,-14.96,-12.74,-10.6,-8.69,-7,-5.46,-4.19,-3.11,-2.23,-1.55,-1.01,-0.61,-0.34,-0.16,-0.06,-0.01,0
|
||||||
|
|
||||||
|
PARAM_EYE_L_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.07,0.25,0.47,0.68,0.85,0.96,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
|
||||||
|
|
||||||
|
PARAM_EYE_L_SMILE=1
|
||||||
|
|
||||||
|
PARAM_EYE_R_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.07,0.25,0.47,0.68,0.85,0.96,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
|
||||||
|
|
||||||
|
PARAM_EYE_R_SMILE=1
|
||||||
|
|
||||||
|
PARAM_EYE_BALL_X=0,-0.005,-0.018,-0.04,-0.07,-0.1,-0.14,-0.18,-0.22,-0.27,-0.31,-0.35,-0.39,-0.43,-0.46,-0.49,-0.51,-0.525,-0.53,-0.529,-0.526,-0.521,-0.514,-0.506,-0.496,-0.485,-0.472,-0.458,-0.443,-0.427,-0.41,-0.392,-0.374,-0.355,-0.336,-0.316,-0.296,-0.275,-0.25,-0.234,-0.214,-0.194,-0.175,-0.156,-0.138,-0.12,-0.103,-0.087,-0.072,-0.058,-0.045,-0.034,-0.024,-0.016,-0.009,-0.004,-0.001,0
|
||||||
|
|
||||||
|
PARAM_EYE_BALL_Y=0
|
||||||
|
|
||||||
|
PARAM_EYE_SIZE=0
|
||||||
|
|
||||||
|
PARAM_EYE_HI=1
|
||||||
|
|
||||||
|
PARAM_EYE_01=0
|
||||||
|
|
||||||
|
PARAM_TEAR_L=0
|
||||||
|
|
||||||
|
PARAM_TEAR_R=0
|
||||||
|
|
||||||
|
PARAM_BROW_L_Y=0
|
||||||
|
|
||||||
|
PARAM_BROW_R_Y=0
|
||||||
|
|
||||||
|
PARAM_BROW_L_X=0
|
||||||
|
|
||||||
|
PARAM_BROW_R_X=0
|
||||||
|
|
||||||
|
PARAM_BROW_L_ANGLE=0
|
||||||
|
|
||||||
|
PARAM_BROW_R_ANGLE=0
|
||||||
|
|
||||||
|
PARAM_BROW_L_FORM=0
|
||||||
|
|
||||||
|
PARAM_BROW_R_FORM=0
|
||||||
|
|
||||||
|
PARAM_MOUTH_FORM=1
|
||||||
|
|
||||||
|
PARAM_MOUTH_OPEN_Y=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.18,0.46,0.73,0.92,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.93,0.75,0.53,0.32,0.15,0.04,0,0,0,0,0,0,0,0,0
|
||||||
|
|
||||||
63
live2dw/assets/mtn/idle.mtn
Normal file
@@ -0,0 +1,63 @@
|
|||||||
|
# Live2D Animator Motion Data
|
||||||
|
$fps=30
|
||||||
|
|
||||||
|
$fadein=1000
|
||||||
|
|
||||||
|
$fadeout=1000
|
||||||
|
|
||||||
|
$fadein:PARAM_HAND_SWITCH_L=0
|
||||||
|
|
||||||
|
$fadeout:PARAM_HAND_SWITCH_L=0
|
||||||
|
|
||||||
|
$fadein:PARAM_HAND_SWITCH_R=0
|
||||||
|
|
||||||
|
$fadeout:PARAM_HAND_SWITCH_R=0
|
||||||
|
|
||||||
|
PARAM_ANGLE_X=0,-0.013,-0.05,-0.11,-0.2,-0.3,-0.43,-0.58,-0.74,-0.92,-1.12,-1.33,-1.56,-1.8,-2.05,-2.31,-2.58,-2.86,-3.15,-3.44,-3.74,-4.04,-4.35,-4.66,-4.96,-5.27,-5.58,-5.88,-6.18,-6.47,-6.77,-7.05,-7.33,-7.6,-7.85,-8.1,-8.34,-8.57,-8.78,-8.98,-9.16,-9.33,-9.48,-9.61,-9.73,-9.82,-9.9,-9.95,-9.99,-10,-9.983,-9.93,-9.85,-9.73,-9.59,-9.41,-9.21,-8.99,-8.73,-8.45,-8.15,-7.83,-7.49,-7.13,-6.76,-6.36,-5.95,-5.53,-5.09,-4.64,-4.18,-3.72,-3.25,-2.76,-2.29,-1.79,-1.31,-0.81,-0.32,0.18,0.67,1.16,1.64,2.11,2.59,3.05,3.5,3.95,4.38,4.8,5.2,5.59,5.97,6.33,6.67,6.99,7.29,7.57,7.83,8.06,8.28,8.46,8.62,8.76,8.86,8.94,8.98,9,8.993,8.97,8.94,8.89,8.82,8.75,8.66,8.57,8.46,8.34,8.22,8.08,7.93,7.78,7.62,7.46,7.28,7.1,6.92,6.72,6.53,6.33,6.12,5.92,5.71,5.5,5.28,5.07,4.85,4.64,4.42,4.2,3.99,3.77,3.56,3.35,3.14,2.93,2.73,2.53,2.34,2.15,1.97,1.79,1.61,1.45,1.29,1.14,0.99,0.85,0.73,0.61,0.5,0.4,0.31,0.23,0.16,0.1,0.06,0.03,0.007,0
|
||||||
|
|
||||||
|
PARAM_ANGLE_Y=0,-0.016,-0.06,-0.14,-0.25,-0.38,-0.54,-0.73,-0.94,-1.17,-1.42,-1.69,-1.98,-2.28,-2.61,-2.94,-3.3,-3.66,-4.04,-4.42,-4.81,-5.22,-5.62,-6.04,-6.46,-6.88,-7.31,-7.73,-8.16,-8.59,-9.01,-9.43,-9.85,-10.26,-10.67,-11.07,-11.46,-11.84,-12.21,-12.57,-12.92,-13.25,-13.57,-13.88,-14.17,-14.44,-14.69,-14.93,-15.14,-15.34,-15.51,-15.65,-15.77,-15.87,-15.94,-15.99,-16,-15.985,-15.94,-15.87,-15.77,-15.65,-15.51,-15.34,-15.15,-14.93,-14.7,-14.44,-14.17,-13.88,-13.58,-13.27,-12.93,-12.59,-12.23,-11.87,-11.49,-11.1,-10.71,-10.31,-9.91,-9.5,-9.09,-8.68,-8.26,-7.85,-7.43,-7.02,-6.61,-6.2,-5.8,-5.4,-5.01,-4.63,-4.26,-3.89,-3.54,-3.2,-2.87,-2.55,-2.25,-1.96,-1.69,-1.44,-1.2,-0.99,-0.79,-0.61,-0.45,-0.32,-0.21,-0.12,-0.05,-0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
|
||||||
|
|
||||||
|
PARAM_ANGLE_Z=0,0.004,0.016,0.036,0.06,0.1,0.14,0.19,0.24,0.3,0.37,0.44,0.52,0.6,0.69,0.78,0.88,0.98,1.08,1.19,1.3,1.41,1.52,1.64,1.76,1.88,2,2.13,2.25,2.38,2.5,2.62,2.75,2.87,3,3.12,3.24,3.36,3.48,3.59,3.7,3.81,3.92,4.02,4.12,4.22,4.31,4.4,4.48,4.56,4.63,4.7,4.76,4.81,4.86,4.9,4.94,4.96,4.984,4.996,5,4.993,4.973,4.94,4.9,4.84,4.77,4.69,4.6,4.5,4.39,4.27,4.15,4.01,3.86,3.71,3.55,3.39,3.22,3.04,2.86,2.67,2.48,2.28,2.08,1.87,1.67,1.46,1.25,1.03,0.82,0.61,0.39,0.18,-0.03,-0.25,-0.46,-0.67,-0.87,-1.08,-1.28,-1.48,-1.67,-1.86,-2.04,-2.22,-2.39,-2.55,-2.71,-2.86,-3.01,-3.15,-3.27,-3.39,-3.5,-3.6,-3.69,-3.77,-3.84,-3.9,-3.94,-3.97,-3.993,-4,-3.994,-3.977,-3.95,-3.91,-3.86,-3.81,-3.74,-3.67,-3.59,-3.5,-3.4,-3.3,-3.19,-3.08,-2.97,-2.85,-2.73,-2.6,-2.47,-2.34,-2.21,-2.08,-1.95,-1.82,-1.69,-1.56,-1.44,-1.31,-1.19,-1.07,-0.96,-0.85,-0.74,-0.64,-0.55,-0.46,-0.38,-0.3,-0.23,-0.17,-0.12,-0.08,-0.05,-0.02,-0.005,0
|
||||||
|
|
||||||
|
PARAM_EYE_L_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.74,0.26,0,0,0,0.24,0.64,0.91,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.74,0.26,0,0,0,0.24,0.64,0.91,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
|
||||||
|
|
||||||
|
PARAM_EYE_L_SMILE=0
|
||||||
|
|
||||||
|
PARAM_EYE_R_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.74,0.26,0,0,0,0.24,0.64,0.91,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.74,0.26,0,0,0,0.24,0.64,0.91,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
|
||||||
|
|
||||||
|
PARAM_EYE_R_SMILE=0
|
||||||
|
|
||||||
|
PARAM_EYE_BALL_X=0,0,0.002,0.004,0.008,0.012,0.017,0.022,0.029,0.036,0.043,0.052,0.061,0.07,0.08,0.09,0.101,0.112,0.124,0.135,0.147,0.16,0.172,0.185,0.198,0.211,0.224,0.237,0.25,0.263,0.276,0.289,0.302,0.314,0.327,0.339,0.351,0.363,0.374,0.385,0.396,0.406,0.416,0.425,0.434,0.442,0.45,0.457,0.464,0.47,0.475,0.479,0.483,0.486,0.488,0.49,0.49,0.489,0.487,0.483,0.477,0.471,0.463,0.453,0.442,0.431,0.418,0.403,0.388,0.372,0.356,0.338,0.319,0.3,0.28,0.26,0.24,0.22,0.2,0.17,0.15,0.13,0.11,0.08,0.06,0.04,0.01,-0.01,-0.03,-0.06,-0.08,-0.1,-0.12,-0.14,-0.16,-0.183,-0.203,-0.222,-0.24,-0.258,-0.275,-0.291,-0.306,-0.32,-0.333,-0.345,-0.356,-0.366,-0.375,-0.382,-0.389,-0.394,-0.397,-0.399,-0.4,-0.4,-0.398,-0.396,-0.394,-0.39,-0.386,-0.382,-0.376,-0.37,-0.364,-0.357,-0.35,-0.342,-0.333,-0.325,-0.316,-0.306,-0.297,-0.287,-0.277,-0.266,-0.256,-0.245,-0.234,-0.223,-0.212,-0.201,-0.19,-0.18,-0.169,-0.158,-0.147,-0.137,-0.127,-0.117,-0.107,-0.097,-0.088,-0.079,-0.07,-0.062,-0.054,-0.047,-0.04,-0.033,-0.027,-0.022,-0.017,-0.013,-0.009,-0.006,-0.003,-0.001,0,0
|
||||||
|
|
||||||
|
PARAM_EYE_BALL_Y=0,0,0.002,0.004,0.007,0.011,0.016,0.021,0.027,0.034,0.042,0.05,0.058,0.067,0.077,0.086,0.097,0.108,0.119,0.13,0.141,0.153,0.165,0.177,0.19,0.202,0.215,0.227,0.24,0.252,0.265,0.277,0.289,0.301,0.313,0.325,0.337,0.348,0.359,0.369,0.379,0.389,0.399,0.408,0.416,0.424,0.432,0.439,0.445,0.45,0.455,0.46,0.463,0.466,0.468,0.47,0.47,0.47,0.468,0.466,0.463,0.46,0.455,0.45,0.445,0.439,0.432,0.424,0.416,0.408,0.399,0.39,0.38,0.37,0.359,0.349,0.338,0.326,0.315,0.303,0.291,0.279,0.267,0.255,0.243,0.231,0.218,0.206,0.194,0.182,0.17,0.159,0.147,0.136,0.125,0.114,0.104,0.094,0.084,0.075,0.066,0.058,0.05,0.042,0.035,0.029,0.023,0.018,0.013,0.009,0.006,0.003,0.002,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
|
||||||
|
|
||||||
|
PARAM_EYE_SIZE=0
|
||||||
|
|
||||||
|
PARAM_EYE_HI=1
|
||||||
|
|
||||||
|
PARAM_EYE_01=0
|
||||||
|
|
||||||
|
PARAM_TEAR_L=0
|
||||||
|
|
||||||
|
PARAM_TEAR_R=0
|
||||||
|
|
||||||
|
PARAM_BROW_L_Y=0
|
||||||
|
|
||||||
|
PARAM_BROW_R_Y=0
|
||||||
|
|
||||||
|
PARAM_BROW_L_X=0
|
||||||
|
|
||||||
|
PARAM_BROW_R_X=0
|
||||||
|
|
||||||
|
PARAM_BROW_L_ANGLE=0
|
||||||
|
|
||||||
|
PARAM_BROW_R_ANGLE=0
|
||||||
|
|
||||||
|
PARAM_BROW_L_FORM=0
|
||||||
|
|
||||||
|
PARAM_BROW_R_FORM=0
|
||||||
|
|
||||||
|
PARAM_MOUTH_FORM=1
|
||||||
|
|
||||||
|
PARAM_MOUTH_OPEN_Y=0
|
||||||
|
|
||||||
3
live2dw/lib/L2Dwidget.0.min.js
vendored
Normal file
1
live2dw/lib/L2Dwidget.0.min.js.map
Normal file
3
live2dw/lib/L2Dwidget.min.js
vendored
Normal file
1
live2dw/lib/L2Dwidget.min.js.map
Normal file
397
resources/index.html
Normal file
@@ -0,0 +1,397 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="zh-CN">
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8">
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=2">
|
||||||
|
<meta name="theme-color" content="#222">
|
||||||
|
<meta name="generator" content="Hexo 6.2.0">
|
||||||
|
<link rel="apple-touch-icon" sizes="180x180" href="/images/apple-touch-icon-next.png">
|
||||||
|
<link rel="icon" type="image/png" sizes="32x32" href="/images/favicon-32x32-next.png">
|
||||||
|
<link rel="icon" type="image/png" sizes="16x16" href="/images/favicon-16x16-next.png">
|
||||||
|
<link rel="mask-icon" href="/images/logo.svg" color="#222">
|
||||||
|
|
||||||
|
<link rel="stylesheet" href="/css/main.css">
|
||||||
|
|
||||||
|
|
||||||
|
<link rel="stylesheet" href="/lib/font-awesome/css/all.min.css">
|
||||||
|
<link rel="stylesheet" href="/lib/pace/pace-theme-minimal.min.css">
|
||||||
|
<script src="/lib/pace/pace.min.js"></script>
|
||||||
|
|
||||||
|
<script id="hexo-configurations">
|
||||||
|
var NexT = window.NexT || {};
|
||||||
|
var CONFIG = {"hostname":"example.com","root":"/","scheme":"Gemini","version":"7.8.0","exturl":false,"sidebar":{"position":"left","display":"post","padding":18,"offset":12,"onmobile":false},"copycode":{"enable":false,"show_result":false,"style":null},"back2top":{"enable":true,"sidebar":false,"scrollpercent":false},"bookmark":{"enable":false,"color":"#222","save":"auto"},"fancybox":false,"mediumzoom":false,"lazyload":false,"pangu":false,"comments":{"style":"tabs","active":null,"storage":true,"lazyload":false,"nav":null},"algolia":{"hits":{"per_page":10},"labels":{"input_placeholder":"Search for Posts","hits_empty":"We didn't find any results for the search: ${query}","hits_stats":"${hits} results found in ${time} ms"}},"localsearch":{"enable":false,"trigger":"auto","top_n_per_article":1,"unescape":false,"preload":false},"motion":{"enable":true,"async":false,"transition":{"post_block":"fadeIn","post_header":"slideDownIn","post_body":"slideDownIn","coll_header":"slideLeftIn","sidebar":"slideUpIn"}}};
|
||||||
|
</script>
|
||||||
|
|
||||||
|
|
||||||
|
<meta property="og:type" content="website">
|
||||||
|
<meta property="og:title" content="resources">
|
||||||
|
<meta property="og:url" content="http://example.com/resources/index.html">
|
||||||
|
<meta property="og:site_name" content="流量不足ow的个人博客">
|
||||||
|
<meta property="og:locale" content="zh_CN">
|
||||||
|
<meta property="article:published_time" content="2022-06-19T13:37:18.000Z">
|
||||||
|
<meta property="article:modified_time" content="2022-06-19T13:38:51.500Z">
|
||||||
|
<meta property="article:author" content="llbzow">
|
||||||
|
<meta name="twitter:card" content="summary">
|
||||||
|
|
||||||
|
<link rel="canonical" href="http://example.com/resources/">
|
||||||
|
|
||||||
|
|
||||||
|
<script id="page-configurations">
|
||||||
|
// https://hexo.io/docs/variables.html
|
||||||
|
CONFIG.page = {
|
||||||
|
sidebar: "",
|
||||||
|
isHome : false,
|
||||||
|
isPost : false,
|
||||||
|
lang : 'zh-CN'
|
||||||
|
};
|
||||||
|
</script>
|
||||||
|
|
||||||
|
|
||||||
|
<script>
|
||||||
|
(function () {
|
||||||
|
if ('') {
|
||||||
|
if (prompt('请输入文章密码') !== '') {
|
||||||
|
alert('密码错误!');
|
||||||
|
if (history.length === 1) {
|
||||||
|
location.replace("http://blog.llbzow.tk"); // 这里替换成你的首页
|
||||||
|
} else {
|
||||||
|
history.back();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})();
|
||||||
|
</script>
|
||||||
|
<title>resources | 流量不足ow的个人博客
|
||||||
|
</title>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<noscript>
|
||||||
|
<style>
|
||||||
|
.use-motion .brand,
|
||||||
|
.use-motion .menu-item,
|
||||||
|
.sidebar-inner,
|
||||||
|
.use-motion .post-block,
|
||||||
|
.use-motion .pagination,
|
||||||
|
.use-motion .comments,
|
||||||
|
.use-motion .post-header,
|
||||||
|
.use-motion .post-body,
|
||||||
|
.use-motion .collection-header { opacity: initial; }
|
||||||
|
|
||||||
|
.use-motion .site-title,
|
||||||
|
.use-motion .site-subtitle {
|
||||||
|
opacity: initial;
|
||||||
|
top: initial;
|
||||||
|
}
|
||||||
|
|
||||||
|
.use-motion .logo-line-before i { left: initial; }
|
||||||
|
.use-motion .logo-line-after i { right: initial; }
|
||||||
|
</style>
|
||||||
|
</noscript>
|
||||||
|
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body itemscope itemtype="http://schema.org/WebPage">
|
||||||
|
<div class="container use-motion">
|
||||||
|
<div class="headband"></div>
|
||||||
|
|
||||||
|
<header class="header" itemscope itemtype="http://schema.org/WPHeader">
|
||||||
|
<div class="header-inner"><div class="site-brand-container">
|
||||||
|
<div class="site-nav-toggle">
|
||||||
|
<div class="toggle" aria-label="切换导航栏">
|
||||||
|
<span class="toggle-line toggle-line-first"></span>
|
||||||
|
<span class="toggle-line toggle-line-middle"></span>
|
||||||
|
<span class="toggle-line toggle-line-last"></span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="site-meta">
|
||||||
|
|
||||||
|
<a href="/" class="brand" rel="start">
|
||||||
|
<span class="logo-line-before"><i></i></span>
|
||||||
|
<h1 class="site-title">流量不足ow的个人博客</h1>
|
||||||
|
<span class="logo-line-after"><i></i></span>
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="site-nav-right">
|
||||||
|
<div class="toggle popup-trigger">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<nav class="site-nav">
|
||||||
|
<ul id="menu" class="main-menu menu">
|
||||||
|
<li class="menu-item menu-item-home">
|
||||||
|
|
||||||
|
<a href="/" rel="section"><i class="fa fa-home fa-fw"></i>首页</a>
|
||||||
|
|
||||||
|
</li>
|
||||||
|
<li class="menu-item menu-item-about">
|
||||||
|
|
||||||
|
<a href="/about/" rel="section"><i class="fa fa-user fa-fw"></i>关于</a>
|
||||||
|
|
||||||
|
</li>
|
||||||
|
<li class="menu-item menu-item-tags">
|
||||||
|
|
||||||
|
<a href="/tags/" rel="section"><i class="fa fa-tags fa-fw"></i>标签</a>
|
||||||
|
|
||||||
|
</li>
|
||||||
|
<li class="menu-item menu-item-categories">
|
||||||
|
|
||||||
|
<a href="/categories/" rel="section"><i class="fa fa-th fa-fw"></i>分类</a>
|
||||||
|
|
||||||
|
</li>
|
||||||
|
<li class="menu-item menu-item-archives">
|
||||||
|
|
||||||
|
<a href="/archives/" rel="section"><i class="fa fa-archive fa-fw"></i>归档</a>
|
||||||
|
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</nav>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</header>
|
||||||
|
|
||||||
|
|
||||||
|
<div class="back-to-top">
|
||||||
|
<i class="fa fa-arrow-up"></i>
|
||||||
|
<span>0%</span>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
<main class="main">
|
||||||
|
<div class="main-inner">
|
||||||
|
<div class="content-wrap">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<div class="content page posts-expand">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<div class="post-block" lang="zh-CN">
|
||||||
|
<header class="post-header">
|
||||||
|
|
||||||
|
<h1 class="post-title" itemprop="name headline">resources
|
||||||
|
</h1>
|
||||||
|
|
||||||
|
<div class="post-meta">
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</header>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<div class="post-body">
|
||||||
|
<link rel="stylesheet" href="/css/spoiler.css" type="text/css"><script src="/js/spoiler.js" type="text/javascript" async></script>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
<script>
|
||||||
|
window.addEventListener('tabs:register', () => {
|
||||||
|
let { activeClass } = CONFIG.comments;
|
||||||
|
if (CONFIG.comments.storage) {
|
||||||
|
activeClass = localStorage.getItem('comments_active') || activeClass;
|
||||||
|
}
|
||||||
|
if (activeClass) {
|
||||||
|
let activeTab = document.querySelector(`a[href="#comment-${activeClass}"]`);
|
||||||
|
if (activeTab) {
|
||||||
|
activeTab.click();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
if (CONFIG.comments.storage) {
|
||||||
|
window.addEventListener('tabs:click', event => {
|
||||||
|
if (!event.target.matches('.tabs-comment .tab-content .tab-pane')) return;
|
||||||
|
let commentClass = event.target.classList[1];
|
||||||
|
localStorage.setItem('comments_active', commentClass);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
<div class="toggle sidebar-toggle">
|
||||||
|
<span class="toggle-line toggle-line-first"></span>
|
||||||
|
<span class="toggle-line toggle-line-middle"></span>
|
||||||
|
<span class="toggle-line toggle-line-last"></span>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<aside class="sidebar">
|
||||||
|
<div class="sidebar-inner">
|
||||||
|
|
||||||
|
<ul class="sidebar-nav motion-element">
|
||||||
|
<li class="sidebar-nav-toc">
|
||||||
|
文章目录
|
||||||
|
</li>
|
||||||
|
<li class="sidebar-nav-overview">
|
||||||
|
站点概览
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<!--noindex-->
|
||||||
|
<div class="post-toc-wrap sidebar-panel">
|
||||||
|
</div>
|
||||||
|
<!--/noindex-->
|
||||||
|
|
||||||
|
<div class="site-overview-wrap sidebar-panel">
|
||||||
|
<div class="site-author motion-element" itemprop="author" itemscope itemtype="http://schema.org/Person">
|
||||||
|
<img class="site-author-image" itemprop="image" alt="llbzow"
|
||||||
|
src="/images/avatar.png">
|
||||||
|
<p class="site-author-name" itemprop="name">llbzow</p>
|
||||||
|
<div class="site-description" itemprop="description"></div>
|
||||||
|
</div>
|
||||||
|
<div class="site-state-wrap motion-element">
|
||||||
|
<nav class="site-state">
|
||||||
|
<div class="site-state-item site-state-posts">
|
||||||
|
<a href="/archives/">
|
||||||
|
|
||||||
|
<span class="site-state-item-count">1</span>
|
||||||
|
<span class="site-state-item-name">日志</span>
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
</nav>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</aside>
|
||||||
|
<div id="sidebar-dimmer"></div>
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</main>
|
||||||
|
|
||||||
|
<footer class="footer">
|
||||||
|
<div class="footer-inner">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<div class="copyright">
|
||||||
|
|
||||||
|
© 2022-06 –
|
||||||
|
<span itemprop="copyrightYear">2022</span>
|
||||||
|
<span class="with-love">
|
||||||
|
<i class="fa fa-heart"></i>
|
||||||
|
</span>
|
||||||
|
<span class="author" itemprop="copyrightHolder">llbzow</span>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!--
|
||||||
|
<div class="powered-by">由 <a href="https://hexo.io/" class="theme-link" rel="noopener" target="_blank">Hexo</a> & <a href="https://theme-next.org/" class="theme-link" rel="noopener" target="_blank">NexT.Gemini</a> 强力驱动
|
||||||
|
</div>
|
||||||
|
-->
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<div class="busuanzi-count">
|
||||||
|
<script async src="https://busuanzi.ibruce.info/busuanzi/2.3/busuanzi.pure.mini.js"></script>
|
||||||
|
<span class="post-meta-item" id="busuanzi_container_site_uv" style="display: none;">
|
||||||
|
<span class="post-meta-item-icon">
|
||||||
|
<i class="fa fa-user"></i>
|
||||||
|
</span>
|
||||||
|
<span class="site-uv" title="总访客量">
|
||||||
|
<span id="busuanzi_value_site_uv"></span>
|
||||||
|
</span>
|
||||||
|
</span>
|
||||||
|
<span class="post-meta-divider">|</span>
|
||||||
|
<span class="post-meta-item" id="busuanzi_container_site_pv" style="display: none;">
|
||||||
|
<span class="post-meta-item-icon">
|
||||||
|
<i class="fa fa-eye"></i>
|
||||||
|
</span>
|
||||||
|
<span class="site-pv" title="总访问量">
|
||||||
|
<span id="busuanzi_value_site_pv"></span>
|
||||||
|
</span>
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</footer>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<script color='0,0,255' opacity='0.5' zIndex='-1' count='99' src="/lib/canvas-nest/canvas-nest.min.js"></script>
|
||||||
|
<script size="300" alpha="0.6" zIndex="-1" src="/lib/canvas-ribbon/canvas-ribbon.js"></script>
|
||||||
|
<script src="/lib/anime.min.js"></script>
|
||||||
|
<script src="/lib/velocity/velocity.min.js"></script>
|
||||||
|
<script src="/lib/velocity/velocity.ui.min.js"></script>
|
||||||
|
|
||||||
|
<script src="/js/utils.js"></script>
|
||||||
|
|
||||||
|
<script src="/js/motion.js"></script>
|
||||||
|
|
||||||
|
|
||||||
|
<script src="/js/schemes/pisces.js"></script>
|
||||||
|
|
||||||
|
|
||||||
|
<script src="/js/next-boot.js"></script>
|
||||||
|
|
||||||
|
|
||||||
|
<script defer src="/lib/three/three.min.js"></script>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<script src="/live2dw/lib/L2Dwidget.min.js?094cbace49a39548bed64abff5988b05"></script><script>L2Dwidget.init({"pluginRootPath":"live2dw/","pluginJsPath":"lib/","pluginModelPath":"assets/","tagMode":false,"debug":false,"model":{"jsonPath":"/live2dw/assets/koharu.model.json"},"display":{"position":"left","width":250,"height":500},"mobile":{"show":true},"react":{"opacity":0.9},"log":false});</script></body>
|
||||||
|
</html>
|
||||||
405
tags/index.html
Normal file
@@ -0,0 +1,405 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="zh-CN">
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8">
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=2">
|
||||||
|
<meta name="theme-color" content="#222">
|
||||||
|
<meta name="generator" content="Hexo 6.2.0">
|
||||||
|
<link rel="apple-touch-icon" sizes="180x180" href="/images/apple-touch-icon-next.png">
|
||||||
|
<link rel="icon" type="image/png" sizes="32x32" href="/images/favicon-32x32-next.png">
|
||||||
|
<link rel="icon" type="image/png" sizes="16x16" href="/images/favicon-16x16-next.png">
|
||||||
|
<link rel="mask-icon" href="/images/logo.svg" color="#222">
|
||||||
|
|
||||||
|
<link rel="stylesheet" href="/css/main.css">
|
||||||
|
|
||||||
|
|
||||||
|
<link rel="stylesheet" href="/lib/font-awesome/css/all.min.css">
|
||||||
|
<link rel="stylesheet" href="/lib/pace/pace-theme-minimal.min.css">
|
||||||
|
<script src="/lib/pace/pace.min.js"></script>
|
||||||
|
|
||||||
|
<script id="hexo-configurations">
|
||||||
|
var NexT = window.NexT || {};
|
||||||
|
var CONFIG = {"hostname":"example.com","root":"/","scheme":"Gemini","version":"7.8.0","exturl":false,"sidebar":{"position":"left","display":"post","padding":18,"offset":12,"onmobile":false},"copycode":{"enable":false,"show_result":false,"style":null},"back2top":{"enable":true,"sidebar":false,"scrollpercent":false},"bookmark":{"enable":false,"color":"#222","save":"auto"},"fancybox":false,"mediumzoom":false,"lazyload":false,"pangu":false,"comments":{"style":"tabs","active":null,"storage":true,"lazyload":false,"nav":null},"algolia":{"hits":{"per_page":10},"labels":{"input_placeholder":"Search for Posts","hits_empty":"We didn't find any results for the search: ${query}","hits_stats":"${hits} results found in ${time} ms"}},"localsearch":{"enable":false,"trigger":"auto","top_n_per_article":1,"unescape":false,"preload":false},"motion":{"enable":true,"async":false,"transition":{"post_block":"fadeIn","post_header":"slideDownIn","post_body":"slideDownIn","coll_header":"slideLeftIn","sidebar":"slideUpIn"}}};
|
||||||
|
</script>
|
||||||
|
|
||||||
|
|
||||||
|
<meta property="og:type" content="website">
|
||||||
|
<meta property="og:title" content="tags">
|
||||||
|
<meta property="og:url" content="http://example.com/tags/index.html">
|
||||||
|
<meta property="og:site_name" content="流量不足ow的个人博客">
|
||||||
|
<meta property="og:locale" content="zh_CN">
|
||||||
|
<meta property="article:published_time" content="2022-06-19T13:37:07.000Z">
|
||||||
|
<meta property="article:modified_time" content="2022-06-19T13:39:09.580Z">
|
||||||
|
<meta property="article:author" content="llbzow">
|
||||||
|
<meta name="twitter:card" content="summary">
|
||||||
|
|
||||||
|
<link rel="canonical" href="http://example.com/tags/">
|
||||||
|
|
||||||
|
|
||||||
|
<script id="page-configurations">
|
||||||
|
// https://hexo.io/docs/variables.html
|
||||||
|
CONFIG.page = {
|
||||||
|
sidebar: "",
|
||||||
|
isHome : false,
|
||||||
|
isPost : false,
|
||||||
|
lang : 'zh-CN'
|
||||||
|
};
|
||||||
|
</script>
|
||||||
|
|
||||||
|
|
||||||
|
<script>
|
||||||
|
(function () {
|
||||||
|
if ('') {
|
||||||
|
if (prompt('请输入文章密码') !== '') {
|
||||||
|
alert('密码错误!');
|
||||||
|
if (history.length === 1) {
|
||||||
|
location.replace("http://blog.llbzow.tk"); // 这里替换成你的首页
|
||||||
|
} else {
|
||||||
|
history.back();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})();
|
||||||
|
</script>
|
||||||
|
<title>tags | 流量不足ow的个人博客
|
||||||
|
</title>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<noscript>
|
||||||
|
<style>
|
||||||
|
.use-motion .brand,
|
||||||
|
.use-motion .menu-item,
|
||||||
|
.sidebar-inner,
|
||||||
|
.use-motion .post-block,
|
||||||
|
.use-motion .pagination,
|
||||||
|
.use-motion .comments,
|
||||||
|
.use-motion .post-header,
|
||||||
|
.use-motion .post-body,
|
||||||
|
.use-motion .collection-header { opacity: initial; }
|
||||||
|
|
||||||
|
.use-motion .site-title,
|
||||||
|
.use-motion .site-subtitle {
|
||||||
|
opacity: initial;
|
||||||
|
top: initial;
|
||||||
|
}
|
||||||
|
|
||||||
|
.use-motion .logo-line-before i { left: initial; }
|
||||||
|
.use-motion .logo-line-after i { right: initial; }
|
||||||
|
</style>
|
||||||
|
</noscript>
|
||||||
|
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body itemscope itemtype="http://schema.org/WebPage">
|
||||||
|
<div class="container use-motion">
|
||||||
|
<div class="headband"></div>
|
||||||
|
|
||||||
|
<header class="header" itemscope itemtype="http://schema.org/WPHeader">
|
||||||
|
<div class="header-inner"><div class="site-brand-container">
|
||||||
|
<div class="site-nav-toggle">
|
||||||
|
<div class="toggle" aria-label="切换导航栏">
|
||||||
|
<span class="toggle-line toggle-line-first"></span>
|
||||||
|
<span class="toggle-line toggle-line-middle"></span>
|
||||||
|
<span class="toggle-line toggle-line-last"></span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="site-meta">
|
||||||
|
|
||||||
|
<a href="/" class="brand" rel="start">
|
||||||
|
<span class="logo-line-before"><i></i></span>
|
||||||
|
<h1 class="site-title">流量不足ow的个人博客</h1>
|
||||||
|
<span class="logo-line-after"><i></i></span>
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="site-nav-right">
|
||||||
|
<div class="toggle popup-trigger">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<nav class="site-nav">
|
||||||
|
<ul id="menu" class="main-menu menu">
|
||||||
|
<li class="menu-item menu-item-home">
|
||||||
|
|
||||||
|
<a href="/" rel="section"><i class="fa fa-home fa-fw"></i>首页</a>
|
||||||
|
|
||||||
|
</li>
|
||||||
|
<li class="menu-item menu-item-about">
|
||||||
|
|
||||||
|
<a href="/about/" rel="section"><i class="fa fa-user fa-fw"></i>关于</a>
|
||||||
|
|
||||||
|
</li>
|
||||||
|
<li class="menu-item menu-item-tags">
|
||||||
|
|
||||||
|
<a href="/tags/" rel="section"><i class="fa fa-tags fa-fw"></i>标签</a>
|
||||||
|
|
||||||
|
</li>
|
||||||
|
<li class="menu-item menu-item-categories">
|
||||||
|
|
||||||
|
<a href="/categories/" rel="section"><i class="fa fa-th fa-fw"></i>分类</a>
|
||||||
|
|
||||||
|
</li>
|
||||||
|
<li class="menu-item menu-item-archives">
|
||||||
|
|
||||||
|
<a href="/archives/" rel="section"><i class="fa fa-archive fa-fw"></i>归档</a>
|
||||||
|
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</nav>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</header>
|
||||||
|
|
||||||
|
|
||||||
|
<div class="back-to-top">
|
||||||
|
<i class="fa fa-arrow-up"></i>
|
||||||
|
<span>0%</span>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
<main class="main">
|
||||||
|
<div class="main-inner">
|
||||||
|
<div class="content-wrap">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<div class="content page posts-expand">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<div class="post-block" lang="zh-CN">
|
||||||
|
<header class="post-header">
|
||||||
|
|
||||||
|
<h1 class="post-title" itemprop="name headline">tags
|
||||||
|
</h1>
|
||||||
|
|
||||||
|
<div class="post-meta">
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</header>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<div class="post-body">
|
||||||
|
<div class="tag-cloud">
|
||||||
|
<div class="tag-cloud-title">
|
||||||
|
暂无标签
|
||||||
|
</div>
|
||||||
|
<div class="tag-cloud-tags">
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
<script>
|
||||||
|
window.addEventListener('tabs:register', () => {
|
||||||
|
let { activeClass } = CONFIG.comments;
|
||||||
|
if (CONFIG.comments.storage) {
|
||||||
|
activeClass = localStorage.getItem('comments_active') || activeClass;
|
||||||
|
}
|
||||||
|
if (activeClass) {
|
||||||
|
let activeTab = document.querySelector(`a[href="#comment-${activeClass}"]`);
|
||||||
|
if (activeTab) {
|
||||||
|
activeTab.click();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
if (CONFIG.comments.storage) {
|
||||||
|
window.addEventListener('tabs:click', event => {
|
||||||
|
if (!event.target.matches('.tabs-comment .tab-content .tab-pane')) return;
|
||||||
|
let commentClass = event.target.classList[1];
|
||||||
|
localStorage.setItem('comments_active', commentClass);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
<div class="toggle sidebar-toggle">
|
||||||
|
<span class="toggle-line toggle-line-first"></span>
|
||||||
|
<span class="toggle-line toggle-line-middle"></span>
|
||||||
|
<span class="toggle-line toggle-line-last"></span>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<aside class="sidebar">
|
||||||
|
<div class="sidebar-inner">
|
||||||
|
|
||||||
|
<ul class="sidebar-nav motion-element">
|
||||||
|
<li class="sidebar-nav-toc">
|
||||||
|
文章目录
|
||||||
|
</li>
|
||||||
|
<li class="sidebar-nav-overview">
|
||||||
|
站点概览
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<!--noindex-->
|
||||||
|
<div class="post-toc-wrap sidebar-panel">
|
||||||
|
</div>
|
||||||
|
<!--/noindex-->
|
||||||
|
|
||||||
|
<div class="site-overview-wrap sidebar-panel">
|
||||||
|
<div class="site-author motion-element" itemprop="author" itemscope itemtype="http://schema.org/Person">
|
||||||
|
<img class="site-author-image" itemprop="image" alt="llbzow"
|
||||||
|
src="/images/avatar.png">
|
||||||
|
<p class="site-author-name" itemprop="name">llbzow</p>
|
||||||
|
<div class="site-description" itemprop="description"></div>
|
||||||
|
</div>
|
||||||
|
<div class="site-state-wrap motion-element">
|
||||||
|
<nav class="site-state">
|
||||||
|
<div class="site-state-item site-state-posts">
|
||||||
|
<a href="/archives/">
|
||||||
|
|
||||||
|
<span class="site-state-item-count">1</span>
|
||||||
|
<span class="site-state-item-name">日志</span>
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
</nav>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</aside>
|
||||||
|
<div id="sidebar-dimmer"></div>
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</main>
|
||||||
|
|
||||||
|
<footer class="footer">
|
||||||
|
<div class="footer-inner">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<div class="copyright">
|
||||||
|
|
||||||
|
© 2022-06 –
|
||||||
|
<span itemprop="copyrightYear">2022</span>
|
||||||
|
<span class="with-love">
|
||||||
|
<i class="fa fa-heart"></i>
|
||||||
|
</span>
|
||||||
|
<span class="author" itemprop="copyrightHolder">llbzow</span>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!--
|
||||||
|
<div class="powered-by">由 <a href="https://hexo.io/" class="theme-link" rel="noopener" target="_blank">Hexo</a> & <a href="https://theme-next.org/" class="theme-link" rel="noopener" target="_blank">NexT.Gemini</a> 强力驱动
|
||||||
|
</div>
|
||||||
|
-->
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<div class="busuanzi-count">
|
||||||
|
<script async src="https://busuanzi.ibruce.info/busuanzi/2.3/busuanzi.pure.mini.js"></script>
|
||||||
|
<span class="post-meta-item" id="busuanzi_container_site_uv" style="display: none;">
|
||||||
|
<span class="post-meta-item-icon">
|
||||||
|
<i class="fa fa-user"></i>
|
||||||
|
</span>
|
||||||
|
<span class="site-uv" title="总访客量">
|
||||||
|
<span id="busuanzi_value_site_uv"></span>
|
||||||
|
</span>
|
||||||
|
</span>
|
||||||
|
<span class="post-meta-divider">|</span>
|
||||||
|
<span class="post-meta-item" id="busuanzi_container_site_pv" style="display: none;">
|
||||||
|
<span class="post-meta-item-icon">
|
||||||
|
<i class="fa fa-eye"></i>
|
||||||
|
</span>
|
||||||
|
<span class="site-pv" title="总访问量">
|
||||||
|
<span id="busuanzi_value_site_pv"></span>
|
||||||
|
</span>
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</footer>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<script color='0,0,255' opacity='0.5' zIndex='-1' count='99' src="/lib/canvas-nest/canvas-nest.min.js"></script>
|
||||||
|
<script size="300" alpha="0.6" zIndex="-1" src="/lib/canvas-ribbon/canvas-ribbon.js"></script>
|
||||||
|
<script src="/lib/anime.min.js"></script>
|
||||||
|
<script src="/lib/velocity/velocity.min.js"></script>
|
||||||
|
<script src="/lib/velocity/velocity.ui.min.js"></script>
|
||||||
|
|
||||||
|
<script src="/js/utils.js"></script>
|
||||||
|
|
||||||
|
<script src="/js/motion.js"></script>
|
||||||
|
|
||||||
|
|
||||||
|
<script src="/js/schemes/pisces.js"></script>
|
||||||
|
|
||||||
|
|
||||||
|
<script src="/js/next-boot.js"></script>
|
||||||
|
|
||||||
|
|
||||||
|
<script defer src="/lib/three/three.min.js"></script>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<script src="/live2dw/lib/L2Dwidget.min.js?094cbace49a39548bed64abff5988b05"></script><script>L2Dwidget.init({"pluginRootPath":"live2dw/","pluginJsPath":"lib/","pluginModelPath":"assets/","tagMode":false,"debug":false,"model":{"jsonPath":"/live2dw/assets/koharu.model.json"},"display":{"position":"left","width":250,"height":500},"mobile":{"show":true},"react":{"opacity":0.9},"log":false});</script></body>
|
||||||
|
</html>
|
||||||