This commit is contained in:
Hubert Chen 2022-10-15 22:50:57 +08:00
parent fb32b23ae8
commit 0b0cd0054c
333 changed files with 9852 additions and 21941 deletions

20
.eslintrc.json Normal file
View File

@ -0,0 +1,20 @@
{
"root": true,
"parser": "@typescript-eslint/parser",
"extends": ["eslint:recommended", "plugin:@typescript-eslint/recommended", "prettier"],
"plugins": ["svelte3", "@typescript-eslint"],
"ignorePatterns": ["*.cjs"],
"overrides": [{ "files": ["*.svelte"], "processor": "svelte3/svelte3" }],
"settings": {
"svelte3/typescript": true
},
"parserOptions": {
"sourceType": "module",
"ecmaVersion": 2019
},
"env": {
"browser": true,
"es2017": true,
"node": true
}
}

2
.gitattributes vendored Normal file
View File

@ -0,0 +1,2 @@
# Auto detect text files and perform LF normalization
* text=auto

35
.github/CONTRIBUTING.md vendored Normal file
View File

@ -0,0 +1,35 @@
# Contributing
Thanks for ur interest in contributing to Urara! Please take a moment to read this document before submitting a pull request.
## Pull requests
pls ask before u start working on any important new feature.
for minor features and bug fixes: I will accept them as long as I think the code quality is good enough.
### Commit message
This is not mandatory at this time, but pls use [gitmoji](https://gitmoji.dev) and [Conventional Commits](https://www.conventionalcommits.org) whenever possible.
### Check the code
Run this command to check the code:
```bash
pnpm check
```
In general, expect to see output like this:
```text
svelte-check found 0 errors, 0 warnings, and 0 hints
```
### Format the code
run this command to format the code:
```bash
pnpm format
```

View File

@ -1,7 +0,0 @@
version: 2
updates:
- package-ecosystem: npm
directory: "/"
schedule:
interval: daily
open-pull-requests-limit: 20

24
.gitignore vendored Executable file → Normal file
View File

@ -1,2 +1,24 @@
# build output
build
static
.svelte-kit
.netlify
.vercel
# dependencies
node_modules
.deploy_git
# env
*.local
# logs
pnpm-debug.log*
# macOS-specific files
.DS_Store
# temp file
src/routes/**/+page.svelte.md
src/routes/**/+page.md
*.config.js
urara.js

1
.npmrc Normal file
View File

@ -0,0 +1 @@
engine-strict=true

1
.nvmrc Normal file
View File

@ -0,0 +1 @@
v18.8.0

7
.prettierignore Normal file
View File

@ -0,0 +1,7 @@
.svelte-kit/**
static/**
build/**
node_modules/**
pnpm-lock.yaml
.netlify/**
.vercel_build_output/**

13
.prettierrc.json Normal file
View File

@ -0,0 +1,13 @@
{
"printWidth": 128,
"useTabs": false,
"tabWidth": 2,
"semi": false,
"singleQuote": true,
"endOfLine": "lf",
"arrowParens": "avoid",
"trailingComma": "none",
"bracketSpacing": true,
"bracketSameLine": true,
"htmlWhitespaceSensitivity": "ignore"
}

3
.vscode/extensions.json vendored Normal file
View File

@ -0,0 +1,3 @@
{
"recommendations": ["svelte.svelte-vscode", "dbaeumer.vscode-eslint", "esbenp.prettier-vscode"]
}

10
.vscode/settings.json vendored Normal file
View File

@ -0,0 +1,10 @@
{
"editor.formatOnSave": true,
"files.eol": "\n",
"typescript.tsdk": "node_modules\\typescript\\lib",
"css.lint.unknownAtRules": "ignore",
"svelte.plugin.css.diagnostics.enable": false,
"[html]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
}
}

View File

View File

@ -1,106 +0,0 @@
# Hexo Configuration
## Docs: https://hexo.io/docs/configuration.html
## Source: https://github.com/hexojs/hexo/
# Site
title: Hubert's Blog
subtitle:
description:
keywords:
author: Hubert Chen
language: zh-CN
timezone: Asia/Shanghai
url: https://trle5.tk/
permalink: :year/:month/:day/:title/
permalink_defaults:
pretty_urls:
trailing_index: true # Set to false to remove trailing 'index.html' from permalinks
trailing_html: true # Set to false to remove trailing '.html' from permalinks
# Directory
source_dir: source
public_dir: public
tag_dir: tag
archive_dir: archives
category_dir: categories
code_dir: downloads/code
i18n_dir: :lang
skip_render:
# Writing
new_post_name: :title.md # File name of new posts
default_layout: post
titlecase: false # Transform title into titlecase
external_link:
enable: true # Open external links in new tab
field: site # Apply to the whole site
exclude: ''
filename_case: 0
render_drafts: false
post_asset_folder: true
relative_link: false
future: true
highlight:
enable: true
line_number: true
auto_detect: false
tab_replace: ''
wrap: true
hljs: false
prismjs:
enable: false
preprocess: true
line_number: true
tab_replace: ''
# Home page setting
# path: Root path for your blogs index page. (default = '')
# per_page: Posts displayed per page. (0 = disable pagination)
# order_by: Posts order. (Order by date descending by default)
index_generator:
path: ''
per_page: 5
order_by: -date
# Category & Tag
default_category: uncategorized
category_map:
tag_map:
# Metadata elements
## https://developer.mozilla.org/en-US/docs/Web/HTML/Element/meta
meta_generator: true
# Date / Time format
## Hexo uses Moment.js to parse and display date
## You can customize the date format as defined in
## http://momentjs.com/docs/#/displaying/format/
date_format: YYYY-MM-DD
time_format: HH:mm:ss
## updated_option supports 'mtime', 'date', 'empty'
updated_option: 'mtime'
# Pagination
## Set per_page to 0 to disable pagination
per_page: 10
pagination_dir: page
# Include / Exclude file(s)
## include:/exclude: options only apply to the 'source/' folder
include:
exclude:
ignore:
# Extensions
## Plugins: https://hexo.io/plugins/
## Themes: https://hexo.io/themes/
theme: Chic
# Deployment
## Docs: https://hexo.io/docs/one-command-deployment
deploy:
type: git
repository: https://github.com/interstellar750/interstellar750.github.io.git
branch: hexo-chic-old

File diff suppressed because one or more lines are too long

110
mdsvex.config.ts Normal file
View File

@ -0,0 +1,110 @@
// mdsvex config type
import type { MdsvexOptions } from 'mdsvex'
// rehype plugins
import rehypeSlug from 'rehype-slug'
import rehypeAutolinkHeadings from 'rehype-autolink-headings'
import rehypeExternalLinks from 'rehype-external-links'
// urara remark plugins
import type { Node, Data } from 'unist'
import { statSync } from 'fs'
import { parse, join } from 'path'
import { visit } from 'unist-util-visit'
import { toString } from 'mdast-util-to-string'
import Slugger from 'github-slugger'
import remarkFootnotes from 'remark-footnotes'
// highlighter
import { escapeSvelte } from 'mdsvex'
import { lex, parse as parseFence } from 'fenceparser'
import { renderCodeToHTML, runTwoSlash, createShikiHighlighter } from 'shiki-twoslash'
type VALUE = { [key in string | number]: VALUE } | Array<VALUE> | string | boolean | number
const remarkUraraFm =
() =>
(tree: Node<Data>, { data, filename }: { data: { fm?: Record<string, unknown> }; filename?: string }) => {
const filepath = (filename as string).split('/src/routes')[1]
const { dir, name } = parse(filepath)
if (!data.fm) data.fm = {}
// Generate slug & path
data.fm.slug = filepath
data.fm.path = join(dir, `/${name}`.replace('/+page', '').replace('.svelte', ''))
// Generate ToC
if (data.fm.toc !== false) {
const [slugs, toc]: [slugs: Slugger, toc: { depth: number; title: string; slug: string }[]] = [new Slugger(), []]
visit(tree, 'heading', (node: { depth: number }) => {
toc.push({
depth: node.depth,
title: toString(node),
slug: slugs.slug(toString(node), false)
})
})
data.fm.toc = toc
}
// Auto-read created & updated
if (!data.fm.created || !data.fm.updated) {
const { ctime, mtime } = statSync(new URL(`./urara${filepath}`, import.meta.url))
if (!data.fm.created) data.fm.created = ctime
if (!data.fm.updated) data.fm.updated = mtime
}
}
// Better type definitions needed
const remarkUraraSpoiler = () => (tree: Node<Data>) =>
visit(tree, 'paragraph', (node: any) => {
const { children } = node
const text = children[0].value
const re = /\|\|(.{1,}?)\|\|/g
if (re.test(children[0].value)) {
children[0].type = 'html'
children[0].value = text.replace(re, (_match: unknown, p1: string) => `<span class="spoiler">${p1}</span>`)
}
return node
})
const defineConfig = (config: MdsvexOptions) => config
export default defineConfig({
extensions: ['.svelte.md', '.md'],
smartypants: {
dashes: 'oldschool'
},
layout: {
_: './src/lib/components/post_layout.svelte'
},
highlight: {
highlighter: async (code, lang, meta) => {
let fence: Record<string, VALUE> | null
let twoslash: any
try {
fence = parseFence(lex([lang, meta].filter(Boolean).join(' ')))
} catch (error) {
throw new Error(`Could not parse the codefence for this code sample \n${code}`)
}
if (fence?.twoslash === true) twoslash = runTwoSlash(code, lang as string)
return `{@html \`${escapeSvelte(
renderCodeToHTML(
code,
lang as string,
fence ?? {},
{ themeName: 'material-default' },
await createShikiHighlighter({ theme: 'material-default' }),
twoslash
)
)}\` }`
}
},
remarkPlugins: [remarkUraraFm, remarkUraraSpoiler, [remarkFootnotes, { inlineNotes: true }]],
rehypePlugins: [
rehypeSlug,
[rehypeAutolinkHeadings, { behavior: 'wrap' }],
[
rehypeExternalLinks,
{
rel: ['nofollow', 'noopener', 'noreferrer', 'external'],
target: '_blank'
}
]
]
})

8
netlify.toml Normal file
View File

@ -0,0 +1,8 @@
[build]
command = "npx pnpm i --store=node_modules/.pnpm-store && npx pnpm build"
publish = "build"
[build.environment]
NPM_FLAGS = "--version"
AWS_LAMBDA_JS_RUNTIME = "nodejs16.x"
[functions]
node_bundler = "esbuild"

4207
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@ -1,28 +1,75 @@
{
"name": "hexo-site",
"version": "0.0.0",
"private": true,
"name": "urara",
"type": "module",
"version": "0.0.1",
"license": "WTFPL",
"repository": "importantimport/urara",
"homepage": "https://github.com/importantimport/urara",
"bugs": "https://github.com/importantimport/urara/issues",
"author": "藍+85CD",
"scripts": {
"build": "hexo generate",
"clean": "hexo clean",
"deploy": "hexo deploy",
"server": "hexo server"
"clean": "node urara.js clean",
"tsc": "tsc -p tsconfig.node.json",
"tsc:watch": "tsc -w -p tsconfig.node.json",
"urara:build": "node urara.js build",
"urara:watch": "node urara.js watch",
"kit:dev": "cross-env NODE_OPTIONS=--max_old_space_size=7680 vite dev",
"kit:build": "cross-env NODE_OPTIONS=--max_old_space_size=7680 vite build",
"dev:parallel": "npm-run-all -p -r tsc:watch urara:watch \"kit:dev {@} \" --",
"dev": "npm-run-all -s tsc \"dev:parallel {@} \" --",
"build": "npm-run-all -s tsc urara:build kit:build clean",
"preview": "vite preview",
"check": "svelte-check --tsconfig ./tsconfig.json",
"check:watch": "svelte-check --tsconfig ./tsconfig.json --watch",
"lint": "prettier --check --plugin-search-dir=. . && eslint --ignore-path .gitignore .",
"format": "prettier --write --plugin-search-dir=. ."
},
"hexo": {
"version": "6.2.0"
},
"dependencies": {
"hexo": "^6.3.0",
"hexo-deployer-git": "^3.0.0",
"hexo-generator-archive": "^1.0.0",
"hexo-generator-category": "^1.0.0",
"hexo-generator-index": "^2.0.0",
"hexo-generator-tag": "^1.0.0",
"hexo-renderer-ejs": "^2.0.0",
"hexo-renderer-marked": "^5.0.0",
"hexo-renderer-stylus": "^2.1.0",
"hexo-server": "^3.0.0",
"hexo-theme-landscape": "^0.0.3",
"hexo-util": "^2.6.1"
"devDependencies": {
"@iconify-json/heroicons-outline": "^1.1.4",
"@iconify-json/heroicons-solid": "^1.1.5",
"@sveltejs/adapter-auto": "next",
"@sveltejs/adapter-node": "next",
"@sveltejs/adapter-static": "next",
"@sveltejs/kit": "1.0.0-next.479",
"@tailwindcss/typography": "^0.5.7",
"@types/node": "^18.7.16",
"@types/unist": "^2.0.6",
"@typescript-eslint/eslint-plugin": "^5.36.2",
"@typescript-eslint/parser": "^5.36.2",
"autoprefixer": "^10.4.8",
"chalk": "^5.0.1",
"chokidar": "^3.5.3",
"cross-env": "^7.0.3",
"cssnano": "^5.1.13",
"daisyui": "^2.25.0",
"eslint": "^8.23.0",
"eslint-config-prettier": "^8.5.0",
"eslint-plugin-svelte3": "^4.0.0",
"fenceparser": "2.0.0",
"fff-flavored-frontmatter": "~0.2.2",
"github-slugger": "^1.4.0",
"mdast-util-to-string": "^3.1.0",
"mdsvex": "^0.10.6",
"npm-run-all": "^4.1.5",
"postcss": "^8.4.16",
"prettier": "^2.7.1",
"prettier-plugin-svelte": "^2.7.0",
"rehype-autolink-headings": "^6.1.1",
"rehype-external-links": "^1.0.1",
"rehype-slug": "^5.0.1",
"remark": "^14.0.2",
"remark-footnotes": "~2.0.0",
"shiki-twoslash": "^3.1.0",
"svelte": "^3.50.1",
"svelte-check": "^2.9.0",
"svelte-preprocess": "^4.10.7",
"tailwindcss": "^3.1.8",
"tslib": "^2.4.0",
"typescript": "^4.8.3",
"unist-util-visit": "^4.1.1",
"unocss": "^0.45.18",
"vite": "^3.1.0",
"vite-plugin-pwa": "^0.12.7",
"workbox-window": "^6.5.4"
}
}
}

6562
pnpm-lock.yaml Normal file

File diff suppressed because it is too large Load Diff

View File

@ -1,251 +0,0 @@
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport"
content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<meta name="author" content="Hubert Chen">
<title>Hello World | Hubert&#39;s Blog</title>
<link rel="icon" href="/favicon.ico">
<!-- stylesheets list from _config.yml -->
<link rel="stylesheet" href="/css/style.css">
<!-- scripts list from _config.yml -->
<script src="/js/script.js"></script>
<script src="/js/tocbot.min.js"></script>
<meta name="generator" content="Hexo 6.2.0"></head>
<body>
<script>
// this function is used to check current theme before page loaded.
(() => {
const currentTheme = window.localStorage && window.localStorage.getItem('theme') || '';
const isDark = currentTheme === 'dark';
const pagebody = document.getElementsByTagName('body')[0]
if (isDark) {
pagebody.classList.add('dark-theme');
// mobile
document.getElementById("mobile-toggle-theme").innerText = "· Dark"
} else {
pagebody.classList.remove('dark-theme');
// mobile
document.getElementById("mobile-toggle-theme").innerText = "· Light"
}
})();
</script>
<div class="wrapper">
<header>
<nav class="navbar">
<div class="container">
<div class="navbar-header header-logo"><a href="/">Hubert&#39;s Blog</a></div>
<div class="menu navbar-right">
<a class="menu-item" href="/archives">文章</a>
<a class="menu-item" href="/tag">标签</a>
<a class="menu-item" href="/about">关于</a>
<input id="switch_default" type="checkbox" class="switch_default">
<label for="switch_default" class="toggleBtn"></label>
</div>
</div>
</nav>
<nav class="navbar-mobile" id="nav-mobile">
<div class="container">
<div class="navbar-header">
<div>
<a href="/">Hubert&#39;s Blog</a><a id="mobile-toggle-theme">·&nbsp;Light</a>
</div>
<div class="menu-toggle" onclick="mobileBtn()">&#9776; 菜单</div>
</div>
<div class="menu" id="mobile-menu">
<a class="menu-item" href="/archives">文章</a>
<a class="menu-item" href="/tag">标签</a>
<a class="menu-item" href="/about">关于</a>
</div>
</div>
</nav>
</header>
<script>
var mobileBtn = function f() {
var toggleMenu = document.getElementsByClassName("menu-toggle")[0];
var mobileMenu = document.getElementById("mobile-menu");
if(toggleMenu.classList.contains("active")){
toggleMenu.classList.remove("active")
mobileMenu.classList.remove("active")
}else{
toggleMenu.classList.add("active")
mobileMenu.classList.add("active")
}
}
</script>
<div class="main">
<div class="container">
<div class="post-toc">
<div class="tocbot-list">
</div>
<div class="tocbot-list-menu">
<a class="tocbot-toc-expand" onclick="expand_toc()">展开全部</a>
<a onclick="go_top()">回到顶端</a>
<a onclick="go_bottom()">查看底部</a>
</div>
</div>
<script>
var tocbot_timer;
var DEPTH_MAX = 6; // 为 6 时展开所有
var tocbot_default_config = {
tocSelector: '.tocbot-list',
contentSelector: '.post-content',
headingSelector: 'h1, h2, h3',
orderedList: false,
scrollSmooth: true,
onClick: extend_click,
};
function extend_click() {
clearTimeout(tocbot_timer);
tocbot_timer = setTimeout(function () {
tocbot.refresh(obj_merge(tocbot_default_config, { hasInnerContainers: true }));
}, 420); // 这个值是由 tocbot 源码里定义的 scrollSmoothDuration 得来的
}
document.ready(function () {
tocbot.init(obj_merge(tocbot_default_config, { collapseDepth: 1 }));
});
function expandToc() {
var b = document.querySelector('.tocbot-toc-expand');
var expanded = b.getAttribute('data-expanded');
expanded ? b.removeAttribute('data-expanded') : b.setAttribute('data-expanded', true);
tocbot.refresh(obj_merge(tocbot_default_config, { collapseDepth: expanded ? 1 : DEPTH_MAX }));
b.innerText = expanded ? 'Expand all' : 'Collapse all';
}
function go_top() {
window.scrollTo(0, 0);
}
function go_bottom() {
window.scrollTo(0, document.body.scrollHeight);
}
function obj_merge(target, source) {
for (var item in source) {
if (source.hasOwnProperty(item)) {
target[item] = source[item];
}
}
return target;
}
</script>
<article class="post-wrap">
<header class="post-header">
<h1 class="post-title">Hello World</h1>
<div class="post-meta">
<span class="post-time">
日期: <a href="#">24 一月, 2022&nbsp;&nbsp;00:00:00</a>
</span>
</div>
</header>
<div class="post-content">
<p>Welcome to <a target="_blank" rel="noopener" href="https://hexo.io/">Hexo</a>! This is your very first post. Check <a target="_blank" rel="noopener" href="https://hexo.io/docs/">documentation</a> for more info. If you get any problems when using Hexo, you can find the answer in <a target="_blank" rel="noopener" href="https://hexo.io/docs/troubleshooting.html">troubleshooting</a> or you can ask me on <a target="_blank" rel="noopener" href="https://github.com/hexojs/hexo/issues">GitHub</a>.</p>
<h2 id="Quick-Start"><a href="#Quick-Start" class="headerlink" title="Quick Start"></a>Quick Start</h2><h3 id="Create-a-new-post"><a href="#Create-a-new-post" class="headerlink" title="Create a new post"></a>Create a new post</h3><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">$ hexo new <span class="string">&quot;My New Post&quot;</span></span><br></pre></td></tr></table></figure>
<p>More info: <a target="_blank" rel="noopener" href="https://hexo.io/docs/writing.html">Writing</a></p>
<h3 id="Run-server"><a href="#Run-server" class="headerlink" title="Run server"></a>Run server</h3><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">$ hexo server</span><br></pre></td></tr></table></figure>
<p>More info: <a target="_blank" rel="noopener" href="https://hexo.io/docs/server.html">Server</a></p>
<h3 id="Generate-static-files"><a href="#Generate-static-files" class="headerlink" title="Generate static files"></a>Generate static files</h3><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">$ hexo generate</span><br></pre></td></tr></table></figure>
<p>More info: <a target="_blank" rel="noopener" href="https://hexo.io/docs/generating.html">Generating</a></p>
<h3 id="Deploy-to-remote-sites"><a href="#Deploy-to-remote-sites" class="headerlink" title="Deploy to remote sites"></a>Deploy to remote sites</h3><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">$ hexo deploy</span><br></pre></td></tr></table></figure>
<p>More info: <a target="_blank" rel="noopener" href="https://hexo.io/docs/one-command-deployment.html">Deployment</a></p>
</div>
<section class="post-tags">
<div>
<span>标签:</span>
<span class="tag">
</span>
</div>
<div>
<a href="javascript:window.history.back();">返回</a>
<span>· </span>
<a href="/">主页</a>
</div>
</section>
<section class="post-nav">
<a class="prev" rel="prev" href="/2022/01/26/02.pages/">这是一个测试页面</a>
</section>
</article>
</div>
</div>
<footer id="footer" class="footer">
<div class="copyright">
<span>Hubert Chen © 2022 | Powered by <a href="https://hexo.io" target="_blank">Hexo</a> & <a href="https://github.com/Siricee/hexo-theme-Chic" target="_blank">Chic</a></span>
</div>
</footer>
</div>
</body>
</html>

View File

@ -1,186 +0,0 @@
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport"
content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<meta name="author" content="Hubert Chen">
<title>这是一个测试页面 | Hubert&#39;s Blog</title>
<link rel="icon" href="/favicon.ico">
<!-- stylesheets list from _config.yml -->
<link rel="stylesheet" href="/css/style.css">
<!-- scripts list from _config.yml -->
<script src="/js/script.js"></script>
<script src="/js/tocbot.min.js"></script>
<meta name="generator" content="Hexo 6.2.0"></head>
<body>
<script>
// this function is used to check current theme before page loaded.
(() => {
const currentTheme = window.localStorage && window.localStorage.getItem('theme') || '';
const isDark = currentTheme === 'dark';
const pagebody = document.getElementsByTagName('body')[0]
if (isDark) {
pagebody.classList.add('dark-theme');
// mobile
document.getElementById("mobile-toggle-theme").innerText = "· Dark"
} else {
pagebody.classList.remove('dark-theme');
// mobile
document.getElementById("mobile-toggle-theme").innerText = "· Light"
}
})();
</script>
<div class="wrapper">
<header>
<nav class="navbar">
<div class="container">
<div class="navbar-header header-logo"><a href="/">Hubert&#39;s Blog</a></div>
<div class="menu navbar-right">
<a class="menu-item" href="/archives">文章</a>
<a class="menu-item" href="/tag">标签</a>
<a class="menu-item" href="/about">关于</a>
<input id="switch_default" type="checkbox" class="switch_default">
<label for="switch_default" class="toggleBtn"></label>
</div>
</div>
</nav>
<nav class="navbar-mobile" id="nav-mobile">
<div class="container">
<div class="navbar-header">
<div>
<a href="/">Hubert&#39;s Blog</a><a id="mobile-toggle-theme">·&nbsp;Light</a>
</div>
<div class="menu-toggle" onclick="mobileBtn()">&#9776; 菜单</div>
</div>
<div class="menu" id="mobile-menu">
<a class="menu-item" href="/archives">文章</a>
<a class="menu-item" href="/tag">标签</a>
<a class="menu-item" href="/about">关于</a>
</div>
</div>
</nav>
</header>
<script>
var mobileBtn = function f() {
var toggleMenu = document.getElementsByClassName("menu-toggle")[0];
var mobileMenu = document.getElementById("mobile-menu");
if(toggleMenu.classList.contains("active")){
toggleMenu.classList.remove("active")
mobileMenu.classList.remove("active")
}else{
toggleMenu.classList.add("active")
mobileMenu.classList.add("active")
}
}
</script>
<div class="main">
<div class="container">
<article class="post-wrap">
<header class="post-header">
<h1 class="post-title">这是一个测试页面</h1>
<div class="post-meta">
<span class="post-time">
日期: <a href="#">26 一月, 2022&nbsp;&nbsp;00:00:00</a>
</span>
</div>
</header>
<div class="post-content">
<p><u>测试下划线</u><br><code>测试等宽abc</code><br><a target="_blank" rel="noopener" href="https://github.com/">测试链接</a><br><img src="/images/post/02/test.png" alt="测试图片"><br>test netease music</p>
<iframe border="0" marginwidth="0" marginheight="0" src="//music.163.com/outchain/player?type=2&amp;id=1300697588&amp;auto=0&amp;height=66" width="330" height="86" frameborder="no"></iframe>
</div>
<section class="post-tags">
<div>
<span>标签:</span>
<span class="tag">
<a href="/tag/%E6%B5%8B%E8%AF%95/"># 测试</a>
</span>
</div>
<div>
<a href="javascript:window.history.back();">返回</a>
<span>· </span>
<a href="/">主页</a>
</div>
</section>
<section class="post-nav">
<a class="prev" rel="prev" href="/2022/01/26/03.testagain/">testagain</a>
<a class="next" rel="next" href="/2022/01/24/01.hello-world/">Hello World</a>
</section>
</article>
</div>
</div>
<footer id="footer" class="footer">
<div class="copyright">
<span>Hubert Chen © 2022 | Powered by <a href="https://hexo.io" target="_blank">Hexo</a> & <a href="https://github.com/Siricee/hexo-theme-Chic" target="_blank">Chic</a></span>
</div>
</footer>
</div>
</body>
</html>

View File

@ -1,185 +0,0 @@
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport"
content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<meta name="author" content="Hubert Chen">
<title>testagain | Hubert&#39;s Blog</title>
<link rel="icon" href="/favicon.ico">
<!-- stylesheets list from _config.yml -->
<link rel="stylesheet" href="/css/style.css">
<!-- scripts list from _config.yml -->
<script src="/js/script.js"></script>
<script src="/js/tocbot.min.js"></script>
<meta name="generator" content="Hexo 6.2.0"></head>
<body>
<script>
// this function is used to check current theme before page loaded.
(() => {
const currentTheme = window.localStorage && window.localStorage.getItem('theme') || '';
const isDark = currentTheme === 'dark';
const pagebody = document.getElementsByTagName('body')[0]
if (isDark) {
pagebody.classList.add('dark-theme');
// mobile
document.getElementById("mobile-toggle-theme").innerText = "· Dark"
} else {
pagebody.classList.remove('dark-theme');
// mobile
document.getElementById("mobile-toggle-theme").innerText = "· Light"
}
})();
</script>
<div class="wrapper">
<header>
<nav class="navbar">
<div class="container">
<div class="navbar-header header-logo"><a href="/">Hubert&#39;s Blog</a></div>
<div class="menu navbar-right">
<a class="menu-item" href="/archives">文章</a>
<a class="menu-item" href="/tag">标签</a>
<a class="menu-item" href="/about">关于</a>
<input id="switch_default" type="checkbox" class="switch_default">
<label for="switch_default" class="toggleBtn"></label>
</div>
</div>
</nav>
<nav class="navbar-mobile" id="nav-mobile">
<div class="container">
<div class="navbar-header">
<div>
<a href="/">Hubert&#39;s Blog</a><a id="mobile-toggle-theme">·&nbsp;Light</a>
</div>
<div class="menu-toggle" onclick="mobileBtn()">&#9776; 菜单</div>
</div>
<div class="menu" id="mobile-menu">
<a class="menu-item" href="/archives">文章</a>
<a class="menu-item" href="/tag">标签</a>
<a class="menu-item" href="/about">关于</a>
</div>
</div>
</nav>
</header>
<script>
var mobileBtn = function f() {
var toggleMenu = document.getElementsByClassName("menu-toggle")[0];
var mobileMenu = document.getElementById("mobile-menu");
if(toggleMenu.classList.contains("active")){
toggleMenu.classList.remove("active")
mobileMenu.classList.remove("active")
}else{
toggleMenu.classList.add("active")
mobileMenu.classList.add("active")
}
}
</script>
<div class="main">
<div class="container">
<article class="post-wrap">
<header class="post-header">
<h1 class="post-title">testagain</h1>
<div class="post-meta">
<span class="post-time">
日期: <a href="#">26 一月, 2022&nbsp;&nbsp;23:40:35</a>
</span>
</div>
</header>
<div class="post-content">
<iframe border="0" marginwidth="0" marginheight="0" src="//music.163.com/outchain/player?type=2&amp;id=1300697588&amp;auto=0&amp;height=66" width="330" height="86" frameborder="no"></iframe>
</div>
<section class="post-tags">
<div>
<span>标签:</span>
<span class="tag">
<a href="/tag/%E6%B5%8B%E8%AF%95/"># 测试</a>
</span>
</div>
<div>
<a href="javascript:window.history.back();">返回</a>
<span>· </span>
<a href="/">主页</a>
</div>
</section>
<section class="post-nav">
<a class="prev" rel="prev" href="/2022/03/01/04.%E6%AC%A2%E8%BF%8E%E5%8F%82%E8%A7%82/">欢迎参观</a>
<a class="next" rel="next" href="/2022/01/26/02.pages/">这是一个测试页面</a>
</section>
</article>
</div>
</div>
<footer id="footer" class="footer">
<div class="copyright">
<span>Hubert Chen © 2022 | Powered by <a href="https://hexo.io" target="_blank">Hexo</a> & <a href="https://github.com/Siricee/hexo-theme-Chic" target="_blank">Chic</a></span>
</div>
</footer>
</div>
</body>
</html>

View File

@ -1,254 +0,0 @@
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport"
content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<meta name="author" content="Hubert Chen">
<title>欢迎参观 | Hubert&#39;s Blog</title>
<link rel="icon" href="/favicon.ico">
<!-- stylesheets list from _config.yml -->
<link rel="stylesheet" href="/css/style.css">
<!-- scripts list from _config.yml -->
<script src="/js/script.js"></script>
<script src="/js/tocbot.min.js"></script>
<meta name="generator" content="Hexo 6.2.0"></head>
<body>
<script>
// this function is used to check current theme before page loaded.
(() => {
const currentTheme = window.localStorage && window.localStorage.getItem('theme') || '';
const isDark = currentTheme === 'dark';
const pagebody = document.getElementsByTagName('body')[0]
if (isDark) {
pagebody.classList.add('dark-theme');
// mobile
document.getElementById("mobile-toggle-theme").innerText = "· Dark"
} else {
pagebody.classList.remove('dark-theme');
// mobile
document.getElementById("mobile-toggle-theme").innerText = "· Light"
}
})();
</script>
<div class="wrapper">
<header>
<nav class="navbar">
<div class="container">
<div class="navbar-header header-logo"><a href="/">Hubert&#39;s Blog</a></div>
<div class="menu navbar-right">
<a class="menu-item" href="/archives">文章</a>
<a class="menu-item" href="/tag">标签</a>
<a class="menu-item" href="/about">关于</a>
<input id="switch_default" type="checkbox" class="switch_default">
<label for="switch_default" class="toggleBtn"></label>
</div>
</div>
</nav>
<nav class="navbar-mobile" id="nav-mobile">
<div class="container">
<div class="navbar-header">
<div>
<a href="/">Hubert&#39;s Blog</a><a id="mobile-toggle-theme">·&nbsp;Light</a>
</div>
<div class="menu-toggle" onclick="mobileBtn()">&#9776; 菜单</div>
</div>
<div class="menu" id="mobile-menu">
<a class="menu-item" href="/archives">文章</a>
<a class="menu-item" href="/tag">标签</a>
<a class="menu-item" href="/about">关于</a>
</div>
</div>
</nav>
</header>
<script>
var mobileBtn = function f() {
var toggleMenu = document.getElementsByClassName("menu-toggle")[0];
var mobileMenu = document.getElementById("mobile-menu");
if(toggleMenu.classList.contains("active")){
toggleMenu.classList.remove("active")
mobileMenu.classList.remove("active")
}else{
toggleMenu.classList.add("active")
mobileMenu.classList.add("active")
}
}
</script>
<div class="main">
<div class="container">
<div class="post-toc">
<div class="tocbot-list">
</div>
<div class="tocbot-list-menu">
<a class="tocbot-toc-expand" onclick="expand_toc()">展开全部</a>
<a onclick="go_top()">回到顶端</a>
<a onclick="go_bottom()">查看底部</a>
</div>
</div>
<script>
var tocbot_timer;
var DEPTH_MAX = 6; // 为 6 时展开所有
var tocbot_default_config = {
tocSelector: '.tocbot-list',
contentSelector: '.post-content',
headingSelector: 'h1, h2, h3',
orderedList: false,
scrollSmooth: true,
onClick: extend_click,
};
function extend_click() {
clearTimeout(tocbot_timer);
tocbot_timer = setTimeout(function () {
tocbot.refresh(obj_merge(tocbot_default_config, { hasInnerContainers: true }));
}, 420); // 这个值是由 tocbot 源码里定义的 scrollSmoothDuration 得来的
}
document.ready(function () {
tocbot.init(obj_merge(tocbot_default_config, { collapseDepth: 1 }));
});
function expandToc() {
var b = document.querySelector('.tocbot-toc-expand');
var expanded = b.getAttribute('data-expanded');
expanded ? b.removeAttribute('data-expanded') : b.setAttribute('data-expanded', true);
tocbot.refresh(obj_merge(tocbot_default_config, { collapseDepth: expanded ? 1 : DEPTH_MAX }));
b.innerText = expanded ? 'Expand all' : 'Collapse all';
}
function go_top() {
window.scrollTo(0, 0);
}
function go_bottom() {
window.scrollTo(0, document.body.scrollHeight);
}
function obj_merge(target, source) {
for (var item in source) {
if (source.hasOwnProperty(item)) {
target[item] = source[item];
}
}
return target;
}
</script>
<article class="post-wrap">
<header class="post-header">
<h1 class="post-title">欢迎参观</h1>
<div class="post-meta">
<span class="post-time">
日期: <a href="#">01 三月, 2022&nbsp;&nbsp;11:42:55</a>
</span>
</div>
</header>
<div class="post-content">
<h2 id="你好,欢迎来到我的博客"><a href="#你好,欢迎来到我的博客" class="headerlink" title="你好,欢迎来到我的博客"></a>你好,欢迎来到我的博客</h2><p>这个博客由我创建于2022年01月24日起初是想跟网络上的大佬一样搭个自己的博客不过现在搭好了也不知道写些什么。</p>
<h2 id="关于我-Hubert-Chen"><a href="#关于我-Hubert-Chen" class="headerlink" title="关于我 (Hubert Chen)"></a>关于我 (Hubert Chen)</h2><h3 id="兴趣爱好"><a href="#兴趣爱好" class="headerlink" title="兴趣爱好"></a>兴趣爱好</h3><p>给手机刷系统,例如 <a target="_blank" rel="noopener" href="https://lineageos.org/">Lineage OS</a> <a target="_blank" rel="noopener" href="https://sailfishos.org/">Sailfish OS</a><br>会些基础的Linux操作<del>不过十分容易碰见bug</del><br>会画画 (非常非常基础,目前只会描些图)<br>听音乐使用的软件: <a target="_blank" rel="noopener" href="https://spotify.com/">Spotify</a> <a target="_blank" rel="noopener" href="https://music.163.com/">网易云音乐</a> 偶尔会在网易云音乐里上传一些歌词<br>玩游戏会用的软件: <a target="_blank" rel="noopener" href="https://store.steampowered.com/">Steam</a> <a target="_blank" rel="noopener" href="https://www.ubisoft.com/">Ubisoft</a> <a target="_blank" rel="noopener" href="https://www.xbox.com/">Xbox(云游戏)</a><br>活跃的社交平台:<a target="_blank" rel="noopener" href="https://t.me/trle5">Telegram</a> <a target="_blank" rel="noopener" href="https://twitter.com/interstellar750">Twitter</a> <a target="_blank" rel="noopener" href="https://github.com/Interstellar750/">GitHub</a> <a target="_blank" rel="noopener" href="https://matrix.io/#/@trle5:matrix.org">Matrix</a> 国内的QQ微信也在用但并不太喜欢而且放出来可能会泄露个人信息所以就不公开了</p>
<h2 id="建站历程:"><a href="#建站历程:" class="headerlink" title="建站历程:"></a>建站历程:</h2><h3 id="2022-x2F-01-x2F-24"><a href="#2022-x2F-01-x2F-24" class="headerlink" title="2022&#x2F;01&#x2F;24"></a>2022&#x2F;01&#x2F;24</h3><p>初次建立并使用 <a target="_blank" rel="noopener" href="https://github.io/">GitHub Pages</a> 来作为服务器 其实并不是第一次前前后后试了好几次因为碰到了好多bug</p>
<h3 id="2022-x2F-01-x2F-29"><a href="#2022-x2F-01-x2F-29" class="headerlink" title="2022&#x2F;01&#x2F;29"></a>2022&#x2F;01&#x2F;29</h3><p><a href="freenom.com">Freenom</a> 上申请了12个月的免费域名 trle5.tk 但由于不会设置DNS解析依然用着 <a target="_blank" rel="noopener" href="https://github.io/">GitHub Pages</a> 的默认域名</p>
<h3 id="2022-x2F-02-x2F-26"><a href="#2022-x2F-02-x2F-26" class="headerlink" title="2022&#x2F;02&#x2F;26"></a>2022&#x2F;02&#x2F;26</h3><p>由于 x10m2 上的 <a target="_blank" rel="noopener" href="https://sailfishos.org/">Sailfish OS</a> 因为未知问题操作很卡,把 hexo 后端备份出来迁移到了s10e使用 <a target="_blank" rel="noopener" href="https://play.google.com/store/apps/details?id=com.termux">Termux</a> 来继续运维</p>
<h3 id="2022-x2F-02-x2F-27"><a href="#2022-x2F-02-x2F-27" class="headerlink" title="2022&#x2F;02&#x2F;27"></a>2022&#x2F;02&#x2F;27</h3><p>将域名 DNS 解析托管到 <a href="godaddy.com">GoDaddy</a> ,成功用上了自定义域名</p>
<h3 id="2022-x2F-03-x2F-08"><a href="#2022-x2F-03-x2F-08" class="headerlink" title="2022&#x2F;03&#x2F;08"></a>2022&#x2F;03&#x2F;08</h3><p><a target="_blank" rel="noopener" href="https://reg.ru/">reg.ru</a> 购买了一年的 <a target="_blank" rel="noopener" href="https://trle5.xyz/">trle5.xyz</a> 域名,用于存放文件,本站可能有一些图片文件会储存在里面</p>
<h3 id="2022-x2F-03-x2F-14"><a href="#2022-x2F-03-x2F-14" class="headerlink" title="2022&#x2F;03&#x2F;14"></a>2022&#x2F;03&#x2F;14</h3><p>更换为由 <a href="freenom.com">Freenom</a> 提供的 DNS 解析</p>
<h3 id="2022-x2F-03-x2F-15"><a href="#2022-x2F-03-x2F-15" class="headerlink" title="2022&#x2F;03&#x2F;15"></a>2022&#x2F;03&#x2F;15</h3><p>把 blackbox 的域名从 <a target="_blank" rel="noopener" href="https://trle5.xyz/">trle5.xyz</a> 迁移到 <a target="_blank" rel="noopener" href="https://t5d.trle5.tk/">t5d.trle5.tk</a></p>
<h3 id="2022-x2F-05-x2F-07"><a href="#2022-x2F-05-x2F-07" class="headerlink" title="2022&#x2F;05&#x2F;07"></a>2022&#x2F;05&#x2F;07</h3><p>从默认的 Landscape 主题更换为 <a target="_blank" rel="noopener" href="https://github.com/Siricee">Siricee</a> 制作的 <a target="_blank" rel="noopener" href="https://github.com/Siricee/hexo-theme-Chic">Chic</a> 主题</p>
<h3 id="2022-x2F-05-x2F-08"><a href="#2022-x2F-05-x2F-08" class="headerlink" title="2022&#x2F;05&#x2F;08"></a>2022&#x2F;05&#x2F;08</h3><p>使用 <a target="_blank" rel="noopener" href="https://vercel.com/">Vercel</a> 建立了博客镜像站,使用域名 <a target="_blank" rel="noopener" href="https://trle5.xyz/">trle5.xyz</a> DNS 解析由 <a target="_blank" rel="noopener" href="https://cloudflare.com/">Cloudflare</a> 提供</p>
<h3 id="2022-x2F-06-x2F-01"><a href="#2022-x2F-06-x2F-01" class="headerlink" title="2022&#x2F;06&#x2F;01"></a>2022&#x2F;06&#x2F;01</h3><p>重新配置了博客主题,因为 05&#x2F;15 那天手机数据丢失让博客后端也部分丢失了 (真的丢了好多东西啊😢)</p>
<h3 id="2022-x2F-07-x2F-19"><a href="#2022-x2F-07-x2F-19" class="headerlink" title="2022&#x2F;07&#x2F;19"></a>2022&#x2F;07&#x2F;19</h3><p>重新修正了一篇文章,之前写的文章发现达不到所想的方案所以就暂搁了 <del><strong></strong></del> 由于之前的丢数据问题Cloudflare 账号也登不上了,找回有点麻烦</p>
<h3 id="2022-x2F-09-x2F-11"><a href="#2022-x2F-09-x2F-11" class="headerlink" title="2022&#x2F;09&#x2F;11"></a>2022&#x2F;09&#x2F;11</h3><p>给 Cloudflare 客服发邮件,成功拿回了账号的控制权,目前 <a target="_blank" rel="noopener" href="https://trle5.xyz/">trle5.xyz</a> 站点会随时更新,就是代表上面可能会有一些没写完的文章和新东西,文章写完后再推送至 <a href="https://trle5.tk/">trle5.tk</a>,于 6 月 4 日在 <a target="_blank" rel="noopener" href="https://porkbun.com/">Porkbun</a> 白嫖的 <a target="_blank" rel="noopener" href="https://trle5.dev/">trle5.dev</a> 域名还没打算好用来干嘛,两个付费域名以我现在的经济能力压力有点大</p>
</div>
<section class="post-tags">
<div>
<span>标签:</span>
<span class="tag">
</span>
</div>
<div>
<a href="javascript:window.history.back();">返回</a>
<span>· </span>
<a href="/">主页</a>
</div>
</section>
<section class="post-nav">
<a class="prev" rel="prev" href="/2022/03/05/05.%E6%90%AD%E5%BB%BA%E4%B8%80%E4%B8%AA%E8%87%AA%E5%B7%B1%E7%9A%84%E5%8D%9A%E5%AE%A2/">搭建一个自己的博客</a>
<a class="next" rel="next" href="/2022/01/26/03.testagain/">testagain</a>
</section>
</article>
</div>
</div>
<footer id="footer" class="footer">
<div class="copyright">
<span>Hubert Chen © 2022 | Powered by <a href="https://hexo.io" target="_blank">Hexo</a> & <a href="https://github.com/Siricee/hexo-theme-Chic" target="_blank">Chic</a></span>
</div>
</footer>
</div>
</body>
</html>

View File

@ -1,455 +0,0 @@
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport"
content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<meta name="author" content="Hubert Chen">
<title>搭建一个自己的博客 | Hubert&#39;s Blog</title>
<link rel="icon" href="/favicon.ico">
<!-- stylesheets list from _config.yml -->
<link rel="stylesheet" href="/css/style.css">
<!-- scripts list from _config.yml -->
<script src="/js/script.js"></script>
<script src="/js/tocbot.min.js"></script>
<meta name="generator" content="Hexo 6.2.0"></head>
<body>
<script>
// this function is used to check current theme before page loaded.
(() => {
const currentTheme = window.localStorage && window.localStorage.getItem('theme') || '';
const isDark = currentTheme === 'dark';
const pagebody = document.getElementsByTagName('body')[0]
if (isDark) {
pagebody.classList.add('dark-theme');
// mobile
document.getElementById("mobile-toggle-theme").innerText = "· Dark"
} else {
pagebody.classList.remove('dark-theme');
// mobile
document.getElementById("mobile-toggle-theme").innerText = "· Light"
}
})();
</script>
<div class="wrapper">
<header>
<nav class="navbar">
<div class="container">
<div class="navbar-header header-logo"><a href="/">Hubert&#39;s Blog</a></div>
<div class="menu navbar-right">
<a class="menu-item" href="/archives">文章</a>
<a class="menu-item" href="/tag">标签</a>
<a class="menu-item" href="/about">关于</a>
<input id="switch_default" type="checkbox" class="switch_default">
<label for="switch_default" class="toggleBtn"></label>
</div>
</div>
</nav>
<nav class="navbar-mobile" id="nav-mobile">
<div class="container">
<div class="navbar-header">
<div>
<a href="/">Hubert&#39;s Blog</a><a id="mobile-toggle-theme">·&nbsp;Light</a>
</div>
<div class="menu-toggle" onclick="mobileBtn()">&#9776; 菜单</div>
</div>
<div class="menu" id="mobile-menu">
<a class="menu-item" href="/archives">文章</a>
<a class="menu-item" href="/tag">标签</a>
<a class="menu-item" href="/about">关于</a>
</div>
</div>
</nav>
</header>
<script>
var mobileBtn = function f() {
var toggleMenu = document.getElementsByClassName("menu-toggle")[0];
var mobileMenu = document.getElementById("mobile-menu");
if(toggleMenu.classList.contains("active")){
toggleMenu.classList.remove("active")
mobileMenu.classList.remove("active")
}else{
toggleMenu.classList.add("active")
mobileMenu.classList.add("active")
}
}
</script>
<div class="main">
<div class="container">
<div class="post-toc">
<div class="tocbot-list">
</div>
<div class="tocbot-list-menu">
<a class="tocbot-toc-expand" onclick="expand_toc()">展开全部</a>
<a onclick="go_top()">回到顶端</a>
<a onclick="go_bottom()">查看底部</a>
</div>
</div>
<script>
var tocbot_timer;
var DEPTH_MAX = 6; // 为 6 时展开所有
var tocbot_default_config = {
tocSelector: '.tocbot-list',
contentSelector: '.post-content',
headingSelector: 'h1, h2, h3',
orderedList: false,
scrollSmooth: true,
onClick: extend_click,
};
function extend_click() {
clearTimeout(tocbot_timer);
tocbot_timer = setTimeout(function () {
tocbot.refresh(obj_merge(tocbot_default_config, { hasInnerContainers: true }));
}, 420); // 这个值是由 tocbot 源码里定义的 scrollSmoothDuration 得来的
}
document.ready(function () {
tocbot.init(obj_merge(tocbot_default_config, { collapseDepth: 1 }));
});
function expandToc() {
var b = document.querySelector('.tocbot-toc-expand');
var expanded = b.getAttribute('data-expanded');
expanded ? b.removeAttribute('data-expanded') : b.setAttribute('data-expanded', true);
tocbot.refresh(obj_merge(tocbot_default_config, { collapseDepth: expanded ? 1 : DEPTH_MAX }));
b.innerText = expanded ? 'Expand all' : 'Collapse all';
}
function go_top() {
window.scrollTo(0, 0);
}
function go_bottom() {
window.scrollTo(0, document.body.scrollHeight);
}
function obj_merge(target, source) {
for (var item in source) {
if (source.hasOwnProperty(item)) {
target[item] = source[item];
}
}
return target;
}
</script>
<article class="post-wrap">
<header class="post-header">
<h1 class="post-title">搭建一个自己的博客</h1>
<div class="post-meta">
<span class="post-time">
日期: <a href="#">05 三月, 2022&nbsp;&nbsp;19:01:48</a>
</span>
</div>
</header>
<div class="post-content">
<p> 你好!这里是 Hubert ,欢迎来我的博客看文章!</p>
<h2 id="如何搭建自己的博客"><a href="#如何搭建自己的博客" class="headerlink" title="如何搭建自己的博客"></a>如何搭建自己的博客</h2><p> 搭建博客并没有那么困难,大部分的时候只需要跟着步骤走就行,当然有时候碰见 bug 会是不可避免的事,这就得看运气了 <del>我是属于运气差的那一类人。</del></p>
<p> 本文里使用的博客框架为 <a target="_blank" rel="noopener" href="https://github.com/hexojs/hexo">Hexo</a> ,服务器使用 <a href="github.io">GitHub Pages</a>。域名可使用 Github Pages 默认域名或自定义</p>
<h3 id="那么就正式开始吧,毕竟我也不会写太多介绍"><a href="#那么就正式开始吧,毕竟我也不会写太多介绍" class="headerlink" title="那么就正式开始吧,毕竟我也不会写太多介绍"></a>那么就正式开始吧,毕竟我也不会写太多介绍</h3><h4 id="搭建博客需要准备的东西:"><a href="#搭建博客需要准备的东西:" class="headerlink" title="搭建博客需要准备的东西:"></a>搭建博客需要准备的东西:</h4> <figure class="highlight plaintext"><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">1. 可正常使用且没有被限制的 GitHub 账户</span><br><span class="line">2. 搭载 Windows、Linux 或 Android 的设备</span><br><span class="line">3. 良好的网络环境(我不知道啊你不要问我)</span><br></pre></td></tr></table></figure>
<p>首先创建 GitHub 账户,因为我们搭建博客要用到 GitHub Pages ,注册过程我就不多阐述了,看不懂可以打开浏览器的翻译功能,也可以在搜索引擎寻找对应的教程。<br>创建完了 GitHub 账户需要创建一个仓库Repositories用于存放博客文件和启用 GitHub Pages 。</p>
<p>登录到 GitHub 网页版后,可以看见左上角的 <strong>Recent Repositories</strong> 旁有个 <strong>New</strong> 按钮,点击它来新建仓库<img src="/images/post/05/github202203051935.png"><br>如果是使用手机来访问,可以进入 <code>https://github.com/&lt;你的github用户名&gt;?tab=repositories</code> 就能看见那个New按钮了 <img src="/images/post/05/github202203051951.png"></p>
<p>创建仓库需要设定仓库名与仓库类型(公开或私密),如果你希望使用 Github Pages 给的二级域名,你需要把仓库名设为 <code>&lt;你的GitHub用户名&gt;.github.io</code> ,否则你的 Github Pages 网页会变成 <code>&lt;你的GitHub用户名&gt;.github.io/&lt;创建的仓库名&gt;</code>,但如果你使用自定义域名的话随便设置都没问题,仓库类型推荐使用公开,因为似乎只有 Github 付费用户才能在私密的仓库中开启 Github Pages 功能。</p>
<p>到这里 Github 的设置基本就完成了,接下来就应该开始配置 hexo 客户端了</p>
<h2 id="配置-Hexo-客户端"><a href="#配置-Hexo-客户端" class="headerlink" title="配置 Hexo 客户端"></a>配置 Hexo 客户端</h2><p>一旦配置完 Hexo 客户端,博客控制文件是全平台通用的,所以这里只说明如何在各个客户端配置,搭建以及部署后面统一讲。</p>
<hr>
<h3 id="在-Windows-设备上配置-Hexo-客户端"><a href="#在-Windows-设备上配置-Hexo-客户端" class="headerlink" title="在 Windows 设备上配置 Hexo 客户端"></a>在 Windows 设备上配置 Hexo 客户端</h3><p>首先要安装 Windows 版 <a target="_blank" rel="noopener" href="https://nodejs.org/en/download/">Node.js</a> ,选择 <strong>Windows Installer</strong></p>
<p>安装完成后测试是否正常</p>
<figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line">node -v</span><br><span class="line">npm -v</span><br></pre></td></tr></table></figure>
<p>都能正常提示版本号的话,那就可以直接安装 Hexo 客户端</p>
<figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line">npm install -g hexo-cli</span><br><span class="line">hexo version # 检查 hexo 是否正常</span><br></pre></td></tr></table></figure>
<p>然后还需要安装一下 Git , 方法有两个。</p>
<ol>
<li>进入 <a target="_blank" rel="noopener" href="https://git-scm.com/">Git官网</a> 下载常规安装包</li>
<li>使用winget <code>winget install --id Git.Git -e --source winget</code></li>
</ol>
<p>这时候就可以部署 Hexo 了,创建一个放博客的文件夹比较好,推荐在用户文件夹下创建一个 hexo 文件夹给它当然如果你已经在其他平台配置过了也可以cd到那个文件夹直接进去继续操作。</p>
<figure class="highlight plaintext"><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">cd C:/Users/&lt;你的用户名&gt;/hexo/</span><br><span class="line">cd /d &lt;目录&gt; # CMD用户使用这条命令来切换目录</span><br><span class="line">hexo init</span><br></pre></td></tr></table></figure>
<p>到这里的 Windwos上的 hexo 已经部署完成了</p>
<hr>
<h3 id="在-Linux-设备上配置-Hexo-客户端"><a href="#在-Linux-设备上配置-Hexo-客户端" class="headerlink" title="在 Linux 设备上配置 Hexo 客户端"></a>在 Linux 设备上配置 Hexo 客户端</h3><p>相比于 Windows Linux 上的 Hexo 安装更为简单,只用在命令行运行几个命令</p>
<figure class="highlight plaintext"><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></pre></td><td class="code"><pre><span class="line">$ sudo apt update</span><br><span class="line">$ sudo apt install nodejs</span><br><span class="line">$ sudo apt install git # 如果已经安装了git可以跳过这一步</span><br><span class="line">$ sudo npm install -g hexo-cli</span><br><span class="line">$ hexo version</span><br></pre></td></tr></table></figure>
<p>挺简单的,接着在<code>~/</code>下创建一个<code>hexo</code>文件夹再部署就行</p>
<figure class="highlight plaintext"><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">$ mkdir hexo</span><br><span class="line">$ cd hexo</span><br><span class="line">$ hexo init # 此步如果有报错请使用sudo执行或清空部署文件夹</span><br></pre></td></tr></table></figure>
<p>完成</p>
<hr>
<h3 id="在-Android-设备上配置-Hexo-客户端"><a href="#在-Android-设备上配置-Hexo-客户端" class="headerlink" title="在 Android 设备上配置 Hexo 客户端"></a>在 Android 设备上配置 Hexo 客户端</h3><h4 id="由于考虑到一些手机品牌的不可获取-root-性,本文章使用-Termux-来运行命令"><a href="#由于考虑到一些手机品牌的不可获取-root-性,本文章使用-Termux-来运行命令" class="headerlink" title="由于考虑到一些手机品牌的不可获取 root 性,本文章使用 Termux 来运行命令"></a>由于考虑到一些手机品牌的不可获取 root 性,本文章使用 Termux 来运行命令</h4><p>&lt;&lt;&lt;&lt;&lt;&lt;&lt; HEAD</p>
<h4 id="但由于-Termux-的默认用户文件夹是在-data-data-com-ternux-files-home-下,没有-root-权限可能无法读取和写入文件,用户可能要慎重考虑一下,博客可以部署到-GitHub-Pages-上,但后端控制文件可能得找其他办法传输出来。"><a href="#但由于-Termux-的默认用户文件夹是在-data-data-com-ternux-files-home-下,没有-root-权限可能无法读取和写入文件,用户可能要慎重考虑一下,博客可以部署到-GitHub-Pages-上,但后端控制文件可能得找其他办法传输出来。" class="headerlink" title="但由于 Termux 的默认用户文件夹是在 /data/data/com.ternux/files/home/ 下,没有 root 权限可能无法读取和写入文件,用户可能要慎重考虑一下,博客可以部署到 GitHub Pages 上,但后端控制文件可能得找其他办法传输出来。"></a>但由于 Termux 的默认用户文件夹是在 <code>/data/data/com.ternux/files/home/</code> 下,没有 root 权限可能无法读取和写入文件,用户可能要慎重考虑一下,博客可以部署到 GitHub Pages 上,但后端控制文件可能得找其他办法传输出来。</h4><p>&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;</p>
<h4 id="但由于-termux-的默认用户文件夹是在-data-data-com-ternux-files-home-下,没有-root-权限可能无法读取和写入文件,用户可能要慎重考虑一下,博客可以部署到-GitHub-Pages-上,但后端控制文件可能得找其他办法传输出来。"><a href="#但由于-termux-的默认用户文件夹是在-data-data-com-ternux-files-home-下,没有-root-权限可能无法读取和写入文件,用户可能要慎重考虑一下,博客可以部署到-GitHub-Pages-上,但后端控制文件可能得找其他办法传输出来。" class="headerlink" title="但由于 termux 的默认用户文件夹是在 /data/data/com.ternux/files/home/ 下,没有 root 权限可能无法读取和写入文件,用户可能要慎重考虑一下,博客可以部署到 GitHub Pages 上,但后端控制文件可能得找其他办法传输出来。"></a>但由于 termux 的默认用户文件夹是在 <code>/data/data/com.ternux/files/home/</code> 下,没有 root 权限可能无法读取和写入文件,用户可能要慎重考虑一下,博客可以部署到 GitHub Pages 上,但后端控制文件可能得找其他办法传输出来。</h4><blockquote>
<blockquote>
<blockquote>
<blockquote>
<blockquote>
<blockquote>
<blockquote>
<p>b5cd87323e3c7e24bd4aaff61eccd33769638bfe</p>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
<h5 id="不然也可以尝试在手机上安装完整-Linux-虚拟机"><a href="#不然也可以尝试在手机上安装完整-Linux-虚拟机" class="headerlink" title="不然也可以尝试在手机上安装完整 Linux 虚拟机"></a>不然也可以尝试在手机上安装完整 Linux 虚拟机</h5><h4 id="安装-Termux"><a href="#安装-Termux" class="headerlink" title="安装 Termux"></a>安装 Termux</h4><p>&lt;&lt;&lt;&lt;&lt;&lt;&lt; HEAD<br>下载链接 <a target="_blank" rel="noopener" href="https://play.google.com/store/apps/details?id=com.termux"><del>Play Store</del></a> 不推荐,已经很久没更新了 | <a target="_blank" rel="noopener" href="https://f-droid.org/repo/com.termux_118.apk">F-Droid</a> | <a target="_blank" rel="noopener" href="https://t5d.trle5.tk/Apk/com.termux_118_f-droid.apk">Huberts Box</a> 下载速度有点堪忧<br>&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;<br>下载链接 <a target="_blank" rel="noopener" href="https://play.google.com/store/apps/details?id=com.termux"><del>Play Store</del></a> 不推荐,已经很久没更新了 | <a target="_blank" rel="noopener" href="https://f-droid.org/repo/com.termux_118.apk">F-Droid</a> | <a target="_blank" rel="noopener" href="https://t5d.trle5.tk/Apk/com.termux_118_f-droid.apk">Huberts Box</a></p>
<blockquote>
<blockquote>
<blockquote>
<blockquote>
<blockquote>
<blockquote>
<blockquote>
<p>b5cd87323e3c7e24bd4aaff61eccd33769638bfe</p>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
<p>安装并打开,等待下载需要的配置文件</p>
<p>更新源与升级</p>
<figure class="highlight plaintext"><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">$ pkg update</span><br><span class="line">$ pkg upgrade</span><br><span class="line"># 如果以上命令不可用可以试试把pkg改成apt即 apt update</span><br></pre></td></tr></table></figure>
<p>upgrade 中途可能有选择停顿,可根据个人喜好选择</p>
<p>安装 Termux root 工具</p>
<figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line">$ pkg install tsu # 手机有 root 权限选择这个</span><br><span class="line">$ pkg install proot # 手机没有 root 权限选择这个</span><br></pre></td></tr></table></figure>
<p>切换到 root</p>
<figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line">$ tsu # tsu使用这条命令执行后会向手机索要root权限</span><br><span class="line">$ termux-chroot # proot 使用这条命令,运行后 ~$ 没有变化 ,但权限有变</span><br></pre></td></tr></table></figure>
<p>安装 nodejs 和 git 以及 hexo-cli </p>
<figure class="highlight plaintext"><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></pre></td><td class="code"><pre><span class="line">$ pkg install nodejs</span><br><span class="line">$ node -v &amp;&amp; npm -v # 查看nodejs与npm的版本</span><br><span class="line">$ pkg install git # 已安装git可以忽略此行</span><br><span class="line">$ npm install -g hexo-cli</span><br><span class="line">$ hexo version</span><br></pre></td></tr></table></figure>
<p>这下 hexo 客户端已经成功部署到 Termux 了,来创建文件夹部署博客文件吧</p>
<p>Termux 的默认文件夹在安卓系统的 <code>/data/data/com.termux/files/home/</code> ,最好也是在 home 下创建一个 hexo 文件夹部署进去</p>
<figure class="highlight plaintext"><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">$ mkdir hexo # 如果是用的系统 su ,记得观察路径是不是在 Termux 的 home 文件夹下( termux-chroot 显示为 ~$ ),以免破坏 Android 系统</span><br><span class="line">$ cd hexo</span><br><span class="line">$ hexo init</span><br></pre></td></tr></table></figure>
<p>走完进度条也就部署完成了</p>
<h2 id="在三个平台的部署都完成了,接下来要尝试让它在本地服务器上运行"><a href="#在三个平台的部署都完成了,接下来要尝试让它在本地服务器上运行" class="headerlink" title="在三个平台的部署都完成了,接下来要尝试让它在本地服务器上运行"></a>在三个平台的部署都完成了,接下来要尝试让它在本地服务器上运行</h2><h4 id="下面的-hexo-generate-hexo-server-和后面要讲的-hexo-deploy都可以使用-hexo-g-hexo-s-hexo-d来代替作用是一样的也就是-generate-server-deploy-三个单词的首字母。"><a href="#下面的-hexo-generate-hexo-server-和后面要讲的-hexo-deploy都可以使用-hexo-g-hexo-s-hexo-d来代替作用是一样的也就是-generate-server-deploy-三个单词的首字母。" class="headerlink" title="下面的 hexo generate hexo server 和后面要讲的 hexo deploy都可以使用 hexo g hexo s hexo d来代替作用是一样的也就是 generate server deploy 三个单词的首字母。"></a>下面的 <code>hexo generate</code> <code>hexo server</code> 和后面要讲的 <code>hexo deploy</code>,都可以使用 <code>hexo g</code> <code>hexo s</code> <code>hexo d</code>来代替,作用是一样的,也就是 <strong>g</strong>enerate <strong>s</strong>erver <strong>d</strong>eploy 三个单词的首字母。</h4><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line">hexo generate # 初始化博客并生成初始页面,后期每写一篇新文章也需要再执行一次</span><br><span class="line">hexo server # 运行本地服务器,一般用来测试和在推送前检查是否有问题</span><br></pre></td></tr></table></figure>
<p>接下来会提示本地服务器已经启用,访问 <code>http://localhost:4000/</code><code>http://127.0.0.1:4000/</code> 都可以查看初始博客。</p>
<p>配置文件并部署博客到 Github Pages</p>
<p>进入你的hexo文件夹然后编辑其中的 <code>_config.yml</code> 文件</p>
<p>下面放一些正常的设置类型</p>
<figure class="highlight plaintext"><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></pre></td><td class="code"><pre><span class="line">title: Hexo # 博客主标题</span><br><span class="line">subtitle: # 博客副标题</span><br><span class="line">author: John Doe # 博客著名者</span><br><span class="line">language: en # 中文填 zh-CN</span><br><span class="line">timezone: Asia/Shanghai # 时间位置,需要按照规范填写</span><br><span class="line">url: http://example.com # 网站链接,影响到点击主副标题的跳转,可以填自定义域名或 Github Pages 二级域名</span><br></pre></td></tr></table></figure>
<p>接下来是部署设置,配置文件也是在 <code>_config.yml</code> 文件里编辑</p>
<figure class="highlight plaintext"><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></pre></td><td class="code"><pre><span class="line"># https://hexo.io/docs/one-command-deployment 查看 hexo 部署帮助文档</span><br><span class="line">deploy: # 此处不用填写,留空</span><br><span class="line"> type: git # 填 git 或 heroku ,根据你的部署位置来</span><br><span class="line"> repository: https://github.com/&lt;/username&gt;/&lt;username&gt;.github.io # 也可以填你名下的其他仓库,正确即可</span><br><span class="line"> branch: main # 或 master根据分支来例如我的就是 hexo</span><br></pre></td></tr></table></figure>
<h3 id="这下就可以部署到-Github-Pages-了,不过还得设定一些东西"><a href="#这下就可以部署到-Github-Pages-了,不过还得设定一些东西" class="headerlink" title="这下就可以部署到 Github Pages 了,不过还得设定一些东西"></a>这下就可以部署到 Github Pages 了,不过还得设定一些东西</h3><p>确保你的终端里配置有 git然后设置一下用户信息</p>
<p>也可以手动编辑Windows 的 .gitconfig 文件在用户文件夹目录Linux 在用户文件夹下Termux 在 home 文件夹下</p>
<figure class="highlight plaintext"><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></pre></td><td class="code"><pre><span class="line">git config --global user.name &quot;&lt;username&gt;&quot; </span><br><span class="line">git config --global user.mail &quot;&lt;username@github.com&gt;&quot;</span><br><span class="line"># 可能需要使用 root 权限执行</span><br><span class="line"># 可以不用加 &quot;&quot;只是因为用户名有空格的话可能会造成git只记录下前一半</span><br></pre></td></tr></table></figure>
<h3 id="关于-git-config-中的邮箱设定"><a href="#关于-git-config-中的邮箱设定" class="headerlink" title="关于 git config 中的邮箱设定"></a>关于 git config 中的邮箱设定</h3><p>git config 中的邮箱地址不能直接填写注册 GitHub 的邮箱(其实我也不太清楚能不能,因为我设定的是邮箱不公开),不然并不会算到你的贡献里,当然不在乎的话也可以随便填</p>
<p>前往 <a target="_blank" rel="noopener" href="https://github.com/settings/emails">邮箱设定</a> ,找到你的邮箱地址,旁边会有一个提示符号 ,把鼠标放上去或点击它,就会显示一段话和一个格式为 <code>&lt;number&gt;+&lt;username&gt;@users.noreply.github.com</code> 的邮箱地址,复制它然后粘贴到终端里即可<br>&lt;&lt;&lt;&lt;&lt;&lt;&lt; HEAD<br><img src="/images/post/05/github2022-07-19_19.10.08.jpg"><br>&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;<br><img src="/images/post/github2022-07-19_19.10.08.jpg"></p>
<blockquote>
<blockquote>
<blockquote>
<blockquote>
<blockquote>
<blockquote>
<blockquote>
<p>b5cd87323e3c7e24bd4aaff61eccd33769638bfe</p>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
<p>还得安装一下hexo提供的一键部署工具</p>
<figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line">cd hexo # 需要在博客文件夹里执行</span><br><span class="line">npm install hexo-deployer-git --save</span><br></pre></td></tr></table></figure>
<h2 id="到这里基本上就完成了,来部署吧!"><a href="#到这里基本上就完成了,来部署吧!" class="headerlink" title="到这里基本上就完成了,来部署吧!"></a>到这里基本上就完成了,来部署吧!</h2><figure class="highlight plaintext"><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">hexo clean # 慎重操作,会清除所有数据,但不会删除 _config.yml 文件,非必要选项</span><br><span class="line">hexo g # 重新生成默认博客source 文件夹里有新文章时会生成新的页面</span><br><span class="line">hexo d # 复制 public 文件夹里的文件到 .depoly_git 文件夹里,然后根据 _config.yml 里的设置开始部署</span><br></pre></td></tr></table></figure>
<p>接下来 git 会向你请求设定的部署网站的用户名与密钥,这里以 GitHub 作为演示</p>
<figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line">Username for &#x27;https://github.com&#x27;:&lt;username&gt;</span><br><span class="line">Password for &#x27;https://&lt;username&gt;@github.com&#x27;:&lt;yourpasswd&gt;</span><br></pre></td></tr></table></figure>
<h4 id="事实上这个时候填你得-Github-账号密码是没有用的,为了安全你得去-GitHub-申请一个-Personal-access-tokens"><a href="#事实上这个时候填你得-Github-账号密码是没有用的,为了安全你得去-GitHub-申请一个-Personal-access-tokens" class="headerlink" title="事实上这个时候填你得 Github 账号密码是没有用的,为了安全你得去 GitHub 申请一个 Personal access tokens"></a>事实上这个时候填你得 Github 账号密码是没有用的,为了安全你得去 GitHub 申请一个 Personal access tokens</h4><ol>
<li>访问 <a target="_blank" rel="noopener" href="https://github.com/settings/tokens/">https://github.com/settings/tokens/</a></li>
<li>点击 <strong>Generate new token</strong></li>
<li>验证密码 ,然后输入一个名称,以及选择过期时间,为了安全,推荐不要设置成不过期,做好定期更换</li>
<li>在下方选择该令牌的权限,不懂可以全选,也可以自定义</li>
<li>点击 Generate token生成令牌</li>
</ol>
<p>生成的令牌格式为 <code>ghp_1234567890abcdefghijklmnopqrst</code> ,也就是<code>ghp_</code> 加上<code>0-9</code> <code>a-z</code> <code>A-Z</code> 的随机生成数,一般也记不住,但也不要为方便直接保存在明文文件里</p>
<h4 id="后面就可以继续博客的部署了接下来说说博客自定义域名与DNS解析如何设置的问题"><a href="#后面就可以继续博客的部署了接下来说说博客自定义域名与DNS解析如何设置的问题" class="headerlink" title="后面就可以继续博客的部署了接下来说说博客自定义域名与DNS解析如何设置的问题"></a>后面就可以继续博客的部署了接下来说说博客自定义域名与DNS解析如何设置的问题</h4><p>如果需要自定义域名,请在 hexo 的 <code>public</code><code>.deploy_git</code> 文件夹里都新建一个 <code>CNAME</code> 文件,用文本编辑器打开,里面填上你希望使用的域名,也可以在 GitHub 项目的设置里找到 Pages ,再找到 Custom domain ,填入域名,但你不在 hexo 里放的话,每更新 <code>(hexo d)</code> 一次你就得重新进这个页面设置一次,很麻烦</p>
<h3 id="自定义域名的-DNS-设置"><a href="#自定义域名的-DNS-设置" class="headerlink" title="自定义域名的 DNS 设置"></a>自定义域名的 DNS 设置</h3><p>这个我也摸索了很久,但现在碰壁多了也就会了</p>
<p>按照 <a target="_blank" rel="noopener" href="https://docs.github.com/cn/pages/configuring-a-custom-domain-for-your-github-pages-site/managing-a-custom-domain-for-your-github-pages-site">Github 的 DNS 解析设置</a>,需要创建四条 <code>A</code> 记录,并分别定向到:</p>
<figure class="highlight plaintext"><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></pre></td><td class="code"><pre><span class="line">name: @ # 全都要使用 @ 号 (有些服务商的设置方法是留空)</span><br><span class="line">185.199.108.153</span><br><span class="line">185.199.109.153</span><br><span class="line">185.199.110.153</span><br><span class="line">185.199.111.153</span><br></pre></td></tr></table></figure>
<p>还有四条 <code>AAAA</code> 记录,也得分别定向到:</p>
<figure class="highlight plaintext"><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></pre></td><td class="code"><pre><span class="line">name: @ # 全都要使用 @ 号 (有些服务商的设置方法是留空)</span><br><span class="line">2606:50c0:8000::153</span><br><span class="line">2606:50c0:8001::153</span><br><span class="line">2606:50c0:8002::153</span><br><span class="line">2606:50c0:8003::153</span><br></pre></td></tr></table></figure>
<p>以及一条 <code>CNAME</code> 记录</p>
<figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line">name: www </span><br><span class="line">&lt;username&gt;.github.io. # 也就是 GitHub Pages 的默认页面</span><br></pre></td></tr></table></figure>
<p>填写完成的样子就如下表,顺序没有关系</p>
<table>
<thead>
<tr>
<th>类型</th>
<th>名称</th>
<th>内容</th>
</tr>
</thead>
<tbody><tr>
<td>A</td>
<td>@</td>
<td>185.199.108.153</td>
</tr>
<tr>
<td>A</td>
<td>@</td>
<td>185.199.109.153</td>
</tr>
<tr>
<td>A</td>
<td>@</td>
<td>185.199.110.153</td>
</tr>
<tr>
<td>A</td>
<td>@</td>
<td>185.199.111.153</td>
</tr>
<tr>
<td>AAAA</td>
<td>@</td>
<td>2606:50c0:8000::153</td>
</tr>
<tr>
<td>AAAA</td>
<td>@</td>
<td>2606:50c0:8001::153</td>
</tr>
<tr>
<td>AAAA</td>
<td>@</td>
<td>2606:50c0:8002::153</td>
</tr>
<tr>
<td>AAAA</td>
<td>@</td>
<td>2606:50c0:8003::153</td>
</tr>
<tr>
<td>CNAME</td>
<td>www</td>
<td>username.github.io.</td>
</tr>
</tbody></table>
<p>设置完成点击保存,然后等个十来分钟应该就可以访问自定义域名了,如果访问出现 Github Pages 页面,但没有定位到你的博客,那可能是你 Github 仓库的 <code>CNAME</code> 文件被顶掉了</p>
<p>到这里你的博客就搭建完成了,写文章的教程我会在后面再发一篇教程</p>
<p>参考文章:</p>
<p><a target="_blank" rel="noopener" href="https://zhuanlan.zhihu.com/p/102592286">从零开始搭建个人博客(超详细)</a><br><a target="_blank" rel="noopener" href="https://www.sqlsec.com/2018/05/termux.html">Termux 高级终端安装使用配置教程</a></p>
</div>
<section class="post-tags">
<div>
<span>标签:</span>
<span class="tag">
<a href="/tag/%E6%8A%80%E6%9C%AF/"># 技术</a>
<a href="/tag/%E5%8D%9A%E5%AE%A2/"># 博客</a>
<a href="/tag/GitHub/"># GitHub</a>
<a href="/tag/%E5%9F%9F%E5%90%8D/"># 域名</a>
<a href="/tag/DNS/"># DNS</a>
</span>
</div>
<div>
<a href="javascript:window.history.back();">返回</a>
<span>· </span>
<a href="/">主页</a>
</div>
</section>
<section class="post-nav">
<a class="prev" rel="prev" href="/2022/04/07/06.Page4/">闲谈杂聊</a>
<a class="next" rel="next" href="/2022/03/01/04.%E6%AC%A2%E8%BF%8E%E5%8F%82%E8%A7%82/">欢迎参观</a>
</section>
</article>
</div>
</div>
<footer id="footer" class="footer">
<div class="copyright">
<span>Hubert Chen © 2022 | Powered by <a href="https://hexo.io" target="_blank">Hexo</a> & <a href="https://github.com/Siricee/hexo-theme-Chic" target="_blank">Chic</a></span>
</div>
</footer>
</div>
</body>
</html>

View File

@ -1,263 +0,0 @@
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport"
content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<meta name="author" content="Hubert Chen">
<title>闲谈杂聊 | Hubert&#39;s Blog</title>
<link rel="icon" href="/favicon.ico">
<!-- stylesheets list from _config.yml -->
<link rel="stylesheet" href="/css/style.css">
<!-- scripts list from _config.yml -->
<script src="/js/script.js"></script>
<script src="/js/tocbot.min.js"></script>
<meta name="generator" content="Hexo 6.2.0"></head>
<body>
<script>
// this function is used to check current theme before page loaded.
(() => {
const currentTheme = window.localStorage && window.localStorage.getItem('theme') || '';
const isDark = currentTheme === 'dark';
const pagebody = document.getElementsByTagName('body')[0]
if (isDark) {
pagebody.classList.add('dark-theme');
// mobile
document.getElementById("mobile-toggle-theme").innerText = "· Dark"
} else {
pagebody.classList.remove('dark-theme');
// mobile
document.getElementById("mobile-toggle-theme").innerText = "· Light"
}
})();
</script>
<div class="wrapper">
<header>
<nav class="navbar">
<div class="container">
<div class="navbar-header header-logo"><a href="/">Hubert&#39;s Blog</a></div>
<div class="menu navbar-right">
<a class="menu-item" href="/archives">文章</a>
<a class="menu-item" href="/tag">标签</a>
<a class="menu-item" href="/about">关于</a>
<input id="switch_default" type="checkbox" class="switch_default">
<label for="switch_default" class="toggleBtn"></label>
</div>
</div>
</nav>
<nav class="navbar-mobile" id="nav-mobile">
<div class="container">
<div class="navbar-header">
<div>
<a href="/">Hubert&#39;s Blog</a><a id="mobile-toggle-theme">·&nbsp;Light</a>
</div>
<div class="menu-toggle" onclick="mobileBtn()">&#9776; 菜单</div>
</div>
<div class="menu" id="mobile-menu">
<a class="menu-item" href="/archives">文章</a>
<a class="menu-item" href="/tag">标签</a>
<a class="menu-item" href="/about">关于</a>
</div>
</div>
</nav>
</header>
<script>
var mobileBtn = function f() {
var toggleMenu = document.getElementsByClassName("menu-toggle")[0];
var mobileMenu = document.getElementById("mobile-menu");
if(toggleMenu.classList.contains("active")){
toggleMenu.classList.remove("active")
mobileMenu.classList.remove("active")
}else{
toggleMenu.classList.add("active")
mobileMenu.classList.add("active")
}
}
</script>
<div class="main">
<div class="container">
<div class="post-toc">
<div class="tocbot-list">
</div>
<div class="tocbot-list-menu">
<a class="tocbot-toc-expand" onclick="expand_toc()">展开全部</a>
<a onclick="go_top()">回到顶端</a>
<a onclick="go_bottom()">查看底部</a>
</div>
</div>
<script>
var tocbot_timer;
var DEPTH_MAX = 6; // 为 6 时展开所有
var tocbot_default_config = {
tocSelector: '.tocbot-list',
contentSelector: '.post-content',
headingSelector: 'h1, h2, h3',
orderedList: false,
scrollSmooth: true,
onClick: extend_click,
};
function extend_click() {
clearTimeout(tocbot_timer);
tocbot_timer = setTimeout(function () {
tocbot.refresh(obj_merge(tocbot_default_config, { hasInnerContainers: true }));
}, 420); // 这个值是由 tocbot 源码里定义的 scrollSmoothDuration 得来的
}
document.ready(function () {
tocbot.init(obj_merge(tocbot_default_config, { collapseDepth: 1 }));
});
function expandToc() {
var b = document.querySelector('.tocbot-toc-expand');
var expanded = b.getAttribute('data-expanded');
expanded ? b.removeAttribute('data-expanded') : b.setAttribute('data-expanded', true);
tocbot.refresh(obj_merge(tocbot_default_config, { collapseDepth: expanded ? 1 : DEPTH_MAX }));
b.innerText = expanded ? 'Expand all' : 'Collapse all';
}
function go_top() {
window.scrollTo(0, 0);
}
function go_bottom() {
window.scrollTo(0, document.body.scrollHeight);
}
function obj_merge(target, source) {
for (var item in source) {
if (source.hasOwnProperty(item)) {
target[item] = source[item];
}
}
return target;
}
</script>
<article class="post-wrap">
<header class="post-header">
<h1 class="post-title">闲谈杂聊</h1>
<div class="post-meta">
<span class="post-time">
日期: <a href="#">07 四月, 2022&nbsp;&nbsp;08:06:21</a>
</span>
</div>
</header>
<div class="post-content">
<p> 你好,欢迎来我的博客看文章,祝愿你天天开心</p>
<h2 id="回顾搭建博客之前"><a href="#回顾搭建博客之前" class="headerlink" title="回顾搭建博客之前"></a>回顾搭建博客之前</h2><p>大概一个多星期前,我去翻了翻之前收藏的博客,发现只有很少的博客更新了几篇新文章,大多数的博客基本都停了,还有一些博客直接停了两年没更新</p>
<p>至于为什么我会收藏博客,因为没搭建博客之前也有想法自己搭一个,似乎大多数博客也会写一个关于搭建的文章,于是我目前每看见一个个人博客都会添加到书签里</p>
<p>而我的博客也已经一个多月没有更新新文章了,我并没有确定写作方向,恐怕就是更新力不足的原因</p>
<p>以后博客可能会<del>月更</del>季更更符合实际吧,因为写一篇文章随便写点东西也不太好的样子,像这种闲聊的文章应该会比教程类的多一些</p>
<h2 id="最近在学习的东西"><a href="#最近在学习的东西" class="headerlink" title="最近在学习的东西"></a>最近在学习的东西</h2><p>大概从寒假下半旬开始,我在 Yogabook 上试着画画,不过毕竟是笔记本嘛,屏幕大小和显示效果都不怎么好,于是我就利用转换器把它接到我的台式机显示器上,于是我就有了一个正式练习画画的地方</p>
<p>最近还买了个新数位板,还得熟悉熟悉,感觉自己桌面空间是有点小了,之前想画画的话就得把键盘鼠标全都挪开,想用台式又得把显示器接回去,现在可以直接在台式画了</p>
<p>不过嘛,一个新手是没办法一下子就学会画画的,找了些教学视频,我得知了自己画画的问题: 勾线不好看,一条线没画好就随便擦一下应付,勾线应该一笔勾不好重新勾,于是我找了一些简单的二次元图来联系勾线,就是在 SAI 在原图上叠一个图,调整透明度就照着描,以往是希望一天画一幅的,结果到现在只画完了两幅,剩下衣服答应朋友要描的,也画了好久,这周回去看看能不能画完然后画一幅新的</p>
<p>得益于我在 GitHub 里发现了 <a target="_blank" rel="noopener" href="https://github.com/niudai/How-to-be-a-good-programmer">程序员修炼宝典</a> 这个项目,我就下载了几本关于 Linux 的电子书看因为手头并没有什么顺手的阅读设备PDF 格式手机读着累Yogabook 拿着压手),也就只读了百来页</p>
<p>在约一年前我就有学习 C++ 的想法,当时只会在网上搜一些 C++ 写的程序,然后仿写出来自己试着理解,因为没有系统性的学习和要写的程序,也就不了了之</p>
<p>似乎是从这个月初开始,我打算买本书正式学学 C 了,现在是感觉之前打算直接冲 C++ 是有点幼稚了,我翻了翻淘宝,但并没有买,去找了电子书版的 《C Prime Plus》 ,从 9 号开始我每天都在把《C Prime Plus》里需要写或要理解的程序重新写一遍、写好注释然后提交到私人 GitHub Repository 里,不过目前还没公开,等我学完那本书里需要学的东西后会公开的</p>
<p>之前还试过做音乐,不过创作细胞还是太没活力了,不确定以后还会不会试试学,但感觉音乐的门槛是想学的几个东西中最高的 😢</p>
<h2 id="假期打算与发牢骚"><a href="#假期打算与发牢骚" class="headerlink" title="假期打算与发牢骚"></a>假期打算与发牢骚</h2><p>也快接近五一假期了,学习 C 语言也有十来天了,虽然按照书里的学了快两百页,感觉总是只学到了点皮毛,要记数值对应的表达方式是有点费劲,在学校每天也只有晚自习的时间会学一个小时左右,这个进度下去得学多久啊…….</p>
<p>感觉自己是有点懒了,从学习 C 语言或是写博客来说都是,这篇文章是从四月七日开始打算写的,但是现在已经是四月月底了</p>
<p>上周的调休导致我也没回家,答应给朋友画的画还是没有画完,五一假期里一定要画完</p>
<p>说到五一,五一就到明日方舟三周年了,但从这个学期开始真的很少很少玩了,好像当初停止玩是因为 BOSS 太难打不过去(当时查攻略的话应该是没问题的)</p>
<p><img src="/images/post/06/hero.png"><br>Lineage OS 在 26 号的时候正式更新了 <a target="_blank" rel="noopener" href="https://lineageos.org/Changelog-26">Lineage OS 19</a>,不知道 <a target="_blank" rel="noopener" href="https://github.com/Linux4">Linux4</a> 大佬什么时候让我的 s10e 吃上 Official Lineage OS 🤤</p>
<p>近几年半导体的东西价格都在涨,显卡 内存 硬盘 以及本来是打着廉价开发板的树莓派,现在都涨了,想整块 zero 2 w 当随身 Linux 主机的 😢</p>
<p>这篇文章就写到这吧,<del>摸到月底发还能算月更博客</del> 🥴</p>
</div>
<section class="post-tags">
<div>
<span>标签:</span>
<span class="tag">
<a href="/tag/%E9%97%B2%E8%81%8A/"># 闲聊</a>
</span>
</div>
<div>
<a href="javascript:window.history.back();">返回</a>
<span>· </span>
<a href="/">主页</a>
</div>
</section>
<section class="post-nav">
<a class="prev" rel="prev" href="/2022/05/10/07.phone2adb/">手机使用 ADB 与 Fastboot 给另一台手机执行命令</a>
<a class="next" rel="next" href="/2022/03/05/05.%E6%90%AD%E5%BB%BA%E4%B8%80%E4%B8%AA%E8%87%AA%E5%B7%B1%E7%9A%84%E5%8D%9A%E5%AE%A2/">搭建一个自己的博客</a>
</section>
</article>
</div>
</div>
<footer id="footer" class="footer">
<div class="copyright">
<span>Hubert Chen © 2022 | Powered by <a href="https://hexo.io" target="_blank">Hexo</a> & <a href="https://github.com/Siricee/hexo-theme-Chic" target="_blank">Chic</a></span>
</div>
</footer>
</div>
</body>
</html>

View File

@ -1,262 +0,0 @@
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport"
content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<meta name="author" content="Hubert Chen">
<title>手机使用 ADB 与 Fastboot 给另一台手机执行命令 | Hubert&#39;s Blog</title>
<link rel="icon" href="/favicon.ico">
<!-- stylesheets list from _config.yml -->
<link rel="stylesheet" href="/css/style.css">
<!-- scripts list from _config.yml -->
<script src="/js/script.js"></script>
<script src="/js/tocbot.min.js"></script>
<meta name="generator" content="Hexo 6.2.0"></head>
<body>
<script>
// this function is used to check current theme before page loaded.
(() => {
const currentTheme = window.localStorage && window.localStorage.getItem('theme') || '';
const isDark = currentTheme === 'dark';
const pagebody = document.getElementsByTagName('body')[0]
if (isDark) {
pagebody.classList.add('dark-theme');
// mobile
document.getElementById("mobile-toggle-theme").innerText = "· Dark"
} else {
pagebody.classList.remove('dark-theme');
// mobile
document.getElementById("mobile-toggle-theme").innerText = "· Light"
}
})();
</script>
<div class="wrapper">
<header>
<nav class="navbar">
<div class="container">
<div class="navbar-header header-logo"><a href="/">Hubert&#39;s Blog</a></div>
<div class="menu navbar-right">
<a class="menu-item" href="/archives">文章</a>
<a class="menu-item" href="/tag">标签</a>
<a class="menu-item" href="/about">关于</a>
<input id="switch_default" type="checkbox" class="switch_default">
<label for="switch_default" class="toggleBtn"></label>
</div>
</div>
</nav>
<nav class="navbar-mobile" id="nav-mobile">
<div class="container">
<div class="navbar-header">
<div>
<a href="/">Hubert&#39;s Blog</a><a id="mobile-toggle-theme">·&nbsp;Light</a>
</div>
<div class="menu-toggle" onclick="mobileBtn()">&#9776; 菜单</div>
</div>
<div class="menu" id="mobile-menu">
<a class="menu-item" href="/archives">文章</a>
<a class="menu-item" href="/tag">标签</a>
<a class="menu-item" href="/about">关于</a>
</div>
</div>
</nav>
</header>
<script>
var mobileBtn = function f() {
var toggleMenu = document.getElementsByClassName("menu-toggle")[0];
var mobileMenu = document.getElementById("mobile-menu");
if(toggleMenu.classList.contains("active")){
toggleMenu.classList.remove("active")
mobileMenu.classList.remove("active")
}else{
toggleMenu.classList.add("active")
mobileMenu.classList.add("active")
}
}
</script>
<div class="main">
<div class="container">
<div class="post-toc">
<div class="tocbot-list">
</div>
<div class="tocbot-list-menu">
<a class="tocbot-toc-expand" onclick="expand_toc()">展开全部</a>
<a onclick="go_top()">回到顶端</a>
<a onclick="go_bottom()">查看底部</a>
</div>
</div>
<script>
var tocbot_timer;
var DEPTH_MAX = 6; // 为 6 时展开所有
var tocbot_default_config = {
tocSelector: '.tocbot-list',
contentSelector: '.post-content',
headingSelector: 'h1, h2, h3',
orderedList: false,
scrollSmooth: true,
onClick: extend_click,
};
function extend_click() {
clearTimeout(tocbot_timer);
tocbot_timer = setTimeout(function () {
tocbot.refresh(obj_merge(tocbot_default_config, { hasInnerContainers: true }));
}, 420); // 这个值是由 tocbot 源码里定义的 scrollSmoothDuration 得来的
}
document.ready(function () {
tocbot.init(obj_merge(tocbot_default_config, { collapseDepth: 1 }));
});
function expandToc() {
var b = document.querySelector('.tocbot-toc-expand');
var expanded = b.getAttribute('data-expanded');
expanded ? b.removeAttribute('data-expanded') : b.setAttribute('data-expanded', true);
tocbot.refresh(obj_merge(tocbot_default_config, { collapseDepth: expanded ? 1 : DEPTH_MAX }));
b.innerText = expanded ? 'Expand all' : 'Collapse all';
}
function go_top() {
window.scrollTo(0, 0);
}
function go_bottom() {
window.scrollTo(0, document.body.scrollHeight);
}
function obj_merge(target, source) {
for (var item in source) {
if (source.hasOwnProperty(item)) {
target[item] = source[item];
}
}
return target;
}
</script>
<article class="post-wrap">
<header class="post-header">
<h1 class="post-title">手机使用 ADB 与 Fastboot 给另一台手机执行命令</h1>
<div class="post-meta">
<span class="post-time">
日期: <a href="#">10 五月, 2022&nbsp;&nbsp;22:01:50</a>
</span>
</div>
</header>
<div class="post-content">
<p> <strong>你好,欢迎来看文章!</strong><del>请问你是手机坏了还是电脑坏了</del></p>
<p> <strong>这次就不说什么前言了adb 不会用我也难教</strong></p>
<h1 id="准备工作"><a href="#准备工作" class="headerlink" title="准备工作"></a>准备工作</h1><p> <strong>首先确定这篇教程是干嘛的,使用一台手机给另一台手机运行 adb 与 fastboot 命令</strong><br> 所以主要说的地方是如何在手机上建立起 adb 环境,当然 adb 命令基本通用,也可以参考一下</p>
<h3 id="需要的东西"><a href="#需要的东西" class="headerlink" title="需要的东西"></a>需要的东西</h3> <figure class="highlight plaintext"><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">连接两台设备(手机)的数据线也可以用一条线加OTG的方法</span><br><span class="line">如果是进行非救砖操作,也可以通过网络 adb 进行命令</span><br><span class="line">至少有一台设备(手机)能正常运行,可访问网络</span><br></pre></td></tr></table></figure>
<h2 id="在你的手机上建立起-adb-环境"><a href="#在你的手机上建立起-adb-环境" class="headerlink" title="在你的手机上建立起 adb 环境"></a>在你的手机上建立起 adb 环境</h2><h3 id="针对拥有-root-权限的手机"><a href="#针对拥有-root-权限的手机" class="headerlink" title="针对拥有 root 权限的手机"></a>针对拥有 root 权限的手机</h3><p> <strong>很好,你拥有 root 权限,那么这个过程对你来说会顺利很多,没 root 可就麻烦咯</strong></p>
<h4 id="1-使用熟悉的-Termux"><a href="#1-使用熟悉的-Termux" class="headerlink" title="1. 使用熟悉的 Termux"></a>1. 使用<del>熟悉的</del> Termux</h4><p> <strong>首先,做好前置准备工作,有些人可能不知道,所以再讲一遍</strong></p>
<figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line">pkg update // 更新包</span><br><span class="line">pkg install android-tools // 安装安卓工具包含adb工具</span><br></pre></td></tr></table></figure>
<p> 确定安装等进度条跑完后,试着运行 <code>adb devices</code> 看看有没有反应,正常情况如下</p>
<figure class="highlight plaintext"><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></pre></td><td class="code"><pre><span class="line">~ $ adb devices</span><br><span class="line">* daemon not running; starting now at tcp:5037</span><br><span class="line">* daemon started successfully</span><br><span class="line">List of devices attached</span><br><span class="line">/* 如果有已连接的设备会在此列出 */</span><br></pre></td></tr></table></figure>
<p> 连接到设备然后看看行不行,安卓机子相互连大部分时候是不需要驱动的</p>
<h4 id="2-使用-ADB-工具安装器"><a href="#2-使用-ADB-工具安装器" class="headerlink" title="2. 使用 ADB 工具安装器"></a>2. 使用 ADB 工具安装器</h4><p> 下载 ADB 工具安装器 <strong><a target="_blank" rel="noopener" href="https://www.coolapk.com/apk/crixec.adbtoolkitsinstall">酷安</a> | <a target="_blank" rel="noopener" href="https://t5d.trle5.tk/Apk/ADB-tools-3.0.apk">Huberts Box</a></strong></p>
<p> 这个工具可以让你直接运行 adb 命令,但没有 root 权限会导致无法运行 fastboot 命令,也提供了可以把 adb 命令安装到系统里的功能</p>
</div>
<section class="post-tags">
<div>
<span>标签:</span>
<span class="tag">
<a href="/tag/%E6%8A%80%E6%9C%AF/"># 技术</a>
<a href="/tag/adb/"># adb</a>
<a href="/tag/%E6%95%91%E7%A0%96/"># 救砖</a>
<a href="/tag/%E5%88%B7%E6%9C%BA/"># 刷机</a>
</span>
</div>
<div>
<a href="javascript:window.history.back();">返回</a>
<span>· </span>
<a href="/">主页</a>
</div>
</section>
<section class="post-nav">
<a class="prev" rel="prev" href="/2022/09/01/07.wechatpush/">使用 FarPush 搭建微信消息推送服务</a>
<a class="next" rel="next" href="/2022/04/07/06.Page4/">闲谈杂聊</a>
</section>
</article>
</div>
</div>
<footer id="footer" class="footer">
<div class="copyright">
<span>Hubert Chen © 2022 | Powered by <a href="https://hexo.io" target="_blank">Hexo</a> & <a href="https://github.com/Siricee/hexo-theme-Chic" target="_blank">Chic</a></span>
</div>
</footer>
</div>
</body>
</html>

View File

@ -1,188 +0,0 @@
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport"
content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<meta name="author" content="Hubert Chen">
<title>使用 Farpush 搭建微信消息推送服务 | Hubert&#39;s Blog</title>
<link rel="icon" href="/favicon.ico">
<!-- stylesheets list from _config.yml -->
<link rel="stylesheet" href="/css/style.css">
<!-- scripts list from _config.yml -->
<script src="/js/script.js"></script>
<script src="/js/tocbot.min.js"></script>
<meta name="generator" content="Hexo 6.2.0"></head>
<body>
<script>
// this function is used to check current theme before page loaded.
(() => {
const currentTheme = window.localStorage && window.localStorage.getItem('theme') || '';
const isDark = currentTheme === 'dark';
const pagebody = document.getElementsByTagName('body')[0]
if (isDark) {
pagebody.classList.add('dark-theme');
// mobile
document.getElementById("mobile-toggle-theme").innerText = "· Dark"
} else {
pagebody.classList.remove('dark-theme');
// mobile
document.getElementById("mobile-toggle-theme").innerText = "· Light"
}
})();
</script>
<div class="wrapper">
<header>
<nav class="navbar">
<div class="container">
<div class="navbar-header header-logo"><a href="/">Hubert&#39;s Blog</a></div>
<div class="menu navbar-right">
<a class="menu-item" href="/archives">文章</a>
<a class="menu-item" href="/tag">标签</a>
<a class="menu-item" href="/2022/03/01/04.%E6%AC%A2%E8%BF%8E%E5%8F%82%E8%A7%82">关于</a>
<input id="switch_default" type="checkbox" class="switch_default">
<label for="switch_default" class="toggleBtn"></label>
</div>
</div>
</nav>
<nav class="navbar-mobile" id="nav-mobile">
<div class="container">
<div class="navbar-header">
<div>
<a href="/">Hubert&#39;s Blog</a><a id="mobile-toggle-theme">·&nbsp;Light</a>
</div>
<div class="menu-toggle" onclick="mobileBtn()">&#9776; 菜单</div>
</div>
<div class="menu" id="mobile-menu">
<a class="menu-item" href="/archives">文章</a>
<a class="menu-item" href="/tag">标签</a>
<a class="menu-item" href="/2022/03/01/04.%E6%AC%A2%E8%BF%8E%E5%8F%82%E8%A7%82">关于</a>
</div>
</div>
</nav>
</header>
<script>
var mobileBtn = function f() {
var toggleMenu = document.getElementsByClassName("menu-toggle")[0];
var mobileMenu = document.getElementById("mobile-menu");
if(toggleMenu.classList.contains("active")){
toggleMenu.classList.remove("active")
mobileMenu.classList.remove("active")
}else{
toggleMenu.classList.add("active")
mobileMenu.classList.add("active")
}
}
</script>
<div class="main">
<div class="container">
<article class="post-wrap">
<header class="post-header">
<h1 class="post-title">使用 Farpush 搭建微信消息推送服务</h1>
<div class="post-meta">
<span class="post-time">
日期: <a href="#">01 九月, 2022&nbsp;&nbsp;20:29:28</a>
</span>
</div>
</header>
<div class="post-content">
<p>好久不见,距离上次更新文章的时间是有点长了呢,不过还是欢迎你来看文章!</p>
</div>
<section class="post-tags">
<div>
<span>标签:</span>
<span class="tag">
<a href="/tag/%E5%BE%AE%E4%BF%A1/"># 微信</a>
<a href="/tag/%E4%BF%A1%E6%81%AF%E6%8E%A8%E9%80%81/"># 信息推送</a>
<a href="/tag/Farpush/"># Farpush</a>
</span>
</div>
<div>
<a href="javascript:window.history.back();">返回</a>
<span>· </span>
<a href="/">主页</a>
</div>
</section>
<section class="post-nav">
<a class="next" rel="next" href="/2022/09/01/07.wechatpush/"></a>
</section>
</article>
</div>
</div>
<footer id="footer" class="footer">
<div class="copyright">
<span>Hubert Chen © 2022 | Powered by <a href="https://hexo.io" target="_blank">Hexo</a> & <a href="https://github.com/Siricee/hexo-theme-Chic" target="_blank">Chic</a></span>
</div>
</footer>
</div>
</body>
</html>

View File

@ -1,270 +0,0 @@
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport"
content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<meta name="author" content="Hubert Chen">
<title>使用 FarPush 搭建微信消息推送服务 | Hubert&#39;s Blog</title>
<link rel="icon" href="/favicon.ico">
<!-- stylesheets list from _config.yml -->
<link rel="stylesheet" href="/css/style.css">
<!-- scripts list from _config.yml -->
<script src="/js/script.js"></script>
<script src="/js/tocbot.min.js"></script>
<meta name="generator" content="Hexo 6.2.0"></head>
<body>
<script>
// this function is used to check current theme before page loaded.
(() => {
const currentTheme = window.localStorage && window.localStorage.getItem('theme') || '';
const isDark = currentTheme === 'dark';
const pagebody = document.getElementsByTagName('body')[0]
if (isDark) {
pagebody.classList.add('dark-theme');
// mobile
document.getElementById("mobile-toggle-theme").innerText = "· Dark"
} else {
pagebody.classList.remove('dark-theme');
// mobile
document.getElementById("mobile-toggle-theme").innerText = "· Light"
}
})();
</script>
<div class="wrapper">
<header>
<nav class="navbar">
<div class="container">
<div class="navbar-header header-logo"><a href="/">Hubert&#39;s Blog</a></div>
<div class="menu navbar-right">
<a class="menu-item" href="/archives">文章</a>
<a class="menu-item" href="/tag">标签</a>
<a class="menu-item" href="/about">关于</a>
<input id="switch_default" type="checkbox" class="switch_default">
<label for="switch_default" class="toggleBtn"></label>
</div>
</div>
</nav>
<nav class="navbar-mobile" id="nav-mobile">
<div class="container">
<div class="navbar-header">
<div>
<a href="/">Hubert&#39;s Blog</a><a id="mobile-toggle-theme">·&nbsp;Light</a>
</div>
<div class="menu-toggle" onclick="mobileBtn()">&#9776; 菜单</div>
</div>
<div class="menu" id="mobile-menu">
<a class="menu-item" href="/archives">文章</a>
<a class="menu-item" href="/tag">标签</a>
<a class="menu-item" href="/about">关于</a>
</div>
</div>
</nav>
</header>
<script>
var mobileBtn = function f() {
var toggleMenu = document.getElementsByClassName("menu-toggle")[0];
var mobileMenu = document.getElementById("mobile-menu");
if(toggleMenu.classList.contains("active")){
toggleMenu.classList.remove("active")
mobileMenu.classList.remove("active")
}else{
toggleMenu.classList.add("active")
mobileMenu.classList.add("active")
}
}
</script>
<div class="main">
<div class="container">
<div class="post-toc">
<div class="tocbot-list">
</div>
<div class="tocbot-list-menu">
<a class="tocbot-toc-expand" onclick="expand_toc()">展开全部</a>
<a onclick="go_top()">回到顶端</a>
<a onclick="go_bottom()">查看底部</a>
</div>
</div>
<script>
var tocbot_timer;
var DEPTH_MAX = 6; // 为 6 时展开所有
var tocbot_default_config = {
tocSelector: '.tocbot-list',
contentSelector: '.post-content',
headingSelector: 'h1, h2, h3',
orderedList: false,
scrollSmooth: true,
onClick: extend_click,
};
function extend_click() {
clearTimeout(tocbot_timer);
tocbot_timer = setTimeout(function () {
tocbot.refresh(obj_merge(tocbot_default_config, { hasInnerContainers: true }));
}, 420); // 这个值是由 tocbot 源码里定义的 scrollSmoothDuration 得来的
}
document.ready(function () {
tocbot.init(obj_merge(tocbot_default_config, { collapseDepth: 1 }));
});
function expandToc() {
var b = document.querySelector('.tocbot-toc-expand');
var expanded = b.getAttribute('data-expanded');
expanded ? b.removeAttribute('data-expanded') : b.setAttribute('data-expanded', true);
tocbot.refresh(obj_merge(tocbot_default_config, { collapseDepth: expanded ? 1 : DEPTH_MAX }));
b.innerText = expanded ? 'Expand all' : 'Collapse all';
}
function go_top() {
window.scrollTo(0, 0);
}
function go_bottom() {
window.scrollTo(0, document.body.scrollHeight);
}
function obj_merge(target, source) {
for (var item in source) {
if (source.hasOwnProperty(item)) {
target[item] = source[item];
}
}
return target;
}
</script>
<article class="post-wrap">
<header class="post-header">
<h1 class="post-title">使用 FarPush 搭建微信消息推送服务</h1>
<div class="post-meta">
<span class="post-time">
日期: <a href="#">01 九月, 2022&nbsp;&nbsp;20:29:28</a>
</span>
</div>
</header>
<div class="post-content">
<p>好久不见,距离上次更新文章的时间是有点长了呢,不过还是欢迎你来看文章!</p>
<h2 id="前言"><a href="#前言" class="headerlink" title="前言"></a>前言</h2><p> 如果你像我一样注重手机后台会有哪些软件在运行,哪些软件是必要待在后台持续运行,哪些软件又是没有必要呆在后台占用系统资源的,那你一定知道 QQ 和微信这两个国内常见的社交软件,还有他们恐怖的空间与系统资源占用</p>
<p> 我是很不喜欢这样的软件,我并没有那个能力每年跟进最新配置的手机,也没有办法摆脱对它们的依赖,我也不会为了长续航去选择电池大且厚重的手机,我只能防止它们在我的后台占用资源,也就造成了每当有人找我时,并不能及时的获得通知且考虑回复,会耽误事也会尴尬</p>
<p> 还好,我发现了搭建微信推送的方法,不过我还是依然讨厌这种软件</p>
<h1 id="FarPush-介绍"><a href="#FarPush-介绍" class="headerlink" title="FarPush 介绍"></a>FarPush 介绍</h1><p> 这个软件好像有点年头了,不过我是最近才在 BiliBili 上看到,是有点火星了</p>
<h2 id="应用与项目介绍"><a href="#应用与项目介绍" class="headerlink" title="应用与项目介绍"></a>应用与项目介绍</h2><p> <a target="_blank" rel="noopener" href="https://www.coolapk.com/apk/com.farplace.farpush">FarPush</a> 为安卓手机端软件WeChatPush 项目为其的后端截至本文发布时FarPush 依然还提供软件内后端,但这个后端我不太清楚是运行在软件内还是其他服务器,我也没找到作者在哪里有说明</p>
<p> <a target="_blank" rel="noopener" href="https://github.com/TSIOJeft/WeChatPush">WeChatPush</a> 项目由 Python 驱动,只要有 Python 环境就可以运行,可以说是跨平台后端,需要使用 FarPush 作为推送信息接收器,但内存和后台占用比微信本身小了非常多</p>
<p> 我在这里会先提供在 Linux 与安卓(依然是用 Termux) 的部署方法Windows 的话要缓一缓了</p>
<h1 id="准备部署工作"><a href="#准备部署工作" class="headerlink" title="准备部署工作"></a>准备部署工作</h1><h5 id="此软件并不使用-Web-的微信,不会因为-Web-端被禁止登录无法使用的问题,但会占用微信-PC-端"><a href="#此软件并不使用-Web-的微信,不会因为-Web-端被禁止登录无法使用的问题,但会占用微信-PC-端" class="headerlink" title="此软件并不使用 Web 的微信,不会因为 Web 端被禁止登录无法使用的问题,但会占用微信 PC 端"></a>此软件并不使用 Web 的微信,不会因为 Web 端被禁止登录无法使用的问题,但会占用微信 PC 端</h5><h3 id="需要的东西"><a href="#需要的东西" class="headerlink" title="需要的东西"></a>需要的东西</h3> <figure class="highlight plaintext"><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></pre></td><td class="code"><pre><span class="line">一台拥有 Python 环境的设备Python 版本至少为 Python3</span><br><span class="line">pip 软件包管理器,作者推荐使用 pip3但似乎是非强制要求</span><br><span class="line">拥有独立 IP 的服务器或拥有独立 IP 且懂得配置端口转发的家庭网络</span><br><span class="line">// 上一条条件是需要使用到快速回复功能的要求,部署在局域网或获取推送信息的本机上可以不需要独立 IP</span><br></pre></td></tr></table></figure>
<h4 id="软件和仓库链接,以及作者的主页"><a href="#软件和仓库链接,以及作者的主页" class="headerlink" title="软件和仓库链接,以及作者的主页"></a>软件和仓库链接,以及作者的主页</h4><p> FarPush 下载地址: <a target="_blank" rel="noopener" href="https://www.coolapk.com/apk/com.farplace.farpush"><strong>酷安</strong></a><br> WeChatPush 项目仓库地址: <a target="_blank" rel="noopener" href="https://github.com/TSIOJeft/WeChatPush"><strong>GitHub</strong></a><br> 作者的酷安账号: <a target="_blank" rel="noopener" href="https://www.coolapk.com/u/2838135"><strong>FarPlace</strong></a><br> BiliBili 用户页: <a target="_blank" rel="noopener" href="https://sapce.bilibili.com/10721579"><strong>远方的重生</strong></a> (不太确定是不是作者本人) </p>
<h1 id="开始搭建"><a href="#开始搭建" class="headerlink" title="开始搭建"></a>开始搭建</h1><h2 id="在-Android-Termux-上部署-FarPush"><a href="#在-Android-Termux-上部署-FarPush" class="headerlink" title="在 Android (Termux) 上部署 FarPush"></a>在 Android (Termux) 上部署 FarPush</h2><h3 id="获取更新和克隆仓库"><a href="#获取更新和克隆仓库" class="headerlink" title="获取更新和克隆仓库"></a>获取更新和克隆仓库</h3> <figure class="highlight plaintext"><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">pkg update</span><br><span class="line">pkg upgrade</span><br><span class="line">// 可能会询问一些包的设置,可全部按回车</span><br></pre></td></tr></table></figure>
<h3 id="安装一些必要的软件包"><a href="#安装一些必要的软件包" class="headerlink" title="安装一些必要的软件包"></a>安装一些必要的软件包</h3> <figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">apt install git python3 pip vim</span><br></pre></td></tr></table></figure>
<p> 以上命令会安装四个软件包,<code>git</code> 用于克隆项目仓库,<code>python3</code> 为仓库运行需要环境,<code>pip</code> 用于安装项目需要的 Python 依赖, <code>vim</code> 用于编辑 项目配置文件</p>
<p> 软件安装完成后,大概会占用 <code>600 MB</code> 左右大小的空间,占的最多的还是 Python3</p>
<h3 id="克隆仓库与配置消息转发的端口"><a href="#克隆仓库与配置消息转发的端口" class="headerlink" title="克隆仓库与配置消息转发的端口"></a>克隆仓库与配置消息转发的端口</h3> <figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">git clone https://github.com/TSIOJeft/WeChatPush</span><br></pre></td></tr></table></figure>
<p> 克隆项目仓库到当前目录,如果发现在自己不熟悉的目录,可使用 <code>cd ~</code> 切换当前工作目录到用户根目录</p>
<p> 克隆完成后需要在手机上安装 FarPush 获取推送特征码Farpush 下载链接可见<a href="./#%E8%BD%AF%E4%BB%B6%E5%92%8C%E4%BB%93%E5%BA%93%E9%93%BE%E6%8E%A5%EF%BC%8C%E4%BB%A5%E5%8F%8A%E4%BD%9C%E8%80%85%E7%9A%84%E4%B8%BB%E9%A1%B5">之前部分</a></p>
<p> FarPush 推送特征码可见<code>左上角菜单</code> &gt; <code>转接设备</code> &gt; <code>右下角按钮</code>,可根据手机支持的推送服务复制对应的推送特征码(截至 22.09.07 fcm 推送渠道并未支持),然后编辑项目内的 <code>WeChatPush/itchat/config.py</code> 文件</p>
<figure class="highlight plaintext"><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></pre></td><td class="code"><pre><span class="line">cd WeChatPush/itchat/ </span><br><span class="line">// 切换到项目的 itchat 目录内</span><br><span class="line">vi config.py</span><br><span class="line">// 编辑配置文件</span><br></pre></td></tr></table></figure>
<p> 当你执行完上面两行命令时,你会进入到 vim 的操作界面,按方向键把光标移到最下面,你会看见这一段文本</p>
<figure class="highlight plaintext"><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></pre></td><td class="code"><pre><span class="line"># if show self send mes // 翻译过来就是在程序运行中是否显示自己回复的信息</span><br><span class="line">SELF_MES = False</span><br><span class="line">PUSH_REGID = &#x27;删掉此段文字,替换为你在手机上得到的推送特征码&#x27;</span><br><span class="line"># 0 for mi , 1 for oppo 2 for huawei 4 for tencent </span><br><span class="line">PHONE_TYPE = 4 // 4 使用即腾讯推送,基本上全部手机都支持,只不过非系统级推送,可能需要给予 FarPush 一直在后台运行的权限</span><br><span class="line">BLOCK_NAME = [] // 此处填入群或用户的昵称可屏蔽接受对应对话的消息</span><br><span class="line"># through message if you want reply mes just set it for 1</span><br><span class="line">MES_THROUGH = 1 // 改为 1 可使用通知栏快捷回复信息</span><br></pre></td></tr></table></figure>
<p> 根据提示填入推送特征码和根据需求调整选项vim 使用方法可到网上找找,如果有图形编辑器可以更方便,只不过 Termux 的 <code>home</code> 目录在手机根目录的 <code>/data/data/com.termux/</code> 内,没有 root 权限可能无法访问和编辑
</p>
</div>
<section class="post-tags">
<div>
<span>标签:</span>
<span class="tag">
<a href="/tag/%E5%BE%AE%E4%BF%A1/"># 微信</a>
<a href="/tag/%E4%BF%A1%E6%81%AF%E6%8E%A8%E9%80%81/"># 信息推送</a>
<a href="/tag/FarPush/"># FarPush</a>
</span>
</div>
<div>
<a href="javascript:window.history.back();">返回</a>
<span>· </span>
<a href="/">主页</a>
</div>
</section>
<section class="post-nav">
<a class="next" rel="next" href="/2022/05/10/07.phone2adb/">手机使用 ADB 与 Fastboot 给另一台手机执行命令</a>
</section>
</article>
</div>
</div>
<footer id="footer" class="footer">
<div class="copyright">
<span>Hubert Chen © 2022 | Powered by <a href="https://hexo.io" target="_blank">Hexo</a> & <a href="https://github.com/Siricee/hexo-theme-Chic" target="_blank">Chic</a></span>
</div>
</footer>
</div>
</body>
</html>

View File

@ -1 +0,0 @@
trle5.tk

View File

@ -1,7 +0,0 @@
# Hubert's Hexo blog
Powered by [Hexo](https://github.com/hexojs)
Bulid on [Hexo Starter](https://github.com/hexojs/hexo-starter)
Use themes [Chic](https://github.com/Siricee/hexo-theme-Chic)

View File

@ -1 +0,0 @@
theme: jekyll-theme-cayman

View File

@ -1,153 +0,0 @@
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport"
content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<meta name="author" content="Hubert Chen">
<title>欢迎参观 | Hubert&#39;s Blog</title>
<link rel="icon" href="/favicon.ico">
<!-- stylesheets list from _config.yml -->
<link rel="stylesheet" href="/css/style.css">
<!-- scripts list from _config.yml -->
<script src="/js/script.js"></script>
<script src="/js/tocbot.min.js"></script>
<meta name="generator" content="Hexo 6.2.0"></head>
<body>
<script>
// this function is used to check current theme before page loaded.
(() => {
const currentTheme = window.localStorage && window.localStorage.getItem('theme') || '';
const isDark = currentTheme === 'dark';
const pagebody = document.getElementsByTagName('body')[0]
if (isDark) {
pagebody.classList.add('dark-theme');
// mobile
document.getElementById("mobile-toggle-theme").innerText = "· Dark"
} else {
pagebody.classList.remove('dark-theme');
// mobile
document.getElementById("mobile-toggle-theme").innerText = "· Light"
}
})();
</script>
<div class="wrapper">
<header>
<nav class="navbar">
<div class="container">
<div class="navbar-header header-logo"><a href="/">Hubert&#39;s Blog</a></div>
<div class="menu navbar-right">
<a class="menu-item" href="/archives">文章</a>
<a class="menu-item" href="/tag">标签</a>
<a class="menu-item" href="/about">关于</a>
<input id="switch_default" type="checkbox" class="switch_default">
<label for="switch_default" class="toggleBtn"></label>
</div>
</div>
</nav>
<nav class="navbar-mobile" id="nav-mobile">
<div class="container">
<div class="navbar-header">
<div>
<a href="/">Hubert&#39;s Blog</a><a id="mobile-toggle-theme">·&nbsp;Light</a>
</div>
<div class="menu-toggle" onclick="mobileBtn()">&#9776; 菜单</div>
</div>
<div class="menu" id="mobile-menu">
<a class="menu-item" href="/archives">文章</a>
<a class="menu-item" href="/tag">标签</a>
<a class="menu-item" href="/about">关于</a>
</div>
</div>
</nav>
</header>
<script>
var mobileBtn = function f() {
var toggleMenu = document.getElementsByClassName("menu-toggle")[0];
var mobileMenu = document.getElementById("mobile-menu");
if(toggleMenu.classList.contains("active")){
toggleMenu.classList.remove("active")
mobileMenu.classList.remove("active")
}else{
toggleMenu.classList.add("active")
mobileMenu.classList.add("active")
}
}
</script>
<div class="main">
<div class="container">
<article class="post-wrap page">
<h2 class="post-title">欢迎参观</h2>
<section class="post-content">
<h2 id="你好,欢迎来到我的博客"><a href="#你好,欢迎来到我的博客" class="headerlink" title="你好,欢迎来到我的博客"></a>你好,欢迎来到我的博客</h2><p>这个博客由我创建于2022年01月24日起初是想跟网络上的大佬一样搭个自己的博客不过现在搭好了也不知道写些什么。</p>
<h2 id="关于我-Hubert-Chen"><a href="#关于我-Hubert-Chen" class="headerlink" title="关于我 (Hubert Chen)"></a>关于我 (Hubert Chen)</h2><h3 id="兴趣爱好"><a href="#兴趣爱好" class="headerlink" title="兴趣爱好"></a>兴趣爱好</h3><p>给手机刷系统,例如 <a target="_blank" rel="noopener" href="https://lineageos.org/">Lineage OS</a> <a target="_blank" rel="noopener" href="https://sailfishos.org/">Sailfish OS</a><br>会些基础的Linux操作<del>不过十分容易碰见bug</del><br>会画画 (非常非常基础,目前只会描些图)<br>听音乐使用的软件: <a target="_blank" rel="noopener" href="https://spotify.com/">Spotify</a> <a target="_blank" rel="noopener" href="https://music.163.com/">网易云音乐</a> 偶尔会在网易云音乐里上传一些歌词<br>玩游戏会用的软件: <a target="_blank" rel="noopener" href="https://store.steampowered.com/">Steam</a> <a target="_blank" rel="noopener" href="https://www.ubisoft.com/">Ubisoft</a> <a target="_blank" rel="noopener" href="https://www.xbox.com/">Xbox(云游戏)</a><br>活跃的社交平台:<a target="_blank" rel="noopener" href="https://t.me/trle5">Telegram</a> <a target="_blank" rel="noopener" href="https://twitter.com/interstellar750">Twitter</a> <a target="_blank" rel="noopener" href="https://github.com/Interstellar750/">GitHub</a> <a target="_blank" rel="noopener" href="https://matrix.io/#/@trle5:matrix.org">Matrix</a> 国内的QQ微信也在用但并不太喜欢而且放出来可能会泄露个人信息所以就不公开了</p>
<h2 id="建站历程:"><a href="#建站历程:" class="headerlink" title="建站历程:"></a>建站历程:</h2><h3 id="2022-x2F-01-x2F-24"><a href="#2022-x2F-01-x2F-24" class="headerlink" title="2022&#x2F;01&#x2F;24"></a>2022&#x2F;01&#x2F;24</h3><p>初次建立并使用 <a target="_blank" rel="noopener" href="https://github.io/">GitHub Pages</a> 来作为服务器 其实并不是第一次前前后后试了好几次因为碰到了好多bug</p>
<h3 id="2022-x2F-01-x2F-29"><a href="#2022-x2F-01-x2F-29" class="headerlink" title="2022&#x2F;01&#x2F;29"></a>2022&#x2F;01&#x2F;29</h3><p><a href="freenom.com">Freenom</a> 上申请了12个月的免费域名 trle5.tk 但由于不会设置DNS解析依然用着 <a target="_blank" rel="noopener" href="https://github.io/">GitHub Pages</a> 的默认域名</p>
<h3 id="2022-x2F-02-x2F-26"><a href="#2022-x2F-02-x2F-26" class="headerlink" title="2022&#x2F;02&#x2F;26"></a>2022&#x2F;02&#x2F;26</h3><p>由于 x10m2 上的 <a target="_blank" rel="noopener" href="https://sailfishos.org/">Sailfish OS</a> 因为未知问题操作很卡,把 hexo 后端备份出来迁移到了s10e使用 <a target="_blank" rel="noopener" href="https://play.google.com/store/apps/details?id=com.termux">Termux</a> 来继续运维</p>
<h3 id="2022-x2F-02-x2F-27"><a href="#2022-x2F-02-x2F-27" class="headerlink" title="2022&#x2F;02&#x2F;27"></a>2022&#x2F;02&#x2F;27</h3><p>将域名 DNS 解析托管到 <a href="godaddy.com">GoDaddy</a> ,成功用上了自定义域名</p>
<h3 id="2022-x2F-03-x2F-08"><a href="#2022-x2F-03-x2F-08" class="headerlink" title="2022&#x2F;03&#x2F;08"></a>2022&#x2F;03&#x2F;08</h3><p><a target="_blank" rel="noopener" href="https://reg.ru/">reg.ru</a> 购买了一年的 <a target="_blank" rel="noopener" href="https://trle5.xyz/">trle5.xyz</a> 域名,用于存放文件,本站可能有一些图片文件会储存在里面</p>
<h3 id="2022-x2F-03-x2F-14"><a href="#2022-x2F-03-x2F-14" class="headerlink" title="2022&#x2F;03&#x2F;14"></a>2022&#x2F;03&#x2F;14</h3><p>更换为由 <a href="freenom.com">Freenom</a> 提供的 DNS 解析</p>
<h3 id="2022-x2F-03-x2F-15"><a href="#2022-x2F-03-x2F-15" class="headerlink" title="2022&#x2F;03&#x2F;15"></a>2022&#x2F;03&#x2F;15</h3><p>把 blackbox 的域名从 <a target="_blank" rel="noopener" href="https://trle5.xyz/">trle5.xyz</a> 迁移到 <a target="_blank" rel="noopener" href="https://t5d.trle5.tk/">t5d.trle5.tk</a></p>
<h3 id="2022-x2F-05-x2F-07"><a href="#2022-x2F-05-x2F-07" class="headerlink" title="2022&#x2F;05&#x2F;07"></a>2022&#x2F;05&#x2F;07</h3><p>从默认的 Landscape 主题更换为 <a target="_blank" rel="noopener" href="https://github.com/Siricee">Siricee</a> 制作的 <a target="_blank" rel="noopener" href="https://github.com/Siricee/hexo-theme-Chic">Chic</a> 主题</p>
<h3 id="2022-x2F-05-x2F-08"><a href="#2022-x2F-05-x2F-08" class="headerlink" title="2022&#x2F;05&#x2F;08"></a>2022&#x2F;05&#x2F;08</h3><p>使用 <a target="_blank" rel="noopener" href="https://vercel.com/">Vercel</a> 建立了博客镜像站,使用域名 <a target="_blank" rel="noopener" href="https://trle5.xyz/">trle5.xyz</a> DNS 解析由 <a target="_blank" rel="noopener" href="https://cloudflare.com/">Cloudflare</a> 提供</p>
<h3 id="2022-x2F-06-x2F-01"><a href="#2022-x2F-06-x2F-01" class="headerlink" title="2022&#x2F;06&#x2F;01"></a>2022&#x2F;06&#x2F;01</h3><p>重新配置了博客主题,因为 05&#x2F;15 那天手机数据丢失让博客后端也部分丢失了 (真的丢了好多东西啊😢)</p>
<h3 id="2022-x2F-07-x2F-19"><a href="#2022-x2F-07-x2F-19" class="headerlink" title="2022&#x2F;07&#x2F;19"></a>2022&#x2F;07&#x2F;19</h3><p>重新修正了一篇文章,之前写的文章发现达不到所想的方案所以就暂搁了 <del><strong></strong></del> 由于之前的丢数据问题Cloudflare 账号也登不上了,找回有点麻烦</p>
<h3 id="2022-x2F-09-x2F-11"><a href="#2022-x2F-09-x2F-11" class="headerlink" title="2022&#x2F;09&#x2F;11"></a>2022&#x2F;09&#x2F;11</h3><p>给 Cloudflare 客服发邮件,成功拿回了账号的控制权,目前 <a target="_blank" rel="noopener" href="https://trle5.xyz/">trle5.xyz</a> 站点会随时更新,就是代表上面可能会有一些没写完的文章和新东西,文章写完后再推送至 <a href="https://trle5.tk/">trle5.tk</a>,于 6 月 4 日在 <a target="_blank" rel="noopener" href="https://porkbun.com/">Porkbun</a> 白嫖的 <a target="_blank" rel="noopener" href="https://trle5.dev/">trle5.dev</a> 域名还没打算好用来干嘛,两个付费域名以我现在的经济能力压力有点大</p>
</section>
</article>
</div>
</div>
<footer id="footer" class="footer">
<div class="copyright">
<span>Hubert Chen © 2022 | Powered by <a href="https://hexo.io" target="_blank">Hexo</a> & <a href="https://github.com/Siricee/hexo-theme-Chic" target="_blank">Chic</a></span>
</div>
</footer>
</div>
</body>
</html>

View File

@ -1,162 +0,0 @@
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport"
content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<meta name="author" content="Hubert Chen">
<title>归档: 2022/1 | Hubert&#39;s Blog</title>
<link rel="icon" href="/favicon.ico">
<!-- stylesheets list from _config.yml -->
<link rel="stylesheet" href="/css/style.css">
<!-- scripts list from _config.yml -->
<script src="/js/script.js"></script>
<script src="/js/tocbot.min.js"></script>
<meta name="generator" content="Hexo 6.2.0"></head>
<body>
<script>
// this function is used to check current theme before page loaded.
(() => {
const currentTheme = window.localStorage && window.localStorage.getItem('theme') || '';
const isDark = currentTheme === 'dark';
const pagebody = document.getElementsByTagName('body')[0]
if (isDark) {
pagebody.classList.add('dark-theme');
// mobile
document.getElementById("mobile-toggle-theme").innerText = "· Dark"
} else {
pagebody.classList.remove('dark-theme');
// mobile
document.getElementById("mobile-toggle-theme").innerText = "· Light"
}
})();
</script>
<div class="wrapper">
<header>
<nav class="navbar">
<div class="container">
<div class="navbar-header header-logo"><a href="/">Hubert&#39;s Blog</a></div>
<div class="menu navbar-right">
<a class="menu-item" href="/archives">文章</a>
<a class="menu-item" href="/tag">标签</a>
<a class="menu-item" href="/about">关于</a>
<input id="switch_default" type="checkbox" class="switch_default">
<label for="switch_default" class="toggleBtn"></label>
</div>
</div>
</nav>
<nav class="navbar-mobile" id="nav-mobile">
<div class="container">
<div class="navbar-header">
<div>
<a href="/">Hubert&#39;s Blog</a><a id="mobile-toggle-theme">·&nbsp;Light</a>
</div>
<div class="menu-toggle" onclick="mobileBtn()">&#9776; 菜单</div>
</div>
<div class="menu" id="mobile-menu">
<a class="menu-item" href="/archives">文章</a>
<a class="menu-item" href="/tag">标签</a>
<a class="menu-item" href="/about">关于</a>
</div>
</div>
</nav>
</header>
<script>
var mobileBtn = function f() {
var toggleMenu = document.getElementsByClassName("menu-toggle")[0];
var mobileMenu = document.getElementById("mobile-menu");
if(toggleMenu.classList.contains("active")){
toggleMenu.classList.remove("active")
mobileMenu.classList.remove("active")
}else{
toggleMenu.classList.add("active")
mobileMenu.classList.add("active")
}
}
</script>
<div class="main">
<div class="post-wrap archive">
<h3>2022</h3>
<article class="archive-item">
<a class="archive-item-link" href="/2022/01/26/03.testagain/">testagain</a>
<span class="archive-item-date">26 一月, 2022</span>
</article>
<article class="archive-item">
<a class="archive-item-link" href="/2022/01/26/02.pages/">这是一个测试页面</a>
<span class="archive-item-date">26 一月, 2022</span>
</article>
<article class="archive-item">
<a class="archive-item-link" href="/2022/01/24/01.hello-world/">Hello World</a>
<span class="archive-item-date">24 一月, 2022</span>
</article>
</div>
</div>
<footer id="footer" class="footer">
<div class="copyright">
<span>Hubert Chen © 2022 | Powered by <a href="https://hexo.io" target="_blank">Hexo</a> & <a href="https://github.com/Siricee/hexo-theme-Chic" target="_blank">Chic</a></span>
</div>
</footer>
</div>
</body>
</html>

View File

@ -1,153 +0,0 @@
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport"
content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<meta name="author" content="Hubert Chen">
<title>归档: 2022/3 | Hubert&#39;s Blog</title>
<link rel="icon" href="/favicon.ico">
<!-- stylesheets list from _config.yml -->
<link rel="stylesheet" href="/css/style.css">
<!-- scripts list from _config.yml -->
<script src="/js/script.js"></script>
<script src="/js/tocbot.min.js"></script>
<meta name="generator" content="Hexo 6.2.0"></head>
<body>
<script>
// this function is used to check current theme before page loaded.
(() => {
const currentTheme = window.localStorage && window.localStorage.getItem('theme') || '';
const isDark = currentTheme === 'dark';
const pagebody = document.getElementsByTagName('body')[0]
if (isDark) {
pagebody.classList.add('dark-theme');
// mobile
document.getElementById("mobile-toggle-theme").innerText = "· Dark"
} else {
pagebody.classList.remove('dark-theme');
// mobile
document.getElementById("mobile-toggle-theme").innerText = "· Light"
}
})();
</script>
<div class="wrapper">
<header>
<nav class="navbar">
<div class="container">
<div class="navbar-header header-logo"><a href="/">Hubert&#39;s Blog</a></div>
<div class="menu navbar-right">
<a class="menu-item" href="/archives">文章</a>
<a class="menu-item" href="/tag">标签</a>
<a class="menu-item" href="/about">关于</a>
<input id="switch_default" type="checkbox" class="switch_default">
<label for="switch_default" class="toggleBtn"></label>
</div>
</div>
</nav>
<nav class="navbar-mobile" id="nav-mobile">
<div class="container">
<div class="navbar-header">
<div>
<a href="/">Hubert&#39;s Blog</a><a id="mobile-toggle-theme">·&nbsp;Light</a>
</div>
<div class="menu-toggle" onclick="mobileBtn()">&#9776; 菜单</div>
</div>
<div class="menu" id="mobile-menu">
<a class="menu-item" href="/archives">文章</a>
<a class="menu-item" href="/tag">标签</a>
<a class="menu-item" href="/about">关于</a>
</div>
</div>
</nav>
</header>
<script>
var mobileBtn = function f() {
var toggleMenu = document.getElementsByClassName("menu-toggle")[0];
var mobileMenu = document.getElementById("mobile-menu");
if(toggleMenu.classList.contains("active")){
toggleMenu.classList.remove("active")
mobileMenu.classList.remove("active")
}else{
toggleMenu.classList.add("active")
mobileMenu.classList.add("active")
}
}
</script>
<div class="main">
<div class="post-wrap archive">
<h3>2022</h3>
<article class="archive-item">
<a class="archive-item-link" href="/2022/03/05/05.%E6%90%AD%E5%BB%BA%E4%B8%80%E4%B8%AA%E8%87%AA%E5%B7%B1%E7%9A%84%E5%8D%9A%E5%AE%A2/">搭建一个自己的博客</a>
<span class="archive-item-date">05 三月, 2022</span>
</article>
<article class="archive-item">
<a class="archive-item-link" href="/2022/03/01/04.%E6%AC%A2%E8%BF%8E%E5%8F%82%E8%A7%82/">欢迎参观</a>
<span class="archive-item-date">01 三月, 2022</span>
</article>
</div>
</div>
<footer id="footer" class="footer">
<div class="copyright">
<span>Hubert Chen © 2022 | Powered by <a href="https://hexo.io" target="_blank">Hexo</a> & <a href="https://github.com/Siricee/hexo-theme-Chic" target="_blank">Chic</a></span>
</div>
</footer>
</div>
</body>
</html>

View File

@ -1,144 +0,0 @@
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport"
content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<meta name="author" content="Hubert Chen">
<title>归档: 2022/4 | Hubert&#39;s Blog</title>
<link rel="icon" href="/favicon.ico">
<!-- stylesheets list from _config.yml -->
<link rel="stylesheet" href="/css/style.css">
<!-- scripts list from _config.yml -->
<script src="/js/script.js"></script>
<script src="/js/tocbot.min.js"></script>
<meta name="generator" content="Hexo 6.2.0"></head>
<body>
<script>
// this function is used to check current theme before page loaded.
(() => {
const currentTheme = window.localStorage && window.localStorage.getItem('theme') || '';
const isDark = currentTheme === 'dark';
const pagebody = document.getElementsByTagName('body')[0]
if (isDark) {
pagebody.classList.add('dark-theme');
// mobile
document.getElementById("mobile-toggle-theme").innerText = "· Dark"
} else {
pagebody.classList.remove('dark-theme');
// mobile
document.getElementById("mobile-toggle-theme").innerText = "· Light"
}
})();
</script>
<div class="wrapper">
<header>
<nav class="navbar">
<div class="container">
<div class="navbar-header header-logo"><a href="/">Hubert&#39;s Blog</a></div>
<div class="menu navbar-right">
<a class="menu-item" href="/archives">文章</a>
<a class="menu-item" href="/tag">标签</a>
<a class="menu-item" href="/about">关于</a>
<input id="switch_default" type="checkbox" class="switch_default">
<label for="switch_default" class="toggleBtn"></label>
</div>
</div>
</nav>
<nav class="navbar-mobile" id="nav-mobile">
<div class="container">
<div class="navbar-header">
<div>
<a href="/">Hubert&#39;s Blog</a><a id="mobile-toggle-theme">·&nbsp;Light</a>
</div>
<div class="menu-toggle" onclick="mobileBtn()">&#9776; 菜单</div>
</div>
<div class="menu" id="mobile-menu">
<a class="menu-item" href="/archives">文章</a>
<a class="menu-item" href="/tag">标签</a>
<a class="menu-item" href="/about">关于</a>
</div>
</div>
</nav>
</header>
<script>
var mobileBtn = function f() {
var toggleMenu = document.getElementsByClassName("menu-toggle")[0];
var mobileMenu = document.getElementById("mobile-menu");
if(toggleMenu.classList.contains("active")){
toggleMenu.classList.remove("active")
mobileMenu.classList.remove("active")
}else{
toggleMenu.classList.add("active")
mobileMenu.classList.add("active")
}
}
</script>
<div class="main">
<div class="post-wrap archive">
<h3>2022</h3>
<article class="archive-item">
<a class="archive-item-link" href="/2022/04/07/06.Page4/">闲谈杂聊</a>
<span class="archive-item-date">07 四月, 2022</span>
</article>
</div>
</div>
<footer id="footer" class="footer">
<div class="copyright">
<span>Hubert Chen © 2022 | Powered by <a href="https://hexo.io" target="_blank">Hexo</a> & <a href="https://github.com/Siricee/hexo-theme-Chic" target="_blank">Chic</a></span>
</div>
</footer>
</div>
</body>
</html>

View File

@ -1,144 +0,0 @@
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport"
content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<meta name="author" content="Hubert Chen">
<title>归档: 2022/5 | Hubert&#39;s Blog</title>
<link rel="icon" href="/favicon.ico">
<!-- stylesheets list from _config.yml -->
<link rel="stylesheet" href="/css/style.css">
<!-- scripts list from _config.yml -->
<script src="/js/script.js"></script>
<script src="/js/tocbot.min.js"></script>
<meta name="generator" content="Hexo 6.2.0"></head>
<body>
<script>
// this function is used to check current theme before page loaded.
(() => {
const currentTheme = window.localStorage && window.localStorage.getItem('theme') || '';
const isDark = currentTheme === 'dark';
const pagebody = document.getElementsByTagName('body')[0]
if (isDark) {
pagebody.classList.add('dark-theme');
// mobile
document.getElementById("mobile-toggle-theme").innerText = "· Dark"
} else {
pagebody.classList.remove('dark-theme');
// mobile
document.getElementById("mobile-toggle-theme").innerText = "· Light"
}
})();
</script>
<div class="wrapper">
<header>
<nav class="navbar">
<div class="container">
<div class="navbar-header header-logo"><a href="/">Hubert&#39;s Blog</a></div>
<div class="menu navbar-right">
<a class="menu-item" href="/archives">文章</a>
<a class="menu-item" href="/tag">标签</a>
<a class="menu-item" href="/about">关于</a>
<input id="switch_default" type="checkbox" class="switch_default">
<label for="switch_default" class="toggleBtn"></label>
</div>
</div>
</nav>
<nav class="navbar-mobile" id="nav-mobile">
<div class="container">
<div class="navbar-header">
<div>
<a href="/">Hubert&#39;s Blog</a><a id="mobile-toggle-theme">·&nbsp;Light</a>
</div>
<div class="menu-toggle" onclick="mobileBtn()">&#9776; 菜单</div>
</div>
<div class="menu" id="mobile-menu">
<a class="menu-item" href="/archives">文章</a>
<a class="menu-item" href="/tag">标签</a>
<a class="menu-item" href="/about">关于</a>
</div>
</div>
</nav>
</header>
<script>
var mobileBtn = function f() {
var toggleMenu = document.getElementsByClassName("menu-toggle")[0];
var mobileMenu = document.getElementById("mobile-menu");
if(toggleMenu.classList.contains("active")){
toggleMenu.classList.remove("active")
mobileMenu.classList.remove("active")
}else{
toggleMenu.classList.add("active")
mobileMenu.classList.add("active")
}
}
</script>
<div class="main">
<div class="post-wrap archive">
<h3>2022</h3>
<article class="archive-item">
<a class="archive-item-link" href="/2022/05/10/07.phone2adb/">手机使用 ADB 与 Fastboot 给另一台手机执行命令</a>
<span class="archive-item-date">10 五月, 2022</span>
</article>
</div>
</div>
<footer id="footer" class="footer">
<div class="copyright">
<span>Hubert Chen © 2022 | Powered by <a href="https://hexo.io" target="_blank">Hexo</a> & <a href="https://github.com/Siricee/hexo-theme-Chic" target="_blank">Chic</a></span>
</div>
</footer>
</div>
</body>
</html>

View File

@ -1,144 +0,0 @@
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport"
content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<meta name="author" content="Hubert Chen">
<title>归档: 2022/9 | Hubert&#39;s Blog</title>
<link rel="icon" href="/favicon.ico">
<!-- stylesheets list from _config.yml -->
<link rel="stylesheet" href="/css/style.css">
<!-- scripts list from _config.yml -->
<script src="/js/script.js"></script>
<script src="/js/tocbot.min.js"></script>
<meta name="generator" content="Hexo 6.2.0"></head>
<body>
<script>
// this function is used to check current theme before page loaded.
(() => {
const currentTheme = window.localStorage && window.localStorage.getItem('theme') || '';
const isDark = currentTheme === 'dark';
const pagebody = document.getElementsByTagName('body')[0]
if (isDark) {
pagebody.classList.add('dark-theme');
// mobile
document.getElementById("mobile-toggle-theme").innerText = "· Dark"
} else {
pagebody.classList.remove('dark-theme');
// mobile
document.getElementById("mobile-toggle-theme").innerText = "· Light"
}
})();
</script>
<div class="wrapper">
<header>
<nav class="navbar">
<div class="container">
<div class="navbar-header header-logo"><a href="/">Hubert&#39;s Blog</a></div>
<div class="menu navbar-right">
<a class="menu-item" href="/archives">文章</a>
<a class="menu-item" href="/tag">标签</a>
<a class="menu-item" href="/about">关于</a>
<input id="switch_default" type="checkbox" class="switch_default">
<label for="switch_default" class="toggleBtn"></label>
</div>
</div>
</nav>
<nav class="navbar-mobile" id="nav-mobile">
<div class="container">
<div class="navbar-header">
<div>
<a href="/">Hubert&#39;s Blog</a><a id="mobile-toggle-theme">·&nbsp;Light</a>
</div>
<div class="menu-toggle" onclick="mobileBtn()">&#9776; 菜单</div>
</div>
<div class="menu" id="mobile-menu">
<a class="menu-item" href="/archives">文章</a>
<a class="menu-item" href="/tag">标签</a>
<a class="menu-item" href="/about">关于</a>
</div>
</div>
</nav>
</header>
<script>
var mobileBtn = function f() {
var toggleMenu = document.getElementsByClassName("menu-toggle")[0];
var mobileMenu = document.getElementById("mobile-menu");
if(toggleMenu.classList.contains("active")){
toggleMenu.classList.remove("active")
mobileMenu.classList.remove("active")
}else{
toggleMenu.classList.add("active")
mobileMenu.classList.add("active")
}
}
</script>
<div class="main">
<div class="post-wrap archive">
<h3>2022</h3>
<article class="archive-item">
<a class="archive-item-link" href="/2022/09/01/07.wechatpush/">使用 FarPush 搭建微信消息推送服务</a>
<span class="archive-item-date">01 九月, 2022</span>
</article>
</div>
</div>
<footer id="footer" class="footer">
<div class="copyright">
<span>Hubert Chen © 2022 | Powered by <a href="https://hexo.io" target="_blank">Hexo</a> & <a href="https://github.com/Siricee/hexo-theme-Chic" target="_blank">Chic</a></span>
</div>
</footer>
</div>
</body>
</html>

View File

@ -1,207 +0,0 @@
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport"
content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<meta name="author" content="Hubert Chen">
<title>归档: 2022 | Hubert&#39;s Blog</title>
<link rel="icon" href="/favicon.ico">
<!-- stylesheets list from _config.yml -->
<link rel="stylesheet" href="/css/style.css">
<!-- scripts list from _config.yml -->
<script src="/js/script.js"></script>
<script src="/js/tocbot.min.js"></script>
<meta name="generator" content="Hexo 6.2.0"></head>
<body>
<script>
// this function is used to check current theme before page loaded.
(() => {
const currentTheme = window.localStorage && window.localStorage.getItem('theme') || '';
const isDark = currentTheme === 'dark';
const pagebody = document.getElementsByTagName('body')[0]
if (isDark) {
pagebody.classList.add('dark-theme');
// mobile
document.getElementById("mobile-toggle-theme").innerText = "· Dark"
} else {
pagebody.classList.remove('dark-theme');
// mobile
document.getElementById("mobile-toggle-theme").innerText = "· Light"
}
})();
</script>
<div class="wrapper">
<header>
<nav class="navbar">
<div class="container">
<div class="navbar-header header-logo"><a href="/">Hubert&#39;s Blog</a></div>
<div class="menu navbar-right">
<a class="menu-item" href="/archives">文章</a>
<a class="menu-item" href="/tag">标签</a>
<a class="menu-item" href="/about">关于</a>
<input id="switch_default" type="checkbox" class="switch_default">
<label for="switch_default" class="toggleBtn"></label>
</div>
</div>
</nav>
<nav class="navbar-mobile" id="nav-mobile">
<div class="container">
<div class="navbar-header">
<div>
<a href="/">Hubert&#39;s Blog</a><a id="mobile-toggle-theme">·&nbsp;Light</a>
</div>
<div class="menu-toggle" onclick="mobileBtn()">&#9776; 菜单</div>
</div>
<div class="menu" id="mobile-menu">
<a class="menu-item" href="/archives">文章</a>
<a class="menu-item" href="/tag">标签</a>
<a class="menu-item" href="/about">关于</a>
</div>
</div>
</nav>
</header>
<script>
var mobileBtn = function f() {
var toggleMenu = document.getElementsByClassName("menu-toggle")[0];
var mobileMenu = document.getElementById("mobile-menu");
if(toggleMenu.classList.contains("active")){
toggleMenu.classList.remove("active")
mobileMenu.classList.remove("active")
}else{
toggleMenu.classList.add("active")
mobileMenu.classList.add("active")
}
}
</script>
<div class="main">
<div class="post-wrap archive">
<h3>2022</h3>
<article class="archive-item">
<a class="archive-item-link" href="/2022/09/01/07.wechatpush/">使用 FarPush 搭建微信消息推送服务</a>
<span class="archive-item-date">01 九月, 2022</span>
</article>
<article class="archive-item">
<a class="archive-item-link" href="/2022/05/10/07.phone2adb/">手机使用 ADB 与 Fastboot 给另一台手机执行命令</a>
<span class="archive-item-date">10 五月, 2022</span>
</article>
<article class="archive-item">
<a class="archive-item-link" href="/2022/04/07/06.Page4/">闲谈杂聊</a>
<span class="archive-item-date">07 四月, 2022</span>
</article>
<article class="archive-item">
<a class="archive-item-link" href="/2022/03/05/05.%E6%90%AD%E5%BB%BA%E4%B8%80%E4%B8%AA%E8%87%AA%E5%B7%B1%E7%9A%84%E5%8D%9A%E5%AE%A2/">搭建一个自己的博客</a>
<span class="archive-item-date">05 三月, 2022</span>
</article>
<article class="archive-item">
<a class="archive-item-link" href="/2022/03/01/04.%E6%AC%A2%E8%BF%8E%E5%8F%82%E8%A7%82/">欢迎参观</a>
<span class="archive-item-date">01 三月, 2022</span>
</article>
<article class="archive-item">
<a class="archive-item-link" href="/2022/01/26/03.testagain/">testagain</a>
<span class="archive-item-date">26 一月, 2022</span>
</article>
<article class="archive-item">
<a class="archive-item-link" href="/2022/01/26/02.pages/">这是一个测试页面</a>
<span class="archive-item-date">26 一月, 2022</span>
</article>
<article class="archive-item">
<a class="archive-item-link" href="/2022/01/24/01.hello-world/">Hello World</a>
<span class="archive-item-date">24 一月, 2022</span>
</article>
</div>
</div>
<footer id="footer" class="footer">
<div class="copyright">
<span>Hubert Chen © 2022 | Powered by <a href="https://hexo.io" target="_blank">Hexo</a> & <a href="https://github.com/Siricee/hexo-theme-Chic" target="_blank">Chic</a></span>
</div>
</footer>
</div>
</body>
</html>

View File

@ -1,207 +0,0 @@
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport"
content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<meta name="author" content="Hubert Chen">
<title>归档 | Hubert&#39;s Blog</title>
<link rel="icon" href="/favicon.ico">
<!-- stylesheets list from _config.yml -->
<link rel="stylesheet" href="/css/style.css">
<!-- scripts list from _config.yml -->
<script src="/js/script.js"></script>
<script src="/js/tocbot.min.js"></script>
<meta name="generator" content="Hexo 6.2.0"></head>
<body>
<script>
// this function is used to check current theme before page loaded.
(() => {
const currentTheme = window.localStorage && window.localStorage.getItem('theme') || '';
const isDark = currentTheme === 'dark';
const pagebody = document.getElementsByTagName('body')[0]
if (isDark) {
pagebody.classList.add('dark-theme');
// mobile
document.getElementById("mobile-toggle-theme").innerText = "· Dark"
} else {
pagebody.classList.remove('dark-theme');
// mobile
document.getElementById("mobile-toggle-theme").innerText = "· Light"
}
})();
</script>
<div class="wrapper">
<header>
<nav class="navbar">
<div class="container">
<div class="navbar-header header-logo"><a href="/">Hubert&#39;s Blog</a></div>
<div class="menu navbar-right">
<a class="menu-item" href="/archives">文章</a>
<a class="menu-item" href="/tag">标签</a>
<a class="menu-item" href="/about">关于</a>
<input id="switch_default" type="checkbox" class="switch_default">
<label for="switch_default" class="toggleBtn"></label>
</div>
</div>
</nav>
<nav class="navbar-mobile" id="nav-mobile">
<div class="container">
<div class="navbar-header">
<div>
<a href="/">Hubert&#39;s Blog</a><a id="mobile-toggle-theme">·&nbsp;Light</a>
</div>
<div class="menu-toggle" onclick="mobileBtn()">&#9776; 菜单</div>
</div>
<div class="menu" id="mobile-menu">
<a class="menu-item" href="/archives">文章</a>
<a class="menu-item" href="/tag">标签</a>
<a class="menu-item" href="/about">关于</a>
</div>
</div>
</nav>
</header>
<script>
var mobileBtn = function f() {
var toggleMenu = document.getElementsByClassName("menu-toggle")[0];
var mobileMenu = document.getElementById("mobile-menu");
if(toggleMenu.classList.contains("active")){
toggleMenu.classList.remove("active")
mobileMenu.classList.remove("active")
}else{
toggleMenu.classList.add("active")
mobileMenu.classList.add("active")
}
}
</script>
<div class="main">
<div class="post-wrap archive">
<h3>2022</h3>
<article class="archive-item">
<a class="archive-item-link" href="/2022/09/01/07.wechatpush/">使用 FarPush 搭建微信消息推送服务</a>
<span class="archive-item-date">01 九月, 2022</span>
</article>
<article class="archive-item">
<a class="archive-item-link" href="/2022/05/10/07.phone2adb/">手机使用 ADB 与 Fastboot 给另一台手机执行命令</a>
<span class="archive-item-date">10 五月, 2022</span>
</article>
<article class="archive-item">
<a class="archive-item-link" href="/2022/04/07/06.Page4/">闲谈杂聊</a>
<span class="archive-item-date">07 四月, 2022</span>
</article>
<article class="archive-item">
<a class="archive-item-link" href="/2022/03/05/05.%E6%90%AD%E5%BB%BA%E4%B8%80%E4%B8%AA%E8%87%AA%E5%B7%B1%E7%9A%84%E5%8D%9A%E5%AE%A2/">搭建一个自己的博客</a>
<span class="archive-item-date">05 三月, 2022</span>
</article>
<article class="archive-item">
<a class="archive-item-link" href="/2022/03/01/04.%E6%AC%A2%E8%BF%8E%E5%8F%82%E8%A7%82/">欢迎参观</a>
<span class="archive-item-date">01 三月, 2022</span>
</article>
<article class="archive-item">
<a class="archive-item-link" href="/2022/01/26/03.testagain/">testagain</a>
<span class="archive-item-date">26 一月, 2022</span>
</article>
<article class="archive-item">
<a class="archive-item-link" href="/2022/01/26/02.pages/">这是一个测试页面</a>
<span class="archive-item-date">26 一月, 2022</span>
</article>
<article class="archive-item">
<a class="archive-item-link" href="/2022/01/24/01.hello-world/">Hello World</a>
<span class="archive-item-date">24 一月, 2022</span>
</article>
</div>
</div>
<footer id="footer" class="footer">
<div class="copyright">
<span>Hubert Chen © 2022 | Powered by <a href="https://hexo.io" target="_blank">Hexo</a> & <a href="https://github.com/Siricee/hexo-theme-Chic" target="_blank">Chic</a></span>
</div>
</footer>
</div>
</body>
</html>

View File

@ -1,62 +0,0 @@
html {
font-family: $font-family;
}
html::-webkit-scrollbar {
width: 8px;
height: 8px;
}
html::-webkit-scrollbar-thumb {
height: 40px;
background-color: #eee;
border-radius: 16px;
}
html::-webkit-scrollbar-thumb:hover {
background-color: #ddd;
}
body {
font-size: 11pt;
font-weight: normal;
line-height: 2em;
overflow: overlay;
background-color: $light-background-color;
color: $light-font-color;
transition: color 0.2s ease, border-color 0.2s ease, background 0.2s ease, opacity 0.2s ease;
}
body:before {
content: "";
background-repeat: no-repeat;
background-position: center;
opacity: 0.05;
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
z-index: -1;
}
body.dark-theme {
background-color: $dark-background-color;
color: $dark-font-color;
transition: color 0.2s ease, border-color 0.2s ease, background 0.2s ease, opacity 0.2s ease;
}
a {
color: $light-global-link-color;
text-decoration: none;
transition: color 0.2s ease, border-color 0.2s ease, background 0.2s ease, opacity 0.2s ease;
cursor: pointer;
}
a:hover {
color: $light-global-link-hover-color;
text-decoration: none;
transition: color 0.2s ease, border-color 0.2s ease, background 0.2s ease, opacity 0.2s ease;
}
.dark-theme a {
color: $dark-global-link-color;
text-decoration: none;
transition: color 0.2s ease, border-color 0.2s ease, background 0.2s ease, opacity 0.2s ease;
}
.dark-theme a:hover {
color: $dark-global-link-hover-color;
text-decoration: none;
transition: color 0.2s ease, border-color 0.2s ease, background 0.2s ease, opacity 0.2s ease;
}

View File

@ -1,8 +0,0 @@
.dark-theme .post-content figure.highlight .code pre {
background-color: $dark-post-blockquote-background-color;
color: $dark-post-blockquote-border-color;
}
.dark-theme .post-content figure.highlight .gutter pre {
background-color: $dark-post-blockquote-background-color;
color: $dark-mode-pre-line-number-foreground-color;
}

View File

@ -1,7 +0,0 @@
@font-face {
font-family: 'lanting';
src: url("../fonts/lanting/lanting.eot"); /* IE9 */
src: url("../fonts/lanting/lanting.eot?#iefix") format('embedded-opentype'), /* IE6-IE8 */ url("../fonts/lanting/lanting.woff2") format('woff2'), url("../fonts/lanting/lanting.woff") format('woff'), url("../fonts/lanting/lanting.ttf") format('truetype'); /* chrome, firefox, opera, Safari, Android, iOS 4.2+ */
font-weight: 300;
font-display: swap;
}

View File

@ -1,42 +0,0 @@
.wrapper {
display: flex;
flex-direction: column;
min-height: 100vh;
width: 100%;
}
.navbar {
height: 4rem;
line-height: 4rem;
width: 100%;
}
.navbar .container {
width: auto;
max-width: 1200px;
text-align: center;
padding-left: 1em;
padding-right: 1em;
margin: 0 auto;
display: flex;
justify-content: space-between;
}
.main {
flex-grow: 1;
flex-shrink: 0;
flex-basis: auto;
display: flex;
flex-direction: column;
}
.main .container {
padding-left: 1em;
padding-right: 1em;
height: 100%;
display: flex;
flex-direction: column;
flex: 1;
}
.footer {
height: 4rem;
width: 100%;
text-align: center;
line-height: 4rem;
}

View File

@ -1,153 +0,0 @@
/* mobile phone and smart portable devices */
@media screen and (max-width: 479px) {
.main {
padding-top: 40pt;
}
.navbar {
display: none;
}
.navbar-mobile {
display: block !important;
position: fixed;
width: 100%;
z-index: 100;
transition: all 0.6s ease 0s;
}
.navbar-mobile .container {
padding: 0;
margin: 0;
line-height: 5.5em;
background: $light-background-color;
}
.navbar-mobile .container .navbar-header {
display: flex;
justify-content: space-between;
align-items: center;
width: 100%;
padding-right: 1em;
padding-left: 1em;
box-sizing: border-box;
position: relative;
}
.navbar-mobile .container .navbar-header .menu-toggle {
cursor: pointer;
line-height: 5.5em;
padding: auto 2em;
}
.navbar-mobile .container .navbar-header .menu-toggle span {
display: block;
background: #000;
width: 36px;
height: 2px;
-webkit-border-radius: 3px;
-moz-border-radius: 3px;
border-radius: 3px;
-webkit-transition: 0.25s margin 0.25s, 0.25s transform;
-moz-transition: 0.25s margin 0.25s, 0.25s transform;
transition: 0.25s margin 0.25s, 0.25s transform;
}
.dark-theme .navbar-mobile .container .navbar-header .menu-toggle span {
background: $dark-font-color;
}
.navbar-mobile .container .navbar-header .menu-toggle span:nth-child(1) {
margin-bottom: 8px;
}
.navbar-mobile .container .navbar-header .menu-toggle span:nth-child(3) {
margin-top: 8px;
}
.navbar-mobile .container .navbar-header .menu-toggle.active span {
-webkit-transition: 0.25s margin, 0.25s transform 0.25s;
-moz-transition: 0.25s margin, 0.25s transform 0.25s;
transition: 0.25s margin, 0.25s transform 0.25s;
}
.navbar-mobile .container .navbar-header .menu-toggle.active span:nth-child(1) {
-moz-transform: rotate(45deg) translate(4px, 6px);
-ms-transform: rotate(45deg) translate(4px, 6px);
-webkit-transform: rotate(45deg) translate(4px, 6px);
transform: rotate(45deg) translate(4px, 6px);
}
.navbar-mobile .container .navbar-header .menu-toggle.active span:nth-child(2) {
opacity: 0;
}
.navbar-mobile .container .navbar-header .menu-toggle.active span:nth-child(3) {
-moz-transform: rotate(-45deg) translate(8px, -10px);
-ms-transform: rotate(-45deg) translate(8px, -10px);
-webkit-transform: rotate(-45deg) translate(8px, -10px);
transform: rotate(-45deg) translate(8px, -10px);
}
.navbar-mobile .container .menu {
text-align: center;
background: #fff;
border-top: 1px solid #000;
padding-top: 1em;
padding-bottom: 1em;
display: none;
box-shadow: 0px 2px 4px rgba(0,0,0,0.1), 0px 4px 8px rgba(0,0,0,0.1);
}
.navbar-mobile .container .menu a {
display: inline-block;
margin: 0 1em;
line-height: 2.5em;
}
.navbar-mobile .container .menu.active {
display: block;
white-space: nowrap;
box-sizing: border-box;
overflow-x: auto;
}
.dark-theme .navbar-mobile .container .menu {
background: $dark-background-color;
border-top: 2px solid $dark-font-secondary-color;
}
.dark-theme .navbar-mobile .container {
background: $dark-background-color !important;
}
.archive {
width: 90%;
}
.archive .archive-item .archive-item-date {
display: none;
}
#dynamic-to-top {
display: none !important;
}
.footer {
height: 3rem;
width: 100%;
text-align: center;
line-height: 1.5rem;
padding-top: 2em;
}
.post-warp {
padding-top: 6em;
}
.post-warp .archive-item-date {
display: none;
}
.categories .categories-card .card-item {
width: 100%;
display: flex;
min-height: 0;
}
.categories .categories-card .card-item .categories {
overflow: hidden;
}
}
/* iPads (portrait and landscape) ----------- */
@media screen and (max-width: 1023px) {
.navbar-mobile {
display: none;
}
}
/* Desktops and laptops ----------- */
@media screen and (min-width: 1024px) {
.navbar-mobile {
display: none;
}
}
/* post toc Style */
@media screen and (max-width: 1279px) {
.post-toc {
display: none;
}
}

View File

@ -1,269 +0,0 @@
/* normalize.css v8.0.0 | MIT License | github.com/necolas/normalize.css */
/* Document
========================================================================== */
/**
* 1. Correct the line height in all browsers.
* 2. Prevent adjustments of font size after orientation changes in iOS.
*/
html {
line-height: 1.15 /* 1 */;
-webkit-text-size-adjust: 100% /* 2 */;
}
/* Sections
========================================================================== */
/**
* Remove the margin in all browsers.
*/
body {
margin: 0;
}
/**
* Correct the font size and margin on `h1` elements within `section` and
* `article` contexts in Chrome, Firefox, and Safari.
*/
h1 {
font-size: 2em;
margin: 0.67em 0;
}
/* Grouping content
========================================================================== */
/**
* 1. Add the correct box sizing in Firefox.
* 2. Show the overflow in Edge and IE.
*/
hr {
box-sizing: content-box /* 1 */;
height: 0 /* 1 */;
overflow: visible /* 2 */;
}
/**
* 1. Correct the inheritance and scaling of font size in all browsers.
* 2. Correct the odd `em` font sizing in all browsers.
*/
pre {
font-family: monospace, monospace /* 1 */;
font-size: 1em /* 2 */;
}
/* Text-level semantics
========================================================================== */
/**
* Remove the gray background on active links in IE 10.
*/
a {
background-color: transparent;
}
/**
* 1. Remove the bottom border in Chrome 57-
* 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.
*/
abbr[title] {
border-bottom: none /* 1 */;
text-decoration: underline /* 2 */;
text-decoration: underline dotted /* 2 */;
}
/**
* Add the correct font weight in Chrome, Edge, and Safari.
*/
b,
strong {
font-weight: bolder;
}
/**
* 1. Correct the inheritance and scaling of font size in all browsers.
* 2. Correct the odd `em` font sizing in all browsers.
*/
code,
kbd,
samp {
font-family: monospace, monospace /* 1 */;
font-size: 1em /* 2 */;
}
/**
* Add the correct font size in all browsers.
*/
small {
font-size: 80%;
}
/**
* Prevent `sub` and `sup` elements from affecting the line height in
* all browsers.
*/
sub,
sup {
font-size: 75%;
line-height: 0;
position: relative;
vertical-align: baseline;
}
sub {
bottom: -0.25em;
}
sup {
top: -0.5em;
}
/* Embedded content
========================================================================== */
/**
* Remove the border on images inside links in IE 10.
*/
img {
border-style: none;
}
/* Forms
========================================================================== */
/**
* 1. Change the font styles in all browsers.
* 2. Remove the margin in Firefox and Safari.
*/
button,
input,
optgroup,
select,
textarea {
font-family: inherit /* 1 */;
font-size: 100% /* 1 */;
line-height: 1.15 /* 1 */;
margin: 0 /* 2 */;
}
/**
* Show the overflow in IE.
* 1. Show the overflow in Edge.
*/
button,
input {
overflow: visible;
}
/**
* Remove the inheritance of text transform in Edge, Firefox, and IE.
* 1. Remove the inheritance of text transform in Firefox.
*/
button,
select {
text-transform: none;
}
/**
* Correct the inability to style clickable types in iOS and Safari.
*/
button,
[type="button"],
[type="reset"],
[type="submit"] {
-webkit-appearance: button;
}
/**
* Remove the inner border and padding in Firefox.
*/
button::-moz-focus-inner,
[type="button"]::-moz-focus-inner,
[type="reset"]::-moz-focus-inner,
[type="submit"]::-moz-focus-inner {
border-style: none;
padding: 0;
}
/**
* Restore the focus styles unset by the previous rule.
*/
button:-moz-focusring,
[type="button"]-moz-focusring,
[type="reset"]-moz-focusring,
[type="submit"]-moz-focusring {
outline: 1px dotted ButtonText;
}
/**
* Correct the padding in Firefox.
*/
fieldset {
padding: 0.35em 0.75em 0.625em;
}
/**
* 1. Correct the text wrapping in Edge and IE.
* 2. Correct the color inheritance from `fieldset` elements in IE.
* 3. Remove the padding so developers are not caught out when they zero out
* `fieldset` elements in all browsers.
*/
legend {
box-sizing: border-box /* 1 */;
color: inherit /* 2 */;
display: table /* 1 */;
max-width: 100% /* 1 */;
padding: 0 /* 3 */;
white-space: normal /* 1 */;
}
/**
* Add the correct vertical alignment in Chrome, Firefox, and Opera.
*/
progress {
vertical-align: baseline;
}
/**
* Remove the default vertical scrollbar in IE 10+.
*/
textarea {
overflow: auto;
}
/**
* 1. Add the correct box sizing in IE 10.
* 2. Remove the padding in IE 10.
*/
[type="checkbox"],
[type="radio"] {
box-sizing: border-box /* 1 */;
padding: 0 /* 2 */;
}
/**
* Correct the cursor style of increment and decrement buttons in Chrome.
*/
[type="number"]::-webkit-inner-spin-button,
[type="number"]::-webkit-outer-spin-button {
height: auto;
}
/**
* 1. Correct the odd appearance in Chrome and Safari.
* 2. Correct the outline style in Safari.
*/
[type="search"] {
-webkit-appearance: textfield /* 1 */;
outline-offset: -2px /* 2 */;
}
/**
* Remove the inner padding in Chrome and Safari on macOS.
*/
[type="search"]::-webkit-search-decoration {
-webkit-appearance: none;
}
/**
* 1. Correct the inability to style clickable types in iOS and Safari.
* 2. Change font properties to `inherit` in Safari.
*/
::-webkit-file-upload-button {
-webkit-appearance: button /* 1 */;
font: inherit /* 2 */;
}
/* Interactive
========================================================================== */
/*
* Add the correct display in Edge, IE 10+, and Firefox.
*/
details {
display: block;
}
/*
* Add the correct display in all browsers.
*/
summary {
display: list-item;
}
/* Misc
========================================================================== */
/**
* Add the correct display in IE 10+.
*/
template {
display: none;
}
/**
* Add the correct display in IE 10.
*/
[hidden] {
display: none;
}

File diff suppressed because one or more lines are too long

View File

@ -1,2 +0,0 @@
/** light theme **/
/** dark theme **/

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

View File

@ -1,539 +0,0 @@
/* Logo 字体 */
@font-face {
font-family: "iconfont logo";
src: url('https://at.alicdn.com/t/font_985780_km7mi63cihi.eot?t=1545807318834');
src: url('https://at.alicdn.com/t/font_985780_km7mi63cihi.eot?t=1545807318834#iefix') format('embedded-opentype'),
url('https://at.alicdn.com/t/font_985780_km7mi63cihi.woff?t=1545807318834') format('woff'),
url('https://at.alicdn.com/t/font_985780_km7mi63cihi.ttf?t=1545807318834') format('truetype'),
url('https://at.alicdn.com/t/font_985780_km7mi63cihi.svg?t=1545807318834#iconfont') format('svg');
}
.logo {
font-family: "iconfont logo";
font-size: 160px;
font-style: normal;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
/* tabs */
.nav-tabs {
position: relative;
}
.nav-tabs .nav-more {
position: absolute;
right: 0;
bottom: 0;
height: 42px;
line-height: 42px;
color: #666;
}
#tabs {
border-bottom: 1px solid #eee;
}
#tabs li {
cursor: pointer;
width: 100px;
height: 40px;
line-height: 40px;
text-align: center;
font-size: 16px;
border-bottom: 2px solid transparent;
position: relative;
z-index: 1;
margin-bottom: -1px;
color: #666;
}
#tabs .active {
border-bottom-color: #f00;
color: #222;
}
.tab-container .content {
display: none;
}
/* 页面布局 */
.main {
padding: 30px 100px;
width: 960px;
margin: 0 auto;
}
.main .logo {
color: #333;
text-align: left;
margin-bottom: 30px;
line-height: 1;
height: 110px;
margin-top: -50px;
overflow: hidden;
*zoom: 1;
}
.main .logo a {
font-size: 160px;
color: #333;
}
.helps {
margin-top: 40px;
}
.helps pre {
padding: 20px;
margin: 10px 0;
border: solid 1px #e7e1cd;
background-color: #fffdef;
overflow: auto;
}
.icon_lists {
width: 100% !important;
overflow: hidden;
*zoom: 1;
}
.icon_lists li {
width: 100px;
margin-bottom: 10px;
margin-right: 20px;
text-align: center;
list-style: none !important;
cursor: default;
}
.icon_lists li .code-name {
line-height: 1.2;
}
.icon_lists .icon {
display: block;
height: 100px;
line-height: 100px;
font-size: 42px;
margin: 10px auto;
color: #333;
-webkit-transition: font-size 0.25s linear, width 0.25s linear;
-moz-transition: font-size 0.25s linear, width 0.25s linear;
transition: font-size 0.25s linear, width 0.25s linear;
}
.icon_lists .icon:hover {
font-size: 100px;
}
.icon_lists .svg-icon {
/* 通过设置 font-size 来改变图标大小 */
width: 1em;
/* 图标和文字相邻时,垂直对齐 */
vertical-align: -0.15em;
/* 通过设置 color 来改变 SVG 的颜色/fill */
fill: currentColor;
/* path stroke 溢出 viewBox 部分在 IE 下会显示
normalize.css 中也包含这行 */
overflow: hidden;
}
.icon_lists li .name,
.icon_lists li .code-name {
color: #666;
}
/* markdown 样式 */
.markdown {
color: #666;
font-size: 14px;
line-height: 1.8;
}
.highlight {
line-height: 1.5;
}
.markdown img {
vertical-align: middle;
max-width: 100%;
}
.markdown h1 {
color: #404040;
font-weight: 500;
line-height: 40px;
margin-bottom: 24px;
}
.markdown h2,
.markdown h3,
.markdown h4,
.markdown h5,
.markdown h6 {
color: #404040;
margin: 1.6em 0 0.6em 0;
font-weight: 500;
clear: both;
}
.markdown h1 {
font-size: 28px;
}
.markdown h2 {
font-size: 22px;
}
.markdown h3 {
font-size: 16px;
}
.markdown h4 {
font-size: 14px;
}
.markdown h5 {
font-size: 12px;
}
.markdown h6 {
font-size: 12px;
}
.markdown hr {
height: 1px;
border: 0;
background: #e9e9e9;
margin: 16px 0;
clear: both;
}
.markdown p {
margin: 1em 0;
}
.markdown>p,
.markdown>blockquote,
.markdown>.highlight,
.markdown>ol,
.markdown>ul {
width: 80%;
}
.markdown ul>li {
list-style: circle;
}
.markdown>ul li,
.markdown blockquote ul>li {
margin-left: 20px;
padding-left: 4px;
}
.markdown>ul li p,
.markdown>ol li p {
margin: 0.6em 0;
}
.markdown ol>li {
list-style: decimal;
}
.markdown>ol li,
.markdown blockquote ol>li {
margin-left: 20px;
padding-left: 4px;
}
.markdown code {
margin: 0 3px;
padding: 0 5px;
background: #eee;
border-radius: 3px;
}
.markdown strong,
.markdown b {
font-weight: 600;
}
.markdown>table {
border-collapse: collapse;
border-spacing: 0px;
empty-cells: show;
border: 1px solid #e9e9e9;
width: 95%;
margin-bottom: 24px;
}
.markdown>table th {
white-space: nowrap;
color: #333;
font-weight: 600;
}
.markdown>table th,
.markdown>table td {
border: 1px solid #e9e9e9;
padding: 8px 16px;
text-align: left;
}
.markdown>table th {
background: #F7F7F7;
}
.markdown blockquote {
font-size: 90%;
color: #999;
border-left: 4px solid #e9e9e9;
padding-left: 0.8em;
margin: 1em 0;
}
.markdown blockquote p {
margin: 0;
}
.markdown .anchor {
opacity: 0;
transition: opacity 0.3s ease;
margin-left: 8px;
}
.markdown .waiting {
color: #ccc;
}
.markdown h1:hover .anchor,
.markdown h2:hover .anchor,
.markdown h3:hover .anchor,
.markdown h4:hover .anchor,
.markdown h5:hover .anchor,
.markdown h6:hover .anchor {
opacity: 1;
display: inline-block;
}
.markdown>br,
.markdown>p>br {
clear: both;
}
.hljs {
display: block;
background: white;
padding: 0.5em;
color: #333333;
overflow-x: auto;
}
.hljs-comment,
.hljs-meta {
color: #969896;
}
.hljs-string,
.hljs-variable,
.hljs-template-variable,
.hljs-strong,
.hljs-emphasis,
.hljs-quote {
color: #df5000;
}
.hljs-keyword,
.hljs-selector-tag,
.hljs-type {
color: #a71d5d;
}
.hljs-literal,
.hljs-symbol,
.hljs-bullet,
.hljs-attribute {
color: #0086b3;
}
.hljs-section,
.hljs-name {
color: #63a35c;
}
.hljs-tag {
color: #333333;
}
.hljs-title,
.hljs-attr,
.hljs-selector-id,
.hljs-selector-class,
.hljs-selector-attr,
.hljs-selector-pseudo {
color: #795da3;
}
.hljs-addition {
color: #55a532;
background-color: #eaffea;
}
.hljs-deletion {
color: #bd2c00;
background-color: #ffecec;
}
.hljs-link {
text-decoration: underline;
}
/* 代码高亮 */
/* PrismJS 1.15.0
https://prismjs.com/download.html#themes=prism&languages=markup+css+clike+javascript */
/**
* prism.js default theme for JavaScript, CSS and HTML
* Based on dabblet (http://dabblet.com)
* @author Lea Verou
*/
code[class*="language-"],
pre[class*="language-"] {
color: black;
background: none;
text-shadow: 0 1px white;
font-family: Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace;
text-align: left;
white-space: pre;
word-spacing: normal;
word-break: normal;
word-wrap: normal;
line-height: 1.5;
-moz-tab-size: 4;
-o-tab-size: 4;
tab-size: 4;
-webkit-hyphens: none;
-moz-hyphens: none;
-ms-hyphens: none;
hyphens: none;
}
pre[class*="language-"]::-moz-selection,
pre[class*="language-"] ::-moz-selection,
code[class*="language-"]::-moz-selection,
code[class*="language-"] ::-moz-selection {
text-shadow: none;
background: #b3d4fc;
}
pre[class*="language-"]::selection,
pre[class*="language-"] ::selection,
code[class*="language-"]::selection,
code[class*="language-"] ::selection {
text-shadow: none;
background: #b3d4fc;
}
@media print {
code[class*="language-"],
pre[class*="language-"] {
text-shadow: none;
}
}
/* Code blocks */
pre[class*="language-"] {
padding: 1em;
margin: .5em 0;
overflow: auto;
}
:not(pre)>code[class*="language-"],
pre[class*="language-"] {
background: #f5f2f0;
}
/* Inline code */
:not(pre)>code[class*="language-"] {
padding: .1em;
border-radius: .3em;
white-space: normal;
}
.token.comment,
.token.prolog,
.token.doctype,
.token.cdata {
color: slategray;
}
.token.punctuation {
color: #999;
}
.namespace {
opacity: .7;
}
.token.property,
.token.tag,
.token.boolean,
.token.number,
.token.constant,
.token.symbol,
.token.deleted {
color: #905;
}
.token.selector,
.token.attr-name,
.token.string,
.token.char,
.token.builtin,
.token.inserted {
color: #690;
}
.token.operator,
.token.entity,
.token.url,
.language-css .token.string,
.style .token.string {
color: #9a6e3a;
background: hsla(0, 0%, 100%, .5);
}
.token.atrule,
.token.attr-value,
.token.keyword {
color: #07a;
}
.token.function,
.token.class-name {
color: #DD4A68;
}
.token.regex,
.token.important,
.token.variable {
color: #e90;
}
.token.important,
.token.bold {
font-weight: bold;
}
.token.italic {
font-style: italic;
}
.token.entity {
cursor: help;
}

View File

@ -1,791 +0,0 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8"/>
<title>IconFont Demo</title>
<link rel="shortcut icon" href="https://gtms04.alicdn.com/tps/i4/TB1_oz6GVXXXXaFXpXXJDFnIXXX-64-64.ico" type="image/x-icon"/>
<link rel="stylesheet" href="https://g.alicdn.com/thx/cube/1.3.2/cube.min.css">
<link rel="stylesheet" href="demo.css">
<link rel="stylesheet" href="iconfont.css">
<script src="iconfont.js"></script>
<!-- jQuery -->
<script src="https://a1.alicdn.com/oss/uploads/2018/12/26/7bfddb60-08e8-11e9-9b04-53e73bb6408b.js"></script>
<!-- 代码高亮 -->
<script src="https://a1.alicdn.com/oss/uploads/2018/12/26/a3f714d0-08e6-11e9-8a15-ebf944d7534c.js"></script>
</head>
<body>
<div class="main">
<h1 class="logo"><a href="https://www.iconfont.cn/" title="iconfont 首页" target="_blank">&#xe86b;</a></h1>
<div class="nav-tabs">
<ul id="tabs" class="dib-box">
<li class="dib active"><span>Unicode</span></li>
<li class="dib"><span>Font class</span></li>
<li class="dib"><span>Symbol</span></li>
</ul>
<a href="https://www.iconfont.cn/manage/index?manage_type=myprojects&projectId=1614736" target="_blank" class="nav-more">查看项目</a>
</div>
<div class="tab-container">
<div class="content unicode" style="display: block;">
<ul class="icon_lists dib-box">
<li class="dib">
<span class="icon iconfont">&#xe7b3;</span>
<div class="name">book</div>
<div class="code-name">&amp;#xe7b3;</div>
</li>
<li class="dib">
<span class="icon iconfont">&#xe7b5;</span>
<div class="name">solution</div>
<div class="code-name">&amp;#xe7b5;</div>
</li>
<li class="dib">
<span class="icon iconfont">&#xe7c4;</span>
<div class="name">trophy</div>
<div class="code-name">&amp;#xe7c4;</div>
</li>
<li class="dib">
<span class="icon iconfont">&#xe7d1;</span>
<div class="name">folder</div>
<div class="code-name">&amp;#xe7d1;</div>
</li>
<li class="dib">
<span class="icon iconfont">&#xe7d7;</span>
<div class="name">camera</div>
<div class="code-name">&amp;#xe7d7;</div>
</li>
<li class="dib">
<span class="icon iconfont">&#xe7d8;</span>
<div class="name">read</div>
<div class="code-name">&amp;#xe7d8;</div>
</li>
<li class="dib">
<span class="icon iconfont">&#xe7e0;</span>
<div class="name">wifi</div>
<div class="code-name">&amp;#xe7e0;</div>
</li>
<li class="dib">
<span class="icon iconfont">&#xe7e2;</span>
<div class="name">link</div>
<div class="code-name">&amp;#xe7e2;</div>
</li>
<li class="dib">
<span class="icon iconfont">&#xe7e5;</span>
<div class="name">tags</div>
<div class="code-name">&amp;#xe7e5;</div>
</li>
<li class="dib">
<span class="icon iconfont">&#xe87c;</span>
<div class="name">alipay</div>
<div class="code-name">&amp;#xe87c;</div>
</li>
<li class="dib">
<span class="icon iconfont">&#xe87d;</span>
<div class="name">zhihu</div>
<div class="code-name">&amp;#xe87d;</div>
</li>
<li class="dib">
<span class="icon iconfont">&#xe87e;</span>
<div class="name">linkedin</div>
<div class="code-name">&amp;#xe87e;</div>
</li>
<li class="dib">
<span class="icon iconfont">&#xe87f;</span>
<div class="name">facebook</div>
<div class="code-name">&amp;#xe87f;</div>
</li>
<li class="dib">
<span class="icon iconfont">&#xe880;</span>
<div class="name">skype</div>
<div class="code-name">&amp;#xe880;</div>
</li>
<li class="dib">
<span class="icon iconfont">&#xe881;</span>
<div class="name">CodeSandbox</div>
<div class="code-name">&amp;#xe881;</div>
</li>
<li class="dib">
<span class="icon iconfont">&#xe882;</span>
<div class="name">codepen</div>
<div class="code-name">&amp;#xe882;</div>
</li>
<li class="dib">
<span class="icon iconfont">&#xe883;</span>
<div class="name">sketch</div>
<div class="code-name">&amp;#xe883;</div>
</li>
<li class="dib">
<span class="icon iconfont">&#xe884;</span>
<div class="name">Gitlab</div>
<div class="code-name">&amp;#xe884;</div>
</li>
<li class="dib">
<span class="icon iconfont">&#xe885;</span>
<div class="name">dribbble</div>
<div class="code-name">&amp;#xe885;</div>
</li>
<li class="dib">
<span class="icon iconfont">&#xe886;</span>
<div class="name">instagram</div>
<div class="code-name">&amp;#xe886;</div>
</li>
<li class="dib">
<span class="icon iconfont">&#xe887;</span>
<div class="name">reddit</div>
<div class="code-name">&amp;#xe887;</div>
</li>
<li class="dib">
<span class="icon iconfont">&#xe888;</span>
<div class="name">Youtube</div>
<div class="code-name">&amp;#xe888;</div>
</li>
<li class="dib">
<span class="icon iconfont">&#xe889;</span>
<div class="name">QQ</div>
<div class="code-name">&amp;#xe889;</div>
</li>
<li class="dib">
<span class="icon iconfont">&#xe88a;</span>
<div class="name">twitter</div>
<div class="code-name">&amp;#xe88a;</div>
</li>
<li class="dib">
<span class="icon iconfont">&#xe88b;</span>
<div class="name">weibo</div>
<div class="code-name">&amp;#xe88b;</div>
</li>
<li class="dib">
<span class="icon iconfont">&#xe88c;</span>
<div class="name">wechat-fill</div>
<div class="code-name">&amp;#xe88c;</div>
</li>
<li class="dib">
<span class="icon iconfont">&#xe88d;</span>
<div class="name">github-fill</div>
<div class="code-name">&amp;#xe88d;</div>
</li>
</ul>
<div class="article markdown">
<h2 id="unicode-">Unicode 引用</h2>
<hr>
<p>Unicode 是字体在网页端最原始的应用方式,特点是:</p>
<ul>
<li>兼容性最好,支持 IE6+,及所有现代浏览器。</li>
<li>支持按字体的方式去动态调整图标大小,颜色等等。</li>
<li>但是因为是字体,所以不支持多色。只能使用平台里单色的图标,就算项目里有多色图标也会自动去色。</li>
</ul>
<blockquote>
<p>注意:新版 iconfont 支持多色图标,这些多色图标在 Unicode 模式下将不能使用如果有需求建议使用symbol 的引用方式</p>
</blockquote>
<p>Unicode 使用步骤如下:</p>
<h3 id="-font-face">第一步:拷贝项目下面生成的 <code>@font-face</code></h3>
<pre><code class="language-css"
>@font-face {
font-family: 'iconfont';
src: url('iconfont.eot');
src: url('iconfont.eot?#iefix') format('embedded-opentype'),
url('iconfont.woff2') format('woff2'),
url('iconfont.woff') format('woff'),
url('iconfont.ttf') format('truetype'),
url('iconfont.svg#iconfont') format('svg');
}
</code></pre>
<h3 id="-iconfont-">第二步:定义使用 iconfont 的样式</h3>
<pre><code class="language-css"
>.iconfont {
font-family: "iconfont" !important;
font-size: 16px;
font-style: normal;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
</code></pre>
<h3 id="-">第三步:挑选相应图标并获取字体编码,应用于页面</h3>
<pre>
<code class="language-html"
>&lt;span class="iconfont"&gt;&amp;#x33;&lt;/span&gt;
</code></pre>
<blockquote>
<p>"iconfont" 是你项目下的 font-family。可以通过编辑项目查看默认是 "iconfont"。</p>
</blockquote>
</div>
</div>
<div class="content font-class">
<ul class="icon_lists dib-box">
<li class="dib">
<span class="icon iconfont icon-publish"></span>
<div class="name">
book
</div>
<div class="code-name">.icon-publish
</div>
</li>
<li class="dib">
<span class="icon iconfont icon-resume"></span>
<div class="name">
solution
</div>
<div class="code-name">.icon-resume
</div>
</li>
<li class="dib">
<span class="icon iconfont icon-trophy"></span>
<div class="name">
trophy
</div>
<div class="code-name">.icon-trophy
</div>
</li>
<li class="dib">
<span class="icon iconfont icon-category"></span>
<div class="name">
folder
</div>
<div class="code-name">.icon-category
</div>
</li>
<li class="dib">
<span class="icon iconfont icon-gallery"></span>
<div class="name">
camera
</div>
<div class="code-name">.icon-gallery
</div>
</li>
<li class="dib">
<span class="icon iconfont icon-blog"></span>
<div class="name">
read
</div>
<div class="code-name">.icon-blog
</div>
</li>
<li class="dib">
<span class="icon iconfont icon-rss"></span>
<div class="name">
wifi
</div>
<div class="code-name">.icon-rss
</div>
</li>
<li class="dib">
<span class="icon iconfont icon-link"></span>
<div class="name">
link
</div>
<div class="code-name">.icon-link
</div>
</li>
<li class="dib">
<span class="icon iconfont icon-tags"></span>
<div class="name">
tags
</div>
<div class="code-name">.icon-tags
</div>
</li>
<li class="dib">
<span class="icon iconfont icon-alipay"></span>
<div class="name">
alipay
</div>
<div class="code-name">.icon-alipay
</div>
</li>
<li class="dib">
<span class="icon iconfont icon-zhihu"></span>
<div class="name">
zhihu
</div>
<div class="code-name">.icon-zhihu
</div>
</li>
<li class="dib">
<span class="icon iconfont icon-linkedin"></span>
<div class="name">
linkedin
</div>
<div class="code-name">.icon-linkedin
</div>
</li>
<li class="dib">
<span class="icon iconfont icon-facebook"></span>
<div class="name">
facebook
</div>
<div class="code-name">.icon-facebook
</div>
</li>
<li class="dib">
<span class="icon iconfont icon-skype"></span>
<div class="name">
skype
</div>
<div class="code-name">.icon-skype
</div>
</li>
<li class="dib">
<span class="icon iconfont icon-codesandbox"></span>
<div class="name">
CodeSandbox
</div>
<div class="code-name">.icon-codesandbox
</div>
</li>
<li class="dib">
<span class="icon iconfont icon-codepen"></span>
<div class="name">
codepen
</div>
<div class="code-name">.icon-codepen
</div>
</li>
<li class="dib">
<span class="icon iconfont icon-sketch"></span>
<div class="name">
sketch
</div>
<div class="code-name">.icon-sketch
</div>
</li>
<li class="dib">
<span class="icon iconfont icon-gitlab"></span>
<div class="name">
Gitlab
</div>
<div class="code-name">.icon-gitlab
</div>
</li>
<li class="dib">
<span class="icon iconfont icon-dribbble"></span>
<div class="name">
dribbble
</div>
<div class="code-name">.icon-dribbble
</div>
</li>
<li class="dib">
<span class="icon iconfont icon-instagram"></span>
<div class="name">
instagram
</div>
<div class="code-name">.icon-instagram
</div>
</li>
<li class="dib">
<span class="icon iconfont icon-reddit"></span>
<div class="name">
reddit
</div>
<div class="code-name">.icon-reddit
</div>
</li>
<li class="dib">
<span class="icon iconfont icon-youtube"></span>
<div class="name">
Youtube
</div>
<div class="code-name">.icon-youtube
</div>
</li>
<li class="dib">
<span class="icon iconfont icon-qq"></span>
<div class="name">
QQ
</div>
<div class="code-name">.icon-qq
</div>
</li>
<li class="dib">
<span class="icon iconfont icon-twitter"></span>
<div class="name">
twitter
</div>
<div class="code-name">.icon-twitter
</div>
</li>
<li class="dib">
<span class="icon iconfont icon-weibo"></span>
<div class="name">
weibo
</div>
<div class="code-name">.icon-weibo
</div>
</li>
<li class="dib">
<span class="icon iconfont icon-wechat"></span>
<div class="name">
wechat-fill
</div>
<div class="code-name">.icon-wechat
</div>
</li>
<li class="dib">
<span class="icon iconfont icon-github"></span>
<div class="name">
github-fill
</div>
<div class="code-name">.icon-github
</div>
</li>
</ul>
<div class="article markdown">
<h2 id="font-class-">font-class 引用</h2>
<hr>
<p>font-class 是 Unicode 使用方式的一种变种,主要是解决 Unicode 书写不直观,语意不明确的问题。</p>
<p>与 Unicode 使用方式相比,具有如下特点:</p>
<ul>
<li>兼容性良好,支持 IE8+,及所有现代浏览器。</li>
<li>相比于 Unicode 语意明确,书写更直观。可以很容易分辨这个 icon 是什么。</li>
<li>因为使用 class 来定义图标,所以当要替换图标时,只需要修改 class 里面的 Unicode 引用。</li>
<li>不过因为本质上还是使用的字体,所以多色图标还是不支持的。</li>
</ul>
<p>使用步骤如下:</p>
<h3 id="-fontclass-">第一步:引入项目下面生成的 fontclass 代码:</h3>
<pre><code class="language-html">&lt;link rel="stylesheet" href="./iconfont.css"&gt;
</code></pre>
<h3 id="-">第二步:挑选相应图标并获取类名,应用于页面:</h3>
<pre><code class="language-html">&lt;span class="iconfont icon-xxx"&gt;&lt;/span&gt;
</code></pre>
<blockquote>
<p>"
iconfont" 是你项目下的 font-family。可以通过编辑项目查看默认是 "iconfont"。</p>
</blockquote>
</div>
</div>
<div class="content symbol">
<ul class="icon_lists dib-box">
<li class="dib">
<svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#icon-publish"></use>
</svg>
<div class="name">book</div>
<div class="code-name">#icon-publish</div>
</li>
<li class="dib">
<svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#icon-resume"></use>
</svg>
<div class="name">solution</div>
<div class="code-name">#icon-resume</div>
</li>
<li class="dib">
<svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#icon-trophy"></use>
</svg>
<div class="name">trophy</div>
<div class="code-name">#icon-trophy</div>
</li>
<li class="dib">
<svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#icon-category"></use>
</svg>
<div class="name">folder</div>
<div class="code-name">#icon-category</div>
</li>
<li class="dib">
<svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#icon-gallery"></use>
</svg>
<div class="name">camera</div>
<div class="code-name">#icon-gallery</div>
</li>
<li class="dib">
<svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#icon-blog"></use>
</svg>
<div class="name">read</div>
<div class="code-name">#icon-blog</div>
</li>
<li class="dib">
<svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#icon-rss"></use>
</svg>
<div class="name">wifi</div>
<div class="code-name">#icon-rss</div>
</li>
<li class="dib">
<svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#icon-link"></use>
</svg>
<div class="name">link</div>
<div class="code-name">#icon-link</div>
</li>
<li class="dib">
<svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#icon-tags"></use>
</svg>
<div class="name">tags</div>
<div class="code-name">#icon-tags</div>
</li>
<li class="dib">
<svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#icon-alipay"></use>
</svg>
<div class="name">alipay</div>
<div class="code-name">#icon-alipay</div>
</li>
<li class="dib">
<svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#icon-zhihu"></use>
</svg>
<div class="name">zhihu</div>
<div class="code-name">#icon-zhihu</div>
</li>
<li class="dib">
<svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#icon-linkedin"></use>
</svg>
<div class="name">linkedin</div>
<div class="code-name">#icon-linkedin</div>
</li>
<li class="dib">
<svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#icon-facebook"></use>
</svg>
<div class="name">facebook</div>
<div class="code-name">#icon-facebook</div>
</li>
<li class="dib">
<svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#icon-skype"></use>
</svg>
<div class="name">skype</div>
<div class="code-name">#icon-skype</div>
</li>
<li class="dib">
<svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#icon-codesandbox"></use>
</svg>
<div class="name">CodeSandbox</div>
<div class="code-name">#icon-codesandbox</div>
</li>
<li class="dib">
<svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#icon-codepen"></use>
</svg>
<div class="name">codepen</div>
<div class="code-name">#icon-codepen</div>
</li>
<li class="dib">
<svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#icon-sketch"></use>
</svg>
<div class="name">sketch</div>
<div class="code-name">#icon-sketch</div>
</li>
<li class="dib">
<svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#icon-gitlab"></use>
</svg>
<div class="name">Gitlab</div>
<div class="code-name">#icon-gitlab</div>
</li>
<li class="dib">
<svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#icon-dribbble"></use>
</svg>
<div class="name">dribbble</div>
<div class="code-name">#icon-dribbble</div>
</li>
<li class="dib">
<svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#icon-instagram"></use>
</svg>
<div class="name">instagram</div>
<div class="code-name">#icon-instagram</div>
</li>
<li class="dib">
<svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#icon-reddit"></use>
</svg>
<div class="name">reddit</div>
<div class="code-name">#icon-reddit</div>
</li>
<li class="dib">
<svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#icon-youtube"></use>
</svg>
<div class="name">Youtube</div>
<div class="code-name">#icon-youtube</div>
</li>
<li class="dib">
<svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#icon-qq"></use>
</svg>
<div class="name">QQ</div>
<div class="code-name">#icon-qq</div>
</li>
<li class="dib">
<svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#icon-twitter"></use>
</svg>
<div class="name">twitter</div>
<div class="code-name">#icon-twitter</div>
</li>
<li class="dib">
<svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#icon-weibo"></use>
</svg>
<div class="name">weibo</div>
<div class="code-name">#icon-weibo</div>
</li>
<li class="dib">
<svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#icon-wechat"></use>
</svg>
<div class="name">wechat-fill</div>
<div class="code-name">#icon-wechat</div>
</li>
<li class="dib">
<svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#icon-github"></use>
</svg>
<div class="name">github-fill</div>
<div class="code-name">#icon-github</div>
</li>
</ul>
<div class="article markdown">
<h2 id="symbol-">Symbol 引用</h2>
<hr>
<p>这是一种全新的使用方式,应该说这才是未来的主流,也是平台目前推荐的用法。相关介绍可以参考这篇<a href="">文章</a>
这种用法其实是做了一个 SVG 的集合,与另外两种相比具有如下特点:</p>
<ul>
<li>支持多色图标了,不再受单色限制。</li>
<li>通过一些技巧,支持像字体那样,通过 <code>font-size</code>, <code>color</code> 来调整样式。</li>
<li>兼容性较差,支持 IE9+,及现代浏览器。</li>
<li>浏览器渲染 SVG 的性能一般,还不如 png。</li>
</ul>
<p>使用步骤如下:</p>
<h3 id="-symbol-">第一步:引入项目下面生成的 symbol 代码:</h3>
<pre><code class="language-html">&lt;script src="./iconfont.js"&gt;&lt;/script&gt;
</code></pre>
<h3 id="-css-">第二步:加入通用 CSS 代码(引入一次就行):</h3>
<pre><code class="language-html">&lt;style&gt;
.icon {
width: 1em;
height: 1em;
vertical-align: -0.15em;
fill: currentColor;
overflow: hidden;
}
&lt;/style&gt;
</code></pre>
<h3 id="-">第三步:挑选相应图标并获取类名,应用于页面:</h3>
<pre><code class="language-html">&lt;svg class="icon" aria-hidden="true"&gt;
&lt;use xlink:href="#icon-xxx"&gt;&lt;/use&gt;
&lt;/svg&gt;
</code></pre>
</div>
</div>
</div>
</div>
<script>
$(document).ready(function () {
$('.tab-container .content:first').show()
$('#tabs li').click(function (e) {
var tabContent = $('.tab-container .content')
var index = $(this).index()
if ($(this).hasClass('active')) {
return
} else {
$('#tabs li').removeClass('active')
$(this).addClass('active')
tabContent.hide().eq(index).fadeIn()
}
})
})
</script>
</body>
</html>

File diff suppressed because one or more lines are too long

Binary file not shown.

File diff suppressed because one or more lines are too long

View File

@ -1 +0,0 @@
{"id":"1614736","name":"单色社交图标","font_family":"iconfont","css_prefix_text":"icon-","description":"","glyphs":[{"icon_id":"4766454","name":"book","font_class":"publish","unicode":"e7b3","unicode_decimal":59315},{"icon_id":"4766464","name":"solution","font_class":"resume","unicode":"e7b5","unicode_decimal":59317},{"icon_id":"4766681","name":"trophy","font_class":"trophy","unicode":"e7c4","unicode_decimal":59332},{"icon_id":"4766846","name":"folder","font_class":"category","unicode":"e7d1","unicode_decimal":59345},{"icon_id":"4766883","name":"camera","font_class":"gallery","unicode":"e7d7","unicode_decimal":59351},{"icon_id":"4766888","name":"read","font_class":"blog","unicode":"e7d8","unicode_decimal":59352},{"icon_id":"4766957","name":"wifi","font_class":"rss","unicode":"e7e0","unicode_decimal":59360},{"icon_id":"4766965","name":"link","font_class":"link","unicode":"e7e2","unicode_decimal":59362},{"icon_id":"4766975","name":"tags","font_class":"tags","unicode":"e7e5","unicode_decimal":59365},{"icon_id":"4936955","name":"alipay","font_class":"alipay","unicode":"e87c","unicode_decimal":59516},{"icon_id":"4936957","name":"zhihu","font_class":"zhihu","unicode":"e87d","unicode_decimal":59517},{"icon_id":"4936959","name":"linkedin","font_class":"linkedin","unicode":"e87e","unicode_decimal":59518},{"icon_id":"4936961","name":"facebook","font_class":"facebook","unicode":"e87f","unicode_decimal":59519},{"icon_id":"4936962","name":"skype","font_class":"skype","unicode":"e880","unicode_decimal":59520},{"icon_id":"4936963","name":"CodeSandbox","font_class":"codesandbox","unicode":"e881","unicode_decimal":59521},{"icon_id":"4936965","name":"codepen","font_class":"codepen","unicode":"e882","unicode_decimal":59522},{"icon_id":"4936969","name":"sketch","font_class":"sketch","unicode":"e883","unicode_decimal":59523},{"icon_id":"4936970","name":"Gitlab","font_class":"gitlab","unicode":"e884","unicode_decimal":59524},{"icon_id":"4936971","name":"dribbble","font_class":"dribbble","unicode":"e885","unicode_decimal":59525},{"icon_id":"4936972","name":"instagram","font_class":"instagram","unicode":"e886","unicode_decimal":59526},{"icon_id":"4936973","name":"reddit","font_class":"reddit","unicode":"e887","unicode_decimal":59527},{"icon_id":"4936976","name":"Youtube","font_class":"youtube","unicode":"e888","unicode_decimal":59528},{"icon_id":"4936984","name":"QQ","font_class":"qq","unicode":"e889","unicode_decimal":59529},{"icon_id":"4936985","name":"twitter","font_class":"twitter","unicode":"e88a","unicode_decimal":59530},{"icon_id":"4936987","name":"weibo","font_class":"weibo","unicode":"e88b","unicode_decimal":59531},{"icon_id":"4936991","name":"wechat-fill","font_class":"wechat","unicode":"e88c","unicode_decimal":59532},{"icon_id":"4937000","name":"github-fill","font_class":"github","unicode":"e88d","unicode_decimal":59533}]}

View File

@ -1,107 +0,0 @@
<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
<!--
2013-9-30: Created.
-->
<svg>
<metadata>
Created by iconfont
</metadata>
<defs>
<font id="iconfont" horiz-adv-x="1024" >
<font-face
font-family="iconfont"
font-weight="500"
font-stretch="normal"
units-per-em="1024"
ascent="896"
descent="-128"
/>
<missing-glyph />
<glyph glyph-name="publish" unicode="&#59315;" d="M832 832H192c-17.7 0-32-14.3-32-32v-832c0-17.7 14.3-32 32-32h640c17.7 0 32 14.3 32 32V800c0 17.7-14.3 32-32 32z m-260-72h96v-209.9L621.5 584 572 548.6V760z m220-752H232V760h280v-296.9c0-3.3 1-6.6 3-9.3 5.1-7.2 15.1-8.9 22.3-3.7l83.8 59.9 81.4-59.4c2.7-2 6-3.1 9.4-3.1 8.8 0 16 7.2 16 16V760h64v-752z" horiz-adv-x="1024" />
<glyph glyph-name="resume" unicode="&#59317;" d="M688 632c0 4.4-3.6 8-8 8H296c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h384c4.4 0 8 3.6 8 8v48zM680 496H296c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h384c4.4 0 8 3.6 8 8v48c0 4.4-3.6 8-8 8zM480 352H296c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h184c4.4 0 8 3.6 8 8v48c0 4.4-3.6 8-8 8zM432 44H208V748h560v-344c0-4.4 3.6-8 8-8h56c4.4 0 8 3.6 8 8V788c0 17.7-14.3 32-32 32H168c-17.7 0-32-14.3-32-32v-784c0-17.7 14.3-32 32-32h264c4.4 0 8 3.6 8 8v56c0 4.4-3.6 8-8 8zM788.8 118.39999999999998c29 26.3 47.2 64.3 47.2 106.6 0 79.5-64.5 144-144 144s-144-64.5-144-144c0-42.3 18.2-80.3 47.2-106.6-57-32.5-96.2-92.7-99.2-162.1-0.2-4.5 3.5-8.3 8-8.3h48.1c4.2 0 7.7 3.3 8 7.6C564 24.799999999999955 621.7 80 692 80s128-55.2 131.9-124.4c0.2-4.2 3.7-7.6 8-7.6H880c4.6 0 8.2 3.8 8 8.3-2.9 69.5-42.2 129.6-99.2 162.1zM692 305c44.2 0 80-35.8 80-80s-35.8-80-80-80-80 35.8-80 80 35.8 80 80 80z" horiz-adv-x="1024" />
<glyph glyph-name="trophy" unicode="&#59332;" d="M868 736h-92v40c0 4.4-3.6 8-8 8H256c-4.4 0-8-3.6-8-8v-40h-92c-24.3 0-44-19.7-44-44v-148c0-81.7 60-149.6 138.2-162C265.7 265.8 359 174.3 476 161.5v-105.2H280c-17.7 0-32-14.3-32-32V-8c0-4.4 3.6-8 8-8h512c4.4 0 8 3.6 8 8v32.3c0 17.7-14.3 32-32 32H548V161.5C665 174.3 758.3 265.8 773.8 382 852 394.4 912 462.3 912 544V692c0 24.3-19.7 44-44 44zM184 544V664h64v-207.6c-37.1 11.8-64 46.6-64 87.6z m520-128c0-49.1-19.1-95.4-53.9-130.1-34.8-34.8-81-53.9-130.1-53.9h-16c-49.1 0-95.4 19.1-130.1 53.9-34.8 34.8-53.9 81-53.9 130.1V712h384v-296z m136 128c0-41-26.9-75.8-64-87.6V664h64v-120z" horiz-adv-x="1024" />
<glyph glyph-name="category" unicode="&#59345;" d="M880 597.6H521L403.7 709.8c-1.5 1.4-3.5 2.2-5.5 2.2H144c-17.7 0-32-14.3-32-32v-592c0-17.7 14.3-32 32-32h736c17.7 0 32 14.3 32 32V565.6c0 17.7-14.3 32-32 32zM840 128H184V640h188.5l119.6-114.4H840V128z" horiz-adv-x="1024" />
<glyph glyph-name="gallery" unicode="&#59351;" d="M864 648H728l-32.4 90.8C691 751.5 679 760 665.4 760H358.6c-13.5 0-25.6-8.5-30.1-21.2L296 648H160c-44.2 0-80-35.8-80-80v-456c0-44.2 35.8-80 80-80h704c44.2 0 80 35.8 80 80V568c0 44.2-35.8 80-80 80z m8-536c0-4.4-3.6-8-8-8H160c-4.4 0-8 3.6-8 8V568c0 4.4 3.6 8 8 8h186.7l17.1 47.8 22.9 64.2h250.5l22.9-64.2 17.1-47.8H864c4.4 0 8-3.6 8-8v-456zM512 512c-88.4 0-160-71.6-160-160s71.6-160 160-160 160 71.6 160 160-71.6 160-160 160z m0-256c-53 0-96 43-96 96s43 96 96 96 96-43 96-96-43-96-96-96z" horiz-adv-x="1024" />
<glyph glyph-name="blog" unicode="&#59352;" d="M928 735H699.2c-49.1 0-97.1-14.1-138.4-40.7L512 663l-48.8 31.3C422 720.9 373.9 735 324.8 735H96c-17.7 0-32-14.3-32-32v-568c0-17.7 14.3-32 32-32h228.8c49.1 0 97.1-14.1 138.4-40.7l44.4-28.6c1.3-0.8 2.8-1.3 4.3-1.3s3 0.4 4.3 1.3l44.4 28.6C602 88.89999999999998 650.1 103 699.2 103H928c17.7 0 32 14.3 32 32V703c0 17.7-14.3 32-32 32zM324.8 175H136V663h188.8c35.4 0 69.8-10.1 99.5-29.2l48.8-31.3 6.9-4.5v-462c-47.6 25.6-100.8 39-155.2 39z m563.2 0H699.2c-54.4 0-107.6-13.4-155.2-39V598l6.9 4.5 48.8 31.3c29.7 19.1 64.1 29.2 99.5 29.2H888v-488zM396.9 535H211.1c-3.9 0-7.1-3.4-7.1-7.5v-45c0-4.1 3.2-7.5 7.1-7.5h185.7c3.9 0 7.1 3.4 7.1 7.5v45c0.1 4.1-3.1 7.5-7 7.5zM620 527.5v-45c0-4.1 3.2-7.5 7.1-7.5h185.7c3.9 0 7.1 3.4 7.1 7.5v45c0 4.1-3.2 7.5-7.1 7.5H627.1c-3.9 0-7.1-3.4-7.1-7.5zM396.9 395H211.1c-3.9 0-7.1-3.4-7.1-7.5v-45c0-4.1 3.2-7.5 7.1-7.5h185.7c3.9 0 7.1 3.4 7.1 7.5v45c0.1 4.1-3.1 7.5-7 7.5zM812.9 395H627.1c-3.9 0-7.1-3.4-7.1-7.5v-45c0-4.1 3.2-7.5 7.1-7.5h185.7c3.9 0 7.1 3.4 7.1 7.5v45c0.1 4.1-3.1 7.5-7 7.5z" horiz-adv-x="1024" />
<glyph glyph-name="rss" unicode="&#59360;" d="M723 275.5C666.8 324.4 593.4 354 513 354s-153.8-29.6-210.1-78.6c-3.2-2.8-3.6-7.8-0.8-11.2l36-42.9c2.9-3.4 8-3.8 11.4-0.9C393.1 258.79999999999995 450.3 282 513 282s119.9-23.2 163.5-61.5c3.4-2.9 8.5-2.5 11.4 0.9l36 42.9c2.8 3.3 2.4 8.3-0.9 11.2zM840.4 415.6C751.7 489.5 637.6 534 513 534s-238.7-44.5-327.5-118.4c-3.4-2.8-3.8-7.9-1-11.3l36-42.9c2.8-3.4 7.9-3.8 11.2-1C308 423.8 406.1 462 513 462s205-38.2 281.2-101.6c3.4-2.8 8.4-2.4 11.2 1l36 42.9c2.8 3.4 2.4 8.5-1 11.3zM957.1 554.6C835.7 654.2 680.3 714 511 714c-168.2 0-322.6-59-443.7-157.4-3.5-2.8-4-7.9-1.1-11.4l36-42.9c2.8-3.3 7.8-3.8 11.1-1.1C222 589.3 360.3 642 511 642c151.8 0 291-53.5 400-142.7 3.4-2.8 8.4-2.3 11.2 1.1l36 42.9c2.9 3.4 2.4 8.5-1.1 11.3zM512 118m-64 0a64 64 0 1 1 128 0 64 64 0 1 1-128 0Z" horiz-adv-x="1024" />
<glyph glyph-name="link" unicode="&#59362;" d="M574 230.6c-3.1 3.1-8.2 3.1-11.3 0L446.5 114.4c-53.8-53.8-144.6-59.5-204 0-59.5 59.5-53.8 150.2 0 204l116.2 116.2c3.1 3.1 3.1 8.2 0 11.3l-39.8 39.8c-3.1 3.1-8.2 3.1-11.3 0L191.4 369.5c-84.6-84.6-84.6-221.5 0-306s221.5-84.6 306 0l116.2 116.2c3.1 3.1 3.1 8.2 0 11.3L574 230.6zM832.6 704.6c-84.6 84.6-221.5 84.6-306 0L410.3 588.4c-3.1-3.1-3.1-8.2 0-11.3l39.7-39.7c3.1-3.1 8.2-3.1 11.3 0l116.2 116.2c53.8 53.8 144.6 59.5 204 0 59.5-59.5 53.8-150.2 0-204L665.3 333.4c-3.1-3.1-3.1-8.2 0-11.3l39.8-39.8c3.1-3.1 8.2-3.1 11.3 0l116.2 116.2c84.5 84.6 84.5 221.5 0 306.1zM610.1 523.7c-3.1 3.1-8.2 3.1-11.3 0L372.3 297.3c-3.1-3.1-3.1-8.2 0-11.3l39.6-39.6c3.1-3.1 8.2-3.1 11.3 0l226.4 226.4c3.1 3.1 3.1 8.2 0 11.3l-39.5 39.6z" horiz-adv-x="1024" />
<glyph glyph-name="tags" unicode="&#59365;" d="M483.2 105.7L861.4 484c1.7 1.7 2.5 4 2.3 6.3l-25.5 301.4c-0.7 7.8-6.8 13.9-14.6 14.6L522.2 831.7c-2.3 0.2-4.7-0.6-6.3-2.3L137.7 451.2c-3.1-3.1-3.1-8.2 0-11.3l334.2-334.2c3.1-3.2 8.2-3.2 11.3 0z m62.6 651.7l224.6-19 19-224.6L477.5 202 233.9 445.5l311.9 311.9zM605.958852 571.173768a48 48 0 1 1 67.881066 67.883435 48 48 0 1 1-67.881066-67.883435ZM889.7 356.2l-39.6 39.5c-3.1 3.1-8.2 3.1-11.3 0l-362-361.3-237.6 237c-3.1 3.1-8.2 3.1-11.3 0l-39.6-39.5c-3.1-3.1-3.1-8.2 0-11.3l243.2-242.8 39.6-39.5c3.1-3.1 8.2-3.1 11.3 0l407.3 406.6c3.1 3.1 3.1 8.2 0 11.3z" horiz-adv-x="1024" />
<glyph glyph-name="alipay" unicode="&#59516;" d="M789 285.7c-38.7 12.9-90.7 32.7-148.5 53.6 34.8 60.3 62.5 129 80.7 203.6H530.5v68.6h233.6v38.3H530.5V764h-95.4c-16.7 0-16.7-16.5-16.7-16.5v-97.8H182.2v-38.3h236.3v-68.6H223.4v-38.3h378.4c-13.8-47.6-32.4-92.3-54.5-132.9-122.8 40.4-253.8 73.2-336.1 53-52.6-13-86.5-36.1-106.5-60.3-91.4-111-25.9-279.6 167.2-279.6C386 84.8 496 148.4 581.2 253 708.3 192 960 87.3 960 87.3V236.6s-31.6 2.5-171 49.1zM253.9 149.4c-150.5 0-195 118.3-120.6 183.1 24.8 21.9 70.2 32.6 94.4 35 89.4 8.8 172.2-25.2 269.9-72.8-68.8-89.5-156.3-145.3-243.7-145.3z" horiz-adv-x="1024" />
<glyph glyph-name="zhihu" unicode="&#59517;" d="M564.7 665.9V93h60l25.2-71.4L756.3 93h131.5V665.9H564.7z m247.7-497h-59.9l-75.1-50.4-17.8 50.4h-18V587.7h170.7v-418.8zM526.1 409.1H393.3c2.1 44.9 4.3 104.3 6.6 172.9h130.9l-0.1 8.1c0 0.6-0.2 14.7-2.3 29.1-2.1 15-6.6 34.9-21 34.9H287.8c4.4 20.6 15.7 69.7 29.4 93.8l6.4 11.2-12.9 0.7c-0.8 0-19.6 0.9-41.4-10.6-35.7-19-51.7-56.4-58.7-84.4-18.4-73.1-44.6-123.9-55.7-145.6-3.3-6.4-5.3-10.2-6.2-12.8-1.8-4.9-0.8-9.8 2.8-13 10.5-9.5 38.2 2.9 38.5 3 0.6 0.3 1.3 0.6 2.2 1 13.9 6.3 55.1 25 69.8 84.5h56.7c0.7-32.2 3.1-138.4 2.9-172.9h-141l-2.1-1.5c-23.1-16.9-30.5-63.2-30.8-65.2l-1.4-9.2h167c-12.3-78.3-26.5-113.4-34-127.4-3.7-7-7.3-14-10.7-20.8-21.3-42.2-43.4-85.8-126.3-153.6-3.6-2.8-7-8-4.8-13.7 2.4-6.3 9.3-9.1 24.6-9.1 5.4 0 11.8 0.3 19.4 1 49.9 4.4 100.8 18 135.1 87.6 17 35.1 31.7 71.7 43.9 108.9L497 46l5 12c0.8 1.9 19 46.3 5.1 95.9l-0.5 1.8-108.1 123-22-16.6c6.4 26.1 10.6 49.9 12.5 71.1h158.7v8c0 40.1-18.5 63.9-19.2 64.9l-2.4 3z" horiz-adv-x="1024" />
<glyph glyph-name="linkedin" unicode="&#59518;" d="M847.7 784H176.3c-35.5 0-64.3-28.8-64.3-64.3v-671.4c0-35.5 28.8-64.3 64.3-64.3h671.4c35.5 0 64.3 28.8 64.3 64.3V719.7c0 35.5-28.8 64.3-64.3 64.3z m0-736c-447.8 0.1-671.7 0.2-671.7 0.3 0.1 447.8 0.2 671.7 0.3 671.7 447.8-0.1 671.7-0.2 671.7-0.3-0.1-447.8-0.2-671.7-0.3-671.7zM230.6 484.1h118.7v-381.8H230.6zM290 536.3c37.9 0 68.8 30.8 68.8 68.8 0 37.9-30.8 68.8-68.8 68.8s-68.8-30.8-68.8-68.8c-0.1-38 30.7-68.8 68.8-68.8zM542.3 291.2c0 49.8 9.5 98 71.2 98 60.8 0 61.7-56.9 61.7-101.2v-185.7h118.6V311.7c0 102.8-22.2 181.9-142.3 181.9-57.7 0-96.4-31.7-112.3-61.7h-1.6v52.2H423.7v-381.8h118.6V291.2z" horiz-adv-x="1024" />
<glyph glyph-name="facebook" unicode="&#59519;" d="M880 784H144c-17.7 0-32-14.3-32-32v-736c0-17.7 14.3-32 32-32h736c17.7 0 32 14.3 32 32V752c0 17.7-14.3 32-32 32z m-32-736H663.9V293.8h104l15.6 120.7H663.9v77.1c0 35 9.7 58.8 59.8 58.8h63.9v108c-11.1 1.5-49 4.8-93.2 4.8-92.2 0-155.3-56.3-155.3-159.6v-89H434.9v-120.7h104.3V48H176V720h672v-672z" horiz-adv-x="1024" />
<glyph glyph-name="skype" unicode="&#59520;" d="M883.7 317.4c4.1 22.5 6.3 45.5 6.3 68.5 0 51-10 100.5-29.7 147-19 45-46.3 85.4-81 120.1-34.7 34.7-75.1 61.9-120.1 80.9-46.6 19.7-96 29.7-147 29.7-24 0-48.1-2.3-71.5-6.8-32.3 17.1-68.5 26.2-105.1 26.2-59.7 0-115.9-23.3-158.1-65.5-42.2-42.2-65.5-98.4-65.5-158.1 0-38 9.8-75.4 28.1-108.4-3.7-21.4-5.7-43.3-5.7-65.1 0-51 10-100.5 29.7-147 19-45 46.2-85.4 80.9-120.1 34.7-34.7 75.1-61.9 120.1-80.9 46.6-19.7 96-29.7 147-29.7 22.2 0 44.4 2 66.2 5.9 33.5-18.9 71.3-29 110-29 59.7 0 115.9 23.2 158.1 65.5 42.3 42.2 65.5 98.4 65.5 158.1 0.1 38-9.7 75.5-28.2 108.7z m-88.1-216C766.9 72.6 729 57 688.4 57c-26.1 0-51.8 6.8-74.6 19.7l-22.5 12.7-25.5-4.5c-17.8-3.2-35.8-4.8-53.6-4.8-41.4 0-81.3 8.1-119.1 24.1-36.3 15.3-69 37.3-97.2 65.5-28.1 28.1-50.1 60.7-65.5 97.1-16 37.7-24 77.6-24 119 0 17.4 1.6 35.2 4.6 52.8l4.4 25.1L203 486c-12.5 22.4-19.1 47.8-19.1 73.4 0 40.6 15.7 78.5 44.4 107.2C257.1 695.3 295 711 335.6 711c24.7 0 49.3-6.2 71.4-17.9l22.4-11.8 24.8 4.8c18.9 3.6 38.4 5.5 58 5.5 41.4 0 81.3-8.1 119-24 36.5-15.4 69.1-37.4 97.2-65.5 28.2-28.1 50.2-60.8 65.6-97.2 16-37.7 24-77.6 24-119 0-18.4-1.7-37-5.1-55.5l-4.7-25.5 12.6-22.6c12.6-22.5 19.2-48 19.2-73.7 0-40.7-15.7-78.5-44.4-107.2zM583.4 429.8L495 449.4c-33.6 7.7-72.3 17.8-72.3 49.5s27.1 53.9 76.1 53.9c98.7 0 89.7-67.8 138.7-67.8 25.8 0 48.4 15.2 48.4 41.2 0 60.8-97.4 106.5-180 106.5-89.7 0-185.2-38.1-185.2-139.5 0-48.8 17.4-100.8 113.6-124.9l119.4-29.8c36.1-8.9 45.2-29.2 45.2-47.6 0-30.5-30.3-60.3-85.2-60.3-107.2 0-92.3 82.5-149.7 82.5-25.8 0-44.5-17.8-44.5-43.1 0-49.4 60-115.4 194.2-115.4 127.7 0 191 61.5 191 144 0 53.1-24.5 109.6-121.3 131.2z" horiz-adv-x="1024" />
<glyph glyph-name="codesandbox" unicode="&#59521;" d="M709.6 686l0.4 0.2h0.2L512 800 313.9 686.2h-0.2l0.7-0.3L151.5 592v-416L512-32l360.5 208V592l-162.9 94zM482.7 52.39999999999998L339.6 135V274.6L210 348.20000000000005V523.1l272.7-157.3v-313.4zM238.2 574.5l134.7 77.8 138.9-79.7 139.1 79.9 135.2-78-273.9-158-274 158zM814 347.70000000000005l-128.8-73.1v-139.1l-143.9-83V365.6L814 522.9v-175.2z" horiz-adv-x="1024" />
<glyph glyph-name="codepen" unicode="&#59522;" d="M911.7 510.7l-0.3 1.5c-0.2 1-0.3 1.9-0.6 2.9-0.2 0.6-0.4 1.1-0.5 1.7-0.3 0.8-0.5 1.7-0.9 2.5-0.2 0.6-0.5 1.1-0.8 1.7-0.4 0.8-0.8 1.5-1.2 2.3-0.3 0.5-0.6 1.1-1 1.6-0.8 1.2-1.7 2.4-2.6 3.6-0.5 0.6-1.1 1.3-1.7 1.9-0.4 0.5-0.9 0.9-1.4 1.3-0.6 0.6-1.3 1.1-1.9 1.6-0.5 0.4-1 0.8-1.6 1.2-0.2 0.1-0.4 0.3-0.6 0.4L531.1 778.2c-11.5 7.7-26.6 7.7-38.1 0L127.3 534.7c-0.2-0.1-0.4-0.3-0.6-0.4-0.5-0.4-1-0.8-1.6-1.2-0.7-0.5-1.3-1.1-1.9-1.6-0.5-0.4-0.9-0.9-1.4-1.3-0.6-0.6-1.2-1.2-1.7-1.9-1-1.1-1.8-2.3-2.6-3.6-0.3-0.5-0.7-1-1-1.6-0.4-0.7-0.8-1.5-1.2-2.3-0.3-0.5-0.5-1.1-0.8-1.7-0.3-0.8-0.6-1.7-0.9-2.5-0.2-0.6-0.4-1.1-0.5-1.7-0.2-0.9-0.4-1.9-0.6-2.9l-0.3-1.5c-0.2-1.5-0.3-3-0.3-4.5v-243.5c0-1.5 0.1-3 0.3-4.5l0.3-1.5c0.2-1 0.4-1.9 0.6-2.9 0.2-0.6 0.3-1.1 0.5-1.7 0.3-0.9 0.6-1.7 0.9-2.5 0.2-0.6 0.5-1.1 0.8-1.7 0.4-0.8 0.7-1.5 1.2-2.3 0.3-0.5 0.6-1.1 1-1.6 0.5-0.7 0.9-1.4 1.5-2.1l1.2-1.5c0.5-0.6 1.1-1.3 1.7-1.9 0.4-0.5 0.9-0.9 1.4-1.3 0.6-0.6 1.3-1.1 1.9-1.6 0.5-0.4 1-0.8 1.6-1.2 0.2-0.1 0.4-0.3 0.6-0.4L493-9.7c5.6-3.8 12.3-5.8 19.1-5.8 6.6 0 13.3 1.9 19.1 5.8l365.6 243.5c0.2 0.1 0.4 0.3 0.6 0.4 0.5 0.4 1 0.8 1.6 1.2 0.7 0.5 1.3 1.1 1.9 1.6 0.5 0.4 0.9 0.9 1.4 1.3 0.6 0.6 1.2 1.2 1.7 1.9l1.2 1.5 1.5 2.1c0.3 0.5 0.7 1 1 1.6 0.4 0.8 0.8 1.5 1.2 2.3 0.3 0.5 0.5 1.1 0.8 1.7 0.3 0.8 0.6 1.7 0.9 2.5 0.2 0.5 0.4 1.1 0.5 1.7 0.3 0.9 0.4 1.9 0.6 2.9l0.3 1.5c0.2 1.5 0.3 3 0.3 4.5V506.2c-0.3 1.5-0.4 3-0.6 4.5zM546.4 685.5l269.4-179.4-120.3-80.4-149 99.6V685.5z m-68.8 0v-160.2l-149-99.6-120.3 80.4 269.3 179.4zM180.7 441.9l86-57.5-86-57.5v115z m296.9-358.5L208.3 262.8l120.3 80.4 149-99.6v-160.2zM512 303.2l-121.6 81.2L512 465.7l121.6-81.2L512 303.2z m34.4-219.8V243.6l149 99.6 120.3-80.4-269.3-179.4zM843.3 327l-86 57.5 86 57.5v-115z" horiz-adv-x="1024" />
<glyph glyph-name="sketch" unicode="&#59523;" d="M925.6 490.9l-203 253.7c-1.2 1.5-3.1 2.4-5 2.4H306.4c-1.9 0-3.8-0.9-5-2.4l-203-253.7c-1.9-2.4-1.9-5.9 0.2-8.3l408.6-459.5c1.2-1.4 3-2.1 4.8-2.1 1.8 0 3.5 0.8 4.8 2.1l408.6 459.5c2.1 2.4 2.1 5.9 0.2 8.3zM645.2 689.6l34.4-133.9-132.5 133.9h98.1z m8.2-178.5H370.6L512 654l141.4-142.9zM378.8 689.6h98.1L344.3 555.7l34.5 133.9z m-53.4-7l-44.1-171.5h-93.1l137.2 171.5zM194.6 461.1H289l125.8-247.7-220.2 247.7zM512 132.6L345.1 461.1h333.7L512 132.6z m97.1 80.8L735 461.1h94.4L609.1 213.4z m133.6 297.7l-44.1 171.5 137.2-171.5h-93.1z" horiz-adv-x="1024" />
<glyph glyph-name="gitlab" unicode="&#59524;" d="M913.9 343.79999999999995L805 714.6v0.1c-7.6 22.9-25.7 36.5-48.3 36.5-23.4 0-42.5-13.5-49.7-35.2l-71.4-213H388.8l-71.4 213c-7.2 21.7-26.3 35.2-49.7 35.2-23.1 0-42.5-14.8-48.4-36.6L110.5 343.79999999999995c-4.4-14.7 1.2-31.4 13.5-40.7l368.5-276.4c2.6-3.6 6.2-6.3 10.4-7.8l8.6-6.4 8.5 6.4c4.9 1.7 9 4.7 11.9 8.9l368.4 275.4c12.4 9.2 18 25.9 13.6 40.6zM751.7 702.6c1 1.8 2.9 1.9 3.5 1.9 1.1 0 2.5-0.3 3.4-3L818 501.7H684.5l67.2 200.9z m-487.4-1c0.9 2.6 2.3 2.9 3.4 2.9 2.7 0 2.9-0.1 3.4-1.7l67.3-201.2H206.5l57.8 200zM158.8 337.29999999999995l28.2 97.3 202.4-270.2-230.6 172.9z m73.9 116.4h122.1l90.8-284.3-212.9 284.3zM512.9 120L405.7 453.7H620L512.9 120z m157.9 333.7h119.5L580 172.89999999999998l90.8 280.8z m-40.7-293.9l207.3 276.7 29.5-99.2-236.8-177.5z" horiz-adv-x="1024" />
<glyph glyph-name="dribbble" unicode="&#59525;" d="M512 800C282.6 800 96 613.4 96 384s186.6-416 416-416 416 186.6 416 416S741.4 800 512 800z m275.1-191.8c49.5-60.5 79.5-137.5 80.2-221.4-11.7 2.5-129.2 26.3-247.4 11.4-2.5 6.1-5 12.2-7.6 18.3-7.4 17.3-15.3 34.6-23.6 51.5C720 521.7 779.6 598 787.1 608.2zM512 738.8c90.3 0 172.8-33.9 235.5-89.5-6.4-9.1-59.9-81-186.2-128.4-58.2 107-122.7 194.8-132.6 208 27.3 6.6 55.2 9.9 83.3 9.9zM360.9 705c9.4-12.8 72.9-100.9 131.7-205.5C326.4 455.4 180 456 164.1 456.2c23.1 110.3 97.4 201.9 196.8 248.8zM156.7 383.5c0 3.6 0.1 7.3 0.2 10.9 15.5-0.3 187.7-2.5 365.2 50.6 10.2-19.9 19.9-40.1 28.8-60.3-4.7-1.3-9.4-2.7-14-4.2C353.6 321.1 256.1 159.6 248 145.9c-56.7 63-91.3 146.3-91.3 237.6zM512 28.2c-82.2 0-157.9 28-218.1 75 6.4 13.1 78.3 152 278.7 221.9l2.3 0.8c49.9-129.6 70.5-238.3 75.8-269.5-42.6-18.2-89.5-28.3-138.7-28.2z m198.5 60.7c-3.6 21.6-22.5 125.6-69 253.3C752.9 360 850.7 330.8 862.8 327c-15.8-98.8-72.5-184.2-152.3-238.1z" horiz-adv-x="1024" />
<glyph glyph-name="instagram" unicode="&#59526;" d="M512 589.1c-113.5 0-205.1-91.6-205.1-205.1S398.5 178.9 512 178.9 717.1 270.5 717.1 384 625.5 589.1 512 589.1z m0-338.4c-73.4 0-133.3 59.9-133.3 133.3S438.6 517.3 512 517.3 645.3 457.4 645.3 384 585.4 250.7 512 250.7zM725.5 645.3c-26.5 0-47.9-21.4-47.9-47.9s21.4-47.9 47.9-47.9 47.9 21.3 47.9 47.9c-0.1 26.6-21.4 47.9-47.9 47.9zM911.8 384c0 55.2 0.5 109.9-2.6 165-3.1 64-17.7 120.8-64.5 167.6-46.9 46.9-103.6 61.4-167.6 64.5-55.2 3.1-109.9 2.6-165 2.6-55.2 0-109.9 0.5-165-2.6-64-3.1-120.8-17.7-167.6-64.5C132.6 669.7 118.1 613 115 549c-3.1-55.2-2.6-109.9-2.6-165s-0.5-109.9 2.6-165c3.1-64 17.7-120.8 64.5-167.6 46.9-46.9 103.6-61.4 167.6-64.5 55.2-3.1 109.9-2.6 165-2.6 55.2 0 109.9-0.5 165 2.6 64 3.1 120.8 17.7 167.6 64.5 46.9 46.9 61.4 103.6 64.5 167.6 3.2 55.1 2.6 109.8 2.6 165z m-88-235.8c-7.3-18.2-16.1-31.8-30.2-45.8-14.1-14.1-27.6-22.9-45.8-30.2C695.2 51.3 570.3 56 512 56c-58.3 0-183.3-4.7-235.9 16.1-18.2 7.3-31.8 16.1-45.8 30.2-14.1 14.1-22.9 27.6-30.2 45.8C179.3 200.8 184 325.7 184 384c0 58.3-4.7 183.3 16.1 235.9 7.3 18.2 16.1 31.8 30.2 45.8s27.6 22.9 45.8 30.2C328.7 716.7 453.7 712 512 712s183.3 4.7 235.9-16.1c18.2-7.3 31.8-16.1 45.8-30.2 14.1-14.1 22.9-27.6 30.2-45.8C844.7 567.3 840 442.3 840 384c0-58.3 4.7-183.2-16.2-235.8z" horiz-adv-x="1024" />
<glyph glyph-name="reddit" unicode="&#59527;" d="M344 328m-56 0a56 56 0 1 1 112 0 56 56 0 1 1-112 0ZM626.7 208.3c-23.1-18.2-68.9-37.8-114.7-37.8s-91.6 19.6-114.7 37.8c-14.4 11.3-35.3 8.9-46.7-5.5s-8.9-35.3 5.5-46.7C396.3 124.4 457.5 104 512 104s115.7 20.4 155.9 52.1c14.4 11.4 16.9 32.3 5.5 46.7-11.3 14.4-32.3 16.9-46.7 5.5zM960 440c0 61.9-50.1 112-112 112-42.1 0-78.7-23.2-97.9-57.6-57.6 31.5-127.7 51.8-204.1 56.5L612.9 701l127.9-36.9c11.5-32.6 42.6-56.1 79.2-56.1 46.4 0 84 37.6 84 84s-37.6 84-84 84c-32 0-59.8-17.9-74-44.2L603.5 773c-16 4.6-32.8-3.2-39.6-18.4l-90.8-203.9c-74.5-5.2-142.9-25.4-199.2-56.2-19.1 34.3-55.8 57.5-97.9 57.5-61.9 0-112-50.1-112-112 0-45.8 27.5-85.1 66.8-102.5-7.1-21-10.8-43-10.8-65.5 0-154.6 175.5-280 392-280s392 125.4 392 280c0 22.6-3.8 44.5-10.8 65.5C932.5 354.9 960 394.2 960 440zM820 723.5c17.4 0 31.5-14.1 31.5-31.5s-14.1-31.5-31.5-31.5-31.5 14.1-31.5 31.5 14.1 31.5 31.5 31.5zM120 440c0 30.9 25.1 56 56 56 22.3 0 41.6-13.1 50.6-32.1-29.3-22.2-53.5-47.8-71.5-75.9-20.5 8.3-35.1 28.5-35.1 52z m392-381.5c-179.8 0-325.5 95.6-325.5 213.5S332.2 485.5 512 485.5 837.5 389.9 837.5 272 691.8 58.5 512 58.5zM868.8 388c-17.9 28.1-42.2 53.7-71.5 75.9 9 18.9 28.3 32.1 50.6 32.1 30.9 0 56-25.1 56-56 0.1-23.5-14.5-43.7-35.1-52zM680 328m-56 0a56 56 0 1 1 112 0 56 56 0 1 1-112 0Z" horiz-adv-x="1024" />
<glyph glyph-name="youtube" unicode="&#59528;" d="M960 386.8c0 2.2 0 4.7-0.1 7.6-0.1 8.1-0.3 17.2-0.5 26.9-0.8 27.9-2.2 55.7-4.4 81.9-3 36.1-7.4 66.2-13.4 88.8-12.8 47.9-50.4 85.6-98.3 98.5-28.3 7.6-83.7 12.3-161.7 15.2-37.1 1.4-76.8 2.3-116.5 2.8-13.9 0.2-26.8 0.3-38.4 0.4H497.3c-11.6-0.1-24.5-0.2-38.4-0.4-39.7-0.5-79.4-1.4-116.5-2.8-78-3-133.5-7.7-161.7-15.2-47.8-12.8-85.5-50.5-98.3-98.5-6.1-22.6-10.4-52.7-13.4-88.8-2.2-26.2-3.6-54-4.4-81.9-0.3-9.7-0.4-18.8-0.5-26.9 0-2.9-0.1-5.4-0.1-7.6v-5.6c0-2.2 0-4.7 0.1-7.6 0.1-8.1 0.3-17.2 0.5-26.9 0.8-27.9 2.2-55.7 4.4-81.9 3-36.1 7.4-66.2 13.4-88.8 12.8-47.9 50.4-85.7 98.3-98.5 28.2-7.6 83.7-12.3 161.7-15.2 37.1-1.4 76.8-2.3 116.5-2.8 13.9-0.2 26.8-0.3 38.4-0.4H526.7c11.6 0.1 24.5 0.2 38.4 0.4 39.7 0.5 79.4 1.4 116.5 2.8 78 3 133.5 7.7 161.7 15.2 47.9 12.8 85.5 50.5 98.3 98.5 6.1 22.6 10.4 52.7 13.4 88.8 2.2 26.2 3.6 54 4.4 81.9 0.3 9.7 0.4 18.8 0.5 26.9 0 2.9 0.1 5.4 0.1 7.6V384v2.8z m-72-5.2c0-2.1 0-4.4-0.1-7.1-0.1-7.8-0.3-16.4-0.5-25.7-0.7-26.6-2.1-53.2-4.2-77.9-2.7-32.2-6.5-58.6-11.2-76.3-6.2-23.1-24.4-41.4-47.4-47.5-21-5.6-73.9-10.1-145.8-12.8-36.4-1.4-75.6-2.3-114.7-2.8-13.7-0.2-26.4-0.3-37.8-0.3h-28.6c-11.4 0.1-24.1 0.2-37.8 0.3-39.1 0.5-78.2 1.4-114.7 2.8-71.9 2.8-124.9 7.2-145.8 12.8-23 6.2-41.2 24.4-47.4 47.5-4.7 17.7-8.5 44.1-11.2 76.3-2.1 24.7-3.4 51.3-4.2 77.9-0.3 9.3-0.4 18-0.5 25.7 0 2.7-0.1 5.1-0.1 7.1v3 1.8c0 2.1 0 4.4 0.1 7.1 0.1 7.8 0.3 16.4 0.5 25.7 0.7 26.6 2.1 53.2 4.2 77.9 2.7 32.2 6.5 58.6 11.2 76.3 6.2 23.1 24.4 41.4 47.4 47.5 21 5.6 73.9 10.1 145.8 12.8 36.4 1.4 75.6 2.3 114.7 2.8 13.7 0.2 26.4 0.3 37.8 0.3h28.6c11.4-0.1 24.1-0.2 37.8-0.3 39.1-0.5 78.2-1.4 114.7-2.8 71.9-2.8 124.9-7.2 145.8-12.8 23-6.2 41.2-24.4 47.4-47.5 4.7-17.7 8.5-44.1 11.2-76.3 2.1-24.7 3.4-51.3 4.2-77.9 0.3-9.3 0.4-18 0.5-25.7 0-2.7 0.1-5.1 0.1-7.1v-4.8zM423 250l232 135-232 133z" horiz-adv-x="1024" />
<glyph glyph-name="qq" unicode="&#59529;" d="M824.8 282.79999999999995c-16 51.4-34.4 94.6-62.7 165.3C766.5 633.8 689.3 784 511.5 784 331.7 784 256.2 630.8 261 448.1c-28.4-70.8-46.7-113.7-62.7-165.3-34-109.5-23-154.8-14.6-155.8 18-2.2 70.1 82.4 70.1 82.4 0-49 25.2-112.9 79.8-159-26.4-8.1-85.7-29.9-71.6-53.8 11.4-19.3 196.2-12.3 249.5-6.3 53.3-6 238.1-13 249.5 6.3 14.1 23.8-45.3 45.7-71.6 53.8 54.6 46.2 79.8 110.1 79.8 159 0 0 52.1-84.6 70.1-82.4 8.5 1.1 19.5 46.4-14.5 155.8z" horiz-adv-x="1024" />
<glyph glyph-name="twitter" unicode="&#59530;" d="M928 641.7c-30.6-13.2-63.9-22.7-98.2-26.4 35.4 21.1 62.3 54.4 75 94-32.7-19.5-69.7-33.8-108.2-41.2C765.4 701.4 721.1 722 672 722c-94.5 0-170.5-76.6-170.5-170.6 0-13.2 1.6-26.4 4.2-39.1-141.5 7.4-267.7 75-351.6 178.5-14.8-25.4-23.2-54.4-23.2-86.1 0-59.2 30.1-111.4 76-142.1-28 1.1-54.4 9-77.1 21.7v-2.1c0-82.9 58.6-151.6 136.7-167.4-14.3-3.7-29.6-5.8-44.9-5.8-11.1 0-21.6 1.1-32.2 2.6C211 244 273.9 194.9 348.8 193.3c-58.6-45.9-132-72.9-211.7-72.9-14.3 0-27.5 0.5-41.2 2.1C171.5 74 261.2 46 357.8 46 671.4 46 843 305.8 843 531.3c0 7.4 0 14.8-0.5 22.2 33.2 24.3 62.3 54.4 85.5 88.2z" horiz-adv-x="1024" />
<glyph glyph-name="weibo" unicode="&#59531;" d="M457.3 353c-68.1 17.7-145-16.2-174.6-76.2-30.1-61.2-1-129.1 67.8-151.3 71.2-23 155.2 12.2 184.4 78.3 28.7 64.6-7.2 131-77.6 149.2z m-52-156.2c-13.8-22.1-43.5-31.7-65.8-21.6-22 10-28.5 35.7-14.6 57.2 13.7 21.4 42.3 31 64.4 21.7 22.4-9.5 29.6-35 16-57.3z m45.5 58.5c-5-8.6-16.1-12.7-24.7-9.1-8.5 3.5-11.2 13.1-6.4 21.5 5 8.4 15.6 12.4 24.1 9.1 8.7-3.2 11.8-12.9 7-21.5zM785.3 452.5c15-4.8 31 3.4 35.9 18.3 11.8 36.6 4.4 78.4-23.2 109-27.6 30.6-68.4 42.3-106 34.3-15.4-3.3-25.2-18.4-21.9-33.8 3.3-15.3 18.4-25.2 33.8-21.8 18.4 3.9 38.3-1.8 51.9-16.7 13.5-15 17.2-35.4 11.3-53.3-4.9-15.1 3.2-31.1 18.2-36zM885.1 658.5c-56.7 62.9-140.4 86.9-217.7 70.5-17.9-3.8-29.3-21.4-25.4-39.3 3.8-17.9 21.4-29.3 39.3-25.5 55 11.7 114.4-5.4 154.8-50.1 40.3-44.7 51.2-105.7 34-159.1-5.6-17.4 3.9-36 21.3-41.7 17.4-5.6 36 3.9 41.6 21.2v0.1c24.1 75.4 8.9 161.1-47.9 223.9zM729 397c-12.2 3.6-20.5 6.1-14.1 22.1 13.8 34.7 15.2 64.7 0.3 86-28 40.1-104.8 37.9-192.8 1.1 0 0-27.6-12.1-20.6 9.8 13.5 43.5 11.5 79.9-9.6 101-47.7 47.8-174.6-1.8-283.5-110.6C127.3 424.9 80 338.5 80 263.8 80 120.9 263.2 34 442.5 34c235 0 391.3 136.5 391.3 245 0 65.5-55.2 102.6-104.8 118zM443 85.2c-143-14.1-266.5 50.5-275.8 144.5-9.3 93.9 99.2 181.5 242.2 195.6 143 14.2 266.5-50.5 275.8-144.4C694.4 187 586 99.4 443 85.2z" horiz-adv-x="1024" />
<glyph glyph-name="wechat" unicode="&#59532;" d="M690.1 518.6c5.9 0 11.8-0.2 17.6-0.5-24.4 128.7-158.3 227.1-319.9 227.1C209 745.2 64 624.6 64 475.8c0-81.1 43.6-154.2 111.9-203.6 5.5-3.9 9.1-10.3 9.1-17.6 0-2.4-0.5-4.6-1.1-6.9-5.5-20.3-14.2-52.8-14.6-54.3-0.7-2.6-1.7-5.2-1.7-7.9 0-5.9 4.8-10.8 10.8-10.8 2.3 0 4.2 0.9 6.2 2l70.9 40.9c5.3 3.1 11 5 17.2 5 3.2 0 6.4-0.5 9.5-1.4 33.1-9.5 68.8-14.8 105.7-14.8 6 0 11.9 0.1 17.8 0.4-7.1 21-10.9 43.1-10.9 66 0 135.8 132.2 245.8 295.3 245.8z m-194.3 86.5c23.8 0 43.2-19.3 43.2-43.1s-19.3-43.1-43.2-43.1c-23.8 0-43.2 19.3-43.2 43.1s19.4 43.1 43.2 43.1z m-215.9-86.2c-23.8 0-43.2 19.3-43.2 43.1s19.3 43.1 43.2 43.1 43.2-19.3 43.2-43.1-19.4-43.1-43.2-43.1zM866.7 103.29999999999995c56.9 41.2 93.2 102 93.2 169.7 0 124-120.8 224.5-269.9 224.5-149 0-269.9-100.5-269.9-224.5S540.9 48.5 690 48.5c30.8 0 60.6 4.4 88.1 12.3 2.6 0.8 5.2 1.2 7.9 1.2 5.2 0 9.9-1.6 14.3-4.1l59.1-34c1.7-1 3.3-1.7 5.2-1.7 2.4 0 4.7 0.9 6.4 2.6 1.7 1.7 2.6 4 2.6 6.4 0 2.2-0.9 4.4-1.4 6.6-0.3 1.2-7.6 28.3-12.2 45.3-0.5 1.9-0.9 3.8-0.9 5.7 0.1 5.9 3.1 11.2 7.6 14.5zM600.2 308.79999999999995c-19.9 0-36 16.1-36 35.9 0 19.8 16.1 35.9 36 35.9s36-16.1 36-35.9c0-19.8-16.2-35.9-36-35.9z m179.9 0c-19.9 0-36 16.1-36 35.9 0 19.8 16.1 35.9 36 35.9s36-16.1 36-35.9c-0.1-19.8-16.2-35.9-36-35.9z" horiz-adv-x="1024" />
<glyph glyph-name="github" unicode="&#59533;" d="M511.6 819.7C264.3 819.8 64 619.6 64 372.5 64 177.10000000000002 189.3 11 363.8-50c23.5-5.9 19.9 10.8 19.9 22.2v77.5c-135.7-15.9-141.2 73.9-150.3 88.9C215 170 171.5 178 184.5 193c30.9 15.9 62.4-4 98.9-57.9 26.4-39.1 77.9-32.5 104-26 5.7 23.5 17.9 44.5 34.7 60.8-140.6 25.2-199.2 111-199.2 213 0 49.5 16.3 95 48.3 131.7-20.4 60.5 1.9 112.3 4.9 120 58.1 5.2 118.5-41.6 123.2-45.3 33 8.9 70.7 13.6 112.9 13.6 42.4 0 80.2-4.9 113.5-13.9 11.3 8.6 67.3 48.8 121.3 43.9 2.9-7.7 24.7-58.3 5.5-118 32.4-36.8 48.9-82.7 48.9-132.3 0-102.2-59-188.1-200-212.9 23.5-23.2 38.1-55.4 38.1-91v-112.5c0.8-9 0-17.9 15-17.9 177.1 59.7 304.6 227 304.6 424.1 0 247.2-200.4 447.3-447.5 447.3z" horiz-adv-x="1024" />
</font>
</defs></svg>

Before

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -1,174 +0,0 @@
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport"
content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<meta name="author" content="Hubert Chen">
<title>Hubert&#39;s Blog</title>
<link rel="icon" href="/favicon.ico">
<!-- stylesheets list from _config.yml -->
<link rel="stylesheet" href="/css/style.css">
<!-- scripts list from _config.yml -->
<script src="/js/script.js"></script>
<script src="/js/tocbot.min.js"></script>
<meta name="generator" content="Hexo 6.2.0"></head>
<body>
<script>
// this function is used to check current theme before page loaded.
(() => {
const currentTheme = window.localStorage && window.localStorage.getItem('theme') || '';
const isDark = currentTheme === 'dark';
const pagebody = document.getElementsByTagName('body')[0]
if (isDark) {
pagebody.classList.add('dark-theme');
// mobile
document.getElementById("mobile-toggle-theme").innerText = "· Dark"
} else {
pagebody.classList.remove('dark-theme');
// mobile
document.getElementById("mobile-toggle-theme").innerText = "· Light"
}
})();
</script>
<div class="wrapper">
<header>
<nav class="navbar">
<div class="container">
<div class="navbar-header header-logo"><a href="/">Hubert&#39;s Blog</a></div>
<div class="menu navbar-right">
<a class="menu-item" href="/archives">文章</a>
<a class="menu-item" href="/tag">标签</a>
<a class="menu-item" href="/about">关于</a>
<input id="switch_default" type="checkbox" class="switch_default">
<label for="switch_default" class="toggleBtn"></label>
</div>
</div>
</nav>
<nav class="navbar-mobile" id="nav-mobile">
<div class="container">
<div class="navbar-header">
<div>
<a href="/">Hubert&#39;s Blog</a><a id="mobile-toggle-theme">·&nbsp;Light</a>
</div>
<div class="menu-toggle" onclick="mobileBtn()">&#9776; 菜单</div>
</div>
<div class="menu" id="mobile-menu">
<a class="menu-item" href="/archives">文章</a>
<a class="menu-item" href="/tag">标签</a>
<a class="menu-item" href="/about">关于</a>
</div>
</div>
</nav>
</header>
<script>
var mobileBtn = function f() {
var toggleMenu = document.getElementsByClassName("menu-toggle")[0];
var mobileMenu = document.getElementById("mobile-menu");
if(toggleMenu.classList.contains("active")){
toggleMenu.classList.remove("active")
mobileMenu.classList.remove("active")
}else{
toggleMenu.classList.add("active")
mobileMenu.classList.add("active")
}
}
</script>
<div class="main">
<div class="container profile-container">
<div class="intro">
<div class="avatar">
<a href="/"><img src="/images/avatar/IMG_20220506_162446_384.jpg"></a>
</div>
<div class="nickname">Hubert Chen</div>
<div class="description"><p>你好呀👋</p>
</div>
<div class="links">
<a class="link-item" title="Blog" href="/archives">
<i class="iconfont icon-blog"></i>
</a>
<a class="link-item" title="Link" target="_blank" rel="noopener" href="https://tx.me/trle5/">
<i class="iconfont icon-link"></i>
</a>
<a class="link-item" title="Twitter" target="_blank" rel="noopener" href="https://twitter.com/interstellar750">
<i class="iconfont icon-twitter"></i>
</a>
<a class="link-item" title="Github" target="_blank" rel="noopener" href="https://github.com/interstellar750">
<i class="iconfont icon-github"></i>
</a>
</div>
</div>
</div>
</div>
<footer id="footer" class="footer">
<div class="copyright">
<span>Hubert Chen © 2022 | Powered by <a href="https://hexo.io" target="_blank">Hexo</a> & <a href="https://github.com/Siricee/hexo-theme-Chic" target="_blank">Chic</a></span>
</div>
</footer>
</div>
</body>
</html>

File diff suppressed because one or more lines are too long

View File

@ -1,87 +0,0 @@
// declaraction of document.ready() function.
(function () {
var ie = !!(window.attachEvent && !window.opera);
var wk = /webkit\/(\d+)/i.test(navigator.userAgent) && (RegExp.$1 < 525);
var fn = [];
var run = function () {
for (var i = 0; i < fn.length; i++) fn[i]();
};
var d = document;
d.ready = function (f) {
if (!ie && !wk && d.addEventListener)
return d.addEventListener('DOMContentLoaded', f, false);
if (fn.push(f) > 1) return;
if (ie)
(function () {
try {
d.documentElement.doScroll('left');
run();
} catch (err) {
setTimeout(arguments.callee, 0);
}
})();
else if (wk)
var t = setInterval(function () {
if (/^(loaded|complete)$/.test(d.readyState))
clearInterval(t), run();
}, 0);
};
})();
document.ready(
// toggleTheme function.
// this script shouldn't be changed.
() => {
var _Blog = window._Blog || {};
const currentTheme = window.localStorage && window.localStorage.getItem('theme');
const isDark = currentTheme === 'dark';
const pagebody = document.getElementsByTagName('body')[0]
if (isDark) {
document.getElementById("switch_default").checked = true;
// mobile
document.getElementById("mobile-toggle-theme").innerText = "· Dark"
} else {
document.getElementById("switch_default").checked = false;
// mobile
document.getElementById("mobile-toggle-theme").innerText = "· Dark"
}
_Blog.toggleTheme = function () {
if (isDark) {
pagebody.classList.add('dark-theme');
// mobile
document.getElementById("mobile-toggle-theme").innerText = "· Dark"
} else {
pagebody.classList.remove('dark-theme');
// mobile
document.getElementById("mobile-toggle-theme").innerText = "· Light"
}
document.getElementsByClassName('toggleBtn')[0].addEventListener('click', () => {
if (pagebody.classList.contains('dark-theme')) {
pagebody.classList.remove('dark-theme');
} else {
pagebody.classList.add('dark-theme');
}
window.localStorage &&
window.localStorage.setItem('theme', document.body.classList.contains('dark-theme') ? 'dark' : 'light',)
})
// moblie
document.getElementById('mobile-toggle-theme').addEventListener('click', () => {
if (pagebody.classList.contains('dark-theme')) {
pagebody.classList.remove('dark-theme');
// mobile
document.getElementById("mobile-toggle-theme").innerText = "· Light"
} else {
pagebody.classList.add('dark-theme');
// mobile
document.getElementById("mobile-toggle-theme").innerText = "· Dark"
}
window.localStorage &&
window.localStorage.setItem('theme', document.body.classList.contains('dark-theme') ? 'dark' : 'light',)
})
};
_Blog.toggleTheme();
// ready function.
}
);

File diff suppressed because one or more lines are too long

View File

@ -1,153 +0,0 @@
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport"
content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<meta name="author" content="Hubert Chen">
<title>标签: DNS | Hubert&#39;s Blog</title>
<link rel="icon" href="/favicon.ico">
<!-- stylesheets list from _config.yml -->
<link rel="stylesheet" href="/css/style.css">
<!-- scripts list from _config.yml -->
<script src="/js/script.js"></script>
<script src="/js/tocbot.min.js"></script>
<meta name="generator" content="Hexo 6.2.0"></head>
<body>
<script>
// this function is used to check current theme before page loaded.
(() => {
const currentTheme = window.localStorage && window.localStorage.getItem('theme') || '';
const isDark = currentTheme === 'dark';
const pagebody = document.getElementsByTagName('body')[0]
if (isDark) {
pagebody.classList.add('dark-theme');
// mobile
document.getElementById("mobile-toggle-theme").innerText = "· Dark"
} else {
pagebody.classList.remove('dark-theme');
// mobile
document.getElementById("mobile-toggle-theme").innerText = "· Light"
}
})();
</script>
<div class="wrapper">
<header>
<nav class="navbar">
<div class="container">
<div class="navbar-header header-logo"><a href="/">Hubert&#39;s Blog</a></div>
<div class="menu navbar-right">
<a class="menu-item" href="/archives">文章</a>
<a class="menu-item" href="/tag">标签</a>
<a class="menu-item" href="/about">关于</a>
<input id="switch_default" type="checkbox" class="switch_default">
<label for="switch_default" class="toggleBtn"></label>
</div>
</div>
</nav>
<nav class="navbar-mobile" id="nav-mobile">
<div class="container">
<div class="navbar-header">
<div>
<a href="/">Hubert&#39;s Blog</a><a id="mobile-toggle-theme">·&nbsp;Light</a>
</div>
<div class="menu-toggle" onclick="mobileBtn()">&#9776; 菜单</div>
</div>
<div class="menu" id="mobile-menu">
<a class="menu-item" href="/archives">文章</a>
<a class="menu-item" href="/tag">标签</a>
<a class="menu-item" href="/about">关于</a>
</div>
</div>
</nav>
</header>
<script>
var mobileBtn = function f() {
var toggleMenu = document.getElementsByClassName("menu-toggle")[0];
var mobileMenu = document.getElementById("mobile-menu");
if(toggleMenu.classList.contains("active")){
toggleMenu.classList.remove("active")
mobileMenu.classList.remove("active")
}else{
toggleMenu.classList.add("active")
mobileMenu.classList.add("active")
}
}
</script>
<div class="main">
<div class="container">
<div class="post-wrap tags">
<h2 class="post-title">-&nbsp;Tag&nbsp;·&nbsp;DNS-</h2>
</div>
<div class="post-wrap archive">
<h3>2022</h3>
<article class="archive-item">
<a class="archive-item-link" href="/2022/03/05/05.%E6%90%AD%E5%BB%BA%E4%B8%80%E4%B8%AA%E8%87%AA%E5%B7%B1%E7%9A%84%E5%8D%9A%E5%AE%A2/">搭建一个自己的博客</a>
<span class="archive-item-date">05 三月, 2022</span>
</article>
</div>
</div>
</div>
<footer id="footer" class="footer">
<div class="copyright">
<span>Hubert Chen © 2022 | Powered by <a href="https://hexo.io" target="_blank">Hexo</a> & <a href="https://github.com/Siricee/hexo-theme-Chic" target="_blank">Chic</a></span>
</div>
</footer>
</div>
</body>
</html>

View File

@ -1,153 +0,0 @@
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport"
content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<meta name="author" content="Hubert Chen">
<title>标签: FarPush | Hubert&#39;s Blog</title>
<link rel="icon" href="/favicon.ico">
<!-- stylesheets list from _config.yml -->
<link rel="stylesheet" href="/css/style.css">
<!-- scripts list from _config.yml -->
<script src="/js/script.js"></script>
<script src="/js/tocbot.min.js"></script>
<meta name="generator" content="Hexo 6.2.0"></head>
<body>
<script>
// this function is used to check current theme before page loaded.
(() => {
const currentTheme = window.localStorage && window.localStorage.getItem('theme') || '';
const isDark = currentTheme === 'dark';
const pagebody = document.getElementsByTagName('body')[0]
if (isDark) {
pagebody.classList.add('dark-theme');
// mobile
document.getElementById("mobile-toggle-theme").innerText = "· Dark"
} else {
pagebody.classList.remove('dark-theme');
// mobile
document.getElementById("mobile-toggle-theme").innerText = "· Light"
}
})();
</script>
<div class="wrapper">
<header>
<nav class="navbar">
<div class="container">
<div class="navbar-header header-logo"><a href="/">Hubert&#39;s Blog</a></div>
<div class="menu navbar-right">
<a class="menu-item" href="/archives">文章</a>
<a class="menu-item" href="/tag">标签</a>
<a class="menu-item" href="/about">关于</a>
<input id="switch_default" type="checkbox" class="switch_default">
<label for="switch_default" class="toggleBtn"></label>
</div>
</div>
</nav>
<nav class="navbar-mobile" id="nav-mobile">
<div class="container">
<div class="navbar-header">
<div>
<a href="/">Hubert&#39;s Blog</a><a id="mobile-toggle-theme">·&nbsp;Light</a>
</div>
<div class="menu-toggle" onclick="mobileBtn()">&#9776; 菜单</div>
</div>
<div class="menu" id="mobile-menu">
<a class="menu-item" href="/archives">文章</a>
<a class="menu-item" href="/tag">标签</a>
<a class="menu-item" href="/about">关于</a>
</div>
</div>
</nav>
</header>
<script>
var mobileBtn = function f() {
var toggleMenu = document.getElementsByClassName("menu-toggle")[0];
var mobileMenu = document.getElementById("mobile-menu");
if(toggleMenu.classList.contains("active")){
toggleMenu.classList.remove("active")
mobileMenu.classList.remove("active")
}else{
toggleMenu.classList.add("active")
mobileMenu.classList.add("active")
}
}
</script>
<div class="main">
<div class="container">
<div class="post-wrap tags">
<h2 class="post-title">-&nbsp;Tag&nbsp;·&nbsp;FarPush-</h2>
</div>
<div class="post-wrap archive">
<h3>2022</h3>
<article class="archive-item">
<a class="archive-item-link" href="/2022/09/01/07.wechatpush/">使用 FarPush 搭建微信消息推送服务</a>
<span class="archive-item-date">01 九月, 2022</span>
</article>
</div>
</div>
</div>
<footer id="footer" class="footer">
<div class="copyright">
<span>Hubert Chen © 2022 | Powered by <a href="https://hexo.io" target="_blank">Hexo</a> & <a href="https://github.com/Siricee/hexo-theme-Chic" target="_blank">Chic</a></span>
</div>
</footer>
</div>
</body>
</html>

View File

@ -1,153 +0,0 @@
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport"
content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<meta name="author" content="Hubert Chen">
<title>标签: Farpush | Hubert&#39;s Blog</title>
<link rel="icon" href="/favicon.ico">
<!-- stylesheets list from _config.yml -->
<link rel="stylesheet" href="/css/style.css">
<!-- scripts list from _config.yml -->
<script src="/js/script.js"></script>
<script src="/js/tocbot.min.js"></script>
<meta name="generator" content="Hexo 6.2.0"></head>
<body>
<script>
// this function is used to check current theme before page loaded.
(() => {
const currentTheme = window.localStorage && window.localStorage.getItem('theme') || '';
const isDark = currentTheme === 'dark';
const pagebody = document.getElementsByTagName('body')[0]
if (isDark) {
pagebody.classList.add('dark-theme');
// mobile
document.getElementById("mobile-toggle-theme").innerText = "· Dark"
} else {
pagebody.classList.remove('dark-theme');
// mobile
document.getElementById("mobile-toggle-theme").innerText = "· Light"
}
})();
</script>
<div class="wrapper">
<header>
<nav class="navbar">
<div class="container">
<div class="navbar-header header-logo"><a href="/">Hubert&#39;s Blog</a></div>
<div class="menu navbar-right">
<a class="menu-item" href="/archives">文章</a>
<a class="menu-item" href="/tag">标签</a>
<a class="menu-item" href="/2022/03/01/04.%E6%AC%A2%E8%BF%8E%E5%8F%82%E8%A7%82">关于</a>
<input id="switch_default" type="checkbox" class="switch_default">
<label for="switch_default" class="toggleBtn"></label>
</div>
</div>
</nav>
<nav class="navbar-mobile" id="nav-mobile">
<div class="container">
<div class="navbar-header">
<div>
<a href="/">Hubert&#39;s Blog</a><a id="mobile-toggle-theme">·&nbsp;Light</a>
</div>
<div class="menu-toggle" onclick="mobileBtn()">&#9776; 菜单</div>
</div>
<div class="menu" id="mobile-menu">
<a class="menu-item" href="/archives">文章</a>
<a class="menu-item" href="/tag">标签</a>
<a class="menu-item" href="/2022/03/01/04.%E6%AC%A2%E8%BF%8E%E5%8F%82%E8%A7%82">关于</a>
</div>
</div>
</nav>
</header>
<script>
var mobileBtn = function f() {
var toggleMenu = document.getElementsByClassName("menu-toggle")[0];
var mobileMenu = document.getElementById("mobile-menu");
if(toggleMenu.classList.contains("active")){
toggleMenu.classList.remove("active")
mobileMenu.classList.remove("active")
}else{
toggleMenu.classList.add("active")
mobileMenu.classList.add("active")
}
}
</script>
<div class="main">
<div class="container">
<div class="post-wrap tags">
<h2 class="post-title">-&nbsp;Tag&nbsp;·&nbsp;Farpush-</h2>
</div>
<div class="post-wrap archive">
<h3>2022</h3>
<article class="archive-item">
<a class="archive-item-link" href="/2022/09/01/07-wechatpush/">使用 Farpush 搭建微信消息推送服务</a>
<span class="archive-item-date">01 九月, 2022</span>
</article>
</div>
</div>
</div>
<footer id="footer" class="footer">
<div class="copyright">
<span>Hubert Chen © 2022 | Powered by <a href="https://hexo.io" target="_blank">Hexo</a> & <a href="https://github.com/Siricee/hexo-theme-Chic" target="_blank">Chic</a></span>
</div>
</footer>
</div>
</body>
</html>

View File

@ -1,153 +0,0 @@
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport"
content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<meta name="author" content="Hubert Chen">
<title>标签: GitHub | Hubert&#39;s Blog</title>
<link rel="icon" href="/favicon.ico">
<!-- stylesheets list from _config.yml -->
<link rel="stylesheet" href="/css/style.css">
<!-- scripts list from _config.yml -->
<script src="/js/script.js"></script>
<script src="/js/tocbot.min.js"></script>
<meta name="generator" content="Hexo 6.2.0"></head>
<body>
<script>
// this function is used to check current theme before page loaded.
(() => {
const currentTheme = window.localStorage && window.localStorage.getItem('theme') || '';
const isDark = currentTheme === 'dark';
const pagebody = document.getElementsByTagName('body')[0]
if (isDark) {
pagebody.classList.add('dark-theme');
// mobile
document.getElementById("mobile-toggle-theme").innerText = "· Dark"
} else {
pagebody.classList.remove('dark-theme');
// mobile
document.getElementById("mobile-toggle-theme").innerText = "· Light"
}
})();
</script>
<div class="wrapper">
<header>
<nav class="navbar">
<div class="container">
<div class="navbar-header header-logo"><a href="/">Hubert&#39;s Blog</a></div>
<div class="menu navbar-right">
<a class="menu-item" href="/archives">文章</a>
<a class="menu-item" href="/tag">标签</a>
<a class="menu-item" href="/about">关于</a>
<input id="switch_default" type="checkbox" class="switch_default">
<label for="switch_default" class="toggleBtn"></label>
</div>
</div>
</nav>
<nav class="navbar-mobile" id="nav-mobile">
<div class="container">
<div class="navbar-header">
<div>
<a href="/">Hubert&#39;s Blog</a><a id="mobile-toggle-theme">·&nbsp;Light</a>
</div>
<div class="menu-toggle" onclick="mobileBtn()">&#9776; 菜单</div>
</div>
<div class="menu" id="mobile-menu">
<a class="menu-item" href="/archives">文章</a>
<a class="menu-item" href="/tag">标签</a>
<a class="menu-item" href="/about">关于</a>
</div>
</div>
</nav>
</header>
<script>
var mobileBtn = function f() {
var toggleMenu = document.getElementsByClassName("menu-toggle")[0];
var mobileMenu = document.getElementById("mobile-menu");
if(toggleMenu.classList.contains("active")){
toggleMenu.classList.remove("active")
mobileMenu.classList.remove("active")
}else{
toggleMenu.classList.add("active")
mobileMenu.classList.add("active")
}
}
</script>
<div class="main">
<div class="container">
<div class="post-wrap tags">
<h2 class="post-title">-&nbsp;Tag&nbsp;·&nbsp;GitHub-</h2>
</div>
<div class="post-wrap archive">
<h3>2022</h3>
<article class="archive-item">
<a class="archive-item-link" href="/2022/03/05/05.%E6%90%AD%E5%BB%BA%E4%B8%80%E4%B8%AA%E8%87%AA%E5%B7%B1%E7%9A%84%E5%8D%9A%E5%AE%A2/">搭建一个自己的博客</a>
<span class="archive-item-date">05 三月, 2022</span>
</article>
</div>
</div>
</div>
<footer id="footer" class="footer">
<div class="copyright">
<span>Hubert Chen © 2022 | Powered by <a href="https://hexo.io" target="_blank">Hexo</a> & <a href="https://github.com/Siricee/hexo-theme-Chic" target="_blank">Chic</a></span>
</div>
</footer>
</div>
</body>
</html>

View File

@ -1,153 +0,0 @@
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport"
content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<meta name="author" content="Hubert Chen">
<title>标签: adb | Hubert&#39;s Blog</title>
<link rel="icon" href="/favicon.ico">
<!-- stylesheets list from _config.yml -->
<link rel="stylesheet" href="/css/style.css">
<!-- scripts list from _config.yml -->
<script src="/js/script.js"></script>
<script src="/js/tocbot.min.js"></script>
<meta name="generator" content="Hexo 6.2.0"></head>
<body>
<script>
// this function is used to check current theme before page loaded.
(() => {
const currentTheme = window.localStorage && window.localStorage.getItem('theme') || '';
const isDark = currentTheme === 'dark';
const pagebody = document.getElementsByTagName('body')[0]
if (isDark) {
pagebody.classList.add('dark-theme');
// mobile
document.getElementById("mobile-toggle-theme").innerText = "· Dark"
} else {
pagebody.classList.remove('dark-theme');
// mobile
document.getElementById("mobile-toggle-theme").innerText = "· Light"
}
})();
</script>
<div class="wrapper">
<header>
<nav class="navbar">
<div class="container">
<div class="navbar-header header-logo"><a href="/">Hubert&#39;s Blog</a></div>
<div class="menu navbar-right">
<a class="menu-item" href="/archives">文章</a>
<a class="menu-item" href="/tag">标签</a>
<a class="menu-item" href="/about">关于</a>
<input id="switch_default" type="checkbox" class="switch_default">
<label for="switch_default" class="toggleBtn"></label>
</div>
</div>
</nav>
<nav class="navbar-mobile" id="nav-mobile">
<div class="container">
<div class="navbar-header">
<div>
<a href="/">Hubert&#39;s Blog</a><a id="mobile-toggle-theme">·&nbsp;Light</a>
</div>
<div class="menu-toggle" onclick="mobileBtn()">&#9776; 菜单</div>
</div>
<div class="menu" id="mobile-menu">
<a class="menu-item" href="/archives">文章</a>
<a class="menu-item" href="/tag">标签</a>
<a class="menu-item" href="/about">关于</a>
</div>
</div>
</nav>
</header>
<script>
var mobileBtn = function f() {
var toggleMenu = document.getElementsByClassName("menu-toggle")[0];
var mobileMenu = document.getElementById("mobile-menu");
if(toggleMenu.classList.contains("active")){
toggleMenu.classList.remove("active")
mobileMenu.classList.remove("active")
}else{
toggleMenu.classList.add("active")
mobileMenu.classList.add("active")
}
}
</script>
<div class="main">
<div class="container">
<div class="post-wrap tags">
<h2 class="post-title">-&nbsp;Tag&nbsp;·&nbsp;adb-</h2>
</div>
<div class="post-wrap archive">
<h3>2022</h3>
<article class="archive-item">
<a class="archive-item-link" href="/2022/05/10/07.phone2adb/">手机使用 ADB 与 Fastboot 给另一台手机执行命令</a>
<span class="archive-item-date">10 五月, 2022</span>
</article>
</div>
</div>
</div>
<footer id="footer" class="footer">
<div class="copyright">
<span>Hubert Chen © 2022 | Powered by <a href="https://hexo.io" target="_blank">Hexo</a> & <a href="https://github.com/Siricee/hexo-theme-Chic" target="_blank">Chic</a></span>
</div>
</footer>
</div>
</body>
</html>

View File

@ -1,166 +0,0 @@
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport"
content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<meta name="author" content="Hubert Chen">
<title>标签 | Hubert&#39;s Blog</title>
<link rel="icon" href="/favicon.ico">
<!-- stylesheets list from _config.yml -->
<link rel="stylesheet" href="/css/style.css">
<!-- scripts list from _config.yml -->
<script src="/js/script.js"></script>
<script src="/js/tocbot.min.js"></script>
<meta name="generator" content="Hexo 6.2.0"></head>
<body>
<script>
// this function is used to check current theme before page loaded.
(() => {
const currentTheme = window.localStorage && window.localStorage.getItem('theme') || '';
const isDark = currentTheme === 'dark';
const pagebody = document.getElementsByTagName('body')[0]
if (isDark) {
pagebody.classList.add('dark-theme');
// mobile
document.getElementById("mobile-toggle-theme").innerText = "· Dark"
} else {
pagebody.classList.remove('dark-theme');
// mobile
document.getElementById("mobile-toggle-theme").innerText = "· Light"
}
})();
</script>
<div class="wrapper">
<header>
<nav class="navbar">
<div class="container">
<div class="navbar-header header-logo"><a href="/">Hubert&#39;s Blog</a></div>
<div class="menu navbar-right">
<a class="menu-item" href="/archives">文章</a>
<a class="menu-item" href="/tag">标签</a>
<a class="menu-item" href="/about">关于</a>
<input id="switch_default" type="checkbox" class="switch_default">
<label for="switch_default" class="toggleBtn"></label>
</div>
</div>
</nav>
<nav class="navbar-mobile" id="nav-mobile">
<div class="container">
<div class="navbar-header">
<div>
<a href="/">Hubert&#39;s Blog</a><a id="mobile-toggle-theme">·&nbsp;Light</a>
</div>
<div class="menu-toggle" onclick="mobileBtn()">&#9776; 菜单</div>
</div>
<div class="menu" id="mobile-menu">
<a class="menu-item" href="/archives">文章</a>
<a class="menu-item" href="/tag">标签</a>
<a class="menu-item" href="/about">关于</a>
</div>
</div>
</nav>
</header>
<script>
var mobileBtn = function f() {
var toggleMenu = document.getElementsByClassName("menu-toggle")[0];
var mobileMenu = document.getElementById("mobile-menu");
if(toggleMenu.classList.contains("active")){
toggleMenu.classList.remove("active")
mobileMenu.classList.remove("active")
}else{
toggleMenu.classList.add("active")
mobileMenu.classList.add("active")
}
}
</script>
<div class="main">
<div class="container">
<div class="post-wrap tags">
<h2 class="post-title">标签</h2>
<div class="tag-cloud-tags">
<a href="/tag/%E6%B5%8B%E8%AF%95/">测试<small>(2)</small></a>
<a href="/tag/%E6%8A%80%E6%9C%AF/">技术<small>(2)</small></a>
<a href="/tag/%E5%8D%9A%E5%AE%A2/">博客<small>(1)</small></a>
<a href="/tag/GitHub/">GitHub<small>(1)</small></a>
<a href="/tag/%E5%9F%9F%E5%90%8D/">域名<small>(1)</small></a>
<a href="/tag/DNS/">DNS<small>(1)</small></a>
<a href="/tag/%E9%97%B2%E8%81%8A/">闲聊<small>(1)</small></a>
<a href="/tag/adb/">adb<small>(1)</small></a>
<a href="/tag/%E6%95%91%E7%A0%96/">救砖<small>(1)</small></a>
<a href="/tag/%E5%88%B7%E6%9C%BA/">刷机<small>(1)</small></a>
<a href="/tag/%E5%BE%AE%E4%BF%A1/">微信<small>(1)</small></a>
<a href="/tag/%E4%BF%A1%E6%81%AF%E6%8E%A8%E9%80%81/">信息推送<small>(1)</small></a>
<a href="/tag/FarPush/">FarPush<small>(1)</small></a>
</div>
</div>
</div>
</div>
<footer id="footer" class="footer">
<div class="copyright">
<span>Hubert Chen © 2022 | Powered by <a href="https://hexo.io" target="_blank">Hexo</a> & <a href="https://github.com/Siricee/hexo-theme-Chic" target="_blank">Chic</a></span>
</div>
</footer>
</div>
</body>
</html>

View File

@ -1,153 +0,0 @@
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport"
content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<meta name="author" content="Hubert Chen">
<title>标签: 信息推送 | Hubert&#39;s Blog</title>
<link rel="icon" href="/favicon.ico">
<!-- stylesheets list from _config.yml -->
<link rel="stylesheet" href="/css/style.css">
<!-- scripts list from _config.yml -->
<script src="/js/script.js"></script>
<script src="/js/tocbot.min.js"></script>
<meta name="generator" content="Hexo 6.2.0"></head>
<body>
<script>
// this function is used to check current theme before page loaded.
(() => {
const currentTheme = window.localStorage && window.localStorage.getItem('theme') || '';
const isDark = currentTheme === 'dark';
const pagebody = document.getElementsByTagName('body')[0]
if (isDark) {
pagebody.classList.add('dark-theme');
// mobile
document.getElementById("mobile-toggle-theme").innerText = "· Dark"
} else {
pagebody.classList.remove('dark-theme');
// mobile
document.getElementById("mobile-toggle-theme").innerText = "· Light"
}
})();
</script>
<div class="wrapper">
<header>
<nav class="navbar">
<div class="container">
<div class="navbar-header header-logo"><a href="/">Hubert&#39;s Blog</a></div>
<div class="menu navbar-right">
<a class="menu-item" href="/archives">文章</a>
<a class="menu-item" href="/tag">标签</a>
<a class="menu-item" href="/about">关于</a>
<input id="switch_default" type="checkbox" class="switch_default">
<label for="switch_default" class="toggleBtn"></label>
</div>
</div>
</nav>
<nav class="navbar-mobile" id="nav-mobile">
<div class="container">
<div class="navbar-header">
<div>
<a href="/">Hubert&#39;s Blog</a><a id="mobile-toggle-theme">·&nbsp;Light</a>
</div>
<div class="menu-toggle" onclick="mobileBtn()">&#9776; 菜单</div>
</div>
<div class="menu" id="mobile-menu">
<a class="menu-item" href="/archives">文章</a>
<a class="menu-item" href="/tag">标签</a>
<a class="menu-item" href="/about">关于</a>
</div>
</div>
</nav>
</header>
<script>
var mobileBtn = function f() {
var toggleMenu = document.getElementsByClassName("menu-toggle")[0];
var mobileMenu = document.getElementById("mobile-menu");
if(toggleMenu.classList.contains("active")){
toggleMenu.classList.remove("active")
mobileMenu.classList.remove("active")
}else{
toggleMenu.classList.add("active")
mobileMenu.classList.add("active")
}
}
</script>
<div class="main">
<div class="container">
<div class="post-wrap tags">
<h2 class="post-title">-&nbsp;Tag&nbsp;·&nbsp;信息推送-</h2>
</div>
<div class="post-wrap archive">
<h3>2022</h3>
<article class="archive-item">
<a class="archive-item-link" href="/2022/09/01/07.wechatpush/">使用 FarPush 搭建微信消息推送服务</a>
<span class="archive-item-date">01 九月, 2022</span>
</article>
</div>
</div>
</div>
<footer id="footer" class="footer">
<div class="copyright">
<span>Hubert Chen © 2022 | Powered by <a href="https://hexo.io" target="_blank">Hexo</a> & <a href="https://github.com/Siricee/hexo-theme-Chic" target="_blank">Chic</a></span>
</div>
</footer>
</div>
</body>
</html>

View File

@ -1,153 +0,0 @@
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport"
content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<meta name="author" content="Hubert Chen">
<title>标签: 刷机 | Hubert&#39;s Blog</title>
<link rel="icon" href="/favicon.ico">
<!-- stylesheets list from _config.yml -->
<link rel="stylesheet" href="/css/style.css">
<!-- scripts list from _config.yml -->
<script src="/js/script.js"></script>
<script src="/js/tocbot.min.js"></script>
<meta name="generator" content="Hexo 6.2.0"></head>
<body>
<script>
// this function is used to check current theme before page loaded.
(() => {
const currentTheme = window.localStorage && window.localStorage.getItem('theme') || '';
const isDark = currentTheme === 'dark';
const pagebody = document.getElementsByTagName('body')[0]
if (isDark) {
pagebody.classList.add('dark-theme');
// mobile
document.getElementById("mobile-toggle-theme").innerText = "· Dark"
} else {
pagebody.classList.remove('dark-theme');
// mobile
document.getElementById("mobile-toggle-theme").innerText = "· Light"
}
})();
</script>
<div class="wrapper">
<header>
<nav class="navbar">
<div class="container">
<div class="navbar-header header-logo"><a href="/">Hubert&#39;s Blog</a></div>
<div class="menu navbar-right">
<a class="menu-item" href="/archives">文章</a>
<a class="menu-item" href="/tag">标签</a>
<a class="menu-item" href="/about">关于</a>
<input id="switch_default" type="checkbox" class="switch_default">
<label for="switch_default" class="toggleBtn"></label>
</div>
</div>
</nav>
<nav class="navbar-mobile" id="nav-mobile">
<div class="container">
<div class="navbar-header">
<div>
<a href="/">Hubert&#39;s Blog</a><a id="mobile-toggle-theme">·&nbsp;Light</a>
</div>
<div class="menu-toggle" onclick="mobileBtn()">&#9776; 菜单</div>
</div>
<div class="menu" id="mobile-menu">
<a class="menu-item" href="/archives">文章</a>
<a class="menu-item" href="/tag">标签</a>
<a class="menu-item" href="/about">关于</a>
</div>
</div>
</nav>
</header>
<script>
var mobileBtn = function f() {
var toggleMenu = document.getElementsByClassName("menu-toggle")[0];
var mobileMenu = document.getElementById("mobile-menu");
if(toggleMenu.classList.contains("active")){
toggleMenu.classList.remove("active")
mobileMenu.classList.remove("active")
}else{
toggleMenu.classList.add("active")
mobileMenu.classList.add("active")
}
}
</script>
<div class="main">
<div class="container">
<div class="post-wrap tags">
<h2 class="post-title">-&nbsp;Tag&nbsp;·&nbsp;刷机-</h2>
</div>
<div class="post-wrap archive">
<h3>2022</h3>
<article class="archive-item">
<a class="archive-item-link" href="/2022/05/10/07.phone2adb/">手机使用 ADB 与 Fastboot 给另一台手机执行命令</a>
<span class="archive-item-date">10 五月, 2022</span>
</article>
</div>
</div>
</div>
<footer id="footer" class="footer">
<div class="copyright">
<span>Hubert Chen © 2022 | Powered by <a href="https://hexo.io" target="_blank">Hexo</a> & <a href="https://github.com/Siricee/hexo-theme-Chic" target="_blank">Chic</a></span>
</div>
</footer>
</div>
</body>
</html>

View File

@ -1,153 +0,0 @@
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport"
content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<meta name="author" content="Hubert Chen">
<title>标签: 博客 | Hubert&#39;s Blog</title>
<link rel="icon" href="/favicon.ico">
<!-- stylesheets list from _config.yml -->
<link rel="stylesheet" href="/css/style.css">
<!-- scripts list from _config.yml -->
<script src="/js/script.js"></script>
<script src="/js/tocbot.min.js"></script>
<meta name="generator" content="Hexo 6.2.0"></head>
<body>
<script>
// this function is used to check current theme before page loaded.
(() => {
const currentTheme = window.localStorage && window.localStorage.getItem('theme') || '';
const isDark = currentTheme === 'dark';
const pagebody = document.getElementsByTagName('body')[0]
if (isDark) {
pagebody.classList.add('dark-theme');
// mobile
document.getElementById("mobile-toggle-theme").innerText = "· Dark"
} else {
pagebody.classList.remove('dark-theme');
// mobile
document.getElementById("mobile-toggle-theme").innerText = "· Light"
}
})();
</script>
<div class="wrapper">
<header>
<nav class="navbar">
<div class="container">
<div class="navbar-header header-logo"><a href="/">Hubert&#39;s Blog</a></div>
<div class="menu navbar-right">
<a class="menu-item" href="/archives">文章</a>
<a class="menu-item" href="/tag">标签</a>
<a class="menu-item" href="/about">关于</a>
<input id="switch_default" type="checkbox" class="switch_default">
<label for="switch_default" class="toggleBtn"></label>
</div>
</div>
</nav>
<nav class="navbar-mobile" id="nav-mobile">
<div class="container">
<div class="navbar-header">
<div>
<a href="/">Hubert&#39;s Blog</a><a id="mobile-toggle-theme">·&nbsp;Light</a>
</div>
<div class="menu-toggle" onclick="mobileBtn()">&#9776; 菜单</div>
</div>
<div class="menu" id="mobile-menu">
<a class="menu-item" href="/archives">文章</a>
<a class="menu-item" href="/tag">标签</a>
<a class="menu-item" href="/about">关于</a>
</div>
</div>
</nav>
</header>
<script>
var mobileBtn = function f() {
var toggleMenu = document.getElementsByClassName("menu-toggle")[0];
var mobileMenu = document.getElementById("mobile-menu");
if(toggleMenu.classList.contains("active")){
toggleMenu.classList.remove("active")
mobileMenu.classList.remove("active")
}else{
toggleMenu.classList.add("active")
mobileMenu.classList.add("active")
}
}
</script>
<div class="main">
<div class="container">
<div class="post-wrap tags">
<h2 class="post-title">-&nbsp;Tag&nbsp;·&nbsp;博客-</h2>
</div>
<div class="post-wrap archive">
<h3>2022</h3>
<article class="archive-item">
<a class="archive-item-link" href="/2022/03/05/05.%E6%90%AD%E5%BB%BA%E4%B8%80%E4%B8%AA%E8%87%AA%E5%B7%B1%E7%9A%84%E5%8D%9A%E5%AE%A2/">搭建一个自己的博客</a>
<span class="archive-item-date">05 三月, 2022</span>
</article>
</div>
</div>
</div>
<footer id="footer" class="footer">
<div class="copyright">
<span>Hubert Chen © 2022 | Powered by <a href="https://hexo.io" target="_blank">Hexo</a> & <a href="https://github.com/Siricee/hexo-theme-Chic" target="_blank">Chic</a></span>
</div>
</footer>
</div>
</body>
</html>

View File

@ -1,153 +0,0 @@
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport"
content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<meta name="author" content="Hubert Chen">
<title>标签: 域名 | Hubert&#39;s Blog</title>
<link rel="icon" href="/favicon.ico">
<!-- stylesheets list from _config.yml -->
<link rel="stylesheet" href="/css/style.css">
<!-- scripts list from _config.yml -->
<script src="/js/script.js"></script>
<script src="/js/tocbot.min.js"></script>
<meta name="generator" content="Hexo 6.2.0"></head>
<body>
<script>
// this function is used to check current theme before page loaded.
(() => {
const currentTheme = window.localStorage && window.localStorage.getItem('theme') || '';
const isDark = currentTheme === 'dark';
const pagebody = document.getElementsByTagName('body')[0]
if (isDark) {
pagebody.classList.add('dark-theme');
// mobile
document.getElementById("mobile-toggle-theme").innerText = "· Dark"
} else {
pagebody.classList.remove('dark-theme');
// mobile
document.getElementById("mobile-toggle-theme").innerText = "· Light"
}
})();
</script>
<div class="wrapper">
<header>
<nav class="navbar">
<div class="container">
<div class="navbar-header header-logo"><a href="/">Hubert&#39;s Blog</a></div>
<div class="menu navbar-right">
<a class="menu-item" href="/archives">文章</a>
<a class="menu-item" href="/tag">标签</a>
<a class="menu-item" href="/about">关于</a>
<input id="switch_default" type="checkbox" class="switch_default">
<label for="switch_default" class="toggleBtn"></label>
</div>
</div>
</nav>
<nav class="navbar-mobile" id="nav-mobile">
<div class="container">
<div class="navbar-header">
<div>
<a href="/">Hubert&#39;s Blog</a><a id="mobile-toggle-theme">·&nbsp;Light</a>
</div>
<div class="menu-toggle" onclick="mobileBtn()">&#9776; 菜单</div>
</div>
<div class="menu" id="mobile-menu">
<a class="menu-item" href="/archives">文章</a>
<a class="menu-item" href="/tag">标签</a>
<a class="menu-item" href="/about">关于</a>
</div>
</div>
</nav>
</header>
<script>
var mobileBtn = function f() {
var toggleMenu = document.getElementsByClassName("menu-toggle")[0];
var mobileMenu = document.getElementById("mobile-menu");
if(toggleMenu.classList.contains("active")){
toggleMenu.classList.remove("active")
mobileMenu.classList.remove("active")
}else{
toggleMenu.classList.add("active")
mobileMenu.classList.add("active")
}
}
</script>
<div class="main">
<div class="container">
<div class="post-wrap tags">
<h2 class="post-title">-&nbsp;Tag&nbsp;·&nbsp;域名-</h2>
</div>
<div class="post-wrap archive">
<h3>2022</h3>
<article class="archive-item">
<a class="archive-item-link" href="/2022/03/05/05.%E6%90%AD%E5%BB%BA%E4%B8%80%E4%B8%AA%E8%87%AA%E5%B7%B1%E7%9A%84%E5%8D%9A%E5%AE%A2/">搭建一个自己的博客</a>
<span class="archive-item-date">05 三月, 2022</span>
</article>
</div>
</div>
</div>
<footer id="footer" class="footer">
<div class="copyright">
<span>Hubert Chen © 2022 | Powered by <a href="https://hexo.io" target="_blank">Hexo</a> & <a href="https://github.com/Siricee/hexo-theme-Chic" target="_blank">Chic</a></span>
</div>
</footer>
</div>
</body>
</html>

View File

@ -1,153 +0,0 @@
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport"
content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<meta name="author" content="Hubert Chen">
<title>标签: 微信 | Hubert&#39;s Blog</title>
<link rel="icon" href="/favicon.ico">
<!-- stylesheets list from _config.yml -->
<link rel="stylesheet" href="/css/style.css">
<!-- scripts list from _config.yml -->
<script src="/js/script.js"></script>
<script src="/js/tocbot.min.js"></script>
<meta name="generator" content="Hexo 6.2.0"></head>
<body>
<script>
// this function is used to check current theme before page loaded.
(() => {
const currentTheme = window.localStorage && window.localStorage.getItem('theme') || '';
const isDark = currentTheme === 'dark';
const pagebody = document.getElementsByTagName('body')[0]
if (isDark) {
pagebody.classList.add('dark-theme');
// mobile
document.getElementById("mobile-toggle-theme").innerText = "· Dark"
} else {
pagebody.classList.remove('dark-theme');
// mobile
document.getElementById("mobile-toggle-theme").innerText = "· Light"
}
})();
</script>
<div class="wrapper">
<header>
<nav class="navbar">
<div class="container">
<div class="navbar-header header-logo"><a href="/">Hubert&#39;s Blog</a></div>
<div class="menu navbar-right">
<a class="menu-item" href="/archives">文章</a>
<a class="menu-item" href="/tag">标签</a>
<a class="menu-item" href="/about">关于</a>
<input id="switch_default" type="checkbox" class="switch_default">
<label for="switch_default" class="toggleBtn"></label>
</div>
</div>
</nav>
<nav class="navbar-mobile" id="nav-mobile">
<div class="container">
<div class="navbar-header">
<div>
<a href="/">Hubert&#39;s Blog</a><a id="mobile-toggle-theme">·&nbsp;Light</a>
</div>
<div class="menu-toggle" onclick="mobileBtn()">&#9776; 菜单</div>
</div>
<div class="menu" id="mobile-menu">
<a class="menu-item" href="/archives">文章</a>
<a class="menu-item" href="/tag">标签</a>
<a class="menu-item" href="/about">关于</a>
</div>
</div>
</nav>
</header>
<script>
var mobileBtn = function f() {
var toggleMenu = document.getElementsByClassName("menu-toggle")[0];
var mobileMenu = document.getElementById("mobile-menu");
if(toggleMenu.classList.contains("active")){
toggleMenu.classList.remove("active")
mobileMenu.classList.remove("active")
}else{
toggleMenu.classList.add("active")
mobileMenu.classList.add("active")
}
}
</script>
<div class="main">
<div class="container">
<div class="post-wrap tags">
<h2 class="post-title">-&nbsp;Tag&nbsp;·&nbsp;微信-</h2>
</div>
<div class="post-wrap archive">
<h3>2022</h3>
<article class="archive-item">
<a class="archive-item-link" href="/2022/09/01/07.wechatpush/">使用 FarPush 搭建微信消息推送服务</a>
<span class="archive-item-date">01 九月, 2022</span>
</article>
</div>
</div>
</div>
<footer id="footer" class="footer">
<div class="copyright">
<span>Hubert Chen © 2022 | Powered by <a href="https://hexo.io" target="_blank">Hexo</a> & <a href="https://github.com/Siricee/hexo-theme-Chic" target="_blank">Chic</a></span>
</div>
</footer>
</div>
</body>
</html>

View File

@ -1,162 +0,0 @@
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport"
content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<meta name="author" content="Hubert Chen">
<title>标签: 技术 | Hubert&#39;s Blog</title>
<link rel="icon" href="/favicon.ico">
<!-- stylesheets list from _config.yml -->
<link rel="stylesheet" href="/css/style.css">
<!-- scripts list from _config.yml -->
<script src="/js/script.js"></script>
<script src="/js/tocbot.min.js"></script>
<meta name="generator" content="Hexo 6.2.0"></head>
<body>
<script>
// this function is used to check current theme before page loaded.
(() => {
const currentTheme = window.localStorage && window.localStorage.getItem('theme') || '';
const isDark = currentTheme === 'dark';
const pagebody = document.getElementsByTagName('body')[0]
if (isDark) {
pagebody.classList.add('dark-theme');
// mobile
document.getElementById("mobile-toggle-theme").innerText = "· Dark"
} else {
pagebody.classList.remove('dark-theme');
// mobile
document.getElementById("mobile-toggle-theme").innerText = "· Light"
}
})();
</script>
<div class="wrapper">
<header>
<nav class="navbar">
<div class="container">
<div class="navbar-header header-logo"><a href="/">Hubert&#39;s Blog</a></div>
<div class="menu navbar-right">
<a class="menu-item" href="/archives">文章</a>
<a class="menu-item" href="/tag">标签</a>
<a class="menu-item" href="/about">关于</a>
<input id="switch_default" type="checkbox" class="switch_default">
<label for="switch_default" class="toggleBtn"></label>
</div>
</div>
</nav>
<nav class="navbar-mobile" id="nav-mobile">
<div class="container">
<div class="navbar-header">
<div>
<a href="/">Hubert&#39;s Blog</a><a id="mobile-toggle-theme">·&nbsp;Light</a>
</div>
<div class="menu-toggle" onclick="mobileBtn()">&#9776; 菜单</div>
</div>
<div class="menu" id="mobile-menu">
<a class="menu-item" href="/archives">文章</a>
<a class="menu-item" href="/tag">标签</a>
<a class="menu-item" href="/about">关于</a>
</div>
</div>
</nav>
</header>
<script>
var mobileBtn = function f() {
var toggleMenu = document.getElementsByClassName("menu-toggle")[0];
var mobileMenu = document.getElementById("mobile-menu");
if(toggleMenu.classList.contains("active")){
toggleMenu.classList.remove("active")
mobileMenu.classList.remove("active")
}else{
toggleMenu.classList.add("active")
mobileMenu.classList.add("active")
}
}
</script>
<div class="main">
<div class="container">
<div class="post-wrap tags">
<h2 class="post-title">-&nbsp;Tag&nbsp;·&nbsp;技术-</h2>
</div>
<div class="post-wrap archive">
<h3>2022</h3>
<article class="archive-item">
<a class="archive-item-link" href="/2022/05/10/07.phone2adb/">手机使用 ADB 与 Fastboot 给另一台手机执行命令</a>
<span class="archive-item-date">10 五月, 2022</span>
</article>
<article class="archive-item">
<a class="archive-item-link" href="/2022/03/05/05.%E6%90%AD%E5%BB%BA%E4%B8%80%E4%B8%AA%E8%87%AA%E5%B7%B1%E7%9A%84%E5%8D%9A%E5%AE%A2/">搭建一个自己的博客</a>
<span class="archive-item-date">05 三月, 2022</span>
</article>
</div>
</div>
</div>
<footer id="footer" class="footer">
<div class="copyright">
<span>Hubert Chen © 2022 | Powered by <a href="https://hexo.io" target="_blank">Hexo</a> & <a href="https://github.com/Siricee/hexo-theme-Chic" target="_blank">Chic</a></span>
</div>
</footer>
</div>
</body>
</html>

View File

@ -1,153 +0,0 @@
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport"
content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<meta name="author" content="Hubert Chen">
<title>标签: 救砖 | Hubert&#39;s Blog</title>
<link rel="icon" href="/favicon.ico">
<!-- stylesheets list from _config.yml -->
<link rel="stylesheet" href="/css/style.css">
<!-- scripts list from _config.yml -->
<script src="/js/script.js"></script>
<script src="/js/tocbot.min.js"></script>
<meta name="generator" content="Hexo 6.2.0"></head>
<body>
<script>
// this function is used to check current theme before page loaded.
(() => {
const currentTheme = window.localStorage && window.localStorage.getItem('theme') || '';
const isDark = currentTheme === 'dark';
const pagebody = document.getElementsByTagName('body')[0]
if (isDark) {
pagebody.classList.add('dark-theme');
// mobile
document.getElementById("mobile-toggle-theme").innerText = "· Dark"
} else {
pagebody.classList.remove('dark-theme');
// mobile
document.getElementById("mobile-toggle-theme").innerText = "· Light"
}
})();
</script>
<div class="wrapper">
<header>
<nav class="navbar">
<div class="container">
<div class="navbar-header header-logo"><a href="/">Hubert&#39;s Blog</a></div>
<div class="menu navbar-right">
<a class="menu-item" href="/archives">文章</a>
<a class="menu-item" href="/tag">标签</a>
<a class="menu-item" href="/about">关于</a>
<input id="switch_default" type="checkbox" class="switch_default">
<label for="switch_default" class="toggleBtn"></label>
</div>
</div>
</nav>
<nav class="navbar-mobile" id="nav-mobile">
<div class="container">
<div class="navbar-header">
<div>
<a href="/">Hubert&#39;s Blog</a><a id="mobile-toggle-theme">·&nbsp;Light</a>
</div>
<div class="menu-toggle" onclick="mobileBtn()">&#9776; 菜单</div>
</div>
<div class="menu" id="mobile-menu">
<a class="menu-item" href="/archives">文章</a>
<a class="menu-item" href="/tag">标签</a>
<a class="menu-item" href="/about">关于</a>
</div>
</div>
</nav>
</header>
<script>
var mobileBtn = function f() {
var toggleMenu = document.getElementsByClassName("menu-toggle")[0];
var mobileMenu = document.getElementById("mobile-menu");
if(toggleMenu.classList.contains("active")){
toggleMenu.classList.remove("active")
mobileMenu.classList.remove("active")
}else{
toggleMenu.classList.add("active")
mobileMenu.classList.add("active")
}
}
</script>
<div class="main">
<div class="container">
<div class="post-wrap tags">
<h2 class="post-title">-&nbsp;Tag&nbsp;·&nbsp;救砖-</h2>
</div>
<div class="post-wrap archive">
<h3>2022</h3>
<article class="archive-item">
<a class="archive-item-link" href="/2022/05/10/07.phone2adb/">手机使用 ADB 与 Fastboot 给另一台手机执行命令</a>
<span class="archive-item-date">10 五月, 2022</span>
</article>
</div>
</div>
</div>
<footer id="footer" class="footer">
<div class="copyright">
<span>Hubert Chen © 2022 | Powered by <a href="https://hexo.io" target="_blank">Hexo</a> & <a href="https://github.com/Siricee/hexo-theme-Chic" target="_blank">Chic</a></span>
</div>
</footer>
</div>
</body>
</html>

View File

@ -1,162 +0,0 @@
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport"
content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<meta name="author" content="Hubert Chen">
<title>标签: 测试 | Hubert&#39;s Blog</title>
<link rel="icon" href="/favicon.ico">
<!-- stylesheets list from _config.yml -->
<link rel="stylesheet" href="/css/style.css">
<!-- scripts list from _config.yml -->
<script src="/js/script.js"></script>
<script src="/js/tocbot.min.js"></script>
<meta name="generator" content="Hexo 6.2.0"></head>
<body>
<script>
// this function is used to check current theme before page loaded.
(() => {
const currentTheme = window.localStorage && window.localStorage.getItem('theme') || '';
const isDark = currentTheme === 'dark';
const pagebody = document.getElementsByTagName('body')[0]
if (isDark) {
pagebody.classList.add('dark-theme');
// mobile
document.getElementById("mobile-toggle-theme").innerText = "· Dark"
} else {
pagebody.classList.remove('dark-theme');
// mobile
document.getElementById("mobile-toggle-theme").innerText = "· Light"
}
})();
</script>
<div class="wrapper">
<header>
<nav class="navbar">
<div class="container">
<div class="navbar-header header-logo"><a href="/">Hubert&#39;s Blog</a></div>
<div class="menu navbar-right">
<a class="menu-item" href="/archives">文章</a>
<a class="menu-item" href="/tag">标签</a>
<a class="menu-item" href="/about">关于</a>
<input id="switch_default" type="checkbox" class="switch_default">
<label for="switch_default" class="toggleBtn"></label>
</div>
</div>
</nav>
<nav class="navbar-mobile" id="nav-mobile">
<div class="container">
<div class="navbar-header">
<div>
<a href="/">Hubert&#39;s Blog</a><a id="mobile-toggle-theme">·&nbsp;Light</a>
</div>
<div class="menu-toggle" onclick="mobileBtn()">&#9776; 菜单</div>
</div>
<div class="menu" id="mobile-menu">
<a class="menu-item" href="/archives">文章</a>
<a class="menu-item" href="/tag">标签</a>
<a class="menu-item" href="/about">关于</a>
</div>
</div>
</nav>
</header>
<script>
var mobileBtn = function f() {
var toggleMenu = document.getElementsByClassName("menu-toggle")[0];
var mobileMenu = document.getElementById("mobile-menu");
if(toggleMenu.classList.contains("active")){
toggleMenu.classList.remove("active")
mobileMenu.classList.remove("active")
}else{
toggleMenu.classList.add("active")
mobileMenu.classList.add("active")
}
}
</script>
<div class="main">
<div class="container">
<div class="post-wrap tags">
<h2 class="post-title">-&nbsp;Tag&nbsp;·&nbsp;测试-</h2>
</div>
<div class="post-wrap archive">
<h3>2022</h3>
<article class="archive-item">
<a class="archive-item-link" href="/2022/01/26/03.testagain/">testagain</a>
<span class="archive-item-date">26 一月, 2022</span>
</article>
<article class="archive-item">
<a class="archive-item-link" href="/2022/01/26/02.pages/">这是一个测试页面</a>
<span class="archive-item-date">26 一月, 2022</span>
</article>
</div>
</div>
</div>
<footer id="footer" class="footer">
<div class="copyright">
<span>Hubert Chen © 2022 | Powered by <a href="https://hexo.io" target="_blank">Hexo</a> & <a href="https://github.com/Siricee/hexo-theme-Chic" target="_blank">Chic</a></span>
</div>
</footer>
</div>
</body>
</html>

View File

@ -1,153 +0,0 @@
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport"
content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<meta name="author" content="Hubert Chen">
<title>标签: 闲聊 | Hubert&#39;s Blog</title>
<link rel="icon" href="/favicon.ico">
<!-- stylesheets list from _config.yml -->
<link rel="stylesheet" href="/css/style.css">
<!-- scripts list from _config.yml -->
<script src="/js/script.js"></script>
<script src="/js/tocbot.min.js"></script>
<meta name="generator" content="Hexo 6.2.0"></head>
<body>
<script>
// this function is used to check current theme before page loaded.
(() => {
const currentTheme = window.localStorage && window.localStorage.getItem('theme') || '';
const isDark = currentTheme === 'dark';
const pagebody = document.getElementsByTagName('body')[0]
if (isDark) {
pagebody.classList.add('dark-theme');
// mobile
document.getElementById("mobile-toggle-theme").innerText = "· Dark"
} else {
pagebody.classList.remove('dark-theme');
// mobile
document.getElementById("mobile-toggle-theme").innerText = "· Light"
}
})();
</script>
<div class="wrapper">
<header>
<nav class="navbar">
<div class="container">
<div class="navbar-header header-logo"><a href="/">Hubert&#39;s Blog</a></div>
<div class="menu navbar-right">
<a class="menu-item" href="/archives">文章</a>
<a class="menu-item" href="/tag">标签</a>
<a class="menu-item" href="/about">关于</a>
<input id="switch_default" type="checkbox" class="switch_default">
<label for="switch_default" class="toggleBtn"></label>
</div>
</div>
</nav>
<nav class="navbar-mobile" id="nav-mobile">
<div class="container">
<div class="navbar-header">
<div>
<a href="/">Hubert&#39;s Blog</a><a id="mobile-toggle-theme">·&nbsp;Light</a>
</div>
<div class="menu-toggle" onclick="mobileBtn()">&#9776; 菜单</div>
</div>
<div class="menu" id="mobile-menu">
<a class="menu-item" href="/archives">文章</a>
<a class="menu-item" href="/tag">标签</a>
<a class="menu-item" href="/about">关于</a>
</div>
</div>
</nav>
</header>
<script>
var mobileBtn = function f() {
var toggleMenu = document.getElementsByClassName("menu-toggle")[0];
var mobileMenu = document.getElementById("mobile-menu");
if(toggleMenu.classList.contains("active")){
toggleMenu.classList.remove("active")
mobileMenu.classList.remove("active")
}else{
toggleMenu.classList.add("active")
mobileMenu.classList.add("active")
}
}
</script>
<div class="main">
<div class="container">
<div class="post-wrap tags">
<h2 class="post-title">-&nbsp;Tag&nbsp;·&nbsp;闲聊-</h2>
</div>
<div class="post-wrap archive">
<h3>2022</h3>
<article class="archive-item">
<a class="archive-item-link" href="/2022/04/07/06.Page4/">闲谈杂聊</a>
<span class="archive-item-date">07 四月, 2022</span>
</article>
</div>
</div>
</div>
<footer id="footer" class="footer">
<div class="copyright">
<span>Hubert Chen © 2022 | Powered by <a href="https://hexo.io" target="_blank">Hexo</a> & <a href="https://github.com/Siricee/hexo-theme-Chic" target="_blank">Chic</a></span>
</div>
</footer>
</div>
</body>
</html>

View File

@ -1,4 +0,0 @@
---
title: {{ title }}
tags:
---

View File

@ -1,4 +0,0 @@
---
title: {{ title }}
date: {{ date }}
---

View File

@ -1,5 +0,0 @@
---
title: {{ title }}
date: {{ date }}
tags:
---

View File

@ -1,39 +0,0 @@
---
title: Hello World
date: 2022-01-24 00:00:00
---
Welcome to [Hexo](https://hexo.io/)! This is your very first post. Check [documentation](https://hexo.io/docs/) for more info. If you get any problems when using Hexo, you can find the answer in [troubleshooting](https://hexo.io/docs/troubleshooting.html) or you can ask me on [GitHub](https://github.com/hexojs/hexo/issues).
## Quick Start
### Create a new post
``` bash
$ hexo new "My New Post"
```
More info: [Writing](https://hexo.io/docs/writing.html)
### Run server
``` bash
$ hexo server
```
More info: [Server](https://hexo.io/docs/server.html)
### Generate static files
``` bash
$ hexo generate
```
More info: [Generating](https://hexo.io/docs/generating.html)
### Deploy to remote sites
``` bash
$ hexo deploy
```
More info: [Deployment](https://hexo.io/docs/one-command-deployment.html)

View File

@ -1,6 +0,0 @@
---
title: testagain
date: 2022-01-26 23:40:35
tags: 测试
---
<iframe border="0" marginwidth="0" marginheight="0" src="//music.163.com/outchain/player?type=2&amp;id=1300697588&amp;auto=0&amp;height=66" width="330" height="86" frameborder="no"></iframe>

View File

@ -1,57 +0,0 @@
---
title: 欢迎参观
date: 2022-03-01 11:42:55
tags:
---
## 你好,欢迎来到我的博客
这个博客由我创建于2022年01月24日起初是想跟网络上的大佬一样搭个自己的博客不过现在搭好了也不知道写些什么。
## 关于我 (Hubert Chen)
### 兴趣爱好
给手机刷系统,例如 [Lineage OS](https://lineageos.org/) [Sailfish OS](https://sailfishos.org/)
会些基础的Linux操作~~不过十分容易碰见bug~~
会画画 (非常非常基础,目前只会描些图)
听音乐使用的软件: [Spotify](https://spotify.com/) [网易云音乐](https://music.163.com/) 偶尔会在网易云音乐里上传一些歌词
玩游戏会用的软件: [Steam](https://store.steampowered.com/) [Ubisoft](https://www.ubisoft.com/) [Xbox(云游戏)](https://www.xbox.com/)
活跃的社交平台:[Telegram](https://t.me/trle5) [Twitter](https://twitter.com/interstellar750) [GitHub](https://github.com/Interstellar750/) [Matrix](https://matrix.io/#/@trle5:matrix.org ) 国内的QQ微信也在用但并不太喜欢而且放出来可能会泄露个人信息所以就不公开了
## 建站历程:
### 2022/01/24
初次建立并使用 [GitHub Pages](https://github.io) 来作为服务器 其实并不是第一次前前后后试了好几次因为碰到了好多bug
### 2022/01/29
在 [Freenom](freenom.com) 上申请了12个月的免费域名 trle5.tk 但由于不会设置DNS解析依然用着 [GitHub Pages](https://github.io) 的默认域名
### 2022/02/26
由于 x10m2 上的 [Sailfish OS](https://sailfishos.org/) 因为未知问题操作很卡,把 hexo 后端备份出来迁移到了s10e使用 [Termux](https://play.google.com/store/apps/details?id=com.termux) 来继续运维
### 2022/02/27
将域名 DNS 解析托管到 [GoDaddy](godaddy.com) ,成功用上了自定义域名
### 2022/03/08
在 [reg.ru](https://reg.ru) 购买了一年的 [trle5.xyz](https://trle5.xyz/) 域名,用于存放文件,本站可能有一些图片文件会储存在里面
### 2022/03/14
更换为由 [Freenom](freenom.com) 提供的 DNS 解析
### 2022/03/15
把 blackbox 的域名从 [trle5.xyz](https://trle5.xyz/) 迁移到 [t5d.trle5.tk](https://t5d.trle5.tk/)
### 2022/05/07
从默认的 Landscape 主题更换为 [Siricee](https://github.com/Siricee) 制作的 [Chic](https://github.com/Siricee/hexo-theme-Chic) 主题
### 2022/05/08
使用 [Vercel](https://vercel.com/) 建立了博客镜像站,使用域名 [trle5.xyz](https://trle5.xyz) DNS 解析由 [Cloudflare](https://cloudflare.com/) 提供
### 2022/06/01
重新配置了博客主题,因为 05/15 那天手机数据丢失让博客后端也部分丢失了 (真的丢了好多东西啊😢)
### 2022/07/19
重新修正了一篇文章,之前写的文章发现达不到所想的方案所以就暂搁了 ~~**懒**~~ 由于之前的丢数据问题Cloudflare 账号也登不上了,找回有点麻烦
### 2022/09/11
给 Cloudflare 客服发邮件,成功拿回了账号的控制权,目前 [trle5.xyz](https://trle5.xyz) 站点会随时更新,就是代表上面可能会有一些没写完的文章和新东西,文章写完后再推送至 [trle5.tk](https://trle5.tk),于 6 月 4 日在 [Porkbun](https://porkbun.com) 白嫖的 [trle5.dev](https://trle5.dev) 域名还没打算好用来干嘛,两个付费域名以我现在的经济能力压力有点大

View File

@ -1,5 +0,0 @@
---
title: 标签
date: 2022-05-08 03:27:39
layout: tag
---

88
src/app.d.ts vendored Normal file
View File

@ -0,0 +1,88 @@
/// <reference types="@sveltejs/kit" />
import { FFFBase, FFFExtra } from 'fff-flavored-frontmatter'
interface ImportMetaEnv extends Readonly<Record<string, string>> {
readonly URARA_SITE_DOMAIN?: string
}
interface ImportMeta {
glob<Module = { [key: string]: unknown }>(pattern: string): Record<string, Module>
readonly env: ImportMetaEnv
}
declare global {
namespace Urara {
namespace Post {
type Frontmatter = Omit<FFFBase, 'created' | 'updated' | 'image' | 'audio' | 'video' | 'flags'> &
Pick<FFFExtra, 'in_reply_to'> & {
/**
* post type.
* @remarks auto-generated
*/
type: 'article' | 'note' | 'photo' | 'reply' | 'audio' | 'video' | 'like' | 'repost' | 'bookmark'
/**
* post layout.
*/
layout?: 'article' | 'note' | 'photo' | 'reply'
/**
* post path.
* @remarks auto-generated
*/
path: string
/**
* post slug.
* @remarks auto-generated
*/
slug: string
/**
* table of contents.
* @remarks auto-generated, article-only, set to `false` to disable
*/
toc?: false | Toc[]
/**
* the created date of the post.
* @remarks auto-generated or set manually
*/
created: string
/**
* the updated date of the post.
* @remarks auto-generated or set manually
*/
updated: string
/**
* the featured image for article, or image for "photo" / "multi-photo" posts.
* @remarks currently only supports string
*/
image?: string
/** enable some advanced features.
* @property hidden - deprecated, transfer to `unlisted`
* @property unlisted - hide this post from the homepage and feed.
* @property bridgy-fed - add a link to Bridgy Fed in the post. https://fed.brid.gy/
* @property bridgy-{target} - add a link to Bridgy in the post. https://brid.gy/publish/{target}
*/
flags?: string[]
}
type Toc = {
depth: number
title?: string
slug?: string
children?: Toc[]
}
interface Module {
default: {
render: () => {
html: string
head: string
css: {
code: string
}
}
}
metadata: Frontmatter
}
}
type Post = Post.Frontmatter & { html?: string }
type Page = { title?: string; path: string }
}
}

16
src/app.html Normal file
View File

@ -0,0 +1,16 @@
<!DOCTYPE html>
<html lang="en">
<head prefix="og: https://ogp.me/ns#">
<meta charset="utf-8" />
<meta name="generator" content="gh:importantimport/urara" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<link rel="manifest" crossorigin="use-credentials" href="/manifest.webmanifest" />
<link rel="alternate" type="application/feed+json" href="/feed.json" />
<link rel="alternate" type="application/atom+xml" href="/atom.xml" />
<link rel="sitemap" type="application/xml" href="/sitemap.xml" />
%sveltekit.head%
</head>
<body itemscope itemtype="https://schema.org/WebPage">
%sveltekit.body%
</body>
</html>

181
src/app.pcss Normal file
View File

@ -0,0 +1,181 @@
/* tailwind */
@tailwind base;
@tailwind components;
@tailwind utilities;
/* global */
html {
@apply !bg-base-200 scroll-smooth overflow-x-hidden overflow-y-scroll;
}
::selection {
@apply bg-primary/20;
}
/* .urara-prose */
.urara-prose {
@apply !max-w-none;
}
/* .urara-prose heading */
.urara-prose > :is(h1, h2, h3, h4, h5) > a {
@apply no-underline font-bold;
}
.urara-prose > :is(h1, h2, h3, h4, h5) > a::after {
@apply pl-2 text-base-200 transition-all content-['#'];
}
.urara-prose > :is(h1, h2, h3, h4, h5):hover > a::after {
@apply text-primary;
}
/* .urara-prose list */
.urara-prose > ul > li > input {
@apply my-auto;
}
/* .urara-prose table */
.urara-prose div > table > thead {
@apply border-0;
}
.urara-prose div > table > thead > tr > th {
@apply !relative;
}
/* .urara-prose a */
.urara-prose :is(p, li) > a {
@apply bg-[length:100%_0.2em] hover:bg-[length:100%_100%] bg-[position:0_88%] bg-gradient-to-t from-secondary/50 to-secondary/40 bg-no-repeat transition-all ease-in-out !no-underline;
}
/* .urara-prose misc */
.urara-prose > p img {
@apply w-full;
}
.urara-prose :is(p, li) > code {
@apply bg-base-200 px-2;
}
.urara-prose li > input {
@apply checkbox checkbox-xs;
}
.urara-prose kbd {
@apply kbd;
}
.urara-prose hr {
@apply border-none divider;
}
/* footer a */
footer a {
@apply !no-underline hover:text-primary hover:!underline transition-all;
}
.spoiler {
@apply blur-sm hover:blur-none active:blur-none transition-all select-all;
}
/* .prose pre */
.prose pre {
@apply mockup-code !bg-neutral min-w-0;
}
.prose pre:not(.shiki) {
@apply bg-neutral text-neutral-content;
}
.prose pre:not(.shiki)::before {
@apply sticky -left-5 -ml-5;
}
/* .urara-prose pre */
@media (max-width: 768px) {
.urara-prose > pre {
@apply -mx-8 rounded-none;
}
}
.urara-prose > pre {
@apply pb-0;
}
.urara-prose > pre > div.code-container {
@apply pb-5 overflow-x-auto;
}
/* shiki */
pre.shiki {
@apply px-0;
}
pre.shiki::before {
@apply sticky;
}
pre.shiki > div.code-title {
@apply absolute -mt-10 ml-20 pt-1.5 pl-1.5 opacity-50;
}
pre.shiki .language-id {
@apply hidden;
}
pre.shiki > .code-container {
@apply overflow-auto;
}
:is(pre.shiki[text='true'], pre.shiki[svelte='true']) > div.code-container {
@apply mx-5;
}
pre.shiki:not([text='true'], [svelte='true']) > .code-container > code > div.line > span:first-child {
@apply pl-5;
}
pre.shiki:not([text='true'], [svelte='true']) > .code-container > code > div.line > span:last-child {
@apply pr-5;
}
pre.shiki div.dim {
@apply opacity-50 transition-opacity;
}
pre.shiki:hover div.dim {
@apply opacity-100;
}
pre.shiki div.highlight::before {
@apply bg-warning/20 absolute content-[''] w-full h-6;
}
pre.twoslash data-lsp {
@apply border-b border-dashed border-transparent transition-all;
}
pre.twoslash:hover data-lsp {
@apply border-neutral-content/30;
}
pre.twoslash data-lsp:hover::before {
@apply content-[attr(lsp)] absolute rounded translate-y-5 bg-neutral-focus text-neutral-content font-mono whitespace-pre-wrap transition-all px-2 py-1 z-50;
}
/* your code here */

7
src/hooks.server.ts Normal file
View File

@ -0,0 +1,7 @@
import type { Handle } from '@sveltejs/kit'
import { site } from '$lib/config/site'
export const handle: Handle = async ({ event, resolve }) =>
await resolve(event, {
transformPageChunk: ({ html }) => html.replace('<html lang="zh-CN">', `<html lang="${site.lang ?? 'zh-CN'}">`)
})

View File

@ -0,0 +1,40 @@
<script lang="ts">
import { onMount } from 'svelte'
import { site } from '$lib/config/site'
import type { GiscusConfig } from '$lib/types/post'
export let config: GiscusConfig
onMount(() => {
const giscus = document.createElement('script')
Object.entries({
src: config.src ?? 'https://giscus.app/client.js',
'data-repo': config.repo,
'data-repo-id': config.repoID,
'data-category': config.category ?? '',
'data-category-id': config.categoryID,
'data-mapping': 'pathname',
'data-reactions-enabled': config.reactionsEnabled === false ? '0' : '1',
'data-input-position': config.inputPosition ?? 'bottom',
'data-theme': config.theme ?? 'preferred_color_scheme',
'data-lang': config.lang ?? site.lang ?? 'en',
'data-loading': config.loading ?? '',
crossorigin: 'anonymous',
async: ''
}).forEach(([key, value]) => giscus.setAttribute(key, value))
setTimeout(() => {
const observer = new MutationObserver(() => {
document.getElementById('giscus-loading')!.remove()
observer.disconnect()
})
observer.observe(document.getElementById('giscus')!, {
childList: true
})
document.getElementById('giscus-container')!.appendChild(giscus)
}, 1000)
})
</script>
<div id="giscus-container">
<button id="giscus-loading" class="btn btn-lg flex mx-auto my-4 btn-ghost btn-circle loading" />
<div id="giscus" class="giscus" />
</div>

View File

@ -0,0 +1,33 @@
<script lang="ts">
import { onMount } from 'svelte'
import type { UtterancesConfig } from '$lib/types/post'
export let config: UtterancesConfig
onMount(() => {
const utterances = document.createElement('script')
Object.entries({
src: config.src ?? 'https://utteranc.es/client.js',
repo: config.repo,
'issue-term': 'pathname',
label: config.label ?? '',
theme: config.theme ?? 'preferred-color-scheme',
crossorigin: 'anonymous',
async: ''
}).forEach(([key, value]) => utterances.setAttribute(key, value))
setTimeout(() => {
const observer = new MutationObserver(() => {
document.getElementById('utterances-loading')!.remove()
observer.disconnect()
})
observer.observe(document.getElementById('utterances')!, {
childList: true
})
document.getElementById('utterances-container')!.appendChild(utterances)
}, 1000)
})
</script>
<div id="utterances-container">
<button id="utterances-loading" class="btn btn-lg flex mx-auto my-4 btn-ghost btn-circle loading" />
<div id="utterances" class="utterances" />
</div>

View File

@ -0,0 +1,198 @@
<script lang="ts">
import { onMount } from 'svelte'
import { site } from '$lib/config/site'
import type { WebmentionConfig } from '$lib/types/post'
export let config: WebmentionConfig
export let post: Urara.Post
interface WebmentionFeed {
type: 'feed'
name: 'Webmentions'
children: WebmentionEntry[]
}
interface WebmentionEntry {
url: string
author?: {
name?: string
photo?: string
url?: string
}
content?: {
html?: string
text?: string
}
rsvp?: string
published?: string
'wm-received': string
'wm-source': string
'wm-target': string
'wm-id': number
'wm-property': 'in-reply-to' | 'like-of' | 'repost-of' | 'bookmark-of' | 'mention-of' | 'rsvp'
'wm-private': boolean
}
let [page, loaded, end, mentions, sortDirUp]: [number, boolean, boolean, WebmentionEntry[], boolean] = [0, false, false, [], config?.sortDir === 'up' ? true : false]
const load = async () =>
await fetch(
`https://webmention.io/api/mentions.jf2?page=${page}&per-page=${config?.perPage ?? '20'}&sort-by=${
config?.sortBy ?? 'created'
}&sort-dir=${sortDirUp ? 'up' : 'down'}${
config?.property && config.property.forEach(wmProperty => `&wm-property=${wmProperty}`)
}&target[]=${site.protocol + site.domain + post.path}&target[]=${site.protocol + site.domain + post.path}/`
)
.then(res => res.json())
.then((feed: WebmentionFeed) => {
if (feed.children.length < 10) end = true
feed = {
...feed,
children: feed.children.filter(
(entry: WebmentionEntry) =>
!config.blockList?.includes(new URL(entry['wm-source']).origin)
)
}
if (feed.children.length > 0) mentions = [...mentions, ...feed.children]
page++
loaded = true
})
const reset = async () => {
page = 0
loaded = false
end = false
mentions = []
await load()
}
onMount(() => load())
</script>
<div class="flex flex-col gap-8">
<div class="flex">
<p class="flex-1 m-auto italic opacity-50">
{`sort-by=${config?.sortBy ?? 'created'}&sort-dir=${sortDirUp ? 'up' : 'down'}`}
</p>
<button
class="btn btn-ghost btn-sm float-right"
on:click={() => {
sortDirUp = !sortDirUp
reset()
}}>
{#if sortDirUp === true}
<span class="i-heroicons-outline-sort-ascending" />
{:else}
<span class="i-heroicons-outline-sort-descending" />
{/if}
</button>
</div>
{#key mentions}
{#each mentions as mention}
{@const [wmProperty, borderColor, textColor, tooltipColor] = {
'in-reply-to': ['💬 replied', 'border-primary/50', 'text-primary', 'tooltip-primary'],
'like-of': ['❤️ liked', 'border-secondary/50', 'text-secondary', 'tooltip-secondary'],
'repost-of': ['🔄 reposted', 'border-accent/50', 'text-accent', 'tooltip-accent'],
'bookmark-of': ['⭐️ bookmarked', 'border-neutral/50', 'text-neutral', 'tooltip-neutral'],
'mention-of': ['💬 mentioned', 'border-base-300/50', 'text-base-content', 'tooltip-base-content'],
rsvp: [
`📅 RSVPed ${
mention.rsvp && {
yes: '✅',
no: '❌',
interested: '💡',
maybe: '💭'
}[mention.rsvp]
}`,
'border-warning/50',
'text-warning',
'tooltip-warning'
]
}[mention['wm-property']]}
{#if mention.url !== null}
<div class="{borderColor} border-2 rounded-box p-4">
<div class="flex bg-base-200 rounded-btn">
{#if mention?.author?.photo}
<img
class="w-12 h-12 flex-none rounded-btn"
src={mention.author.photo}
alt={mention.author?.name ?? new URL(mention.url).host}
loading="lazy"
decoding="async" />
{/if}
<div class="flex-1 px-4 py-2 m-auto">
<p>
{#if mention?.author?.url}
<a class="font-semibold {textColor} hover:underline" href={mention.author.url}>
{mention.author?.name ?? new URL(mention.url).host}
</a>
{:else}
{mention?.author?.name ?? new URL(mention.url).host}
{/if}
<a class="{textColor} hover:underline" href={mention['wm-source']}>
{wmProperty}
</a>
this post on
<span
class="tooltip tooltip-bottom xl:tooltip-right {tooltipColor}"
data-tip={new Date(mention.published ?? mention['wm-received']).toLocaleString()}>
{mention.published ? mention.published.slice(0, 10) : mention['wm-received'].slice(0, 10)}
</span>
</p>
</div>
</div>
{#if mention.content}
<div class="prose max-w-none break-words mt-4">
<p>{@html mention.content?.html ?? mention.content?.text}</p>
</div>
{/if}
</div>
{/if}
{/each}
{/key}
{#if loaded === true}
{#if end !== true}
<button
on:click={() => {
loaded = false
load()
}}
class="btn btn-primary btn-block">
LOAD
</button>
{:else if config?.form !== true}
<div class="divider mt-0 -mb-2">END</div>
{/if}
{:else}
<button id="webmention-loading" class="btn btn-lg btn-block flex btn-ghost loading" />
{/if}
{#if config?.form === true}
<form id="webmention-form" method="post" action="https://webmention.io/{config.username}/webmention">
<input type="hidden" name="target" value={site.protocol + site.domain + post.path} />
<div class="label gap-4">
<span class="label-text">send webmentions here:</span>
{#if config?.commentParade === true}
<span class="label-text-alt text-right">
or <a
class="hover:!text-primary"
href="https://quill.p3k.io/?dontask=1&me=https://commentpara.de/&reply={encodeURI(
site.protocol + site.domain + post.path
)}">
comment anonymously
</a>
</span>
{/if}
</div>
<div class="flex gap-2">
<div class="flex-1">
<input
class="input input-bordered focus:input-primary w-full"
type="text"
id="reply-url"
name="source"
placeholder="https://example.com/my-post" />
</div>
<button class="btn btn-primary flex-none mt-auto" type="submit" id="webmention-submit">Send</button>
</div>
</form>
{/if}
</div>

View File

@ -0,0 +1,35 @@
<script lang="ts">
export let title: string | undefined = undefined
export let description: string | undefined = undefined
export let status: 'info' | 'success' | 'warning' | 'error' | undefined = undefined
</script>
<div
class:alert-info={status === 'info'}
class:alert-success={status === 'success'}
class:alert-warning={status === 'warning'}
class:alert-error={status === 'error'}
class="alert flex-col shadow-inner my-4">
<div class="mr-auto">
{#if status === 'success'}
<span class="i-heroicons-outline-check-circle" />
{:else if status === 'warning'}
<span class="i-heroicons-outline-exclamation-circle" />
{:else if status === 'error'}
<span class="i-heroicons-outline-x-circle" />
{:else}
<span class="i-heroicons-outline-information-circle" />
{/if}
<div>
<div class:font-bold={description}>{title}</div>
{#if description}
<div class="text-xs">{description}</div>
{/if}
</div>
</div>
{#if $$slots.default}
<div class="block w-full">
<slot />
</div>
{/if}
</div>

View File

@ -0,0 +1,28 @@
<script lang="ts">
export let id = undefined
export let list = undefined
export let playlist = undefined
export let start = undefined
export let autoplay = false
export let disablekb = false
export let controls = true
export let fs = true
export let loop = false
const src = `https://www.youtube.com/embed/${id}?${list ? `listType=playlist&list=${list}&` : ''}${
playlist ? `playlist=${playlist}&` : ''
}${start ? `start=${start}` : ''}${autoplay ? 'autoplay=1&' : ''}${disablekb ? 'disablekb=1&' : ''}${
controls ? '' : 'controls=0&'
}${fs ? '' : 'fs=0&'}${loop ? 'loop=1' : ''}`
</script>
<div class="relative pb-[56.25%] mb-2">
<iframe
{src}
class="absolute w-full h-full"
title="YouTube video player"
frameborder="0"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
loading="lazy"
allowfullscreen />
</div>

View File

@ -0,0 +1,45 @@
<script lang="ts">
import { site } from '$lib/config/site'
import { footer as footerConfig } from '$lib/config/general'
let className: string | undefined = undefined
export { className as class }
export let sticky: boolean = false
export let rounded: boolean = false
</script>
<footer
id="footer"
class="footer footer-center bg-base-300 text-base-content shadow-inner p-8 {rounded
? 'rounded-box'
: 'md:rounded-box'} {sticky ? 'sticky bottom-0 z-0 md:static' : ''} {className ?? ''}">
<div class="prose">
<p>
{#if footerConfig.nav}
{#each footerConfig.nav as { text, link }, i}
<a href={link} rel="noopener external" target="_blank">{text}</a>
{#if i + 1 < footerConfig.nav.length}
<span class="mr-1">·</span>
{/if}
{/each}
<br />
{/if}
{site.author.name} ©
{footerConfig.since && footerConfig.since !== new Date().toJSON().substring(0, 4)
? `${footerConfig.since} - ${new Date().toJSON().substring(0, 4)}`
: new Date().toJSON().substring(0, 4)}
| Powered by
<a
rel="noopener external"
target="_blank"
class="tooltip tooltip-secondary hover:text-secondary"
data-tip="🌸 [δ] - Based on MDsveX & SvelteKit 🌸"
href="https://github.com/importantimport/urara">
Urara
</a>
{#if footerConfig.html}
<br />
{@html footerConfig.html}
{/if}
</p>
</div>
</footer>

View File

@ -0,0 +1,39 @@
<script lang="ts">
import { dev } from '$app/environment'
import { head } from '$lib/config/general'
import { site } from '$lib/config/site'
import OpenGraph from '$lib/components/head_opengraph.svelte'
export let post: Urara.Post | undefined = undefined
export let page: Urara.Page | undefined = undefined
</script>
<svelte:head>
<meta name="author" content={site.author?.name} />
{#if post}
<link rel="canonical" href={site.protocol + site.domain + post.path} />
{#if post.type === 'article'}
<title>{post.title} | {site.title}</title>
{:else if post.type === 'note'}
<title>{post.summary ?? post.path.slice(1)} | {site.title}</title>
{/if}
{#if post.tags}<meta name="keywords" content={post.tags.join(', ')} />{/if}
{#if post.summary}<meta name="description" content={post.summary} />{/if}
{:else}
<meta name="description" content={site.description} />
<meta name="keywords" content={site.keywords?.join(', ')} />
{#if page}
<title>{page.title ?? page.path.slice(1)} | {site.title}</title>
<link rel="canonical" href={site.protocol + site.domain + page.path} />
{:else}
<title>{site.subtitle ? `${site.title} - ${site.subtitle}` : site.title}</title>
<link rel="canonical" href={site.protocol + site.domain} />
{/if}
{/if}
{#if head.custom}
{#each head.custom({ dev, post, page }) as tag}
{@html tag}
{/each}
{/if}
</svelte:head>
<OpenGraph {post} {page} />

Some files were not shown because too many files have changed in this diff Show More