Create website

This commit is contained in:
Emil Dabrowski 2022-12-01 17:30:08 +01:00
parent 0e606be040
commit b536977c22
2563 changed files with 43593 additions and 1 deletions

5
Containerfile Normal file
View File

@ -0,0 +1,5 @@
FROM alpine
RUN apk add git hugo
WORKDIR /app
COPY . /app
CMD hugo server --bind 0.0.0.0

View File

@ -1,2 +1 @@
# website

6
archetypes/default.md Normal file
View File

@ -0,0 +1,6 @@
---
title: "{{ replace .Name "-" " " | title }}"
date: {{ .Date }}
draft: true
---

10
assets/css/_custom.scss Normal file
View File

@ -0,0 +1,10 @@
// ==============================
// Custom style
// ==============================
.home .home-profile,
.home[data-home="posts"] {
.home-avatar img {
width: 12rem;
}
}

View File

@ -0,0 +1,3 @@
// ==============================
// Override Variables
// ==============================

BIN
assets/images/avatar.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 875 KiB

BIN
assets/images/logo.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 84 KiB

305
config.yaml Normal file
View File

@ -0,0 +1,305 @@
baseurl: "http://localhost:1313"
title: JILITS
languageCode: en-us
theme: LoveIt
defaultContentLanguage: en
languageCode: en
languageName: English
hasCJKLanguage: false
paginate: 12
googleAnalytics: ''
copyright: ''
enableRobotsTXT: true
enableGitInfo: true
enableEmoji: true
author:
name: Emil Dabrowski
link: 'https://www.linkedin.com/in/dbrski/'
menu:
main:
- weight: 1
identifier: posts
pre: ''
post: ''
name: Posts
url: /posts/
title: ''
- weight: 2
identifier: about
pre: ''
post: ''
name: About
url: /about/
title: ''
- weight: 3
identifier: gitea
pre: <i class='fab fa-git-alt fa-fw' aria-hidden='true'></i>
post: ''
name: ''
url: 'https://git.jilits.se/JILITS/website'
title: Gitea
params:
title: JILITS
description: Cloud Agnostic Computing
defaultTheme: auto
dateFormat: '2006-01-02'
gitRepo: 'https://git.jilits.se/JILITS/website'
# website images for Open Graph and Twitter Cards
images:
- /images/screenshot.png
header:
desktopMode: fixed
mobileMode: auto
title:
logo: '/images/logo.png'
name: ''
post: ''
typeit: false
home:
rss: 10
profile:
enable: true
avatarURL: /images/avatar.png
title: 'Emil Dabrowski // JILITS'
subtitle: 'Cloud Agnostic DevOps Consulting'
typeit: true
social: true
disclaimer: ''
posts:
enable: false
social:
Gitea: https://git.jilits.se/explore/repos
Telegram: dbrski
Linkedin: dbrski
footer:
enable: true
custom: ''
hugo: false
copyright: true
author: true
since: 2022
license: >-
<a rel="license external nofollow noopener noreffer"
href="https://creativecommons.org/licenses/by-nc/4.0/" target="_blank">CC
BY-NC 4.0</a>
section:
paginate: 20
dateFormat: 01-02
rss: 10
list:
paginate: 20
dateFormat: 01-02
rss: 10
app:
title: JILITS
noFavicon: false
svgFavicon: 'favicon.svg'
themeColor: '#ffffff'
iconColor: '#ffffff'
tileColor: '#ffffff'
search:
enable: false
page:
hiddenFromHomePage: false
hiddenFromSearch: false
twemoji: false
lightgallery: false
ruby: true
fraction: true
fontawesome: true
linkToMarkdown: true
rssFullText: false
toc:
enable: true
keepStatic: false
auto: true
code:
copy: true
maxShownLines: 50
math:
enable: false
inlineLeftDelimiter: ''
inlineRightDelimiter: ''
blockLeftDelimiter: ''
blockRightDelimiter: ''
copyTex: true
mhchem: true
comment:
enable: false
share:
enable: true
Twitter: true
Facebook: true
Linkedin: true
Whatsapp: false
Pinterest: false
Tumblr: false
HackerNews: false
Reddit: false
VK: false
Buffer: false
Xing: false
Line: false
Instapaper: false
Pocket: false
Flipboard: false
Weibo: false
Blogger: false
Baidu: false
Odnoklassniki: false
Evernote: false
Skype: false
Trello: false
Mix: false
# # FIXME
# seo:
# images: []
# publisher:
# name: xxxx
# logoUrl: /images/avatar.png
typeit:
speed: 75
cursorSpeed: 1000
cursorChar: '|'
duration: -1
# # FIXME
# verification:
# google: ''
# bing: ''
# yandex: ''
# pinterest: ''
# baidu: ''
seo:
thumbnailUrl: /images/screenshot.png
analytics:
enable: false
cdn:
data: jsdelivr.yml
compatibility:
polyfill: false
objectFit: false
markup:
highlight:
codeFences: true
guessSyntax: true
lineNos: true
lineNumbersInTable: true
noClasses: false
goldmark:
extensions:
definitionList: true
footnote: true
linkify: true
strikethrough: true
table: true
taskList: true
typographer: true
renderer:
unsafe: true
tableOfContents:
startLevel: 2
endLevel: 6
sitemap:
changefreq: weekly
filename: sitemap.xml
priority: 0.5
Permalinks:
posts: ':filename'
privacy:
googleAnalytics: {}
twitter:
enableDNT: true
youtube:
privacyEnhanced: true
mediaTypes:
text/plain:
suffixes:
- md
outputFormats:
MarkDown:
mediaType: text/plain
isPlainText: true
isHTML: false
outputs:
home:
- HTML
- RSS
- JSON
page:
- HTML
- MarkDown
section:
- HTML
- RSS
taxonomy:
- HTML
- RSS
taxonomyTerm:
- HTML
languages:
en:
weight: 1
languageCode: en
languageName: English
hasCJKLanguage: false
copyright: >-
This work is licensed under a Creative Commons Attribution-NonCommercial
4.0 International License.
sv:
weight: 1
languageCode: sv
languageName: Svenska
hasCJKLanguage: false
copyright: >-
Detta arbete är licensierat under en Creative Commons Attribution-NonCommercial
4.0 Internationell licens.
params:
home:
profile:
enable: true
avatarURL: /images/avatar.png
title: 'Emil Dabrowski // JILITS'
subtitle: 'Molnagnostisk DevOps-konsultation'
typeit: true
social: true
disclaimer: ''

25
container-build.sh Executable file
View File

@ -0,0 +1,25 @@
#!/bin/bash
version="0.1.0"
script_dir=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )
tmp_dir="$(mktemp -d --suffix=-web)"
cleanup () { rm -Rfv "$tmp_dir"; }
trap cleanup EXIT
theme_dir="$script_dir/themes/LoveIt"
release_json="$theme_dir/release.json"
latest_theme_release_metadata="$(curl -s https://api.github.com/repos/dillonzq/LoveIt/releases/latest)" || exit 1
latest_theme_tag_name="$(jq -r .tag_name <<<"${latest_theme_release_metadata:?}")" || exit 2
previous_theme_tag_name="$(jq -r .tag_name "$release_json" 2>/dev/null)" || exit 3
if [[ "$latest_theme_tag_name" != "$previous_theme_tag_name" ]]; then
echo "Updating theme: '$latest_theme_tag_name' != '$previous_theme_tag_name'"
curl -L "https://github.com/dillonzq/LoveIt/archive/refs/tags/${latest_theme_tag_name:?}.tar.gz" -o "$tmp_dir/theme.tgz" || exit 11
tar -xvf "$tmp_dir/theme.tgz" -C "$tmp_dir" || exit 12
[ -d "$theme_dir" ] && { rm -Rv "$theme_dir"* || exit 13; }
mv "$tmp_dir/LoveIt"* "$theme_dir" || exit 14
rm -Rv "$theme_dir/exampleSite"
echo "$latest_theme_release_metadata" >"$release_json"
fi
docker build "$script_dir" -f Containerfile -t jilits/website:latest -t jilits/website:$version

64
content/about/index.en.md Normal file
View File

