Update theme to Lynx

This commit is contained in:
Daniel Mason 2025-06-07 21:52:58 +12:00
parent df8776949c
commit 5b18cfd0c5
Signed by: idanoo
GPG key ID: 387387CDBC02F132
2716 changed files with 227 additions and 57948 deletions

View file

Before

Width:  |  Height:  |  Size: 35 KiB

After

Width:  |  Height:  |  Size: 35 KiB

Before After
Before After

View file

Before

Width:  |  Height:  |  Size: 329 KiB

After

Width:  |  Height:  |  Size: 329 KiB

Before After
Before After

View file

Before

Width:  |  Height:  |  Size: 2.2 KiB

After

Width:  |  Height:  |  Size: 2.2 KiB

Before After
Before After

View file

Before

Width:  |  Height:  |  Size: 6.3 KiB

After

Width:  |  Height:  |  Size: 6.3 KiB

Before After
Before After

View file

Before

Width:  |  Height:  |  Size: 7.7 KiB

After

Width:  |  Height:  |  Size: 7.7 KiB

Before After
Before After

View file

Before

Width:  |  Height:  |  Size: 2.2 KiB

After

Width:  |  Height:  |  Size: 2.2 KiB

Before After
Before After

View file

Before

Width:  |  Height:  |  Size: 17 KiB

After

Width:  |  Height:  |  Size: 17 KiB

Before After
Before After

View file

Before

Width:  |  Height:  |  Size: 3.4 MiB

After

Width:  |  Height:  |  Size: 3.4 MiB

Before After
Before After

View file

Before

Width:  |  Height:  |  Size: 52 KiB

After

Width:  |  Height:  |  Size: 52 KiB

Before After
Before After

View file

Before

Width:  |  Height:  |  Size: 25 KiB

After

Width:  |  Height:  |  Size: 25 KiB

Before After
Before After

View file

Before

Width:  |  Height:  |  Size: 45 KiB

After

Width:  |  Height:  |  Size: 45 KiB

Before After
Before After

View file

Before

Width:  |  Height:  |  Size: 53 KiB

After

Width:  |  Height:  |  Size: 53 KiB

Before After
Before After

View file

Before

Width:  |  Height:  |  Size: 25 KiB

After

Width:  |  Height:  |  Size: 25 KiB

Before After
Before After

View file

Before

Width:  |  Height:  |  Size: 37 KiB

After

Width:  |  Height:  |  Size: 37 KiB

Before After
Before After

View file

Before

Width:  |  Height:  |  Size: 60 KiB

After

Width:  |  Height:  |  Size: 60 KiB

Before After
Before After

View file

Before

Width:  |  Height:  |  Size: 48 KiB

After

Width:  |  Height:  |  Size: 48 KiB

Before After
Before After

View file

Before

Width:  |  Height:  |  Size: 29 KiB

After

Width:  |  Height:  |  Size: 29 KiB

Before After
Before After

View file

Before

Width:  |  Height:  |  Size: 49 KiB

After

Width:  |  Height:  |  Size: 49 KiB

Before After
Before After

View file

Before

Width:  |  Height:  |  Size: 180 KiB

After

Width:  |  Height:  |  Size: 180 KiB

Before After
Before After

View file

Before

Width:  |  Height:  |  Size: 36 KiB

After

Width:  |  Height:  |  Size: 36 KiB

Before After
Before After

View file

Before

Width:  |  Height:  |  Size: 17 KiB

After

Width:  |  Height:  |  Size: 17 KiB

Before After
Before After

@ -0,0 +1 @@
Subproject commit 860fc24d8f2c82efa923df723b6d77ce0e59cdee

View file

@ -0,0 +1,5 @@
+++
date = '{{ .Date }}'
draft = true
title = '{{ replace .File.ContentBaseName "-" " " | title }}'
+++

View file

@ -0,0 +1,3 @@
.link-cv {
background-color: #3f88de;
}

View file

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path fill="currentColor" d="M96 0C43 0 0 43 0 96L0 416c0 53 43 96 96 96l288 0 32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l0-64c17.7 0 32-14.3 32-32l0-320c0-17.7-14.3-32-32-32L384 0 96 0zm0 384l256 0 0 64L96 448c-17.7 0-32-14.3-32-32s14.3-32 32-32zm32-240c0-8.8 7.2-16 16-16l192 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-192 0c-8.8 0-16-7.2-16-16zm16 48l192 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-192 0c-8.8 0-16-7.2-16-16s7.2-16 16-16z"/></svg>

After

Width:  |  Height:  |  Size: 495 B

69
m2.nz/config.toml Normal file
View file

@ -0,0 +1,69 @@
baseURL = "https://m2.nz/"
languageCode = "en"
defaultContentLanguage = "en"
title = "m2.nz"
# copyright = "Copy, _right?_ :thinking_face:"
enableEmoji = true
disableKinds = ["taxonomy", "term"]
[params.author]
name = "Daniel Mason"
headline = "Snr Site Reliability Engineer | Pilot"
image = "img/dp.jpg" # path relative to static directory
links = [
{ cv = { href = "/cv", text = "CV", target = "_self" } },
# { email = "mailto:daniel@m2.nz" },
# { link = "https://link-to-some-website.com/" },
# { amazon = "https://www.amazon.com/hz/wishlist/ls/wishlist-id" },
# { apple = "https://www.apple.com" },
# { bandcamp = "https://username.bandcamp.com" },
# { bluesky = "https://bsky.app/profile/username" },
# { codepen = "https://codepen.io/username" },
# { dev = "https://dev.to/username" },
# { discord = "https://discord.gg/invitecode" },
# { dribbble = "https://dribbble.com/username" },
# { facebook = "https://facebook.com/username" },
# { flickr = "https://www.flickr.com/photos/username/" },
# { foursquare = "https://foursquare.com/username" },
{ linkedin = "https://linkedin.com/in/idanoo" },
{ github = "https://github.com/idanoo" },
# { gitlab = "https://gitlab.com/idanoo" },
# { google = "https://www.google.com/" },
# { instagram = "https://instagram.com/username" },
# { keybase = "https://keybase.io/username" },
# { kickstarter = "https://www.kickstarter.com/profile/username" },
# { lastfm = "https://last.fm/user/username" },
# { mastodon = "https://mastodon.instance/@username" },
# { medium = "https://medium.com/username" },
# { microsoft = "https://www.microsoft.com/" },
# { patreon = "https://www.patreon.com/username" },
# { pinterest = "https://pinterest.com/username" },
# { reddit = "https://reddit.com/user/username" },
# { slack = "https://workspace.url/team/userid" },
# { snapchat = "https://snapchat.com/add/username" },
# { soundcloud = "https://soundcloud.com/username" },
# { spotify = "https://spotify.com/user/username" },
# { stack-exchange = "https://stackexchange.com/users/userid/username" },
# { stack-overflow = "https://stackoverflow.com/users/userid/username" },
{ steam = "https://steamcommunity.com/id/idanoo" },
# { telegram = "https://t.me/username" },
# { threads = "https://threads.com/username" },
{ tiktok = "https://tiktok.com/@idanoo.nz" },
# { tumblr = "https://username.tumblr.com" },
# { twitch = "https://twitch.tv/username" },
# { twitter = "https://twitter.com/username" },
# { whatsapp = "https://wa.me/phone-number" },
# { x = "https://x.com/username" },
# { youtube = "https://youtube.com/username" },
]
[module]
[module.hugoVersion]
extended = false
min = "0.86.1"
[markup.goldmark.renderer]
unsafe = true

View file

@ -0,0 +1,2 @@
[[imports]]
path = "github.com/jpanther/lynx"

139
m2.nz/content/cv.md Normal file
View file

