feat: change to Hugo-generated site
This commit is contained in:
@@ -0,0 +1 @@
|
|||||||
|
k8s
|
||||||
+6
-3
@@ -1,6 +1,9 @@
|
|||||||
|
include:
|
||||||
|
- template: 'Workflows/MergeRequest-Pipelines.gitlab-ci.yml'
|
||||||
|
|
||||||
stages:
|
stages:
|
||||||
- build
|
- build
|
||||||
- deploy-prod
|
- deploy-prod
|
||||||
|
|
||||||
variables:
|
variables:
|
||||||
DOCKER_HOST: tcp://docker:2376
|
DOCKER_HOST: tcp://docker:2376
|
||||||
@@ -11,7 +14,7 @@ variables:
|
|||||||
|
|
||||||
image: buildtool/build-tools:${BUILDTOOLS_VERSION}
|
image: buildtool/build-tools:${BUILDTOOLS_VERSION}
|
||||||
services:
|
services:
|
||||||
- docker:dind
|
- docker:dind
|
||||||
|
|
||||||
build:
|
build:
|
||||||
stage: build
|
stage: build
|
||||||
|
|||||||
+15
-6
@@ -1,11 +1,20 @@
|
|||||||
FROM nginx
|
FROM nginx:alpine as build
|
||||||
MAINTAINER Joakim Olsson <joakim@unbound.se>
|
|
||||||
|
|
||||||
ADD files/*.html /usr/share/nginx/html/
|
RUN apk add --update \
|
||||||
|
wget
|
||||||
|
|
||||||
ADD files/styles/*.css /usr/share/nginx/html/styles/
|
ARG HUGO_VERSION="0.89.4"
|
||||||
|
RUN wget --quiet "https://github.com/gohugoio/hugo/releases/download/v${HUGO_VERSION}/hugo_${HUGO_VERSION}_Linux-64bit.tar.gz" && \
|
||||||
|
tar xzf hugo_${HUGO_VERSION}_Linux-64bit.tar.gz && \
|
||||||
|
rm -r hugo_${HUGO_VERSION}_Linux-64bit.tar.gz && \
|
||||||
|
mv hugo /usr/bin
|
||||||
|
|
||||||
|
COPY ./ /site
|
||||||
|
WORKDIR /site
|
||||||
|
RUN hugo
|
||||||
|
|
||||||
|
FROM nginx:alpine
|
||||||
ADD default.conf /etc/nginx/conf.d/default.conf
|
ADD default.conf /etc/nginx/conf.d/default.conf
|
||||||
|
COPY --from=build /site/public /usr/share/nginx/html
|
||||||
|
|
||||||
ENV ALLOW_HUP true
|
WORKDIR /usr/share/nginx/html
|
||||||
ENV ROTATE_LOGS true
|
|
||||||
|
|||||||
@@ -0,0 +1,6 @@
|
|||||||
|
---
|
||||||
|
title: "{{ replace .Name "-" " " | title }}"
|
||||||
|
date: {{ .Date }}
|
||||||
|
draft: true
|
||||||
|
---
|
||||||
|
|
||||||
Binary file not shown.
|
After Width: | Height: | Size: 87 KiB |
+44
@@ -0,0 +1,44 @@
|
|||||||
|
baseURL = 'http://unbound.se/'
|
||||||
|
defaultContentLanguage = "sv"
|
||||||
|
languageCode = 'sv'
|
||||||
|
title = 'Unbound Software Development'
|
||||||
|
theme = "LoveIt"
|
||||||
|
|
||||||
|
[params]
|
||||||
|
# LoveIt theme version
|
||||||
|
version = "0.2.X"
|
||||||
|
|
||||||
|
|
||||||
|
[languages]
|
||||||
|
[languages.sv]
|
||||||
|
weight = 1
|
||||||
|
# language code
|
||||||
|
languageCode = "sv"
|
||||||
|
# language name
|
||||||
|
languageName = "Swedish"
|
||||||
|
[languages.sv.params]
|
||||||
|
[languages.sv.params.home]
|
||||||
|
# Home page profile
|
||||||
|
[languages.sv.params.home.profile]
|
||||||
|
enable = true
|
||||||
|
# Gravatar Email for preferred avatar in home page
|
||||||
|
gravatarEmail = "joakim@unbound.se"
|
||||||
|
# URL of avatar shown in home page
|
||||||
|
avatarURL = "/images/Jocke.png"
|
||||||
|
title = "Joakim Olsson"
|
||||||
|
subtitle = "Jack of all trades, master of none"
|
||||||
|
social = true
|
||||||
|
content = true
|
||||||
|
[languages.sv.params.social]
|
||||||
|
GitHub = "argoyle"
|
||||||
|
Linkedin = "joakim-olsson-78a9641"
|
||||||
|
Gitlab = "unboundsoftware"
|
||||||
|
Keybase = "argoyle"
|
||||||
|
Email = "joakim@unbound.se"
|
||||||
|
|
||||||
|
# Markup related configuration in Hugo
|
||||||
|
[markup]
|
||||||
|
# Syntax Highlighting (https://gohugo.io/content-management/syntax-highlighting)
|
||||||
|
[markup.highlight]
|
||||||
|
# false is a necessary configuration (https://github.com/dillonzq/LoveIt/issues/158)
|
||||||
|
noClasses = false
|
||||||
@@ -0,0 +1,13 @@
|
|||||||
|
I am a highly motivated, very experienced and driven systems architect and developer with a passion for technology and
|
||||||
|
everything related to software development. Always looking for a challenge that can improve my technical and business
|
||||||
|
knowledge.
|
||||||
|
|
||||||
|
My experience and technical interest has lead me towards Team Lead/Architect roles. I've been mentoring development
|
||||||
|
teams, teaching Test Driven Development and the importance of Continuous Integration and Delivery at all the businesses
|
||||||
|
I've worked with. My goal is always to develop systems better and faster, using agile methodologies to improve the teams
|
||||||
|
performance in order to build high quality software.
|
||||||
|
|
||||||
|
My tech-stack of choice currently is Kubernetes for container orchestration, Go for backend services, RabbitMQ for
|
||||||
|
messaging between backend services, GraphQL for APIs and Vue or React for frontends.
|
||||||
|
|
||||||
|
If you need a senior consultant in the DevOps area don't hesitate to send me a message!
|
||||||
@@ -1,23 +0,0 @@
|
|||||||
<html>
|
|
||||||
<head>
|
|
||||||
<title>Unbound Software Development</title>
|
|
||||||
<link rel="stylesheet" type="text/css" href="styles/default.css" />
|
|
||||||
</head>
|
|
||||||
<body>
|
|
||||||
<span class="title">Unbound</span><br>
|
|
||||||
<span class="subtitle">Software Development</span><br>
|
|
||||||
<br>
|
|
||||||
Denna site är under uppbyggnad.<br><br>
|
|
||||||
<a href=mailto:joakim@unbound.se>Joakim Olsson</a>
|
|
||||||
<script type="text/javascript">
|
|
||||||
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
|
|
||||||
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
|
|
||||||
</script>
|
|
||||||
<script type="text/javascript">
|
|
||||||
try {
|
|
||||||
var pageTracker = _gat._getTracker("UA-10302082-2");
|
|
||||||
pageTracker._trackPageview();
|
|
||||||
} catch(err) {}</script>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
||||||
|
|
||||||
@@ -1,97 +0,0 @@
|
|||||||
body {
|
|
||||||
background: #203050;
|
|
||||||
color: #D0D0D0;
|
|
||||||
}
|
|
||||||
|
|
||||||
a:link {
|
|
||||||
color: #D0D0D0;
|
|
||||||
}
|
|
||||||
|
|
||||||
a:visited {
|
|
||||||
color: #F0C000;
|
|
||||||
}
|
|
||||||
|
|
||||||
div#logo {
|
|
||||||
position: absolute;
|
|
||||||
top: 10px;
|
|
||||||
right: 10px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.title {
|
|
||||||
color: #D0D0D0;
|
|
||||||
font-family: impact;
|
|
||||||
font-size: 40px;
|
|
||||||
text-align: center;
|
|
||||||
}
|
|
||||||
|
|
||||||
.subtitle {
|
|
||||||
color: #D0D0D0;
|
|
||||||
font-family: impact;
|
|
||||||
font-size: 15px;
|
|
||||||
text-align: center;
|
|
||||||
}
|
|
||||||
|
|
||||||
ul#nav {
|
|
||||||
list-style: none;
|
|
||||||
margin-top: 10px;
|
|
||||||
margin-left: 0px;
|
|
||||||
padding: 0px;
|
|
||||||
}
|
|
||||||
|
|
||||||
ul#nav li {
|
|
||||||
float: left;
|
|
||||||
width: 80px;
|
|
||||||
height: 30px;
|
|
||||||
/*border-left: 2px solid #D0D0D0;
|
|
||||||
border-top: 2px solid #D0D0D0;
|
|
||||||
border-right: 2px solid #A0A0A0;
|
|
||||||
border-bottom: 0px; */
|
|
||||||
background-color: #B8B8B8;
|
|
||||||
color: #000000;
|
|
||||||
font-family: verdana, sans;
|
|
||||||
font-size: 0.8em;
|
|
||||||
font-weight: 700;
|
|
||||||
text-align: center;
|
|
||||||
text-vertical-align: middle;
|
|
||||||
margin: 1px;
|
|
||||||
/*border-radius: 4px;
|
|
||||||
-moz-border-radius: 4px; */
|
|
||||||
}
|
|
||||||
|
|
||||||
ul#nav li.selected {
|
|
||||||
border-left: 2px solid #D00000;
|
|
||||||
border-top: 2px solid #D00000;
|
|
||||||
border-right: 2px solid #A00000;
|
|
||||||
background-color: #B80000;
|
|
||||||
color: #FFFFFF;
|
|
||||||
}
|
|
||||||
|
|
||||||
.rtop, .rbottom {
|
|
||||||
display:block;
|
|
||||||
background-color: #203050;
|
|
||||||
}
|
|
||||||
|
|
||||||
.rtop *, .rbottom * {
|
|
||||||
display: block;
|
|
||||||
background-color: #B8B8B8;
|
|
||||||
height: 1px;
|
|
||||||
overflow: hidden
|
|
||||||
}
|
|
||||||
|
|
||||||
.r1 {
|
|
||||||
margin: 0 5px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.r2 {
|
|
||||||
margin: 0 3px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.r3 {
|
|
||||||
margin: 0 2px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.r4 {
|
|
||||||
margin: 0 1px;
|
|
||||||
height: 2px;
|
|
||||||
}
|
|
||||||
|
|
||||||
File diff suppressed because one or more lines are too long
@@ -0,0 +1 @@
|
|||||||
|
{"Target":"css/style.min.css","MediaType":"text/css","Data":{}}
|
||||||
@@ -0,0 +1,11 @@
|
|||||||
|
{
|
||||||
|
"presets": [
|
||||||
|
[
|
||||||
|
"@babel/preset-env",
|
||||||
|
{
|
||||||
|
"targets": "> 0.25%, not dead"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"minify"
|
||||||
|
]
|
||||||
|
}
|
||||||
@@ -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
|
||||||
Vendored
+1
@@ -0,0 +1 @@
|
|||||||
|
custom: https://paypal.me/dillonzq
|
||||||
@@ -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...
|
||||||
|
配置文件或者前置参数的代码...
|
||||||
@@ -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. 请先仔细阅读主题文档.
|
||||||
@@ -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.
|
||||||
|
如果可以的话, 提供实现这个功能的相关参考链接.
|
||||||
@@ -0,0 +1,19 @@
|
|||||||
|
# Hugo default output directory
|
||||||
|
public/
|
||||||
|
/exampleSite/resources/
|
||||||
|
|
||||||
|
node_modules/
|
||||||
|
build/
|
||||||
|
|
||||||
|
## OS Files
|
||||||
|
# Windows
|
||||||
|
Thumbs.db
|
||||||
|
ehthumbs.db
|
||||||
|
Desktop.ini
|
||||||
|
$RECYCLE.BIN/
|
||||||
|
|
||||||
|
# OSX
|
||||||
|
.DS_Store
|
||||||
|
|
||||||
|
# Linux
|
||||||
|
.directory
|
||||||
@@ -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.
|
||||||
@@ -0,0 +1,196 @@
|
|||||||
|
# LoveIt Theme | Hugo [](https://app.netlify.com/sites/hugo-loveit/deploys)
|
||||||
|
|
||||||
|
[](https://github.com/dillonzq/LoveIt/releases)
|
||||||
|
[](https://gohugo.io/)
|
||||||
|
[](https://github.com/dillonzq/LoveIt/blob/master/LICENSE)
|
||||||
|
[](https://app.circleci.com/pipelines/github/dillonzq/LoveIt)
|
||||||
|
|
||||||
|
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.
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
## [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/knsv/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
|
||||||
|
|
||||||
|
* **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 **28** 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.js](https://github.com/sachinchoolur/lightgallery.js)
|
||||||
|
* 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/knsv/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/)
|
||||||
|
* **Dynamic scroll** supported by [Smooth Scroll](https://github.com/cferdinandi/smooth-scroll)
|
||||||
|
* **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
|
||||||
|
* 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.
|
||||||
|
|
||||||
|
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/)
|
||||||
|
* [Smooth Scroll](https://github.com/cferdinandi/smooth-scroll)
|
||||||
|
* [autocomplete.js](https://github.com/algolia/autocomplete.js)
|
||||||
|
* [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)
|
||||||
|
* [lightgallery.js](https://github.com/sachinchoolur/lightgallery.js)
|
||||||
|
* [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/knsv/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! ❤️
|
||||||
@@ -0,0 +1,191 @@
|
|||||||
|
# LoveIt 主题 | Hugo [](https://app.netlify.com/sites/hugo-loveit/deploys)
|
||||||
|
|
||||||
|
[](https://github.com/dillonzq/LoveIt/releases)
|
||||||
|
[](https://gohugo.io/)
|
||||||
|
[](https://github.com/dillonzq/LoveIt/blob/master/LICENSE)
|
||||||
|
[](https://app.circleci.com/pipelines/github/dillonzq/LoveIt)
|
||||||
|
|
||||||
|
[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),以便你能选择最适合你的一个。
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
## 主题[预览](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/knsv/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** 种社交链接
|
||||||
|
* 支持多达 **28** 种网站分享
|
||||||
|
* 支持 **[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.js](https://github.com/sachinchoolur/lightgallery.js) 的**图片画廊**
|
||||||
|
* 支持 **[Font Awesome](https://fontawesome.com/) 图标**的扩展 Markdown 语法
|
||||||
|
* 支持**上标注释**的扩展 Markdown 语法
|
||||||
|
* 支持**分数**的扩展 Markdown 语法
|
||||||
|
* 支持基于 [KaTeX](https://katex.org/) 的**数学公式**
|
||||||
|
* 支持基于 [mermaid](https://github.com/knsv/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
|
||||||
|
* 支持基于 [Smooth Scroll](https://github.com/cferdinandi/smooth-scroll) 的**滚动动画**
|
||||||
|
* 支持基于 [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/)
|
||||||
|
* [Smooth Scroll](https://github.com/cferdinandi/smooth-scroll)
|
||||||
|
* [autocomplete.js](https://github.com/algolia/autocomplete.js)
|
||||||
|
* [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)
|
||||||
|
* [lightgallery.js](https://github.com/sachinchoolur/lightgallery.js)
|
||||||
|
* [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/knsv/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)
|
||||||
|
|
||||||
|
谢谢! ❤️
|
||||||
@@ -0,0 +1,28 @@
|
|||||||
|
---
|
||||||
|
title: "{{ replace .TranslationBaseName "-" " " | title }}"
|
||||||
|
subtitle: ""
|
||||||
|
date: {{ .Date }}
|
||||||
|
lastmod: {{ .Date }}
|
||||||
|
draft: true
|
||||||
|
author: ""
|
||||||
|
authorLink: ""
|
||||||
|
description: ""
|
||||||
|
|
||||||
|
tags: []
|
||||||
|
categories: []
|
||||||
|
|
||||||
|
hiddenFromHomePage: false
|
||||||
|
hiddenFromSearch: false
|
||||||
|
|
||||||
|
featuredImage: ""
|
||||||
|
featuredImagePreview: ""
|
||||||
|
|
||||||
|
toc:
|
||||||
|
enable: true
|
||||||
|
math:
|
||||||
|
enable: false
|
||||||
|
lightgallery: false
|
||||||
|
license: ""
|
||||||
|
---
|
||||||
|
|
||||||
|
<!--more-->
|
||||||
@@ -0,0 +1,55 @@
|
|||||||
|
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%;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* 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);
|
||||||
|
}
|
||||||
@@ -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;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -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%;
|
||||||
|
|
||||||
|
[header-mobile] & {
|
||||||
|
padding-top: $header-height;
|
||||||
|
}
|
||||||
|
|
||||||
|
[header-mobile=normal] & {
|
||||||
|
padding-top: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.categories-card {
|
||||||
|
.card-item {
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.copyright {
|
||||||
|
.copyright-line {
|
||||||
|
.icp-splitter {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
.icp-br {
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,4 @@
|
|||||||
|
// ==============================
|
||||||
|
// Custom style
|
||||||
|
// 自定义样式
|
||||||
|
// ==============================
|
||||||
@@ -0,0 +1,5 @@
|
|||||||
|
@mixin blur {
|
||||||
|
.blur & {
|
||||||
|
@include filter(blur(1.5px));
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -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};';
|
||||||
|
}
|
||||||
@@ -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);
|
||||||
|
}
|
||||||
@@ -0,0 +1,4 @@
|
|||||||
|
@import "_compatibility";
|
||||||
|
@import "_link";
|
||||||
|
@import "_blur";
|
||||||
|
@import "_details";
|
||||||
@@ -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);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,4 @@
|
|||||||
|
// ==============================
|
||||||
|
// Override Variables
|
||||||
|
// 覆盖变量
|
||||||
|
// ==============================
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
#content-404 {
|
||||||
|
font-size: 1.8rem;
|
||||||
|
line-height: 3rem;
|
||||||
|
@include transform(translateY(30vh));
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
@@ -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";
|
||||||
|
}
|
||||||
@@ -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[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);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,22 @@
|
|||||||
|
.page {
|
||||||
|
position: relative;
|
||||||
|
max-width: 800px;
|
||||||
|
width: 60%;
|
||||||
|
margin: 0 auto;
|
||||||
|
|
||||||
|
[header-desktop] & {
|
||||||
|
padding-top: $header-height;
|
||||||
|
}
|
||||||
|
|
||||||
|
[header-desktop=normal] & {
|
||||||
|
padding-top: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
@include blur;
|
||||||
|
}
|
||||||
|
|
||||||
|
@import "_single";
|
||||||
|
@import "_special";
|
||||||
|
@import "_archive";
|
||||||
|
@import "_home";
|
||||||
|
@import "_404";
|
||||||
@@ -0,0 +1,331 @@
|
|||||||
|
@import "../_partial/_single/toc";
|
||||||
|
|
||||||
|
.single {
|
||||||
|
.single-title {
|
||||||
|
margin: 1rem 0 .5rem;
|
||||||
|
font-size: 1.6rem;
|
||||||
|
font-weight: bold;
|
||||||
|
line-height: 140%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.single-subtitle {
|
||||||
|
margin: .4rem 0;
|
||||||
|
font-size: 1.2rem;
|
||||||
|
font-weight: normal;
|
||||||
|
font-style: italic;
|
||||||
|
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;
|
||||||
|
height: auto;
|
||||||
|
margin: 0 auto;
|
||||||
|
overflow: hidden;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.lazyloading {
|
||||||
|
@include object-fit(none);
|
||||||
|
}
|
||||||
|
|
||||||
|
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;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.typeit {
|
||||||
|
.code {
|
||||||
|
padding: .375rem;
|
||||||
|
font-size: .875rem;
|
||||||
|
font-family: $code-font-family;
|
||||||
|
font-weight: bold;
|
||||||
|
word-break: break-all;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.version {
|
||||||
|
height: 1.25em;
|
||||||
|
vertical-align: text-bottom;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@import "../_partial/_single/footer";
|
||||||
|
@import "../_partial/_single/comment";
|
||||||
|
}
|
||||||
|
|
||||||
|
.lg-toolbar .lg-icon::after {
|
||||||
|
color: #999;
|
||||||
|
}
|
||||||
@@ -0,0 +1,5 @@
|
|||||||
|
.special {
|
||||||
|
.single-title, .single-subtitle {
|
||||||
|
text-align: right;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -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;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -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: 4em;
|
||||||
|
text-align: right;
|
||||||
|
color: $global-font-secondary-color;
|
||||||
|
|
||||||
|
[theme=dark] & {
|
||||||
|
color: $global-font-secondary-color-dark;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.more-post {
|
||||||
|
text-align: right;
|
||||||
|
}
|
||||||
@@ -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;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -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;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -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;
|
||||||
|
}
|
||||||
@@ -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;
|
||||||
|
}
|
||||||
@@ -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;
|
||||||
|
|
||||||
|
[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;
|
||||||
|
|
||||||
|
[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;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -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;
|
||||||
|
}
|
||||||
@@ -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);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -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%;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -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;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -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;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,385 @@
|
|||||||
|
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, .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;
|
||||||
|
white-space: nowrap;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.highlight {
|
||||||
|
line-height: 1.4em;
|
||||||
|
margin: .5rem 0;
|
||||||
|
|
||||||
|
> .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 {
|
||||||
|
.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;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,3 @@
|
|||||||
|
#comments {
|
||||||
|
padding: 8rem 0 2rem;
|
||||||
|
}
|
||||||
@@ -0,0 +1,4 @@
|
|||||||
|
.echarts {
|
||||||
|
margin: .5rem 0;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
@@ -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));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,5 @@
|
|||||||
|
iframe.instagram-media {
|
||||||
|
[theme=dark] & {
|
||||||
|
border: none !important;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,4 @@
|
|||||||
|
.mapbox {
|
||||||
|
margin: .5rem 0;
|
||||||
|
padding: .5rem 0;
|
||||||
|
}
|
||||||
@@ -0,0 +1,3 @@
|
|||||||
|
meting-js {
|
||||||
|
margin: .5rem 0;
|
||||||
|
}
|
||||||
@@ -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;
|
||||||
|
|
||||||
|
[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;
|
||||||
|
|
||||||
|
&[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%);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,366 @@
|
|||||||
|
// ==============================
|
||||||
|
// 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-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;
|
||||||
@@ -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";
|
||||||
@@ -0,0 +1,66 @@
|
|||||||
|
prefix:
|
||||||
|
libFiles: https://cdn.jsdelivr.net/npm/
|
||||||
|
# simple-icons@2.14.0 https://github.com/simple-icons/simple-icons
|
||||||
|
simpleIcons: https://cdn.jsdelivr.net/npm/simple-icons@2.14.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@5.13.0 https://fontawesome.com/
|
||||||
|
fontawesomeFreeCSS: '@fortawesome/fontawesome-free@5.13.0/css/all.min.css'
|
||||||
|
# animate.css@3.7.2 https://github.com/daneden/animate.css
|
||||||
|
animateCSS: animate.css@3.7.2/animate.min.css
|
||||||
|
# smooth-scroll@16.1.3 https://github.com/cferdinandi/smooth-scroll
|
||||||
|
smoothScrollJS: smooth-scroll@16.1.3/dist/smooth-scroll.min.js
|
||||||
|
# autocomplete.js@0.37.1 https://github.com/algolia/autocomplete.js
|
||||||
|
autocompleteJS: autocomplete.js@0.37.1/dist/autocomplete.min.js
|
||||||
|
# lunr.js@2.3.8 https://lunrjs.com/
|
||||||
|
lunrJS: lunr@2.3.8/lunr.min.js
|
||||||
|
# algoliasearch@4.2.0 https://github.com/algolia/algoliasearch-client-javascript
|
||||||
|
algoliasearchJS: algoliasearch@4.2.0/dist/algoliasearch-lite.umd.min.js
|
||||||
|
# lazysizes@5.2.2 https://github.com/aFarkas/lazysizes
|
||||||
|
lazysizesJS: lazysizes@5.2.2/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@13.0.0 https://github.com/twitter/twemoji
|
||||||
|
twemojiJS: twemoji@13.0.0/dist/twemoji.min.js
|
||||||
|
# lightgallery.js@1.2.0 https://github.com/sachinchoolur/lightgallery.js
|
||||||
|
# lg-thumbnail.js@1.2.0 https://github.com/sachinchoolur/lg-thumbnail.js
|
||||||
|
# lg-zoom.js@1.2.0 https://github.com/sachinchoolur/lg-zoom.js
|
||||||
|
lightgalleryCSS: lightgallery.js@1.2.0/dist/css/lightgallery.min.css
|
||||||
|
lightgalleryJS: lightgallery.js@1.2.0/dist/js/lightgallery.min.js
|
||||||
|
lightgalleryThumbnailJS: lg-thumbnail.js@1.2.0/dist/lg-thumbnail.min.js
|
||||||
|
lightgalleryZoomJS: lg-zoom.js@1.2.0/dist/lg-zoom.min.js
|
||||||
|
# clipboard.js@2.0.6 https://github.com/zenorocha/clipboard.js
|
||||||
|
clipboardJS: clipboard@2.0.6/dist/clipboard.min.js
|
||||||
|
# sharer.js@0.4.0 https://github.com/ellisonleao/sharer.js
|
||||||
|
sharerJS: sharer.js@0.4.0/sharer.min.js
|
||||||
|
# typeit@7.0.4 https://github.com/alexmacarthur/typeit
|
||||||
|
typeitJS: typeit@7.0.4/dist/typeit.min.js
|
||||||
|
# katex@0.11.1 https://katex.org/
|
||||||
|
katexCSS: katex@0.11.1/dist/katex.min.css
|
||||||
|
katexJS: katex@0.11.1/dist/katex.min.js
|
||||||
|
katexAutoRenderJS: katex@0.11.1/dist/contrib/auto-render.min.js
|
||||||
|
katexCopyTexCSS: katex@0.11.1/dist/contrib/copy-tex.min.css
|
||||||
|
katexCopyTexJS: katex@0.11.1/dist/contrib/copy-tex.min.js
|
||||||
|
katexMhchemJS: katex@0.11.1/dist/contrib/mhchem.min.js
|
||||||
|
# mermaid@8.5.1 https://github.com/knsv/mermaid
|
||||||
|
mermaidJS: mermaid@8.5.1/dist/mermaid.min.js
|
||||||
|
# echarts@4.8.0 https://echarts.apache.org/
|
||||||
|
echartsJS: echarts@4.8.0/dist/echarts.min.js
|
||||||
|
echartsMacaronsJS: echarts@4.8.0/theme/macarons.min.js
|
||||||
|
# mapbox-gl@1.10.1 https://docs.mapbox.com/mapbox-gl-js
|
||||||
|
mapboxGLCSS: mapbox-gl@1.10.1/dist/mapbox-gl.min.css
|
||||||
|
mapboxGLJS: mapbox-gl@1.10.1/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.6.2 https://github.com/gitalk/gitalk
|
||||||
|
gitalkCSS: gitalk@1.6.2/dist/gitalk.min.css
|
||||||
|
gitalkJS: gitalk@1.6.2/dist/gitalk.min.js
|
||||||
|
# valine@1.4.14 https://valine.js.org/
|
||||||
|
valineJS: valine@1.4.14/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
|
||||||
@@ -0,0 +1,150 @@
|
|||||||
|
emojiCDN: 'https://cdn.jsdelivr.net/npm/emoji-datasource-apple@5.0.1/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
|
||||||
@@ -0,0 +1,150 @@
|
|||||||
|
emojiCDN: 'https://cdn.jsdelivr.net/npm/emoji-datasource-facebook@5.0.1/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
|
||||||
@@ -0,0 +1,150 @@
|
|||||||
|
emojiCDN: 'https://cdn.jsdelivr.net/npm/emoji-datasource-google@5.0.1/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
|
||||||
@@ -0,0 +1,150 @@
|
|||||||
|
emojiCDN: 'https://cdn.jsdelivr.net/npm/emoji-datasource-twitter@5.0.1/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
|
||||||
@@ -0,0 +1,22 @@
|
|||||||
|
theme:
|
||||||
|
- html5shiv
|
||||||
|
- Object.values
|
||||||
|
- Promise
|
||||||
|
- fetch
|
||||||
|
- Element.prototype.after
|
||||||
|
smooth-scroll:
|
||||||
|
- Element.prototype.closest
|
||||||
|
- requestAnimationFrame
|
||||||
|
- CustomEvent
|
||||||
|
algoliasearch:
|
||||||
|
- Promise
|
||||||
|
- Object.entries
|
||||||
|
- Object.assign
|
||||||
|
TypeIt:
|
||||||
|
- Array.prototype.fill
|
||||||
|
- Array.prototype.find
|
||||||
|
- Array.from
|
||||||
|
- IntersectionObserver
|
||||||
|
- Math.sign
|
||||||
|
- Object.assign
|
||||||
|
- Promise
|
||||||
@@ -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-codepen 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:
|
||||||
|
Src: svg/icons/thingiverse.svg
|
||||||
|
|
||||||
|
# 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:
|
||||||
|
Src: svg/icons/bilibili.svg
|
||||||
|
|
||||||
|
# 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
|
||||||
Vendored
+3
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -0,0 +1,26 @@
|
|||||||
|
normalize.css@8.0.1 https://github.com/necolas/normalize.css
|
||||||
|
fontawesome-free@5.13.0 https://fontawesome.com/
|
||||||
|
simple-icons@2.14.0 https://github.com/simple-icons/simple-icons
|
||||||
|
animate.css@3.7.2 https://github.com/daneden/animate.css
|
||||||
|
smooth-scroll@16.1.3 https://github.com/cferdinandi/smooth-scroll
|
||||||
|
autocomplete.js@0.37.1 https://github.com/algolia/autocomplete.js
|
||||||
|
lunr.js@2.3.8 https://lunrjs.com/
|
||||||
|
algoliasearch@4.2.0 https://github.com/algolia/algoliasearch-client-javascript
|
||||||
|
lazysizes@5.2.2 https://github.com/aFarkas/lazysizes
|
||||||
|
object-fit-images@3.2.4 https://github.com/fregante/object-fit-images
|
||||||
|
twemoji@13.0.0 https://github.com/twitter/twemoji
|
||||||
|
lightgallery.js@1.2.0 https://github.com/sachinchoolur/lightgallery.js
|
||||||
|
lg-thumbnail.js@1.2.0 https://github.com/sachinchoolur/lg-thumbnail.js
|
||||||
|
lg-zoom.js@1.2.0 https://github.com/sachinchoolur/lg-zoom.js
|
||||||
|
clipboard.js@2.0.6 https://github.com/zenorocha/clipboard.js
|
||||||
|
sharer.js@0.4.0 https://github.com/ellisonleao/sharer.js
|
||||||
|
typeit@7.0.4 https://github.com/alexmacarthur/typeit
|
||||||
|
katex@0.11.1 https://katex.org/
|
||||||
|
mermaid@8.5.1 https://github.com/knsv/mermaid
|
||||||
|
echarts@4.8.0 https://echarts.apache.org/
|
||||||
|
mapbox-gl@1.10.1 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.6.2 https://github.com/gitalk/gitalk
|
||||||
|
valine@1.4.14 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
@@ -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
@@ -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
+22
File diff suppressed because one or more lines are too long
@@ -0,0 +1,240 @@
|
|||||||
|
/*
|
||||||
|
* Licensed to the Apache Software Foundation (ASF) under one
|
||||||
|
* or more contributor license agreements. See the NOTICE file
|
||||||
|
* distributed with this work for additional information
|
||||||
|
* regarding copyright ownership. The ASF licenses this file
|
||||||
|
* to you under the Apache License, Version 2.0 (the
|
||||||
|
* "License"); you may not use this file except in compliance
|
||||||
|
* with the License. You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing,
|
||||||
|
* software distributed under the License is distributed on an
|
||||||
|
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||||
|
* KIND, either express or implied. See the License for the
|
||||||
|
* specific language governing permissions and limitations
|
||||||
|
* under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
(function(root, factory) {
|
||||||
|
if (typeof define === 'function' && define.amd) {
|
||||||
|
// AMD. Register as an anonymous module.
|
||||||
|
define(['exports', 'echarts'], factory);
|
||||||
|
} else if (
|
||||||
|
typeof exports === 'object' &&
|
||||||
|
typeof exports.nodeName !== 'string'
|
||||||
|
) {
|
||||||
|
// CommonJS
|
||||||
|
factory(exports, require('echarts'));
|
||||||
|
} else {
|
||||||
|
// Browser globals
|
||||||
|
factory({}, root.echarts);
|
||||||
|
}
|
||||||
|
})(this, function(exports, echarts) {
|
||||||
|
var log = function(msg) {
|
||||||
|
if (typeof console !== 'undefined') {
|
||||||
|
console && console.error && console.error(msg);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
if (!echarts) {
|
||||||
|
log('ECharts is not Loaded');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
var colorPalette = [
|
||||||
|
'#2ec7c9',
|
||||||
|
'#b6a2de',
|
||||||
|
'#5ab1ef',
|
||||||
|
'#ffb980',
|
||||||
|
'#d87a80',
|
||||||
|
'#8d98b3',
|
||||||
|
'#e5cf0d',
|
||||||
|
'#97b552',
|
||||||
|
'#95706d',
|
||||||
|
'#dc69aa',
|
||||||
|
'#07a2a4',
|
||||||
|
'#9a7fd1',
|
||||||
|
'#588dd5',
|
||||||
|
'#f5994e',
|
||||||
|
'#c05050',
|
||||||
|
'#59678c',
|
||||||
|
'#c9ab00',
|
||||||
|
'#7eb00a',
|
||||||
|
'#6f5553',
|
||||||
|
'#c14089'
|
||||||
|
];
|
||||||
|
|
||||||
|
var theme = {
|
||||||
|
color: colorPalette,
|
||||||
|
|
||||||
|
title: {
|
||||||
|
textStyle: {
|
||||||
|
fontWeight: 'normal',
|
||||||
|
color: '#008acd'
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
visualMap: {
|
||||||
|
itemWidth: 15,
|
||||||
|
color: ['#5ab1ef', '#e0ffff']
|
||||||
|
},
|
||||||
|
|
||||||
|
toolbox: {
|
||||||
|
iconStyle: {
|
||||||
|
normal: {
|
||||||
|
borderColor: colorPalette[0]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
tooltip: {
|
||||||
|
backgroundColor: 'rgba(50,50,50,0.5)',
|
||||||
|
axisPointer: {
|
||||||
|
type: 'line',
|
||||||
|
lineStyle: {
|
||||||
|
color: '#008acd'
|
||||||
|
},
|
||||||
|
crossStyle: {
|
||||||
|
color: '#008acd'
|
||||||
|
},
|
||||||
|
shadowStyle: {
|
||||||
|
color: 'rgba(200,200,200,0.2)'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
dataZoom: {
|
||||||
|
dataBackgroundColor: '#efefff',
|
||||||
|
fillerColor: 'rgba(182,162,222,0.2)',
|
||||||
|
handleColor: '#008acd'
|
||||||
|
},
|
||||||
|
|
||||||
|
grid: {
|
||||||
|
borderColor: '#eee'
|
||||||
|
},
|
||||||
|
|
||||||
|
categoryAxis: {
|
||||||
|
axisLine: {
|
||||||
|
lineStyle: {
|
||||||
|
color: '#008acd'
|
||||||
|
}
|
||||||
|
},
|
||||||
|
splitLine: {
|
||||||
|
lineStyle: {
|
||||||
|
color: ['#eee']
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
valueAxis: {
|
||||||
|
axisLine: {
|
||||||
|
lineStyle: {
|
||||||
|
color: '#008acd'
|
||||||
|
}
|
||||||
|
},
|
||||||
|
splitArea: {
|
||||||
|
show: true,
|
||||||
|
areaStyle: {
|
||||||
|
color: ['rgba(250,250,250,0.1)', 'rgba(200,200,200,0.1)']
|
||||||
|
}
|
||||||
|
},
|
||||||
|
splitLine: {
|
||||||
|
lineStyle: {
|
||||||
|
color: ['#eee']
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
timeline: {
|
||||||
|
lineStyle: {
|
||||||
|
color: '#008acd'
|
||||||
|
},
|
||||||
|
controlStyle: {
|
||||||
|
color: '#008acd',
|
||||||
|
borderColor: '#008acd'
|
||||||
|
},
|
||||||
|
symbol: 'emptyCircle',
|
||||||
|
symbolSize: 3
|
||||||
|
},
|
||||||
|
|
||||||
|
line: {
|
||||||
|
smooth: true,
|
||||||
|
symbol: 'emptyCircle',
|
||||||
|
symbolSize: 3
|
||||||
|
},
|
||||||
|
|
||||||
|
candlestick: {
|
||||||
|
itemStyle: {
|
||||||
|
color: '#d87a80',
|
||||||
|
color0: '#2ec7c9'
|
||||||
|
},
|
||||||
|
lineStyle: {
|
||||||
|
width: 1,
|
||||||
|
color: '#d87a80',
|
||||||
|
color0: '#2ec7c9'
|
||||||
|
},
|
||||||
|
areaStyle: {
|
||||||
|
color: '#2ec7c9',
|
||||||
|
color0: '#b6a2de'
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
scatter: {
|
||||||
|
symbol: 'circle',
|
||||||
|
symbolSize: 4
|
||||||
|
},
|
||||||
|
|
||||||
|
map: {
|
||||||
|
itemStyle: {
|
||||||
|
color: '#ddd'
|
||||||
|
},
|
||||||
|
areaStyle: {
|
||||||
|
color: '#fe994e'
|
||||||
|
},
|
||||||
|
label: {
|
||||||
|
color: '#d87a80'
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
graph: {
|
||||||
|
itemStyle: {
|
||||||
|
color: '#d87a80'
|
||||||
|
},
|
||||||
|
linkStyle: {
|
||||||
|
color: '#2ec7c9'
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
gauge: {
|
||||||
|
axisLine: {
|
||||||
|
lineStyle: {
|
||||||
|
color: [
|
||||||
|
[0.2, '#2ec7c9'],
|
||||||
|
[0.8, '#5ab1ef'],
|
||||||
|
[1, '#d87a80']
|
||||||
|
],
|
||||||
|
width: 10
|
||||||
|
}
|
||||||
|
},
|
||||||
|
axisTick: {
|
||||||
|
splitNumber: 10,
|
||||||
|
length: 15,
|
||||||
|
lineStyle: {
|
||||||
|
color: 'auto'
|
||||||
|
}
|
||||||
|
},
|
||||||
|
splitLine: {
|
||||||
|
length: 22,
|
||||||
|
lineStyle: {
|
||||||
|
color: 'auto'
|
||||||
|
}
|
||||||
|
},
|
||||||
|
pointer: {
|
||||||
|
width: 5
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
echarts.registerTheme('macarons', theme);
|
||||||
|
});
|
||||||
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large
Load Diff
+35
File diff suppressed because one or more lines are too long
+1
@@ -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(e){var t={};function r(n){if(t[n])return t[n].exports;var o=t[n]={i:n,l:!1,exports:{}};return e[n].call(o.exports,o,o.exports,r),o.l=!0,o.exports}return r.m=e,r.c=t,r.d=function(e,t,n){r.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},r.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.t=function(e,t){if(1&t&&(e=r(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(r.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)r.d(n,o,function(t){return e[t]}.bind(null,o));return n},r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,"a",t),t},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.p="",r(r.s=1)}([function(t,r){t.exports=e},function(e,t,r){"use strict";r.r(t);var n=r(0),o=r.n(n),a=function(e,t,r){for(var n=r,o=0,a=e.length;n<t.length;){var i=t[n];if(o<=0&&t.slice(n,n+a)===e)return n;"\\"===i?n++:"{"===i?o++:"}"===i&&o--,n++}return-1},i=function(e,t,r,n){for(var o=[],i=0;i<e.length;i++)if("text"===e[i].type){var l=e[i].data,d=!0,s=0,f=void 0;for(-1!==(f=l.indexOf(t))&&(s=f,o.push({type:"text",data:l.slice(0,s)}),d=!1);;){if(d){if(-1===(f=l.indexOf(t,s)))break;o.push({type:"text",data:l.slice(s,f)}),s=f}else{if(-1===(f=a(r,l,s+t.length)))break;o.push({type:"math",data:l.slice(s+t.length,f),rawData:l.slice(s,f+r.length),display:n}),s=f+r.length}d=!d}o.push({type:"text",data:l.slice(s)})}else o.push(e[i]);return o},l=function(e,t){for(var r=function(e,t){for(var r=[{type:"text",data:e}],n=0;n<t.length;n++){var o=t[n];r=i(r,o.left,o.right,o.display||!1)}return r}(e,t.delimiters),n=document.createDocumentFragment(),a=0;a<r.length;a++)if("text"===r[a].type)n.appendChild(document.createTextNode(r[a].data));else{var l=document.createElement("span"),d=r[a].data;t.displayMode=r[a].display;try{t.preProcess&&(d=t.preProcess(d)),o.a.render(d,l,t)}catch(e){if(!(e instanceof o.a.ParseError))throw e;t.errorCallback("KaTeX auto-render: Failed to parse `"+r[a].data+"` with ",e),n.appendChild(document.createTextNode(r[a].rawData));continue}n.appendChild(l)}return n};t.default=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:"\\[",right:"\\]",display:!0}],r.ignoredTags=r.ignoredTags||["script","noscript","style","textarea","pre","code"],r.ignoredClasses=r.ignoredClasses||[],r.errorCallback=r.errorCallback||console.error,r.macros=r.macros||{},function e(t,r){for(var n=0;n<t.childNodes.length;n++){var o=t.childNodes[n];if(3===o.nodeType){var a=l(o.textContent,r);n+=a.childNodes.length-1,t.replaceChild(a,o)}else 1===o.nodeType&&function(){var t=" "+o.className+" ";-1===r.ignoredTags.indexOf(o.nodeName.toLowerCase())&&r.ignoredClasses.every(function(e){return-1===t.indexOf(" "+e+" ")})&&e(o,r)}()}}(e,r)}}]).default});
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
.katex,.katex-display{user-select:all;-moz-user-select:all;-webkit-user-select:all;-ms-user-select:all}
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
!function(e,t){if("object"==typeof exports&&"object"==typeof module)module.exports=t();else if("function"==typeof define&&define.amd)define([],t);else{var n=t();for(var r in n)("object"==typeof exports?exports:e)[r]=n[r]}}("undefined"!=typeof self?self:this,function(){return function(e){var t={};function n(r){if(t[r])return t[r].exports;var o=t[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}return n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)n.d(r,o,function(t){return e[t]}.bind(null,o));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=1)}([function(e,t,n){},function(e,t,n){"use strict";n.r(t);n(0);var r={inline:["$","$"],display:["$$","$$"]},o=function(e,t){void 0===t&&(t=r);for(var n=e.querySelectorAll(".katex-mathml + .katex-html"),o=0;o<n.length;o++){var l=n[o];l.remove?l.remove(null):l.parentNode.removeChild(l)}for(var i=e.querySelectorAll(".katex-mathml"),a=0;a<i.length;a++){var u=i[a],f=u.querySelector("annotation");f&&(u.replaceWith?u.replaceWith(f):u.parentNode.replaceChild(f,u),f.innerHTML=t.inline[0]+f.innerHTML+t.inline[1])}for(var c=e.querySelectorAll(".katex-display annotation"),d=0;d<c.length;d++){var p=c[d];p.innerHTML=t.display[0]+p.innerHTML.substr(t.inline[0].length,p.innerHTML.length-t.inline[0].length-t.inline[1].length)+t.display[1]}return e};document.addEventListener("copy",function(e){var t=window.getSelection();if(!t.isCollapsed){var n=t.getRangeAt(0).cloneContents();if(n.querySelector(".katex-mathml")){for(var r=[],l=0;l<n.childNodes.length;l++)r.push(n.childNodes[l].outerHTML);e.clipboardData.setData("text/html",r.join("")),e.clipboardData.setData("text/plain",o(n).textContent),e.preventDefault()}}})}]).default});
|
||||||
+1
File diff suppressed because one or more lines are too long
+1
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
+3
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
File diff suppressed because one or more lines are too long
@@ -0,0 +1,206 @@
|
|||||||
|
/**
|
||||||
|
* export the module via AMD, CommonJS or as a browser global
|
||||||
|
* Export code from https://github.com/umdjs/umd/blob/master/returnExports.js
|
||||||
|
*/
|
||||||
|
(function (root, factory) {
|
||||||
|
if (typeof define === 'function' && define.amd) {
|
||||||
|
// AMD. Register as an anonymous module.
|
||||||
|
define(factory)
|
||||||
|
} else if (typeof exports === 'object') {
|
||||||
|
/**
|
||||||
|
* Node. Does not work with strict CommonJS, but
|
||||||
|
* only CommonJS-like environments that support module.exports,
|
||||||
|
* like Node.
|
||||||
|
*/
|
||||||
|
module.exports = factory()
|
||||||
|
} else {
|
||||||
|
// Browser globals (root is window)
|
||||||
|
factory()(root.lunr);
|
||||||
|
}
|
||||||
|
}(this, function () {
|
||||||
|
/**
|
||||||
|
* Just return a value to define the module export.
|
||||||
|
* This example returns an object, but the module
|
||||||
|
* can return a function as the exported value.
|
||||||
|
*/
|
||||||
|
|
||||||
|
return function(lunr) {
|
||||||
|
// TinySegmenter 0.1 -- Super compact Japanese tokenizer in Javascript
|
||||||
|
// (c) 2008 Taku Kudo <taku@chasen.org>
|
||||||
|
// TinySegmenter is freely distributable under the terms of a new BSD licence.
|
||||||
|
// For details, see http://chasen.org/~taku/software/TinySegmenter/LICENCE.txt
|
||||||
|
|
||||||
|
function TinySegmenter() {
|
||||||
|
var patterns = {
|
||||||
|
"[一二三四五六七八九十百千万億兆]":"M",
|
||||||
|
"[一-龠々〆ヵヶ]":"H",
|
||||||
|
"[ぁ-ん]":"I",
|
||||||
|
"[ァ-ヴーア-ン゙ー]":"K",
|
||||||
|
"[a-zA-Za-zA-Z]":"A",
|
||||||
|
"[0-90-9]":"N"
|
||||||
|
}
|
||||||
|
this.chartype_ = [];
|
||||||
|
for (var i in patterns) {
|
||||||
|
var regexp = new RegExp(i);
|
||||||
|
this.chartype_.push([regexp, patterns[i]]);
|
||||||
|
}
|
||||||
|
|
||||||
|
this.BIAS__ = -332
|
||||||
|
this.BC1__ = {"HH":6,"II":2461,"KH":406,"OH":-1378};
|
||||||
|
this.BC2__ = {"AA":-3267,"AI":2744,"AN":-878,"HH":-4070,"HM":-1711,"HN":4012,"HO":3761,"IA":1327,"IH":-1184,"II":-1332,"IK":1721,"IO":5492,"KI":3831,"KK":-8741,"MH":-3132,"MK":3334,"OO":-2920};
|
||||||
|
this.BC3__ = {"HH":996,"HI":626,"HK":-721,"HN":-1307,"HO":-836,"IH":-301,"KK":2762,"MK":1079,"MM":4034,"OA":-1652,"OH":266};
|
||||||
|
this.BP1__ = {"BB":295,"OB":304,"OO":-125,"UB":352};
|
||||||
|
this.BP2__ = {"BO":60,"OO":-1762};
|
||||||
|
this.BQ1__ = {"BHH":1150,"BHM":1521,"BII":-1158,"BIM":886,"BMH":1208,"BNH":449,"BOH":-91,"BOO":-2597,"OHI":451,"OIH":-296,"OKA":1851,"OKH":-1020,"OKK":904,"OOO":2965};
|
||||||
|
this.BQ2__ = {"BHH":118,"BHI":-1159,"BHM":466,"BIH":-919,"BKK":-1720,"BKO":864,"OHH":-1139,"OHM":-181,"OIH":153,"UHI":-1146};
|
||||||
|
this.BQ3__ = {"BHH":-792,"BHI":2664,"BII":-299,"BKI":419,"BMH":937,"BMM":8335,"BNN":998,"BOH":775,"OHH":2174,"OHM":439,"OII":280,"OKH":1798,"OKI":-793,"OKO":-2242,"OMH":-2402,"OOO":11699};
|
||||||
|
this.BQ4__ = {"BHH":-3895,"BIH":3761,"BII":-4654,"BIK":1348,"BKK":-1806,"BMI":-3385,"BOO":-12396,"OAH":926,"OHH":266,"OHK":-2036,"ONN":-973};
|
||||||
|
this.BW1__ = {",と":660,",同":727,"B1あ":1404,"B1同":542,"、と":660,"、同":727,"」と":1682,"あっ":1505,"いう":1743,"いっ":-2055,"いる":672,"うし":-4817,"うん":665,"から":3472,"がら":600,"こう":-790,"こと":2083,"こん":-1262,"さら":-4143,"さん":4573,"した":2641,"して":1104,"すで":-3399,"そこ":1977,"それ":-871,"たち":1122,"ため":601,"った":3463,"つい":-802,"てい":805,"てき":1249,"でき":1127,"です":3445,"では":844,"とい":-4915,"とみ":1922,"どこ":3887,"ない":5713,"なっ":3015,"など":7379,"なん":-1113,"にし":2468,"には":1498,"にも":1671,"に対":-912,"の一":-501,"の中":741,"ませ":2448,"まで":1711,"まま":2600,"まる":-2155,"やむ":-1947,"よっ":-2565,"れた":2369,"れで":-913,"をし":1860,"を見":731,"亡く":-1886,"京都":2558,"取り":-2784,"大き":-2604,"大阪":1497,"平方":-2314,"引き":-1336,"日本":-195,"本当":-2423,"毎日":-2113,"目指":-724,"B1あ":1404,"B1同":542,"」と":1682};
|
||||||
|
this.BW2__ = {"..":-11822,"11":-669,"――":-5730,"−−":-13175,"いう":-1609,"うか":2490,"かし":-1350,"かも":-602,"から":-7194,"かれ":4612,"がい":853,"がら":-3198,"きた":1941,"くな":-1597,"こと":-8392,"この":-4193,"させ":4533,"され":13168,"さん":-3977,"しい":-1819,"しか":-545,"した":5078,"して":972,"しな":939,"その":-3744,"たい":-1253,"たた":-662,"ただ":-3857,"たち":-786,"たと":1224,"たは":-939,"った":4589,"って":1647,"っと":-2094,"てい":6144,"てき":3640,"てく":2551,"ては":-3110,"ても":-3065,"でい":2666,"でき":-1528,"でし":-3828,"です":-4761,"でも":-4203,"とい":1890,"とこ":-1746,"とと":-2279,"との":720,"とみ":5168,"とも":-3941,"ない":-2488,"なが":-1313,"など":-6509,"なの":2614,"なん":3099,"にお":-1615,"にし":2748,"にな":2454,"によ":-7236,"に対":-14943,"に従":-4688,"に関":-11388,"のか":2093,"ので":-7059,"のに":-6041,"のの":-6125,"はい":1073,"はが":-1033,"はず":-2532,"ばれ":1813,"まし":-1316,"まで":-6621,"まれ":5409,"めて":-3153,"もい":2230,"もの":-10713,"らか":-944,"らし":-1611,"らに":-1897,"りし":651,"りま":1620,"れた":4270,"れて":849,"れば":4114,"ろう":6067,"われ":7901,"を通":-11877,"んだ":728,"んな":-4115,"一人":602,"一方":-1375,"一日":970,"一部":-1051,"上が":-4479,"会社":-1116,"出て":2163,"分の":-7758,"同党":970,"同日":-913,"大阪":-2471,"委員":-1250,"少な":-1050,"年度":-8669,"年間":-1626,"府県":-2363,"手権":-1982,"新聞":-4066,"日新":-722,"日本":-7068,"日米":3372,"曜日":-601,"朝鮮":-2355,"本人":-2697,"東京":-1543,"然と":-1384,"社会":-1276,"立て":-990,"第に":-1612,"米国":-4268,"11":-669};
|
||||||
|
this.BW3__ = {"あた":-2194,"あり":719,"ある":3846,"い.":-1185,"い。":-1185,"いい":5308,"いえ":2079,"いく":3029,"いた":2056,"いっ":1883,"いる":5600,"いわ":1527,"うち":1117,"うと":4798,"えと":1454,"か.":2857,"か。":2857,"かけ":-743,"かっ":-4098,"かに":-669,"から":6520,"かり":-2670,"が,":1816,"が、":1816,"がき":-4855,"がけ":-1127,"がっ":-913,"がら":-4977,"がり":-2064,"きた":1645,"けど":1374,"こと":7397,"この":1542,"ころ":-2757,"さい":-714,"さを":976,"し,":1557,"し、":1557,"しい":-3714,"した":3562,"して":1449,"しな":2608,"しま":1200,"す.":-1310,"す。":-1310,"する":6521,"ず,":3426,"ず、":3426,"ずに":841,"そう":428,"た.":8875,"た。":8875,"たい":-594,"たの":812,"たり":-1183,"たる":-853,"だ.":4098,"だ。":4098,"だっ":1004,"った":-4748,"って":300,"てい":6240,"てお":855,"ても":302,"です":1437,"でに":-1482,"では":2295,"とう":-1387,"とし":2266,"との":541,"とも":-3543,"どう":4664,"ない":1796,"なく":-903,"など":2135,"に,":-1021,"に、":-1021,"にし":1771,"にな":1906,"には":2644,"の,":-724,"の、":-724,"の子":-1000,"は,":1337,"は、":1337,"べき":2181,"まし":1113,"ます":6943,"まっ":-1549,"まで":6154,"まれ":-793,"らし":1479,"られ":6820,"るる":3818,"れ,":854,"れ、":854,"れた":1850,"れて":1375,"れば":-3246,"れる":1091,"われ":-605,"んだ":606,"んで":798,"カ月":990,"会議":860,"入り":1232,"大会":2217,"始め":1681,"市":965,"新聞":-5055,"日,":974,"日、":974,"社会":2024,"カ月":990};
|
||||||
|
this.TC1__ = {"AAA":1093,"HHH":1029,"HHM":580,"HII":998,"HOH":-390,"HOM":-331,"IHI":1169,"IOH":-142,"IOI":-1015,"IOM":467,"MMH":187,"OOI":-1832};
|
||||||
|
this.TC2__ = {"HHO":2088,"HII":-1023,"HMM":-1154,"IHI":-1965,"KKH":703,"OII":-2649};
|
||||||
|
this.TC3__ = {"AAA":-294,"HHH":346,"HHI":-341,"HII":-1088,"HIK":731,"HOH":-1486,"IHH":128,"IHI":-3041,"IHO":-1935,"IIH":-825,"IIM":-1035,"IOI":-542,"KHH":-1216,"KKA":491,"KKH":-1217,"KOK":-1009,"MHH":-2694,"MHM":-457,"MHO":123,"MMH":-471,"NNH":-1689,"NNO":662,"OHO":-3393};
|
||||||
|
this.TC4__ = {"HHH":-203,"HHI":1344,"HHK":365,"HHM":-122,"HHN":182,"HHO":669,"HIH":804,"HII":679,"HOH":446,"IHH":695,"IHO":-2324,"IIH":321,"III":1497,"IIO":656,"IOO":54,"KAK":4845,"KKA":3386,"KKK":3065,"MHH":-405,"MHI":201,"MMH":-241,"MMM":661,"MOM":841};
|
||||||
|
this.TQ1__ = {"BHHH":-227,"BHHI":316,"BHIH":-132,"BIHH":60,"BIII":1595,"BNHH":-744,"BOHH":225,"BOOO":-908,"OAKK":482,"OHHH":281,"OHIH":249,"OIHI":200,"OIIH":-68};
|
||||||
|
this.TQ2__ = {"BIHH":-1401,"BIII":-1033,"BKAK":-543,"BOOO":-5591};
|
||||||
|
this.TQ3__ = {"BHHH":478,"BHHM":-1073,"BHIH":222,"BHII":-504,"BIIH":-116,"BIII":-105,"BMHI":-863,"BMHM":-464,"BOMH":620,"OHHH":346,"OHHI":1729,"OHII":997,"OHMH":481,"OIHH":623,"OIIH":1344,"OKAK":2792,"OKHH":587,"OKKA":679,"OOHH":110,"OOII":-685};
|
||||||
|
this.TQ4__ = {"BHHH":-721,"BHHM":-3604,"BHII":-966,"BIIH":-607,"BIII":-2181,"OAAA":-2763,"OAKK":180,"OHHH":-294,"OHHI":2446,"OHHO":480,"OHIH":-1573,"OIHH":1935,"OIHI":-493,"OIIH":626,"OIII":-4007,"OKAK":-8156};
|
||||||
|
this.TW1__ = {"につい":-4681,"東京都":2026};
|
||||||
|
this.TW2__ = {"ある程":-2049,"いった":-1256,"ころが":-2434,"しょう":3873,"その後":-4430,"だって":-1049,"ていた":1833,"として":-4657,"ともに":-4517,"もので":1882,"一気に":-792,"初めて":-1512,"同時に":-8097,"大きな":-1255,"対して":-2721,"社会党":-3216};
|
||||||
|
this.TW3__ = {"いただ":-1734,"してい":1314,"として":-4314,"につい":-5483,"にとっ":-5989,"に当た":-6247,"ので,":-727,"ので、":-727,"のもの":-600,"れから":-3752,"十二月":-2287};
|
||||||
|
this.TW4__ = {"いう.":8576,"いう。":8576,"からな":-2348,"してい":2958,"たが,":1516,"たが、":1516,"ている":1538,"という":1349,"ました":5543,"ません":1097,"ようと":-4258,"よると":5865};
|
||||||
|
this.UC1__ = {"A":484,"K":93,"M":645,"O":-505};
|
||||||
|
this.UC2__ = {"A":819,"H":1059,"I":409,"M":3987,"N":5775,"O":646};
|
||||||
|
this.UC3__ = {"A":-1370,"I":2311};
|
||||||
|
this.UC4__ = {"A":-2643,"H":1809,"I":-1032,"K":-3450,"M":3565,"N":3876,"O":6646};
|
||||||
|
this.UC5__ = {"H":313,"I":-1238,"K":-799,"M":539,"O":-831};
|
||||||
|
this.UC6__ = {"H":-506,"I":-253,"K":87,"M":247,"O":-387};
|
||||||
|
this.UP1__ = {"O":-214};
|
||||||
|
this.UP2__ = {"B":69,"O":935};
|
||||||
|
this.UP3__ = {"B":189};
|
||||||
|
this.UQ1__ = {"BH":21,"BI":-12,"BK":-99,"BN":142,"BO":-56,"OH":-95,"OI":477,"OK":410,"OO":-2422};
|
||||||
|
this.UQ2__ = {"BH":216,"BI":113,"OK":1759};
|
||||||
|
this.UQ3__ = {"BA":-479,"BH":42,"BI":1913,"BK":-7198,"BM":3160,"BN":6427,"BO":14761,"OI":-827,"ON":-3212};
|
||||||
|
this.UW1__ = {",":156,"、":156,"「":-463,"あ":-941,"う":-127,"が":-553,"き":121,"こ":505,"で":-201,"と":-547,"ど":-123,"に":-789,"の":-185,"は":-847,"も":-466,"や":-470,"よ":182,"ら":-292,"り":208,"れ":169,"を":-446,"ん":-137,"・":-135,"主":-402,"京":-268,"区":-912,"午":871,"国":-460,"大":561,"委":729,"市":-411,"日":-141,"理":361,"生":-408,"県":-386,"都":-718,"「":-463,"・":-135};
|
||||||
|
this.UW2__ = {",":-829,"、":-829,"〇":892,"「":-645,"」":3145,"あ":-538,"い":505,"う":134,"お":-502,"か":1454,"が":-856,"く":-412,"こ":1141,"さ":878,"ざ":540,"し":1529,"す":-675,"せ":300,"そ":-1011,"た":188,"だ":1837,"つ":-949,"て":-291,"で":-268,"と":-981,"ど":1273,"な":1063,"に":-1764,"の":130,"は":-409,"ひ":-1273,"べ":1261,"ま":600,"も":-1263,"や":-402,"よ":1639,"り":-579,"る":-694,"れ":571,"を":-2516,"ん":2095,"ア":-587,"カ":306,"キ":568,"ッ":831,"三":-758,"不":-2150,"世":-302,"中":-968,"主":-861,"事":492,"人":-123,"会":978,"保":362,"入":548,"初":-3025,"副":-1566,"北":-3414,"区":-422,"大":-1769,"天":-865,"太":-483,"子":-1519,"学":760,"実":1023,"小":-2009,"市":-813,"年":-1060,"強":1067,"手":-1519,"揺":-1033,"政":1522,"文":-1355,"新":-1682,"日":-1815,"明":-1462,"最":-630,"朝":-1843,"本":-1650,"東":-931,"果":-665,"次":-2378,"民":-180,"気":-1740,"理":752,"発":529,"目":-1584,"相":-242,"県":-1165,"立":-763,"第":810,"米":509,"自":-1353,"行":838,"西":-744,"見":-3874,"調":1010,"議":1198,"込":3041,"開":1758,"間":-1257,"「":-645,"」":3145,"ッ":831,"ア":-587,"カ":306,"キ":568};
|
||||||
|
this.UW3__ = {",":4889,"1":-800,"−":-1723,"、":4889,"々":-2311,"〇":5827,"」":2670,"〓":-3573,"あ":-2696,"い":1006,"う":2342,"え":1983,"お":-4864,"か":-1163,"が":3271,"く":1004,"け":388,"げ":401,"こ":-3552,"ご":-3116,"さ":-1058,"し":-395,"す":584,"せ":3685,"そ":-5228,"た":842,"ち":-521,"っ":-1444,"つ":-1081,"て":6167,"で":2318,"と":1691,"ど":-899,"な":-2788,"に":2745,"の":4056,"は":4555,"ひ":-2171,"ふ":-1798,"へ":1199,"ほ":-5516,"ま":-4384,"み":-120,"め":1205,"も":2323,"や":-788,"よ":-202,"ら":727,"り":649,"る":5905,"れ":2773,"わ":-1207,"を":6620,"ん":-518,"ア":551,"グ":1319,"ス":874,"ッ":-1350,"ト":521,"ム":1109,"ル":1591,"ロ":2201,"ン":278,"・":-3794,"一":-1619,"下":-1759,"世":-2087,"両":3815,"中":653,"主":-758,"予":-1193,"二":974,"人":2742,"今":792,"他":1889,"以":-1368,"低":811,"何":4265,"作":-361,"保":-2439,"元":4858,"党":3593,"全":1574,"公":-3030,"六":755,"共":-1880,"円":5807,"再":3095,"分":457,"初":2475,"別":1129,"前":2286,"副":4437,"力":365,"動":-949,"務":-1872,"化":1327,"北":-1038,"区":4646,"千":-2309,"午":-783,"協":-1006,"口":483,"右":1233,"各":3588,"合":-241,"同":3906,"和":-837,"員":4513,"国":642,"型":1389,"場":1219,"外":-241,"妻":2016,"学":-1356,"安":-423,"実":-1008,"家":1078,"小":-513,"少":-3102,"州":1155,"市":3197,"平":-1804,"年":2416,"広":-1030,"府":1605,"度":1452,"建":-2352,"当":-3885,"得":1905,"思":-1291,"性":1822,"戸":-488,"指":-3973,"政":-2013,"教":-1479,"数":3222,"文":-1489,"新":1764,"日":2099,"旧":5792,"昨":-661,"時":-1248,"曜":-951,"最":-937,"月":4125,"期":360,"李":3094,"村":364,"東":-805,"核":5156,"森":2438,"業":484,"氏":2613,"民":-1694,"決":-1073,"法":1868,"海":-495,"無":979,"物":461,"特":-3850,"生":-273,"用":914,"町":1215,"的":7313,"直":-1835,"省":792,"県":6293,"知":-1528,"私":4231,"税":401,"立":-960,"第":1201,"米":7767,"系":3066,"約":3663,"級":1384,"統":-4229,"総":1163,"線":1255,"者":6457,"能":725,"自":-2869,"英":785,"見":1044,"調":-562,"財":-733,"費":1777,"車":1835,"軍":1375,"込":-1504,"通":-1136,"選":-681,"郎":1026,"郡":4404,"部":1200,"金":2163,"長":421,"開":-1432,"間":1302,"関":-1282,"雨":2009,"電":-1045,"非":2066,"駅":1620,"1":-800,"」":2670,"・":-3794,"ッ":-1350,"ア":551,"グ":1319,"ス":874,"ト":521,"ム":1109,"ル":1591,"ロ":2201,"ン":278};
|
||||||
|
this.UW4__ = {",":3930,".":3508,"―":-4841,"、":3930,"。":3508,"〇":4999,"「":1895,"」":3798,"〓":-5156,"あ":4752,"い":-3435,"う":-640,"え":-2514,"お":2405,"か":530,"が":6006,"き":-4482,"ぎ":-3821,"く":-3788,"け":-4376,"げ":-4734,"こ":2255,"ご":1979,"さ":2864,"し":-843,"じ":-2506,"す":-731,"ず":1251,"せ":181,"そ":4091,"た":5034,"だ":5408,"ち":-3654,"っ":-5882,"つ":-1659,"て":3994,"で":7410,"と":4547,"な":5433,"に":6499,"ぬ":1853,"ね":1413,"の":7396,"は":8578,"ば":1940,"ひ":4249,"び":-4134,"ふ":1345,"へ":6665,"べ":-744,"ほ":1464,"ま":1051,"み":-2082,"む":-882,"め":-5046,"も":4169,"ゃ":-2666,"や":2795,"ょ":-1544,"よ":3351,"ら":-2922,"り":-9726,"る":-14896,"れ":-2613,"ろ":-4570,"わ":-1783,"を":13150,"ん":-2352,"カ":2145,"コ":1789,"セ":1287,"ッ":-724,"ト":-403,"メ":-1635,"ラ":-881,"リ":-541,"ル":-856,"ン":-3637,"・":-4371,"ー":-11870,"一":-2069,"中":2210,"予":782,"事":-190,"井":-1768,"人":1036,"以":544,"会":950,"体":-1286,"作":530,"側":4292,"先":601,"党":-2006,"共":-1212,"内":584,"円":788,"初":1347,"前":1623,"副":3879,"力":-302,"動":-740,"務":-2715,"化":776,"区":4517,"協":1013,"参":1555,"合":-1834,"和":-681,"員":-910,"器":-851,"回":1500,"国":-619,"園":-1200,"地":866,"場":-1410,"塁":-2094,"士":-1413,"多":1067,"大":571,"子":-4802,"学":-1397,"定":-1057,"寺":-809,"小":1910,"屋":-1328,"山":-1500,"島":-2056,"川":-2667,"市":2771,"年":374,"庁":-4556,"後":456,"性":553,"感":916,"所":-1566,"支":856,"改":787,"政":2182,"教":704,"文":522,"方":-856,"日":1798,"時":1829,"最":845,"月":-9066,"木":-485,"来":-442,"校":-360,"業":-1043,"氏":5388,"民":-2716,"気":-910,"沢":-939,"済":-543,"物":-735,"率":672,"球":-1267,"生":-1286,"産":-1101,"田":-2900,"町":1826,"的":2586,"目":922,"省":-3485,"県":2997,"空":-867,"立":-2112,"第":788,"米":2937,"系":786,"約":2171,"経":1146,"統":-1169,"総":940,"線":-994,"署":749,"者":2145,"能":-730,"般":-852,"行":-792,"規":792,"警":-1184,"議":-244,"谷":-1000,"賞":730,"車":-1481,"軍":1158,"輪":-1433,"込":-3370,"近":929,"道":-1291,"選":2596,"郎":-4866,"都":1192,"野":-1100,"銀":-2213,"長":357,"間":-2344,"院":-2297,"際":-2604,"電":-878,"領":-1659,"題":-792,"館":-1984,"首":1749,"高":2120,"「":1895,"」":3798,"・":-4371,"ッ":-724,"ー":-11870,"カ":2145,"コ":1789,"セ":1287,"ト":-403,"メ":-1635,"ラ":-881,"リ":-541,"ル":-856,"ン":-3637};
|
||||||
|
this.UW5__ = {",":465,".":-299,"1":-514,"E2":-32768,"]":-2762,"、":465,"。":-299,"「":363,"あ":1655,"い":331,"う":-503,"え":1199,"お":527,"か":647,"が":-421,"き":1624,"ぎ":1971,"く":312,"げ":-983,"さ":-1537,"し":-1371,"す":-852,"だ":-1186,"ち":1093,"っ":52,"つ":921,"て":-18,"で":-850,"と":-127,"ど":1682,"な":-787,"に":-1224,"の":-635,"は":-578,"べ":1001,"み":502,"め":865,"ゃ":3350,"ょ":854,"り":-208,"る":429,"れ":504,"わ":419,"を":-1264,"ん":327,"イ":241,"ル":451,"ン":-343,"中":-871,"京":722,"会":-1153,"党":-654,"務":3519,"区":-901,"告":848,"員":2104,"大":-1296,"学":-548,"定":1785,"嵐":-1304,"市":-2991,"席":921,"年":1763,"思":872,"所":-814,"挙":1618,"新":-1682,"日":218,"月":-4353,"査":932,"格":1356,"機":-1508,"氏":-1347,"田":240,"町":-3912,"的":-3149,"相":1319,"省":-1052,"県":-4003,"研":-997,"社":-278,"空":-813,"統":1955,"者":-2233,"表":663,"語":-1073,"議":1219,"選":-1018,"郎":-368,"長":786,"間":1191,"題":2368,"館":-689,"1":-514,"E2":-32768,"「":363,"イ":241,"ル":451,"ン":-343};
|
||||||
|
this.UW6__ = {",":227,".":808,"1":-270,"E1":306,"、":227,"。":808,"あ":-307,"う":189,"か":241,"が":-73,"く":-121,"こ":-200,"じ":1782,"す":383,"た":-428,"っ":573,"て":-1014,"で":101,"と":-105,"な":-253,"に":-149,"の":-417,"は":-236,"も":-206,"り":187,"る":-135,"を":195,"ル":-673,"ン":-496,"一":-277,"中":201,"件":-800,"会":624,"前":302,"区":1792,"員":-1212,"委":798,"学":-960,"市":887,"広":-695,"後":535,"業":-697,"相":753,"社":-507,"福":974,"空":-822,"者":1811,"連":463,"郎":1082,"1":-270,"E1":306,"ル":-673,"ン":-496};
|
||||||
|
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
TinySegmenter.prototype.ctype_ = function(str) {
|
||||||
|
for (var i in this.chartype_) {
|
||||||
|
if (str.match(this.chartype_[i][0])) {
|
||||||
|
return this.chartype_[i][1];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return "O";
|
||||||
|
}
|
||||||
|
|
||||||
|
TinySegmenter.prototype.ts_ = function(v) {
|
||||||
|
if (v) { return v; }
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
TinySegmenter.prototype.segment = function(input) {
|
||||||
|
if (input == null || input == undefined || input == "") {
|
||||||
|
return [];
|
||||||
|
}
|
||||||
|
var result = [];
|
||||||
|
var seg = ["B3","B2","B1"];
|
||||||
|
var ctype = ["O","O","O"];
|
||||||
|
var o = input.split("");
|
||||||
|
for (i = 0; i < o.length; ++i) {
|
||||||
|
seg.push(o[i]);
|
||||||
|
ctype.push(this.ctype_(o[i]))
|
||||||
|
}
|
||||||
|
seg.push("E1");
|
||||||
|
seg.push("E2");
|
||||||
|
seg.push("E3");
|
||||||
|
ctype.push("O");
|
||||||
|
ctype.push("O");
|
||||||
|
ctype.push("O");
|
||||||
|
var word = seg[3];
|
||||||
|
var p1 = "U";
|
||||||
|
var p2 = "U";
|
||||||
|
var p3 = "U";
|
||||||
|
for (var i = 4; i < seg.length - 3; ++i) {
|
||||||
|
var score = this.BIAS__;
|
||||||
|
var w1 = seg[i-3];
|
||||||
|
var w2 = seg[i-2];
|
||||||
|
var w3 = seg[i-1];
|
||||||
|
var w4 = seg[i];
|
||||||
|
var w5 = seg[i+1];
|
||||||
|
var w6 = seg[i+2];
|
||||||
|
var c1 = ctype[i-3];
|
||||||
|
var c2 = ctype[i-2];
|
||||||
|
var c3 = ctype[i-1];
|
||||||
|
var c4 = ctype[i];
|
||||||
|
var c5 = ctype[i+1];
|
||||||
|
var c6 = ctype[i+2];
|
||||||
|
score += this.ts_(this.UP1__[p1]);
|
||||||
|
score += this.ts_(this.UP2__[p2]);
|
||||||
|
score += this.ts_(this.UP3__[p3]);
|
||||||
|
score += this.ts_(this.BP1__[p1 + p2]);
|
||||||
|
score += this.ts_(this.BP2__[p2 + p3]);
|
||||||
|
score += this.ts_(this.UW1__[w1]);
|
||||||
|
score += this.ts_(this.UW2__[w2]);
|
||||||
|
score += this.ts_(this.UW3__[w3]);
|
||||||
|
score += this.ts_(this.UW4__[w4]);
|
||||||
|
score += this.ts_(this.UW5__[w5]);
|
||||||
|
score += this.ts_(this.UW6__[w6]);
|
||||||
|
score += this.ts_(this.BW1__[w2 + w3]);
|
||||||
|
score += this.ts_(this.BW2__[w3 + w4]);
|
||||||
|
score += this.ts_(this.BW3__[w4 + w5]);
|
||||||
|
score += this.ts_(this.TW1__[w1 + w2 + w3]);
|
||||||
|
score += this.ts_(this.TW2__[w2 + w3 + w4]);
|
||||||
|
score += this.ts_(this.TW3__[w3 + w4 + w5]);
|
||||||
|
score += this.ts_(this.TW4__[w4 + w5 + w6]);
|
||||||
|
score += this.ts_(this.UC1__[c1]);
|
||||||
|
score += this.ts_(this.UC2__[c2]);
|
||||||
|
score += this.ts_(this.UC3__[c3]);
|
||||||
|
score += this.ts_(this.UC4__[c4]);
|
||||||
|
score += this.ts_(this.UC5__[c5]);
|
||||||
|
score += this.ts_(this.UC6__[c6]);
|
||||||
|
score += this.ts_(this.BC1__[c2 + c3]);
|
||||||
|
score += this.ts_(this.BC2__[c3 + c4]);
|
||||||
|
score += this.ts_(this.BC3__[c4 + c5]);
|
||||||
|
score += this.ts_(this.TC1__[c1 + c2 + c3]);
|
||||||
|
score += this.ts_(this.TC2__[c2 + c3 + c4]);
|
||||||
|
score += this.ts_(this.TC3__[c3 + c4 + c5]);
|
||||||
|
score += this.ts_(this.TC4__[c4 + c5 + c6]);
|
||||||
|
// score += this.ts_(this.TC5__[c4 + c5 + c6]);
|
||||||
|
score += this.ts_(this.UQ1__[p1 + c1]);
|
||||||
|
score += this.ts_(this.UQ2__[p2 + c2]);
|
||||||
|
score += this.ts_(this.UQ3__[p3 + c3]);
|
||||||
|
score += this.ts_(this.BQ1__[p2 + c2 + c3]);
|
||||||
|
score += this.ts_(this.BQ2__[p2 + c3 + c4]);
|
||||||
|
score += this.ts_(this.BQ3__[p3 + c2 + c3]);
|
||||||
|
score += this.ts_(this.BQ4__[p3 + c3 + c4]);
|
||||||
|
score += this.ts_(this.TQ1__[p2 + c1 + c2 + c3]);
|
||||||
|
score += this.ts_(this.TQ2__[p2 + c2 + c3 + c4]);
|
||||||
|
score += this.ts_(this.TQ3__[p3 + c1 + c2 + c3]);
|
||||||
|
score += this.ts_(this.TQ4__[p3 + c2 + c3 + c4]);
|
||||||
|
var p = "O";
|
||||||
|
if (score > 0) {
|
||||||
|
result.push(word);
|
||||||
|
word = "";
|
||||||
|
p = "B";
|
||||||
|
}
|
||||||
|
p1 = p2;
|
||||||
|
p2 = p3;
|
||||||
|
p3 = p;
|
||||||
|
word += seg[i];
|
||||||
|
}
|
||||||
|
result.push(word);
|
||||||
|
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
lunr.TinySegmenter = TinySegmenter;
|
||||||
|
};
|
||||||
|
|
||||||
|
}));
|
||||||
@@ -0,0 +1,381 @@
|
|||||||
|
/*!
|
||||||
|
* Lunr languages, `Arabic` language
|
||||||
|
* https://github.com/MihaiValentin/lunr-languages
|
||||||
|
*
|
||||||
|
* Copyright 2018, Dalia Al-Shahrabi
|
||||||
|
* http://www.mozilla.org/MPL/
|
||||||
|
*/
|
||||||
|
/*!
|
||||||
|
* based on
|
||||||
|
* Kazem Taghva, Rania Elkhoury, and Jeffrey Coombs (2005)
|
||||||
|
* Meryeme Hadni, Abdelmonaime Lachkar, and S. Alaoui Ouatik (2012)
|
||||||
|
*
|
||||||
|
* Snowball JavaScript Library v0.3
|
||||||
|
* http://code.google.com/p/urim/
|
||||||
|
* http://snowball.tartarus.org/
|
||||||
|
*
|
||||||
|
* Copyright 2010, Oleg Mazko
|
||||||
|
* http://www.mozilla.org/MPL/
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* export the module via AMD, CommonJS or as a browser global
|
||||||
|
* Export code from https://github.com/umdjs/umd/blob/master/returnExports.js
|
||||||
|
*/
|
||||||
|
|
||||||
|
(function(root, factory) {
|
||||||
|
if (typeof define === 'function' && define.amd) {
|
||||||
|
// AMD. Register as an anonymous module.
|
||||||
|
define(factory)
|
||||||
|
} else if (typeof exports === 'object') {
|
||||||
|
/**
|
||||||
|
* Node. Does not work with strict CommonJS, but
|
||||||
|
* only CommonJS-like environments that support module.exports,
|
||||||
|
* like Node.
|
||||||
|
*/
|
||||||
|
module.exports = factory()
|
||||||
|
} else {
|
||||||
|
// Browser globals (root is window)
|
||||||
|
factory()(root.lunr);
|
||||||
|
}
|
||||||
|
}(this, function() {
|
||||||
|
/**
|
||||||
|
* Just return a value to define the module export.
|
||||||
|
* This example returns an object, but the module
|
||||||
|
* can return a function as the exported value.
|
||||||
|
*/
|
||||||
|
return function(lunr) {
|
||||||
|
/* throw error if lunr is not yet included */
|
||||||
|
if ('undefined' === typeof lunr) {
|
||||||
|
throw new Error('Lunr is not present. Please include / require Lunr before this script.');
|
||||||
|
}
|
||||||
|
|
||||||
|
/* throw error if lunr stemmer support is not yet included */
|
||||||
|
if ('undefined' === typeof lunr.stemmerSupport) {
|
||||||
|
throw new Error('Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.');
|
||||||
|
}
|
||||||
|
|
||||||
|
/* register specific locale function */
|
||||||
|
lunr.ar = function() {
|
||||||
|
this.pipeline.reset();
|
||||||
|
this.pipeline.add(
|
||||||
|
lunr.ar.trimmer,
|
||||||
|
lunr.ar.stopWordFilter,
|
||||||
|
lunr.ar.stemmer
|
||||||
|
);
|
||||||
|
|
||||||
|
// for lunr version 2
|
||||||
|
// this is necessary so that every searched word is also stemmed before
|
||||||
|
// in lunr <= 1 this is not needed, as it is done using the normal pipeline
|
||||||
|
if (this.searchPipeline) {
|
||||||
|
this.searchPipeline.reset();
|
||||||
|
this.searchPipeline.add(lunr.ar.stemmer)
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
/* lunr trimmer function */
|
||||||
|
lunr.ar.wordCharacters = "\u0621-\u065b\u0671\u0640";
|
||||||
|
lunr.ar.trimmer = lunr.trimmerSupport.generateTrimmer(lunr.ar.wordCharacters);
|
||||||
|
|
||||||
|
lunr.Pipeline.registerFunction(lunr.ar.trimmer, 'trimmer-ar');
|
||||||
|
|
||||||
|
/* lunr stemmer function */
|
||||||
|
lunr.ar.stemmer = (function() {
|
||||||
|
var self = this;
|
||||||
|
var word = '';
|
||||||
|
self.result = false;
|
||||||
|
self.preRemoved = false;
|
||||||
|
self.sufRemoved = false;
|
||||||
|
|
||||||
|
//prefix data
|
||||||
|
self.pre = {
|
||||||
|
pre1: 'ف ك ب و س ل ن ا ي ت',
|
||||||
|
pre2: 'ال لل',
|
||||||
|
pre3: 'بال وال فال تال كال ولل',
|
||||||
|
pre4: 'فبال كبال وبال وكال'
|
||||||
|
};
|
||||||
|
|
||||||
|
//suffix data
|
||||||
|
self.suf = {
|
||||||
|
suf1: 'ه ك ت ن ا ي',
|
||||||
|
suf2: 'نك نه ها وك يا اه ون ين تن تم نا وا ان كم كن ني نن ما هم هن تك ته ات يه',
|
||||||
|
suf3: 'تين كهم نيه نهم ونه وها يهم ونا ونك وني وهم تكم تنا تها تني تهم كما كها ناه نكم هنا تان يها',
|
||||||
|
suf4: 'كموه ناها ونني ونهم تكما تموه تكاه كماه ناكم ناهم نيها وننا'
|
||||||
|
}
|
||||||
|
|
||||||
|
//arabic language patterns and alternative mapping for patterns
|
||||||
|
self.patterns = JSON.parse('{"pt43":[{"pt":[{"c":"ا","l":1}]},{"pt":[{"c":"ا,ت,ن,ي","l":0}],"mPt":[{"c":"ف","l":0,"m":1},{"c":"ع","l":1,"m":2},{"c":"ل","l":2,"m":3}]},{"pt":[{"c":"و","l":2}],"mPt":[{"c":"ف","l":0,"m":0},{"c":"ع","l":1,"m":1},{"c":"ل","l":2,"m":3}]},{"pt":[{"c":"ا","l":2}]},{"pt":[{"c":"ي","l":2}],"mPt":[{"c":"ف","l":0,"m":0},{"c":"ع","l":1,"m":1},{"c":"ا","l":2},{"c":"ل","l":3,"m":3}]},{"pt":[{"c":"م","l":0}]}],"pt53":[{"pt":[{"c":"ت","l":0},{"c":"ا","l":2}]},{"pt":[{"c":"ا,ن,ت,ي","l":0},{"c":"ت","l":2}],"mPt":[{"c":"ا","l":0},{"c":"ف","l":1,"m":1},{"c":"ت","l":2},{"c":"ع","l":3,"m":3},{"c":"ا","l":4},{"c":"ل","l":5,"m":4}]},{"pt":[{"c":"ا","l":0},{"c":"ا","l":2}],"mPt":[{"c":"ا","l":0},{"c":"ف","l":1,"m":1},{"c":"ع","l":2,"m":3},{"c":"ل","l":3,"m":4},{"c":"ا","l":4},{"c":"ل","l":5,"m":4}]},{"pt":[{"c":"ا","l":0},{"c":"ا","l":3}],"mPt":[{"c":"ف","l":0,"m":1},{"c":"ع","l":1,"m":2},{"c":"ل","l":2,"m":4}]},{"pt":[{"c":"ا","l":3},{"c":"ن","l":4}]},{"pt":[{"c":"ت","l":0},{"c":"ي","l":3}]},{"pt":[{"c":"م","l":0},{"c":"و","l":3}]},{"pt":[{"c":"ا","l":1},{"c":"و","l":3}]},{"pt":[{"c":"و","l":1},{"c":"ا","l":2}]},{"pt":[{"c":"م","l":0},{"c":"ا","l":3}]},{"pt":[{"c":"م","l":0},{"c":"ي","l":3}]},{"pt":[{"c":"ا","l":2},{"c":"ن","l":3}]},{"pt":[{"c":"م","l":0},{"c":"ن","l":1}],"mPt":[{"c":"ا","l":0},{"c":"ن","l":1},{"c":"ف","l":2,"m":2},{"c":"ع","l":3,"m":3},{"c":"ا","l":4},{"c":"ل","l":5,"m":4}]},{"pt":[{"c":"م","l":0},{"c":"ت","l":2}],"mPt":[{"c":"ا","l":0},{"c":"ف","l":1,"m":1},{"c":"ت","l":2},{"c":"ع","l":3,"m":3},{"c":"ا","l":4},{"c":"ل","l":5,"m":4}]},{"pt":[{"c":"م","l":0},{"c":"ا","l":2}]},{"pt":[{"c":"م","l":1},{"c":"ا","l":3}]},{"pt":[{"c":"ي,ت,ا,ن","l":0},{"c":"ت","l":1}],"mPt":[{"c":"ف","l":0,"m":2},{"c":"ع","l":1,"m":3},{"c":"ا","l":2},{"c":"ل","l":3,"m":4}]},{"pt":[{"c":"ت,ي,ا,ن","l":0},{"c":"ت","l":2}],"mPt":[{"c":"ا","l":0},{"c":"ف","l":1,"m":1},{"c":"ت","l":2},{"c":"ع","l":3,"m":3},{"c":"ا","l":4},{"c":"ل","l":5,"m":4}]},{"pt":[{"c":"ا","l":2},{"c":"ي","l":3}]},{"pt":[{"c":"ا,ي,ت,ن","l":0},{"c":"ن","l":1}],"mPt":[{"c":"ا","l":0},{"c":"ن","l":1},{"c":"ف","l":2,"m":2},{"c":"ع","l":3,"m":3},{"c":"ا","l":4},{"c":"ل","l":5,"m":4}]},{"pt":[{"c":"ا","l":3},{"c":"ء","l":4}]}],"pt63":[{"pt":[{"c":"ا","l":0},{"c":"ت","l":2},{"c":"ا","l":4}]},{"pt":[{"c":"ا,ت,ن,ي","l":0},{"c":"س","l":1},{"c":"ت","l":2}],"mPt":[{"c":"ا","l":0},{"c":"س","l":1},{"c":"ت","l":2},{"c":"ف","l":3,"m":3},{"c":"ع","l":4,"m":4},{"c":"ا","l":5},{"c":"ل","l":6,"m":5}]},{"pt":[{"c":"ا,ن,ت,ي","l":0},{"c":"و","l":3}]},{"pt":[{"c":"م","l":0},{"c":"س","l":1},{"c":"ت","l":2}],"mPt":[{"c":"ا","l":0},{"c":"س","l":1},{"c":"ت","l":2},{"c":"ف","l":3,"m":3},{"c":"ع","l":4,"m":4},{"c":"ا","l":5},{"c":"ل","l":6,"m":5}]},{"pt":[{"c":"ي","l":1},{"c":"ي","l":3},{"c":"ا","l":4},{"c":"ء","l":5}]},{"pt":[{"c":"ا","l":0},{"c":"ن","l":1},{"c":"ا","l":4}]}],"pt54":[{"pt":[{"c":"ت","l":0}]},{"pt":[{"c":"ا,ي,ت,ن","l":0}],"mPt":[{"c":"ا","l":0},{"c":"ف","l":1,"m":1},{"c":"ع","l":2,"m":2},{"c":"ل","l":3,"m":3},{"c":"ر","l":4,"m":4},{"c":"ا","l":5},{"c":"ر","l":6,"m":4}]},{"pt":[{"c":"م","l":0}],"mPt":[{"c":"ا","l":0},{"c":"ف","l":1,"m":1},{"c":"ع","l":2,"m":2},{"c":"ل","l":3,"m":3},{"c":"ر","l":4,"m":4},{"c":"ا","l":5},{"c":"ر","l":6,"m":4}]},{"pt":[{"c":"ا","l":2}]},{"pt":[{"c":"ا","l":0},{"c":"ن","l":2}]}],"pt64":[{"pt":[{"c":"ا","l":0},{"c":"ا","l":4}]},{"pt":[{"c":"م","l":0},{"c":"ت","l":1}]}],"pt73":[{"pt":[{"c":"ا","l":0},{"c":"س","l":1},{"c":"ت","l":2},{"c":"ا","l":5}]}],"pt75":[{"pt":[{"c":"ا","l":0},{"c":"ا","l":5}]}]}');
|
||||||
|
|
||||||
|
self.execArray = [
|
||||||
|
'cleanWord',
|
||||||
|
'removeDiacritics',
|
||||||
|
'cleanAlef',
|
||||||
|
'removeStopWords',
|
||||||
|
'normalizeHamzaAndAlef',
|
||||||
|
'removeStartWaw',
|
||||||
|
'removePre432',
|
||||||
|
'removeEndTaa',
|
||||||
|
'wordCheck'
|
||||||
|
];
|
||||||
|
|
||||||
|
self.stem = function() {
|
||||||
|
var counter = 0;
|
||||||
|
self.result = false;
|
||||||
|
self.preRemoved = false;
|
||||||
|
self.sufRemoved = false;
|
||||||
|
while (counter < self.execArray.length && self.result != true) {
|
||||||
|
self.result = self[self.execArray[counter]]();
|
||||||
|
counter++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
self.setCurrent = function(word) {
|
||||||
|
self.word = word;
|
||||||
|
}
|
||||||
|
|
||||||
|
self.getCurrent = function() {
|
||||||
|
return self.word
|
||||||
|
}
|
||||||
|
|
||||||
|
/*remove elongating character and test that the word does not contain non-arabic characters.
|
||||||
|
If the word contains special characters, don't stem. */
|
||||||
|
self.cleanWord = function() {
|
||||||
|
var wordCharacters = "\u0621-\u065b\u0671\u0640";
|
||||||
|
var testRegex = new RegExp("[^" + wordCharacters + "]");
|
||||||
|
self.word = self.word
|
||||||
|
.replace('\u0640', '');
|
||||||
|
if (testRegex.test(word)) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
self.removeDiacritics = function() {
|
||||||
|
var diacriticsRegex = new RegExp("[\u064b-\u065b]");
|
||||||
|
self.word = self.word.replace(/[\u064b-\u065b]/gi, '');
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*Replace all variations of alef (آأإٱى) to a plain alef (ا)*/
|
||||||
|
self.cleanAlef = function() {
|
||||||
|
var alefRegex = new RegExp("[\u0622\u0623\u0625\u0671\u0649]");
|
||||||
|
self.word = self.word.replace(alefRegex, "\u0627");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* if the word is a stop word, don't stem*/
|
||||||
|
self.removeStopWords = function() {
|
||||||
|
var stopWords = '، اض امين اه اها اي ا اب اجل اجمع اخ اخذ اصبح اضحى اقبل اقل اكثر الا ام اما امامك امامك امسى اما ان انا انت انتم انتما انتن انت انشا انى او اوشك اولئك اولئكم اولاء اولالك اوه اي ايا اين اينما اي ان اي اف اذ اذا اذا اذما اذن الى اليكم اليكما اليكن اليك اليك الا اما ان انما اي اياك اياكم اياكما اياكن ايانا اياه اياها اياهم اياهما اياهن اياي ايه ان ا ابتدا اثر اجل احد اخرى اخلولق اذا اربعة ارتد استحال اطار اعادة اعلنت اف اكثر اكد الالاء الالى الا الاخيرة الان الاول الاولى التى التي الثاني الثانية الذاتي الذى الذي الذين السابق الف اللائي اللاتي اللتان اللتيا اللتين اللذان اللذين اللواتي الماضي المقبل الوقت الى اليوم اما امام امس ان انبرى انقلب انه انها او اول اي ايار ايام ايضا ب بات باسم بان بخ برس بسبب بس بشكل بضع بطان بعد بعض بك بكم بكما بكن بل بلى بما بماذا بمن بن بنا به بها بي بيد بين بس بله بئس تان تانك تبدل تجاه تحول تلقاء تلك تلكم تلكما تم تينك تين ته تي ثلاثة ثم ثم ثمة ثم جعل جلل جميع جير حار حاشا حاليا حاي حتى حرى حسب حم حوالى حول حيث حيثما حين حي حبذا حتى حذار خلا خلال دون دونك ذا ذات ذاك ذانك ذان ذلك ذلكم ذلكما ذلكن ذو ذوا ذواتا ذواتي ذيت ذينك ذين ذه ذي راح رجع رويدك ريث رب زيارة سبحان سرعان سنة سنوات سوف سوى ساء ساءما شبه شخصا شرع شتان صار صباح صفر صه صه ضد ضمن طاق طالما طفق طق ظل عاد عام عاما عامة عدا عدة عدد عدم عسى عشر عشرة علق على عليك عليه عليها عل عن عند عندما عوض عين عدس عما غدا غير ف فان فلان فو فى في فيم فيما فيه فيها قال قام قبل قد قط قلما قوة كانما كاين كاي كاين كاد كان كانت كذا كذلك كرب كل كلا كلاهما كلتا كلم كليكما كليهما كلما كلا كم كما كي كيت كيف كيفما كان كخ لئن لا لات لاسيما لدن لدى لعمر لقاء لك لكم لكما لكن لكنما لكي لكيلا للامم لم لما لما لن لنا له لها لو لوكالة لولا لوما لي لست لست لستم لستما لستن لست لسن لعل لكن ليت ليس ليسا ليستا ليست ليسوا لسنا ما ماانفك مابرح مادام ماذا مازال مافتئ مايو متى مثل مذ مساء مع معاذ مقابل مكانكم مكانكما مكانكن مكانك مليار مليون مما ممن من منذ منها مه مهما من من نحن نحو نعم نفس نفسه نهاية نخ نعما نعم ها هاؤم هاك هاهنا هب هذا هذه هكذا هل هلم هلا هم هما هن هنا هناك هنالك هو هي هيا هيت هيا هؤلاء هاتان هاتين هاته هاتي هج هذا هذان هذين هذه هذي هيهات و وا واحد واضاف واضافت واكد وان واها واوضح وراءك وفي وقال وقالت وقد وقف وكان وكانت ولا ولم ومن وهو وهي ويكان وي وشكان يكون يمكن يوم ايان'.split(' ');
|
||||||
|
if (stopWords.indexOf(self.word) >= 0) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* changes ؤ ئ to ء and removes alef if at the end of the word*/
|
||||||
|
self.normalizeHamzaAndAlef = function() {
|
||||||
|
self.word = self.word.replace('\u0624', '\u0621');
|
||||||
|
self.word = self.word.replace('\u0626', '\u0621');
|
||||||
|
self.word = self.word.replace(/([\u0627])\1+/gi, '\u0627');
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*remove end taa marboota ة*/
|
||||||
|
self.removeEndTaa = function() {
|
||||||
|
if (self.word.length > 2) {
|
||||||
|
self.word = self.word.replace(/[\u0627]$/, '');
|
||||||
|
self.word = self.word.replace('\u0629', '');
|
||||||
|
return false;
|
||||||
|
} else return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* if the word starts with double waw وو keep only one of them */
|
||||||
|
self.removeStartWaw = function() {
|
||||||
|
if (self.word.length > 3 && self.word[0] == '\u0648' && self.word[1] == '\u0648') {
|
||||||
|
self.word = self.word.slice(1);
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* remove prefixes of size 4, 3 and 2 characters */
|
||||||
|
self.removePre432 = function() {
|
||||||
|
var word = self.word;
|
||||||
|
if (self.word.length >= 7) {
|
||||||
|
var pre4Regex = new RegExp('^(' + self.pre.pre4.split(' ').join('|') + ')')
|
||||||
|
self.word = self.word.replace(pre4Regex, '');
|
||||||
|
}
|
||||||
|
if (self.word == word && self.word.length >= 6) {
|
||||||
|
var pre3Regex = new RegExp('^(' + self.pre.pre3.split(' ').join('|') + ')')
|
||||||
|
self.word = self.word.replace(pre3Regex, '');
|
||||||
|
}
|
||||||
|
if (self.word == word && self.word.length >= 5) {
|
||||||
|
var pre2Regex = new RegExp('^(' + self.pre.pre2.split(' ').join('|') + ')')
|
||||||
|
self.word = self.word.replace(pre2Regex, '');
|
||||||
|
}
|
||||||
|
if (word != self.word) self.preRemoved = true;
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* check the word against word patterns. If the word matches a pattern, map it to the
|
||||||
|
alternative pattern if available then stop stemming. */
|
||||||
|
self.patternCheck = function(pattern) {
|
||||||
|
var patternMatch = false;
|
||||||
|
for (var i = 0; i < pattern.length; i++) {
|
||||||
|
var currentPatternCheck = true;
|
||||||
|
for (var j = 0; j < pattern[i].pt.length; j++) {
|
||||||
|
var chars = pattern[i].pt[j].c.split(',');
|
||||||
|
var charMatch = false;
|
||||||
|
chars.forEach(function(el) {
|
||||||
|
if (self.word[pattern[i].pt[j].l] == el) {
|
||||||
|
charMatch = true;
|
||||||
|
}
|
||||||
|
})
|
||||||
|
if (!charMatch) {
|
||||||
|
currentPatternCheck = false;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (currentPatternCheck == true) {
|
||||||
|
if (pattern[i].mPt) {
|
||||||
|
var newWord = [];
|
||||||
|
for (var k = 0; k < pattern[i].mPt.length; k++) {
|
||||||
|
if (pattern[i].mPt[k].m != null) {
|
||||||
|
newWord[pattern[i].mPt[k].l] = self.word[pattern[i].mPt[k].m]
|
||||||
|
} else {
|
||||||
|
newWord[pattern[i].mPt[k].l] = pattern[i].mPt[k].c
|
||||||
|
}
|
||||||
|
}
|
||||||
|
self.word = newWord.join('');
|
||||||
|
}
|
||||||
|
self.result = true;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* remove prefixes of size 1 char*/
|
||||||
|
self.removePre1 = function() {
|
||||||
|
var word = self.word;
|
||||||
|
if (self.preRemoved == false)
|
||||||
|
if (self.word.length > 3) {
|
||||||
|
var pre1Regex = new RegExp('^(' + self.pre.pre1.split(' ').join('|') + ')')
|
||||||
|
self.word = self.word.replace(pre1Regex, '');
|
||||||
|
}
|
||||||
|
if (word != self.word) self.preRemoved = true;
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*remove suffixes of size 1 char */
|
||||||
|
self.removeSuf1 = function() {
|
||||||
|
var word = self.word;
|
||||||
|
if (self.sufRemoved == false)
|
||||||
|
if (self.word.length > 3) {
|
||||||
|
var suf1Regex = new RegExp('(' + self.suf.suf1.split(' ').join('|') + ')$')
|
||||||
|
self.word = self.word.replace(suf1Regex, '');
|
||||||
|
}
|
||||||
|
if (word != self.word) self.sufRemoved = true;
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*remove suffixes of size 4, 3 and 2 chars*/
|
||||||
|
self.removeSuf432 = function() {
|
||||||
|
var word = self.word;
|
||||||
|
if (self.word.length >= 6) {
|
||||||
|
var suf4Regex = new RegExp('(' + self.suf.suf4.split(' ').join('|') + ')$')
|
||||||
|
self.word = self.word.replace(suf4Regex, '');
|
||||||
|
}
|
||||||
|
if (self.word == word && self.word.length >= 5) {
|
||||||
|
var suf3Regex = new RegExp('(' + self.suf.suf3.split(' ').join('|') + ')$')
|
||||||
|
self.word = self.word.replace(suf3Regex, '');
|
||||||
|
}
|
||||||
|
if (self.word == word && self.word.length >= 4) {
|
||||||
|
var suf2Regex = new RegExp('(' + self.suf.suf2.split(' ').join('|') + ')$')
|
||||||
|
self.word = self.word.replace(suf2Regex, '');
|
||||||
|
}
|
||||||
|
if (word != self.word) self.sufRemoved = true;
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*check the word length and decide what is the next step accordingly*/
|
||||||
|
self.wordCheck = function() {
|
||||||
|
var word = self.word;
|
||||||
|
var word7Exec = [self.removeSuf432, self.removeSuf1, self.removePre1]
|
||||||
|
var counter = 0;
|
||||||
|
var patternChecked = false;
|
||||||
|
while (self.word.length >= 7 && !self.result && counter < word7Exec.length) {
|
||||||
|
if (self.word.length == 7 && !patternChecked) {
|
||||||
|
self.checkPattern73();
|
||||||
|
patternChecked = true;
|
||||||
|
} else {
|
||||||
|
word7Exec[counter]();
|
||||||
|
counter++;
|
||||||
|
patternChecked = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
var word6Exec = [self.checkPattern63, self.removeSuf432, self.removeSuf1, self.removePre1, self.checkPattern64];
|
||||||
|
counter = 0;
|
||||||
|
while (self.word.length == 6 && !self.result && counter < word6Exec.length) {
|
||||||
|
word6Exec[counter]();
|
||||||
|
counter++;
|
||||||
|
}
|
||||||
|
|
||||||
|
var word5Exec = [self.checkPattern53, self.removeSuf432, self.removeSuf1, self.removePre1, self.checkPattern54];
|
||||||
|
counter = 0;
|
||||||
|
while (self.word.length == 5 && !self.result && counter < word5Exec.length) {
|
||||||
|
word5Exec[counter]();
|
||||||
|
counter++;
|
||||||
|
}
|
||||||
|
|
||||||
|
var word4Exec = [self.checkPattern43, self.removeSuf1, self.removePre1, self.removeSuf432];
|
||||||
|
counter = 0;
|
||||||
|
while (self.word.length == 4 && !self.result && counter < word4Exec.length) {
|
||||||
|
word4Exec[counter]();
|
||||||
|
counter++;
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
self.checkPattern43 = function() {
|
||||||
|
self.patternCheck(self.patterns.pt43)
|
||||||
|
}
|
||||||
|
self.checkPattern53 = function() {
|
||||||
|
self.patternCheck(self.patterns.pt53)
|
||||||
|
}
|
||||||
|
self.checkPattern54 = function() {
|
||||||
|
self.patternCheck(self.patterns.pt54)
|
||||||
|
}
|
||||||
|
self.checkPattern63 = function() {
|
||||||
|
self.patternCheck(self.patterns.pt63)
|
||||||
|
}
|
||||||
|
self.checkPattern64 = function() {
|
||||||
|
self.patternCheck(self.patterns.pt64)
|
||||||
|
}
|
||||||
|
self.checkPattern73 = function() {
|
||||||
|
self.patternCheck(self.patterns.pt73)
|
||||||
|
}
|
||||||
|
|
||||||
|
/* and return a function that stems a word for the current locale */
|
||||||
|
return function(token) {
|
||||||
|
// for lunr version 2
|
||||||
|
if (typeof token.update === "function") {
|
||||||
|
return token.update(function(word) {
|
||||||
|
self.setCurrent(word);
|
||||||
|
self.stem();
|
||||||
|
return self.getCurrent();
|
||||||
|
})
|
||||||
|
} else { // for lunr version <= 1
|
||||||
|
self.setCurrent(token);
|
||||||
|
self.stem();
|
||||||
|
return self.getCurrent();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
})();
|
||||||
|
|
||||||
|
lunr.Pipeline.registerFunction(lunr.ar.stemmer, 'stemmer-ar');
|
||||||
|
|
||||||
|
lunr.ar.stopWordFilter = lunr.generateStopWordFilter('، اض امين اه اها اي ا اب اجل اجمع اخ اخذ اصبح اضحى اقبل اقل اكثر الا ام اما امامك امامك امسى اما ان انا انت انتم انتما انتن انت انشا انى او اوشك اولئك اولئكم اولاء اولالك اوه اي ايا اين اينما اي ان اي اف اذ اذا اذا اذما اذن الى اليكم اليكما اليكن اليك اليك الا اما ان انما اي اياك اياكم اياكما اياكن ايانا اياه اياها اياهم اياهما اياهن اياي ايه ان ا ابتدا اثر اجل احد اخرى اخلولق اذا اربعة ارتد استحال اطار اعادة اعلنت اف اكثر اكد الالاء الالى الا الاخيرة الان الاول الاولى التى التي الثاني الثانية الذاتي الذى الذي الذين السابق الف اللائي اللاتي اللتان اللتيا اللتين اللذان اللذين اللواتي الماضي المقبل الوقت الى اليوم اما امام امس ان انبرى انقلب انه انها او اول اي ايار ايام ايضا ب بات باسم بان بخ برس بسبب بس بشكل بضع بطان بعد بعض بك بكم بكما بكن بل بلى بما بماذا بمن بن بنا به بها بي بيد بين بس بله بئس تان تانك تبدل تجاه تحول تلقاء تلك تلكم تلكما تم تينك تين ته تي ثلاثة ثم ثم ثمة ثم جعل جلل جميع جير حار حاشا حاليا حاي حتى حرى حسب حم حوالى حول حيث حيثما حين حي حبذا حتى حذار خلا خلال دون دونك ذا ذات ذاك ذانك ذان ذلك ذلكم ذلكما ذلكن ذو ذوا ذواتا ذواتي ذيت ذينك ذين ذه ذي راح رجع رويدك ريث رب زيارة سبحان سرعان سنة سنوات سوف سوى ساء ساءما شبه شخصا شرع شتان صار صباح صفر صه صه ضد ضمن طاق طالما طفق طق ظل عاد عام عاما عامة عدا عدة عدد عدم عسى عشر عشرة علق على عليك عليه عليها عل عن عند عندما عوض عين عدس عما غدا غير ف فان فلان فو فى في فيم فيما فيه فيها قال قام قبل قد قط قلما قوة كانما كاين كاي كاين كاد كان كانت كذا كذلك كرب كل كلا كلاهما كلتا كلم كليكما كليهما كلما كلا كم كما كي كيت كيف كيفما كان كخ لئن لا لات لاسيما لدن لدى لعمر لقاء لك لكم لكما لكن لكنما لكي لكيلا للامم لم لما لما لن لنا له لها لو لوكالة لولا لوما لي لست لست لستم لستما لستن لست لسن لعل لكن ليت ليس ليسا ليستا ليست ليسوا لسنا ما ماانفك مابرح مادام ماذا مازال مافتئ مايو متى مثل مذ مساء مع معاذ مقابل مكانكم مكانكما مكانكن مكانك مليار مليون مما ممن من منذ منها مه مهما من من نحن نحو نعم نفس نفسه نهاية نخ نعما نعم ها هاؤم هاك هاهنا هب هذا هذه هكذا هل هلم هلا هم هما هن هنا هناك هنالك هو هي هيا هيت هيا هؤلاء هاتان هاتين هاته هاتي هج هذا هذان هذين هذه هذي هيهات وا واحد واضاف واضافت واكد وان واها واوضح وراءك وفي وقال وقالت وقد وقف وكان وكانت ولا ولم ومن وهو وهي ويكان وي وشكان يكون يمكن يوم ايان'.split(' '));
|
||||||
|
|
||||||
|
lunr.Pipeline.registerFunction(lunr.ar.stopWordFilter, 'stopWordFilter-ar');
|
||||||
|
};
|
||||||
|
}))
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user