782 lines
16 KiB
HTML
782 lines
16 KiB
HTML
<!doctype html>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<!-- `site.alt_lang` can specify a language different from the UI -->
|
|
<html lang="en" >
|
|
<head>
|
|
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
|
<meta name="theme-color" media="(prefers-color-scheme: light)" content="#f7f7f7">
|
|
<meta name="theme-color" media="(prefers-color-scheme: dark)" content="#1b1b1e">
|
|
<meta name="mobile-web-app-capable" content="yes">
|
|
<meta name="apple-mobile-web-app-status-bar-style" content="black-translucent">
|
|
<meta
|
|
name="viewport"
|
|
content="width=device-width, user-scalable=no initial-scale=1, shrink-to-fit=no, viewport-fit=cover"
|
|
><!-- Setup Open Graph image -->
|
|
|
|
|
|
|
|
<!-- Begin Jekyll SEO tag v2.8.0 -->
|
|
<meta name="generator" content="Jekyll v4.4.1" />
|
|
<meta property="og:title" content="About" />
|
|
<meta property="og:locale" content="en" />
|
|
<meta name="description" content="Add Markdown syntax content to file _tabs/about.md and it will show up on this page." />
|
|
<meta property="og:description" content="Add Markdown syntax content to file _tabs/about.md and it will show up on this page." />
|
|
<link rel="canonical" href="https://way.ember.ac.cn/about/" />
|
|
<meta property="og:url" content="https://way.ember.ac.cn/about/" />
|
|
<meta property="og:site_name" content="WeiWen Qi" />
|
|
<meta property="og:type" content="article" />
|
|
<meta property="article:published_time" content="2025-03-18T16:02:43+08:00" />
|
|
<meta name="twitter:card" content="summary" />
|
|
<meta property="twitter:title" content="About" />
|
|
<meta name="twitter:site" content="@way_adventurer" />
|
|
<script type="application/ld+json">
|
|
{"@context":"https://schema.org","@type":"WebSite","dateModified":"2025-03-18T16:02:43+08:00","datePublished":"2025-03-18T16:02:43+08:00","description":"Add Markdown syntax content to file _tabs/about.md and it will show up on this page.","headline":"About","name":"WeiWen Qi","sameAs":["https://twitter.com/way_adventurer","https://github.com/WAY-ADVENTURER"],"url":"https://way.ember.ac.cn/about/"}</script>
|
|
<!-- End Jekyll SEO tag -->
|
|
|
|
|
|
<title>About | WeiWen Qi
|
|
</title>
|
|
|
|
<!--
|
|
The Favicons for Web, Android, Microsoft, and iOS (iPhone and iPad) Apps
|
|
Generated by: https://realfavicongenerator.net/
|
|
-->
|
|
|
|
|
|
|
|
<link rel="apple-touch-icon" sizes="180x180" href="/assets/img/favicons/apple-touch-icon.png">
|
|
<link rel="icon" type="image/png" sizes="32x32" href="/assets/img/favicons/favicon-32x32.png">
|
|
<link rel="icon" type="image/png" sizes="16x16" href="/assets/img/favicons/favicon-16x16.png">
|
|
|
|
<link rel="manifest" href="/assets/img/favicons/site.webmanifest">
|
|
|
|
<link rel="shortcut icon" href="/assets/img/favicons/favicon.ico">
|
|
<meta name="apple-mobile-web-app-title" content="WeiWen Qi">
|
|
<meta name="application-name" content="WeiWen Qi">
|
|
<meta name="msapplication-TileColor" content="#da532c">
|
|
<meta name="msapplication-config" content="/assets/img/favicons/browserconfig.xml">
|
|
<meta name="theme-color" content="#ffffff">
|
|
|
|
|
|
<!-- Resource Hints -->
|
|
|
|
|
|
|
|
<link rel="preconnect" href="https://fonts.googleapis.com" >
|
|
|
|
<link rel="dns-prefetch" href="https://fonts.googleapis.com" >
|
|
|
|
|
|
|
|
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
|
|
|
|
<link rel="dns-prefetch" href="https://fonts.gstatic.com" >
|
|
|
|
|
|
|
|
<link rel="preconnect" href="https://cdn.jsdelivr.net" >
|
|
|
|
<link rel="dns-prefetch" href="https://cdn.jsdelivr.net" >
|
|
|
|
|
|
|
|
|
|
<!-- Bootstrap -->
|
|
|
|
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css">
|
|
|
|
|
|
<!-- Theme style -->
|
|
<link rel="stylesheet" href="/assets/css/jekyll-theme-chirpy.css">
|
|
|
|
<!-- Web Font -->
|
|
<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Lato:wght@300;400&family=Source+Sans+Pro:wght@400;600;700;900&display=swap">
|
|
|
|
<!-- Font Awesome Icons -->
|
|
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@fortawesome/fontawesome-free@6.7.1/css/all.min.css">
|
|
|
|
<!-- 3rd-party Dependencies -->
|
|
|
|
|
|
|
|
|
|
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/loading-attribute-polyfill@2.1.1/dist/loading-attribute-polyfill.min.css">
|
|
|
|
|
|
|
|
<!-- Image Popup -->
|
|
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/glightbox@3.3.0/dist/css/glightbox.min.css">
|
|
|
|
|
|
<!-- Scripts -->
|
|
|
|
<script src="/assets/js/dist/theme.min.js"></script>
|
|
|
|
<!-- JS selector for site. -->
|
|
|
|
<!-- commons -->
|
|
|
|
|
|
|
|
<!-- layout specified -->
|
|
|
|
|
|
|
|
|
|
|
|
<!-- image lazy-loading & popup & clipboard -->
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<script defer src="https://cdn.jsdelivr.net/combine/npm/simple-jekyll-search@1.10.0/dest/simple-jekyll-search.min.js,npm/loading-attribute-polyfill@2.1.1/dist/loading-attribute-polyfill.umd.min.js,npm/glightbox@3.3.0/dist/js/glightbox.min.js,npm/clipboard@2.0.11/dist/clipboard.min.js"></script>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<script defer src="/assets/js/dist/page.min.js"></script>
|
|
|
|
|
|
|
|
<!-- Pageviews -->
|
|
|
|
|
|
|
|
|
|
|
|
<!-- A placeholder to allow defining custom metadata -->
|
|
|
|
</head>
|
|
|
|
|
|
<body>
|
|
<!-- The Side Bar -->
|
|
|
|
<aside aria-label="Sidebar" id="sidebar" class="d-flex flex-column align-items-end">
|
|
<header class="profile-wrapper">
|
|
<a href="/" id="avatar" class="rounded-circle"><img src="/assets/img/avatar.jpg" width="112" height="112" alt="avatar" onerror="this.style.display='none'"></a>
|
|
|
|
<a class="site-title d-block" href="/">WeiWen Qi</a>
|
|
<p class="site-subtitle fst-italic mb-0">Show me the code</p>
|
|
</header>
|
|
<!-- .profile-wrapper -->
|
|
|
|
<nav class="flex-column flex-grow-1 w-100 ps-0">
|
|
<ul class="nav">
|
|
<!-- home -->
|
|
<li class="nav-item">
|
|
<a href="/" class="nav-link">
|
|
<i class="fa-fw fas fa-home"></i>
|
|
<span>HOME</span>
|
|
</a>
|
|
</li>
|
|
<!-- the real tabs -->
|
|
|
|
<li class="nav-item">
|
|
<a href="/categories/" class="nav-link">
|
|
<i class="fa-fw fas fa-stream"></i>
|
|
|
|
|
|
<span>CATEGORIES</span>
|
|
</a>
|
|
</li>
|
|
<!-- .nav-item -->
|
|
|
|
<li class="nav-item">
|
|
<a href="/tags/" class="nav-link">
|
|
<i class="fa-fw fas fa-tags"></i>
|
|
|
|
|
|
<span>TAGS</span>
|
|
</a>
|
|
</li>
|
|
<!-- .nav-item -->
|
|
|
|
<li class="nav-item">
|
|
<a href="/archives/" class="nav-link">
|
|
<i class="fa-fw fas fa-archive"></i>
|
|
|
|
|
|
<span>ARCHIVES</span>
|
|
</a>
|
|
</li>
|
|
<!-- .nav-item -->
|
|
|
|
<li class="nav-item active">
|
|
<a href="/about/" class="nav-link">
|
|
<i class="fa-fw fas fa-info-circle"></i>
|
|
|
|
|
|
<span>ABOUT</span>
|
|
</a>
|
|
</li>
|
|
<!-- .nav-item -->
|
|
|
|
</ul>
|
|
</nav>
|
|
|
|
<div class="sidebar-bottom d-flex flex-wrap align-items-center w-100">
|
|
|
|
<button type="button" class="btn btn-link nav-link" aria-label="Switch Mode" id="mode-toggle">
|
|
<i class="fas fa-adjust"></i>
|
|
</button>
|
|
|
|
|
|
<span class="icon-border"></span>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<a
|
|
href="https://github.com/WAY-ADVENTURER"
|
|
aria-label="github"
|
|
|
|
|
|
|
|
target="_blank"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
rel="noopener noreferrer"
|
|
|
|
>
|
|
<i class="fab fa-github"></i>
|
|
</a>
|
|
|
|
|
|
|
|
|
|
|
|
<a
|
|
href="https://twitter.com/way_adventurer"
|
|
aria-label="twitter"
|
|
|
|
|
|
|
|
target="_blank"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
rel="noopener noreferrer"
|
|
|
|
>
|
|
<i class="fa-brands fa-x-twitter"></i>
|
|
</a>
|
|
|
|
|
|
|
|
|
|
|
|
<a
|
|
href="javascript:location.href = 'mailto:' + ['2992850181','qq.com'].join('@')"
|
|
aria-label="email"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
>
|
|
<i class="fas fa-envelope"></i>
|
|
</a>
|
|
|
|
|
|
|
|
|
|
|
|
<a
|
|
href="/feed.xml"
|
|
aria-label="rss"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
>
|
|
<i class="fas fa-rss"></i>
|
|
</a>
|
|
|
|
|
|
</div>
|
|
<!-- .sidebar-bottom -->
|
|
</aside>
|
|
<!-- #sidebar -->
|
|
|
|
|
|
<div id="main-wrapper" class="d-flex justify-content-center">
|
|
<div class="container d-flex flex-column px-xxl-5">
|
|
<!-- The Top Bar -->
|
|
|
|
<header id="topbar-wrapper" aria-label="Top Bar">
|
|
<div
|
|
id="topbar"
|
|
class="d-flex align-items-center justify-content-between px-lg-3 h-100"
|
|
>
|
|
<nav id="breadcrumb" aria-label="Breadcrumb">
|
|
|
|
|
|
|
|
|
|
|
|
<span>
|
|
<a href="/">Home</a>
|
|
</span>
|
|
|
|
|
|
|
|
|
|
|
|
<span>About</span>
|
|
|
|
|
|
|
|
|
|
|
|
</nav>
|
|
<!-- endof #breadcrumb -->
|
|
|
|
<button type="button" id="sidebar-trigger" class="btn btn-link">
|
|
<i class="fas fa-bars fa-fw"></i>
|
|
</button>
|
|
|
|
<div id="topbar-title">
|
|
About
|
|
</div>
|
|
|
|
<button type="button" id="search-trigger" class="btn btn-link">
|
|
<i class="fas fa-search fa-fw"></i>
|
|
</button>
|
|
|
|
<search id="search" class="align-items-center ms-3 ms-lg-0">
|
|
<i class="fas fa-search fa-fw"></i>
|
|
<input
|
|
class="form-control"
|
|
id="search-input"
|
|
type="search"
|
|
aria-label="search"
|
|
autocomplete="off"
|
|
placeholder="Search..."
|
|
>
|
|
</search>
|
|
<button type="button" class="btn btn-link text-decoration-none" id="search-cancel">Cancel</button>
|
|
</div>
|
|
</header>
|
|
|
|
|
|
<div class="row flex-grow-1">
|
|
<main aria-label="Main Content" class="col-12 col-lg-11 col-xl-9 px-md-4">
|
|
|
|
<!-- Refactor the HTML structure -->
|
|
|
|
|
|
|
|
<!--
|
|
In order to allow a wide table to scroll horizontally,
|
|
we suround the markdown table with `<div class="table-wrapper">` and `</div>`
|
|
-->
|
|
|
|
|
|
|
|
<!--
|
|
Fixed kramdown code highlight rendering:
|
|
https://github.com/penibelst/jekyll-compress-html/issues/101
|
|
https://github.com/penibelst/jekyll-compress-html/issues/71#issuecomment-188144901
|
|
-->
|
|
|
|
|
|
|
|
<!-- Change the icon of checkbox -->
|
|
|
|
|
|
|
|
<!-- Handle images -->
|
|
|
|
|
|
|
|
|
|
|
|
<!-- Add header for code snippets -->
|
|
|
|
|
|
|
|
<!-- Create heading anchors -->
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<!-- return -->
|
|
|
|
|
|
|
|
|
|
<article class="px-1">
|
|
|
|
|
|
|
|
<h1 class="dynamic-title">
|
|
About
|
|
</h1>
|
|
<div class="content">
|
|
<blockquote class="prompt-tip">
|
|
<p>Add Markdown syntax content to file <code class="language-plaintext filepath highlighter-rouge">_tabs/about.md</code> and it will show up on this page.</p>
|
|
</blockquote>
|
|
|
|
</div>
|
|
|
|
</article>
|
|
|
|
|
|
|
|
</main>
|
|
|
|
<!-- panel -->
|
|
<aside aria-label="Panel" id="panel-wrapper" class="col-xl-3 ps-2 text-muted">
|
|
<div class="access">
|
|
<!-- Get 5 last posted/updated posts -->
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<section id="access-lastmod">
|
|
<h2 class="panel-heading">Recently Updated</h2>
|
|
<ul class="content list-unstyled ps-0 pb-1 ms-1 mt-2">
|
|
|
|
|
|
|
|
|
|
<li class="text-truncate lh-lg">
|
|
<a href="/posts/write-a-new-post/">Writing a New Post</a>
|
|
</li>
|
|
|
|
</ul>
|
|
</section>
|
|
<!-- #access-lastmod -->
|
|
|
|
|
|
<!-- The trending tags list -->
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<section>
|
|
<h2 class="panel-heading">Trending Tags</h2>
|
|
<div class="d-flex flex-wrap mt-3 mb-1 me-3">
|
|
|
|
|
|
<a class="post-tag btn btn-outline-primary" href="/tags/writing/">writing</a>
|
|
|
|
</div>
|
|
</section>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</aside>
|
|
</div>
|
|
|
|
<div class="row">
|
|
<!-- tail -->
|
|
<div id="tail-wrapper" class="col-12 col-lg-11 col-xl-9 px-md-4">
|
|
|
|
|
|
<!-- The Footer -->
|
|
|
|
<footer
|
|
aria-label="Site Info"
|
|
class="
|
|
d-flex flex-column justify-content-center text-muted
|
|
flex-lg-row justify-content-lg-between align-items-lg-center pb-lg-3
|
|
"
|
|
>
|
|
<p>©
|
|
<time>2025</time>
|
|
|
|
|
|
<a href="https://twitter.com/way_adventurer">WeiWen Qi</a>.
|
|
|
|
|
|
|
|
<span
|
|
data-bs-toggle="tooltip"
|
|
data-bs-placement="top"
|
|
title="Except where otherwise noted, the blog posts on this site are licensed under the Creative Commons Attribution 4.0 International (CC BY 4.0) License by the author."
|
|
>Some rights reserved.</span>
|
|
|
|
</p>
|
|
|
|
<p>Using the <a
|
|
data-bs-toggle="tooltip"
|
|
data-bs-placement="top"
|
|
title="v7.2.4"
|
|
href="https://github.com/cotes2020/jekyll-theme-chirpy"
|
|
target="_blank"
|
|
rel="noopener"
|
|
>Chirpy</a> theme for <a href="https://jekyllrb.com" target="_blank" rel="noopener">Jekyll</a>.
|
|
</p>
|
|
</footer>
|
|
|
|
</div>
|
|
</div>
|
|
|
|
<!-- The Search results -->
|
|
|
|
<div id="search-result-wrapper" class="d-flex justify-content-center d-none">
|
|
<div class="col-11 content">
|
|
<div id="search-hints">
|
|
<!-- The trending tags list -->
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<section>
|
|
<h2 class="panel-heading">Trending Tags</h2>
|
|
<div class="d-flex flex-wrap mt-3 mb-1 me-3">
|
|
|
|
|
|
<a class="post-tag btn btn-outline-primary" href="/tags/writing/">writing</a>
|
|
|
|
</div>
|
|
</section>
|
|
|
|
|
|
</div>
|
|
<div id="search-results" class="d-flex flex-wrap justify-content-center text-muted mt-3"></div>
|
|
</div>
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<aside aria-label="Scroll to Top">
|
|
<button id="back-to-top" type="button" class="btn btn-lg btn-box-shadow">
|
|
<i class="fas fa-angle-up"></i>
|
|
</button>
|
|
</aside>
|
|
</div>
|
|
|
|
<div id="mask" class="d-none position-fixed w-100 h-100 z-1"></div>
|
|
|
|
|
|
<aside
|
|
id="notification"
|
|
class="toast"
|
|
role="alert"
|
|
aria-live="assertive"
|
|
aria-atomic="true"
|
|
data-bs-animation="true"
|
|
data-bs-autohide="false"
|
|
>
|
|
<div class="toast-header">
|
|
<button
|
|
type="button"
|
|
class="btn-close ms-auto"
|
|
data-bs-dismiss="toast"
|
|
aria-label="Close"
|
|
></button>
|
|
</div>
|
|
<div class="toast-body text-center pt-0">
|
|
<p class="px-2 mb-3">A new version of content is available.</p>
|
|
<button type="button" class="btn btn-primary" aria-label="Update">
|
|
Update
|
|
</button>
|
|
</div>
|
|
</aside>
|
|
|
|
|
|
|
|
<!-- Embedded scripts -->
|
|
|
|
|
|
|
|
<!--
|
|
Jekyll Simple Search loader
|
|
See: <https://github.com/christian-fei/Simple-Jekyll-Search>
|
|
-->
|
|
|
|
|
|
|
|
|
|
|
|
<script>
|
|
|
|
document.addEventListener('DOMContentLoaded', () => {
|
|
SimpleJekyllSearch({
|
|
searchInput: document.getElementById('search-input'),
|
|
resultsContainer: document.getElementById('search-results'),
|
|
json: '/assets/js/data/search.json',
|
|
searchResultTemplate: ' <article class="px-1 px-sm-2 px-lg-4 px-xl-0"> <header> <h2><a href="{url}">{title}</a></h2> <div class="post-meta d-flex flex-column flex-sm-row text-muted mt-1 mb-1"> {categories} {tags} </div> </header> <p>{snippet}</p> </article>',
|
|
noResultsText: '<p class="mt-5">Oops! No results found.</p>',
|
|
templateMiddleware: function(prop, value, template) {
|
|
if (prop === 'categories') {
|
|
if (value === '') {
|
|
return `${value}`;
|
|
} else {
|
|
return `<div class="me-sm-4"><i class="far fa-folder fa-fw"></i>${value}</div>`;
|
|
}
|
|
}
|
|
|
|
if (prop === 'tags') {
|
|
if (value === '') {
|
|
return `${value}`;
|
|
} else {
|
|
return `<div><i class="fa fa-tag fa-fw"></i>${value}</div>`;
|
|
}
|
|
}
|
|
}
|
|
});
|
|
});
|
|
</script>
|
|
|
|
</body>
|
|
</html>
|
|
|