use LoveIt theme, self hosted
330
config.toml
|
@ -5,15 +5,24 @@ baseURL = "https://cullmann.io/"
|
|||
title = "Ignorance is bliss..."
|
||||
|
||||
# theme hugo-coder
|
||||
theme = "beautifulhugo"
|
||||
theme = "LoveIt"
|
||||
|
||||
# content == english, Impressum is german
|
||||
languagecode = "en"
|
||||
defaultcontentlanguage = "en"
|
||||
defaultContentLanguage = "en"
|
||||
|
||||
# allow git
|
||||
# whether to use robots.txt
|
||||
# 是否使用 robots.txt
|
||||
enableRobotsTXT = true
|
||||
|
||||
# whether to use git commit log
|
||||
# 是否使用 git 信息
|
||||
enableGitInfo = true
|
||||
|
||||
# whether to use emoji code
|
||||
# 是否使用 emoji 代码
|
||||
enableEmoji = true
|
||||
|
||||
# nice urls
|
||||
canonifyurls = true
|
||||
|
||||
|
@ -23,8 +32,164 @@ pygmentsUseClasses = true
|
|||
pygmentsCodeFences = true
|
||||
pygmentsCodefencesGuessSyntax = true
|
||||
|
||||
# add info for crawlers
|
||||
enableRobotsTXT = true
|
||||
[languages]
|
||||
[languages.en]
|
||||
weight = 1
|
||||
# language code
|
||||
languageCode = "en"
|
||||
# language name
|
||||
languageName = "English"
|
||||
# whether to include Chinese/Japanese/Korean
|
||||
hasCJKLanguage = false
|
||||
# default amount of posts in each pages
|
||||
paginate = 12
|
||||
# [UA-XXXXXXXX-X] google analytics code
|
||||
googleAnalytics = ""
|
||||
# copyright description used only for seo schema
|
||||
copyright = "This work is licensed under a Creative Commons Attribution-NonCommercial 4.0 International License."
|
||||
# Menu config
|
||||
[languages.en.menu]
|
||||
[[languages.en.menu.main]]
|
||||
identifier = "posts"
|
||||
# you can add extra information before the name (HTML format is supported), such as icons
|
||||
pre = ""
|
||||
# you can add extra information after the name (HTML format is supported), such as icons
|
||||
post = ""
|
||||
name = "Posts"
|
||||
url = "/posts/"
|
||||
# title will be shown when you hover on this menu link.
|
||||
title = ""
|
||||
weight = 1
|
||||
[[languages.en.menu.main]]
|
||||
identifier = "tags"
|
||||
pre = ""
|
||||
post = ""
|
||||
name = "Tags"
|
||||
url = "/tags/"
|
||||
title = ""
|
||||
weight = 2
|
||||
[[languages.en.menu.main]]
|
||||
identifier = "categories"
|
||||
pre = ""
|
||||
post = ""
|
||||
name = "Categories"
|
||||
url = "/categories/"
|
||||
title = ""
|
||||
weight = 3
|
||||
[[languages.en.menu.main]]
|
||||
identifier = "projects"
|
||||
pre = ""
|
||||
post = ""
|
||||
name = "Projects"
|
||||
url = "/projects/"
|
||||
title = ""
|
||||
weight = 4
|
||||
[[languages.en.menu.main]]
|
||||
identifier = "academic"
|
||||
pre = ""
|
||||
post = ""
|
||||
name = "Academic"
|
||||
url = "/academic/"
|
||||
title = ""
|
||||
weight = 5
|
||||
[[languages.en.menu.main]]
|
||||
identifier = "links"
|
||||
pre = ""
|
||||
post = ""
|
||||
name = "Links"
|
||||
url = "/links/"
|
||||
title = ""
|
||||
weight = 6
|
||||
[[languages.en.menu.main]]
|
||||
identifier = "impressum"
|
||||
pre = ""
|
||||
post = ""
|
||||
name = "Impressum"
|
||||
url = "/impressum/"
|
||||
title = ""
|
||||
weight = 7
|
||||
[[languages.en.menu.main]]
|
||||
identifier = "about"
|
||||
pre = ""
|
||||
post = ""
|
||||
name = "About"
|
||||
url = "/about/"
|
||||
title = ""
|
||||
weight = 8
|
||||
|
||||
[languages.en.params]
|
||||
# site description
|
||||
description = "Ignorance is bliss..."
|
||||
# site keywords
|
||||
keywords = ["Christoph", "Cullmann"]
|
||||
# App icon config
|
||||
[languages.en.params.app]
|
||||
# optional site title override for the app when added to an iOS home screen or Android launcher
|
||||
title = "Ignorance is bliss..."
|
||||
# whether to omit favicon resource links
|
||||
noFavicon = false
|
||||
# modern SVG favicon to use in place of older style .png and .ico files
|
||||
svgFavicon = ""
|
||||
# Android browser theme color
|
||||
themeColor = "#ffffff"
|
||||
# Safari mask icon color
|
||||
iconColor = "#5bbad5"
|
||||
# Windows v8-10 tile color
|
||||
tileColor = "#da532c"
|
||||
|
||||
# Search config
|
||||
[languages.en.params.search]
|
||||
enable = true
|
||||
# type of search engine ("lunr", "algolia")
|
||||
type = "lunr"
|
||||
# max index length of the chunked content
|
||||
contentLength = 4000
|
||||
# placeholder of the search bar
|
||||
placeholder = ""
|
||||
# max number of results length
|
||||
maxResultLength = 10
|
||||
# snippet length of the result
|
||||
snippetLength = 30
|
||||
# HTML tag name of the highlight part in results
|
||||
highlightTag = "em"
|
||||
# whether to use the absolute URL based on the baseURL in search index
|
||||
absoluteURL = false
|
||||
|
||||
# Home page config
|
||||
[languages.en.params.home]
|
||||
# amount of RSS pages
|
||||
rss = 10
|
||||
# Home page profile
|
||||
[languages.en.params.home.profile]
|
||||
enable = true
|
||||
# Gravatar Email for preferred avatar in home page
|
||||
gravatarEmail = ""
|
||||
# URL of avatar shown in home page
|
||||
avatarURL = "/images/christoph_avatar.png"
|
||||
# title shown in home page (HTML format is supported)
|
||||
title = ""
|
||||
# subtitle shown in home page
|
||||
subtitle = "Christoph Cullmann's personal website"
|
||||
# whether to use typeit animation for subtitle
|
||||
typeit = true
|
||||
# whether to show social links
|
||||
social = true
|
||||
# disclaimer (HTML format is supported)
|
||||
disclaimer = ""
|
||||
# Home page posts
|
||||
[languages.en.params.home.posts]
|
||||
enable = true
|
||||
# special amount of posts in each home posts page
|
||||
paginate = 6
|
||||
# Social config in home page
|
||||
[languages.en.params.social]
|
||||
GitHub = "christoph-cullmann"
|
||||
Twitter = "ChrCullmann"
|
||||
Gitlab = "cullmann"
|
||||
Youtubecustom = "ChristophCullmann"
|
||||
Reddit = "ChristophCullmann"
|
||||
Email = "christoph@cullmann.io"
|
||||
RSS = true
|
||||
|
||||
# we want raw HTML
|
||||
[markup]
|
||||
|
@ -36,18 +201,31 @@ enableRobotsTXT = true
|
|||
[Author]
|
||||
name = "Christoph Cullmann"
|
||||
|
||||
[outputs]
|
||||
# JSON for search
|
||||
home = ["HTML", "RSS", "JSON"]
|
||||
|
||||
[params]
|
||||
# we want to self-host stuff, no data leaks to google and co.
|
||||
selfHosted = true
|
||||
# LoveIt theme version
|
||||
# LoveIt 主题版本
|
||||
version = "0.2.X"
|
||||
|
||||
# Kate mascot
|
||||
logo = "images/christoph_logo.png"
|
||||
# site default theme ("light", "dark", "auto")
|
||||
# 网站默认主题 ("light", "dark", "auto")
|
||||
defaultTheme = "auto"
|
||||
|
||||
# public git repo url only then enableGitInfo is true
|
||||
# 公共 git 仓库路径,仅在 enableGitInfo 设为 true 时有效
|
||||
gitRepo = "https://github.com/christoph-cullmann/cullmann.io"
|
||||
|
||||
# which hash function used for SRI, when empty, no SRI is used ("sha256", "sha384", "sha512", "md5")
|
||||
# 哪种哈希函数用来 SRI, 为空时表示不使用 SRI ("sha256", "sha384", "sha512", "md5")
|
||||
fingerprint = ""
|
||||
|
||||
# date format
|
||||
# 日期格式
|
||||
dateFormat = "January 2, 2006"
|
||||
|
||||
# website images for Open Graph and Twitter Cards
|
||||
# 网站图片, 用于 Open Graph 和 Twitter Cards
|
||||
images = ["images/christoph_logo.png"]
|
||||
|
||||
commit = true
|
||||
rss = false
|
||||
comments = false
|
||||
|
@ -57,110 +235,6 @@ enableRobotsTXT = true
|
|||
socialShare = false
|
||||
showRelatedPosts = true
|
||||
|
||||
|
||||
#
|
||||
# links to my public profiles
|
||||
#
|
||||
|
||||
[[params.social]]
|
||||
name = "E-Mail"
|
||||
icon = "fa fa-envelope"
|
||||
weight = 1
|
||||
url = "mailto:christoph@cullmann.io"
|
||||
|
||||
[[params.social]]
|
||||
name = "GitHub"
|
||||
icon = "fab fa-github"
|
||||
weight = 2
|
||||
url = "https://github.com/christoph-cullmann/"
|
||||
|
||||
[[params.social]]
|
||||
name = "GitLab"
|
||||
icon = "fab fa-gitlab"
|
||||
weight = 3
|
||||
url = "https://gitlab.com/cullmann"
|
||||
|
||||
[[params.social]]
|
||||
name = "Twitter"
|
||||
icon = "fab fa-twitter"
|
||||
weight = 4
|
||||
url = "https://twitter.com/ChrCullmann/"
|
||||
|
||||
[[params.social]]
|
||||
name = "YouTube"
|
||||
icon = "fab fa-youtube"
|
||||
weight = 5
|
||||
url = "https://www.youtube.com/c/ChristophCullmann/"
|
||||
|
||||
[[params.social]]
|
||||
name = "amazon.de"
|
||||
icon = "fab fa-amazon"
|
||||
weight = 6
|
||||
url = "https://www.amazon.de/gp/profile/amzn1.account.AGWKWWFPCHLCW6E33CEFF7XKIHAQ"
|
||||
|
||||
#
|
||||
# main menu
|
||||
#
|
||||
|
||||
[menu]
|
||||
|
||||
[[menu.main]]
|
||||
identifier = "blog"
|
||||
name = "BLOG"
|
||||
weight = 10
|
||||
|
||||
[[menu.main]]
|
||||
parent = "blog"
|
||||
name = "Posts"
|
||||
url = "post/"
|
||||
weight = 10
|
||||
|
||||
[[menu.main]]
|
||||
parent = "blog"
|
||||
name = "Categories"
|
||||
url = "categories/"
|
||||
weight = 20
|
||||
|
||||
[[menu.main]]
|
||||
parent = "blog"
|
||||
name = "Tags"
|
||||
url = "tags/"
|
||||
weight = 30
|
||||
|
||||
[[menu.main]]
|
||||
identifier = "menu"
|
||||
name = "MORE"
|
||||
weight = 20
|
||||
|
||||
[[menu.main]]
|
||||
parent = "menu"
|
||||
name = "Projects"
|
||||
url = "projects/"
|
||||
weight = 30
|
||||
|
||||
[[menu.main]]
|
||||
parent = "menu"
|
||||
name = "Academic"
|
||||
url = "academic/"
|
||||
weight = 40
|
||||
|
||||
[[menu.main]]
|
||||
parent = "menu"
|
||||
name = "Links"
|
||||
url = "links/"
|
||||
weight = 50
|
||||
|
||||
[[menu.main]]
|
||||
parent = "menu"
|
||||
name = "Impressum"
|
||||
url = "impressum/"
|
||||
weight = 70
|
||||
|
||||
[[menu.main]]
|
||||
name = "ABOUT"
|
||||
url = "about/"
|
||||
weight = 30
|
||||
|
||||
# maximal privacy
|
||||
[privacy]
|
||||
[privacy.disqus]
|
||||
|
@ -175,3 +249,25 @@ enableRobotsTXT = true
|
|||
disable = true
|
||||
[privacy.youtube]
|
||||
disable = true
|
||||
|
||||
# Options to make output .md files
|
||||
# 用于输出 Markdown 格式文档的设置
|
||||
[mediaTypes]
|
||||
[mediaTypes."text/plain"]
|
||||
suffixes = ["md"]
|
||||
|
||||
# Options to make output .md files
|
||||
# 用于输出 Markdown 格式文档的设置
|
||||
[outputFormats.MarkDown]
|
||||
mediaType = "text/plain"
|
||||
isPlainText = true
|
||||
isHTML = false
|
||||
|
||||
# Options to make hugo output files
|
||||
# 用于 Hugo 输出文档的设置
|
||||
[outputs]
|
||||
home = ["HTML", "RSS", "JSON"]
|
||||
page = ["HTML", "MarkDown"]
|
||||
section = ["HTML", "RSS"]
|
||||
taxonomy = ["HTML", "RSS"]
|
||||
taxonomyTerm = ["HTML"]
|
||||
|
|
Before Width: | Height: | Size: 75 KiB After Width: | Height: | Size: 75 KiB |
Before Width: | Height: | Size: 29 KiB After Width: | Height: | Size: 29 KiB |
Before Width: | Height: | Size: 28 KiB After Width: | Height: | Size: 28 KiB |
Before Width: | Height: | Size: 80 KiB After Width: | Height: | Size: 80 KiB |
Before Width: | Height: | Size: 183 KiB After Width: | Height: | Size: 183 KiB |
Before Width: | Height: | Size: 64 KiB After Width: | Height: | Size: 64 KiB |
Before Width: | Height: | Size: 49 KiB After Width: | Height: | Size: 49 KiB |
Before Width: | Height: | Size: 8.8 KiB After Width: | Height: | Size: 8.8 KiB |
Before Width: | Height: | Size: 62 KiB After Width: | Height: | Size: 62 KiB |
Before Width: | Height: | Size: 78 KiB After Width: | Height: | Size: 78 KiB |
Before Width: | Height: | Size: 67 KiB After Width: | Height: | Size: 67 KiB |
Before Width: | Height: | Size: 38 KiB After Width: | Height: | Size: 38 KiB |
Before Width: | Height: | Size: 299 KiB After Width: | Height: | Size: 299 KiB |
Before Width: | Height: | Size: 343 KiB After Width: | Height: | Size: 343 KiB |
Before Width: | Height: | Size: 308 KiB After Width: | Height: | Size: 308 KiB |
Before Width: | Height: | Size: 348 KiB After Width: | Height: | Size: 348 KiB |
Before Width: | Height: | Size: 114 KiB After Width: | Height: | Size: 114 KiB |
Before Width: | Height: | Size: 228 KiB After Width: | Height: | Size: 228 KiB |
Before Width: | Height: | Size: 252 KiB After Width: | Height: | Size: 252 KiB |
Before Width: | Height: | Size: 354 KiB After Width: | Height: | Size: 354 KiB |
Before Width: | Height: | Size: 329 KiB After Width: | Height: | Size: 329 KiB |
Before Width: | Height: | Size: 92 KiB After Width: | Height: | Size: 92 KiB |
Before Width: | Height: | Size: 128 KiB After Width: | Height: | Size: 128 KiB |
Before Width: | Height: | Size: 187 KiB After Width: | Height: | Size: 187 KiB |
Before Width: | Height: | Size: 478 KiB After Width: | Height: | Size: 478 KiB |
Before Width: | Height: | Size: 778 KiB After Width: | Height: | Size: 778 KiB |
Before Width: | Height: | Size: 894 KiB After Width: | Height: | Size: 894 KiB |
Before Width: | Height: | Size: 936 KiB After Width: | Height: | Size: 936 KiB |
11
themes/LoveIt/.babelrc
Normal file
|
@ -0,0 +1,11 @@
|
|||
{
|
||||
"presets": [
|
||||
[
|
||||
"@babel/preset-env",
|
||||
{
|
||||
"targets": "> 0.25%, not dead"
|
||||
}
|
||||
],
|
||||
"minify"
|
||||
]
|
||||
}
|
17
themes/LoveIt/.circleci/config.yml
Normal 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
|
21
themes/LoveIt/LICENSE
Normal 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
themes/LoveIt/README.md
Normal 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
themes/LoveIt/README.zh-cn.md
Normal 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
themes/LoveIt/archetypes/default.md
Normal 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
themes/LoveIt/assets/css/_core/_base.scss
Normal 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);
|
||||
}
|
15
themes/LoveIt/assets/css/_core/_layout.scss
Normal file
|
@ -0,0 +1,15 @@
|
|||
/** Layout **/
|
||||
.wrapper {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
min-height: 100vh;
|
||||
width: 100%;
|
||||
|
||||
main {
|
||||
flex: 1 0 auto;
|
||||
|
||||
.container {
|
||||
padding: 0 1rem;
|
||||
}
|
||||
}
|
||||
}
|
80
themes/LoveIt/assets/css/_core/_media.scss
Normal file
|
@ -0,0 +1,80 @@
|
|||
@media only screen and (max-width: 1440px) {
|
||||
.page {
|
||||
width: 56%;
|
||||
}
|
||||
}
|
||||
|
||||
@media only screen and (max-width: 1200px) {
|
||||
.page {
|
||||
width: 52%;
|
||||
}
|
||||
|
||||
#header-desktop .header-wrapper {
|
||||
padding-right: 1rem;
|
||||
}
|
||||
|
||||
.search-dropdown.desktop {
|
||||
right: 1rem;
|
||||
}
|
||||
}
|
||||
|
||||
@media only screen and (max-width: 960px) {
|
||||
#toc-auto {
|
||||
display: none;
|
||||
}
|
||||
|
||||
#toc-static {
|
||||
display: block;
|
||||
}
|
||||
|
||||
.page {
|
||||
width: 80%;
|
||||
}
|
||||
|
||||
#header-desktop .header-wrapper {
|
||||
padding-left: 1rem;
|
||||
}
|
||||
}
|
||||
|
||||
@media only screen and (max-width: 680px) {
|
||||
#header-desktop {
|
||||
display: none;
|
||||
}
|
||||
|
||||
#header-mobile {
|
||||
display: block;
|
||||
}
|
||||
|
||||
body.blur {
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.page {
|
||||
width: 100%;
|
||||
|
||||
[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
themes/LoveIt/assets/css/_custom.scss
Normal file
|
@ -0,0 +1,4 @@
|
|||
// ==============================
|
||||
// Custom style
|
||||
// 自定义样式
|
||||
// ==============================
|
5
themes/LoveIt/assets/css/_mixin/_blur.scss
Normal file
|
@ -0,0 +1,5 @@
|
|||
@mixin blur {
|
||||
.blur & {
|
||||
@include filter(blur(1.5px));
|
||||
}
|
||||
}
|
110
themes/LoveIt/assets/css/_mixin/_compatibility.scss
Normal file
|
@ -0,0 +1,110 @@
|
|||
@mixin border-radius($value) {
|
||||
-webkit-border-radius: $value;
|
||||
-moz-border-radius: $value;
|
||||
border-radius: $value;
|
||||
}
|
||||
|
||||
@mixin box-shadow($values...) {
|
||||
-webkit-box-shadow: $values;
|
||||
box-shadow: $values;
|
||||
}
|
||||
|
||||
@mixin transition($values...) {
|
||||
-webkit-transition: $values;
|
||||
-moz-transition: $values;
|
||||
-o-transition: $values;
|
||||
transition: $values;
|
||||
}
|
||||
|
||||
@mixin transform($value) {
|
||||
-webkit-transform: $value;
|
||||
-moz-transform: $value;
|
||||
-ms-transform: $value;
|
||||
-o-transform: $value;
|
||||
transform: $value;
|
||||
}
|
||||
|
||||
@mixin filter($value) {
|
||||
-webkit-filter: $value;
|
||||
-moz-filter: $value;
|
||||
-ms-filter: $value;
|
||||
filter: $value;
|
||||
}
|
||||
|
||||
@mixin flex($value) {
|
||||
-webkit-flex: $value;
|
||||
flex: $value;
|
||||
}
|
||||
|
||||
@mixin box($orient) {
|
||||
display: -moz-box;
|
||||
display: -webkit-box;
|
||||
display: box;
|
||||
|
||||
-webkit-box-orient: $orient;
|
||||
-moz-box-orient: $orient;
|
||||
box-orient: $orient;
|
||||
}
|
||||
|
||||
@mixin placeholder($color) {
|
||||
input::-webkit-input-placeholder{
|
||||
color: $color;
|
||||
}
|
||||
|
||||
input:-moz-placeholder{
|
||||
color: $color;
|
||||
}
|
||||
|
||||
input::-moz-placeholder{
|
||||
color: $color;
|
||||
}
|
||||
|
||||
input:-ms-input-placeholder{
|
||||
color: $color;
|
||||
}
|
||||
|
||||
input::placeholder {
|
||||
color: $color;
|
||||
}
|
||||
}
|
||||
|
||||
@mixin max-content($property) {
|
||||
#{$property}: -webkit-max-content;
|
||||
#{$property}: -moz-max-content;
|
||||
#{$property}: intrinsic;
|
||||
#{$property}: max-content;
|
||||
}
|
||||
|
||||
@mixin tab-size($value) {
|
||||
-moz-tab-size: $value;
|
||||
-o-tab-size: $value;
|
||||
tab-size: $value;
|
||||
}
|
||||
|
||||
@mixin appearance($value) {
|
||||
-moz-appearance: $value;
|
||||
-webkit-appearance: $value;
|
||||
}
|
||||
|
||||
@mixin overflow-wrap($value) {
|
||||
word-wrap: $value;
|
||||
overflow-wrap: $value;
|
||||
}
|
||||
|
||||
@mixin line-break($value) {
|
||||
-webkit-line-break: $value;
|
||||
-ms-line-break: $value;
|
||||
line-break: $value;
|
||||
}
|
||||
|
||||
@mixin ms {
|
||||
input::-ms-clear {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
|
||||
@mixin object-fit($value) {
|
||||
-o-object-fit: $value;
|
||||
object-fit: $value;
|
||||
font-family: 'object-fit: #{$value};';
|
||||
}
|
7
themes/LoveIt/assets/css/_mixin/_details.scss
Normal file
|
@ -0,0 +1,7 @@
|
|||
@mixin details-transition-open {
|
||||
@include transition(max-height 0.8s cubic-bezier(0, 1, 0, 1) -0.1s);
|
||||
}
|
||||
|
||||
@mixin details-transition-close {
|
||||
@include transition(max-height 0.8s cubic-bezier(0.5, 0, 1, 0) 0s);
|
||||
}
|
4
themes/LoveIt/assets/css/_mixin/_index.scss
Normal file
|
@ -0,0 +1,4 @@
|
|||
@import "_compatibility";
|
||||
@import "_link";
|
||||
@import "_blur";
|
||||
@import "_details";
|
20
themes/LoveIt/assets/css/_mixin/_link.scss
Normal file
|
@ -0,0 +1,20 @@
|
|||
@mixin link($light, $dark) {
|
||||
a, a::before, a::after {
|
||||
text-decoration: none;
|
||||
|
||||
color: if($light, $global-link-color, $single-link-color);
|
||||
|
||||
[theme=dark] & {
|
||||
color: if($dark, $global-link-color-dark, $single-link-color-dark);
|
||||
}
|
||||
}
|
||||
|
||||
a:active,
|
||||
a:hover {
|
||||
color: if($light, $global-link-hover-color, $single-link-hover-color);
|
||||
|
||||
[theme=dark] & {
|
||||
color: if($dark, $global-link-hover-color-dark, $single-link-hover-color-dark);
|
||||
}
|
||||
}
|
||||
}
|
4
themes/LoveIt/assets/css/_override.scss
Normal file
|
@ -0,0 +1,4 @@
|
|||
// ==============================
|
||||
// Override Variables
|
||||
// 覆盖变量
|
||||
// ==============================
|
6
themes/LoveIt/assets/css/_page/_404.scss
Normal file
|
@ -0,0 +1,6 @@
|
|||
#content-404 {
|
||||
font-size: 1.8rem;
|
||||
line-height: 3rem;
|
||||
@include transform(translateY(30vh));
|
||||
text-align: center;
|
||||
}
|
13
themes/LoveIt/assets/css/_page/_archive.scss
Normal file
|
@ -0,0 +1,13 @@
|
|||
.archive {
|
||||
.single-title {
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
.group-title {
|
||||
margin-top: 1.5rem;
|
||||
margin-bottom: 1rem;
|
||||
}
|
||||
|
||||
@import "../_partial/_archive/terms";
|
||||
@import "../_partial/_archive/tags";
|
||||
}
|
182
themes/LoveIt/assets/css/_page/_home.scss
Normal 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);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
22
themes/LoveIt/assets/css/_page/_index.scss
Normal file
|
@ -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
themes/LoveIt/assets/css/_page/_single.scss
Normal 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;
|
||||
}
|
5
themes/LoveIt/assets/css/_page/_special.scss
Normal file
|
@ -0,0 +1,5 @@
|
|||
.special {
|
||||
.single-title, .single-subtitle {
|
||||
text-align: right;
|
||||
}
|
||||
}
|
27
themes/LoveIt/assets/css/_partial/_archive/_tags.scss
Normal file
|
@ -0,0 +1,27 @@
|
|||
.tag-cloud-tags {
|
||||
margin: 10px 0;
|
||||
|
||||
@include link(true, true);
|
||||
|
||||
a {
|
||||
display: inline-block;
|
||||
position: relative;
|
||||
margin: 5px 10px;
|
||||
@include overflow-wrap(break-word);
|
||||
@include transition(all ease-out 0.3s);
|
||||
|
||||
&:active,
|
||||
&:focus,
|
||||
&:hover {
|
||||
@include transform(scale(1.2));
|
||||
}
|
||||
|
||||
sup {
|
||||
color: $global-font-secondary-color;
|
||||
|
||||
[theme=dark] & {
|
||||
color: $global-font-secondary-color-dark;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
82
themes/LoveIt/assets/css/_partial/_archive/_terms.scss
Normal file
|
@ -0,0 +1,82 @@
|
|||
.categories-card {
|
||||
margin: 0 auto;
|
||||
margin-top: 3rem;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
flex-direction: row;
|
||||
flex-wrap: wrap;
|
||||
line-height: 1.6rem;
|
||||
|
||||
.card-item {
|
||||
font-size: .875rem;
|
||||
text-align: left;
|
||||
width: 45%;
|
||||
display: flex;
|
||||
align-items: flex-start;
|
||||
margin-top: 2rem;
|
||||
min-height: 10rem;
|
||||
padding: 0 2%;
|
||||
position: relative;
|
||||
|
||||
.card-item-wrapper {
|
||||
width: 100%;
|
||||
overflow: hidden;
|
||||
|
||||
.card-item-title {
|
||||
font-size: 1.2rem;
|
||||
font-weight: bold;
|
||||
display: inline-block;
|
||||
margin-top: 1rem;
|
||||
margin-bottom: .75rem;
|
||||
}
|
||||
|
||||
span {
|
||||
float: right;
|
||||
padding-right: 1rem;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.archive-item {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
box-sizing: border-box;
|
||||
margin: .25rem 0 .25rem 1.5rem;
|
||||
}
|
||||
|
||||
.archive-item-link {
|
||||
min-width: 10%;
|
||||
overflow: hidden;
|
||||
white-space: nowrap;
|
||||
text-overflow: ellipsis;
|
||||
|
||||
&:hover {
|
||||
color: $global-link-hover-color;
|
||||
background-color: transparent;
|
||||
}
|
||||
|
||||
[theme=dark] & {
|
||||
color: $global-link-color-dark;
|
||||
|
||||
&:hover {
|
||||
color: $global-link-hover-color-dark;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.archive-item-date {
|
||||
width: 4em;
|
||||
text-align: right;
|
||||
color: $global-font-secondary-color;
|
||||
|
||||
[theme=dark] & {
|
||||
color: $global-font-secondary-color-dark;
|
||||
}
|
||||
}
|
||||
|
||||
.more-post {
|
||||
text-align: right;
|
||||
}
|
17
themes/LoveIt/assets/css/_partial/_cookieconsent.scss
Normal file
|
@ -0,0 +1,17 @@
|
|||
.cc-window.cc-banner {
|
||||
.cc-btn {
|
||||
color: $global-font-color;
|
||||
|
||||
&:hover, &:focus {
|
||||
background-color: #ccc;
|
||||
}
|
||||
|
||||
[theme=dark] & {
|
||||
color: $global-font-color;
|
||||
|
||||
&:hover, &:focus {
|
||||
background-color: #fff;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
33
themes/LoveIt/assets/css/_partial/_details.scss
Normal file
|
@ -0,0 +1,33 @@
|
|||
.details {
|
||||
.details-summary {
|
||||
&:hover {
|
||||
cursor: pointer;
|
||||
}
|
||||
}
|
||||
|
||||
i.details-icon {
|
||||
color: $global-font-secondary-color;
|
||||
@include transition(transform 0.2s ease);
|
||||
|
||||
[theme=dark] & {
|
||||
color: $global-font-secondary-color-dark;
|
||||
}
|
||||
}
|
||||
|
||||
.details-content {
|
||||
max-height: 0;
|
||||
overflow-y: hidden;
|
||||
@include details-transition-open;
|
||||
}
|
||||
|
||||
&.open {
|
||||
i.details-icon {
|
||||
@include transform(rotate(90deg));
|
||||
}
|
||||
|
||||
.details-content {
|
||||
max-height: $MAX_LENGTH;
|
||||
@include details-transition-close;
|
||||
}
|
||||
}
|
||||
}
|
46
themes/LoveIt/assets/css/_partial/_fixed-button.scss
Normal file
|
@ -0,0 +1,46 @@
|
|||
#fixed-buttons {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.fixed-button {
|
||||
display: none;
|
||||
z-index: 100;
|
||||
position: fixed;
|
||||
right: 1.5rem;
|
||||
font-size: 1rem;
|
||||
line-height: 1.3rem;
|
||||
padding: .6rem .6rem;
|
||||
color: $global-font-secondary-color;
|
||||
background: $header-background-color;
|
||||
@include border-radius(2rem);
|
||||
@include transition(color 0.4s ease);
|
||||
|
||||
@include blur;
|
||||
|
||||
&:hover, &:active {
|
||||
color: $global-font-color;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
&:active, &:focus, &:hover {
|
||||
outline: none;
|
||||
}
|
||||
|
||||
[theme=dark] & {
|
||||
color: $global-font-secondary-color-dark;
|
||||
background: $header-background-color-dark;
|
||||
|
||||
&:hover, &:active {
|
||||
color: $global-font-color-dark;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#back-to-top {
|
||||
display: block;
|
||||
bottom: 1.5rem;
|
||||
}
|
||||
|
||||
#view-comments {
|
||||
bottom: 4.5rem;
|
||||
}
|
21
themes/LoveIt/assets/css/_partial/_footer.scss
Normal file
|
@ -0,0 +1,21 @@
|
|||
footer {
|
||||
height: 2rem;
|
||||
width: 100%;
|
||||
text-align: center;
|
||||
line-height: 1.25rem;
|
||||
padding: 1rem 0;
|
||||
|
||||
.footer-container {
|
||||
font-size: .875rem;
|
||||
|
||||
.footer-line {
|
||||
width: 100%;
|
||||
|
||||
.icp-br {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@include blur;
|
||||
}
|
468
themes/LoveIt/assets/css/_partial/_header.scss
Normal file
|
@ -0,0 +1,468 @@
|
|||
header {
|
||||
width: 100%;
|
||||
z-index: 150;
|
||||
background-color: $header-background-color;
|
||||
@include transition(box-shadow 0.3s ease);
|
||||
|
||||
[theme=dark] & {
|
||||
background-color: $header-background-color-dark;
|
||||
}
|
||||
|
||||
.logo {
|
||||
min-height: 1.5em;
|
||||
height: 1.5em;
|
||||
vertical-align: text-bottom;
|
||||
}
|
||||
|
||||
.logo, .header-title-pre {
|
||||
padding-right: .25rem;
|
||||
}
|
||||
|
||||
.header-title-post {
|
||||
padding-left: .25rem;
|
||||
}
|
||||
|
||||
&:hover {
|
||||
@include box-shadow(0 0 1.5rem 0 rgba(0, 0, 0, .1));
|
||||
}
|
||||
}
|
||||
|
||||
.header-wrapper {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
box-sizing: border-box;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.header-title {
|
||||
font-family: $header-title-font-family;
|
||||
font-weight: bold;
|
||||
margin-right: .5rem;
|
||||
min-width: 10%;
|
||||
overflow: hidden;
|
||||
white-space: nowrap;
|
||||
text-overflow: ellipsis;
|
||||
@include flex(10);
|
||||
}
|
||||
|
||||
.menu .menu-item {
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.language-select {
|
||||
position: absolute;
|
||||
opacity: 0;
|
||||
left: 0;
|
||||
top: 0;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
|
||||
&:hover {
|
||||
cursor: pointer;
|
||||
}
|
||||
}
|
||||
|
||||
.search {
|
||||
position: relative;
|
||||
|
||||
input {
|
||||
color: transparent;
|
||||
box-sizing: border-box;
|
||||
height: 2.5rem;
|
||||
width: 2.5rem;
|
||||
@include border-radius(.5rem);
|
||||
border: none;
|
||||
outline: none;
|
||||
background-color: $header-background-color;
|
||||
vertical-align: baseline !important;
|
||||
@include transition(width 0.3s ease);
|
||||
|
||||
[theme=dark] & {
|
||||
background-color: $header-background-color-dark;
|
||||
}
|
||||
}
|
||||
|
||||
@include placeholder(transparent);
|
||||
|
||||
.search-button {
|
||||
margin: 0;
|
||||
position: absolute;
|
||||
left: auto;
|
||||
right: 1rem;
|
||||
}
|
||||
|
||||
.search-toggle {
|
||||
left: .5rem;
|
||||
right: auto;
|
||||
}
|
||||
|
||||
.search-loading {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.search-clear {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.open &, &.mobile {
|
||||
input {
|
||||
color: $global-font-color;
|
||||
background-color: $search-background-color;
|
||||
padding: 0 2rem 0 2rem;
|
||||
}
|
||||
|
||||
[theme=dark] & {
|
||||
input {
|
||||
color: $global-font-color-dark;
|
||||
background-color: $search-background-color-dark;
|
||||
}
|
||||
|
||||
@include placeholder($global-font-secondary-color-dark);
|
||||
}
|
||||
|
||||
@include placeholder($global-font-secondary-color);
|
||||
|
||||
.search-button {
|
||||
color: $global-font-secondary-color;
|
||||
|
||||
[theme=dark] & {
|
||||
color: $global-font-secondary-color-dark;
|
||||
}
|
||||
}
|
||||
|
||||
.search-clear:hover {
|
||||
color: #ff6b6b;
|
||||
}
|
||||
|
||||
.search-toggle:hover {
|
||||
cursor: default;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.theme-switch i {
|
||||
@include transform(rotate(225deg));
|
||||
}
|
||||
|
||||
#header-desktop {
|
||||
display: block;
|
||||
position: fixed;
|
||||
height: $header-height;
|
||||
line-height: $header-height;
|
||||
|
||||
[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;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
17
themes/LoveIt/assets/css/_partial/_icon.scss
Normal file
|
@ -0,0 +1,17 @@
|
|||
svg.icon {
|
||||
display: inline-block;
|
||||
width: 1.25em;
|
||||
height: 1em;
|
||||
text-align: center;
|
||||
|
||||
path {
|
||||
fill: currentColor;
|
||||
}
|
||||
}
|
||||
|
||||
img.emoji {
|
||||
height: 1em;
|
||||
width: 1em;
|
||||
margin: 0 .05em 0 .1em;
|
||||
vertical-align: -.1em;
|
||||
}
|
16
themes/LoveIt/assets/css/_partial/_mask.scss
Normal file
|
@ -0,0 +1,16 @@
|
|||
#mask {
|
||||
background-repeat: no-repeat;
|
||||
background-position: center;
|
||||
position: fixed;
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
z-index: -1;
|
||||
background-color: rgba(0, 0, 0, 0);
|
||||
|
||||
.blur & {
|
||||
z-index: 100;
|
||||
background-color: rgba(0, 0, 0, .25);
|
||||
}
|
||||
}
|
91
themes/LoveIt/assets/css/_partial/_pagination.scss
Normal file
|
@ -0,0 +1,91 @@
|
|||
.pagination {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
justify-content: center;
|
||||
list-style: none;
|
||||
white-space: nowrap;
|
||||
width: 100%;
|
||||
padding: 1rem 0 0;
|
||||
|
||||
a {
|
||||
font-size: .8rem;
|
||||
color: #bfbfbf;
|
||||
letter-spacing: .1rem;
|
||||
font-weight: 700;
|
||||
padding: 5px 5px;
|
||||
text-decoration: none;
|
||||
@include transition(0.3s);
|
||||
}
|
||||
|
||||
li {
|
||||
padding-bottom: 3px;
|
||||
margin: 0 20px;
|
||||
box-sizing: border-box;
|
||||
position: relative;
|
||||
display: inline;
|
||||
|
||||
&.disabled {
|
||||
display: none;
|
||||
}
|
||||
|
||||
&:hover a {
|
||||
color: $pagination-link-hover-color;
|
||||
}
|
||||
|
||||
[theme=dark] &:hover a {
|
||||
color: $pagination-link-hover-color-dark;
|
||||
}
|
||||
|
||||
&:before,
|
||||
&:after {
|
||||
position: absolute;
|
||||
content: "";
|
||||
width: 0;
|
||||
height: 3px;
|
||||
background: $pagination-link-hover-color;
|
||||
@include transition(0.3s);
|
||||
bottom: 0px;
|
||||
}
|
||||
|
||||
[theme=dark] &:before,
|
||||
[theme=dark] &:after {
|
||||
background: $pagination-link-hover-color-dark;
|
||||
}
|
||||
|
||||
&:before .active,
|
||||
&:after .active {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
&:before {
|
||||
left: 50%;
|
||||
}
|
||||
|
||||
&:after {
|
||||
right: 50%;
|
||||
}
|
||||
|
||||
&:hover {
|
||||
|
||||
&:before,
|
||||
&:after {
|
||||
width: 50%;
|
||||
}
|
||||
}
|
||||
|
||||
&.active {
|
||||
a {
|
||||
color: $pagination-link-hover-color;
|
||||
}
|
||||
|
||||
[theme=dark] & a {
|
||||
color: $pagination-link-hover-color-dark;
|
||||
}
|
||||
|
||||
&:before,
|
||||
&:after {
|
||||
width: 60%;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
67
themes/LoveIt/assets/css/_partial/_single/_admonition.scss
Normal file
|
@ -0,0 +1,67 @@
|
|||
.admonition {
|
||||
position: relative;
|
||||
margin: 1rem 0;
|
||||
padding: 0 .75rem;
|
||||
background-color: map-get($admonition-background-color-map, 'note');
|
||||
border-left: .25rem solid map-get($admonition-color-map, 'note');
|
||||
overflow: auto;
|
||||
|
||||
.admonition-title {
|
||||
font-weight: bold;
|
||||
margin: 0 -0.75rem;
|
||||
padding: .25rem 1.8rem;
|
||||
border-bottom: 1px solid map-get($admonition-background-color-map, 'note');
|
||||
background-color: opacify(map-get($admonition-background-color-map, 'note'), 0.15);
|
||||
}
|
||||
|
||||
&.open .admonition-title {
|
||||
background-color: map-get($admonition-background-color-map, 'note');
|
||||
}
|
||||
|
||||
.admonition-content {
|
||||
padding: .5rem 0;
|
||||
}
|
||||
|
||||
i.icon {
|
||||
font-size: 0.85rem;
|
||||
color: map-get($admonition-color-map, 'note');
|
||||
position: absolute;
|
||||
top: .6rem;
|
||||
left: .4rem;
|
||||
}
|
||||
|
||||
i.details-icon {
|
||||
position: absolute;
|
||||
top: .6rem;
|
||||
right: .3rem;
|
||||
}
|
||||
|
||||
@each $type, $color in $admonition-color-map {
|
||||
&.#{$type} {
|
||||
border-left-color: $color;
|
||||
|
||||
i.icon {
|
||||
color: $color;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@each $type, $color in $admonition-background-color-map {
|
||||
&.#{$type} {
|
||||
background-color: $color;
|
||||
|
||||
.admonition-title {
|
||||
border-bottom-color: $color;
|
||||
background-color: opacify($color, 0.15);
|
||||
}
|
||||
|
||||
&.open .admonition-title {
|
||||
background-color: $color;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
&:last-child {
|
||||
margin-bottom: .75rem;
|
||||
}
|
||||
}
|
16
themes/LoveIt/assets/css/_partial/_single/_bilibili.scss
Normal file
|
@ -0,0 +1,16 @@
|
|||
.bilibili {
|
||||
position: relative;
|
||||
width: 100%;
|
||||
height: 0;
|
||||
padding-bottom: 75%;
|
||||
margin: 3% auto;
|
||||
text-align: center;
|
||||
|
||||
iframe {
|
||||
position: absolute;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
left: 0;
|
||||
top: 0;
|
||||
}
|
||||
}
|
385
themes/LoveIt/assets/css/_partial/_single/_code.scss
Normal file
|
@ -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;
|
||||
}
|
||||
}
|
||||
}
|
3
themes/LoveIt/assets/css/_partial/_single/_comment.scss
Normal file
|
@ -0,0 +1,3 @@
|
|||
#comments {
|
||||
padding: 8rem 0 2rem;
|
||||
}
|
4
themes/LoveIt/assets/css/_partial/_single/_echarts.scss
Normal file
|
@ -0,0 +1,4 @@
|
|||
.echarts {
|
||||
margin: .5rem 0;
|
||||
text-align: center;
|
||||
}
|
98
themes/LoveIt/assets/css/_partial/_single/_footer.scss
Normal file
|
@ -0,0 +1,98 @@
|
|||
.post-footer {
|
||||
margin-top: 3rem;
|
||||
|
||||
.post-info {
|
||||
border-bottom: 1px solid $global-border-color;
|
||||
padding: 1rem 0 0.3rem;
|
||||
|
||||
[theme=dark] & {
|
||||
border-bottom: 1px solid $global-border-color-dark;
|
||||
}
|
||||
|
||||
.post-info-line {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
|
||||
.post-info-mod {
|
||||
font-size: 0.8em;
|
||||
color: $global-font-secondary-color;
|
||||
|
||||
[theme=dark] & {
|
||||
color: $global-font-secondary-color-dark;
|
||||
}
|
||||
|
||||
@include link(false, false);
|
||||
}
|
||||
|
||||
.post-info-license {
|
||||
font-size: 0.8em;
|
||||
color: $global-font-secondary-color;
|
||||
|
||||
[theme=dark] & {
|
||||
color: $global-font-secondary-color-dark;
|
||||
}
|
||||
|
||||
@include link(false, false);
|
||||
}
|
||||
|
||||
.post-info-md {
|
||||
font-size: 0.8rem;
|
||||
width: 8rem;
|
||||
|
||||
@include link(false, false);
|
||||
}
|
||||
|
||||
.post-info-share {
|
||||
a * {
|
||||
vertical-align: text-bottom;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.post-info-more {
|
||||
padding: 0.3rem 0 1rem;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
font-size: 0.9rem;
|
||||
}
|
||||
|
||||
.post-tags {
|
||||
max-width: 65%;
|
||||
|
||||
* {
|
||||
display: inline;
|
||||
}
|
||||
}
|
||||
|
||||
.post-nav {
|
||||
&::before,
|
||||
&::after {
|
||||
content: ' ';
|
||||
display: table;
|
||||
}
|
||||
|
||||
& a.prev,
|
||||
& a.next {
|
||||
font-size: 1rem;
|
||||
font-weight: 600;
|
||||
@include transition(all 0.3s ease-out);
|
||||
}
|
||||
|
||||
& a.prev {
|
||||
float: left;
|
||||
}
|
||||
|
||||
& a.prev:hover {
|
||||
@include transform(translateX(-4px));
|
||||
}
|
||||
|
||||
& a.next {
|
||||
float: right;
|
||||
}
|
||||
|
||||
& a.next:hover {
|
||||
@include transform(translateX(4px));
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,5 @@
|
|||
iframe.instagram-media {
|
||||
[theme=dark] & {
|
||||
border: none !important;
|
||||
}
|
||||
}
|
4
themes/LoveIt/assets/css/_partial/_single/_mapbox.scss
Normal file
|
@ -0,0 +1,4 @@
|
|||
.mapbox {
|
||||
margin: .5rem 0;
|
||||
padding: .5rem 0;
|
||||
}
|
3
themes/LoveIt/assets/css/_partial/_single/_music.scss
Normal file
|
@ -0,0 +1,3 @@
|
|||
meting-js {
|
||||
margin: .5rem 0;
|
||||
}
|
157
themes/LoveIt/assets/css/_partial/_single/_toc.scss
Normal file
|
@ -0,0 +1,157 @@
|
|||
.toc {
|
||||
.toc-title {
|
||||
font-size: $toc-title-font-size;
|
||||
font-weight: bold;
|
||||
text-transform: uppercase;
|
||||
}
|
||||
|
||||
.toc-content {
|
||||
font-size: $toc-content-font-size;
|
||||
|
||||
ul {
|
||||
text-indent: -0.85rem;
|
||||
padding-left: .8rem;
|
||||
list-style: none;
|
||||
|
||||
a:first-child::before {
|
||||
content: "|";
|
||||
font-weight: bolder;
|
||||
margin-right: .5rem;
|
||||
color: $single-link-color;
|
||||
|
||||
[theme=dark] & {
|
||||
color: $single-link-color-dark;
|
||||
}
|
||||
}
|
||||
|
||||
ul {
|
||||
padding-left: 1.5rem;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
ruby {
|
||||
background: $code-background-color;
|
||||
|
||||
rt {
|
||||
color: $global-font-secondary-color;
|
||||
}
|
||||
|
||||
[theme=dark] & {
|
||||
background: $code-background-color-dark;
|
||||
|
||||
rt {
|
||||
color: $global-font-secondary-color-dark;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#toc-auto {
|
||||
display: block;
|
||||
position: absolute;
|
||||
width: $MAX_LENGTH;
|
||||
max-width: 0;
|
||||
padding: 0 .8rem;
|
||||
border-left: 4px solid $global-border-color;
|
||||
@include overflow-wrap(break-word);
|
||||
box-sizing: border-box;
|
||||
top: 10rem;
|
||||
left: 0;
|
||||
visibility: hidden;
|
||||
|
||||
[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
themes/LoveIt/assets/css/_variables.scss
Normal 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
themes/LoveIt/assets/css/style.scss
Normal 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";
|
66
themes/LoveIt/assets/data/cdn/jsdelivr.yml
Normal file
|
@ -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
themes/LoveIt/assets/data/emoji/apple.yml
Normal 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
|
150
themes/LoveIt/assets/data/emoji/facebook.yml
Normal file
|
@ -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
themes/LoveIt/assets/data/emoji/google.yml
Normal 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
themes/LoveIt/assets/data/emoji/twitter.yml
Normal 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
|