@ -0,0 +1,64 @@
---
title: "About us"
date: 2022-12-01T18:04:49+01:00
draft: false
description: "About JILITS"
images: ["wp2535788-1280px.jpg"]
lightgallery: true
---
![Hoggar Mountains](wp2535788-1280px.jpg)
## Background
JILITS is a christian consulting company with a focus on server application hosting with a cloud agnostic approach. Cloud agnostic refers to a cloud design strategy in which applications, tools, and services are designed to migrate seamlessly between multiple cloud platforms or between on-premises and cloud in a hybrid model without disruption of service. Some of the tenets of a cloud-agnostic approach are to support seamless portability independent of the underlying operating system, to ensure limited disruption of the workloads in migration, and to limit the risk of application downtime while enhancing cost efficiencies. The company is run by [Emil Dabrowski](https://www.linkedin.com/in/dbrski/) and was founded in April 2021.
## Expertise
Cloud Native:
- [FluxCD](https://fluxcd.io)
- [Grafana](https://grafana.com)
- [Helm](https://helm.sh)
- [Kubernetes](https://kubernetes.io)
- [Prometheus](https://prometheus.io)
- [Thanos](https://thanos.io)
- [Tekton](https://tekton.dev)
Cloud providers:
- Amazon Web Services (AWS)
- Azure
Database engines:
- MariaDB
- PostgreSQL
Programming languages:
- Bash
- Terraform
- Python
- Ansible
Networking:
- DNS
- Routing
- Firewalls
- VPNs
Operating systems:
- Debian
- Ubuntu
- Manjaro
- Amazon Linux
Platforms:
- Docker
- Proxmox
- vSphere

67
content/about/index.sv.md Normal file
View File

@ -0,0 +1,67 @@
---
title: "Om oss"
date: 2022-12-01T18:04:49+01:00
draft: false
description: "Om JILITS"
# images: ["/Apple-Devices-Preview.png"]
lightgallery: true
math:
enable: true
---
![Hoggar Mountains](/img/wp2535788-1280px.jpg)
## Bakgrund
JILITS är ett kristet konsultbolag med fokus på serverapplikationsdrift med ett molnagnostisk tillvägagångssätt. Molnagnostisism hänvisar till en molndesignstrategi där applikationer, verktyg och tjänster är utformade för att migrera sömlöst mellan flera molnplattformar eller mellan on-prem och moln i en hybridmodell utan avbrott i tjänsten. Några av grundsatserna för ett moln-agnostiskt tillvägagångssätt är att stödja sömlös portabilitet oberoende av det underliggande operativsystemet, för att säkerställa begränsade avbrott i arbetsbelastningen vid migrering, och att begränsa risken för programavbrott samtidigt som kostnadseffektiviteten förbättras. Företaget drivs av [Emil Dabrowski](https://www.linkedin.com/in/dbrski/) och grundades i april 2021.
## Expertis
Cloud Native:
- [FluxCD](https://fluxcd.io)
- [Grafana](https://grafana.com)
- [Helm](https://helm.sh)
- [Kubernetes](https://kubernetes.io)
- [Prometheus](https://prometheus.io)
- [Thanos](https://thanos.io)
- [Tekton](https://tekton.dev)
Molnleverantörer:
- Amazon Web Services (AWS)
- Azure
Databasmotorer:
- MariaDB
- PostgreSQL
Programmeringsspråk:
- Bash
- Terraform
- Python
- Ansible
Nätverk:
- DNS
- Routing
- Brandväggar
- VPNs
Operativsystem:
- Debian
- Ubuntu
- Manjaro
- Amazon Linux
Plattformar:
- Docker
- Proxmox
- vSphere

Binary file not shown.

After

Width:  |  Height:  |  Size: 72 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 74 KiB

View File

@ -0,0 +1,31 @@
---
weight: 1
title: "First post"
date: 2022-12-01T18:04:49+01:00
draft: false
description: "Just a greeting!"
images: []
resources:
- name: "featured-image"
src: "featured-image.png"
toc:
enable: false
---
Dear visitor,
I'm happy that you've found your way to my website. Surely there's not much here, but perhaps you might find some of the tech on the list below useful on your journey through the internet galaxy 😎
- [Kubernetes](https://kubernetes.io)
- [Helm](https://helm.sh)
- [FluxCD](https://fluxcd.io)
- [Tekton](https://tekton.dev)
- [Grafana](https://grafana.com)
- [Prometheus](https://prometheus.io)
- [Thanos](https://thanos.io)
Greetings,
Emil

View File

@ -0,0 +1,771 @@
---
weight: 4
title: "Markdown 基本语法"
date: 2019-12-01T21:57:40+08:00
lastmod: 2020-01-01T16:45:40+08:00
draft: false
author: "Dillon"
authorLink: "https://dillonzq.com"
description: "这篇文章展示了基本的 Markdown 语法和格式."
images: []
resources:
- name: "featured-image"
src: "featured-image.png"
tags: ["Markdown", "HTML"]
categories: ["Markdown"]
lightgallery: true
---
这篇文章提供了可以在 Hugo 的文章中使用的基本 Markdown 语法示例.
<!--more-->
{{< admonition >}}
这篇文章借鉴了一篇很棒的[来自 Grav 的文章](http://learn.getgrav.org/content/markdown).
如果你想了解 **Loveit** 主题的扩展 Markdown 语法, 请阅读[扩展 Markdown 语法页面](../theme-documentation-content#extended-markdown-syntax).
{{< /admonition >}}
事实上, 编写 Web 内容很麻烦. [WYSIWYG]^(所见即所得) 编辑器帮助减轻了这一任务. 但通常会导致代码太糟, 或更糟糕的是, 网页也会很丑.
没有通常伴随的所有复杂和丑陋的问题, **Markdown** 是一种更好的生成 **HTML** 内容的方式.
一些主要好处是:
1. Markdown 简单易学, 几乎没有多余的字符, 因此编写内容也更快.
2. 用 Markdown 书写时出错的机会更少.
3. 可以产生有效的 XHTML 输出.
4. 将内容和视觉显示保持分开, 这样就不会打乱网站的外观.
5. 可以在你喜欢的任何文本编辑器或 Markdown 应用程序中编写内容.
6. Markdown 使用起来很有趣!
John Gruber, Markdown 的作者如是说:
> Markdown 格式的首要设计目标是更具可读性.
> 最初的想法是 Markdown 格式的文档应当以纯文本形式发布,
> 而不会看起来像被标签或格式说明所标记.
> 虽然 Markdown 的语法受到几种现有的文本到 HTML 转换工具的影响,
> 但 Markdown 语法的最大灵感来源是纯文本电子邮件的格式.
>
> {{< style "text-align: right;" >}}-- _John Gruber_{{< /style >}}
话不多说, 我们来回顾一下 Markdown 的主要语法以及生成的 HTML 样式!
{{< admonition tip >}}
:(far fa-bookmark fa-fw): 将此页保存为书签,以备将来参考!
{{< /admonition >}}
## 1 标题
`h2``h6` 的标题在每个级别上都加上一个 ``:
```markdown
## h2 标题
### h3 标题
#### h4 标题
##### h5 标题
###### h6 标题
```
输出的 HTML 看起来像这样:
```html
<h2>h2 标题</h2>
<h3>h3 标题</h3>
<h4>h4 标题</h4>
<h5>h5 标题</h5>
<h6>h6 标题</h6>
```
{{< admonition note "标题 ID" >}}
要添加自定义标题 ID, 请在与标题相同的行中将自定义 ID 放在花括号中:
```markdown
### 一个很棒的标题 {#custom-id}
```
输出的 HTML 看起来像这样:
```html
<h3 id="custom-id">一个很棒的标题</h3>
```
{{< /admonition >}}
## 2 注释
注释是和 HTML 兼容的:
```html
<!--
这是一段注释
-->
```
**不能**看到以下的注释:
<!--
这是一段注释
-->
## 3 水平线
HTML 中的 `<hr>` 标签是用来在段落元素之间创建一个 "专题间隔" 的.
使用 Markdown, 你可以用以下方式创建一个 `<hr>` 标签:
* `___`: 三个连续的下划线
* `---`: 三个连续的破折号
* `***`: 三个连续的星号
呈现的输出效果如下:
___
---
***
## 4 段落
按照纯文本的方式书写段落, 纯文本在呈现的 HTML 中将用 `<p>`/`</p>` 标签包裹.
如下段落:
```markdown
Lorem ipsum dolor sit amet, graecis denique ei vel, at duo primis mandamus. Et legere ocurreret pri,
animal tacimates complectitur ad cum. Cu eum inermis inimicus efficiendi. Labore officiis his ex,
soluta officiis concludaturque ei qui, vide sensibus vim ad.
```
输出的 HTML 看起来像这样:
```html
<p>Lorem ipsum dolor sit amet, graecis denique ei vel, at duo primis mandamus. Et legere ocurreret pri, animal tacimates complectitur ad cum. Cu eum inermis inimicus efficiendi. Labore officiis his ex, soluta officiis concludaturque ei qui, vide sensibus vim ad.</p>
```
可以使用一个空白行进行**换行**.
## 5 内联 HTML 元素
如果你需要某个 HTML 标签 (带有一个类), 则可以简单地像这样使用:
```html
Markdown 格式的段落.
<div class="class">
这是 <b>HTML</b>
</div>
Markdown 格式的段落.
```
## 6 强调
### 加粗
用于强调带有较粗字体的文本片段.
以下文本片段会被 **渲染为粗体**.
```markdown
**渲染为粗体**
__渲染为粗体__
```
输出的 HTML 看起来像这样:
```html
<strong>渲染为粗体</strong>
```
### 斜体
用于强调带有斜体的文本片段.
以下文本片段被 _渲染为斜体_.
```markdown
*渲染为斜体*
_渲染为斜体_
```
输出的 HTML 看起来像这样:
```html
<em>渲染为斜体</em>
```
### 删除线
按照 [[GFM]^(GitHub flavored Markdown)](https://github.github.com/gfm/) 你可以使用删除线.
```markdown
~~这段文本带有删除线.~~
```
呈现的输出效果如下:
~~这段文本带有删除线.~~
输出的 HTML 看起来像这样:
```html
<del>这段文本带有删除线.</del>
```
### 组合
加粗, 斜体, 和删除线可以 组合使用.
```markdown
***加粗和斜体***
~~**删除线和加粗**~~
~~*删除线和斜体*~~
~~***加粗, 斜体和删除线***~~
```
呈现的输出效果如下:
***加粗和斜体***
~~**删除线和加粗**~~
~~*删除线和斜体*~~
~~***加粗, 斜体和删除线***~~
输出的 HTML 看起来像这样:
```html
<em><strong>加粗和斜体</strong></em>
<del><strong>删除线和加粗</strong></del>
<del><em>删除线和斜体</em></del>
<del><em><strong>加粗, 斜体和删除线</strong></em></del>
```
## 7 引用
用于在文档中引用其他来源的内容块.
在要引用的任何文本之前添加 `>`:
```markdown
> **Fusion Drive** combines a hard drive with a flash storage (solid-state drive) and presents it as a single logical volume with the space of both drives combined.
```
呈现的输出效果如下:
> **Fusion Drive** combines a hard drive with a flash storage (solid-state drive) and presents it as a single logical volume with the space of both drives combined.
输出的 HTML 看起来像这样:
```html
<blockquote>
<p>
<strong>Fusion Drive</strong> combines a hard drive with a flash storage (solid-state drive) and presents it as a single logical volume with the space of both drives combined.
</p>
</blockquote>
```
引用也可以嵌套:
```markdown
> Donec massa lacus, ultricies a ullamcorper in, fermentum sed augue.
Nunc augue augue, aliquam non hendrerit ac, commodo vel nisi.
>> Sed adipiscing elit vitae augue consectetur a gravida nunc vehicula. Donec auctor
odio non est accumsan facilisis. Aliquam id turpis in dolor tincidunt mollis ac eu diam.
```
呈现的输出效果如下:
> Donec massa lacus, ultricies a ullamcorper in, fermentum sed augue.
Nunc augue augue, aliquam non hendrerit ac, commodo vel nisi.
>> Sed adipiscing elit vitae augue consectetur a gravida nunc vehicula. Donec auctor
odio non est accumsan facilisis. Aliquam id turpis in dolor tincidunt mollis ac eu diam.
## 8 列表
### 无序列表
一系列项的列表, 其中项的顺序没有明显关系.
你可以使用以下任何符号来表示无序列表中的项:
```markdown
* 一项内容
- 一项内容
+ 一项内容
```
例如:
```markdown
* Lorem ipsum dolor sit amet
* Consectetur adipiscing elit
* Integer molestie lorem at massa
* Facilisis in pretium nisl aliquet
* Nulla volutpat aliquam velit
* Phasellus iaculis neque
* Purus sodales ultricies
* Vestibulum laoreet porttitor sem
* Ac tristique libero volutpat at
* Faucibus porta lacus fringilla vel
* Aenean sit amet erat nunc
* Eget porttitor lorem
```
呈现的输出效果如下:
* Lorem ipsum dolor sit amet
* Consectetur adipiscing elit
* Integer molestie lorem at massa
* Facilisis in pretium nisl aliquet
* Nulla volutpat aliquam velit
* Phasellus iaculis neque
* Purus sodales ultricies
* Vestibulum laoreet porttitor sem
* Ac tristique libero volutpat at
* Faucibus porta lacus fringilla vel
* Aenean sit amet erat nunc
* Eget porttitor lorem
输出的 HTML 看起来像这样:
```html
<ul>
<li>Lorem ipsum dolor sit amet</li>
<li>Consectetur adipiscing elit</li>
<li>Integer molestie lorem at massa</li>
<li>Facilisis in pretium nisl aliquet</li>
<li>Nulla volutpat aliquam velit
<ul>
<li>Phasellus iaculis neque</li>
<li>Purus sodales ultricies</li>
<li>Vestibulum laoreet porttitor sem</li>
<li>Ac tristique libero volutpat at</li>
</ul>
</li>
<li>Faucibus porta lacus fringilla vel</li>
<li>Aenean sit amet erat nunc</li>
<li>Eget porttitor lorem</li>
</ul>
```
### 有序列表
一系列项的列表, 其中项的顺序确实很重要.
```markdown
1. Lorem ipsum dolor sit amet
2. Consectetur adipiscing elit
3. Integer molestie lorem at massa
4. Facilisis in pretium nisl aliquet
5. Nulla volutpat aliquam velit
6. Faucibus porta lacus fringilla vel
7. Aenean sit amet erat nunc
8. Eget porttitor lorem
```
呈现的输出效果如下:
1. Lorem ipsum dolor sit amet
2. Consectetur adipiscing elit
3. Integer molestie lorem at massa
4. Facilisis in pretium nisl aliquet
5. Nulla volutpat aliquam velit
6. Faucibus porta lacus fringilla vel
7. Aenean sit amet erat nunc
8. Eget porttitor lorem
输出的 HTML 看起来像这样:
```html
<ol>
<li>Lorem ipsum dolor sit amet</li>
<li>Consectetur adipiscing elit</li>
<li>Integer molestie lorem at massa</li>
<li>Facilisis in pretium nisl aliquet</li>
<li>Nulla volutpat aliquam velit</li>
<li>Faucibus porta lacus fringilla vel</li>
<li>Aenean sit amet erat nunc</li>
<li>Eget porttitor lorem</li>
</ol>
```
{{< admonition tip >}}
如果你对每一项使用 `1.`, Markdown 将自动为每一项编号. 例如:
```markdown
1. Lorem ipsum dolor sit amet
1. Consectetur adipiscing elit
1. Integer molestie lorem at massa
1. Facilisis in pretium nisl aliquet
1. Nulla volutpat aliquam velit
1. Faucibus porta lacus fringilla vel
1. Aenean sit amet erat nunc
1. Eget porttitor lorem
```
呈现的输出效果如下:
1. Lorem ipsum dolor sit amet
1. Consectetur adipiscing elit
1. Integer molestie lorem at massa
1. Facilisis in pretium nisl aliquet
1. Nulla volutpat aliquam velit
1. Faucibus porta lacus fringilla vel
1. Aenean sit amet erat nunc
1. Eget porttitor lorem
{{< /admonition >}}
### 任务列表
任务列表使你可以创建带有复选框的列表.
要创建任务列表, 请在任务列表项之前添加破折号 (`-`) 和带有空格的方括号 (`[ ]`). 要选择一个复选框,请在方括号之间添加 x (`[x]`).
```markdown
- [x] Write the press release
- [ ] Update the website
- [ ] Contact the media
```
呈现的输出效果如下:
- [x] Write the press release
- [ ] Update the website
- [ ] Contact the media
## 9 代码
### 行内代码
<code>`</code> 包装行内代码段.
```markdown
在这个例子中, `<section></section>` 会被包裹成 **代码**.
```
呈现的输出效果如下:
在这个例子中, `<section></section>` 会被包裹成 **代码**.
输出的 HTML 看起来像这样:
```html
<p>
在这个例子中, <code>&lt;section&gt;&lt;/section&gt;</code> 会被包裹成 <strong>代码</strong>.
</p>
```
### 缩进代码
将几行代码缩进至少四个空格,例如:
```markdown
// Some comments
line 1 of code
line 2 of code
line 3 of code
```
呈现的输出效果如下:
// Some comments
line 1 of code
line 2 of code
line 3 of code
输出的 HTML 看起来像这样:
```html
<pre>
<code>
// Some comments
line 1 of code
line 2 of code
line 3 of code
</code>
</pre>
```
### 围栏代码块
使用 "围栏" <code>```</code> 来生成一段带有语言属性的代码块.
{{< highlight markdown >}}
```markdown
Sample text here...
```
{{< / highlight >}}
输出的 HTML 看起来像这样:
```html
<pre language-html>
<code>Sample text here...</code>
</pre>
```
### 语法高亮
[GFM]^(GitHub Flavored Markdown) 也支持语法高亮.
要激活它,只需在第一个代码 "围栏" 之后直接添加你要使用的语言的文件扩展名,
<code>```js</code>, 语法高亮显示将自动应用于渲染的 HTML 中.
例如, 在以下 JavaScript 代码中应用语法高亮:
{{< highlight markdown >}}
```js
grunt.initConfig({
assemble: {
options: {
assets: 'docs/assets',
data: 'src/data/*.{json,yml}',
helpers: 'src/custom-helpers.js',
partials: ['src/partials/**/*.{hbs,md}']
},
pages: {
options: {
layout: 'default.hbs'
},
files: {
'./': ['src/templates/pages/index.hbs']
}
}
}
};
```
{{< / highlight >}}
呈现的输出效果如下:
```js
grunt.initConfig({
assemble: {
options: {
assets: 'docs/assets',
data: 'src/data/*.{json,yml}',
helpers: 'src/custom-helpers.js',
partials: ['src/partials/**/*.{hbs,md}']
},
pages: {
options: {
layout: 'default.hbs'
},
files: {
'./': ['src/templates/pages/index.hbs']
}
}
}
};
```
{{< admonition >}}
**Hugo** 文档中的 [语法高亮页面](https://gohugo.io/content-management/syntax-highlighting/) 介绍了有关语法高亮的更多信息,
包括语法高亮的 shortcode.
{{< /admonition >}}
## 10 表格
通过在每个单元格之间添加竖线作为分隔线, 并在标题下添加一行破折号 (也由竖线分隔) 来创建表格. 注意, 竖线不需要垂直对齐.
```markdown
| Option | Description |
| ------ | ----------- |
| data | path to data files to supply the data that will be passed into templates. |
| engine | engine to be used for processing templates. Handlebars is the default. |
| ext | extension to be used for dest files. |
```
呈现的输出效果如下:
| Option | Description |
| ------ | ----------- |
| data | path to data files to supply the data that will be passed into templates. |
| engine | engine to be used for processing templates. Handlebars is the default. |
| ext | extension to be used for dest files. |
输出的 HTML 看起来像这样:
```html
<table>
<thead>
<tr>
<th>Option</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td>data</td>
<td>path to data files to supply the data that will be passed into templates.</td>
</tr>
<tr>
<td>engine</td>
<td>engine to be used for processing templates. Handlebars is the default.</td>
</tr>
<tr>
<td>ext</td>
<td>extension to be used for dest files.</td>
</tr>
</tbody>
</table>
```
{{< admonition note "文本右对齐或居中对齐" >}}
在任何标题下方的破折号右侧添加冒号将使该列的文本右对齐.
在任何标题下方的破折号两边添加冒号将使该列的对齐文本居中.
```markdown
| Option | Description |
|:------:| -----------:|
| data | path to data files to supply the data that will be passed into templates. |
| engine | engine to be used for processing templates. Handlebars is the default. |
| ext | extension to be used for dest files. |
```
呈现的输出效果如下:
| Option | Description |
|:------:| -----------:|
| data | path to data files to supply the data that will be passed into templates. |
| engine | engine to be used for processing templates. Handlebars is the default. |
| ext | extension to be used for dest files. |
{{< /admonition >}}
## 11 链接 {#links}
### 基本链接
```markdown
<https://assemble.io>
<contact@revolunet.com>
[Assemble](https://assemble.io)
```
呈现的输出效果如下 (将鼠标悬停在链接上,没有提示):
<https://assemble.io>
<contact@revolunet.com>
[Assemble](https://assemble.io)
输出的 HTML 看起来像这样:
```html
<a href="https://assemble.io">https://assemble.io</a>
<a href="mailto:contact@revolunet.com">contact@revolunet.com</a>
<a href="https://assemble.io">Assemble</a>
```
### 添加一个标题
```markdown
[Upstage](https://github.com/upstage/ "Visit Upstage!")
```
呈现的输出效果如下 (将鼠标悬停在链接上,会有一行提示):
[Upstage](https://github.com/upstage/ "Visit Upstage!")
输出的 HTML 看起来像这样:
```html
<a href="https://github.com/upstage/" title="Visit Upstage!">Upstage</a>
```
### 定位标记
定位标记使你可以跳至同一页面上的指定锚点. 例如, 每个章节:
```markdown
## Table of Contents
* [Chapter 1](#chapter-1)
* [Chapter 2](#chapter-2)
* [Chapter 3](#chapter-3)
```
将跳转到这些部分:
```markdown
## Chapter 1 <a id="chapter-1"></a>
Content for chapter one.
## Chapter 2 <a id="chapter-2"></a>
Content for chapter one.
## Chapter 3 <a id="chapter-3"></a>
Content for chapter one.
```
{{< admonition >}}
定位标记的位置几乎是任意的. 因为它们并不引人注目, 所以它们通常被放在同一行了.
{{< /admonition >}}
## 12 脚注
脚注使你可以添加注释和参考, 而不会使文档正文混乱.
当你创建脚注时, 会在添加脚注引用的位置出现带有链接的上标编号.
读者可以单击链接以跳至页面底部的脚注内容.
要创建脚注引用, 请在方括号中添加插入符号和标识符 (`[^1]`).
标识符可以是数字或单词, 但不能包含空格或制表符.
标识符仅将脚注引用与脚注本身相关联 - 在脚注输出中, 脚注按顺序编号.
在中括号内使用插入符号和数字以及用冒号和文本来添加脚注内容 (`[^1]:这是一段脚注`).
你不一定要在文档末尾添加脚注. 可以将它们放在除列表, 引用和表格等元素之外的任何位置.
```markdown
这是一个数字脚注[^1].
这是一个带标签的脚注[^label]
[^1]: 这是一个数字脚注
[^label]: 这是一个带标签的脚注
```
这是一个数字脚注[^1].
这是一个带标签的脚注[^label]
[^1]: 这是一个数字脚注
[^label]: 这是一个带标签的脚注
## 13 图片
图片的语法与链接相似, 但包含一个在前面的感叹号.
```markdown
![Minion](https://octodex.github.com/images/minion.png)
```
![Minion](https://octodex.github.com/images/minion.png)
或者:
```markdown
![Alt text](https://octodex.github.com/images/stormtroopocat.jpg "The Stormtroopocat")
```
![Alt text](https://octodex.github.com/images/stormtroopocat.jpg "The Stormtroopocat")
像链接一样, 图片也具有脚注样式的语法:
```markdown
![Alt text][id]
```
![Alt text][id]
稍后在文档中提供参考内容, 用来定义 URL 的位置:
```markdown
[id]: https://octodex.github.com/images/dojocat.jpg "The Dojocat"
```
[id]: https://octodex.github.com/images/dojocat.jpg "The Dojocat"
{{< admonition tip >}}
**LoveIt** 主题提供了一个包含更多功能的 [图片的 shortcode](../theme-documentation-extended-shortcodes#image).
{{< /admonition >}}

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

BIN
static/apple-touch-icon.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.0 KiB

BIN
static/favicon-16x16.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 557 B

BIN
static/favicon-32x32.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

BIN
static/favicon.ico Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

747
static/favicon.svg Normal file
View File

@ -0,0 +1,747 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
width="94mm"
height="94mm"
viewBox="0 0 94 94"
version="1.1"
id="svg8"
sodipodi:docname="jilits-favicon-20211116-1-stroke.svg"
inkscape:version="1.2.1 (9c6d41e410, 2022-07-14, custom)"
inkscape:export-filename="/home/walter/Syncthing/private-misc/jilits/logo/jilits-20210515-1-lr.png"
inkscape:export-xdpi="150"
inkscape:export-ydpi="150"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:osb="http://www.openswatchbook.org/uri/2009/osb">
<defs
id="defs2">
<linearGradient
inkscape:collect="always"
id="linearGradient2049">
<stop
style="stop-color:#37dbd0;stop-opacity:1"
offset="0"
id="stop2045" />
<stop
style="stop-color:#22a7f0;stop-opacity:1"
offset="1"
id="stop2047" />
</linearGradient>
<linearGradient
inkscape:collect="always"
id="linearGradient1549">
<stop
style="stop-color:#22a7f0;stop-opacity:1"
offset="0"
id="stop1545" />
<stop
style="stop-color:#37dbd0;stop-opacity:1"
offset="1"
id="stop1547" />
</linearGradient>
<linearGradient
id="linearGradient3185"
osb:paint="solid">
<stop
style="stop-color:#007ff0;stop-opacity:1;"
offset="0"
id="stop3183" />
</linearGradient>
<marker
inkscape:stockid="DistanceStart"
orient="auto"
refY="0"
refX="0"
id="marker4529"
style="overflow:visible"
inkscape:isstock="true">
<g
id="g4527"
style="fill:#37dbd0;fill-opacity:1;stroke:#106b60;stroke-opacity:1">
<path
id="path4521"
d="M 0,0 H 2"
style="fill:#37dbd0;fill-opacity:1;stroke:#106b60;stroke-width:1.15;stroke-linecap:square;stroke-opacity:1" />
<path
id="path4523"
d="M 0,0 13,4 9,0 13,-4 Z"
style="fill:#37dbd0;fill-opacity:1;fill-rule:evenodd;stroke:#106b60;stroke-opacity:1" />
<path
id="path4525"
d="M 0,-4 V 40"
style="fill:#37dbd0;fill-opacity:1;stroke:#106b60;stroke-width:1;stroke-linecap:square;stroke-opacity:1" />
</g>
</marker>
<marker
inkscape:stockid="DistanceStart"
orient="auto"
refY="0"
refX="0"
id="marker4489"
style="overflow:visible"
inkscape:isstock="true">
<g
id="g4487"
style="fill:#37dbd0;fill-opacity:1;stroke:#106b60;stroke-opacity:1">
<path
id="path4481"
d="M 0,0 H 2"
style="fill:#37dbd0;fill-opacity:1;stroke:#106b60;stroke-width:1.15;stroke-linecap:square;stroke-opacity:1" />
<path
id="path4483"
d="M 0,0 13,4 9,0 13,-4 Z"
style="fill:#37dbd0;fill-opacity:1;fill-rule:evenodd;stroke:#106b60;stroke-opacity:1" />
<path
id="path4485"
d="M 0,-4 V 40"
style="fill:#37dbd0;fill-opacity:1;stroke:#106b60;stroke-width:1;stroke-linecap:square;stroke-opacity:1" />
</g>
</marker>
<marker
inkscape:stockid="DistanceStart"
orient="auto"
refY="0"
refX="0"
id="marker3802"
style="overflow:visible"
inkscape:isstock="true">
<g
id="g3800"
style="fill:#37dbd0;fill-opacity:1;stroke:#106b60;stroke-opacity:1">
<path
id="path3794"
d="M 0,0 H 2"
style="fill:#37dbd0;fill-opacity:1;stroke:#106b60;stroke-width:1.15;stroke-linecap:square;stroke-opacity:1" />
<path
id="path3796"
d="M 0,0 13,4 9,0 13,-4 Z"
style="fill:#37dbd0;fill-opacity:1;fill-rule:evenodd;stroke:#106b60;stroke-opacity:1" />
<path
id="path3798"
d="M 0,-4 V 40"
style="fill:#37dbd0;fill-opacity:1;stroke:#106b60;stroke-width:1;stroke-linecap:square;stroke-opacity:1" />
</g>
</marker>
<marker
inkscape:stockid="DistanceStart"
orient="auto"
refY="0"
refX="0"
id="marker3576"
style="overflow:visible"
inkscape:isstock="true">
<g
id="g3574"
style="fill:#37dbd0;fill-opacity:1;stroke:#106b60;stroke-opacity:1">
<path
id="path3568"
d="M 0,0 H 2"
style="fill:#37dbd0;fill-opacity:1;stroke:#106b60;stroke-width:1.15;stroke-linecap:square;stroke-opacity:1" />
<path
id="path3570"
d="M 0,0 13,4 9,0 13,-4 Z"
style="fill:#37dbd0;fill-opacity:1;fill-rule:evenodd;stroke:#106b60;stroke-opacity:1" />
<path
id="path3572"
d="M 0,-4 V 40"
style="fill:#37dbd0;fill-opacity:1;stroke:#106b60;stroke-width:1;stroke-linecap:square;stroke-opacity:1" />
</g>
</marker>
<marker
inkscape:stockid="DistanceStart"
orient="auto"
refY="0"
refX="0"
id="marker3365"
style="overflow:visible"
inkscape:isstock="true">
<g
id="g3363"
style="fill:#37dbd0;fill-opacity:1;stroke:#106b60;stroke-opacity:1">
<path
id="path3357"
d="M 0,0 H 2"
style="fill:#37dbd0;fill-opacity:1;stroke:#106b60;stroke-width:1.15;stroke-linecap:square;stroke-opacity:1" />
<path
id="path3359"
d="M 0,0 13,4 9,0 13,-4 Z"
style="fill:#37dbd0;fill-opacity:1;fill-rule:evenodd;stroke:#106b60;stroke-opacity:1" />
<path
id="path3361"
d="M 0,-4 V 40"
style="fill:#37dbd0;fill-opacity:1;stroke:#106b60;stroke-width:1;stroke-linecap:square;stroke-opacity:1" />
</g>
</marker>
<marker
inkscape:stockid="DistanceStart"
orient="auto"
refY="0"
refX="0"
id="marker3154"
style="overflow:visible"
inkscape:isstock="true">
<g
id="g3152"
style="fill:#37dbd0;fill-opacity:1;stroke:#106b60;stroke-opacity:1">
<path
id="path3146"
d="M 0,0 H 2"
style="fill:#37dbd0;fill-opacity:1;stroke:#106b60;stroke-width:1.15;stroke-linecap:square;stroke-opacity:1" />
<path
id="path3148"
d="M 0,0 13,4 9,0 13,-4 Z"
style="fill:#37dbd0;fill-opacity:1;fill-rule:evenodd;stroke:#106b60;stroke-opacity:1" />
<path
id="path3150"
d="M 0,-4 V 40"
style="fill:#37dbd0;fill-opacity:1;stroke:#106b60;stroke-width:1;stroke-linecap:square;stroke-opacity:1" />
</g>
</marker>
<marker
inkscape:stockid="DistanceStart"
orient="auto"
refY="0"
refX="0"
id="marker2181"
style="overflow:visible"
inkscape:isstock="true">
<g
id="g2179"
style="fill:#37dbd0;fill-opacity:1;stroke:#106b60;stroke-opacity:1">
<path
id="path2173"
d="M 0,0 H 2"
style="fill:#37dbd0;fill-opacity:1;stroke:#106b60;stroke-width:1.15;stroke-linecap:square;stroke-opacity:1" />
<path
id="path2175"
d="M 0,0 13,4 9,0 13,-4 Z"
style="fill:#37dbd0;fill-opacity:1;fill-rule:evenodd;stroke:#106b60;stroke-opacity:1" />
<path
id="path2177"
d="M 0,-4 V 40"
style="fill:#37dbd0;fill-opacity:1;stroke:#106b60;stroke-width:1;stroke-linecap:square;stroke-opacity:1" />
</g>
</marker>
<marker
inkscape:stockid="DistanceStart"
orient="auto"
refY="0"
refX="0"
id="marker2547"
style="overflow:visible"
inkscape:isstock="true">
<g
id="g2545"
style="fill:#37dbd0;fill-opacity:1;stroke:#106b60;stroke-opacity:1">
<path
id="path2539"
d="M 0,0 H 2"
style="fill:#37dbd0;fill-opacity:1;stroke:#106b60;stroke-width:1.15;stroke-linecap:square;stroke-opacity:1" />
<path
id="path2541"
d="M 0,0 13,4 9,0 13,-4 Z"
style="fill:#37dbd0;fill-opacity:1;fill-rule:evenodd;stroke:#106b60;stroke-opacity:1" />
<path
id="path2543"
d="M 0,-4 V 40"
style="fill:#37dbd0;fill-opacity:1;stroke:#106b60;stroke-width:1;stroke-linecap:square;stroke-opacity:1" />
</g>
</marker>
<marker
inkscape:stockid="DistanceStart"
orient="auto"
refY="0"
refX="0"
id="marker2522"
style="overflow:visible"
inkscape:isstock="true">
<g
id="g2520"
style="fill:#37dbd0;fill-opacity:1;stroke:#106b60;stroke-opacity:1">
<path
id="path2514"
d="M 0,0 H 2"
style="fill:#37dbd0;fill-opacity:1;stroke:#106b60;stroke-width:1.15;stroke-linecap:square;stroke-opacity:1" />
<path
id="path2516"
d="M 0,0 13,4 9,0 13,-4 Z"
style="fill:#37dbd0;fill-opacity:1;fill-rule:evenodd;stroke:#106b60;stroke-opacity:1" />
<path
id="path2518"
d="M 0,-4 V 40"
style="fill:#37dbd0;fill-opacity:1;stroke:#106b60;stroke-width:1;stroke-linecap:square;stroke-opacity:1" />
</g>
</marker>
<marker
inkscape:stockid="DistanceStart"
orient="auto"
refY="0"
refX="0"
id="marker2045"
style="overflow:visible"
inkscape:isstock="true">
<g
id="g2043"
style="fill:#37dbd0;fill-opacity:1;stroke:#106b60;stroke-opacity:1">
<path
id="path2037"
d="M 0,0 H 2"
style="fill:#37dbd0;fill-opacity:1;stroke:#106b60;stroke-width:1.15;stroke-linecap:square;stroke-opacity:1" />
<path
id="path2039"
d="M 0,0 13,4 9,0 13,-4 Z"
style="fill:#37dbd0;fill-opacity:1;fill-rule:evenodd;stroke:#106b60;stroke-opacity:1" />
<path
id="path2041"
d="M 0,-4 V 40"
style="fill:#37dbd0;fill-opacity:1;stroke:#106b60;stroke-width:1;stroke-linecap:square;stroke-opacity:1" />
</g>
</marker>
<marker
inkscape:stockid="DistanceStart"
orient="auto"
refY="0"
refX="0"
id="marker1924"
style="overflow:visible"
inkscape:isstock="true">
<g
id="g1922"
style="fill:#37dbd0;fill-opacity:1;stroke:#106b60;stroke-opacity:1">
<path
id="path1916"
d="M 0,0 H 2"
style="fill:#37dbd0;fill-opacity:1;stroke:#106b60;stroke-width:1.15;stroke-linecap:square;stroke-opacity:1" />
<path
id="path1918"
d="M 0,0 13,4 9,0 13,-4 Z"
style="fill:#37dbd0;fill-opacity:1;fill-rule:evenodd;stroke:#106b60;stroke-opacity:1" />
<path
id="path1920"
d="M 0,-4 V 40"
style="fill:#37dbd0;fill-opacity:1;stroke:#106b60;stroke-width:1;stroke-linecap:square;stroke-opacity:1" />
</g>
</marker>
<marker
inkscape:stockid="DistanceStart"
orient="auto"
refY="0"
refX="0"
id="marker1818"
style="overflow:visible"
inkscape:isstock="true">
<g
id="g1816"
style="fill:#37dbd0;fill-opacity:1;stroke:#106b60;stroke-opacity:1">
<path
id="path1810"
d="M 0,0 H 2"
style="fill:#37dbd0;fill-opacity:1;stroke:#106b60;stroke-width:1.15;stroke-linecap:square;stroke-opacity:1" />
<path
id="path1812"
d="M 0,0 13,4 9,0 13,-4 Z"
style="fill:#37dbd0;fill-opacity:1;fill-rule:evenodd;stroke:#106b60;stroke-opacity:1" />
<path
id="path1814"
d="M 0,-4 V 40"
style="fill:#37dbd0;fill-opacity:1;stroke:#106b60;stroke-width:1;stroke-linecap:square;stroke-opacity:1" />
</g>
</marker>
<marker
inkscape:stockid="DistanceStart"
orient="auto"
refY="0"
refX="0"
id="marker1727"
style="overflow:visible"
inkscape:isstock="true">
<g
id="g1725"
style="fill:#37dbd0;fill-opacity:1;stroke:#106b60;stroke-opacity:1">
<path
id="path1719"
d="M 0,0 H 2"
style="fill:#37dbd0;fill-opacity:1;stroke:#106b60;stroke-width:1.15;stroke-linecap:square;stroke-opacity:1" />
<path
id="path1721"
d="M 0,0 13,4 9,0 13,-4 Z"
style="fill:#37dbd0;fill-opacity:1;fill-rule:evenodd;stroke:#106b60;stroke-opacity:1" />
<path
id="path1723"
d="M 0,-4 V 40"
style="fill:#37dbd0;fill-opacity:1;stroke:#106b60;stroke-width:1;stroke-linecap:square;stroke-opacity:1" />
</g>
</marker>
<marker
style="overflow:visible"
id="marker1529"
refX="0"
refY="0"
orient="auto"
inkscape:stockid="Arrow1Lstart"
inkscape:isstock="true">
<path
transform="matrix(0.8,0,0,0.8,10,0)"
style="fill:#37dbd0;fill-opacity:1;fill-rule:evenodd;stroke:#106b60;stroke-width:1pt;stroke-opacity:1"
d="M 0,0 5,-5 -12.5,0 5,5 Z"
id="path1527" />
</marker>
<marker
style="overflow:visible"
id="marker1519"
refX="0"
refY="0"
orient="auto"
inkscape:stockid="Arrow1Lstart"
inkscape:isstock="true">
<path
transform="matrix(0.8,0,0,0.8,10,0)"
style="fill:#37dbd0;fill-opacity:1;fill-rule:evenodd;stroke:#106b60;stroke-width:1pt;stroke-opacity:1"
d="M 0,0 5,-5 -12.5,0 5,5 Z"
id="path1517" />
</marker>
<marker
style="overflow:visible"
id="marker1357"
refX="0"
refY="0"
orient="auto"
inkscape:stockid="Arrow1Lstart"
inkscape:isstock="true">
<path
transform="matrix(0.8,0,0,0.8,10,0)"
style="fill:#37dbd0;fill-opacity:1;fill-rule:evenodd;stroke:#106b60;stroke-width:1pt;stroke-opacity:1"
d="M 0,0 5,-5 -12.5,0 5,5 Z"
id="path1355" />
</marker>
<marker
style="overflow:visible"
id="marker1323"
refX="0"
refY="0"
orient="auto"
inkscape:stockid="Arrow1Lstart"
inkscape:isstock="true">
<path
transform="matrix(0.8,0,0,0.8,10,0)"
style="fill:#37dbd0;fill-opacity:1;fill-rule:evenodd;stroke:#106b60;stroke-width:1pt;stroke-opacity:1"
d="M 0,0 5,-5 -12.5,0 5,5 Z"
id="path1321" />
</marker>
<marker
style="overflow:visible"
id="marker1295"
refX="0"
refY="0"
orient="auto"
inkscape:stockid="Arrow1Lstart"
inkscape:isstock="true">
<path
transform="matrix(0.8,0,0,0.8,10,0)"
style="fill:#37dbd0;fill-opacity:1;fill-rule:evenodd;stroke:#106b60;stroke-width:1pt;stroke-opacity:1"
d="M 0,0 5,-5 -12.5,0 5,5 Z"
id="path1293" />
</marker>
<marker
style="overflow:visible"
id="marker1273"
refX="0"
refY="0"
orient="auto"
inkscape:stockid="Arrow1Lstart"
inkscape:isstock="true">
<path
transform="matrix(0.8,0,0,0.8,10,0)"
style="fill:#37dbd0;fill-opacity:1;fill-rule:evenodd;stroke:#106b60;stroke-width:1pt;stroke-opacity:1"
d="M 0,0 5,-5 -12.5,0 5,5 Z"
id="path1271" />
</marker>
<rect
x="3.4266257"
y="10.764988"
width="169.9268"
height="63.002186"
id="rect835" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient1549"
id="linearGradient1551"
x1="294.80234"
y1="332.59842"
x2="294.80234"
y2="22.677378"
gradientUnits="userSpaceOnUse" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient1549"
id="linearGradient1556"
gradientUnits="userSpaceOnUse"
x1="294.80234"
y1="332.59842"
x2="294.80292"
y2="90.707489"
gradientTransform="matrix(0.26458333,0,0,0.26458333,-1.5025145e-4,2.0380145e-4)" />
<mask
maskUnits="userSpaceOnUse"
id="mask1726">
<path
id="path1728"
style="opacity:1;fill:#ffffff;fill-opacity:0.998463;stroke:none;stroke-width:12.1297;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke fill markers"
d="m 28.97044,-0.97054323 h 95.99979 V 17.029748 c 5.99999,0 5.99999,0 5.99999,0 h 3 39.00022 v 75.999701 h -144 c -6,8e-6 -6,-5.999991 -6,-5.999991 V 69.029523 c 0,0 0,0 6,0 z"
sodipodi:nodetypes="cccccccccccc" />
</mask>
<mask
maskUnits="userSpaceOnUse"
id="mask1730">
<path
id="path1732"
style="opacity:1;fill:#ffffff;fill-opacity:0.998463;stroke:none;stroke-width:12.1297;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke fill markers"
d="M 4.9704404,-0.97054323 H 100.97023 V 17.029748 c 5.99999,0 5.99999,0 5.99999,0 h 3 39.00022 V 93.029449 H 4.9704404 c -6.0000002,8e-6 -6.0000002,-5.999991 -6.0000002,-5.999991 V 69.029523 c 0,0 0,0 6.0000002,0 z"
sodipodi:nodetypes="cccccccccccc" />
</mask>
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient2049"
id="linearGradient2051"
x1="77.999786"
y1="23.999893"
x2="77.999786"
y2="88"
gradientUnits="userSpaceOnUse" />
<mask
maskUnits="userSpaceOnUse"
id="mask2082">
<path
id="path2084"
style="display:inline;opacity:1;fill:#ffffff;fill-opacity:0.995242;stroke:none;stroke-width:12.1297;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke fill markers"
d="m 28.97044,-0.97054323 h 95.99979 V 17.029748 h 5.99999 3 39.00022 v 75.999701 h -144 c -6,8e-6 -6,-5.999991 -6,-5.999991 V 69.029523 c 6.30961,0 6,-3.7608 6,-5.999998 z"
sodipodi:nodetypes="cccccccccccc" />
</mask>
<mask
maskUnits="userSpaceOnUse"
id="mask2086">
<path
id="path2088"
style="display:inline;opacity:1;fill:#ffffff;fill-opacity:0.995242;stroke:none;stroke-width:12.1297;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke fill markers"
d="M 4.9704404,-0.97054323 H 100.97023 V 17.029748 h 5.99999 3 39.00022 V 93.029449 H 4.9704404 c -6.0000002,8e-6 -6.0000002,-5.999991 -6.0000002,-5.999991 V 69.029523 c 6.3096095,0 6.0000002,-3.7608 6.0000002,-5.999998 z"
sodipodi:nodetypes="cccccccccccc" />
</mask>
<mask
maskUnits="userSpaceOnUse"
id="mask39563">
<path
id="path39565"
style="display:inline;opacity:1;fill:#ffffff;fill-opacity:0.995242;stroke:none;stroke-width:12.1297;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke fill markers"
d="M -11.000389,1.7347604e-4 61.999709,1.731e-4 V 94.000173 L 6.0000008,93.999993 C -4.5833333e-7,94.000001 -4.5833333e-7,88.000002 -4.5833333e-7,88.000002 V 70.000065 C 6.3096082,70.000065 6.0000008,66.239267 6.0000008,64.000069 V 42.000364 l -17.0003898,0.09207 z"
sodipodi:nodetypes="cccccccccc" />
</mask>
</defs>
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="1.8873101"
inkscape:cx="298.30817"
inkscape:cy="177.23638"
inkscape:document-units="mm"
inkscape:current-layer="layer1"
inkscape:document-rotation="0"
showgrid="false"
showguides="false"
inkscape:guide-bbox="true"
inkscape:snap-nodes="true"
inkscape:window-width="2560"
inkscape:window-height="1395"
inkscape:window-x="1200"
inkscape:window-y="147"
inkscape:window-maximized="0"
inkscape:pagecheckerboard="true"
inkscape:showpageshadow="2"
inkscape:deskcolor="#d1d1d1">
<sodipodi:guide
position="0,92.000002"
orientation="0,1"
id="guide953"
inkscape:label=""
inkscape:locked="false"
inkscape:color="rgb(0,0,255)" />
<sodipodi:guide
position="0,92.000002"
orientation="-1,0"
id="guide955"
inkscape:label=""
inkscape:locked="false"
inkscape:color="rgb(0,0,255)" />
<sodipodi:guide
position="6,17.999989"
orientation="1,0"
id="guide957"
inkscape:locked="false" />
<sodipodi:guide
position="-26.377217,88.091013"
orientation="0,-1"
id="guide959"
inkscape:locked="false" />
<sodipodi:guide
position="150,70.000106"
orientation="-1,0"
id="guide961"
inkscape:label=""
inkscape:locked="false"
inkscape:color="rgb(0,0,255)" />
<sodipodi:guide
position="6,5.9999998"
orientation="0,-1"
id="guide965"
inkscape:locked="false" />
<sodipodi:guide
position="29.568325,17.999665"
orientation="0,-1"
id="guide969"
inkscape:locked="false" />
<sodipodi:guide
position="22.692678,5.8796732"
orientation="1,0"
id="guide975"
inkscape:locked="false" />
<sodipodi:guide
position="0,0"
orientation="0,1"
id="guide4914"
inkscape:label=""
inkscape:locked="false"
inkscape:color="rgb(0,0,255)" />
<sodipodi:guide
position="143.99978,70.000106"
orientation="0,-1"
id="guide4916"
inkscape:locked="false" />
<sodipodi:guide
position="77.999781,23.999932"
orientation="0,-1"
id="guide6540"
inkscape:locked="false" />
<sodipodi:guide
position="143.99984,23.029968"
orientation="0,-1"
id="guide1563"
inkscape:locked="false" />
<sodipodi:guide
position="143.99985,11.999969"
orientation="0,-1"
id="guide1585"
inkscape:locked="false" />
<sodipodi:guide
position="0,93.999996"
orientation="0,1"
id="guide1680"
inkscape:label=""
inkscape:locked="false"
inkscape:color="rgb(0,0,255)" />
<sodipodi:guide
position="101.99979,75.999705"
orientation="0,-1"
id="guide1688"
inkscape:locked="false" />
<sodipodi:guide
position="6,29.99993"
orientation="0,-1"
id="guide1857"
inkscape:locked="false" />
<sodipodi:guide
position="59.999801,23.999933"
orientation="1,0"
id="guide4063"
inkscape:locked="false" />
<sodipodi:guide
position="49.999815,69.999881"
orientation="1,0"
id="guide6556"
inkscape:locked="false" />
<sodipodi:guide
position="46.233196,51.999808"
orientation="0,-1"
id="guide7945"
inkscape:locked="false" />
<sodipodi:guide
position="20.999901,86.646557"
orientation="1,0"
id="guide39561"
inkscape:locked="false" />
</sodipodi:namedview>
<metadata
id="metadata5">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="text"
inkscape:groupmode="layer"
id="layer1"
style="display:inline">
<text
xml:space="preserve"
id="text833"
style="font-size:10.5833px;line-height:1.25;font-family:'Vice City Sans';-inkscape-font-specification:'Vice City Sans';letter-spacing:0px;word-spacing:0px;white-space:pre;shape-inside:url(#rect835);mix-blend-mode:normal;fill:#fafeff;fill-opacity:1;stroke:#0287d0;stroke-width:12;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.5;paint-order:stroke fill markers"
mask="url(#mask2086)"
transform="translate(1.0295598,0.97054306)" />
<g
id="g1171-7"
transform="translate(-22.97044,0.97054306)"
style="mix-blend-mode:normal;fill:#fafeff;fill-opacity:1;stroke:#0287d0;stroke-width:12;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.5;paint-order:stroke fill markers"
mask="url(#mask2082)" />
<path
id="rect1964-1"
mask="url(#mask39563)"
style="display:inline;fill:#ffffff;fill-opacity:1;stroke:url(#linearGradient2051);stroke-width:12;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke fill markers"
d="M 23.999392 6.0003237 C 11.999623 6.0003198 11.999607 18.000108 11.999607 18.000108 L 23.999392 18.000108 L 23.999392 6.0003237 z M -5.0003887 24.000259 L -5.0003887 36.00056 L 40.999388 36.00056 L 40.999388 24.000259 L -5.0003887 24.000259 z M 11.999607 42.000193 L 11.99599 71.424754 C 11.995514 74.925381 9.1626102 76.000185 5.9999735 76.000185 L 5.9999735 87.99997 C 14.47348 87.99997 21.940696 83.201778 23.63869 75.057607 C 23.875149 73.923471 23.999392 72.712864 23.999392 71.424754 L 23.999392 42.000193 L 11.999607 42.000193 z M 5.9999735 63.999884 L 5.9999735 70.970001 L 5.9999735 63.999884 z "
transform="translate(32.000291,-1.731e-4)" />
</g>
<g
inkscape:groupmode="layer"
id="layer10"
inkscape:label="mask"
style="display:inline" />
<g
inkscape:groupmode="layer"
id="layer5"
inkscape:label="fuss"
style="display:none">
<rect
style="fill:#a33434;fill-opacity:0.437064;stroke:none;stroke-width:0.173306"
id="rect4575"
width="3"
height="3"
x="101.99979"
y="23.999893" />
<rect
style="fill:#a33434;fill-opacity:0.437064;stroke:none;stroke-width:0.346612"
id="rect4604"
width="6"
height="6"
x="160.84108"
y="45.237076" />
<rect
style="fill:#a33434;fill-opacity:0.437064;stroke:none;stroke-width:0.693224"
id="rect928"
width="12"
height="12"
x="119.99986"
y="76" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 26 KiB

1
static/site.webmanifest Normal file
View File

@ -0,0 +1 @@
{"name":"","short_name":"","icons":[{"src":"/android-chrome-192x192.png","sizes":"192x192","type":"image/png"},{"src":"/android-chrome-512x512.png","sizes":"512x512","type":"image/png"}],"theme_color":"#ffffff","background_color":"#ffffff","display":"standalone"}

10
themes/LoveIt/.babelrc Normal file
View File

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

View File

@ -0,0 +1,17 @@
version: 2.1
jobs:
build-check:
docker:
- image: cibuilds/hugo:0.62
working_directory: ~/LoveIt
steps:
- checkout
- run: git submodule sync
- run: git submodule update --init
- run: hugo --source=exampleSite -v --gc
- run: htmlproofer exampleSite/public --check-html --allow-hash-href --empty-alt-ignore --disable-external
workflows:
build-check-exampleSite:
jobs:
- build-check

1
themes/LoveIt/.github/FUNDING.yml vendored Normal file
View File

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

View File

@ -0,0 +1,41 @@
---
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 10, 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 10, macOS, Ubuntu, iOS, Android]
- Browser [e.g. Chrome, Safari, Firefox]
### Additional Information 补充信息
Configuration files or front matter code...
配置文件或者前置参数的代码...

View File

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

View File

@ -0,0 +1,22 @@
---
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.
如果可以的话, 提供实现这个功能的相关参考链接.

20
themes/LoveIt/.gitignore vendored Normal file
View File

@ -0,0 +1,20 @@
# 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

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

21
themes/LoveIt/LICENSE Normal file
View File

@ -0,0 +1,21 @@
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.

203
themes/LoveIt/README.md Normal file
View File

@ -0,0 +1,203 @@
# LoveIt Theme | Hugo [![Netlify Status](https://api.netlify.com/api/v1/badges/e60303f2-862c-4342-bf59-7c9adb10812e/deploy-status)](https://app.netlify.com/sites/hugo-loveit/deploys)
[![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.62.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)
[![Quality Gate Status](https://sonarcloud.io/api/project_badges/measure?project=dillonzq_LoveIt&metric=alert_status)](https://sonarcloud.io/summary/new_code?id=dillonzq_LoveIt)
[![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
* 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 **64** 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/)
### 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)
* ...
## [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
* Brazilian Portuguese
* Italian
* Spanish
* German
* Serbian
* Russian
* Romanian
* Vietnamese
* [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

@ -0,0 +1,198 @@
# LoveIt 主题 | Hugo [![Netlify Status](https://api.netlify.com/api/v1/badges/e60303f2-862c-4342-bf59-7c9adb10812e/deploy-status)](https://app.netlify.com/sites/hugo-loveit/deploys)
[![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.62.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)
[![Quality Gate Status](https://sonarcloud.io/api/project_badges/measure?project=dillonzq_LoveIt&metric=alert_status)](https://sonarcloud.io/summary/new_code?id=dillonzq_LoveIt)
[![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/)**
* 支持搜索引擎的**网站验证** (Google, Bind, Yandex and Baidu)
* 支持所有第三方库的 **CDN**
* 基于 [lazysizes](https://github.com/aFarkas/lazysizes) 自动转换图片为**懒加载**
### 外观和布局
* **桌面端/移动端 响应式**布局
* **浅色/深色** 主题模式
* 全局一致的**设计语言**
* 支持**分页**
* 易用和自动展开的**文章目录**
* 支持**多语言**和国际化
* 美观的 **CSS 动画**
### 社交和评论系统
* 支持 **[Gravatar](https://gravatar.com)** 头像
* 支持本地**头像**
* 支持多达 **64** 种社交链接
* 支持多达 **24** 种网站分享
* 支持 **[Disqus](https://disqus.com)** 评论系统
* 支持 **[Gitalk](https://github.com/gitalk/gitalk)** 评论系统
* 支持 **[Valine](https://valine.js.org/)** 评论系统
* 支持 **[Facebook](https://developers.facebook.com/docs/plugins/comments/) 评论**系统
* 支持 **[Telegram comments](https://comments.app/) 评论**系统
* 支持 **[Commento](https://commento.io/)** 评论系统
* 支持 **[Utterances](https://utteranc.es/)** 评论系统
### 扩展功能
* 支持基于 [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 许可横幅**
* ...
## [文档](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

@ -0,0 +1,62 @@
---
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
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

@ -0,0 +1,61 @@
html {
font-family: $global-font-family;
font-weight: $global-font-weight;
font-display: swap;
font-size: $global-font-size;
line-height: $global-line-height;
width:100%;
scroll-behavior: smooth;
main [id] {
scroll-margin-top: $header-height + .5rem;
}
}
/* 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 ms;
@include link(true, true);
@import "../_partial/mask";
@import "../_partial/icon";
@import "../_partial/details";
@import "../_partial/fixed-button";
@import "../_partial/cookieconsent";
img {
@include object-fit(contain);
}

View File

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

View File

@ -0,0 +1,80 @@
@media only screen and (max-width: 1440px) {
.page {
width: 56%;
}
}
@media only screen and (max-width: 1200px) {
.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: $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

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

View File

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

View File

@ -0,0 +1,110 @@
@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;
-moz-transform: $value;
-ms-transform: $value;
-o-transform: $value;
transform: $value;
}
@mixin filter($value) {
-webkit-filter: $value;
-moz-filter: $value;
-ms-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) {
-moz-appearance: $value;
-webkit-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 ms {
input::-ms-clear {
display: none;
}
}
@mixin object-fit($value) {
-o-object-fit: $value;
object-fit: $value;
font-family: 'object-fit: #{$value};';
}

View File

@ -0,0 +1,7 @@
@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

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

View File

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

View File

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

View File

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

View File

@ -0,0 +1,13 @@
.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

@ -0,0 +1,182 @@
.home {
.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;
@include object-fit(none);
}
img.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

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

View File

@ -0,0 +1,347 @@
@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-wrapper {
overflow-x: auto;
&::-webkit-scrollbar {
background-color: $table-background-color;
[theme=dark] & {
background-color: $table-background-color-dark;
}
}
> table {
width: 100%;
max-width: 100%;
margin: .625rem 0;
border-spacing: 0;
background: $table-background-color;
border-collapse: collapse;
[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;
}
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;
}
}
.lazyload, .lazyloading {
@include object-fit(scale-down);
}
.lazyloaded {
@include object-fit(fill);
}
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/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: $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;
}
}
@import "../_partial/_single/footer";
@import "../_partial/_single/comment";
}
.typeit {
.highlight {
padding: .375rem;
font-size: .875rem;
font-family: $code-font-family;
font-weight: bold;
word-break: break-all;
white-space: pre-wrap;
}
--ti-cursor-font-family: $global-font-family;
--ti-cursor-font-size: $global-font-size;
--ti-cursor-font-weight: $global-font-weight;
--ti-cursor-line-height: $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

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

View File

@ -0,0 +1,27 @@
.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

@ -0,0 +1,82 @@
.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

@ -0,0 +1,17 @@
.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

@ -0,0 +1,33 @@
.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: $MAX_LENGTH;
@include details-transition-close;
}
}
}

View File

@ -0,0 +1,46 @@
#fixed-buttons {
display: none;
}
.fixed-button {
display: none;
z-index: 100;
position: fixed;
right: 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;
}
}
}
#back-to-top {
display: block;
bottom: 1.5rem;
}
#view-comments {
bottom: 4.5rem;
}

View File

@ -0,0 +1,21 @@
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

@ -0,0 +1,468 @@
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: $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: $header-height;
line-height: $header-height;
[data-header-desktop=normal] & {
position: static;
}
.header-wrapper {
padding: 0 2rem 0 10vh;
.header-title {
font-size: $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: $header-height;
line-height: $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: $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: ($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: -$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: $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 - #{$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

@ -0,0 +1,17 @@
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

@ -0,0 +1,16 @@
#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

@ -0,0 +1,91 @@
.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

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

View File

@ -0,0 +1,16 @@
.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

@ -0,0 +1,399 @@
code {
display:inline-block;
max-width: 100%;
padding: 0 .4rem;
@include overflow-wrap(break-word);
@include line-break(anywhere);
font-size: $code-font-size;
font-family: $code-font-family;
color: $code-color;
[theme=dark] & {
color: $code-color-dark;
}
}
pre {
margin: 0;
padding: .25rem 0 .25rem .5rem;
@include tab-size(4);
code {
padding: 0;
}
img {
min-height: 1em;
max-height: 1.2em;
vertical-align: text-bottom;
}
}
code, pre, .highlight table, .highlight tr, .highlight td {
background: $code-background-color;
[theme=dark] & {
background: $code-background-color-dark;
}
}
.highlight {
font-family: $code-font-family;
font-size: $code-font-size;
line-height: 1.4em;
margin: .5rem 0;
.table-wrapper {
> table,
> table thead,
> table tr,
> table td {
margin: 0;
padding: 0;
border: none !important;
span.c {
white-space: nowrap;
}
}
}
> .chroma {
position: relative;
.code-header {
display: flex;
justify-content: space-between;
align-items: center;
box-sizing: border-box;
width: 100%;
font-family: $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-map {
&.#{$type} .code-title::after {
content: $text;
}
}
}
.lntd:first-child {
min-width: 1.6rem;
text-align: right;
}
.lntd:last-child {
width: 100%;
pre {
@include max-content(min-width);
}
}
.ln {
padding-right: .75rem;
}
.hl {
display: block;
background-color: darken($code-background-color, 10%);
[theme=dark] & {
background-color: darken($code-background-color-dark, 5%);
}
}
.ln, .lnt {
color: $global-font-secondary-color;
[theme=dark] & {
color: $global-font-secondary-color-dark;
}
}
.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;
}
}
}
.table-wrapper {
max-height: 0;
overflow-y: hidden;
@include details-transition-open;
}
&.open {
.code-header {
background: darken($code-background-color, 3%);
[theme=dark] & {
background: darken($code-background-color-dark, 3%);
}
}
.table-wrapper {
max-height: $MAX_LENGTH;
@include details-transition-close;
}
.arrow {
@include transform(rotate(90deg));
}
.ellipses {
display: none;
}
.copy {
display: inline;
}
}
}
/* Comment */ .c,
/* CommentHashbang */ .ch,
/* CommentMultiline */ .cm,
/* CommentSingle */ .c1,
/* CommentSpecial */ .cs,
/* CommentPreproc */ .cp,
/* CommentPreprocFile */ .cpf { font-style: italic }
/* GenericUnderline */ .gl { 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; }
}
}
}
.gist {
font-family: $code-font-family;
font-size: $code-font-size;
.table-wrapper {
> table,
> table thead,
> table tr,
> table td {
margin: 0;
padding: 0;
border: none !important;
}
}
.gist-file, .gist-data, .gist-meta {
border: none;
}
.gist-meta {
padding: .4rem .8rem;
background-color: darken($code-background-color, 5%);
@include link(false, false);
[theme=dark] & {
background-color: darken($code-background-color-dark, 5%);
}
}
[theme=dark] & {
// imported from https://github.com/lonekorean/gist-syntax-themes/blob/master/stylesheets/one-dark.css
.highlight {
background: #141414;
}
.blob-num,
.blob-code-inner,
.highlight,
.pl-enm,
.pl-ko,
.pl-mo,
.pl-mp1 .pl-sf,
.pl-ms,
.pl-pdc1,
.pl-scp,
.pl-smc,
.pl-som,
.pl-va,
.pl-vpf,
.pl-vpu,
.pl-mdr {
color: #aab1bf;
}
.pl-mb,
.pl-pdb {
font-weight: 700;
}
.pl-c,
.pl-c span,
.pl-pdc {
color: #5b6270;
font-style: italic;
}
.pl-sr .pl-cce {
color: #56b5c2;
font-weight: 400;
}
.pl-ef,
.pl-en,
.pl-enf,
.pl-eoai,
.pl-kos,
.pl-mh .pl-pdh,
.pl-mr {
color: #61afef;
}
.pl-ens,
.pl-vi {
color: #be5046;
}
.pl-enti,
.pl-mai .pl-sf,
.pl-ml,
.pl-sf,
.pl-sr,
.pl-sr .pl-sra,
.pl-src,
.pl-st,
.pl-vo {
color: #56b5c2;
}
.pl-eoi,
.pl-mri,
.pl-pds,
.pl-pse .pl-s1,
.pl-s,
.pl-s1 {
color: #97c279;
}
.pl-k,
.pl-kolp,
.pl-mc,
.pl-pde {
color: #c578dd;
}
.pl-mi,
.pl-pdi {
color: #c578dd;
font-style: italic;
}
.pl-mp,
.pl-stp {
color: #818896;
}
.pl-mdh,
.pl-mdi,
.pl-mdr {
font-weight: 400;
}
.pl-mdht,
.pl-mi1 {
color: #97c279;
background: #020;
}
.pl-md,
.pl-mdhf {
color: #df6b75;
background: #200;
}
.pl-corl {
color: #df6b75;
text-decoration: underline;
}
.pl-ib {
background: #df6b75;
}
.pl-ii {
background: #e0c184;
color: #fff;
}
.pl-iu {
background: #e05151;
}
.pl-ms1 {
color: #aab1bf;
background: #373b41;
}
.pl-c1,
.pl-cn,
.pl-e,
.pl-eoa,
.pl-eoac,
.pl-eoac .pl-pde,
.pl-kou,
.pl-mm,
.pl-mp .pl-s3,
.pl-mq,
.pl-s3,
.pl-sok,
.pl-sv,
.pl-mb {
color: #d19965;
}
.pl-enc,
.pl-entc,
.pl-pse .pl-s2,
.pl-s2,
.pl-sc,
.pl-smp,
.pl-sr .pl-sre,
.pl-stj,
.pl-v,
.pl-pdb {
color: #e4bf7a;
}
.pl-ent,
.pl-entl,
.pl-entm,
.pl-mh,
.pl-pdv,
.pl-smi,
.pl-sol,
.pl-mdh,
.pl-mdi {
color: #df6b75;
}
}
}

View File

@ -0,0 +1,3 @@
#comments {
padding: 8rem 0 2rem;
}

View File

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

View File

@ -0,0 +1,98 @@
.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));
}
}
}

View File

@ -0,0 +1,5 @@
iframe.instagram-media {
[theme=dark] & {
border: none !important;
}
}

View File

@ -0,0 +1,4 @@
.mapbox {
margin: .5rem 0;
padding: .5rem 0;
}

View File

@ -0,0 +1,3 @@
meting-js {
margin: .5rem 0;
}

View File

@ -0,0 +1,157 @@
.toc {
.toc-title {
font-size: $toc-title-font-size;
font-weight: bold;
text-transform: uppercase;
}
.toc-content {
font-size: $toc-content-font-size;
ul {
text-indent: -0.85rem;
padding-left: .8rem;
list-style: none;
a:first-child::before {
content: "|";
font-weight: bolder;
margin-right: .5rem;
color: $single-link-color;
[theme=dark] & {
color: $single-link-color-dark;
}
}
ul {
padding-left: 1.5rem;
}
}
}
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;
}
}
}
}
#toc-auto {
display: block;
position: absolute;
width: $MAX_LENGTH;
max-width: 0;
padding: 0 .8rem;
border-left: 4px solid $global-border-color;
@include overflow-wrap(break-word);
box-sizing: border-box;
top: 10rem;
left: 0;
visibility: hidden;
[data-header-desktop=normal] & {
top: 5rem;
}
@include blur;
[theme=dark] & {
border-left-color: $global-border-color-dark;
}
.toc-title {
margin: .8rem 0;
}
.toc-content {
&.always-active ul {
display: block;
}
> nav > ul {
margin: .625rem 0;
}
ul {
ul {
display: none;
}
.has-active > ul {
display: block;
}
}
a.active {
font-weight: bold;
color: $single-link-color;
[theme=dark] & {
color: $single-link-color-dark;
}
&::before {
color: $single-link-hover-color;
[theme=dark] & {
color: $single-link-hover-color-dark;
}
}
}
}
}
#toc-static {
display: none;
margin: .8rem 0;
&[data-kept=true] {
display: block;
}
.toc-title {
display: flex;
justify-content: space-between;
line-height: 2em;
padding: 0 .75rem;
background: darken($code-background-color, 6%);
[theme=dark] & {
background: darken($code-background-color-dark, 6%);
}
}
.toc-content {
background-color: $code-background-color;
> nav > ul {
margin: 0;
padding: .4rem 1rem .4rem 1.8rem;
}
[theme=dark] & {
background-color: $code-background-color-dark;
}
}
&.open {
.toc-title {
background: darken($code-background-color, 3%);
[theme=dark] & {
background: darken($code-background-color-dark, 3%);
}
}
}
}

View File

@ -0,0 +1,369 @@
// ==============================
// Variables
// ==============================
// ========== Global ========== //
// Font and Line Height
$global-font-family: system-ui, -apple-system, BlinkMacSystemFont, PingFang SC, Microsoft YaHei UI, Segoe UI, Roboto, Oxygen, Ubuntu, Cantarell, Fira Sans, Droid Sans, Helvetica Neue, Helvetica, Arial, sans-serif !default;
$global-font-size: 16px;
$global-font-weight: 400;
$global-line-height: 1.5rem;
// Color of the background
$global-background-color: #fff !default;
$global-background-color-dark: #292a2d !default;
// Color of the text
$global-font-color: #161209 !default;
$global-font-color-dark: #a9a9b3 !default;
// Color of the secondary text
$global-font-secondary-color: #a9a9b3 !default;
$global-font-secondary-color-dark: #5d5d5f !default;
// Color of the link
$global-link-color: #161209 !default;
$global-link-color-dark: #a9a9b3 !default;
// Color of the hover link
$global-link-hover-color: #2d96bd !default;
$global-link-hover-color-dark: #fff !default;
// Color of the border
$global-border-color: #f0f0f0 !default;
$global-border-color-dark: #363636 !default;
// ========== Global ========== //
// ========== Scrollbar ========== //
// Color of the scrollbar
$scrollbar-color: #87878d !default;
// Color of the hover scrollbar
$scrollbar-hover-color: #a9a9b3 !default;
// ========== Scrollbar ========== //
// ========== Selection ========== //
// Color of the selected text
$selection-color: rgba(53, 166, 247, 0.25) !default;
$selection-color-dark: rgba(50, 112, 194, 0.4) !default;
// ========== Selection ========== //
// ========== Header ========== //
// Height of the header
$header-height: 3.5rem !default;
// Color of the header background
$header-background-color: #f8f8f8 !default;
$header-background-color-dark: #252627 !default;
// Font style of the header title
$header-title-font-family: $global-font-family !default;
$header-title-font-size: 1.5rem !default;
// Color of the hover header item
$header-hover-color: #161209 !default;
$header-hover-color-dark: #fff !default;
// Color of the search background
$search-background-color: #e9e9e9 !default;
$search-background-color-dark: #363636 !default;
// ========== Header ========== //
// ========== Single Content ========== //
// Font size of the TOC
$toc-title-font-size: 1.2rem !default;
$toc-content-font-size: 1rem !default;
// Color of the single link
$single-link-color: #2d96bd !default;
$single-link-color-dark: #55bde2 !default;
// Color of the hover single link
$single-link-hover-color: #ef3982 !default;
$single-link-hover-color-dark: #bdebfc !default;
// Color of the table background
$table-background-color: #fff !default;
$table-background-color-dark: #272c34 !default;
// Color of the table thead
$table-thead-color: #ededed !default;
$table-thead-color-dark: #20252b !default;
// Color of the blockquote
$blockquote-color: #6bd6fd !default;
$blockquote-color-dark: #59c5ec !default;
// ========== Single Content ========== //
// ========== Pagination ========== //
// Color of the link in pagination
$pagination-link-color: #2d96bd !default;
$pagination-link-color-dark: #a9a9b3 !default;
// Color of the hover link in pagination
$pagination-link-hover-color: #000 !default;
$pagination-link-hover-color-dark: #fff !default;
// ========== Pagination ========== //
// ========== Code ========== //
// Color of the code
$code-color: #E74C3C !default;
$code-color-dark: #E5BF78 !default;
// Color of the code background
$code-background-color: #f5f5f5 !default;
$code-background-color-dark: #272C34 !default;
$code-info-color: #9c9c9c !default;
$code-info-color-dark: #b1b0b0 !default;
// Font size of the code
$code-font-size: .875rem !default;
// Font family of the code
$code-font-family: Source Code Pro, Menlo, Consolas, Monaco, monospace, $global-font-family !default;
// Code type map
$code-type-map: (
// Custom code type
language-bash: 'Bash',
language-c: 'C',
language-cs: 'C#',
language-cpp: 'C++',
language-clojure: 'Clojure',
language-coffeescript: 'CoffeeScript',
language-css: 'CSS',
language-dart: 'Dart',
language-diff: 'Diff',
language-erlang: 'Erlang',
language-go: 'Go',
language-go-html-template: 'Go HTML Template',
language-groovy: 'Groovy',
language-haskell: 'Haskell',
language-html: 'HTML',
language-http: 'HTTP',
language-xml: 'XML',
language-java: 'Java',
language-js: 'JavaScript',
language-javascript: 'JavaScript',
language-json: 'JSON',
language-kotlin: 'Kotlin',
language-latex: 'LaTeX',
language-less: 'Less',
language-lisp: 'Lisp',
language-lua: 'Lua',
language-makefile: 'Makefile',
language-markdown: 'Markdown',
language-matlab: 'Matlab',
language-objectivec: 'Objective-C',
language-php: 'PHP',
language-perl: 'Perl',
language-powershell: 'PowerShell',
language-posh: 'PowerShell',
language-pwsh: 'PowerShell',
language-python: 'Python',
language-r: 'R',
language-ruby: 'Ruby',
language-rust: 'Rust',
language-scala: 'Scala',
language-scss: 'Scss',
language-shell: 'Shell',
language-sql: 'SQL',
language-swift: 'Swift',
language-tex: 'TeX',
language-toml: 'TOML',
language-ts: 'TypeScript',
language-typescript: 'TypeScript',
language-vue: 'Vue',
language-yml: 'YAML',
language-yaml: 'YAML',
) !default;
// Color map of the code highlight
$code-highlight-color-map: (
/* Parentheses */ 'p': #a9a9b3,
/* Keyword */ 'k': #b501a9,
/* KeywordConstant */ 'kc': #b501a9,
/* KeywordDeclaration */ 'kd': #b501a9,
/* KeywordNamespace */ 'kn': #b501a9,
/* KeywordPseudo */ 'kp': #b501a9,
/* KeywordReserved */ 'kr': #b501a9,
/* KeywordType */ 'kt': #b501a9,
/* Name */ 'n': #333333,
/* NameAttribute */ 'na': #2b77fa,
/* NameBuiltin */ 'nb': #f74840,
/* NameBuiltinPseudo */ 'bp': #f74840,
/* NameClass */ 'nc': #cb8100,
/* NameConstant */ 'no': #2b77fa,
/* NameDecorator */ 'nd': #0086c1,
/* NameEntity */ 'ni': #2b77fa,
/* NameException */ 'ne': #2b77fa,
/* NameFunction */ 'nf': #2b77fa,
/* NameFunctionMagic */ 'fm': #1ccad6,
/* NameLabel */ 'nl': #2b77fa,
/* NameNamespace */ 'nn': #2b77fa,
/* NameOther */ 'nx': #333333,
/* NameProperty */ 'py': #2b77fa,
/* NameTag */ 'nt': #2b77fa,
/* NameVariable */ 'nv': #2b77fa,
/* NameVariableClass */ 'vc': #2b77fa,
/* NameVariableGlobal */ 'vg': #2b77fa,
/* NameVariableInstance */ 'vi': #2b77fa,
/* NameVariableMagic */ 'vm': #2b77fa,
/* Literal */ 'l': #2aa198,
/* LiteralDate */ 'ld': #2aa198,
/* LiteralString */ 's': #24a443,
/* LiteralStringAffix */ 'sa': #24a443,
/* LiteralStringBacktick */ 'sb': #24a443,
/* LiteralStringChar */ 'sc': #24a443,
/* LiteralStringDelimiter */ 'dl': #24a443,
/* LiteralStringDoc */ 'sd': #24a443,
/* LiteralStringDouble */ 's2': #24a443,
/* LiteralStringEscape */ 'se': #24a443,
/* LiteralStringHeredoc */ 'sh': #24a443,
/* LiteralStringInterpol */ 'si': #24a443,
/* LiteralStringOther */ 'sx': #24a443,
/* LiteralStringRegex */ 'sr': #24a443,
/* LiteralStringSingle */ 's1': #24a443,
/* LiteralStringSymbol */ 'ss': #24a443,
/* LiteralNumber */ 'm': #e2893c,
/* LiteralNumberBin */ 'mb': #e2893c,
/* LiteralNumberFloat */ 'mf': #e2893c,
/* LiteralNumberHex */ 'mh': #e2893c,
/* LiteralNumberInteger */ 'mi': #e2893c,
/* LiteralNumberIntegerLong */ 'il': #e2893c,
/* LiteralNumberOct */ 'mo': #e2893c,
/* Operator */ 'o': #f19b04,
/* OperatorWord */ 'ow': #b501a9,
/* Comment */ 'c': #a0a1a8,
/* CommentHashbang */ 'ch': #a0a1a8,
/* CommentMultiline */ 'cm': #a0a1a8,
/* CommentSingle */ 'c1': #a0a1a8,
/* CommentSpecial */ 'cs': #a0a1a8,
/* CommentPreproc */ 'cp': #a0a1a8,
/* CommentPreprocFile */ 'cpf': #a0a1a8,
/* Generic */ 'g': #e72d40,
/* GenericDeleted */ 'gd': #e72d40,
/* GenericEmph */ 'ge': #e72d40,
/* GenericError */ 'gr': #e72d40,
/* GenericHeading */ 'gh': #e72d40,
/* GenericInserted */ 'gi': #e72d40,
/* GenericOutput */ 'go': #e72d40,
/* GenericPrompt */ 'gp': #e72d40,
/* GenericStrong */ 'gs': #e72d40,
/* GenericSubheading */ 'gu': #e72d40,
/* GenericTraceback */ 'gt': #e72d40,
/* TextWhitespace */ 'w': #bbbbbb,
) !default;
$code-highlight-color-map-dark: (
/* Parentheses */ 'p': #a9a9b3,
/* Keyword */ 'k': #d371e3,
/* KeywordConstant */ 'kc': #d371e3,
/* KeywordDeclaration */ 'kd': #d371e3,
/* KeywordNamespace */ 'kn': #d371e3,
/* KeywordPseudo */ 'kp': #d371e3,
/* KeywordReserved */ 'kr': #d371e3,
/* KeywordType */ 'kt': #d371e3,
/* Name */ 'n': #a9b2c0,
/* NameAttribute */ 'na': #41b0f5,
/* NameBuiltin */ 'nb': #19b9c4,
/* NameBuiltinPseudo */ 'bp': #ecbf6f,
/* NameClass */ 'nc': #ecbf6f,
/* NameConstant */ 'no': #41b0f5,
/* NameDecorator */ 'nd': #ecbf6f,
/* NameEntity */ 'ni': #41b0f5,
/* NameException */ 'ne': #41b0f5,
/* NameFunction */ 'nf': #41b0f5,
/* NameFunctionMagic */ 'fm': #19b9c4,
/* NameLabel */ 'nl': #41b0f5,
/* NameNamespace */ 'nn': #41b0f5,
/* NameOther */ 'nx': #a9a9b3,
/* NameProperty */ 'py': #41b0f5,
/* NameTag */ 'nt': #41b0f5,
/* NameVariable */ 'nv': #41b0f5,
/* NameVariableClass */ 'vc': #41b0f5,
/* NameVariableGlobal */ 'vg': #41b0f5,
/* NameVariableInstance */ 'vi': #41b0f5,
/* NameVariableMagic */ 'vm': #41b0f5,
/* Literal */ 'l': #2aa198,
/* LiteralDate */ 'ld': #2aa198,
/* LiteralString */ 's': #8cc570,
/* LiteralStringAffix */ 'sa': #8cc570,
/* LiteralStringBacktick */ 'sb': #8cc570,
/* LiteralStringChar */ 'sc': #8cc570,
/* LiteralStringDelimiter */ 'dl': #8cc570,
/* LiteralStringDoc */ 'sd': #8cc570,
/* LiteralStringDouble */ 's2': #8cc570,
/* LiteralStringEscape */ 'se': #8cc570,
/* LiteralStringHeredoc */ 'sh': #8cc570,
/* LiteralStringInterpol */ 'si': #8cc570,
/* LiteralStringOther */ 'sx': #8cc570,
/* LiteralStringRegex */ 'sr': #8cc570,
/* LiteralStringSingle */ 's1': #8cc570,
/* LiteralStringSymbol */ 'ss': #8cc570,
/* LiteralNumber */ 'm': #db985c,
/* LiteralNumberBin */ 'mb': #db985c,
/* LiteralNumberFloat */ 'mf': #db985c,
/* LiteralNumberHex */ 'mh': #db985c,
/* LiteralNumberInteger */ 'mi': #db985c,
/* LiteralNumberIntegerLong */ 'il': #db985c,
/* LiteralNumberOct */ 'mo': #db985c,
/* Operator */ 'o': #ecbf6f,
/* OperatorWord */ 'ow': #d371e3,
/* Comment */ 'c': #7e848f,
/* CommentHashbang */ 'ch': #7e848f,
/* CommentMultiline */ 'cm': #7e848f,
/* CommentSingle */ 'c1': #7e848f,
/* CommentSpecial */ 'cs': #7e848f,
/* CommentPreproc */ 'cp': #7e848f,
/* CommentPreprocFile */ 'cpf': #7e848f,
/* Generic */ 'g': #f16372,
/* GenericDeleted */ 'gd': #f16372,
/* GenericEmph */ 'ge': #f16372,
/* GenericError */ 'gr': #f16372,
/* GenericHeading */ 'gh': #f16372,
/* GenericInserted */ 'gi': #f16372,
/* GenericOutput */ 'go': #f16372,
/* GenericPrompt */ 'gp': #f16372,
/* GenericStrong */ 'gs': #f16372,
/* GenericSubheading */ 'gu': #f16372,
/* GenericTraceback */ 'gt': #f16372,
/* TextWhitespace */ 'w': #bbbbbb,
) !default;
// ========== Code ========== //
// ========== Admonition ========== //
// Color map of the admonition
$admonition-color-map: (
'note': #448aff,
'abstract': #00b0ff,
'info': #00b8d4,
'tip': #00bfa5,
'success': #00c853,
'question': #64dd17,
'warning': #ff9100,
'failure': #ff5252,
'danger': #ff1744,
'bug': #f50057,
'example': #651fff,
'quote': #9e9e9e,
) !default;
// Color map of the admonition background
$admonition-background-color-map: (
'note': rgba(68, 138, 255, 0.1),
'abstract': rgba(0, 176, 255, 0.1),
'info': rgba(0, 184, 212, 0.1),
'tip': rgba(0, 191, 165, 0.1),
'success': rgba(0, 200, 83, 0.1),
'question': rgba(100, 221, 23, 0.1),
'warning': rgba(255, 145, 0, 0.1),
'failure': rgba(255, 82, 82, 0.1),
'danger': rgba(255, 23, 68, 0.1),
'bug': rgba(245, 0, 87, 0.1),
'example': rgba(101, 31, 255, 0.1),
'quote': rgba(159, 159, 159, 0.1),
) !default;
// ========== Admonition ========== //
$MAX_LENGTH: 12000px;

View File

@ -0,0 +1,19 @@
@charset "utf-8";
@import "_variables";
@import "_override";
@import "_mixin/index";
@import "_core/base";
@import "_core/layout";
@import "_page/index";
@import "_partial/header";
@import "_partial/footer";
@import "_partial/pagination";
@import "_core/media";
@import "_custom";

View File

@ -0,0 +1,61 @@
prefix:
libFiles: https://cdn.jsdelivr.net/npm/
# simple-icons@6.20.0 https://github.com/simple-icons/simple-icons
simpleIcons: https://cdn.jsdelivr.net/npm/simple-icons@6.20.0/icons/
libFiles:
# normalize.css@8.0.1 https://github.com/necolas/normalize.css
normalizeCSS: normalize.css@8.0.1/normalize.min.css
# fontawesome-free@6.1.1 https://fontawesome.com/
fontawesomeFreeCSS: '@fortawesome/fontawesome-free@6.1.1/css/all.min.css'
# animate.css@4.1.1 https://github.com/daneden/animate.css
animateCSS: animate.css@4.1.1/animate.min.css
# autocomplete.js@0.38.1 https://github.com/algolia/autocomplete.js
autocompleteJS: autocomplete.js@0.38.1/dist/autocomplete.min.js
# lunr.js@2.3.9 https://lunrjs.com/
lunrJS: lunr@2.3.9/lunr.min.js
# algoliasearch@4.13.0 https://github.com/algolia/algoliasearch-client-javascript
algoliasearchJS: algoliasearch@4.13.0/dist/algoliasearch-lite.umd.min.js
# lazysizes@5.3.1 https://github.com/aFarkas/lazysizes
lazysizesJS: lazysizes@5.3.1/lazysizes.min.js
# object-fit-images@3.2.4 https://github.com/fregante/object-fit-images
objectFitImagesJS: object-fit-images@3.2.4/dist/ofi.min.js
# twemoji@14.0.2 https://github.com/twitter/twemoji
twemojiJS: twemoji@14.0.2/dist/twemoji.min.js
# lightgallery@2.4.0 https://github.com/sachinchoolur/lightgallery
lightgalleryCSS: lightgallery@2.4.0/css/lightgallery-bundle.min.css
lightgalleryJS: lightgallery@2.4.0/lightgallery.min.js
lightgalleryThumbnailJS: lightgallery@2.4.0/plugins/thumbnail/lg-thumbnail.min.js
lightgalleryZoomJS: lightgallery@2.4.0/plugins/zoom/lg-zoom.min.js
# clipboard.js@2.0.11 https://github.com/zenorocha/clipboard.js
clipboardJS: clipboard@2.0.11/dist/clipboard.min.js
# sharer.js@0.5.1 https://github.com/ellisonleao/sharer.js
sharerJS: sharer.js@0.5.1/sharer.min.js
# typeit@8.5.4 https://github.com/alexmacarthur/typeit
typeitJS: typeit@8.5.4/dist/index.umd.js
# katex@0.15.3 https://katex.org/
katexCSS: katex@0.15.3/dist/katex.min.css
katexJS: katex@0.15.3/dist/katex.min.js
katexAutoRenderJS: katex@0.15.3/dist/contrib/auto-render.min.js
katexCopyTexCSS: katex@0.15.3/dist/contrib/copy-tex.min.css
katexCopyTexJS: katex@0.15.3/dist/contrib/copy-tex.min.js
katexMhchemJS: katex@0.15.3/dist/contrib/mhchem.min.js
# mermaid@9.1.0 https://github.com/mermaid-js/mermaid
mermaidJS: mermaid@9.1.0/dist/mermaid.min.js
# echarts@5.3.2 https://echarts.apache.org/
echartsJS: echarts@5.3.2/dist/echarts.min.js
# mapbox-gl@2.8.2 https://docs.mapbox.com/mapbox-gl-js
mapboxGLCSS: mapbox-gl@2.8.2/dist/mapbox-gl.min.css
mapboxGLJS: mapbox-gl@2.8.2/dist/mapbox-gl.min.js
# aplayer@1.10.1 https://github.com/MoePlayer/APlayer
aplayerCSS: aplayer@1.10.1/dist/APlayer.min.css
aplayerJS: aplayer@1.10.1/dist/APlayer.min.js
# meting@2.0.1 https://github.com/metowolf/MetingJS
metingJS: meting@2.0.1/dist/Meting.min.js
# gitalk@1.7.2 https://github.com/gitalk/gitalk
gitalkCSS: gitalk@1.7.2/dist/gitalk.min.css
gitalkJS: gitalk@1.7.2/dist/gitalk.min.js
# valine@1.4.18 https://valine.js.org/
valineJS: valine@1.4.18/dist/Valine.min.js
# cookieconsent@3.1.1 https://github.com/osano/cookieconsent
cookieconsentCSS: cookieconsent@3.1.1/build/cookieconsent.min.css
cookieconsentJS: cookieconsent@3.1.1/build/cookieconsent.min.js

View File

@ -0,0 +1,150 @@
emojiCDN: 'https://cdn.jsdelivr.net/npm/emoji-datasource-apple@14.0.0/img/apple/64/'
emojiMaps:
'100': 1f4af.png
grinning: 1f600.png
smiley: 1f603.png
smile: 1f604.png
grin: 1f601.png
laughing: 1f606.png
sweat_smile: 1f605.png
rolling_on_the_floor_laughing: 1f923.png
joy: 1f602.png
slightly_smiling_face: 1f642.png
upside_down_face: 1f643.png
wink: 1f609.png
blush: 1f60a.png
innocent: 1f607.png
smiling_face_with_3_hearts: 1f970.png
heart_eyes: 1f60d.png
star-struck: 1f929.png
kissing_heart: 1f618.png
kissing: 1f617.png
relaxed: 263a-fe0f.png
kissing_closed_eyes: 1f61a.png
kissing_smiling_eyes: 1f619.png
yum: 1f60b.png
stuck_out_tongue: 1f61b.png
stuck_out_tongue_winking_eye: 1f61c.png
zany_face: 1f92a.png
stuck_out_tongue_closed_eyes: 1f61d.png
money_mouth_face: 1f911.png
hugging_face: 1f917.png
face_with_hand_over_mouth: 1f92d.png
shushing_face: 1f92b.png
thinking_face: 1f914.png
zipper_mouth_face: 1f910.png
face_with_raised_eyebrow: 1f928.png
neutral_face: 1f610.png
expressionless: 1f611.png
no_mouth: 1f636.png
smirk: 1f60f.png
unamused: 1f612.png
face_with_rolling_eyes: 1f644.png
grimacing: 1f62c.png
lying_face: 1f925.png
relieved: 1f60c.png
pensive: 1f614.png
sleepy: 1f62a.png
drooling_face: 1f924.png
sleeping: 1f634.png
mask: 1f637.png
face_with_thermometer: 1f912.png
face_with_head_bandage: 1f915.png
nauseated_face: 1f922.png
face_vomiting: 1f92e.png
sneezing_face: 1f927.png
hot_face: 1f975.png
cold_face: 1f976.png
woozy_face: 1f974.png
dizzy_face: 1f635.png
exploding_head: 1f92f.png
face_with_cowboy_hat: 1f920.png
partying_face: 1f973.png
sunglasses: 1f60e.png
nerd_face: 1f913.png
face_with_monocle: 1f9d0.png
confused: 1f615.png
worried: 1f61f.png
slightly_frowning_face: 1f641.png
white_frowning_face: 2639-fe0f.png
open_mouth: 1f62e.png
hushed: 1f62f.png
astonished: 1f632.png
flushed: 1f633.png
pleading_face: 1f97a.png
frowning: 1f626.png
anguished: 1f627.png
fearful: 1f628.png
cold_sweat: 1f630.png
disappointed_relieved: 1f625.png
cry: 1f622.png
sob: 1f62d.png
scream: 1f631.png
confounded: 1f616.png
persevere: 1f623.png
disappointed: 1f61e.png
sweat: 1f613.png
weary: 1f629.png
tired_face: 1f62b.png
yawning_face: 1f971.png
triumph: 1f624.png
rage: 1f621.png
angry: 1f620.png
face_with_symbols_on_mouth: 1f92c.png
smiling_imp: 1f608.png
imp: 1f47f.png
skull: 1f480.png
skull_and_crossbones: 2620-fe0f.png
hankey: 1f4a9.png
clown_face: 1f921.png
japanese_ogre: 1f479.png
japanese_goblin: 1f47a.png
ghost: 1f47b.png
alien: 1f47d.png
space_invader: 1f47e.png
robot_face: 1f916.png
smiley_cat: 1f63a.png
smile_cat: 1f638.png
joy_cat: 1f639.png
heart_eyes_cat: 1f63b.png
smirk_cat: 1f63c.png
kissing_cat: 1f63d.png
scream_cat: 1f640.png
crying_cat_face: 1f63f.png
pouting_cat: 1f63e.png
see_no_evil: 1f648.png
hear_no_evil: 1f649.png
speak_no_evil: 1f64a.png
kiss: 1f48b.png
love_letter: 1f48c.png
cupid: 1f498.png
gift_heart: 1f49d.png
sparkling_heart: 1f496.png
heartpulse: 1f497.png
heartbeat: 1f493.png
revolving_hearts: 1f49e.png
two_hearts: 1f495.png
heart_decoration: 1f49f.png
heavy_heart_exclamation_mark_ornament: 2763-fe0f.png
broken_heart: 1f494.png
heart: 2764-fe0f.png
orange_heart: 1f9e1.png
yellow_heart: 1f49b.png
green_heart: 1f49a.png
blue_heart: 1f499.png
purple_heart: 1f49c.png
brown_heart: 1f90e.png
black_heart: 1f5a4.png
white_heart: 1f90d.png
anger: 1f4a2.png
boom: 1f4a5.png
dizzy: 1f4ab.png
sweat_drops: 1f4a6.png
dash: 1f4a8.png
hole: 1f573-fe0f.png
bomb: 1f4a3.png
speech_balloon: 1f4ac.png
left_speech_bubble: 1f5e8-fe0f.png
right_anger_bubble: 1f5ef-fe0f.png
thought_balloon: 1f4ad.png
zzz: 1f4a4.png

View File

@ -0,0 +1,150 @@
emojiCDN: 'https://cdn.jsdelivr.net/npm/emoji-datasource-facebook@14.0.0/img/facebook/64/'
emojiMaps:
'100': 1f4af.png
grinning: 1f600.png
smiley: 1f603.png
smile: 1f604.png
grin: 1f601.png
laughing: 1f606.png
sweat_smile: 1f605.png
rolling_on_the_floor_laughing: 1f923.png
joy: 1f602.png
slightly_smiling_face: 1f642.png
upside_down_face: 1f643.png
wink: 1f609.png
blush: 1f60a.png
innocent: 1f607.png
smiling_face_with_3_hearts: 1f970.png
heart_eyes: 1f60d.png
star-struck: 1f929.png
kissing_heart: 1f618.png
kissing: 1f617.png
relaxed: 263a-fe0f.png
kissing_closed_eyes: 1f61a.png
kissing_smiling_eyes: 1f619.png
yum: 1f60b.png
stuck_out_tongue: 1f61b.png
stuck_out_tongue_winking_eye: 1f61c.png
zany_face: 1f92a.png
stuck_out_tongue_closed_eyes: 1f61d.png
money_mouth_face: 1f911.png
hugging_face: 1f917.png
face_with_hand_over_mouth: 1f92d.png
shushing_face: 1f92b.png
thinking_face: 1f914.png
zipper_mouth_face: 1f910.png
face_with_raised_eyebrow: 1f928.png
neutral_face: 1f610.png
expressionless: 1f611.png
no_mouth: 1f636.png
smirk: 1f60f.png
unamused: 1f612.png
face_with_rolling_eyes: 1f644.png
grimacing: 1f62c.png
lying_face: 1f925.png
relieved: 1f60c.png
pensive: 1f614.png
sleepy: 1f62a.png
drooling_face: 1f924.png
sleeping: 1f634.png
mask: 1f637.png
face_with_thermometer: 1f912.png
face_with_head_bandage: 1f915.png
nauseated_face: 1f922.png
face_vomiting: 1f92e.png
sneezing_face: 1f927.png
hot_face: 1f975.png
cold_face: 1f976.png
woozy_face: 1f974.png
dizzy_face: 1f635.png
exploding_head: 1f92f.png
face_with_cowboy_hat: 1f920.png
partying_face: 1f973.png
sunglasses: 1f60e.png
nerd_face: 1f913.png
face_with_monocle: 1f9d0.png
confused: 1f615.png
worried: 1f61f.png
slightly_frowning_face: 1f641.png
white_frowning_face: 2639-fe0f.png
open_mouth: 1f62e.png
hushed: 1f62f.png
astonished: 1f632.png
flushed: 1f633.png
pleading_face: 1f97a.png
frowning: 1f626.png
anguished: 1f627.png
fearful: 1f628.png
cold_sweat: 1f630.png
disappointed_relieved: 1f625.png
cry: 1f622.png
sob: 1f62d.png
scream: 1f631.png
confounded: 1f616.png
persevere: 1f623.png
disappointed: 1f61e.png
sweat: 1f613.png
weary: 1f629.png
tired_face: 1f62b.png
yawning_face: 1f971.png
triumph: 1f624.png
rage: 1f621.png
angry: 1f620.png
face_with_symbols_on_mouth: 1f92c.png
smiling_imp: 1f608.png
imp: 1f47f.png
skull: 1f480.png
skull_and_crossbones: 2620-fe0f.png
hankey: 1f4a9.png
clown_face: 1f921.png
japanese_ogre: 1f479.png
japanese_goblin: 1f47a.png
ghost: 1f47b.png
alien: 1f47d.png
space_invader: 1f47e.png
robot_face: 1f916.png
smiley_cat: 1f63a.png
smile_cat: 1f638.png
joy_cat: 1f639.png
heart_eyes_cat: 1f63b.png
smirk_cat: 1f63c.png
kissing_cat: 1f63d.png
scream_cat: 1f640.png
crying_cat_face: 1f63f.png
pouting_cat: 1f63e.png
see_no_evil: 1f648.png
hear_no_evil: 1f649.png
speak_no_evil: 1f64a.png
kiss: 1f48b.png
love_letter: 1f48c.png
cupid: 1f498.png
gift_heart: 1f49d.png
sparkling_heart: 1f496.png
heartpulse: 1f497.png
heartbeat: 1f493.png
revolving_hearts: 1f49e.png
two_hearts: 1f495.png
heart_decoration: 1f49f.png
heavy_heart_exclamation_mark_ornament: 2763-fe0f.png
broken_heart: 1f494.png
heart: 2764-fe0f.png
orange_heart: 1f9e1.png
yellow_heart: 1f49b.png
green_heart: 1f49a.png
blue_heart: 1f499.png
purple_heart: 1f49c.png
brown_heart: 1f90e.png
black_heart: 1f5a4.png
white_heart: 1f90d.png
anger: 1f4a2.png
boom: 1f4a5.png
dizzy: 1f4ab.png
sweat_drops: 1f4a6.png
dash: 1f4a8.png
hole: 1f573-fe0f.png
bomb: 1f4a3.png
speech_balloon: 1f4ac.png
left_speech_bubble: 1f5e8-fe0f.png
right_anger_bubble: 1f5ef-fe0f.png
thought_balloon: 1f4ad.png
zzz: 1f4a4.png

View File

@ -0,0 +1,150 @@
emojiCDN: 'https://cdn.jsdelivr.net/npm/emoji-datasource-google@14.0.0/img/google/64/'
emojiMaps:
'100': 1f4af.png
grinning: 1f600.png
smiley: 1f603.png
smile: 1f604.png
grin: 1f601.png
laughing: 1f606.png
sweat_smile: 1f605.png
rolling_on_the_floor_laughing: 1f923.png
joy: 1f602.png
slightly_smiling_face: 1f642.png
upside_down_face: 1f643.png
wink: 1f609.png
blush: 1f60a.png
innocent: 1f607.png
smiling_face_with_3_hearts: 1f970.png
heart_eyes: 1f60d.png
star-struck: 1f929.png
kissing_heart: 1f618.png
kissing: 1f617.png
relaxed: 263a-fe0f.png
kissing_closed_eyes: 1f61a.png
kissing_smiling_eyes: 1f619.png
yum: 1f60b.png
stuck_out_tongue: 1f61b.png
stuck_out_tongue_winking_eye: 1f61c.png
zany_face: 1f92a.png
stuck_out_tongue_closed_eyes: 1f61d.png
money_mouth_face: 1f911.png
hugging_face: 1f917.png
face_with_hand_over_mouth: 1f92d.png
shushing_face: 1f92b.png
thinking_face: 1f914.png
zipper_mouth_face: 1f910.png
face_with_raised_eyebrow: 1f928.png
neutral_face: 1f610.png
expressionless: 1f611.png
no_mouth: 1f636.png
smirk: 1f60f.png
unamused: 1f612.png
face_with_rolling_eyes: 1f644.png
grimacing: 1f62c.png
lying_face: 1f925.png
relieved: 1f60c.png
pensive: 1f614.png
sleepy: 1f62a.png
drooling_face: 1f924.png
sleeping: 1f634.png
mask: 1f637.png
face_with_thermometer: 1f912.png
face_with_head_bandage: 1f915.png
nauseated_face: 1f922.png
face_vomiting: 1f92e.png
sneezing_face: 1f927.png
hot_face: 1f975.png
cold_face: 1f976.png
woozy_face: 1f974.png
dizzy_face: 1f635.png
exploding_head: 1f92f.png
face_with_cowboy_hat: 1f920.png
partying_face: 1f973.png
sunglasses: 1f60e.png
nerd_face: 1f913.png
face_with_monocle: 1f9d0.png
confused: 1f615.png
worried: 1f61f.png
slightly_frowning_face: 1f641.png
white_frowning_face: 2639-fe0f.png
open_mouth: 1f62e.png
hushed: 1f62f.png
astonished: 1f632.png
flushed: 1f633.png
pleading_face: 1f97a.png
frowning: 1f626.png
anguished: 1f627.png
fearful: 1f628.png
cold_sweat: 1f630.png
disappointed_relieved: 1f625.png
cry: 1f622.png
sob: 1f62d.png
scream: 1f631.png
confounded: 1f616.png
persevere: 1f623.png
disappointed: 1f61e.png
sweat: 1f613.png
weary: 1f629.png
tired_face: 1f62b.png
yawning_face: 1f971.png
triumph: 1f624.png
rage: 1f621.png
angry: 1f620.png
face_with_symbols_on_mouth: 1f92c.png
smiling_imp: 1f608.png
imp: 1f47f.png
skull: 1f480.png
skull_and_crossbones: 2620-fe0f.png
hankey: 1f4a9.png
clown_face: 1f921.png
japanese_ogre: 1f479.png
japanese_goblin: 1f47a.png
ghost: 1f47b.png
alien: 1f47d.png
space_invader: 1f47e.png
robot_face: 1f916.png
smiley_cat: 1f63a.png
smile_cat: 1f638.png
joy_cat: 1f639.png
heart_eyes_cat: 1f63b.png
smirk_cat: 1f63c.png
kissing_cat: 1f63d.png
scream_cat: 1f640.png
crying_cat_face: 1f63f.png
pouting_cat: 1f63e.png
see_no_evil: 1f648.png
hear_no_evil: 1f649.png
speak_no_evil: 1f64a.png
kiss: 1f48b.png
love_letter: 1f48c.png
cupid: 1f498.png
gift_heart: 1f49d.png
sparkling_heart: 1f496.png
heartpulse: 1f497.png
heartbeat: 1f493.png
revolving_hearts: 1f49e.png
two_hearts: 1f495.png
heart_decoration: 1f49f.png
heavy_heart_exclamation_mark_ornament: 2763-fe0f.png
broken_heart: 1f494.png
heart: 2764-fe0f.png
orange_heart: 1f9e1.png
yellow_heart: 1f49b.png
green_heart: 1f49a.png
blue_heart: 1f499.png
purple_heart: 1f49c.png
brown_heart: 1f90e.png
black_heart: 1f5a4.png
white_heart: 1f90d.png
anger: 1f4a2.png
boom: 1f4a5.png
dizzy: 1f4ab.png
sweat_drops: 1f4a6.png
dash: 1f4a8.png
hole: 1f573-fe0f.png
bomb: 1f4a3.png
speech_balloon: 1f4ac.png
left_speech_bubble: 1f5e8-fe0f.png
right_anger_bubble: 1f5ef-fe0f.png
thought_balloon: 1f4ad.png
zzz: 1f4a4.png

View File

@ -0,0 +1,150 @@
emojiCDN: 'https://cdn.jsdelivr.net/npm/emoji-datasource-twitter@14.0.0/img/twitter/64/'
emojiMaps:
'100': 1f4af.png
grinning: 1f600.png
smiley: 1f603.png
smile: 1f604.png
grin: 1f601.png
laughing: 1f606.png
sweat_smile: 1f605.png
rolling_on_the_floor_laughing: 1f923.png
joy: 1f602.png
slightly_smiling_face: 1f642.png
upside_down_face: 1f643.png
wink: 1f609.png
blush: 1f60a.png
innocent: 1f607.png
smiling_face_with_3_hearts: 1f970.png
heart_eyes: 1f60d.png
star-struck: 1f929.png
kissing_heart: 1f618.png
kissing: 1f617.png
relaxed: 263a-fe0f.png
kissing_closed_eyes: 1f61a.png
kissing_smiling_eyes: 1f619.png
yum: 1f60b.png
stuck_out_tongue: 1f61b.png
stuck_out_tongue_winking_eye: 1f61c.png
zany_face: 1f92a.png
stuck_out_tongue_closed_eyes: 1f61d.png
money_mouth_face: 1f911.png
hugging_face: 1f917.png
face_with_hand_over_mouth: 1f92d.png
shushing_face: 1f92b.png
thinking_face: 1f914.png
zipper_mouth_face: 1f910.png
face_with_raised_eyebrow: 1f928.png
neutral_face: 1f610.png
expressionless: 1f611.png
no_mouth: 1f636.png
smirk: 1f60f.png
unamused: 1f612.png
face_with_rolling_eyes: 1f644.png
grimacing: 1f62c.png
lying_face: 1f925.png
relieved: 1f60c.png
pensive: 1f614.png
sleepy: 1f62a.png
drooling_face: 1f924.png
sleeping: 1f634.png
mask: 1f637.png
face_with_thermometer: 1f912.png
face_with_head_bandage: 1f915.png
nauseated_face: 1f922.png
face_vomiting: 1f92e.png
sneezing_face: 1f927.png
hot_face: 1f975.png
cold_face: 1f976.png
woozy_face: 1f974.png
dizzy_face: 1f635.png
exploding_head: 1f92f.png
face_with_cowboy_hat: 1f920.png
partying_face: 1f973.png
sunglasses: 1f60e.png
nerd_face: 1f913.png
face_with_monocle: 1f9d0.png
confused: 1f615.png
worried: 1f61f.png
slightly_frowning_face: 1f641.png
white_frowning_face: 2639-fe0f.png
open_mouth: 1f62e.png
hushed: 1f62f.png
astonished: 1f632.png
flushed: 1f633.png
pleading_face: 1f97a.png
frowning: 1f626.png
anguished: 1f627.png
fearful: 1f628.png
cold_sweat: 1f630.png
disappointed_relieved: 1f625.png
cry: 1f622.png
sob: 1f62d.png
scream: 1f631.png
confounded: 1f616.png
persevere: 1f623.png
disappointed: 1f61e.png
sweat: 1f613.png
weary: 1f629.png
tired_face: 1f62b.png
yawning_face: 1f971.png
triumph: 1f624.png
rage: 1f621.png
angry: 1f620.png
face_with_symbols_on_mouth: 1f92c.png
smiling_imp: 1f608.png
imp: 1f47f.png
skull: 1f480.png
skull_and_crossbones: 2620-fe0f.png
hankey: 1f4a9.png
clown_face: 1f921.png
japanese_ogre: 1f479.png
japanese_goblin: 1f47a.png
ghost: 1f47b.png
alien: 1f47d.png
space_invader: 1f47e.png
robot_face: 1f916.png
smiley_cat: 1f63a.png
smile_cat: 1f638.png
joy_cat: 1f639.png
heart_eyes_cat: 1f63b.png
smirk_cat: 1f63c.png
kissing_cat: 1f63d.png
scream_cat: 1f640.png
crying_cat_face: 1f63f.png
pouting_cat: 1f63e.png
see_no_evil: 1f648.png
hear_no_evil: 1f649.png
speak_no_evil: 1f64a.png
kiss: 1f48b.png
love_letter: 1f48c.png
cupid: 1f498.png
gift_heart: 1f49d.png
sparkling_heart: 1f496.png
heartpulse: 1f497.png
heartbeat: 1f493.png
revolving_hearts: 1f49e.png
two_hearts: 1f495.png
heart_decoration: 1f49f.png
heavy_heart_exclamation_mark_ornament: 2763-fe0f.png
broken_heart: 1f494.png
heart: 2764-fe0f.png
orange_heart: 1f9e1.png
yellow_heart: 1f49b.png
green_heart: 1f49a.png
blue_heart: 1f499.png
purple_heart: 1f49c.png
brown_heart: 1f90e.png
black_heart: 1f5a4.png
white_heart: 1f90d.png
anger: 1f4a2.png
boom: 1f4a5.png
dizzy: 1f4ab.png
sweat_drops: 1f4a6.png
dash: 1f4a8.png
hole: 1f573-fe0f.png
bomb: 1f4a3.png
speech_balloon: 1f4ac.png
left_speech_bubble: 1f5e8-fe0f.png
right_anger_bubble: 1f5ef-fe0f.png
thought_balloon: 1f4ad.png
zzz: 1f4a4.png

View File

@ -0,0 +1,18 @@
theme:
- html5shiv
- Object.values
- Promise
- fetch
- Element.prototype.after
algoliasearch:
- Promise
- Object.entries
- Object.assign
TypeIt:
- Array.prototype.fill
- Array.prototype.find
- Array.from
- IntersectionObserver
- Math.sign
- Object.assign
- Promise

View File

@ -0,0 +1,511 @@
# 001: Github
github:
Weight: 1
Prefix: https://github.com/
Title: GitHub
Icon:
Class: fab fa-github-alt fa-fw
# 002: LinkedIn
linkedin:
Weight: 2
Prefix: https://linkedin.com/in/
Title: LinkedIn
Icon:
Class: fab fa-linkedin fa-fw
# 003: Twitter
twitter:
Weight: 3
Prefix: https://twitter.com/
Title: Twitter
Icon:
Class: fab fa-twitter fa-fw
# 004: Instagram
instagram:
Weight: 4
Prefix: https://www.instagram.com/
Title: Instagram
Icon:
Class: fab fa-instagram fa-fw
# 005: facebook
facebook:
Weight: 5
Prefix: https://facebook.com/
Title: facebook
Icon:
Class: fab fa-facebook fa-fw
# 006: Telegram
telegram:
Weight: 6
Prefix: https://t.me/
Title: Telegram
Icon:
Class: fab fa-telegram-plane fa-fw
# 007: Medium
medium:
Weight: 7
Prefix: https://medium.com/
Title: Medium
Icon:
Class: fab fa-medium fa-fw
# 008: GitLab
gitlab:
Weight: 8
Prefix: https://gitlab.com/
Title: GitLab
Icon:
Class: fab fa-gitlab fa-fw
# 009: YouTube Legacy
youtubelegacy:
Weight: 9
Prefix: https://www.youtube.com/user/
Title: YouTube
Icon:
Class: fab fa-youtube fa-fw
# 010: YouTube Custom
youtubecustom:
Weight: 10
Prefix: https://www.youtube.com/c/
Title: YouTube
Icon:
Class: fab fa-youtube fa-fw
# 011: YouTube Channel
youtubechannel:
Weight: 11
Prefix: https://www.youtube.com/channel/
Title: YouTube
Icon:
Class: fab fa-youtube fa-fw
# 012: Tumblr
tumblr:
Weight: 12
Template: https://%v.tumblr.com/
Title: Tumblr
Icon:
Class: fab fa-tumblr fa-fw
# 013: Quora
quora:
Weight: 13
Prefix: https://www.quora.com/profile/
Title: Quora
Icon:
Class: fab fa-quora fa-fw
# 014: Keybase
keybase:
Weight: 14
Prefix: https://keybase.io/
Title: Keybase
Icon:
Class: fab fa-keybase fa-fw
# 015: Pinterest
pinterest:
Weight: 15
Prefix: https://www.pinterest.com/
Title: Pinterest
Icon:
Class: fab fa-pinterest fa-fw
# 016: Reddit
reddit:
Weight: 16
Prefix: https://www.reddit.com/user/
Title: Reddit
Icon:
Class: fab fa-reddit fa-fw
# 017: CodePen
codepen:
Weight: 17
Prefix: https://codepen.io/
Title: CodePen
Icon:
Class: fab fa-codepen fa-fw
# 018: freeCodeCamp
freecodecamp:
Weight: 18
Prefix: https://freecodecamp.org/
Title: freeCodeCamp
Icon:
Class: fab fa-free-code-camp fa-fw
# 019: Bitbucket
bitbucket:
Weight: 19
Prefix: https://bitbucket.org/
Title: Bitbucket
Icon:
Class: fab fa-bitbucket fa-fw
# 020: Stack Overflow
stackoverflow:
Weight: 20
Prefix: https://stackoverflow.com/users/
Title: Stack Overflow
Icon:
Class: fab fa-stack-overflow fa-fw
# 021: 微博
weibo:
Weight: 21
Prefix: https://weibo.com/
Title: 微博
Icon:
Class: fab fa-weibo fa-fw
# 022: OK.RU
odnoklassniki:
Weight: 22
Prefix: https://ok.ru/
Title: OK.RU
Icon:
Class: fab fa-odnoklassniki fa-fw
# 023: VK
vk:
Weight: 23
Prefix: https://vk.com/
Title: VK
Icon:
Class: fab fa-vk fa-fw
# 024: Flickr
flickr:
Weight: 24
Prefix: https://www.flickr.com/photos/
Title: Flickr
Icon:
Class: fab fa-flickr fa-fw
# 025: Xing
xing:
Weight: 25
Prefix: https://www.xing.com/profile/
Title: Xing
Icon:
Class: fab fa-xing fa-fw
# 026: Snapchat
snapchat:
Weight: 26
Prefix: https://www.snapchat.com/add/
Title: Snapchat
Icon:
Class: fab fa-snapchat fa-fw
# 027: SoundCloud
soundcloud:
Weight: 27
Prefix: https://soundcloud.com/
Title: SoundCloud
Icon:
Class: fab fa-soundcloud fa-fw
# 028: Spotify
spotify:
Weight: 28
Prefix: https://open.spotify.com/user/
Title: Spotify
Icon:
Class: fab fa-spotify fa-fw
# 029: Bandcamp
bandcamp:
Weight: 29
Template: https://%v.bandcamp.com/
Title: Bandcamp
Icon:
Class: fab fa-bandcamp fa-fw
# 030: PayPal
paypal:
Weight: 30
Prefix: https://paypal.me/
Title: PayPal
Icon:
Class: fab fa-paypal fa-fw
# 031: 500px
fivehundredpx:
Weight: 31
Prefix: https://500px.com/
Title: 500px
Icon:
Class: fab fa-500px fa-fw
# 032: Mix
mix:
Weight: 32
Prefix: https://mix.com/
Title: Mix
Icon:
Class: fab fa-mix fa-fw
# 033: Goodreads
goodreads:
Weight: 33
Prefix: https://www.goodreads.com/user/show/
Title: Goodreads
Icon:
Class: fab fa-goodreads fa-fw
# 034: Last.fm
lastfm:
Weight: 34
Prefix: https://www.last.fm/user/
Title: Last.fm
Icon:
Class: fab fa-lastfm fa-fw
# 035: Foursquare
foursquare:
Weight: 35
Prefix: https://foursquare.com/
Title: Foursquare
Icon:
Class: fab fa-foursquare fa-fw
# 036: Hacker News
hackernews:
Weight: 36
Template: https://news.ycombinator.com/user?id=%v
Title: Hacker News
Icon:
Class: fab fa-hacker-news fa-fw
# 037: Kickstarter
kickstarter:
Weight: 37
Prefix: https://kickstarter.com/profile/
Title: Kickstarter
Icon:
Class: fab fa-kickstarter fa-fw
# 038: Patreon
patreon:
Weight: 38
Prefix: https://patreon.com/
Title: Patreon
Icon:
Class: fab fa-patreon fa-fw
# 039: Steam
steam:
Weight: 39
Prefix: https://steamcommunity.com/id/
Title: Steam
Icon:
Class: fab fa-steam fa-fw
# 040: Twitch
twitch:
Weight: 40
Prefix: https://www.twitch.tv/
Title: Twitch
Icon:
Class: fab fa-twitch fa-fw
# 041: Strava
strava:
Weight: 41
Prefix: https://www.strava.com/athletes/
Title: Strava
Icon:
Class: fab fa-strava fa-fw
# 042: Skype
skype:
Weight: 42
Template: "skype:"
Title: Skype
Icon:
Class: fab fa-skype fa-fw
# 043: WhatsApp
whatsapp:
Weight: 43
Prefix: https://wa.me/
Title: WhatsApp
Icon:
Class: fab fa-whatsapp fa-fw
# 044: 知乎
zhihu:
Weight: 44
Prefix: https://www.zhihu.com/people/
Title: 知乎
Icon:
Simpleicons: zhihu
# 045: 豆瓣
douban:
Weight: 45
Prefix: https://www.douban.com/people/
Title: 豆瓣
Icon:
Simpleicons: douban
# 046: Angellist
angellist:
Weight: 46
Prefix: https://angel.co/
Title: Angellist
Icon:
Class: fab fa-angellist fa-fw
# 047: SlideShare
slideshare:
Weight: 47
Prefix: https://slideshare.com/
Title: SlideShare
Icon:
Class: fab fa-slideshare fa-fw
# 048: JSFiddle
jsfiddle:
Weight: 48
Prefix: https://jsfiddle.com/
Title: JSFiddle
Icon:
Class: fab fa-jsfiddle fa-fw
# 049: DeviantArt
deviantart:
Weight: 49
Template: https://%v.deviantart.com/
Title: DeviantArt
Icon:
Class: fab fa-deviantart fa-fw
# 050: Behance
behance:
Weight: 50
Prefix: https://behance.net/
Title: Behance
Icon:
Class: fab fa-behance fa-fw
# 051: Dribbble
dribbble:
Weight: 51
Prefix: https://dribbble.com/
Title: Dribbble
Icon:
Class: fab fa-dribbble fa-fw
# 052: WordPress
wordpress:
Weight: 52
Template: https://%v.wordpress.com/
Title: WordPress
Icon:
Class: fab fa-wordpress fa-fw
# 053: Vine
vine:
Weight: 53
Prefix: https://vine.co/
Title: Vine
Icon:
Class: fab fa-vine fa-fw
# 054: Google Scholar
googlescholar:
Weight: 54
Template: https://scholar.google.com/citations?%v
Title: Google Scholar
Icon:
Simpleicons: googlescholar
# 055: ResearchGate
researchgate:
Weight: 55
Prefix: https://www.researchgate.net/profile/
Title: ResearchGate
Icon:
Class: fab fa-researchgate fa-fw
# 056: Mastodon
mastodon:
Weight: 56
Prefix: https://mastodon.social/
Title: Mastodon
Icon:
Class: fab fa-mastodon fa-fw
# 057: Thingiverse
thingiverse:
Weight: 57
Prefix: https://www.thingiverse.com/
Title: Thingiverse
Icon:
Simpleicons: thingiverse
# 058: Dev.To
devto:
Weight: 58
Prefix: https://dev.to/
Title: Dev.To
Icon:
Class: fab fa-dev fa-fw
# 059: Gitea
gitea:
Weight: 59
Title: Gitea
Icon:
Simpleicons: gitea
# 060: XMPP
xmpp:
Weight: 60
Template: xmpp:%v
Title: XMPP
Icon:
Simpleicons: xmpp
# 061: Matrix
matrix:
Weight: 61
Prefix: https://matrix.to/#/
Title: Matrix
Icon:
Simpleicons: matrix
# 062: bilibili
bilibili:
Weight: 62
Prefix: https://space.bilibili.com/
Title: bilibili
Icon:
Simpleicons: bilibili
# 063: Email
email:
Weight: 63
Template: mailto:%v
Title: Email
Icon:
Class: far fa-envelope fa-fw
# 064: RSS
rss:
Weight: 64
Url: /index.xml
Title: RSS
Newtab: true
Icon:
Class: fas fa-rss fa-fw

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,24 @@
normalize.css@8.0.1 https://github.com/necolas/normalize.css
fontawesome-free@6.1.1 https://fontawesome.com/
simple-icons@6.20.0 https://github.com/simple-icons/simple-icons
animate.css@4.1.1 https://github.com/daneden/animate.css
autocomplete@0.38.1 https://github.com/algolia/autocomplete
lunr.js@2.3.9 https://lunrjs.com/
algoliasearch@4.13.0 https://github.com/algolia/algoliasearch-client-javascript
lazysizes@5.3.1 https://github.com/aFarkas/lazysizes
object-fit-images@3.2.4 https://github.com/fregante/object-fit-images
twemoji@14.0.2 https://github.com/twitter/twemoji
emoji-data@14.0.0 https://github.com/iamcal/emoji-data
lightgallery@2.4.0 https://github.com/sachinchoolur/lightgallery
clipboard.js@2.0.11 https://github.com/zenorocha/clipboard.js
sharer.js@0.4.0 https://github.com/ellisonleao/sharer.js
typeit@8.5.4 https://github.com/alexmacarthur/typeit
katex@0.15.3 https://katex.org/
mermaid@9.1.0 https://github.com/mermaid-js/mermaid
echarts@5.3.2 https://echarts.apache.org/
mapbox-gl@2.8.2 https://github.com/mapbox/mapbox-gl-js
aplayer@1.10.1 https://github.com/MoePlayer/APlayer
meting@2.0.1 https://github.com/metowolf/MetingJS
gitalk@1.7.2 https://github.com/gitalk/gitalk
valine@1.4.18 https://valine.js.org/
cookieconsent@3.1.1 https://github.com/osano/cookieconsent

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,112 @@
[theme=dark] .aplayer {
background: #212121;
&.aplayer-withlist {
.aplayer-info {
border-bottom-color: #5c5c5c;
}
}
&.aplayer-fixed {
.aplayer-list {
border-color: #5c5c5c;
}
}
.aplayer-body {
background-color: #212121;
}
.aplayer-info {
border-top-color: #212121;
}
.aplayer-info {
.aplayer-music {
.aplayer-title {
color: #fff;
}
.aplayer-author {
color: #fff;
}
}
.aplayer-controller {
.aplayer-time {
color: #eee;
.aplayer-icon {
path {
fill: #eee;
}
}
}
}
}
.aplayer-list {
background-color: #212121;
&::-webkit-scrollbar-thumb {
background-color: #999;
}
&::-webkit-scrollbar-thumb:hover {
background-color: #bbb;
}
li {
color: #fff;
border-top-color: #666;
&:hover {
background: #4e4e4e;
}
&.aplayer-list-light {
background: #6c6c6c;
}
.aplayer-list-index {
color: #ddd;
}
.aplayer-list-author {
color: #ddd;
}
}
}
.aplayer-lrc {
text-shadow: -1px -1px 0 #666;
&:before {
background: -moz-linear-gradient(top, rgba(33,33,33,1) 0%, rgba(33,33,33,0) 100%);
background: -webkit-linear-gradient(top, rgba(33,33,33,1) 0%,rgba(33,33,33,0) 100%);
background: linear-gradient(to bottom, rgba(33,33,33,1) 0%,rgba(33,33,33,0) 100%);
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#212121', endColorstr='#00212121',GradientType=0 );
}
&:after {
background: -moz-linear-gradient(top, rgba(33,33,33,0) 0%, rgba(33,33,33,0.8) 100%);
background: -webkit-linear-gradient(top, rgba(33,33,33,0) 0%,rgba(33,33,33,0.8) 100%);
background: linear-gradient(to bottom, rgba(33,33,33,0) 0%,rgba(33,33,33,0.8) 100%);
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#00212121', endColorstr='#cc212121',GradientType=0 );
}
p {
color: #fff;
}
}
.aplayer-miniswitcher {
background: #484848;
.aplayer-icon {
path {
fill: #eee;
}
}
}
}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,6 @@
.cc-window{opacity:1;-webkit-transition:opacity 1s ease;transition:opacity 1s ease}.cc-window.cc-invisible{opacity:0}.cc-animate.cc-revoke{-webkit-transition:transform 1s ease;-webkit-transition:-webkit-transform 1s ease;transition:-webkit-transform 1s ease;transition:transform 1s ease;transition:transform 1s ease,-webkit-transform 1s ease}.cc-animate.cc-revoke.cc-top{-webkit-transform:translateY(-2em);transform:translateY(-2em)}.cc-animate.cc-revoke.cc-bottom{-webkit-transform:translateY(2em);transform:translateY(2em)}.cc-animate.cc-revoke.cc-active.cc-top{-webkit-transform:translateY(0);transform:translateY(0)}.cc-animate.cc-revoke.cc-active.cc-bottom{-webkit-transform:translateY(0);transform:translateY(0)}.cc-revoke:hover{-webkit-transform:translateY(0);transform:translateY(0)}.cc-grower{max-height:0;overflow:hidden;-webkit-transition:max-height 1s;transition:max-height 1s}
.cc-revoke,.cc-window{position:fixed;overflow:hidden;-webkit-box-sizing:border-box;box-sizing:border-box;font-family:Helvetica,Calibri,Arial,sans-serif;font-size:16px;line-height:1.5em;display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:nowrap;flex-wrap:nowrap;z-index:9999}.cc-window.cc-static{position:static}.cc-window.cc-floating{padding:2em;max-width:24em;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.cc-window.cc-banner{padding:1em 1.8em;width:100%;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}.cc-revoke{padding:.5em}.cc-revoke:hover{text-decoration:underline}.cc-header{font-size:18px;font-weight:700}.cc-btn,.cc-close,.cc-link,.cc-revoke{cursor:pointer}.cc-link{opacity:.8;display:inline-block;padding:.2em;text-decoration:underline}.cc-link:hover{opacity:1}.cc-link:active,.cc-link:visited{color:initial}.cc-btn{display:block;padding:.4em .8em;font-size:.9em;font-weight:700;border-width:2px;border-style:solid;text-align:center;white-space:nowrap}.cc-highlight .cc-btn:first-child{background-color:transparent;border-color:transparent}.cc-highlight .cc-btn:first-child:focus,.cc-highlight .cc-btn:first-child:hover{background-color:transparent;text-decoration:underline}.cc-close{display:block;position:absolute;top:.5em;right:.5em;font-size:1.6em;opacity:.9;line-height:.75}.cc-close:focus,.cc-close:hover{opacity:1}
.cc-revoke.cc-top{top:0;left:3em;border-bottom-left-radius:.5em;border-bottom-right-radius:.5em}.cc-revoke.cc-bottom{bottom:0;left:3em;border-top-left-radius:.5em;border-top-right-radius:.5em}.cc-revoke.cc-left{left:3em;right:unset}.cc-revoke.cc-right{right:3em;left:unset}.cc-top{top:1em}.cc-left{left:1em}.cc-right{right:1em}.cc-bottom{bottom:1em}.cc-floating>.cc-link{margin-bottom:1em}.cc-floating .cc-message{display:block;margin-bottom:1em}.cc-window.cc-floating .cc-compliance{-webkit-box-flex:1;-ms-flex:1 0 auto;flex:1 0 auto}.cc-window.cc-banner{-webkit-box-align:center;-ms-flex-align:center;align-items:center}.cc-banner.cc-top{left:0;right:0;top:0}.cc-banner.cc-bottom{left:0;right:0;bottom:0}.cc-banner .cc-message{display:block;-webkit-box-flex:1;-ms-flex:1 1 auto;flex:1 1 auto;max-width:100%;margin-right:1em}.cc-compliance{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-ms-flex-line-pack:justify;align-content:space-between}.cc-floating .cc-compliance>.cc-btn{-webkit-box-flex:1;-ms-flex:1;flex:1}.cc-btn+.cc-btn{margin-left:.5em}
@media print{.cc-revoke,.cc-window{display:none}}@media screen and (max-width:900px){.cc-btn{white-space:normal}}@media screen and (max-width:414px) and (orientation:portrait),screen and (max-width:736px) and (orientation:landscape){.cc-window.cc-top{top:0}.cc-window.cc-bottom{bottom:0}.cc-window.cc-banner,.cc-window.cc-floating,.cc-window.cc-left,.cc-window.cc-right{left:0;right:0}.cc-window.cc-banner{-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.cc-window.cc-banner .cc-compliance{-webkit-box-flex:1;-ms-flex:1 1 auto;flex:1 1 auto}.cc-window.cc-floating{max-width:none}.cc-window .cc-message{margin-bottom:1em}.cc-window.cc-banner{-webkit-box-align:unset;-ms-flex-align:unset;align-items:unset}.cc-window.cc-banner .cc-message{margin-right:0}}
.cc-floating.cc-theme-classic{padding:1.2em;border-radius:5px}.cc-floating.cc-type-info.cc-theme-classic .cc-compliance{text-align:center;display:inline;-webkit-box-flex:0;-ms-flex:none;flex:none}.cc-theme-classic .cc-btn{border-radius:5px}.cc-theme-classic .cc-btn:last-child{min-width:140px}.cc-floating.cc-type-info.cc-theme-classic .cc-btn{display:inline-block}
.cc-theme-edgeless.cc-window{padding:0}.cc-floating.cc-theme-edgeless .cc-message{margin:2em;margin-bottom:1.5em}.cc-banner.cc-theme-edgeless .cc-btn{margin:0;padding:.8em 1.8em;height:100%}.cc-banner.cc-theme-edgeless .cc-message{margin-left:1em}.cc-floating.cc-theme-edgeless .cc-btn+.cc-btn{margin-left:0}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,273 @@
# dark theme based on chalk theme
color:
- '#fc97af'
- '#87f7cf'
- '#f7f494'
- '#72ccff'
- '#f7c5a0'
- '#d4a4eb'
- '#d2f5a6'
- '#76f2f2'
backgroundColor: rgba(41,52,65,1)
textStyle: {}
title:
textStyle:
color: '#ffffff'
subtextStyle:
color: '#dddddd'
line:
itemStyle:
borderWidth: 1
lineStyle:
width: 2
symbolSize: 6
symbol: circle
smooth: true
radar:
itemStyle:
borderWidth: 1
lineStyle:
width: 2
symbolSize: 3
symbol: circle
smooth: true
bar:
itemStyle:
barBorderWidth: 0
barBorderColor: '#ccc'
pie:
itemStyle:
borderWidth: 0
borderColor: '#ccc'
scatter:
itemStyle:
borderWidth: 0
borderColor: '#ccc'
boxplot:
itemStyle:
borderWidth: 0
borderColor: '#ccc'
parallel:
itemStyle:
borderWidth: 0
borderColor: '#ccc'
sankey:
itemStyle:
borderWidth: 0
borderColor: '#ccc'
funnel:
itemStyle:
borderWidth: 0
borderColor: '#ccc'
gauge:
itemStyle:
borderWidth: 0
borderColor: '#ccc'
candlestick:
itemStyle:
color: '#fc97af'
color0: transparent
borderColor: '#fc97af'
borderColor0: '#87f7cf'
borderWidth: 1
graph:
itemStyle:
borderWidth: 0
borderColor: '#ccc'
lineStyle:
width: 1
color: '#ffffff'
symbolSize: 3
symbol: emptyCircle
smooth: true
color:
- '#fc97af'
- '#87f7cf'
- '#f7f494'
- '#72ccff'
- '#f7c5a0'
- '#d4a4eb'
- '#d2f5a6'
- '#76f2f2'
label:
color: '#293441'
map:
itemStyle:
areaColor: '#f3f3f3'
borderColor: '#999999'
borderWidth: 0.5
label:
color: '#893448'
emphasis:
itemStyle:
areaColor: rgba(255,178,72,1)
borderColor: '#eb8146'
borderWidth: 1
label:
color: rgb(137,52,72)
geo:
itemStyle:
areaColor: '#f3f3f3'
borderColor: '#999999'
borderWidth: 0.5
label:
color: '#893448'
emphasis:
itemStyle:
areaColor: rgba(255,178,72,1)
borderColor: '#eb8146'
borderWidth: 1
label:
color: rgb(137,52,72)
categoryAxis:
axisLine:
show: true
lineStyle:
color: '#666666'
axisTick:
show: true
lineStyle:
color: '#333'
axisLabel:
show: true
color: '#aaaaaa'
splitLine:
show: false
lineStyle:
color:
- '#e6e6e6'
splitArea:
show: false
areaStyle:
color:
- rgba(250,250,250,0.05)
- rgba(200,200,200,0.02)
valueAxis:
axisLine:
show: true
lineStyle:
color: '#666666'
axisTick:
show: true
lineStyle:
color: '#333'
axisLabel:
show: true
color: '#aaaaaa'
splitLine:
show: true
lineStyle:
color:
- '#e6e6e6'
splitArea:
show: false
areaStyle:
color:
- rgba(250,250,250,0.05)
- rgba(200,200,200,0.02)
logAxis:
axisLine:
show: true
lineStyle:
color: '#666666'
axisTick:
show: true
lineStyle:
color: '#333'
axisLabel:
show: true
color: '#aaaaaa'
splitLine:
show: true
lineStyle:
color:
- '#e6e6e6'
splitArea:
show: true
areaStyle:
color:
- rgba(250,250,250,0.05)
- rgba(200,200,200,0.02)
timeAxis:
axisLine:
show: true
lineStyle:
color: '#666666'
axisTick:
show: true
lineStyle:
color: '#333'
axisLabel:
show: true
color: '#aaaaaa'
splitLine:
show: true
lineStyle:
color:
- '#e6e6e6'
splitArea:
show: false
areaStyle:
color:
- rgba(250,250,250,0.05)
- rgba(200,200,200,0.02)
toolbox:
iconStyle:
borderColor: '#999999'
emphasis:
iconStyle:
borderColor: '#666666'
legend:
textStyle:
color: '#999999'
tooltip:
axisPointer:
lineStyle:
color: '#cccccc'
width: 1
crossStyle:
color: '#cccccc'
width: 1
timeline:
lineStyle:
color: '#87f7cf'
width: 1
itemStyle:
color: '#87f7cf'
borderWidth: 1
controlStyle:
color: '#87f7cf'
borderColor: '#87f7cf'
borderWidth: 0.5
checkpointStyle:
color: '#fc97af'
borderColor: '#fc97af'
label:
color: '#87f7cf'
emphasis:
itemStyle:
color: '#f7f494'
controlStyle:
color: '#87f7cf'
borderColor: '#87f7cf'
borderWidth: 0.5
label:
color: '#87f7cf'
visualMap:
color:
- '#fc97af'
- '#87f7cf'
dataZoom:
backgroundColor: rgba(255,255,255,0)
dataBackgroundColor: rgba(114,204,255,1)
fillerColor: rgba(114,204,255,0.2)
handleColor: '#72ccff'
handleSize: 100%
textStyle:
color: '#333333'
markPoint:
label:
color: '#293441'
emphasis:
label:
color: '#293441'

View File

@ -0,0 +1,297 @@
# light theme based on macarons theme
color:
- '#2ec7c9'
- '#b6a2de'
- '#5ab1ef'
- '#ffb980'
- '#d87a80'
- '#8d98b3'
- '#e5cf0d'
- '#97b552'
- '#95706d'
- '#dc69aa'
- '#07a2a4'
- '#9a7fd1'
- '#588dd5'
- '#f5994e'
- '#c05050'
- '#59678c'
- '#c9ab00'
- '#7eb00a'
- '#6f5553'
- '#c14089'
backgroundColor: rgba(0,0,0,0)
textStyle: {}
title:
textStyle:
color: '#008acd'
subtextStyle:
color: '#aaaaaa'
line:
itemStyle:
borderWidth: 1
lineStyle:
width: 2
symbolSize: 5
symbol: emptyCircle
smooth: true
radar:
itemStyle:
borderWidth: 1
lineStyle:
width: 2
symbolSize: 3
symbol: emptyCircle
smooth: true
bar:
itemStyle:
barBorderWidth: 0
barBorderColor: '#ccc'
pie:
itemStyle:
borderWidth: 0
borderColor: '#ccc'
scatter:
itemStyle:
borderWidth: 0
borderColor: '#ccc'
boxplot:
itemStyle:
borderWidth: 0
borderColor: '#ccc'
parallel:
itemStyle:
borderWidth: 0
borderColor: '#ccc'
sankey:
itemStyle:
borderWidth: 0
borderColor: '#ccc'
funnel:
itemStyle:
borderWidth: 0
borderColor: '#ccc'
gauge:
itemStyle:
borderWidth: 0
borderColor: '#ccc'
candlestick:
itemStyle:
color: '#d87a80'
color0: '#2ec7c9'
borderColor: '#d87a80'
borderColor0: '#2ec7c9'
borderWidth: 1
graph:
itemStyle:
borderWidth: 0
borderColor: '#ccc'
lineStyle:
width: 1
color: '#aaaaaa'
symbolSize: 3
symbol: emptyCircle
smooth: true
color:
- '#2ec7c9'
- '#b6a2de'
- '#5ab1ef'
- '#ffb980'
- '#d87a80'
- '#8d98b3'
- '#e5cf0d'
- '#97b552'
- '#95706d'
- '#dc69aa'
- '#07a2a4'
- '#9a7fd1'
- '#588dd5'
- '#f5994e'
- '#c05050'
- '#59678c'
- '#c9ab00'
- '#7eb00a'
- '#6f5553'
- '#c14089'
label:
color: '#eeeeee'
map:
itemStyle:
areaColor: '#dddddd'
borderColor: '#eeeeee'
borderWidth: 0.5
label:
color: '#d87a80'
emphasis:
itemStyle:
areaColor: rgba(254,153,78,1)
borderColor: '#444'
borderWidth: 1
label:
color: rgb(100,0,0)
geo:
itemStyle:
areaColor: '#dddddd'
borderColor: '#eeeeee'
borderWidth: 0.5
label:
color: '#d87a80'
emphasis:
itemStyle:
areaColor: rgba(254,153,78,1)
borderColor: '#444'
borderWidth: 1
label:
color: rgb(100,0,0)
categoryAxis:
axisLine:
show: true
lineStyle:
color: '#008acd'
axisTick:
show: true
lineStyle:
color: '#333'
axisLabel:
show: true
color: '#333'
splitLine:
show: false
lineStyle:
color:
- '#eee'
splitArea:
show: false
areaStyle:
color:
- rgba(250,250,250,0.3)
- rgba(200,200,200,0.3)
valueAxis:
axisLine:
show: true
lineStyle:
color: '#008acd'
axisTick:
show: true
lineStyle:
color: '#333'
axisLabel:
show: true
color: '#333'
splitLine:
show: true
lineStyle:
color:
- '#eee'
splitArea:
show: true
areaStyle:
color:
- rgba(250,250,250,0.3)
- rgba(200,200,200,0.3)
logAxis:
axisLine:
show: true
lineStyle:
color: '#008acd'
axisTick:
show: true
lineStyle:
color: '#333'
axisLabel:
show: true
color: '#333'
splitLine:
show: true
lineStyle:
color:
- '#eee'
splitArea:
show: true
areaStyle:
color:
- rgba(250,250,250,0.3)
- rgba(200,200,200,0.3)
timeAxis:
axisLine:
show: true
lineStyle:
color: '#008acd'
axisTick:
show: true
lineStyle:
color: '#333'
axisLabel:
show: true
color: '#333'
splitLine:
show: true
lineStyle:
color:
- '#eee'
splitArea:
show: false
areaStyle:
color:
- rgba(250,250,250,0.3)
- rgba(200,200,200,0.3)
toolbox:
iconStyle:
borderColor: '#2ec7c9'
emphasis:
iconStyle:
borderColor: '#18a4a6'
legend:
textStyle:
color: '#333333'
tooltip:
axisPointer:
lineStyle:
color: '#008acd'
width: 1
crossStyle:
color: '#008acd'
width: 1
timeline:
lineStyle:
color: '#008acd'
width: 1
itemStyle:
color: '#008acd'
borderWidth: 1
controlStyle:
color: '#008acd'
borderColor: '#008acd'
borderWidth: 0.5
checkpointStyle:
color: '#2ec7c9'
borderColor: '#2ec7c9'
label:
color: '#008acd'
emphasis:
itemStyle:
color: '#a9334c'
controlStyle:
color: '#008acd'
borderColor: '#008acd'
borderWidth: 0.5
label:
color: '#008acd'
visualMap:
color:
- '#5ab1ef'
- '#e0ffff'
dataZoom:
backgroundColor: rgba(47,69,84,0)
dataBackgroundColor: '#efefff'
fillerColor: rgba(182,162,222,0.2)
handleColor: '#008acd'
handleSize: 100%
textStyle:
color: '#333333'
markPoint:
label:
color: '#eeeeee'
emphasis:
label:
color: '#eeeeee'

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1 @@
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(require("katex")):"function"==typeof define&&define.amd?define(["katex"],t):"object"==typeof exports?exports.renderMathInElement=t(require("katex")):e.renderMathInElement=t(e.katex)}("undefined"!=typeof self?self:this,(function(e){return function(){"use strict";var t={771:function(t){t.exports=e}},r={};function n(e){var a=r[e];if(void 0!==a)return a.exports;var i=r[e]={exports:{}};return t[e](i,i.exports,n),i.exports}n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,{a:t}),t},n.d=function(e,t){for(var r in t)n.o(t,r)&&!n.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)};var a={};return function(){n.d(a,{default:function(){return s}});var e=n(771),t=n.n(e),r=function(e,t,r){for(var n=r,a=0,i=e.length;n<t.length;){var o=t[n];if(a<=0&&t.slice(n,n+i)===e)return n;"\\"===o?n++:"{"===o?a++:"}"===o&&a--,n++}return-1},i=/^\\begin{/,o=function(e,t){for(var n,a=[],o=new RegExp("("+t.map((function(e){return e.left.replace(/[-/\\^$*+?.()|[\]{}]/g,"\\$&")})).join("|")+")");-1!==(n=e.search(o));){n>0&&(a.push({type:"text",data:e.slice(0,n)}),e=e.slice(n));var l=t.findIndex((function(t){return e.startsWith(t.left)}));if(-1===(n=r(t[l].right,e,t[l].left.length)))break;var d=e.slice(0,n+t[l].right.length),s=i.test(d)?d:e.slice(t[l].left.length,n);a.push({type:"math",data:s,rawData:d,display:t[l].display}),e=e.slice(n+t[l].right.length)}return""!==e&&a.push({type:"text",data:e}),a},l=function(e,r){var n=o(e,r.delimiters);if(1===n.length&&"text"===n[0].type)return null;for(var a=document.createDocumentFragment(),i=0;i<n.length;i++)if("text"===n[i].type)a.appendChild(document.createTextNode(n[i].data));else{var l=document.createElement("span"),d=n[i].data;r.displayMode=n[i].display;try{r.preProcess&&(d=r.preProcess(d)),t().render(d,l,r)}catch(e){if(!(e instanceof t().ParseError))throw e;r.errorCallback("KaTeX auto-render: Failed to parse `"+n[i].data+"` with ",e),a.appendChild(document.createTextNode(n[i].rawData));continue}a.appendChild(l)}return a},d=function e(t,r){for(var n=0;n<t.childNodes.length;n++){var a=t.childNodes[n];if(3===a.nodeType){var i=l(a.textContent,r);i&&(n+=i.childNodes.length-1,t.replaceChild(i,a))}else 1===a.nodeType&&function(){var t=" "+a.className+" ";-1===r.ignoredTags.indexOf(a.nodeName.toLowerCase())&&r.ignoredClasses.every((function(e){return-1===t.indexOf(" "+e+" ")}))&&e(a,r)}()}},s=function(e,t){if(!e)throw new Error("No element provided to render");var r={};for(var n in t)t.hasOwnProperty(n)&&(r[n]=t[n]);r.delimiters=r.delimiters||[{left:"$$",right:"$$",display:!0},{left:"\\(",right:"\\)",display:!1},{left:"\\begin{equation}",right:"\\end{equation}",display:!0},{left:"\\begin{align}",right:"\\end{align}",display:!0},{left:"\\begin{alignat}",right:"\\end{alignat}",display:!0},{left:"\\begin{gather}",right:"\\end{gather}",display:!0},{left:"\\begin{CD}",right:"\\end{CD}",display:!0},{left:"\\[",right:"\\]",display:!0}],r.ignoredTags=r.ignoredTags||["script","noscript","style","textarea","pre","code","option"],r.ignoredClasses=r.ignoredClasses||[],r.errorCallback=r.errorCallback||console.error,r.macros=r.macros||{},d(e,r)}}(),a=a.default}()}));

View File

@ -0,0 +1 @@
.katex,.katex-display{-webkit-user-select:all;-moz-user-select:all;user-select:all}

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