Merge branch 'hugo' into 'master'

feat: change to Hugo-generated site

See merge request unboundsoftware/unbound-site!4
This commit was merged in pull request #7.
This commit is contained in:
2021-11-23 17:47:12 +00:00
1732 changed files with 62027 additions and 134 deletions
+1
View File
@@ -0,0 +1 @@
k8s
+11 -8
View File
@@ -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,21 +14,21 @@ 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
script: script:
- build - build
- push - push
deploy-to-prod: deploy-to-prod:
stage: deploy-prod stage: deploy-prod
when: on_success when: on_success
script: script:
- echo Deploy to PROD. - echo Deploy to PROD.
- deploy prod - deploy prod
environment: environment:
name: prod name: prod
only: only:
- master - master
View File
+15 -6
View File
@@ -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
+6
View File
@@ -0,0 +1,6 @@
---
title: "{{ replace .Name "-" " " | title }}"
date: {{ .Date }}
draft: true
---
Binary file not shown.

After

Width:  |  Height:  |  Size: 87 KiB

+44
View File
@@ -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
+13
View File
@@ -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!
-23
View File
@@ -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 &auml;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>
-97
View File
@@ -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":{}}
+11
View File
@@ -0,0 +1,11 @@
{
"presets": [
[
"@babel/preset-env",
{
"targets": "> 0.25%, not dead"
}
],
"minify"
]
}
+17
View File
@@ -0,0 +1,17 @@
version: 2.1
jobs:
build-check:
docker:
- image: cibuilds/hugo:0.62
working_directory: ~/LoveIt
steps:
- checkout
- run: git submodule sync
- run: git submodule update --init
- run: hugo --source=exampleSite -v --gc
- run: htmlproofer exampleSite/public --check-html --allow-hash-href --empty-alt-ignore --disable-external
workflows:
build-check-exampleSite:
jobs:
- build-check
+1
View File
@@ -0,0 +1 @@
custom: https://paypal.me/dillonzq
+41
View File
@@ -0,0 +1,41 @@
---
name: Bug Report 错误报告
about: Create a bug report 创建一个错误报告
title: "[BUG] Some problem..."
labels: bug
---
### Describe the bug 描述你遇到的错误
A clear and concise description of what the bug is.
一段简短的对于你遇到的错误的描述.
### Expected behavior 期待的行为
A clear and concise description of what you expected to happen.
一段简短的对于你期待的行为的描述.
### Screenshots 屏幕截图
If applicable, add screenshots to help explain your problem.
如果可以的话, 提供屏幕截图对解决问题很有帮助.
### Build Environment 构建环境
- OS: [e.g. Windows 10, macOS, Ubuntu]
- Theme version/commit [e.g. 0.2.0, 2ccba79]
- Hugo version [e.g. 0.69.0]
Please try to use Hugo **extended** version before opening the issue.
请在创建 issue 之前尝试使用 Hugo **extended** 版本.
### Preview Environment 预览环境
- OS: [e.g. Windows 10, macOS, Ubuntu, iOS, Android]
- Browser [e.g. Chrome, Safari, Firefox]
### Additional Information 补充信息
Configuration files or front matter code...
配置文件或者前置参数的代码...
+5
View File
@@ -0,0 +1,5 @@
blank_issues_enabled: false
contact_links:
- name: Theme Documentation 主题文档
url: https://hugoloveit.com/categories/documentation/
about: Please read the documentation carefully. 请先仔细阅读主题文档.
+22
View File
@@ -0,0 +1,22 @@
---
name: Feature request 功能请求
about: Suggest an idea for this project 为这个项目提供一个建议
title: "[FEATURE] Some feature"
labels: enhancement
---
### Describe the feature you want 描述你的功能需求
- Feature 1 功能需求 1
I want this feature to solve ...
我希望这个功能解决 ...
- Feature 2 功能需求 2
I want this feature to solve ...
我希望这个功能解决 ...
- ...
### Useful reference 有价值的参考
If available, provide useful links to fulfill the feature.
如果可以的话, 提供实现这个功能的相关参考链接.
+19
View File
@@ -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
+21
View File
@@ -0,0 +1,21 @@
The MIT License (MIT)
Copyright (c) 2018 LIUZHICHAO.COM
Copyright (c) 2019 DILLONZQ.COM
Permission is hereby granted, free of charge, to any person obtaining a copy of
this software and associated documentation files (the "Software"), to deal in
the Software without restriction, including without limitation the rights to
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
the Software, and to permit persons to whom the Software is furnished to do so,
subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+196
View File
@@ -0,0 +1,196 @@
# LoveIt Theme | Hugo [![Netlify Status](https://api.netlify.com/api/v1/badges/e60303f2-862c-4342-bf59-7c9adb10812e/deploy-status)](https://app.netlify.com/sites/hugo-loveit/deploys)
[![GitHub release (latest by date)](https://img.shields.io/github/v/release/dillonzq/LoveIt?style=flat-square)](https://github.com/dillonzq/LoveIt/releases)
[![Hugo](https://img.shields.io/badge/Hugo-%5E0.62.0-ff4088?style=flat-square&logo=hugo)](https://gohugo.io/)
[![License](https://img.shields.io/github/license/dillonzq/LoveIt?style=flat-square)](https://github.com/dillonzq/LoveIt/blob/master/LICENSE)
[![CircleCI](https://img.shields.io/circleci/build/github/dillonzq/LoveIt/develop?label=CI&style=flat-square&logo=circleci)](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.
![Hugo Theme LoveIt](https://github.com/dillonzq/LoveIt/raw/master/images/Apple-Devices-Preview.png)
## [Demo Site](https://hugoloveit.com/)
To see this theme in action, here is a live [demo site](https://hugoloveit.com/) which is rendered with **LoveIt** theme.
## Why choose LoveIt
Compared to the original LeaveIt theme and the KeepIt theme, the LoveIt theme has the following modifications.
* Custom **Header**
* Custom **CSS Style**
* A new **home page**, compatible with the latest version of Hugo
* A lot of **style detail adjustments,** including color, font size, margins, code preview style
* More readable **dark mode**
* Some beautiful **CSS animations**
* Easy-to-use and self-expanding **table of contents**
* More **social links**, **share sites** and **comment system**
* **Search** supported by [Lunr.js](https://lunrjs.com/) or [algolia](https://www.algolia.com/)
* **Copy code** to clipboard with one click
* Extended Markdown syntax for **[Font Awesome](https://fontawesome.com/) icons**
* Extended Markdown syntax for **ruby annotation**
* Extended Markdown syntax for **fraction**
* **Mathematical formula** supported by [KaTeX](https://katex.org/)
* **Diagram syntax** shortcode supported by [mermaid](https://github.com/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! ❤️
+191
View File
@@ -0,0 +1,191 @@
# LoveIt 主题 | Hugo [![Netlify Status](https://api.netlify.com/api/v1/badges/e60303f2-862c-4342-bf59-7c9adb10812e/deploy-status)](https://app.netlify.com/sites/hugo-loveit/deploys)
[![GitHub release (latest by date)](https://img.shields.io/github/v/release/dillonzq/LoveIt?style=flat-square)](https://github.com/dillonzq/LoveIt/releases)
[![Hugo](https://img.shields.io/badge/Hugo-%5E0.62.0-ff4088?style=flat-square&logo=hugo)](https://gohugo.io/)
[![License](https://img.shields.io/github/license/dillonzq/LoveIt?style=flat-square)](https://github.com/dillonzq/LoveIt/blob/master/LICENSE)
[![CircleCI](https://img.shields.io/circleci/build/github/dillonzq/LoveIt/develop?label=CI&style=flat-square&logo=circleci)](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),以便你能选择最适合你的一个。
![Hugo 主题 LoveIt](https://github.com/dillonzq/LoveIt/raw/master/images/Apple-Devices-Preview.png)
## 主题[预览](https://hugoloveit.com/zh-cn/)
为了直观地浏览主题特性,这里有一个基于 **LoveIt** 主题渲染的 [预览网站](https://hugoloveit.com/zh-cn/)。
## 为什么选择 LoveIt
相较于 LeaveIt 主题 和 KeepIt 主题,LoveIt 主题主要有以下修改
* 自定义**标题栏**
* 自定义**CSS 样式**
* 焕然一新的**主页**,已经兼容最新版 Hugo
* 大量的**样式细节调整**,包括颜色、字体大小、边距、代码预览样式
* 可读性更强的**深色模式**
* 一些美观的 **CSS 动画**
* 易用和自动展开的**文章目录**
* 支持更多的**社交链接**、**网站分享**和**评论系统**
* 支持基于 [Lunr.js](https://lunrjs.com/) 或 [algolia](https://www.algolia.com/) 的**搜索**
* 一键**复制代码**到剪贴板
* 支持基于 **[Font Awesome](https://fontawesome.com/) 图标**的扩展 Markdown 语法
* 支持**上标注释**的扩展 Markdown 语法
* 支持**分数**的扩展 Markdown 语法
* 支持基于 [KaTeX](https://katex.org/) 的**数学公式**
* 支持基于 [mermaid](https://github.com/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)
谢谢! ❤️
+28
View File
@@ -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-->
+55
View File
@@ -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;
}
}
}
}
+4
View File
@@ -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);
}
}
}
+4
View File
@@ -0,0 +1,4 @@
// ==============================
// Override Variables
// 覆盖变量
// ==============================
+6
View File
@@ -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";
}
+182
View File
@@ -0,0 +1,182 @@
.home {
.home-profile {
@include transform(translateY( 16vh));
padding: 0 0 .5rem;
text-align: center;
.home-avatar {
padding: .5rem;
img {
display: inline-block;
width: 8rem;
height: auto;
margin: 0 auto;
@include border-radius(100%);
@include box-shadow(0 0 0 .3618em rgba(0, 0, 0, .05));
@include transition(all 0.4s ease);
&:hover {
position: relative;
@include transform(translateY(-.75rem));
}
}
}
.home-title {
font-size: 1.25rem;
font-weight: bold;
margin: 0;
padding: .5rem;
}
.home-subtitle {
font-size: 1rem;
font-weight: normal;
margin: 0;
padding: .5rem;
}
.links {
padding: .5rem;
font-size: 1.5rem;
a * {
vertical-align: text-bottom;
}
img {
height: 1.5rem;
padding: 0 .25rem;
}
}
.home-disclaimer {
font-size: 1rem;
line-height: 1.5rem;
font-weight: normal;
margin: 0;
padding: .5rem;
color: $global-font-secondary-color;
[theme=dark] & {
color: $global-font-secondary-color-dark;
}
}
}
}
.home[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";
+331
View File
@@ -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%);
}
}
}
}
+366
View File
@@ -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;
+19
View File
@@ -0,0 +1,19 @@
@charset "utf-8";
@import "_variables";
@import "_override";
@import "_mixin/index";
@import "_core/base";
@import "_core/layout";
@import "_page/index";
@import "_partial/header";
@import "_partial/footer";
@import "_partial/pagination";
@import "_core/media";
@import "_custom";
@@ -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
+150
View File
@@ -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
+150
View File
@@ -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
+150
View File
@@ -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
+22
View File
@@ -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
+511
View File
@@ -0,0 +1,511 @@
# 001: Github
github:
Weight: 1
Prefix: https://github.com/
Title: GitHub
Icon:
Class: fab fa-github-alt fa-fw
# 002: LinkedIn
linkedin:
Weight: 2
Prefix: https://linkedin.com/in/
Title: LinkedIn
Icon:
Class: fab fa-linkedin fa-fw
# 003: Twitter
twitter:
Weight: 3
Prefix: https://twitter.com/
Title: Twitter
Icon:
Class: fab fa-twitter fa-fw
# 004: Instagram
instagram:
Weight: 4
Prefix: https://www.instagram.com/
Title: Instagram
Icon:
Class: fab fa-instagram fa-fw
# 005: facebook
facebook:
Weight: 5
Prefix: https://facebook.com/
Title: facebook
Icon:
Class: fab fa-facebook fa-fw
# 006: Telegram
telegram:
Weight: 6
Prefix: https://t.me/
Title: Telegram
Icon:
Class: fab fa-telegram-plane fa-fw
# 007: Medium
medium:
Weight: 7
Prefix: https://medium.com/
Title: Medium
Icon:
Class: fab fa-medium fa-fw
# 008: GitLab
gitlab:
Weight: 8
Prefix: https://gitlab.com/
Title: GitLab
Icon:
Class: fab fa-gitlab fa-fw
# 009: YouTube Legacy
youtubelegacy:
Weight: 9
Prefix: https://www.youtube.com/user/
Title: YouTube
Icon:
Class: fab fa-youtube fa-fw
# 010: YouTube Custom
youtubecustom:
Weight: 10
Prefix: https://www.youtube.com/c/
Title: YouTube
Icon:
Class: fab fa-youtube fa-fw
# 011: YouTube Channel
youtubechannel:
Weight: 11
Prefix: https://www.youtube.com/channel/
Title: YouTube
Icon:
Class: fab fa-youtube fa-fw
# 012: Tumblr
tumblr:
Weight: 12
Template: https://%v.tumblr.com/
Title: Tumblr
Icon:
Class: fab fa-tumblr fa-fw
# 013: Quora
quora:
Weight: 13
Prefix: https://www.quora.com/profile/
Title: Quora
Icon:
Class: fab fa-quora fa-fw
# 014: Keybase
keybase:
Weight: 14
Prefix: https://keybase.io/
Title: Keybase
Icon:
Class: fab fa-keybase fa-fw
# 015: Pinterest
pinterest:
Weight: 15
Prefix: https://www.pinterest.com/
Title: Pinterest
Icon:
Class: fab fa-pinterest fa-fw
# 016: Reddit
reddit:
Weight: 16
Prefix: https://www.reddit.com/user/
Title: Reddit
Icon:
Class: fab fa-reddit fa-fw
# 017: CodePen
codepen:
Weight: 17
Prefix: https://codepen.io/
Title: CodePen
Icon:
Class: fab fa-codepen fa-fw
# 018: freeCodeCamp
freecodecamp:
Weight: 18
Prefix: https://freecodecamp.org/
Title: freeCodeCamp
Icon:
Class: fab fa-free-code-camp fa-fw
# 019: Bitbucket
bitbucket:
Weight: 19
Prefix: https://bitbucket.org/
Title: Bitbucket
Icon:
Class: fab fa-bitbucket fa-fw
# 020: Stack Overflow
stackoverflow:
Weight: 20
Prefix: https://stackoverflow.com/users/
Title: Stack Overflow
Icon:
Class: fab fa-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
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
+26
View File
@@ -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
+112
View File
@@ -0,0 +1,112 @@
[theme=dark] .aplayer {
background: #212121;
&.aplayer-withlist {
.aplayer-info {
border-bottom-color: #5c5c5c;
}
}
&.aplayer-fixed {
.aplayer-list {
border-color: #5c5c5c;
}
}
.aplayer-body {
background-color: #212121;
}
.aplayer-info {
border-top-color: #212121;
}
.aplayer-info {
.aplayer-music {
.aplayer-title {
color: #fff;
}
.aplayer-author {
color: #fff;
}
}
.aplayer-controller {
.aplayer-time {
color: #eee;
.aplayer-icon {
path {
fill: #eee;
}
}
}
}
}
.aplayer-list {
background-color: #212121;
&::-webkit-scrollbar-thumb {
background-color: #999;
}
&::-webkit-scrollbar-thumb:hover {
background-color: #bbb;
}
li {
color: #fff;
border-top-color: #666;
&:hover {
background: #4e4e4e;
}
&.aplayer-list-light {
background: #6c6c6c;
}
.aplayer-list-index {
color: #ddd;
}
.aplayer-list-author {
color: #ddd;
}
}
}
.aplayer-lrc {
text-shadow: -1px -1px 0 #666;
&:before {
background: -moz-linear-gradient(top, rgba(33,33,33,1) 0%, rgba(33,33,33,0) 100%);
background: -webkit-linear-gradient(top, rgba(33,33,33,1) 0%,rgba(33,33,33,0) 100%);
background: linear-gradient(to bottom, rgba(33,33,33,1) 0%,rgba(33,33,33,0) 100%);
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#212121', endColorstr='#00212121',GradientType=0 );
}
&:after {
background: -moz-linear-gradient(top, rgba(33,33,33,0) 0%, rgba(33,33,33,0.8) 100%);
background: -webkit-linear-gradient(top, rgba(33,33,33,0) 0%,rgba(33,33,33,0.8) 100%);
background: linear-gradient(to bottom, rgba(33,33,33,0) 0%,rgba(33,33,33,0.8) 100%);
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#00212121', endColorstr='#cc212121',GradientType=0 );
}
p {
color: #fff;
}
}
.aplayer-miniswitcher {
background: #484848;
.aplayer-icon {
path {
fill: #eee;
}
}
}
}
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -0,0 +1,6 @@
.cc-window{opacity:1;-webkit-transition:opacity 1s ease;transition:opacity 1s ease}.cc-window.cc-invisible{opacity:0}.cc-animate.cc-revoke{-webkit-transition:transform 1s ease;-webkit-transition:-webkit-transform 1s ease;transition:-webkit-transform 1s ease;transition:transform 1s ease;transition:transform 1s ease,-webkit-transform 1s ease}.cc-animate.cc-revoke.cc-top{-webkit-transform:translateY(-2em);transform:translateY(-2em)}.cc-animate.cc-revoke.cc-bottom{-webkit-transform:translateY(2em);transform:translateY(2em)}.cc-animate.cc-revoke.cc-active.cc-top{-webkit-transform:translateY(0);transform:translateY(0)}.cc-animate.cc-revoke.cc-active.cc-bottom{-webkit-transform:translateY(0);transform:translateY(0)}.cc-revoke:hover{-webkit-transform:translateY(0);transform:translateY(0)}.cc-grower{max-height:0;overflow:hidden;-webkit-transition:max-height 1s;transition:max-height 1s}
.cc-revoke,.cc-window{position:fixed;overflow:hidden;-webkit-box-sizing:border-box;box-sizing:border-box;font-family:Helvetica,Calibri,Arial,sans-serif;font-size:16px;line-height:1.5em;display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:nowrap;flex-wrap:nowrap;z-index:9999}.cc-window.cc-static{position:static}.cc-window.cc-floating{padding:2em;max-width:24em;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.cc-window.cc-banner{padding:1em 1.8em;width:100%;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}.cc-revoke{padding:.5em}.cc-revoke:hover{text-decoration:underline}.cc-header{font-size:18px;font-weight:700}.cc-btn,.cc-close,.cc-link,.cc-revoke{cursor:pointer}.cc-link{opacity:.8;display:inline-block;padding:.2em;text-decoration:underline}.cc-link:hover{opacity:1}.cc-link:active,.cc-link:visited{color:initial}.cc-btn{display:block;padding:.4em .8em;font-size:.9em;font-weight:700;border-width:2px;border-style:solid;text-align:center;white-space:nowrap}.cc-highlight .cc-btn:first-child{background-color:transparent;border-color:transparent}.cc-highlight .cc-btn:first-child:focus,.cc-highlight .cc-btn:first-child:hover{background-color:transparent;text-decoration:underline}.cc-close{display:block;position:absolute;top:.5em;right:.5em;font-size:1.6em;opacity:.9;line-height:.75}.cc-close:focus,.cc-close:hover{opacity:1}
.cc-revoke.cc-top{top:0;left:3em;border-bottom-left-radius:.5em;border-bottom-right-radius:.5em}.cc-revoke.cc-bottom{bottom:0;left:3em;border-top-left-radius:.5em;border-top-right-radius:.5em}.cc-revoke.cc-left{left:3em;right:unset}.cc-revoke.cc-right{right:3em;left:unset}.cc-top{top:1em}.cc-left{left:1em}.cc-right{right:1em}.cc-bottom{bottom:1em}.cc-floating>.cc-link{margin-bottom:1em}.cc-floating .cc-message{display:block;margin-bottom:1em}.cc-window.cc-floating .cc-compliance{-webkit-box-flex:1;-ms-flex:1 0 auto;flex:1 0 auto}.cc-window.cc-banner{-webkit-box-align:center;-ms-flex-align:center;align-items:center}.cc-banner.cc-top{left:0;right:0;top:0}.cc-banner.cc-bottom{left:0;right:0;bottom:0}.cc-banner .cc-message{display:block;-webkit-box-flex:1;-ms-flex:1 1 auto;flex:1 1 auto;max-width:100%;margin-right:1em}.cc-compliance{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-ms-flex-line-pack:justify;align-content:space-between}.cc-floating .cc-compliance>.cc-btn{-webkit-box-flex:1;-ms-flex:1;flex:1}.cc-btn+.cc-btn{margin-left:.5em}
@media print{.cc-revoke,.cc-window{display:none}}@media screen and (max-width:900px){.cc-btn{white-space:normal}}@media screen and (max-width:414px) and (orientation:portrait),screen and (max-width:736px) and (orientation:landscape){.cc-window.cc-top{top:0}.cc-window.cc-bottom{bottom:0}.cc-window.cc-banner,.cc-window.cc-floating,.cc-window.cc-left,.cc-window.cc-right{left:0;right:0}.cc-window.cc-banner{-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.cc-window.cc-banner .cc-compliance{-webkit-box-flex:1;-ms-flex:1 1 auto;flex:1 1 auto}.cc-window.cc-floating{max-width:none}.cc-window .cc-message{margin-bottom:1em}.cc-window.cc-banner{-webkit-box-align:unset;-ms-flex-align:unset;align-items:unset}.cc-window.cc-banner .cc-message{margin-right:0}}
.cc-floating.cc-theme-classic{padding:1.2em;border-radius:5px}.cc-floating.cc-type-info.cc-theme-classic .cc-compliance{text-align:center;display:inline;-webkit-box-flex:0;-ms-flex:none;flex:none}.cc-theme-classic .cc-btn{border-radius:5px}.cc-theme-classic .cc-btn:last-child{min-width:140px}.cc-floating.cc-type-info.cc-theme-classic .cc-btn{display:inline-block}
.cc-theme-edgeless.cc-window{padding:0}.cc-floating.cc-theme-edgeless .cc-message{margin:2em;margin-bottom:1.5em}.cc-banner.cc-theme-edgeless .cc-btn{margin:0;padding:.8em 1.8em;height:100%}.cc-banner.cc-theme-edgeless .cc-message{margin-left:1em}.cc-floating.cc-theme-edgeless .cc-btn+.cc-btn{margin-left:0}
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -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
File diff suppressed because one or more lines are too long
+1
View File
@@ -0,0 +1 @@
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(require("katex")):"function"==typeof define&&define.amd?define(["katex"],t):"object"==typeof exports?exports.renderMathInElement=t(require("katex")):e.renderMathInElement=t(e.katex)}("undefined"!=typeof self?self:this,function(e){return function(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});
+1
View File
@@ -0,0 +1 @@
.katex,.katex-display{user-select:all;-moz-user-select:all;-webkit-user-select:all;-ms-user-select:all}
+1
View File
@@ -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
View File
File diff suppressed because one or more lines are too long
+1
View File
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
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-Z-zA-]":"A",
"[0-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,"":-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,"":-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,"":-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;
};
}));
+381
View File
@@ -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