@ -0,0 +1,139 @@
---
title: "Employment History"
---
### Certifications
| Date | Certifcation |
| :--- | :--- |
| 2023/02 | [PagerDuty Certified Incident Responder](https://www.credly.com/users/daniel-mason.2a91e126/badges) |
| 2022/05 | [Hashicorp Certified Terraform Associate](https://www.credly.com/users/daniel-mason.2a91e126/badges) |
| 2020/06 | [AWS Certified Cloud Practicioner](https://www.credly.com/users/daniel-mason.2a91e126/badges) |
### Open source contributions
| Date | Repo | Commit |
| :--- | :--- | :--- |
| 2025/04/06 | [LibreNMS (beb3560)](https://github.com/librenms/librenms/commit/beb356073d30fac74e928dac96ffa4a9d63036c6) | Add support for Grandstream GWN7822P Switch |
| 2023/05/28 | [OpnSense (25e2c0a)](https://github.com/opnsense/core/commit/25e2c0a301e1437a98c8958637ca405a5fab21fa) | Resolving static routes being created for on far gateways |
| 2023/01/29 | [Pixelfed (55dc9b0)](https://github.com/pixelfed/pixelfed/pull/4122/commits/55dc9b0aaa4623491387d06fcb83fc9e937e5e16) | Resolve issue with backticks in raw SQL for postgresql migrations |
| 2023/01/09 | [Pixelfed (52d6553)](https://github.com/pixelfed/pixelfed/pull/4067/commits/52d65538cdfbebc73456db15390af3cfb8ee2d46) | Update User artisan commands to match UserDelete |
| 2022/02/15 | [terraform-provider-aws (5c45fc1)](https://github.com/librenms/librenms/commit/beb356073d30fac74e928dac96ffa4a9d63036c6) | Allow S3 lifecycle 'days' parameter in S3 transition lifecycle to be >= 0 |
| 2022/01/06 | [Pixelfed (9cc18eb)](https://github.com/pixelfed/pixelfed/pull/3122/commits/9cc18eb82acb46d2d8da22c66d12e55c192dbdb8) | Fix for firstOrCreate failing hashtags with case differences on name column |
### Employment
<div style="display: flex;">
<div style="flex-direction: row; margin-right: 20px">
<img alt="ezyVet Logo" style="margin: 0.5em 0 0.5em 0;" title="ezyVet Logo" src="/img/ezyvet_logo.png">
</div>
<div style="flex-direction: row">
<h3 style="margin-top: 10px">ezyVet</h3>
<h4 style="margin-top: -12px; color: #afbac4">Senior Site Reliability Engineer</h4>
<p style="margin-top: -10px">December 2022 - Current</p>
</div>
</div>
Working with a wide range of technologies and teams to deliver resiliant, secure and performant services.
- Database migrations, maintenance and patching.
- Airflow to move and transform data between services.
- EKS Kubernetes Clusters.
- ElasticSearch migrations, maintenance and patching.
- Golang APIs deployed with Helm into EKS.
- Migrating legacy AWS resources into Terraform.
- Packer/HCL building custom Linux/Windows AMIs.
- Rebuilding existing platforms to scale with a focus on performance and reporting.
<br/>
<div style="display: flex;">
<div style="flex-direction: row; margin-right: 20px">
<img alt="ezyVet Logo" style="margin: 0.5em 0 0.5em 0;" title="ezyVet Logo" src="/img/ezyvet_logo.png">
</div>
<div style="flex-direction: row">
<h3 style="margin-top: 10px">ezyVet</h3>
<h4 style="margin-top: -12px; color: #afbac4">Site Reliability Engineer</h4>
<p style="margin-top: -10px">August 2019 - December 2022</p>
</div>
</div>
My role at ezyVet is primarily focused around performance, uptime and cost across the entire platform, primarily working with PHP, MySQL, ElasticSearch and Redis.
- Maintaining services and patching latest versions for security and performance improvements.
- Writing complete automation pipelines on GitLab CI.
- Building a Golang application utilizing multiple best practice AWS services including<br/>&nbsp;&nbsp;API Gateway websockets/SQS/SNS/DynamoDB/Lambda/Terraform.
- Incident response and improving process.
- Creating a docker engineering environment to improve development workflows and onboarding.
- Focus on reducing RDS load and improving SQL query times across the board.
- Completely rewriting Elastic Search service from the ground up to improve search times.
- Writing custom service monitoring tools in Go that interface with Slack/Pagerduty.
- MySQL performance optimizations and maintaining integrity across all environments.
- Introducing Grafana and reachitecting monitoring for observability.
<br>
<div style="display: flex;">
<div style="flex-direction: row; margin-right: 20px">
<img alt="Catalyst IT Logo" width="90" style="margin: 0.5em 0 0.5em 0;" title="Catalyst IT Logo" src="/img/catalyst_logo.png">
</div>
<div style="flex-direction: row">
<h3 style="margin-top: 10px">Catalyst IT</h3>
<h4 style="margin-top: -12px; color: #afbac4">Devops Engineer</h4>
<p style="margin-top: -10px">October 2018 - August 2019</p>
</div>
</div>
At Catalyst, I worked directly with several large corporate clients doing routine patching, performance improvements and general BAU. While primarily configuring CI/CD pipelines for full automated tested and deployments, I also gained experience with helm chart deployments into Kubernetes clusters hosted on OpenStack.I have also had the opportunity to gain more experience working with Puppet, Ansible and GitLab CI.
<br/>
<div style="display: flex;">
<div style="flex-direction: row; margin-right: 20px">
<img alt="ezyVet Logo" style="margin: 0.5em 0 0.5em 0;" title="ezyVet Logo" src="/img/ezyvet_logo.png">
</div>
<div style="flex-direction: row">
<h3 style="margin-top: 10px">ezyVet</h3>
<h4 style="margin-top: -12px; color: #afbac4">Cloud Environment and Application Engineer</h4>
<p style="margin-top: -10px">March 2017 - October 2018</p>
</div>
</div>
At ezyVet, I was primarily in charge of reviewing and merging code into our production environment as well as being our in-house DevOps/Infrastructure person. I occasionally did development work as well. In this position I gained vast experience in multiple areas as outlined below.
The position currently included the following responsibilities:
- Setting up and improving our CI/CD processes.
- Maintaining and constantly improving our environment. (AWS/Terraform)
- Setting up custom alerts / metrics with Cloudwatch & Grafana.
- Responding proactively to the above alerts to fix potential issues.
- Heavily involved in rolling out new technologies to our stack.
- Revision, escalation and resolution of tickets and other critical issues.
- Mentored Junior Developers through their induction into ezyVet.
DevOps:
- AWS: Consistently Improving our infrastructure to be efficient and reliable
- Linux: Daily experience with Debian, Ubuntu and Arch.
- CI / CD: Setting up and maintaining GitLab runners to run our Unit Tests / Automatic deploy pipelines inside docker containers.
- Packer/Chef/Vagrant: Building custom AMI images for AWS & Vagrant for our development machines.
- Terraform: Assisted migration of our AWS environments to code.
- Virtualization: Setting up Vagrant / Virtual Box environments that mock our production environment.
Programming:
- PHP: Building small features and day-to-day bug fixes as well.
- MySQL.
- Shell / Bash: Created custom scripts to achieve specific goals.
- Python / Node.js: Lambda functions in serverless.
- HTML / CSS / JS / jQuery.
Management:
- Code Review: In charge of reviewing all code before it gets merged in to our production branches.
- JIRA / Confluence / Freshdesk: Primarily used JIRA for ticket-tracking and Confluence for In-house documentation.
- Mentoring: I have taken on several junior developers over the 2 years to train them and assist them in becoming familiar with out code-base and work-flow.
<br/>
<div style="display: flex;">
<div style="flex-direction: row; margin-right: 20px">
<img alt="ezyVet Logo" style="margin: 0.5em 0 0.5em 0;" title="ezyVet Logo" src="/img/ezyvet_logo.png">
</div>
<div style="flex-direction: row">
<h3 style="margin-top: 10px">ezyVet</h3>
<h4 style="margin-top: -12px; color: #afbac4">Full Stack Developer</h4>
<p style="margin-top: -10px">March 2016 - August 2017</p>
</div>
</div>
Focused on building new features and improving our cloud environment and application.<br/>Working primarily with PHP.

5
m2.nz/go.mod Normal file
View file

@ -0,0 +1,5 @@
module github.com/idanoo/m2.nz
go 1.24.4
require github.com/jpanther/lynx v1.4.0 // indirect

2
m2.nz/go.sum Normal file
View file

@ -0,0 +1,2 @@
github.com/jpanther/lynx v1.4.0 h1:ymYkoVjFXkdzSD6YBjF6zsTUK3kSi3QTxtxpHtsnlhw=
github.com/jpanther/lynx v1.4.0/go.mod h1:nUK1+IfScKhRA3/jBH+YCYfpO3znP5Nsm6ROFGpma44=

BIN
m2.nz/static/.DS_Store vendored Normal file

Binary file not shown.

BIN
m2.nz/static/img/aws.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.3 KiB

BIN
m2.nz/static/img/dp.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 56 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

View file

@ -1,10 +0,0 @@
{
"presets": [
[
"@babel/preset-env",
{
"targets": "> 0.01%"
}
]
]
}

View file

@ -1,37 +0,0 @@
version: 2.1
executors:
hugo:
parameters:
version:
description: "version tag"
type: string
docker:
- image: cibuilds/hugo:<<parameters.version>>
jobs:
build-check:
parameters:
version:
description: "version tag"
type: string
executor:
name: hugo
version: <<parameters.version>>
working_directory: ~/LoveIt
steps:
- checkout
- run: git submodule sync
- run: git submodule update --init
- run: hugo --source exampleSite --gc --minify --environment production
- run: htmlproofer exampleSite/public --disable-external true --ignore-missing-alt true
workflows:
build-check:
jobs:
- build-check:
name: build-check-min
version: 0.128.0
- build-check:
name: build-check-max
version: 0.144.2

View file

@ -1 +0,0 @@
custom: https://paypal.me/dillonzq

View file

@ -1,41 +0,0 @@
---
name: Bug Report 错误报告
about: Create a bug report 创建一个错误报告
title: "[BUG] Some problem..."
labels: bug
---
### Describe the bug 描述你遇到的错误
A clear and concise description of what the bug is.
一段简短的对于你遇到的错误的描述.
### Expected behavior 期待的行为
A clear and concise description of what you expected to happen.
一段简短的对于你期待的行为的描述.
### Screenshots 屏幕截图
If applicable, add screenshots to help explain your problem.
如果可以的话, 提供屏幕截图对解决问题很有帮助.
### Build Environment 构建环境
- OS: [e.g. Windows 11, macOS, Ubuntu]
- Theme version/commit [e.g. 0.2.0, 2ccba79]
- Hugo version [e.g. 0.69.0]
Please try to use Hugo **extended** version before opening the issue.
请在创建 issue 之前先尝试使用 Hugo **extended** 版本构建.
### Preview Environment 预览环境
- OS: [e.g. Windows 11, macOS, Ubuntu, iOS, Android]
- Browser type/version [e.g. Chrome 103.0.5060.53, Safari 15.5, Edge 103.0.1264.37, Firefox 102.0]
### Additional Information 补充信息
Configuration files or front matter code...
配置文件或者前置参数的代码...

View file

@ -1,5 +0,0 @@
blank_issues_enabled: false
contact_links:
- name: Theme Documentation 主题文档
url: https://hugoloveit.com/categories/documentation/
about: Please read the documentation carefully. 请先仔细阅读主题文档.

View file

@ -1,22 +0,0 @@
---
name: Feature request 功能请求
about: Suggest an idea for this project 为这个项目提供一个建议
title: "[FEATURE] Some feature"
labels: enhancement
---
### Describe the feature you want 描述你的功能需求
- Feature 1 功能需求 1
I want this feature to solve ...
我希望这个功能解决 ...
- Feature 2 功能需求 2
I want this feature to solve ...
我希望这个功能解决 ...
- ...
### Useful reference 有价值的参考
If available, provide useful links to fulfill the feature.
如果可以的话, 提供实现这个功能的相关参考链接.

View file

@ -1,20 +0,0 @@
# Hugo default output directory
public/
/exampleSite/resources/
/exampleSite/.hugo_build.lock
node_modules/
build/
## OS Files
# Windows
Thumbs.db
ehthumbs.db
Desktop.ini
$RECYCLE.BIN/
# OSX
.DS_Store
# Linux
.directory

View file

@ -1,4 +0,0 @@
#!/bin/zsh
. "$(dirname "$0")/_/husky.sh"
npm run compile && npm run compile-lunr-segmentit && npm run hugo-production && npm run copy-resources && git add resources assets

View file

@ -1,21 +0,0 @@
The MIT License (MIT)
Copyright (c) 2018 LIUZHICHAO.COM
Copyright (c) 2019 DILLONZQ.COM
Permission is hereby granted, free of charge, to any person obtaining a copy of
this software and associated documentation files (the "Software"), to deal in
the Software without restriction, including without limitation the rights to
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
the Software, and to permit persons to whom the Software is furnished to do so,
subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

View file

@ -1,217 +0,0 @@
# LoveIt Theme | Hugo
[![GitHub release (latest by date)](https://img.shields.io/github/v/release/dillonzq/LoveIt?style=flat-square)](https://github.com/dillonzq/LoveIt/releases)
[![Hugo](https://img.shields.io/badge/Hugo-%5E0.128.0-ff4088?style=flat-square&logo=hugo)](https://gohugo.io/)
[![License](https://img.shields.io/github/license/dillonzq/LoveIt?style=flat-square)](https://github.com/dillonzq/LoveIt/blob/master/LICENSE)
[![Netlify Status](https://api.netlify.com/api/v1/badges/e60303f2-862c-4342-bf59-7c9adb10812e/deploy-status)](https://app.netlify.com/sites/hugo-loveit/deploys)
[![CircleCI](https://circleci.com/gh/dillonzq/LoveIt/tree/master.svg?style=svg)](https://circleci.com/gh/dillonzq/LoveIt/tree/master)
English README | [简体中文说明](https://github.com/dillonzq/LoveIt/blob/master/README.zh-cn.md)
> **LoveIt** is a **clean**, **elegant** but **advanced** blog theme for [Hugo](https://gohugo.io/).
It is based on the original [LeaveIt Theme](https://github.com/liuzc/LeaveIt) and [KeepIt Theme](https://github.com/Fastbyte01/KeepIt).
Since the three themes have a similar look, if you have questions about their differences,
read [Why choose LoveIt](#why-choose-loveit) so that you can choose the one that works best for you.
![Hugo Theme LoveIt](https://github.com/dillonzq/LoveIt/raw/master/images/Apple-Devices-Preview.png)
## [Demo Site](https://hugoloveit.com/)
To see this theme in action, here is a live [demo site](https://hugoloveit.com/) which is rendered with **LoveIt** theme.
## Why choose LoveIt
Compared to the original LeaveIt theme and the KeepIt theme, the LoveIt theme has the following modifications.
* Custom **Header**
* Custom **CSS Style**
* A new **home page**, compatible with the latest version of Hugo
* A lot of **style detail adjustments,** including color, font size, margins, code preview style
* More readable **dark mode**
* Some beautiful **CSS animations**
* Easy-to-use and self-expanding **table of contents**
* More **social links**, **share sites** and **comment system**
* **Search** supported by [Lunr.js](https://lunrjs.com/) or [algolia](https://www.algolia.com/)
* **Copy code** to clipboard with one click
* Extended Markdown syntax for **[Font Awesome](https://fontawesome.com/) icons**
* Extended Markdown syntax for **ruby annotation**
* Extended Markdown syntax for **fraction**
* **Mathematical formula** supported by [KaTeX](https://katex.org/)
* **Diagram syntax** shortcode supported by [mermaid](https://github.com/mermaid-js/mermaid)
* **Interactive data visualization** shortcode supported by [ECharts](https://echarts.apache.org/)
* **Mapbox** shortcode supported by [Mapbox GL JS](https://docs.mapbox.com/mapbox-gl-js)
* Embedded **music player** supported by [APlayer](https://github.com/MoePlayer/APlayer) and [MetingJS](https://github.com/metowolf/MetingJS)
* **Bilibili** player supported
* Kinds of **admonitions** shortcode supported
* Custom style shortcodes supported
* **CDN** for all third-party libraries supported
* ...
In short,
if you prefer the design language and freedom of the LoveIt theme,
if you want to use the extended Font Awesome icons conveniently,
if you want to embed mathematical formulas, flowcharts, music or Bilibili videos in your posts,
the LoveIt theme may be more suitable for you.
I hope you will LoveIt ❤️!
## Features
### Performance and SEO
* Optimized for **performance**: 99/100 on mobile and 100/100 on desktop in [Google PageSpeed Insights](https://developers.google.com/speed/pagespeed/insights)
* Optimized SEO performance with a correct **SEO SCHEMA** based on JSON-LD
* **[Google Analytics](https://analytics.google.com/analytics)** supported
* **[Fathom Analytics](https://usefathom.com/)** supported
* **[Plausible Analytics](https://plausible.io/)** supported
* **[Yandex Metrica](https://metrica.yandex.com/)** supported
* Search engine **verification** supported (Google, Bind, Yandex and Baidu)
* **CDN** for third-party libraries supported
* Automatically converted images with **Lazy Load** by [lazysizes](https://github.com/aFarkas/lazysizes)
### Appearance and Layout
* **Desktop/Mobile Responsive** layout
* **Light/Dark** mode
* Globally consistent **design language**
* **Pagination** supported
* Easy-to-use and self-expanding **table of contents**
* **Multilanguage** supported and i18n ready
* Beautiful **CSS animation**
### Social and Comment Systems
* **Gravatar** supported by [Gravatar](https://gravatar.com)
* Local **Avatar** supported
* Up to **76** social links supported
* Up to **24** share sites supported
* **Disqus** comment system supported by [Disqus](https://disqus.com)
* **Gitalk** comment system supported by [Gitalk](https://github.com/gitalk/gitalk)
* **Valine** comment system supported by [Valine](https://valine.js.org/)
* **Facebook comments** system supported by [Facebook](https://developers.facebook.com/docs/plugins/comments/)
* **Telegram comments** system supported by [Telegram Comments](https://comments.app/)
* **Commento** comment system supported by [Commento](https://commento.io/)
* **utterances** comment system supported by [utterances](https://utteranc.es/)
* **giscus** comment system supported by [giscus](https://giscus.app/)
### Extended Features
* **Search** supported by [Lunr.js](https://lunrjs.com/) or [algolia](https://www.algolia.com/)
* **Twemoji** supported
* Automatically **highlighting** code
* **Copy code** to clipboard with one click
* **Images gallery** supported by [lightGallery](https://github.com/sachinchoolur/lightgallery)
* Extended Markdown syntax for **[Font Awesome](https://fontawesome.com/) icons**
* Extended Markdown syntax for **ruby annotation**
* Extended Markdown syntax for **fraction**
* **Mathematical formula** supported by [KaTeX](https://katex.org/)
* **Diagrams** shortcode supported by [mermaid](https://github.com/mermaid-js/mermaid)
* **Interactive data visualization** shortcode supported by [ECharts](https://echarts.apache.org/)
* **Mapbox** shortcode supported by [Mapbox GL JS](https://docs.mapbox.com/mapbox-gl-js)
* **Music player** shortcode supported by [APlayer](https://github.com/MoePlayer/APlayer) and [MetingJS](https://github.com/metowolf/MetingJS)
* **Bilibili player** shortcode
* Kinds of **admonitions** shortcode
* **Custom style** shortcode
* **Custom script** shortcode
* **Animated typing** supported by [TypeIt](https://typeitjs.com/)
* **Cookie consent banner** supported by [cookieconsent](https://github.com/osano/cookieconsent)
* **Person** shortcode
* ...
## [Documentation](https://hugoloveit.com/categories/documentation/)
Build Documentation Locally:
```bash
hugo server --source=exampleSite
```
## Multilingual and i18n
LoveIt supports the following languages:
* English
* Simplified Chinese
* Traditional Chinese
* French
* Polish
* Portuguese (Brazil)
* Italian
* Spanish
* German
* Serbian
* Russian
* Romanian
* Vietnamese
* Arabic
* Catalan
* Thai
* Telugu
* Indonesian
* Turkish
* Korean
* Hindi
* Dutch
* Bengali
* [Contribute with a new language](https://github.com/dillonzq/LoveIt/pulls)
[Languages Compatibility](https://hugoloveit.com/theme-documentation-basics/#language-compatibility)
## [Roadmap](https://github.com/dillonzq/LoveIt/projects/1)
## Questions, ideas, bugs, pull requests
All feedback is welcome! Head over to the [issue tracker](https://github.com/dillonzq/LoveIt/issues).
## License
LoveIt is licensed under the **MIT** license. Check the [LICENSE file](https://github.com/dillonzq/LoveIt/blob/master/LICENSE) for details.
## Special Thanks
Thanks to the authors of following resources included in the theme:
* [normalize.css](https://github.com/necolas/normalize.css)
* [Font Awesome](https://fontawesome.com/)
* [Simple Icons](https://github.com/simple-icons/simple-icons)
* [Animate.css](https://daneden.github.io/animate.css/)
* [autocomplete](https://github.com/algolia/autocomplete)
* [Lunr.js](https://lunrjs.com/)
* [algoliasearch](https://github.com/algolia/algoliasearch-client-javascript)
* [lazysizes](https://github.com/aFarkas/lazysizes)
* [object-fit-images](https://github.com/fregante/object-fit-images)
* [Twemoji](https://github.com/twitter/twemoji)
* [emoji-data](https://github.com/iamcal/emoji-data)
* [lightGallery](https://github.com/sachinchoolur/lightgallery)
* [clipboard.js](https://github.com/zenorocha/clipboard.js)
* [Sharer.js](https://github.com/ellisonleao/sharer.js)
* [TypeIt](https://typeitjs.com/)
* [KaTeX](https://katex.org/)
* [mermaid](https://github.com/mermaid-js/mermaid)
* [ECharts](https://echarts.apache.org/)
* [Mapbox GL JS](https://docs.mapbox.com/mapbox-gl-js)
* [APlayer](https://github.com/MoePlayer/APlayer)
* [MetingJS](https://github.com/metowolf/MetingJS)
* [Gitalk](https://github.com/gitalk/gitalk)
* [Valine](https://valine.js.org/)
* [cookieconsent](https://github.com/osano/cookieconsent)
## Author
[Dillon](https://dillonzq.com)
## Sponsor
If you enjoy the theme, please consider buying me a coffee ☕️.
* [PayPal](https://paypal.me/dillonzq)
* [Alipay](https://github.com/dillonzq/LoveIt/raw/master/images/Alipay.jpg)
* [Wechat](https://github.com/dillonzq/LoveIt/raw/master/images/Wechat.jpg)
Thanks! ❤️
## Stargazers over time
[![Stargazers over time](https://starchart.cc/dillonzq/LoveIt.svg)](https://starchart.cc/dillonzq/LoveIt)

View file

@ -1,212 +0,0 @@
# LoveIt 主题 | Hugo
[![GitHub release (latest by date)](https://img.shields.io/github/v/release/dillonzq/LoveIt?style=flat-square)](https://github.com/dillonzq/LoveIt/releases)
[![Hugo](https://img.shields.io/badge/Hugo-%5E0.128.0-ff4088?style=flat-square&logo=hugo)](https://gohugo.io/)
[![License](https://img.shields.io/github/license/dillonzq/LoveIt?style=flat-square)](https://github.com/dillonzq/LoveIt/blob/master/LICENSE)
[![Netlify Status](https://api.netlify.com/api/v1/badges/e60303f2-862c-4342-bf59-7c9adb10812e/deploy-status)](https://app.netlify.com/sites/hugo-loveit/deploys)
[![CircleCI](https://circleci.com/gh/dillonzq/LoveIt/tree/master.svg?style=svg)](https://circleci.com/gh/dillonzq/LoveIt/tree/master)
[English README](https://github.com/dillonzq/LoveIt/blob/master/README.md) | 简体中文说明
> [LoveIt](https://github.com/dillonzq/LoveIt) 是一个**简洁**、**优雅**且**高效**的 [Hugo](https://gohugo.io/) 博客主题。
它的原型基于 [LeaveIt 主题](https://github.com/liuzc/LeaveIt) 和 [KeepIt 主题](https://github.com/Fastbyte01/KeepIt)。
由于三个主题外观的相似性,如果你对于它们的不同之处有疑问,请阅读 [为什么选择 LoveIt](#为什么选择-LoveIt),以便你能选择最适合你的一个。
![Hugo 主题 LoveIt](https://github.com/dillonzq/LoveIt/raw/master/images/Apple-Devices-Preview.png)
## 主题[预览](https://hugoloveit.com/zh-cn/)
为了直观地浏览主题特性,这里有一个基于 **LoveIt** 主题渲染的 [预览网站](https://hugoloveit.com/zh-cn/)。
## 为什么选择 LoveIt
相较于 LeaveIt 主题 和 KeepIt 主题LoveIt 主题主要有以下修改
* 自定义**标题栏**
* 自定义**CSS 样式**
* 焕然一新的**主页**,已经兼容最新版 Hugo
* 大量的**样式细节调整**,包括颜色、字体大小、边距、代码预览样式
* 可读性更强的**深色模式**
* 一些美观的 **CSS 动画**
* 易用和自动展开的**文章目录**
* 支持更多的**社交链接**、**网站分享**和**评论系统**
* 支持基于 [Lunr.js](https://lunrjs.com/) 或 [algolia](https://www.algolia.com/) 的**搜索**
* 一键**复制代码**到剪贴板
* 支持基于 **[Font Awesome](https://fontawesome.com/) 图标**的扩展 Markdown 语法
* 支持**上标注释**的扩展 Markdown 语法
* 支持**分数**的扩展 Markdown 语法
* 支持基于 [KaTeX](https://katex.org/) 的**数学公式**
* 支持基于 [mermaid](https://github.com/mermaid-js/mermaid) 的**图表**生成功能
* 支持基于 [ECharts](https://echarts.apache.org/) 的**交互式数据可视化**生成功能
* 支持基于 [Mapbox GL JS](https://docs.mapbox.com/mapbox-gl-js) 的 **Mapbox** 地图显示功能
* 支持基于 [APlayer](https://github.com/MoePlayer/APlayer) 和 [MetingJS](https://github.com/metowolf/MetingJS) 的内嵌**音乐播放器**
* 支持内嵌 **Bilibili** 视频
* 支持多种**注释**的 shortcode
* 支持自定义样式的 shortcode
* 支持所有第三方库的 **CDN**
* ...
所以,如果你更偏好 LoveIt 主题的设计语言和自由度,如果你想便捷地使用扩展的 Font Awesome 图标,如果你想在文章内嵌数学公式、流程图、音乐或是 Bilibili 视频,
那么LoveIt 主题可能是更适合你。
希望你会 LoveIt ❤️!
## 特性
### 性能和 SEO
* **性能**优化:在 [Google PageSpeed Insights](https://developers.google.com/speed/pagespeed/insights) 中, 99/100 的移动设备得分和 100/100 的桌面设备得分
* 使用基于 JSON-LD 格式 的 **SEO SCHEMA** 文件进行 SEO 优化
* 支持 **[Google Analytics](https://analytics.google.com/analytics)**
* 支持 **[Fathom Analytics](https://usefathom.com/)**
* 支持 **[Plausible Analytics](https://plausible.io/)**
* 支持 **[Yandex Metrica](https://metrica.yandex.com/)**
* 支持搜索引擎的**网站验证** (Google, Bind, Yandex 和 Baidu)
* 支持所有第三方库的 **CDN**
* 基于 [lazysizes](https://github.com/aFarkas/lazysizes) 自动转换图片为**懒加载**
### 外观和布局
* **桌面端/移动端 响应式**布局
* **浅色/深色** 主题模式
* 全局一致的**设计语言**
* 支持**分页**
* 易用和自动展开的**文章目录**
* 支持**多语言**和国际化
* 美观的 **CSS 动画**
### 社交和评论系统
* 支持 **[Gravatar](https://gravatar.com)** 头像
* 支持本地**头像**
* 支持多达 **76** 种社交链接
* 支持多达 **24** 种网站分享
* 支持 **[Disqus](https://disqus.com)** 评论系统
* 支持 **[Gitalk](https://github.com/gitalk/gitalk)** 评论系统
* 支持 **[Valine](https://valine.js.org/)** 评论系统
* 支持 **[Facebook comments](https://developers.facebook.com/docs/plugins/comments/)** 评论系统
* 支持 **[Telegram comments](https://comments.app/)** 评论系统
* 支持 **[Commento](https://commento.io/)** 评论系统
* 支持 **[utterances](https://utteranc.es/)** 评论系统
* 支持 **[giscus](https://giscus.app/)** 评论系统
### 扩展功能
* 支持基于 [Lunr.js](https://lunrjs.com/) 或 [algolia](https://www.algolia.com/) 的**搜索**
* 支持 **Twemoji**
* 支持**代码高亮**
* 一键**复制代码**到剪贴板
* 支持基于 [lightGallery](https://github.com/sachinchoolur/lightgallery) 的**图片画廊**
* 支持 **[Font Awesome](https://fontawesome.com/) 图标**的扩展 Markdown 语法
* 支持**上标注释**的扩展 Markdown 语法
* 支持**分数**的扩展 Markdown 语法
* 支持基于 [KaTeX](https://katex.org/) 的**数学公式**
* 支持基于 [mermaid](https://github.com/mermaid-js/mermaid) 的**图表** shortcode
* 支持基于 [ECharts](https://echarts.apache.org/) 的**交互式数据可视化** shortcode
* 支持基于 [Mapbox GL JS](https://docs.mapbox.com/mapbox-gl-js) 的 **Mapbox** shortcode
* 支持基于 [APlayer](https://github.com/MoePlayer/APlayer) 和 [MetingJS](https://github.com/metowolf/MetingJS) 的**音乐播放器** shortcode
* 支持 **Bilibili 视频** shortcode
* 支持多种**注释**的 shortcode
* 支持**自定义样式**的 shortcode
* 支持**自定义脚本**的 shortcode
* 支持基于 [TypeIt](https://typeitjs.com/) 的**打字动画** shortcode
* 支持基于 [cookieconsent](https://github.com/osano/cookieconsent) 的 **Cookie 许可横幅**
* 支持**人物标签**的 shortcode
* ...
## [文档](https://hugoloveit.com/zh-cn/categories/documentation/)
在本地构建文档:
```bash
hugo server --source=exampleSite
```
## 多语言和国际化
LoveIt 支持下列语言:
* 英语
* 简体中文
* 繁体中文
* 法语
* 波兰语
* 葡萄牙语(巴西)
* 意大利语
* 西班牙语
* 德语
* 塞尔维亚语
* 俄语
* 罗马尼亚语
* 越南语
* 阿拉伯语
* 加泰罗尼亚语
* 泰语
* 泰卢固语
* 印尼语
* 土耳其语
* 韩语
* 印地语
* 荷兰语
* 孟加拉语
* [贡献一种新的语言](https://github.com/dillonzq/LoveIt/pulls)
[语言兼容性](https://hugoloveit.com/zh-cn/theme-documentation-basics/#language-compatibility)
## [路线图](https://github.com/dillonzq/LoveIt/projects/1)
## 问题、想法、 bugs 和 PRs
所有的反馈都是欢迎的!详见 [issue tracker](https://github.com/dillonzq/LoveIt/issues)。
## 许可协议
LoveIt 根据 **MIT** 许可协议授权。 更多信息请查看 [LICENSE 文件](https://github.com/dillonzq/LoveIt/blob/master/LICENSE)。
## 特别感谢
LoveIt 主题中用到了以下项目,感谢它们的作者:
* [normalize.css](https://github.com/necolas/normalize.css)
* [Font Awesome](https://fontawesome.com/)
* [Simple Icons](https://github.com/simple-icons/simple-icons)
* [Animate.css](https://daneden.github.io/animate.css/)
* [autocomplete](https://github.com/algolia/autocomplete)
* [Lunr.js](https://lunrjs.com/)
* [algoliasearch](https://github.com/algolia/algoliasearch-client-javascript)
* [lazysizes](https://github.com/aFarkas/lazysizes)
* [object-fit-images](https://github.com/fregante/object-fit-images)
* [Twemoji](https://github.com/twitter/twemoji)
* [emoji-data](https://github.com/iamcal/emoji-data)
* [lightGallery](https://github.com/sachinchoolur/lightgallery)
* [clipboard.js](https://github.com/zenorocha/clipboard.js)
* [Sharer.js](https://github.com/ellisonleao/sharer.js)
* [TypeIt](https://typeitjs.com/)
* [KaTeX](https://katex.org/)
* [mermaid](https://github.com/mermaid-js/mermaid)
* [ECharts](https://echarts.apache.org/)
* [Mapbox GL JS](https://docs.mapbox.com/mapbox-gl-js)
* [APlayer](https://github.com/MoePlayer/APlayer)
* [MetingJS](https://github.com/metowolf/MetingJS)
* [Gitalk](https://github.com/gitalk/gitalk)
* [Valine](https://valine.js.org/)
* [cookieconsent](https://github.com/osano/cookieconsent)
## 作者
[Dillon](https://dillonzq.com)
## 赞助支持
如果你喜爱这个主题, 请考虑给我买杯咖啡 ☕️.
* [PayPal](https://paypal.me/dillonzq)
* [支付宝](https://github.com/dillonzq/LoveIt/raw/master/images/Alipay.jpg)
* [微信支付](https://github.com/dillonzq/LoveIt/raw/master/images/Wechat.jpg)
谢谢! ❤️
## Star 数目趋势
[![Star 数目趋势](https://starchart.cc/dillonzq/LoveIt.svg)](https://starchart.cc/dillonzq/LoveIt)

View file

@ -1,63 +0,0 @@
---
title: "{{ replace .TranslationBaseName "-" " " | title }}"
subtitle: ""
date: {{ .Date }}
lastmod: {{ .Date }}
draft: true
author: ""
authorLink: ""
description: ""
license: ""
images: []
tags: []
categories: []
featuredImage: ""
featuredImagePreview: ""
hiddenFromHomePage: false
hiddenFromSearch: false
twemoji: false
lightgallery: true
ruby: true
fraction: true
fontawesome: true
linkToMarkdown: true
rssFullText: false
toc:
enable: true
auto: true
keepStatic: false
code:
copy: true
maxShownLines: 50
math:
enable: false
# ...
mapbox:
# ...
share:
enable: true
# ...
comment:
enable: true
# ...
library:
css:
# someCSS = "some.css"
# located in "assets/"
# Or
# someCSS = "https://cdn.example.com/some.css"
js:
# someJS = "some.js"
# located in "assets/"
# Or
# someJS = "https://cdn.example.com/some.js"
seo:
images: []
# ...
---
<!--more-->

View file

@ -1,61 +0,0 @@
html {
font-family: var(--global-font-family);
font-weight: var(--global-font-weight);
font-display: swap;
font-size: var(--global-font-size);
line-height: var(--global-line-height);
width:100%;
scroll-behavior: smooth;
main [id] {
scroll-margin-top: calc(var(--header-height) + .5rem);
}
h1 {
line-height: 125%;
}
}
/* scrollbar, only support webkit */
::-webkit-scrollbar {
width: .5rem;
height: .5rem;
}
::-webkit-scrollbar-thumb {
background-color: $scrollbar-color;
&:hover {
background-color: $scrollbar-hover-color;
}
}
::selection {
background-color: $selection-color;
[theme=dark] & {
background-color: $selection-color-dark;
}
}
body {
background-color: $global-background-color;
color: $global-font-color;
@include overflow-wrap(break-word);
scrollbar-color: auto;
&[theme=dark] {
color: $global-font-color-dark;
background-color: $global-background-color-dark;
}
}
@include link(true, true);
@import "../_partial/mask";
@import "../_partial/img";
@import "../_partial/icon";
@import "../_partial/details";
@import "../_partial/fixed-button";
@import "../_partial/cookieconsent";

View file

@ -1,21 +0,0 @@
footer {
height: 2rem;
width: 100%;
text-align: center;
line-height: 1.25rem;
padding: 1rem 0;
.footer-container {
font-size: .875rem;
.footer-line {
width: 100%;
.icp-br {
display: none;
}
}
}
@include blur;
}

View file

@ -1,468 +0,0 @@
header {
width: 100%;
z-index: 150;
background-color: $header-background-color;
@include transition(box-shadow 0.3s ease);
[theme=dark] & {
background-color: $header-background-color-dark;
}
.logo {
min-height: 1.5em;
height: 1.5em;
vertical-align: text-bottom;
}
.logo, .header-title-pre {
padding-right: .25rem;
}
.header-title-post {
padding-left: .25rem;
}
&:hover {
@include box-shadow(0 0 1.5rem 0 rgba(0, 0, 0, .1));
}
}
.header-wrapper {
display: flex;
justify-content: space-between;
align-items: center;
box-sizing: border-box;
width: 100%;
}
.header-title {
font-family: var(--header-title-font-family);
font-weight: bold;
margin-right: .5rem;
min-width: 10%;
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
@include flex(10);
}
.menu .menu-item {
position: relative;
}
.language-select {
position: absolute;
opacity: 0;
left: 0;
top: 0;
width: 100%;
height: 100%;
&:hover {
cursor: pointer;
}
}
.search {
position: relative;
input {
color: transparent;
box-sizing: border-box;
height: 2.5rem;
width: 2.5rem;
@include border-radius(.5rem);
border: none;
outline: none;
background-color: $header-background-color;
vertical-align: baseline !important;
@include transition(width 0.3s ease);
[theme=dark] & {
background-color: $header-background-color-dark;
}
}
@include placeholder(transparent);
.search-button {
margin: 0;
position: absolute;
left: auto;
right: 1rem;
}
.search-toggle {
left: .5rem;
right: auto;
}
.search-loading {
display: none;
}
.search-clear {
display: none;
}
.open &, &.mobile {
input {
color: $global-font-color;
background-color: $search-background-color;
padding: 0 2rem 0 2rem;
}
[theme=dark] & {
input {
color: $global-font-color-dark;
background-color: $search-background-color-dark;
}
@include placeholder($global-font-secondary-color-dark);
}
@include placeholder($global-font-secondary-color);
.search-button {
color: $global-font-secondary-color;
[theme=dark] & {
color: $global-font-secondary-color-dark;
}
}
.search-clear:hover {
color: #ff6b6b;
}
.search-toggle:hover {
cursor: default;
}
}
}
.theme-switch i {
@include transform(rotate(225deg));
}
#header-desktop {
display: block;
position: fixed;
height: var(--header-height);
line-height: var(--header-height);
[data-header-desktop=normal] & {
position: static;
}
.header-wrapper {
padding: 0 2rem 0 10vh;
.header-title {
font-size: var(--header-title-font-size);
}
.menu {
overflow: hidden;
white-space: nowrap;
.menu-inner {
float: right;
}
.menu-item {
margin: 0 .5rem;
&.delimiter {
border-left: 1.5px solid $global-font-color;
[theme=dark] & {
border-left-color: $global-border-color-dark;
}
}
&.language {
margin-right: 0;
}
&.search {
margin: 0 -.5rem 0 0;
}
}
a.active {
font-weight: 900;
color: $header-hover-color;
[theme=dark] & {
color: $header-hover-color-dark;
}
}
}
}
&.open .header-wrapper .menu .menu-item.search {
margin: 0 .25rem 0 .5rem;
input {
width: 24rem;
}
}
}
#header-mobile {
display: none;
position: fixed;
height: var(--header-height);
line-height: var(--header-height);
[data-header-mobile=normal] & {
position: static;
}
.header-container {
padding: 0;
margin: 0;
.header-wrapper {
padding: 0 1rem;
font-size: 1.125rem;
@include transition(margin-top 0.3s ease);
.header-title {
font-size: var(--header-title-font-size);
max-width: 80%;
}
.menu-toggle {
line-height: 4rem;
cursor: pointer;
@include transition(width 0.3s ease);
span {
display: block;
background: $global-font-color;
width: 1.5rem;
height: 2px;
@include border-radius(3px);
@include transition(all 0.3s ease-in-out);
[theme=dark] & {
background: $global-font-color-dark;
}
}
span:nth-child(1) {
margin-bottom: .5rem;
}
span:nth-child(3) {
margin-top: .5rem;
}
&.active {
span:nth-child(1) {
@include transform(rotate(45deg) translate(.4rem, .5rem));
}
span:nth-child(2) {
opacity: 0
}
span:nth-child(3) {
@include transform(rotate(-45deg) translate(.4rem, -.5rem));
}
}
}
}
.menu {
text-align: center;
background: $header-background-color;
border-top: 2px solid $global-border-color;
display: none;
padding-top: .5rem;
@include box-shadow(0 .125rem .25rem rgba(0, 0, 0, .1));
.search-wrapper {
display: flex;
justify-content: space-between;
align-items: center;
box-sizing: border-box;
padding: calc((var(--header-height) - 2.5rem) / 2) 1rem;
line-height: 2.5rem;
}
.search {
flex-grow: 10;
.algolia-autocomplete, input {
width: 100%;
}
}
.search-button {
top: 0;
}
.search-cancel {
display: none;
margin-left: .75rem;
}
.menu-item {
display: block;
line-height: 2.5rem;
}
&.active {
display: block;
}
[theme=dark] & {
background: $header-background-color-dark;
border-top-color: $global-border-color-dark;
}
}
}
&.open {
.header-wrapper {
margin-top: calc(0px - var(--header-height));
}
.menu {
padding-top: 0;
border-top: none;
.menu-item {
display: none;
}
.search-cancel {
display: inline;
}
}
}
}
.search-dropdown {
position: fixed;
z-index: 200;
top: var(--header-height);
@include box-shadow(0 .125rem .25rem rgba(0, 0, 0, .1));
&.desktop {
right: 2rem;
width: 30rem;
}
&.mobile {
right: 0;
width: 100%;
}
.dropdown-menu {
right: 0 !important;
background-color: $global-background-color;
[theme=dark] & {
background-color: $global-background-color-dark;
}
.suggestions {
overflow-y: auto;
max-height: calc(100vh - var(--header-height));
.suggestion {
padding: .75rem 1rem;
.suggestion-title {
display: inline-block;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
font-size: 1rem;
font-weight: bold;
max-width: 75%;
}
.suggestion-date {
font-size: .875rem;
float: right;
text-align: right;
color: $global-font-secondary-color;
[theme=dark] & {
color: $global-font-secondary-color-dark;
}
}
.suggestion-context {
line-height: 1.25rem;
@include box(vertical);
-webkit-line-clamp: 2;
overflow: hidden;
text-overflow: ellipsis;
@include overflow-wrap(break-word);
color: $global-font-secondary-color;
[theme=dark] & {
color: $global-font-secondary-color-dark;
}
}
em {
font-style: normal;
background-color: $selection-color;
[theme=dark] & {
background-color: $selection-color-dark;
}
}
&.cursor {
background: darken($code-background-color, 5%);
[theme=dark] & {
background: lighten($code-background-color-dark, 5%);
}
}
&:hover {
cursor: pointer;
}
}
}
.search-empty {
padding: 1rem;
text-align: center;
.search-query {
font-weight: bold;
[theme=dark] & {
color: #ddd;
}
}
}
.search-footer {
padding: .5rem 1rem;
float: right;
font-size: .8rem;
color: $global-font-secondary-color;
[theme=dark] {
color: $global-font-secondary-color-dark;
}
@include link(false, false);
a {
font-size: 1rem;
}
}
}
}

View file

@ -1,15 +0,0 @@
/** Layout **/
.wrapper {
display: flex;
flex-direction: column;
min-height: 100vh;
width: 100%;
main {
flex: 1 0 auto;
.container {
padding: 0 1rem;
}
}
}

View file

@ -1,86 +0,0 @@
@media only screen and (max-width: 1440px) {
.page {
width: 60%;
}
}
@media only screen and (max-width: 1440px) {
.page {
width: 56%;
}
}
@media only screen and (max-width: 1280px) {
.page {
width: 52%;
}
#header-desktop .header-wrapper {
padding-right: 1rem;
}
.search-dropdown.desktop {
right: 1rem;
}
}
@media only screen and (max-width: 960px) {
#toc-auto {
display: none;
}
#toc-static {
display: block;
}
.page {
width: 80%;
}
#header-desktop .header-wrapper {
padding-left: 1rem;
}
}
@media only screen and (max-width: 680px) {
#header-desktop {
display: none;
}
#header-mobile {
display: block;
}
body.blur {
overflow: hidden;
}
.page {
width: 100%;
[data-header-mobile] & {
padding-top: var(--header-height);
}
[data-header-mobile=normal] & {
padding-top: 0;
}
.categories-card {
.card-item {
width: 100%;
}
}
}
.copyright {
.copyright-line {
.icp-splitter {
display: none;
}
.icp-br {
display: block;
}
}
}
}

View file

@ -1,91 +0,0 @@
.pagination {
display: flex;
flex-direction: row;
justify-content: center;
list-style: none;
white-space: nowrap;
width: 100%;
padding: 1rem 0 0;
a {
font-size: .8rem;
color: #bfbfbf;
letter-spacing: .1rem;
font-weight: 700;
padding: 5px 5px;
text-decoration: none;
@include transition(0.3s);
}
li {
padding-bottom: 3px;
margin: 0 20px;
box-sizing: border-box;
position: relative;
display: inline;
&.disabled {
display: none;
}
&:hover a {
color: $pagination-link-hover-color;
}
[theme=dark] &:hover a {
color: $pagination-link-hover-color-dark;
}
&:before,
&:after {
position: absolute;
content: "";
width: 0;
height: 3px;
background: $pagination-link-hover-color;
@include transition(0.3s);
bottom: 0px;
}
[theme=dark] &:before,
[theme=dark] &:after {
background: $pagination-link-hover-color-dark;
}
&:before .active,
&:after .active {
width: 100%;
}
&:before {
left: 50%;
}
&:after {
right: 50%;
}
&:hover {
&:before,
&:after {
width: 50%;
}
}
&.active {
a {
color: $pagination-link-hover-color;
}
[theme=dark] & a {
color: $pagination-link-hover-color-dark;
}
&:before,
&:after {
width: 60%;
}
}
}
}

View file

@ -1,30 +0,0 @@
:root {
// ========== Global ========== //
// Font and Line Height
--global-font-family: #{inspect($global-font-family)};
--global-font-size: #{$global-font-size};
--global-font-weight: #{$global-font-weight};
--global-line-height: #{$global-line-height};
// ========== Global ========== //
// ========== Header ========== //
// Height of the header
--header-height: #{$header-height};
// Font family and size of the header title
--header-title-font-family: #{inspect($header-title-font-family)};
--header-title-font-size: #{$header-title-font-size};
// ========== Header ========== //
// ========== Single Content ========== //
// Font size of the TOC
--toc-title-font-size: #{$toc-title-font-size};
--toc-content-font-size: #{$toc-content-font-size};
// ========== Single Content ========== //
// ========== Code ========== //
// Font family and size of the code
--code-font-family: #{inspect($code-font-family)};
--code-font-size: #{$code-font-size};
// ========== Code ========== //
}

View file

@ -1,4 +0,0 @@
// ==============================
// Custom style
// 自定义样式
// ==============================

View file

@ -1,5 +0,0 @@
@mixin blur {
.blur & {
@include filter(blur(1.5px));
}
}

View file

@ -1,101 +0,0 @@
@mixin border-radius($value) {
-webkit-border-radius: $value;
-moz-border-radius: $value;
border-radius: $value;
}
@mixin box-shadow($values...) {
-webkit-box-shadow: $values;
box-shadow: $values;
}
@mixin transition($values...) {
-webkit-transition: $values;
-moz-transition: $values;
-o-transition: $values;
transition: $values;
}
@mixin transform($value) {
-webkit-transform: $value;
-ms-transform: $value;
-o-transform: $value;
transform: $value;
}
@mixin filter($value) {
-webkit-filter: $value;
filter: $value;
}
@mixin flex($value) {
-webkit-flex: $value;
flex: $value;
}
@mixin box($orient) {
display: -moz-box;
display: -webkit-box;
display: box;
-webkit-box-orient: $orient;
-moz-box-orient: $orient;
// box-orient: $orient;
}
@mixin placeholder($color) {
input::-webkit-input-placeholder{
color: $color;
}
input:-moz-placeholder{
color: $color;
}
input::-moz-placeholder{
color: $color;
}
input:-ms-input-placeholder{
color: $color;
}
input::placeholder {
color: $color;
}
}
@mixin max-content($property) {
#{$property}: -webkit-max-content;
#{$property}: -moz-max-content;
#{$property}: intrinsic;
#{$property}: max-content;
}
@mixin tab-size($value) {
-moz-tab-size: $value;
-o-tab-size: $value;
tab-size: $value;
}
@mixin appearance($value) {
-webkit-appearance: $value;
-moz-appearance: $value;
}
@mixin overflow-wrap($value) {
word-wrap: $value;
overflow-wrap: $value;
}
@mixin line-break($value) {
-webkit-line-break: $value;
-ms-line-break: $value;
line-break: $value;
}
@mixin object-fit($value) {
-o-object-fit: $value;
object-fit: $value;
font-family: "object-fit: #{$value};";
}

View file

@ -1,7 +0,0 @@
@mixin details-transition-open {
@include transition(max-height 0.8s cubic-bezier(0, 1, 0, 1) -0.1s);
}
@mixin details-transition-close {
@include transition(max-height 0.8s cubic-bezier(0.5, 0, 1, 0) 0s);
}

View file

@ -1,4 +0,0 @@
@import "_compatibility";
@import "_link";
@import "_blur";
@import "_details";

View file

@ -1,36 +0,0 @@
@mixin link($light, $dark) {
a, a::before, a::after {
text-decoration: none;
@if $light {
color: $global-link-color;
} @else {
color: $single-link-color;
}
[theme=dark] & {
@if $dark {
color: $global-link-color-dark;
} @else {
color: $single-link-color-dark;
}
}
}
a:active,
a:hover {
@if $light {
color: $global-link-hover-color;
} @else {
color: $single-link-hover-color;
}
[theme=dark] & {
@if $dark {
color: $global-link-hover-color-dark;
} @else {
color: $single-link-hover-color-dark;
}
}
}
}

View file

@ -1,4 +0,0 @@
// ==============================
// Override Variables
// 覆盖变量
// ==============================

View file

@ -1,6 +0,0 @@
#content-404 {
font-size: 1.8rem;
line-height: 3rem;
@include transform(translateY(30vh));
text-align: center;
}

View file

@ -1,13 +0,0 @@
.archive {
.single-title {
text-align: right;
}
.group-title {
margin-top: 1.5rem;
margin-bottom: 1rem;
}
@import "../_partial/_archive/terms";
@import "../_partial/_archive/tags";
}

View file

@ -1,183 +0,0 @@
.home {
padding-bottom: 5rem;
.home-profile {
@include transform(translateY( 16vh));
padding: 0 0 .5rem;
text-align: center;
.home-avatar {
padding: .5rem;
img {
display: inline-block;
width: 8rem;
height: auto;
margin: 0 auto;
@include border-radius(100%);
@include box-shadow(0 0 0 .3618em rgba(0, 0, 0, .05));
@include transition(all 0.4s ease);
&:hover {
position: relative;
@include transform(translateY(-.75rem));
}
}
}
.home-title {
font-size: 1.25rem;
font-weight: bold;
margin: 0;
padding: .5rem;
}
.home-subtitle {
font-size: 1rem;
font-weight: normal;
margin: 0;
padding: .5rem;
}
.links {
padding: .5rem;
font-size: 1.5rem;
a * {
vertical-align: text-bottom;
}
img {
height: 1.5rem;
padding: 0 .25rem;
}
}
.home-disclaimer {
font-size: 1rem;
line-height: 1.5rem;
font-weight: normal;
margin: 0;
padding: .5rem;
color: $global-font-secondary-color;
[theme=dark] & {
color: $global-font-secondary-color-dark;
}
}
}
}
.home[data-home=posts] {
.home-profile {
@include transform(translateY(0));
padding-top: 2rem;
}
.home-avatar img {
width: 6rem;
}
.summary {
padding-top: 1rem;
padding-bottom: .8rem;
color: $global-font-color;
border-bottom: 1px dashed $global-border-color;
[theme=dark] & {
color: $global-font-color-dark;
border-bottom: 1px dashed $global-border-color-dark;
}
.featured-image-preview {
width: 100%;
padding: 30% 0 0;
position: relative;
margin: 0.6rem auto;
@include transition(transform 0.4s ease);
img {
position: absolute;
width: 100%;
height: 100%;
left: 0;
top: 0;
&.lazyloaded {
@include object-fit(cover);
}
}
&:hover {
@include transform(scale(1.01));
}
}
.single-title {
font-size: 1.25rem;
line-height: 140%;
margin: 0.4rem 0;
}
.content {
@include box(vertical);
-webkit-line-clamp: 3;
margin-top: .3rem;
width: 100%;
overflow: hidden;
text-overflow: ellipsis;
@include overflow-wrap(break-word);
color: $global-font-secondary-color;
[theme=dark] & {
color: $global-font-secondary-color-dark;
}
h2,
h3,
h4,
h5,
h6,
p {
font-size: 1rem;
line-height: 1.5;
display: inline;
&::after {
content: "\A";
white-space: pre;
}
}
h2 {
font-size: 1.125rem;
}
@include link(false, true);
b, strong {
color: $global-font-secondary-color;
[theme=dark] & {
color: $global-font-secondary-color-dark;
}
}
}
.post-footer {
margin-top: .4rem;
display: flex;
justify-content: space-between;
align-items: center;
font-size: .875rem;
@include link(false, false);
.post-tags {
padding: 0;
@include link(true, true);
}
}
}
}

View file

@ -1,22 +0,0 @@
.page {
position: relative;
max-width: 1080px;
width: 64%;
margin: 0 auto;
[data-header-desktop] & {
padding-top: var(--header-height);
}
[data-header-desktop=normal] & {
padding-top: 0;
}
@include blur;
}
@import "_single";
@import "_special";
@import "_archive";
@import "_home";
@import "_404";

View file

@ -1,348 +0,0 @@
@import "../_partial/_single/toc";
.single {
.single-title {
margin: 2rem 0 .5rem;
font-size: 1.6rem;
font-weight: bold;
line-height: 140%;
}
.single-subtitle {
margin: .5rem 0;
font-size: 1.2rem;
font-weight: normal;
line-height: 100%;
}
.post-meta {
font-size: .875rem;
color: $global-font-secondary-color;
span {
display: inline-block;
}
[theme=dark] & {
color: $global-font-secondary-color-dark;
}
@include link(false, true);
.author {
font-size: 1.05rem;
}
}
.featured-image {
margin: .5rem 0 1rem 0;
img {
display: block;
max-width: 100%;
height: auto;
margin: 0 auto;
overflow: hidden;
}
img.lazyloaded {
width: 100%;
}
}
.content {
> h2 {
font-size: 1.5rem;
& code {
font-size: 1.25rem;
}
}
> h3 {
font-size: 1.375rem;
& code {
font-size: 1.125rem;
}
}
> h4 {
font-size: 1.25rem;
& code {
font-size: 1rem;
}
}
> h5 {
font-size: 1.125rem;
}
> h6 {
font-size: 1rem;
}
h2,
h3,
h4,
h5,
h6 {
font-weight: bold;
margin: 1.2rem 0;
[theme=dark] & {
font-weight: bolder;
}
}
> h2,
> h3,
> h4,
> h5,
> h6 {
> .header-mark::before {
content: "|";
margin-right: .3125rem;
color: $single-link-color;
[theme=dark] & {
color: $single-link-color-dark;
}
}
}
> h2 > .header-mark::before {
content: "#";
}
p {
margin: .5rem 0;
}
b, strong {
font-weight: bold;
[theme=dark] & {
color: #ddd;
}
}
@include link(false, false);
a {
@include overflow-wrap(break-word);
[theme=dark] & b, [theme=dark] & strong {
color: $single-link-color-dark;
}
}
[theme=dark] a:hover b, [theme=dark] a:hover strong {
color: $single-link-hover-color-dark;
}
ul, ol {
margin: .5rem 0;
padding-left: 2.5rem;
}
ul {
list-style-type: disc;
}
ruby {
background: $code-background-color;
rt {
color: $global-font-secondary-color;
}
[theme=dark] & {
background: $code-background-color-dark;
rt {
color: $global-font-secondary-color-dark;
}
}
}
table {
width: 100%;
max-width: 100%;
margin: .625rem 0;
border-spacing: 0;
background: $table-background-color;
border-collapse: collapse;
overflow-x: auto;
&::-webkit-scrollbar {
background-color: $table-background-color;
[theme=dark] & {
background-color: $table-background-color-dark;
}
}
[theme=dark] & {
background: $table-background-color-dark;
}
thead {
background: $table-thead-color;
[theme=dark] & {
background-color: $table-thead-color-dark;
}
}
th, td {
padding: .3rem 1rem;
border: 1px solid darken($table-thead-color, 2%);
[theme=dark] & {
border-color: darken($table-thead-color-dark, 2%);
}
}
}
img {
max-width: 100%;
min-height: 1em;
height: auto;
}
figure {
margin: .5rem;
text-align: center;
.image-caption:not(:empty) {
min-width: 20%;
max-width: 80%;
display: inline-block;
padding: .5rem;
margin: 0 auto;
font-size: .875rem;
color: #969696;
}
img {
display: block;
width: 100%;
height: auto;
margin: 0 auto;
overflow: hidden;
}
}
blockquote {
display: block;
border-left: .5rem solid $blockquote-color;
background-color: rgba($blockquote-color, .2);
padding: .25rem .75rem;
margin: 1rem 0;
[theme=dark] & {
border-left-color: $blockquote-color-dark;
background-color: rgba($blockquote-color-dark, .2);
}
}
.footnotes {
color: $global-font-secondary-color;
[theme=dark] & {
color: $global-font-secondary-color-dark;
}
p {
margin: .25rem 0;
}
}
@import "../_partial/_single/code";
@import "../_partial/_single/gist";
@import "../_partial/_single/instagram";
@import "../_partial/_single/admonition";
@import "../_partial/_single/echarts";
@import "../_partial/_single/mapbox";
@import "../_partial/_single/music";
@import "../_partial/_single/bilibili";
hr {
margin: 1rem 0;
position: relative;
border-top: 1px dashed $global-border-color;
border-bottom: none;
[theme=dark] & {
border-top: 1px dashed $global-border-color-dark;
}
}
kbd {
display: inline-block;
padding: .25rem;
background-color: $global-background-color;
border: 1px solid $global-border-color;
border-bottom-color: $global-border-color;
@include border-radius(3px);
@include box-shadow(inset 0 -1px 0 $global-border-color);
font-size: .8rem;
font-family: var(--code-font-family);
color: $code-color;
[theme=dark] & {
background-color: $global-background-color-dark;
border: 1px solid $global-border-color-dark;
border-bottom-color: $global-border-color-dark;
@include box-shadow(inset 0 -1px 0 $global-border-color-dark);
color: $code-color-dark;
}
}
.version {
height: 1.25em;
vertical-align: text-bottom;
}
.person-mention.h-card {
display: inline-block;
img {
vertical-align: -12%;
max-height: 1.1em;
margin-right: 0;
border-radius: 50%;
}
}
}
@import "../_partial/_single/footer";
@import "../_partial/_single/comment";
}
.typeit {
.highlight {
padding: .375rem;
font-size: .875rem;
font-family: var(--code-font-family);
font-weight: bold;
word-break: break-all;
white-space: pre-wrap;
}
--ti-cursor-font-family: var(--global-font-family);
--ti-cursor-font-size: var(--global-font-size);
--ti-cursor-font-weight: var(--global-font-weight);
--ti-cursor-line-height: var(--global-line-height);
--ti-cursor-color: $global-font-secondary-color;
--ti-cursor-margin-left: 0;
[theme=dark] & {
--ti-cursor-color: $global-font-secondary-color-dark;
}
}
.lg-toolbar .lg-icon::after {
color: #999;
}

View file

@ -1,5 +0,0 @@
.special {
.single-title, .single-subtitle {
text-align: right;
}
}

View file

@ -1,27 +0,0 @@
.tag-cloud-tags {
margin: 10px 0;
@include link(true, true);
a {
display: inline-block;
position: relative;
margin: 5px 10px;
@include overflow-wrap(break-word);
@include transition(all ease-out 0.3s);
&:active,
&:focus,
&:hover {
@include transform(scale(1.2));
}
sup {
color: $global-font-secondary-color;
[theme=dark] & {
color: $global-font-secondary-color-dark;
}
}
}
}

View file

@ -1,82 +0,0 @@
.categories-card {
margin: 0 auto;
margin-top: 3rem;
display: flex;
align-items: center;
justify-content: space-between;
flex-direction: row;
flex-wrap: wrap;
line-height: 1.6rem;
.card-item {
font-size: .875rem;
text-align: left;
width: 45%;
display: flex;
align-items: flex-start;
margin-top: 2rem;
min-height: 10rem;
padding: 0 2%;
position: relative;
.card-item-wrapper {
width: 100%;
overflow: hidden;
.card-item-title {
font-size: 1.2rem;
font-weight: bold;
display: inline-block;
margin-top: 1rem;
margin-bottom: .75rem;
}
span {
float: right;
padding-right: 1rem;
}
}
}
}
.archive-item {
display: flex;
justify-content: space-between;
align-items: center;
box-sizing: border-box;
margin: .25rem 0 .25rem 1.5rem;
}
.archive-item-link {
min-width: 10%;
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
&:hover {
color: $global-link-hover-color;
background-color: transparent;
}
[theme=dark] & {
color: $global-link-color-dark;
&:hover {
color: $global-link-hover-color-dark;
}
}
}
.archive-item-date {
width: 5em;
text-align: right;
color: $global-font-secondary-color;
[theme=dark] & {
color: $global-font-secondary-color-dark;
}
}
.more-post {
text-align: right;
}

View file

@ -1,17 +0,0 @@
.cc-window.cc-banner {
.cc-btn {
color: $global-font-color;
&:hover, &:focus {
background-color: #ccc;
}
[theme=dark] & {
color: $global-font-color;
&:hover, &:focus {
background-color: #fff;
}
}
}
}

View file

@ -1,33 +0,0 @@
.details {
.details-summary {
&:hover {
cursor: pointer;
}
}
i.details-icon {
color: $global-font-secondary-color;
@include transition(transform 0.2s ease);
[theme=dark] & {
color: $global-font-secondary-color-dark;
}
}
.details-content {
max-height: 0;
overflow-y: hidden;
@include details-transition-open;
}
&.open {
i.details-icon {
@include transform(rotate(90deg));
}
.details-content {
max-height: 10000px;
@include details-transition-close;
}
}
}

View file

@ -1,54 +0,0 @@
#fixed-buttons {
display: none;
}
#fixed-buttons-hidden {
display: none;
}
.fixed-button {
display: block;
z-index: 100;
position: fixed;
right: 1.5rem;
bottom: 1.5rem;
font-size: 1rem;
line-height: 1.3rem;
padding: .6rem .6rem;
color: $global-font-secondary-color;
background: $header-background-color;
@include border-radius(2rem);
@include transition(color 0.4s ease);
@include blur;
&:hover, &:active {
color: $global-font-color;
cursor: pointer;
}
&:active, &:focus, &:hover {
outline: none;
}
[theme=dark] & {
color: $global-font-secondary-color-dark;
background: $header-background-color-dark;
&:hover, &:active {
color: $global-font-color-dark;
}
}
&:nth-last-of-type(1) {
bottom: 1.5rem;
}
&:nth-last-of-type(2) {
bottom: 4.5rem;
}
&:nth-last-of-type(3) {
bottom: 7.5rem;
}
}

View file

@ -1,17 +0,0 @@
svg.icon {
display: inline-block;
width: 1.25em;
height: 1em;
text-align: center;
path {
fill: currentColor;
}
}
img.emoji {
height: 1em;
width: 1em;
margin: 0 .05em 0 .1em;
vertical-align: -.1em;
}

View file

@ -1,9 +0,0 @@
img {
&.lazyload, &.lazyloading {
@include object-fit(scale-down);
}
&.lazyloaded {
@include object-fit(contain);
}
}

View file

@ -1,16 +0,0 @@
#mask {
background-repeat: no-repeat;
background-position: center;
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
z-index: -1;
background-color: rgba(0, 0, 0, 0);
.blur & {
z-index: 100;
background-color: rgba(0, 0, 0, .25);
}
}

View file

@ -1,72 +0,0 @@
.admonition {
position: relative;
margin: 1rem 0;
padding: 0 .75rem;
border-left: .25rem solid;
overflow: auto;
.admonition-title {
font-weight: bold;
margin: 0 -0.75rem;
padding: .25rem 1.8rem;
}
.admonition-content {
padding: .5rem 0;
}
i.icon {
font-size: 0.85rem;
position: absolute;
top: .6rem;
left: .4rem;
}
i.details-icon {
position: absolute;
top: .6rem;
right: .3rem;
}
@each $type, $color, $background-color in $admonition-color-list {
@if $type == "note" {
background-color: $background-color;
border-left-color: $color;
.admonition-title {
border-bottom-color: $background-color;
background-color: opacify($background-color, 0.15);
}
&.open .admonition-title {
background-color: $background-color;
}
i.icon {
color: $color;
}
} @else {
&.#{$type} {
background-color: $background-color;
border-left-color: $color;
.admonition-title {
border-bottom-color: $background-color;
background-color: opacify($background-color, 0.15);
}
&.open .admonition-title {
background-color: $background-color;
}
i.icon {
color: $color;
}
}
}
}
&:last-child {
margin-bottom: .75rem;
}
}

View file

@ -1,16 +0,0 @@
.bilibili {
position: relative;
width: 100%;
height: 0;
padding-bottom: 75%;
margin: 3% auto;
text-align: center;
iframe {
position: absolute;
width: 100%;
height: 100%;
left: 0;
top: 0;
}
}

View file

@ -1,192 +0,0 @@
code {
display: inline-block;
max-width: 100%;
padding: 0 .4rem;
@include overflow-wrap(break-word);
@include line-break(anywhere);
font-size: var(--code-font-size);
font-family: var(--code-font-family);
color: $code-color;
[theme=dark] & {
color: $code-color-dark;
}
}
pre {
margin: 0;
padding: 8px;
@include tab-size(4);
code {
padding: 0;
}
img {
min-height: 1em;
max-height: 1.2em;
vertical-align: text-bottom;
}
}
code, pre {
background: $code-background-color;
[theme=dark] & {
background: $code-background-color-dark;
}
}
.code-block {
line-height: 1.4em;
margin: .5rem 0;
.code-header {
display: flex;
justify-content: space-between;
align-items: center;
box-sizing: border-box;
width: 100%;
font-family: var(--global-font-family);
font-weight: bold;
color: $code-info-color;
background: darken($code-background-color, 8%);
[theme=dark] & {
color: $code-info-color-dark;
background: darken($code-background-color-dark, 6%);
}
&:hover {
cursor: pointer;
}
.code-title {
width: 100%;
padding: .4rem;
}
.code-title::after {
padding-left: .2rem;
content: "Code";
}
@each $type, $text in $code-type-list {
&.#{$type} .code-title::after {
content: $text;
}
}
.arrow {
padding: 0 .2rem;
@include transition(transform 0.2s ease);
}
.ellipses {
padding: .4rem;
}
.copy {
display: none;
padding: .4rem;
&:hover {
cursor: pointer;
color: $global-link-hover-color;
[theme=dark] & {
color: $global-link-hover-color-dark;
}
}
}
}
.highlight {
position: relative;
max-height: 0;
overflow-y: hidden;
@include details-transition-open;
background: $code-background-color;
[theme=dark] & {
background: $code-background-color-dark;
}
.hl {
background-color: darken($code-background-color, 10%);
[theme=dark] & {
background-color: darken($code-background-color-dark, 5%);
}
}
.c, /* Comment */
.ch /* CommentHashbang */,
.cm /* CommentMultiline */,
.c1 /* CommentSingle */,
.cs /* CommentSpecial */,
.cp /* CommentPreproc */,
.cpf /* CommentPreprocFile */ {
font-style: italic
}
.gl /* GenericUnderline */ {
text-decoration: underline
}
@each $class, $color in $code-highlight-color-map {
.#{$class} { color: $color; }
}
[theme=dark] & {
@each $class, $color in $code-highlight-color-map-dark {
.#{$class} { color: $color; }
}
}
}
&.open {
.code-header {
background: darken($code-background-color, 3%);
[theme=dark] & {
background: darken($code-background-color-dark, 3%);
}
.arrow {
@include transform(rotate(90deg));
}
.ellipses {
display: none;
}
.copy {
display: inline;
}
}
.highlight {
max-height: 10000px;
@include details-transition-close;
}
}
&.code-line-numbers {
span.line::before {
display: inline-block;
counter-increment: code-block;
content: counter(code-block);
min-width: 4ch;
text-align: right;
text-wrap: nowrap;
box-sizing: border-box;
border-width: 0;
margin-right: 1rem;
color: $code-info-color;
[theme=dark] & {
color: $code-info-color-dark;
}
}
}
}

View file

@ -1,8 +0,0 @@
#comments {
padding: 8rem 0 2rem;
.vemoji {
max-width: 1.5em;
max-height: 1.5em;
}
}

View file

@ -1,4 +0,0 @@
.echarts {
margin: .5rem 0;
text-align: center;
}

View file

@ -1,98 +0,0 @@
.post-footer {
margin-top: 3rem;
.post-info {
border-bottom: 1px solid $global-border-color;
padding: 1rem 0 0.3rem;
[theme=dark] & {
border-bottom: 1px solid $global-border-color-dark;
}
.post-info-line {
display: flex;
justify-content: space-between;
.post-info-mod {
font-size: 0.8em;
color: $global-font-secondary-color;
[theme=dark] & {
color: $global-font-secondary-color-dark;
}
@include link(false, false);
}
.post-info-license {
font-size: 0.8em;
color: $global-font-secondary-color;
[theme=dark] & {
color: $global-font-secondary-color-dark;
}
@include link(false, false);
}
.post-info-md {
font-size: 0.8rem;
width: 8rem;
@include link(false, false);
}
.post-info-share {
a * {
vertical-align: text-bottom;
}
}
}
}
.post-info-more {
padding: 0.3rem 0 1rem;
display: flex;
justify-content: space-between;
font-size: 0.9rem;
}
.post-tags {
max-width: 65%;
* {
display: inline;
}
}
.post-nav {
&::before,
&::after {
content: " ";
display: table;
}
& a.prev,
& a.next {
font-size: 1rem;
font-weight: 600;
@include transition(all 0.3s ease-out);
}
& a.prev {
float: left;
}
& a.prev:hover {
@include transform(translateX(-4px));
}
& a.next {
float: right;
}
& a.next:hover {
@include transform(translateX(4px));
}
}
}

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