Initial commit
5
archetypes/default.md
Normal file
@@ -0,0 +1,5 @@
|
||||
+++
|
||||
title = '{{ replace .File.ContentBaseName "-" " " | title }}'
|
||||
date = {{ .Date }}
|
||||
draft = true
|
||||
+++
|
||||
BIN
assets/images/avatar.png
Normal file
|
After Width: | Height: | Size: 6.6 MiB |
453
config.toml
Normal file
@@ -0,0 +1,453 @@
|
||||
[module]
|
||||
[module.hugoVersion]
|
||||
extended = true
|
||||
min = "0.62.0"
|
||||
|
||||
# Menu config
|
||||
[menu]
|
||||
[[menu.main]]
|
||||
weight = 1
|
||||
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 = ""
|
||||
[[menu.main]]
|
||||
weight = 2
|
||||
identifier = "tags"
|
||||
pre = ""
|
||||
post = ""
|
||||
name = "Tags"
|
||||
url = "/tags/"
|
||||
title = ""
|
||||
[[menu.main]]
|
||||
weight = 3
|
||||
identifier = "categories"
|
||||
pre = ""
|
||||
post = ""
|
||||
name = "Categories"
|
||||
url = "/categories/"
|
||||
title = ""
|
||||
|
||||
[params]
|
||||
# site default theme ["auto", "light", "dark"]
|
||||
defaultTheme = "auto"
|
||||
# public git repo url only then enableGitInfo is true
|
||||
gitRepo = ""
|
||||
# which hash function used for SRI, when empty, no SRI is used
|
||||
# ["sha256", "sha384", "sha512", "md5"]
|
||||
fingerprint = ""
|
||||
# date format
|
||||
dateFormat = "2006-01-02"
|
||||
# website title for Open Graph and Twitter Cards
|
||||
title = "KeepIt"
|
||||
# website description for RSS, SEO, Open Graph and Twitter Cards
|
||||
description = "This is my KeepIt site"
|
||||
# website images for Open Graph and Twitter Cards
|
||||
images = []
|
||||
|
||||
# Header config
|
||||
[params.header]
|
||||
# desktop header mode ["fixed", "normal", "auto"]
|
||||
desktopMode = "fixed"
|
||||
# mobile header mode ["fixed", "normal", "auto"]
|
||||
mobileMode = "auto"
|
||||
# Header title config
|
||||
[params.header.title]
|
||||
# URL of the LOGO
|
||||
logo = ""
|
||||
# title name
|
||||
name = "My KeepIt site"
|
||||
# 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 = ""
|
||||
# whether to use typeit animation for title name
|
||||
typeit = false
|
||||
|
||||
# Footer config
|
||||
[params.footer]
|
||||
enable = true
|
||||
# Custom content (HTML format is supported)
|
||||
custom = ""
|
||||
# whether to show Hugo and theme info
|
||||
hugo = true
|
||||
# whether to show copyright info
|
||||
copyright = true
|
||||
# whether to show the author
|
||||
author = true
|
||||
# site creation time
|
||||
since = 2022
|
||||
# ICP info only in China (HTML format is supported)
|
||||
icp = ""
|
||||
# license info (HTML format is supported)
|
||||
license= ""
|
||||
|
||||
# Section (all posts) page config
|
||||
[params.section]
|
||||
# special amount of posts in each section page
|
||||
paginate = 20
|
||||
# date format (month and day)
|
||||
dateFormat = "01-02"
|
||||
# amount of RSS pages
|
||||
rss = 10
|
||||
|
||||
# List (category or tag) page config
|
||||
[params.list]
|
||||
# special amount of posts in each list page
|
||||
paginate = 20
|
||||
# date format (month and day)
|
||||
dateFormat = "01-02"
|
||||
# amount of RSS pages
|
||||
rss = 10
|
||||
|
||||
# App icon config
|
||||
[params.app]
|
||||
# optional site title override for the app when added to an iOS home screen or Android launcher
|
||||
title = "My KeepIt site"
|
||||
# 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-11 tile color
|
||||
tileColor = "#da532c"
|
||||
|
||||
# Search config
|
||||
[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
|
||||
[params.search.algolia]
|
||||
index = ""
|
||||
appID = ""
|
||||
searchKey = ""
|
||||
|
||||
# Home page config
|
||||
[params.home]
|
||||
# amount of RSS pages
|
||||
rss = 10
|
||||
# Home page profile
|
||||
[params.home.profile]
|
||||
enable = true
|
||||
# Gravatar Email for preferred avatar in home page
|
||||
gravatarEmail = "test1@example.com"
|
||||
# URL of avatar shown in home page
|
||||
avatarURL = ""
|
||||
# title shown in home page (HTML format is supported)
|
||||
title = ""
|
||||
# subtitle shown in home page
|
||||
subtitle = "This is my KeepIt site"
|
||||
# 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
|
||||
[params.home.posts]
|
||||
enable = true
|
||||
# special amount of posts in each home posts page
|
||||
paginate = 6
|
||||
# Social config in home page
|
||||
[params.social]
|
||||
GitHub = "xxx"
|
||||
Linkedin = "xxx"
|
||||
Twitter = "xxx"
|
||||
Instagram = "xxx"
|
||||
Facebook = "xxx"
|
||||
Telegram = "xxx"
|
||||
Medium = "xxx"
|
||||
Gitlab = "xxx"
|
||||
Youtubelegacy = "xxx"
|
||||
Youtubecustom = "xxx"
|
||||
Youtubechannel = "xxx"
|
||||
Tumblr = "xxx"
|
||||
Quora = "xxx"
|
||||
Keybase = "xxx"
|
||||
Pinterest = "xxx"
|
||||
Reddit = "xxx"
|
||||
Codepen = "xxx"
|
||||
FreeCodeCamp = "xxx"
|
||||
Bitbucket = "xxx"
|
||||
Stackoverflow = "xxx"
|
||||
Weibo = "xxx"
|
||||
Odnoklassniki = "xxx"
|
||||
VK = "xxx"
|
||||
Flickr = "xxx"
|
||||
Xing = "xxx"
|
||||
Snapchat = "xxx"
|
||||
Soundcloud = "xxx"
|
||||
Spotify = "xxx"
|
||||
Bandcamp = "xxx"
|
||||
Paypal = "xxx"
|
||||
Fivehundredpx = "xxx"
|
||||
Mix = "xxx"
|
||||
Goodreads = "xxx"
|
||||
Lastfm = "xxx"
|
||||
Steam = "xxx"
|
||||
Thingiverse = "xxx"
|
||||
Gitea = "xxx"
|
||||
Email = "xxx"
|
||||
|
||||
# Page global config
|
||||
[params.page]
|
||||
# whether to hide a page from home page
|
||||
hiddenFromHomePage = false
|
||||
# whether to hide a page from search results
|
||||
hiddenFromSearch = false
|
||||
# whether to enable twemoji
|
||||
twemoji = false
|
||||
# whether to enable lightgallery
|
||||
lightgallery = false
|
||||
# whether to enable the ruby extended syntax
|
||||
ruby = true
|
||||
# whether to enable the fraction extended syntax
|
||||
fraction = true
|
||||
# whether to enable the fontawesome extended syntax
|
||||
fontawesome = true
|
||||
# whether to show link to Raw Markdown content of the content
|
||||
linkToMarkdown = true
|
||||
# whether to show the full text content in RSS
|
||||
rssFullText = false
|
||||
# Table of the contents config
|
||||
[params.page.toc]
|
||||
# whether to enable the table of the contents
|
||||
enable = true
|
||||
# whether to keep the static table of the contents in front of the post
|
||||
keepStatic = false
|
||||
# whether to make the table of the contents in the sidebar automatically collapsed
|
||||
auto = true
|
||||
# Code config
|
||||
[params.page.code]
|
||||
# whether to show the copy button of the code block
|
||||
copy = true
|
||||
# the maximum number of lines of displayed code by default
|
||||
maxShownLines = 50
|
||||
# KaTeX mathematical formulas config (KaTeX https://katex.org/)
|
||||
[params.page.math]
|
||||
enable = false
|
||||
# default inline delimiter is $ ... $ and \( ... \)
|
||||
inlineLeftDelimiter = ""
|
||||
inlineRightDelimiter = ""
|
||||
# default block delimiter is $$ ... $$, \[ ... \], \begin{equation} ... \end{equation} and some other functions
|
||||
blockLeftDelimiter = ""
|
||||
blockRightDelimiter = ""
|
||||
# KaTeX extension copy_tex
|
||||
copyTex = true
|
||||
# KaTeX extension mhchem
|
||||
mhchem = true
|
||||
# Mapbox GL JS config (Mapbox GL JS https://docs.mapbox.com/mapbox-gl-js)
|
||||
[params.page.mapbox]
|
||||
# access token of Mapbox GL JS
|
||||
# Mapbox GL JS 的 access token
|
||||
accessToken = ""
|
||||
# style for the light theme
|
||||
lightStyle = "mapbox://styles/mapbox/light-v10?optimize=true"
|
||||
# style for the dark theme
|
||||
darkStyle = "mapbox://styles/mapbox/dark-v10?optimize=true"
|
||||
# whether to add NavigationControl (https://docs.mapbox.com/mapbox-gl-js/api/#navigationcontrol)
|
||||
navigation = true
|
||||
# whether to add GeolocateControl (https://docs.mapbox.com/mapbox-gl-js/api/#geolocatecontrol)
|
||||
geolocate = true
|
||||
# whether to add ScaleControl (https://docs.mapbox.com/mapbox-gl-js/api/#scalecontrol)
|
||||
scale = true
|
||||
# whether to add FullscreenControl (https://docs.mapbox.com/mapbox-gl-js/api/#fullscreencontrol)
|
||||
fullscreen = true
|
||||
# Social share links in post page
|
||||
[params.page.share]
|
||||
enable = true
|
||||
Twitter = false
|
||||
Facebook = true
|
||||
Linkedin = false
|
||||
Whatsapp = false
|
||||
Pinterest = false
|
||||
Tumblr = false
|
||||
HackerNews = false
|
||||
Reddit = false
|
||||
VK = false
|
||||
Buffer = false
|
||||
Xing = false
|
||||
Line = false
|
||||
Instapaper = false
|
||||
Pocket = false
|
||||
Flipboard = false
|
||||
Weibo = false
|
||||
Blogger = false
|
||||
Baidu = false
|
||||
Odnoklassniki = false
|
||||
Evernote = false
|
||||
Skype = false
|
||||
Trello = false
|
||||
Mix = false
|
||||
# Comment config
|
||||
[params.page.comment]
|
||||
enable = false
|
||||
# Disqus comment config (https://disqus.com/)
|
||||
# Disqus 评论系统设置 (https://disqus.com/)
|
||||
[params.page.comment.disqus]
|
||||
enable = false
|
||||
# Disqus shortname to use Disqus in posts
|
||||
# Disqus 的 shortname,用来在文章中启用 Disqus 评论系统
|
||||
shortname = ""
|
||||
# Gitalk comment config (https://github.com/gitalk/gitalk)
|
||||
[params.page.comment.gitalk]
|
||||
enable = false
|
||||
owner = ""
|
||||
repo = ""
|
||||
clientId = ""
|
||||
clientSecret = ""
|
||||
# Valine comment config (https://github.com/xCss/Valine)
|
||||
[params.page.comment.valine]
|
||||
enable = false
|
||||
appId = ""
|
||||
appKey = ""
|
||||
placeholder = ""
|
||||
avatar = "mp"
|
||||
meta= ""
|
||||
pageSize = 10
|
||||
lang = ""
|
||||
visitor = true
|
||||
recordIP = true
|
||||
highlight = true
|
||||
enableQQ = false
|
||||
serverURLs = ""
|
||||
# emoji data file name, default is "google.yml"
|
||||
# ["apple.yml", "google.yml", "facebook.yml", "twitter.yml"]
|
||||
# located in "themes/KeepIt/assets/data/emoji/" directory
|
||||
# you can store your own data files in the same path under your project:
|
||||
# "assets/data/emoji/"
|
||||
emoji = ""
|
||||
# Facebook comment config (https://developers.facebook.com/docs/plugins/comments)
|
||||
[params.page.comment.facebook]
|
||||
enable = false
|
||||
width = "100%"
|
||||
numPosts = 10
|
||||
appId = ""
|
||||
languageCode = ""
|
||||
# Telegram comments config (https://comments.app/)
|
||||
[params.page.comment.telegram]
|
||||
enable = false
|
||||
siteID = ""
|
||||
limit = 5
|
||||
height = ""
|
||||
color = ""
|
||||
colorful = true
|
||||
dislikes = false
|
||||
outlined = false
|
||||
# Commento comment config (https://commento.io/)
|
||||
[params.page.comment.commento]
|
||||
enable = false
|
||||
# Utterances comment config (https://utteranc.es/)
|
||||
[params.page.comment.utterances]
|
||||
enable = false
|
||||
# owner/repo
|
||||
repo = ""
|
||||
issueTerm = "pathname"
|
||||
label = ""
|
||||
lightTheme = "github-light"
|
||||
darkTheme = "github-dark"
|
||||
# Third-party library config
|
||||
[params.page.library]
|
||||
[params.page.library.css]
|
||||
# someCSS = "some.css"
|
||||
# located in "assets/"
|
||||
# Or
|
||||
# someCSS = "https://cdn.example.com/some.css"
|
||||
[params.page.library.js]
|
||||
# someJavascript = "some.js"
|
||||
# located in "assets/"
|
||||
# Or
|
||||
# someJavascript = "https://cdn.example.com/some.js"
|
||||
# Page SEO config
|
||||
[params.page.seo]
|
||||
# image URL
|
||||
images = []
|
||||
# Publisher info
|
||||
[params.page.seo.publisher]
|
||||
name = ""
|
||||
logoUrl = ""
|
||||
|
||||
# TypeIt config
|
||||
[params.typeit]
|
||||
# typing speed between each step (measured in milliseconds)
|
||||
speed = 100
|
||||
# blinking speed of the cursor (measured in milliseconds)
|
||||
cursorSpeed = 1000
|
||||
# character used for the cursor (HTML format is supported)
|
||||
cursorChar = "|"
|
||||
# cursor duration after typing finishing (measured in milliseconds, "-1" means unlimited)
|
||||
duration = -1
|
||||
|
||||
# Site verification code for Google/Bing/Yandex/Pinterest/Baidu
|
||||
[params.verification]
|
||||
google = ""
|
||||
bing = ""
|
||||
yandex = ""
|
||||
pinterest = ""
|
||||
baidu = ""
|
||||
|
||||
# Site SEO config
|
||||
[params.seo]
|
||||
# image URL
|
||||
image = ""
|
||||
# thumbnail URL
|
||||
thumbnailUrl = ""
|
||||
|
||||
# Analytics config
|
||||
[params.analytics]
|
||||
enable = false
|
||||
# Google Analytics
|
||||
[params.analytics.google]
|
||||
id = ""
|
||||
# whether to anonymize IP
|
||||
anonymizeIP = true
|
||||
# Fathom Analytics
|
||||
[params.analytics.fathom]
|
||||
id = ""
|
||||
# server url for your tracker if you're self hosting
|
||||
server = ""
|
||||
|
||||
# Cookie consent config
|
||||
[params.cookieconsent]
|
||||
enable = false
|
||||
# text strings used for Cookie consent banner
|
||||
[params.cookieconsent.content]
|
||||
message = ""
|
||||
dismiss = ""
|
||||
link = ""
|
||||
|
||||
# CDN config for third-party library files
|
||||
[params.cdn]
|
||||
# CDN data file name, disabled by default
|
||||
# ["jsdelivr.yml"]
|
||||
# located in "themes/KeepIt/assets/data/cdn/" directory
|
||||
# you can store your own data files in the same path under your project:
|
||||
# "assets/data/cdn/"
|
||||
data = "jsdelivr.yml"
|
||||
|
||||
# Compatibility config
|
||||
[params.compatibility]
|
||||
# whether to use Polyfill.io to be compatible with older browsers
|
||||
polyfill = false
|
||||
# whether to use object-fit-images to be compatible with older browsers
|
||||
objectFit = false
|
||||
BIN
content/posts/ freenas-win10-le/FreenasWin10LE7.png
Normal file
|
After Width: | Height: | Size: 35 KiB |
BIN
content/posts/ freenas-win10-le/featured.png
Normal file
|
After Width: | Height: | Size: 67 KiB |
60
content/posts/ freenas-win10-le/index.en.md
Normal file
@@ -0,0 +1,60 @@
|
||||
---
|
||||
weight: 1
|
||||
title: "Windows 10 LE on Freenas"
|
||||
date: "2020-05-12T00:00:00Z"
|
||||
lastmod: "2020-05-12T00:00:00Z"
|
||||
|
||||
draft: false
|
||||
author: "Spencer"
|
||||
description: "A guide for running Windows 10 LE in a Freenas VM"
|
||||
images: []
|
||||
resources:
|
||||
- name: "featured-image"
|
||||
src: "featured.png"
|
||||
|
||||
tags: ["Freenas"]
|
||||
categories: [""]
|
||||
|
||||
lightgallery: true
|
||||
|
||||
toc:
|
||||
auto: false
|
||||
---
|
||||
|
||||
|
||||
FreeNAS' virtual machine utilites are still very limited and while additions are being made most will find that getting a VM setup and running can be tricky when compared to say Virtualbox. This tutorial is just a quick overview of what I needed to do to get Windows 10 LE up an running on FreeNAS.
|
||||
|
||||
### Creating the install image
|
||||
|
||||
Windows 10 LE is a lightweight version of Windows 10. I downloaded my copy [here](https://archive.org/download/Windows.10.Lite.Edition.v6.x64.2018).
|
||||
|
||||
Next we need to be able to boot from this image in UEFI. I found that I was unable to do this with the downloaded image however after a lot of research I came accross this post [here](https://forum.imgburn.com/index.php?/topic/24193-problem-i-can-not-create-a-uefi-bootable-iso-image/). The process while clunky did produce an image that was UEFI bootable on FreeNAS.
|
||||
|
||||
All that is required to perform this conversion is [Rufus](https://rufus.ie/), [mkisofs](http://reboot.pro/index.php?app=core&module=attach§ion=attach&attach_id=15214) and a thumb drive large enough for the Windows 10 image.
|
||||
|
||||
1. Using Rufus create a bootable usb drive using the Window 10 image.
|
||||
|
||||

|
||||
|
||||
2. Using mkisofs create a UEFI bootable Windows 10 LE image. **inputdir** will be the drive letter corresponding to your usb drive and **outputiso** will be the save name and location of the created iso
|
||||
|
||||
```
|
||||
set inputdir=D:\
|
||||
set outputiso=C:\WINDOWS10LE.iso
|
||||
set label="WINDOWS10_LE_UEFI"
|
||||
set biosboot=Boot/etfsboot.com
|
||||
set efiboot=efi/microsoft/boot/efisys.bin
|
||||
mkisofs -iso-level 4 -l -R -UDF -D -volid %label% -b %biosboot% -no-emul-boot \
|
||||
-boot-load-size 8 -hide boot.catalog -eltorito-alt-boot -eltorito-platform efi \
|
||||
-no-emul-boot -b %efiboot% -o %outputiso% %inputdir%
|
||||
```
|
||||
Congratulations! You now have a Windows 10 LE image that is bootable in a FreeNAS virtual machine. Next lets get to installing it.
|
||||
|
||||
### Setting up the virtual machine
|
||||
|
||||
This part is pretty streamlined in newer versions of FreeNAS with everything being done from the GUI.
|
||||
|
||||
The details of my VM configuration are listed here.
|
||||

|
||||
|
||||
I wouldn't recommend using a disk smaller than 17GB.
|
||||
BIN
content/posts/ freenas-win10-le/rufus.png
Normal file
|
After Width: | Height: | Size: 47 KiB |
BIN
content/posts/check-digits/featured.jpg
Normal file
|
After Width: | Height: | Size: 13 KiB |
36
content/posts/check-digits/index.en.md
Normal file
@@ -0,0 +1,36 @@
|
||||
---
|
||||
weight: 1
|
||||
title: "Using Check Digits for Better UX"
|
||||
date: "2020-06-20T00:00:00Z"
|
||||
lastmod: "2020-06-20T00:00:00Z"
|
||||
draft: false
|
||||
author: "Spencer"
|
||||
description: "How using a check digit can make for a better user experience in key entry scenarios."
|
||||
images: []
|
||||
resources:
|
||||
- name: "featured-image"
|
||||
src: "featured.jpg"
|
||||
|
||||
tags: []
|
||||
categories: ["wedding-project"]
|
||||
|
||||
lightgallery: true
|
||||
|
||||
toc:
|
||||
auto: false
|
||||
---
|
||||
|
||||
Recently I was tasked with creating a website for my sister wedding, historically hosted here (try 123456789 as an RSVP code). One of the features required was an RSVP system so guests could easily inform us if they were coming and if they were bringing a plus one. A code system seemed to be the simplest approach including each guest's unique code in the invitation which they could then use to RSVP preventing just anyone from RSVP'in to the event. The first problem to solve was knowing whether to prompt them to input plus one information since I wanted to keep the whole process down to a single network request for simplicity. Using a check digit ended up being the perfect solution for this while also including the benefit of reducing the chance of a guest accidentally inputting the wrong code and becoming frustrated when the request wouldn't go through.
|
||||
|
||||
## How do check digits work?
|
||||
For those that don't know how check digits work the process is pretty simple. You simply include 1 extra digit to the end of any code or id that is generated using some formula. Usually a modulus is used to reduce the result to a single digit.
|
||||
|
||||
## How I used check digits
|
||||
In my application I leveraged check digits in 2 ways.
|
||||
The first is by not presenting the RSVP form until a possible RSVP code is inputted. This stops the user from entering the rest of their information until they get to code correct without of the need of an additional network request. A single mistake will result in the form not opening and them being required to recheck their input. Multiple mistakes could result in the form opening if they happen to be particularly unlucky however the server does validate if the code later and will reject the request if it is not correct.
|
||||
The other way I used a check digit was to solve my original problem of when to present the plus one form. By using a secondary check digit I could actually run 2 checks on the code and if they both passed then the user would be presented with the plus one section.
|
||||
The best part about this solution is that it doesn't require a timely request to a server and the additional infrastructure and security considerations that go along with that. There may be other security concerns however.
|
||||
|
||||
## Security concerns
|
||||
Obviously there may be some security concerns with using a check digit the fact that it reduces the overall number of possible codes for a given code length. This is of course true because you can't take the check digit in account when calculating the total possible codes. So if before adding a check digit your code was 6 digits long and therefor had a million possibilities then after adding a check digits this would be the same. In my application I was using it for a small wedding on a non critical system and I used Re-Captcha as a second set of security so that possible codes couldn't be brute forced.
|
||||
Overall using check digits ended up being a simple solution to my problem and the whole system ended up working flawlessly.
|
||||
BIN
content/posts/pinscott-wedding/featured.jpg
Normal file
|
After Width: | Height: | Size: 264 KiB |
26
content/posts/pinscott-wedding/index.en.md
Normal file
@@ -0,0 +1,26 @@
|
||||
---
|
||||
weight: 1
|
||||
title: "Pinscott Wedding"
|
||||
date: "2019-12-03T00:00:00Z"
|
||||
lastmod: "2019-12-03T00:00:00Z"
|
||||
|
||||
external_link: "https://spencassemble.com/wedding"
|
||||
url_code: "https://gitlab.spencassemble.com/spencerpincott/pinscott-wedding"
|
||||
|
||||
draft: false
|
||||
author: "Spencer"
|
||||
description: "Website for my sister's wedding"
|
||||
images: []
|
||||
resources:
|
||||
- name: "featured-image"
|
||||
src: "featured.jpg"
|
||||
|
||||
tags: []
|
||||
categories: ["wedding-project"]
|
||||
|
||||
lightgallery: true
|
||||
|
||||
toc:
|
||||
auto: false
|
||||
---
|
||||
This project was just a little something I threw together for my sister's wedding. It includes an about page, some Q&A, links to a registry and a clever RSVP system. It was built using the hugo framework using the [Dimensions theme](https://html5up.net/dimension).
|
||||
BIN
content/posts/search-mapper/featured.jpg
Normal file
|
After Width: | Height: | Size: 174 KiB |
26
content/posts/search-mapper/index.en.md
Normal file
@@ -0,0 +1,26 @@
|
||||
---
|
||||
weight: 1
|
||||
title: "University Project Finder"
|
||||
date: "2019-12-03T00:00:00Z"
|
||||
lastmod: "2019-12-03T00:00:00Z"
|
||||
|
||||
external_link: "https://spencassemble.com/upf"
|
||||
url_code: "https://gitlab.spencassemble.com/spencerpincott/upf"
|
||||
|
||||
draft: false
|
||||
author: "Spencer"
|
||||
description: "Queen's university final project"
|
||||
images: []
|
||||
resources:
|
||||
- name: "featured-image"
|
||||
src: "featured.jpg"
|
||||
|
||||
tags: ["PHP"]
|
||||
categories: []
|
||||
|
||||
lightgallery: true
|
||||
|
||||
toc:
|
||||
auto: false
|
||||
---
|
||||
This was my final undergrad project for university. The requirements were to create a website to aid biology students find their undergraduate project. It included the ability to search by keyword or phrase on all posted project, filter them and then message professors about them. It would leverage the Queen's SSO for student and professor sign up as well as sending out notificaton emails about new posting and message requests. The project never got a chance to be hosted however because of security reasons. This being my first big site there were obvious gaps in the security and the end of my degree had come and gone.
|
||||
BIN
content/posts/upf/featured.jpg
Normal file
|
After Width: | Height: | Size: 316 KiB |
26
content/posts/upf/index.en.md
Normal file
@@ -0,0 +1,26 @@
|
||||
---
|
||||
weight: 1
|
||||
title: "Search Mapper"
|
||||
date: "2019-12-03T00:00:00Z"
|
||||
lastmod: "2019-12-03T00:00:00Z"
|
||||
|
||||
external_link: "https://spencassemble.com/search-mapper"
|
||||
url_code: "https://gitlab.spencassemble.com/spencerpincott/search-mapper"
|
||||
|
||||
draft: false
|
||||
author: "Spencer"
|
||||
description: "Maps housing searches"
|
||||
images: []
|
||||
resources:
|
||||
- name: "featured-image"
|
||||
src: "featured.jpg"
|
||||
|
||||
tags: ["node.js"]
|
||||
categories: []
|
||||
|
||||
lightgallery: true
|
||||
|
||||
toc:
|
||||
auto: false
|
||||
---
|
||||
This is a simple project a threw together out of necessity when I was looking at renting a new place and was later expanded upon when I started looking for a place to buy. It first allows Kijiji searches to be mapped out, a feature Kijiji themselves does not offer. It does this through page scrapping and is extremly inefficient. I later added support for using Remax and Realtor. While these sites do offer the ability to map search results I didn't enjoy how they were grouped and instead decided to expand this project leveraging their APIs and data.
|
||||
5
hugo.toml
Normal file
@@ -0,0 +1,5 @@
|
||||
baseURL = 'https://spencassemble.com/'
|
||||
languageCode = 'en-us'
|
||||
title = 'SpencAssemble'
|
||||
theme = 'keepit'
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
#id-1{text-align:right}#id-1 strong{color:#00b1ff}
|
||||
@@ -0,0 +1 @@
|
||||
{"Target":"css/2f1ef0.min.css","MediaType":"text/css","Data":{}}
|
||||
@@ -0,0 +1 @@
|
||||
#id-1{text-align:right}
|
||||
@@ -0,0 +1 @@
|
||||
{"Target":"css/790698.min.css","MediaType":"text/css","Data":{}}
|
||||
@@ -0,0 +1 @@
|
||||
#id-1 img{height:1.25rem}
|
||||
@@ -0,0 +1 @@
|
||||
{"Target":"css/f79aa6.min.css","MediaType":"text/css","Data":{}}
|
||||
@@ -0,0 +1 @@
|
||||
{"Target":"css/style.min.css","MediaType":"text/css","Data":{}}
|
||||
@@ -0,0 +1,3 @@
|
||||
[theme=dark] .aplayer{background:#212121}[theme=dark] .aplayer.aplayer-withlist .aplayer-info{border-bottom-color:#5c5c5c}[theme=dark] .aplayer.aplayer-fixed .aplayer-list{border-color:#5c5c5c}[theme=dark] .aplayer .aplayer-body{background-color:#212121}[theme=dark] .aplayer .aplayer-info{border-top-color:#212121}[theme=dark] .aplayer .aplayer-info .aplayer-music .aplayer-title{color:#fff}[theme=dark] .aplayer .aplayer-info .aplayer-music .aplayer-author{color:#fff}[theme=dark] .aplayer .aplayer-info .aplayer-controller .aplayer-time{color:#eee}[theme=dark] .aplayer .aplayer-info .aplayer-controller .aplayer-time .aplayer-icon path{fill:#eee}[theme=dark] .aplayer .aplayer-list{background-color:#212121}[theme=dark] .aplayer .aplayer-list::-webkit-scrollbar-thumb{background-color:#999}[theme=dark] .aplayer .aplayer-list::-webkit-scrollbar-thumb:hover{background-color:#bbb}[theme=dark] .aplayer .aplayer-list li{color:#fff;border-top-color:#666}[theme=dark] .aplayer .aplayer-list li:hover{background:#4e4e4e}[theme=dark] .aplayer .aplayer-list li.aplayer-list-light{background:#6c6c6c}[theme=dark] .aplayer .aplayer-list li .aplayer-list-index{color:#ddd}[theme=dark] .aplayer .aplayer-list li .aplayer-list-author{color:#ddd}[theme=dark] .aplayer .aplayer-lrc{text-shadow:-1px -1px 0 #666}[theme=dark] .aplayer .aplayer-lrc:before{background:-moz-linear-gradient(top, #212121 0%, rgba(33,33,33,0) 100%);background:-webkit-linear-gradient(top, #212121 0%, rgba(33,33,33,0) 100%);background:linear-gradient(to bottom, #212121 0%, rgba(33,33,33,0) 100%);filter:progid:DXImageTransform.Microsoft.gradient( startColorstr='#212121', endColorstr='#00212121',GradientType=0 )}[theme=dark] .aplayer .aplayer-lrc:after{background:-moz-linear-gradient(top, rgba(33,33,33,0) 0%, rgba(33,33,33,0.8) 100%);background:-webkit-linear-gradient(top, rgba(33,33,33,0) 0%, rgba(33,33,33,0.8) 100%);background:linear-gradient(to bottom, rgba(33,33,33,0) 0%, rgba(33,33,33,0.8) 100%);filter:progid:DXImageTransform.Microsoft.gradient( startColorstr='#00212121', endColorstr='#cc212121',GradientType=0 )}[theme=dark] .aplayer .aplayer-lrc p{color:#fff}[theme=dark] .aplayer .aplayer-miniswitcher{background:#484848}[theme=dark] .aplayer .aplayer-miniswitcher .aplayer-icon path{fill:#eee}
|
||||
|
||||
/*# sourceMappingURL=dark.min.css.map */
|
||||
@@ -0,0 +1 @@
|
||||
{"Target":"lib/aplayer/dark.min.css","MediaType":"text/css","Data":{}}
|
||||
BIN
static/images/fav/android-chrome-192x192.png
Normal file
|
After Width: | Height: | Size: 36 KiB |
BIN
static/images/fav/apple-touch-icon.png
Normal file
|
After Width: | Height: | Size: 29 KiB |
9
static/images/fav/browserconfig.xml
Normal file
@@ -0,0 +1,9 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<browserconfig>
|
||||
<msapplication>
|
||||
<tile>
|
||||
<square150x150logo src="/images/fav/mstile-150x150.png"/>
|
||||
<TileColor>#ff46e6</TileColor>
|
||||
</tile>
|
||||
</msapplication>
|
||||
</browserconfig>
|
||||
BIN
static/images/fav/favicon-16x16.png
Normal file
|
After Width: | Height: | Size: 1.2 KiB |
BIN
static/images/fav/favicon-32x32.png
Normal file
|
After Width: | Height: | Size: 2.1 KiB |
BIN
static/images/fav/favicon.ico
Normal file
|
After Width: | Height: | Size: 15 KiB |
BIN
static/images/fav/mstile-150x150.png
Normal file
|
After Width: | Height: | Size: 20 KiB |
23
static/images/fav/safari-pinned-tab.svg
Normal file
@@ -0,0 +1,23 @@
|
||||
<?xml version="1.0" standalone="no"?>
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 20010904//EN"
|
||||
"http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
|
||||
<svg version="1.0" xmlns="http://www.w3.org/2000/svg"
|
||||
width="220.000000pt" height="220.000000pt" viewBox="0 0 220.000000 220.000000"
|
||||
preserveAspectRatio="xMidYMid meet">
|
||||
<metadata>
|
||||
Created by potrace 1.14, written by Peter Selinger 2001-2017
|
||||
</metadata>
|
||||
<g transform="translate(0.000000,220.000000) scale(0.100000,-0.100000)"
|
||||
fill="#000000" stroke="none">
|
||||
<path d="M215 1923 c-54 -4 -186 -24 -202 -30 -11 -4 -13 -144 -13 -753 l0
|
||||
-748 113 -7 c109 -7 463 13 616 35 35 5 68 7 73 4 4 -3 8 -19 8 -35 0 -44 20
|
||||
-117 36 -130 8 -6 14 -20 14 -30 0 -47 44 -25 142 69 47 46 108 81 140 82 4 0
|
||||
20 -18 35 -41 l28 -40 73 -2 c82 -3 80 -7 57 88 -26 110 -21 151 30 230 25 39
|
||||
45 73 45 76 0 22 -55 111 -80 129 -62 44 -39 61 124 90 181 32 287 72 450 172
|
||||
123 74 179 126 211 195 34 70 26 100 -37 152 -96 78 -259 104 -390 63 -35 -11
|
||||
-82 -25 -105 -31 -23 -6 -66 -32 -95 -57 -29 -24 -59 -43 -68 -42 -8 2 -57 67
|
||||
-110 146 -68 101 -112 156 -155 192 -33 28 -61 55 -63 60 -2 6 -9 10 -16 10
|
||||
-7 0 -21 9 -30 19 -10 11 -45 29 -79 42 -34 12 -68 27 -74 32 -7 5 -13 7 -13
|
||||
4 0 -3 -28 4 -62 14 -125 39 -404 58 -603 42z"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.2 KiB |
14
static/images/fav/site.webmanifest
Normal file
@@ -0,0 +1,14 @@
|
||||
{
|
||||
"name": "SpencAssemble",
|
||||
"short_name": "SpencAssemble",
|
||||
"icons": [
|
||||
{
|
||||
"src": "/images/fav/android-chrome-192x192.png",
|
||||
"sizes": "192x192",
|
||||
"type": "image/png"
|
||||
}
|
||||
],
|
||||
"theme_color": "#ffffff",
|
||||
"background_color": "#ffffff",
|
||||
"display": "standalone"
|
||||
}
|
||||
82
themes/keepit/.github/workflows/codeql.yml
vendored
Normal file
@@ -0,0 +1,82 @@
|
||||
# For most projects, this workflow file will not need changing; you simply need
|
||||
# to commit it to your repository.
|
||||
#
|
||||
# You may wish to alter this file to override the set of languages analyzed,
|
||||
# or to provide custom queries or build logic.
|
||||
#
|
||||
# ******** NOTE ********
|
||||
# We have attempted to detect the languages in your repository. Please check
|
||||
# the `language` matrix defined below to confirm you have the correct set of
|
||||
# supported CodeQL languages.
|
||||
#
|
||||
name: "CodeQL"
|
||||
|
||||
on:
|
||||
push:
|
||||
branches: [ "master" ]
|
||||
pull_request:
|
||||
# The branches below must be a subset of the branches above
|
||||
branches: [ "master" ]
|
||||
schedule:
|
||||
- cron: '45 19 * * 4'
|
||||
|
||||
jobs:
|
||||
analyze:
|
||||
name: Analyze
|
||||
# Runner size impacts CodeQL analysis time. To learn more, please see:
|
||||
# - https://gh.io/recommended-hardware-resources-for-running-codeql
|
||||
# - https://gh.io/supported-runners-and-hardware-resources
|
||||
# - https://gh.io/using-larger-runners
|
||||
# Consider using larger runners for possible analysis time improvements.
|
||||
runs-on: ${{ (matrix.language == 'swift' && 'macos-latest') || 'ubuntu-latest' }}
|
||||
timeout-minutes: ${{ (matrix.language == 'swift' && 120) || 360 }}
|
||||
permissions:
|
||||
actions: read
|
||||
contents: read
|
||||
security-events: write
|
||||
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
language: [ 'javascript-typescript' ]
|
||||
# CodeQL supports [ 'c-cpp', 'csharp', 'go', 'java-kotlin', 'javascript-typescript', 'python', 'ruby', 'swift' ]
|
||||
# Use only 'java-kotlin' to analyze code written in Java, Kotlin or both
|
||||
# Use only 'javascript-typescript' to analyze code written in JavaScript, TypeScript or both
|
||||
# Learn more about CodeQL language support at https://aka.ms/codeql-docs/language-support
|
||||
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v3
|
||||
|
||||
# Initializes the CodeQL tools for scanning.
|
||||
- name: Initialize CodeQL
|
||||
uses: github/codeql-action/init@v2
|
||||
with:
|
||||
languages: ${{ matrix.language }}
|
||||
# If you wish to specify custom queries, you can do so here or in a config file.
|
||||
# By default, queries listed here will override any specified in a config file.
|
||||
# Prefix the list here with "+" to use these queries and those in the config file.
|
||||
|
||||
# For more details on CodeQL's query packs, refer to: https://docs.github.com/en/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/configuring-code-scanning#using-queries-in-ql-packs
|
||||
# queries: security-extended,security-and-quality
|
||||
|
||||
|
||||
# Autobuild attempts to build any compiled languages (C/C++, C#, Go, Java, or Swift).
|
||||
# If this step fails, then you should remove it and run the build manually (see below)
|
||||
- name: Autobuild
|
||||
uses: github/codeql-action/autobuild@v2
|
||||
|
||||
# ℹ️ Command-line programs to run using the OS shell.
|
||||
# 📚 See https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idstepsrun
|
||||
|
||||
# If the Autobuild fails above, remove it and uncomment the following three lines.
|
||||
# modify them (or add more) to build your code if your project, please refer to the EXAMPLE below for guidance.
|
||||
|
||||
# - run: |
|
||||
# echo "Run, Build Application using script"
|
||||
# ./location_of_script_within_repo/buildscript.sh
|
||||
|
||||
- name: Perform CodeQL Analysis
|
||||
uses: github/codeql-action/analyze@v2
|
||||
with:
|
||||
category: "/language:${{matrix.language}}"
|
||||
15
themes/keepit/.gitignore
vendored
Normal file
@@ -0,0 +1,15 @@
|
||||
# Hugo default output directory
|
||||
/public
|
||||
|
||||
## OS Files
|
||||
# Windows
|
||||
Thumbs.db
|
||||
ehthumbs.db
|
||||
Desktop.ini
|
||||
$RECYCLE.BIN/
|
||||
|
||||
# OSX
|
||||
.DS_Store
|
||||
|
||||
# Linux
|
||||
.directory
|
||||
0
themes/keepit/.hugo_build.lock
Normal file
21
themes/keepit/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.
|
||||
203
themes/keepit/README.md
Normal file
@@ -0,0 +1,203 @@
|
||||
# KeepIt Theme | Hugo [](https://app.netlify.com/sites/hugo-keepit/deploys)
|
||||
|
||||
[](https://github.com/Fastbyte01/KeepIt/releases)
|
||||
[](https://gohugo.io/)
|
||||
[](https://github.com/Fastbyte01/KeepIt/blob/master/LICENSE)
|
||||
[](https://sonarcloud.io/summary/new_code?id=dillonzq_KeepIt)
|
||||
[](https://circleci.com/gh/dillonzq/KeepIt/tree/master)
|
||||
|
||||
English README | [简体中文说明](https://github.com/Fastbyte01/KeepIt/blob/master/README.zh-cn.md)
|
||||
|
||||
> **KeepIt** 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 KeepIt](#why-choose-keepit) so that you can choose the one that works best for you.
|
||||
|
||||

|
||||
|
||||
## [Demo Site](https://suspicious-archimedes-ab369d.netlify.app/)
|
||||
|
||||
To see this theme in action, here is a live [demo site](https://suspicious-archimedes-ab369d.netlify.app/) which is rendered with **KeepIt** theme.
|
||||
|
||||
## Why choose KeepIt
|
||||
|
||||
Compared to the original LeaveIt theme and the KeepIt theme, the KeepIt theme has the following modifications.
|
||||
|
||||
* Custom **Header**
|
||||
* Custom **CSS Style**
|
||||
* A new **home page**, compatible with the latest version of Hugo
|
||||
* A lot of **style detail adjustments,** including color, font size, margins, code preview style
|
||||
* More readable **dark mode**
|
||||
* Some beautiful **CSS animations**
|
||||
* Easy-to-use and self-expanding **table of contents**
|
||||
* More **social links**, **share sites** and **comment system**
|
||||
* **Search** supported by [Lunr.js](https://lunrjs.com/) or [algolia](https://www.algolia.com/)
|
||||
* **Copy code** to clipboard with one click
|
||||
* Extended Markdown syntax for **[Font Awesome](https://fontawesome.com/) icons**
|
||||
* Extended Markdown syntax for **ruby annotation**
|
||||
* Extended Markdown syntax for **fraction**
|
||||
* **Mathematical formula** supported by [KaTeX](https://katex.org/)
|
||||
* **Diagram syntax** shortcode supported by [mermaid](https://github.com/mermaid-js/mermaid)
|
||||
* **Interactive data visualization** shortcode supported by [ECharts](https://echarts.apache.org/)
|
||||
* **Mapbox** shortcode supported by [Mapbox GL JS](https://docs.mapbox.com/mapbox-gl-js)
|
||||
* Embedded **music player** supported by [APlayer](https://github.com/MoePlayer/APlayer) and [MetingJS](https://github.com/metowolf/MetingJS)
|
||||
* **Bilibili** player supported
|
||||
* Kinds of **admonitions** shortcode supported
|
||||
* Custom style shortcodes supported
|
||||
* **CDN** for all third-party libraries supported
|
||||
* ...
|
||||
|
||||
In short,
|
||||
if you prefer the design language and freedom of the KeepIt 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 KeepIt theme may be more suitable for you.
|
||||
|
||||
I hope you will KeepIt ❤️!
|
||||
|
||||
## Features
|
||||
|
||||
### Performance and SEO
|
||||
|
||||
* Optimized for **performance**: 99/100 on mobile and 100/100 on desktop in [Google PageSpeed Insights](https://developers.google.com/speed/pagespeed/insights)
|
||||
* Optimized SEO performance with a correct **SEO SCHEMA** based on JSON-LD
|
||||
* **[Google Analytics](https://analytics.google.com/analytics)** supported
|
||||
* **[Fathom Analytics](https://usefathom.com/)** supported
|
||||
* Search engine **verification** supported (Google, Bind, Yandex and Baidu)
|
||||
* **CDN** for third-party libraries supported
|
||||
* Automatically converted images with **Lazy Load** by [lazysizes](https://github.com/aFarkas/lazysizes)
|
||||
|
||||
### Appearance and Layout
|
||||
|
||||
* **Desktop/Mobile Responsive** layout
|
||||
* **Light/Dark** mode
|
||||
* Globally consistent **design language**
|
||||
* **Pagination** supported
|
||||
* Easy-to-use and self-expanding **table of contents**
|
||||
* **Multilanguage** supported and i18n ready
|
||||
* Beautiful **CSS animation**
|
||||
|
||||
### Social and Comment Systems
|
||||
|
||||
* **Gravatar** supported by [Gravatar](https://gravatar.com)
|
||||
* Local **Avatar** supported
|
||||
* Up to **64** social links supported
|
||||
* Up to **24** share sites supported
|
||||
* **Disqus** comment system supported by [Disqus](https://disqus.com)
|
||||
* **Gitalk** comment system supported by [Gitalk](https://github.com/gitalk/gitalk)
|
||||
* **Valine** comment system supported by [Valine](https://valine.js.org/)
|
||||
* **Facebook comments** system supported by [Facebook](https://developers.facebook.com/docs/plugins/comments/)
|
||||
* **Telegram comments** system supported by [Telegram Comments](https://comments.app/)
|
||||
* **Commento** comment system supported by [Commento](https://commento.io/)
|
||||
* **Utterances** comment system supported by [Utterances](https://utteranc.es/)
|
||||
|
||||
### Extended Features
|
||||
|
||||
* **Search** supported by [Lunr.js](https://lunrjs.com/) or [algolia](https://www.algolia.com/)
|
||||
* **Twemoji** supported
|
||||
* Automatically **highlighting** code
|
||||
* **Copy code** to clipboard with one click
|
||||
* **Images gallery** supported by [lightGallery](https://github.com/sachinchoolur/lightgallery)
|
||||
* Extended Markdown syntax for **[Font Awesome](https://fontawesome.com/) icons**
|
||||
* Extended Markdown syntax for **ruby annotation**
|
||||
* Extended Markdown syntax for **fraction**
|
||||
* **Mathematical formula** supported by [KaTeX](https://katex.org/)
|
||||
* **Diagrams** shortcode supported by [mermaid](https://github.com/mermaid-js/mermaid)
|
||||
* **Interactive data visualization** shortcode supported by [ECharts](https://echarts.apache.org/)
|
||||
* **Mapbox** shortcode supported by [Mapbox GL JS](https://docs.mapbox.com/mapbox-gl-js)
|
||||
* **Music player** shortcode supported by [APlayer](https://github.com/MoePlayer/APlayer) and [MetingJS](https://github.com/metowolf/MetingJS)
|
||||
* **Bilibili player** shortcode
|
||||
* Kinds of **admonitions** shortcode
|
||||
* **Custom style** shortcode
|
||||
* **Custom script** shortcode
|
||||
* **Animated typing** supported by [TypeIt](https://typeitjs.com/)
|
||||
* **Cookie consent banner** supported by [cookieconsent](https://github.com/osano/cookieconsent)
|
||||
* ...
|
||||
|
||||
## [Documentation](https://suspicious-archimedes-ab369d.netlify.app/categories/documentation/)
|
||||
|
||||
Build Documentation Locally:
|
||||
|
||||
```bash
|
||||
hugo server --source=exampleSite
|
||||
```
|
||||
|
||||
## Multilingual and i18n
|
||||
|
||||
KeepIt supports the following languages:
|
||||
|
||||
* English
|
||||
* Simplified Chinese
|
||||
* Traditional Chinese
|
||||
* French
|
||||
* Polish
|
||||
* Brazilian Portuguese
|
||||
* Italian
|
||||
* Spanish
|
||||
* German
|
||||
* Serbian
|
||||
* Russian
|
||||
* Romanian
|
||||
* Vietnamese
|
||||
* [Contribute with a new language](https://github.com/Fastbyte01/KeepIt/pulls)
|
||||
|
||||
[Languages Compatibility](https://suspicious-archimedes-ab369d.netlify.app/theme-documentation-basics/#language-compatibility)
|
||||
|
||||
## [Roadmap](https://github.com/Fastbyte01/KeepIt/projects/1)
|
||||
|
||||
## Questions, ideas, bugs, pull requests
|
||||
|
||||
All feedback is welcome! Head over to the [issue tracker](https://github.com/Fastbyte01/KeepIt/issues).
|
||||
|
||||
## License
|
||||
|
||||
KeepIt is licensed under the **MIT** license. Check the [LICENSE file](https://github.com/Fastbyte01/KeepIt/blob/master/LICENSE) for details.
|
||||
|
||||
## Special Thanks
|
||||
|
||||
Thanks to the authors of following resources included in the theme:
|
||||
|
||||
* [normalize.css](https://github.com/necolas/normalize.css)
|
||||
* [Font Awesome](https://fontawesome.com/)
|
||||
* [Simple Icons](https://github.com/simple-icons/simple-icons)
|
||||
* [Animate.css](https://daneden.github.io/animate.css/)
|
||||
* [autocomplete](https://github.com/algolia/autocomplete)
|
||||
* [Lunr.js](https://lunrjs.com/)
|
||||
* [algoliasearch](https://github.com/algolia/algoliasearch-client-javascript)
|
||||
* [lazysizes](https://github.com/aFarkas/lazysizes)
|
||||
* [object-fit-images](https://github.com/fregante/object-fit-images)
|
||||
* [Twemoji](https://github.com/twitter/twemoji)
|
||||
* [emoji-data](https://github.com/iamcal/emoji-data)
|
||||
* [lightGallery](https://github.com/sachinchoolur/lightgallery)
|
||||
* [clipboard.js](https://github.com/zenorocha/clipboard.js)
|
||||
* [Sharer.js](https://github.com/ellisonleao/sharer.js)
|
||||
* [TypeIt](https://typeitjs.com/)
|
||||
* [KaTeX](https://katex.org/)
|
||||
* [mermaid](https://github.com/mermaid-js/mermaid)
|
||||
* [ECharts](https://echarts.apache.org/)
|
||||
* [Mapbox GL JS](https://docs.mapbox.com/mapbox-gl-js)
|
||||
* [APlayer](https://github.com/MoePlayer/APlayer)
|
||||
* [MetingJS](https://github.com/metowolf/MetingJS)
|
||||
* [Gitalk](https://github.com/gitalk/gitalk)
|
||||
* [Valine](https://valine.js.org/)
|
||||
* [cookieconsent](https://github.com/osano/cookieconsent)
|
||||
|
||||
## Author
|
||||
|
||||
[Dillon](https://dillonzq.com)
|
||||
|
||||
## Sponsor
|
||||
|
||||
If you enjoy the theme, please consider buying me a coffee ☕️.
|
||||
|
||||
* [PayPal](https://paypal.me/dillonzq)
|
||||
* [Alipay](https://github.com/Fastbyte01/KeepIt/raw/master/images/Alipay.jpg)
|
||||
* [Wechat](https://github.com/Fastbyte01/KeepIt/raw/master/images/Wechat.jpg)
|
||||
|
||||
Thanks! ❤️
|
||||
|
||||
## Stargazers over time
|
||||
|
||||
[](https://starchart.cc/dillonzq/KeepIt)
|
||||
62
themes/keepit/archetypes/default.md
Normal file
@@ -0,0 +1,62 @@
|
||||
---
|
||||
title: "{{ replace .TranslationBaseName "-" " " | title }}"
|
||||
subtitle: ""
|
||||
date: {{ .Date }}
|
||||
lastmod: {{ .Date }}
|
||||
draft: true
|
||||
author: ""
|
||||
authorLink: ""
|
||||
description: ""
|
||||
license: ""
|
||||
images: []
|
||||
|
||||
tags: []
|
||||
categories: []
|
||||
|
||||
featuredImage: ""
|
||||
featuredImagePreview: ""
|
||||
|
||||
hiddenFromHomePage: false
|
||||
hiddenFromSearch: false
|
||||
twemoji: false
|
||||
lightgallery: true
|
||||
ruby: true
|
||||
fraction: true
|
||||
fontawesome: true
|
||||
linkToMarkdown: true
|
||||
rssFullText: false
|
||||
|
||||
toc:
|
||||
enable: true
|
||||
auto: true
|
||||
code:
|
||||
copy: true
|
||||
maxShownLines: 50
|
||||
math:
|
||||
enable: false
|
||||
# ...
|
||||
mapbox:
|
||||
# ...
|
||||
share:
|
||||
enable: true
|
||||
# ...
|
||||
comment:
|
||||
enable: true
|
||||
# ...
|
||||
library:
|
||||
css:
|
||||
# someCSS = "some.css"
|
||||
# located in "assets/"
|
||||
# Or
|
||||
# someCSS = "https://cdn.example.com/some.css"
|
||||
js:
|
||||
# someJS = "some.js"
|
||||
# located in "assets/"
|
||||
# Or
|
||||
# someJS = "https://cdn.example.com/some.js"
|
||||
seo:
|
||||
images: []
|
||||
# ...
|
||||
---
|
||||
|
||||
<!--more-->
|
||||
61
themes/keepit/assets/css/_core/_base.scss
Normal file
@@ -0,0 +1,61 @@
|
||||
html {
|
||||
font-family: $global-font-family;
|
||||
font-weight: $global-font-weight;
|
||||
font-display: swap;
|
||||
font-size: $global-font-size;
|
||||
line-height: $global-line-height;
|
||||
width:100%;
|
||||
|
||||
scroll-behavior: smooth;
|
||||
|
||||
main [id] {
|
||||
scroll-margin-top: $header-height + .5rem;
|
||||
}
|
||||
}
|
||||
|
||||
/* scrollbar, only support webkit */
|
||||
::-webkit-scrollbar {
|
||||
width: .5rem;
|
||||
height: .5rem;
|
||||
}
|
||||
|
||||
::-webkit-scrollbar-thumb {
|
||||
background-color: $scrollbar-color;
|
||||
|
||||
&:hover {
|
||||
background-color: $scrollbar-hover-color;
|
||||
}
|
||||
}
|
||||
|
||||
::selection {
|
||||
background-color: $selection-color;
|
||||
|
||||
[theme=dark] & {
|
||||
background-color: $selection-color-dark;
|
||||
}
|
||||
}
|
||||
|
||||
body {
|
||||
background-color: $global-background-color;
|
||||
color: $global-font-color;
|
||||
@include overflow-wrap(break-word);
|
||||
scrollbar-color: auto;
|
||||
|
||||
&[theme=dark] {
|
||||
color: $global-font-color-dark;
|
||||
background-color: $global-background-color-dark;
|
||||
}
|
||||
}
|
||||
|
||||
@include ms;
|
||||
@include link(true, true);
|
||||
|
||||
@import "../_partial/mask";
|
||||
@import "../_partial/icon";
|
||||
@import "../_partial/details";
|
||||
@import "../_partial/fixed-button";
|
||||
@import "../_partial/cookieconsent";
|
||||
|
||||
img {
|
||||
@include object-fit(contain);
|
||||
}
|
||||
15
themes/keepit/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/keepit/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%;
|
||||
|
||||
[data-header-mobile] & {
|
||||
padding-top: $header-height;
|
||||
}
|
||||
|
||||
[data-header-mobile=normal] & {
|
||||
padding-top: 0;
|
||||
}
|
||||
|
||||
.categories-card {
|
||||
.card-item {
|
||||
width: 100%;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.copyright {
|
||||
.copyright-line {
|
||||
.icp-splitter {
|
||||
display: none;
|
||||
}
|
||||
.icp-br {
|
||||
display: block;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
4
themes/keepit/assets/css/_custom.scss
Normal file
@@ -0,0 +1,4 @@
|
||||
// ==============================
|
||||
// Custom style
|
||||
// 自定义样式
|
||||
// ==============================
|
||||
5
themes/keepit/assets/css/_mixin/_blur.scss
Normal file
@@ -0,0 +1,5 @@
|
||||
@mixin blur {
|
||||
.blur & {
|
||||
@include filter(blur(1.5px));
|
||||
}
|
||||
}
|
||||
110
themes/keepit/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/keepit/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/keepit/assets/css/_mixin/_index.scss
Normal file
@@ -0,0 +1,4 @@
|
||||
@import "_compatibility";
|
||||
@import "_link";
|
||||
@import "_blur";
|
||||
@import "_details";
|
||||
20
themes/keepit/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/keepit/assets/css/_override.scss
Normal file
@@ -0,0 +1,4 @@
|
||||
// ==============================
|
||||
// Override Variables
|
||||
// 覆盖变量
|
||||
// ==============================
|
||||
6
themes/keepit/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/keepit/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/keepit/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: 15rem;
|
||||
height: auto;
|
||||
margin: 0 auto;
|
||||
@include border-radius(100%);
|
||||
@include box-shadow(0 0 0 .3618em rgba(0, 0, 0, .05));
|
||||
@include transition(all 0.4s ease);
|
||||
|
||||
&:hover {
|
||||
position: relative;
|
||||
@include transform(translateY(-.75rem));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.home-title {
|
||||
font-size: 1.25rem;
|
||||
font-weight: bold;
|
||||
margin: 0;
|
||||
padding: .5rem;
|
||||
}
|
||||
|
||||
.home-subtitle {
|
||||
font-size: 1rem;
|
||||
font-weight: normal;
|
||||
margin: 0;
|
||||
padding: .5rem;
|
||||
}
|
||||
|
||||
.links {
|
||||
padding: .5rem;
|
||||
font-size: 1.5rem;
|
||||
|
||||
a * {
|
||||
vertical-align: text-bottom;
|
||||
}
|
||||
|
||||
img {
|
||||
height: 1.5rem;
|
||||
padding: 0 .25rem;
|
||||
}
|
||||
}
|
||||
|
||||
.home-disclaimer {
|
||||
font-size: 1rem;
|
||||
line-height: 1.5rem;
|
||||
font-weight: normal;
|
||||
margin: 0;
|
||||
padding: .5rem;
|
||||
color: $global-font-secondary-color;
|
||||
|
||||
[theme=dark] & {
|
||||
color: $global-font-secondary-color-dark;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.home[data-home=posts] {
|
||||
.home-profile {
|
||||
@include transform(translateY(0));
|
||||
padding-top: 2rem;
|
||||
}
|
||||
|
||||
.home-avatar img {
|
||||
width: 15rem;
|
||||
}
|
||||
|
||||
.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/keepit/assets/css/_page/_index.scss
Normal file
@@ -0,0 +1,22 @@
|
||||
.page {
|
||||
position: relative;
|
||||
max-width: 800px;
|
||||
width: 60%;
|
||||
margin: 0 auto;
|
||||
|
||||
[data-header-desktop] & {
|
||||
padding-top: $header-height;
|
||||
}
|
||||
|
||||
[data-header-desktop=normal] & {
|
||||
padding-top: 0;
|
||||
}
|
||||
|
||||
@include blur;
|
||||
}
|
||||
|
||||
@import "_single";
|
||||
@import "_special";
|
||||
@import "_archive";
|
||||
@import "_home";
|
||||
@import "_404";
|
||||
347
themes/keepit/assets/css/_page/_single.scss
Normal file
@@ -0,0 +1,347 @@
|
||||
@import "../_partial/_single/toc";
|
||||
|
||||
.single {
|
||||
.single-title {
|
||||
margin: 2rem 0 .5rem;
|
||||
font-size: 1.6rem;
|
||||
font-weight: bold;
|
||||
line-height: 140%;
|
||||
}
|
||||
|
||||
.single-subtitle {
|
||||
margin: .5rem 0;
|
||||
font-size: 1.2rem;
|
||||
font-weight: normal;
|
||||
line-height: 100%;
|
||||
}
|
||||
|
||||
.post-meta {
|
||||
font-size: .875rem;
|
||||
color: $global-font-secondary-color;
|
||||
|
||||
span {
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
[theme=dark] & {
|
||||
color: $global-font-secondary-color-dark;
|
||||
}
|
||||
|
||||
@include link(false, true);
|
||||
|
||||
.author {
|
||||
font-size: 1.05rem;
|
||||
}
|
||||
}
|
||||
|
||||
.featured-image {
|
||||
margin: .5rem 0 1rem 0;
|
||||
|
||||
img {
|
||||
display: block;
|
||||
max-width: 100%;
|
||||
height: auto;
|
||||
margin: 0 auto;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
img.lazyloaded {
|
||||
width: 100%;
|
||||
}
|
||||
}
|
||||
|
||||
.content {
|
||||
> h2 {
|
||||
font-size: 1.5rem;
|
||||
|
||||
& code {
|
||||
font-size: 1.25rem;
|
||||
}
|
||||
}
|
||||
|
||||
> h3 {
|
||||
font-size: 1.375rem;
|
||||
|
||||
& code {
|
||||
font-size: 1.125rem;
|
||||
}
|
||||
}
|
||||
|
||||
> h4 {
|
||||
font-size: 1.25rem;
|
||||
|
||||
& code {
|
||||
font-size: 1rem;
|
||||
}
|
||||
}
|
||||
|
||||
> h5 {
|
||||
font-size: 1.125rem;
|
||||
}
|
||||
|
||||
> h6 {
|
||||
font-size: 1rem;
|
||||
}
|
||||
|
||||
h2,
|
||||
h3,
|
||||
h4,
|
||||
h5,
|
||||
h6 {
|
||||
font-weight: bold;
|
||||
margin: 1.2rem 0;
|
||||
|
||||
[theme=dark] & {
|
||||
font-weight: bolder;
|
||||
}
|
||||
}
|
||||
|
||||
> h2,
|
||||
> h3,
|
||||
> h4,
|
||||
> h5,
|
||||
> h6 {
|
||||
> .header-mark::before {
|
||||
content: "|";
|
||||
margin-right: .3125rem;
|
||||
color: $single-link-color;
|
||||
|
||||
[theme=dark] & {
|
||||
color: $single-link-color-dark;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
> h2 > .header-mark::before {
|
||||
content: "#";
|
||||
}
|
||||
|
||||
p {
|
||||
margin: .5rem 0;
|
||||
}
|
||||
|
||||
b, strong {
|
||||
font-weight: bold;
|
||||
|
||||
[theme=dark] & {
|
||||
color: #ddd;
|
||||
}
|
||||
}
|
||||
|
||||
@include link(false, false);
|
||||
|
||||
a {
|
||||
@include overflow-wrap(break-word);
|
||||
|
||||
[theme=dark] & b, [theme=dark] & strong {
|
||||
color: $single-link-color-dark;
|
||||
}
|
||||
}
|
||||
|
||||
[theme=dark] a:hover b, [theme=dark] a:hover strong {
|
||||
color: $single-link-hover-color-dark;
|
||||
}
|
||||
|
||||
ul, ol {
|
||||
margin: .5rem 0;
|
||||
padding-left: 2.5rem;
|
||||
}
|
||||
|
||||
ul {
|
||||
list-style-type: disc;
|
||||
}
|
||||
|
||||
ruby {
|
||||
background: $code-background-color;
|
||||
|
||||
rt {
|
||||
color: $global-font-secondary-color;
|
||||
}
|
||||
|
||||
[theme=dark] & {
|
||||
background: $code-background-color-dark;
|
||||
|
||||
rt {
|
||||
color: $global-font-secondary-color-dark;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.table-wrapper {
|
||||
overflow-x: auto;
|
||||
|
||||
&::-webkit-scrollbar {
|
||||
background-color: $table-background-color;
|
||||
|
||||
[theme=dark] & {
|
||||
background-color: $table-background-color-dark;
|
||||
}
|
||||
}
|
||||
|
||||
> table {
|
||||
width: 100%;
|
||||
max-width: 100%;
|
||||
margin: .625rem 0;
|
||||
border-spacing: 0;
|
||||
background: $table-background-color;
|
||||
border-collapse: collapse;
|
||||
|
||||
[theme=dark] & {
|
||||
background: $table-background-color-dark;
|
||||
}
|
||||
|
||||
thead {
|
||||
background: $table-thead-color;
|
||||
|
||||
[theme=dark] & {
|
||||
background-color: $table-thead-color-dark;
|
||||
}
|
||||
}
|
||||
|
||||
th, td {
|
||||
padding: .3rem 1rem;
|
||||
border: 1px solid darken($table-thead-color, 2%);
|
||||
|
||||
[theme=dark] & {
|
||||
border-color: darken($table-thead-color-dark, 2%);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
img {
|
||||
max-width: 100%;
|
||||
min-height: 1em;
|
||||
}
|
||||
|
||||
figure {
|
||||
margin: .5rem;
|
||||
text-align: center;
|
||||
|
||||
.image-caption:not(:empty) {
|
||||
min-width: 20%;
|
||||
max-width: 80%;
|
||||
display: inline-block;
|
||||
padding: .5rem;
|
||||
margin: 0 auto;
|
||||
font-size: .875rem;
|
||||
color: #969696;
|
||||
}
|
||||
|
||||
img {
|
||||
display: block;
|
||||
width: 100%;
|
||||
height: auto;
|
||||
margin: 0 auto;
|
||||
overflow: hidden;
|
||||
}
|
||||
}
|
||||
|
||||
.lazyload, .lazyloading {
|
||||
@include object-fit(scale-down);
|
||||
}
|
||||
|
||||
.lazyloaded {
|
||||
@include object-fit(fill);
|
||||
}
|
||||
|
||||
blockquote {
|
||||
display: block;
|
||||
border-left: .5rem solid $blockquote-color;
|
||||
background-color: rgba($blockquote-color, .2);
|
||||
padding: .25rem .75rem;
|
||||
margin: 1rem 0;
|
||||
|
||||
[theme=dark] & {
|
||||
border-left-color: $blockquote-color-dark;
|
||||
background-color: rgba($blockquote-color-dark, .2);
|
||||
}
|
||||
}
|
||||
|
||||
.footnotes {
|
||||
color: $global-font-secondary-color;
|
||||
|
||||
[theme=dark] & {
|
||||
color: $global-font-secondary-color-dark;
|
||||
}
|
||||
|
||||
p {
|
||||
margin: .25rem 0;
|
||||
}
|
||||
}
|
||||
|
||||
@import "../_partial/_single/code";
|
||||
@import "../_partial/_single/instagram";
|
||||
@import "../_partial/_single/admonition";
|
||||
@import "../_partial/_single/echarts";
|
||||
@import "../_partial/_single/mapbox";
|
||||
@import "../_partial/_single/music";
|
||||
@import "../_partial/_single/bilibili";
|
||||
|
||||
hr {
|
||||
margin: 1rem 0;
|
||||
position: relative;
|
||||
border-top: 1px dashed $global-border-color;
|
||||
border-bottom: none;
|
||||
|
||||
[theme=dark] & {
|
||||
border-top: 1px dashed $global-border-color-dark;
|
||||
}
|
||||
}
|
||||
|
||||
kbd {
|
||||
display: inline-block;
|
||||
padding: .25rem;
|
||||
background-color: $global-background-color;
|
||||
border: 1px solid $global-border-color;
|
||||
border-bottom-color: $global-border-color;
|
||||
@include border-radius(3px);
|
||||
@include box-shadow(inset 0 -1px 0 $global-border-color);
|
||||
font-size: .8rem;
|
||||
font-family: $code-font-family;
|
||||
color: $code-color;
|
||||
|
||||
[theme=dark] & {
|
||||
background-color: $global-background-color-dark;
|
||||
border: 1px solid $global-border-color-dark;
|
||||
border-bottom-color: $global-border-color-dark;
|
||||
@include box-shadow(inset 0 -1px 0 $global-border-color-dark);
|
||||
color: $code-color-dark;
|
||||
}
|
||||
}
|
||||
|
||||
.version {
|
||||
height: 1.25em;
|
||||
vertical-align: text-bottom;
|
||||
}
|
||||
}
|
||||
|
||||
@import "../_partial/_single/footer";
|
||||
@import "../_partial/_single/comment";
|
||||
}
|
||||
|
||||
.typeit {
|
||||
.highlight {
|
||||
padding: .375rem;
|
||||
font-size: .875rem;
|
||||
font-family: $code-font-family;
|
||||
font-weight: bold;
|
||||
word-break: break-all;
|
||||
white-space: pre-wrap;
|
||||
}
|
||||
|
||||
--ti-cursor-font-family: $global-font-family;
|
||||
--ti-cursor-font-size: $global-font-size;
|
||||
--ti-cursor-font-weight: $global-font-weight;
|
||||
--ti-cursor-line-height: $global-line-height;
|
||||
--ti-cursor-color: $global-font-secondary-color;
|
||||
--ti-cursor-margin-left: 0;
|
||||
|
||||
[theme=dark] & {
|
||||
--ti-cursor-color: $global-font-secondary-color-dark;
|
||||
}
|
||||
}
|
||||
|
||||
.lg-toolbar .lg-icon::after {
|
||||
color: #999;
|
||||
}
|
||||
5
themes/keepit/assets/css/_page/_special.scss
Normal file
@@ -0,0 +1,5 @@
|
||||
.special {
|
||||
.single-title, .single-subtitle {
|
||||
text-align: right;
|
||||
}
|
||||
}
|
||||
27
themes/keepit/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/keepit/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: 5em;
|
||||
text-align: right;
|
||||
color: $global-font-secondary-color;
|
||||
|
||||
[theme=dark] & {
|
||||
color: $global-font-secondary-color-dark;
|
||||
}
|
||||
}
|
||||
|
||||
.more-post {
|
||||
text-align: right;
|
||||
}
|
||||
17
themes/keepit/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/keepit/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/keepit/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/keepit/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/keepit/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;
|
||||
|
||||
[data-header-desktop=normal] & {
|
||||
position: static;
|
||||
}
|
||||
|
||||
.header-wrapper {
|
||||
padding: 0 2rem 0 10vh;
|
||||
|
||||
.header-title {
|
||||
font-size: $header-title-font-size;
|
||||
}
|
||||
|
||||
.menu {
|
||||
overflow: hidden;
|
||||
white-space: nowrap;
|
||||
|
||||
.menu-inner {
|
||||
float: right;
|
||||
}
|
||||
|
||||
.menu-item {
|
||||
margin: 0 .5rem;
|
||||
|
||||
&.delimiter {
|
||||
border-left: 1.5px solid $global-font-color;
|
||||
|
||||
[theme=dark] & {
|
||||
border-left-color: $global-border-color-dark;
|
||||
}
|
||||
}
|
||||
|
||||
&.language {
|
||||
margin-right: 0;
|
||||
}
|
||||
|
||||
&.search {
|
||||
margin: 0 -.5rem 0 0;
|
||||
}
|
||||
}
|
||||
|
||||
a.active {
|
||||
font-weight: 900;
|
||||
color: $header-hover-color;
|
||||
|
||||
[theme=dark] & {
|
||||
color: $header-hover-color-dark;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
&.open .header-wrapper .menu .menu-item.search {
|
||||
margin: 0 .25rem 0 .5rem;
|
||||
|
||||
input {
|
||||
width: 24rem;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#header-mobile {
|
||||
display: none;
|
||||
position: fixed;
|
||||
height: $header-height;
|
||||
line-height: $header-height;
|
||||
|
||||
[data-header-mobile=normal] & {
|
||||
position: static;
|
||||
}
|
||||
|
||||
.header-container {
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
|
||||
.header-wrapper {
|
||||
padding: 0 1rem;
|
||||
font-size: 1.125rem;
|
||||
@include transition(margin-top 0.3s ease);
|
||||
|
||||
.header-title {
|
||||
font-size: $header-title-font-size;
|
||||
max-width: 80%;
|
||||
}
|
||||
|
||||
.menu-toggle {
|
||||
line-height: 4rem;
|
||||
cursor: pointer;
|
||||
@include transition(width 0.3s ease);
|
||||
|
||||
span {
|
||||
display: block;
|
||||
background: $global-font-color;
|
||||
width: 1.5rem;
|
||||
height: 2px;
|
||||
@include border-radius(3px);
|
||||
@include transition(all 0.3s ease-in-out);
|
||||
|
||||
[theme=dark] & {
|
||||
background: $global-font-color-dark;
|
||||
}
|
||||
}
|
||||
|
||||
span:nth-child(1) {
|
||||
margin-bottom: .5rem;
|
||||
}
|
||||
|
||||
span:nth-child(3) {
|
||||
margin-top: .5rem;
|
||||
}
|
||||
|
||||
&.active {
|
||||
span:nth-child(1) {
|
||||
@include transform(rotate(45deg) translate(.4rem, .5rem));
|
||||
}
|
||||
|
||||
span:nth-child(2) {
|
||||
opacity: 0
|
||||
}
|
||||
|
||||
span:nth-child(3) {
|
||||
@include transform(rotate(-45deg) translate(.4rem, -.5rem));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.menu {
|
||||
text-align: center;
|
||||
background: $header-background-color;
|
||||
border-top: 2px solid $global-border-color;
|
||||
display: none;
|
||||
padding-top: .5rem;
|
||||
@include box-shadow(0 .125rem .25rem rgba(0, 0, 0, .1));
|
||||
|
||||
.search-wrapper {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
box-sizing: border-box;
|
||||
padding: ($header-height - 2.5rem) / 2 1rem;
|
||||
line-height: 2.5rem;
|
||||
}
|
||||
|
||||
.search {
|
||||
flex-grow: 10;
|
||||
|
||||
.algolia-autocomplete, input {
|
||||
width: 100%;
|
||||
}
|
||||
}
|
||||
|
||||
.search-button {
|
||||
top: 0;
|
||||
}
|
||||
|
||||
.search-cancel {
|
||||
display: none;
|
||||
margin-left: .75rem;
|
||||
}
|
||||
|
||||
.menu-item {
|
||||
display: block;
|
||||
line-height: 2.5rem;
|
||||
}
|
||||
|
||||
&.active {
|
||||
display: block;
|
||||
}
|
||||
|
||||
[theme=dark] & {
|
||||
background: $header-background-color-dark;
|
||||
border-top-color: $global-border-color-dark;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
&.open {
|
||||
.header-wrapper {
|
||||
margin-top: -$header-height;
|
||||
}
|
||||
|
||||
.menu {
|
||||
padding-top: 0;
|
||||
border-top: none;
|
||||
|
||||
.menu-item {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.search-cancel {
|
||||
display: inline;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.search-dropdown {
|
||||
position: fixed;
|
||||
z-index: 200;
|
||||
top: $header-height;
|
||||
@include box-shadow(0 .125rem .25rem rgba(0, 0, 0, .1));
|
||||
|
||||
&.desktop {
|
||||
right: 2rem;
|
||||
width: 30rem;
|
||||
}
|
||||
|
||||
&.mobile {
|
||||
right: 0;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.dropdown-menu {
|
||||
right: 0 !important;
|
||||
background-color: $global-background-color;
|
||||
|
||||
[theme=dark] & {
|
||||
background-color: $global-background-color-dark;
|
||||
}
|
||||
|
||||
.suggestions {
|
||||
overflow-y: auto;
|
||||
max-height: calc(100vh - #{$header-height});
|
||||
|
||||
.suggestion {
|
||||
padding: .75rem 1rem;
|
||||
|
||||
.suggestion-title {
|
||||
display: inline-block;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
white-space: nowrap;
|
||||
font-size: 1rem;
|
||||
font-weight: bold;
|
||||
max-width: 75%;
|
||||
}
|
||||
|
||||
.suggestion-date {
|
||||
font-size: .875rem;
|
||||
float: right;
|
||||
text-align: right;
|
||||
color: $global-font-secondary-color;
|
||||
|
||||
[theme=dark] & {
|
||||
color: $global-font-secondary-color-dark;
|
||||
}
|
||||
}
|
||||
|
||||
.suggestion-context {
|
||||
line-height: 1.25rem;
|
||||
@include box(vertical);
|
||||
-webkit-line-clamp: 2;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
@include overflow-wrap(break-word);
|
||||
color: $global-font-secondary-color;
|
||||
|
||||
[theme=dark] & {
|
||||
color: $global-font-secondary-color-dark;
|
||||
}
|
||||
}
|
||||
|
||||
em {
|
||||
font-style: normal;
|
||||
background-color: $selection-color;
|
||||
|
||||
[theme=dark] & {
|
||||
background-color: $selection-color-dark;
|
||||
}
|
||||
}
|
||||
|
||||
&.cursor {
|
||||
background: darken($code-background-color, 5%);
|
||||
|
||||
[theme=dark] & {
|
||||
background: lighten($code-background-color-dark, 5%);
|
||||
}
|
||||
}
|
||||
|
||||
&:hover {
|
||||
cursor: pointer;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.search-empty {
|
||||
padding: 1rem;
|
||||
text-align: center;
|
||||
|
||||
.search-query {
|
||||
font-weight: bold;
|
||||
|
||||
[theme=dark] & {
|
||||
color: #ddd;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.search-footer {
|
||||
padding: .5rem 1rem;
|
||||
float: right;
|
||||
font-size: .8rem;
|
||||
color: $global-font-secondary-color;
|
||||
|
||||
[theme=dark] {
|
||||
color: $global-font-secondary-color-dark;
|
||||
}
|
||||
|
||||
@include link(false, false);
|
||||
|
||||
a {
|
||||
font-size: 1rem;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
17
themes/keepit/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/keepit/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/keepit/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/keepit/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/keepit/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;
|
||||
}
|
||||
}
|
||||
399
themes/keepit/assets/css/_partial/_single/_code.scss
Normal file
@@ -0,0 +1,399 @@
|
||||
code {
|
||||
display:inline-block;
|
||||
max-width: 100%;
|
||||
padding: 0 .4rem;
|
||||
@include overflow-wrap(break-word);
|
||||
@include line-break(anywhere);
|
||||
font-size: $code-font-size;
|
||||
font-family: $code-font-family;
|
||||
color: $code-color;
|
||||
|
||||
[theme=dark] & {
|
||||
color: $code-color-dark;
|
||||
}
|
||||
}
|
||||
|
||||
pre {
|
||||
margin: 0;
|
||||
padding: .25rem 0 .25rem .5rem;
|
||||
@include tab-size(4);
|
||||
|
||||
code {
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
img {
|
||||
min-height: 1em;
|
||||
max-height: 1.2em;
|
||||
vertical-align: text-bottom;
|
||||
}
|
||||
}
|
||||
|
||||
code, pre, .highlight table, .highlight tr, .highlight td {
|
||||
background: $code-background-color;
|
||||
|
||||
[theme=dark] & {
|
||||
background: $code-background-color-dark;
|
||||
}
|
||||
}
|
||||
|
||||
.highlight {
|
||||
font-family: $code-font-family;
|
||||
font-size: $code-font-size;
|
||||
line-height: 1.4em;
|
||||
margin: .5rem 0;
|
||||
|
||||
.table-wrapper {
|
||||
> table,
|
||||
> table thead,
|
||||
> table tr,
|
||||
> table td {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
border: none !important;
|
||||
|
||||
span.c {
|
||||
white-space: nowrap;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
> .chroma {
|
||||
position: relative;
|
||||
|
||||
.code-header {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
box-sizing: border-box;
|
||||
width: 100%;
|
||||
font-family: $global-font-family;
|
||||
font-weight: bold;
|
||||
color: $code-info-color;
|
||||
background: darken($code-background-color, 8%);
|
||||
|
||||
[theme=dark] & {
|
||||
color: $code-info-color-dark;
|
||||
background: darken($code-background-color-dark, 6%);
|
||||
}
|
||||
|
||||
&:hover {
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.code-title {
|
||||
width: 100%;
|
||||
padding: .4rem;
|
||||
}
|
||||
|
||||
.code-title::after {
|
||||
padding-left: .2rem;
|
||||
content: 'Code';
|
||||
}
|
||||
|
||||
@each $type, $text in $code-type-map {
|
||||
&.#{$type} .code-title::after {
|
||||
content: $text;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.lntd:first-child {
|
||||
min-width: 1.6rem;
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
.lntd:last-child {
|
||||
width: 100%;
|
||||
|
||||
pre {
|
||||
@include max-content(min-width);
|
||||
}
|
||||
}
|
||||
|
||||
.ln {
|
||||
padding-right: .75rem;
|
||||
}
|
||||
|
||||
.hl {
|
||||
display: block;
|
||||
background-color: darken($code-background-color, 10%);
|
||||
|
||||
[theme=dark] & {
|
||||
background-color: darken($code-background-color-dark, 5%);
|
||||
}
|
||||
}
|
||||
|
||||
.ln, .lnt {
|
||||
color: $global-font-secondary-color;
|
||||
|
||||
[theme=dark] & {
|
||||
color: $global-font-secondary-color-dark;
|
||||
}
|
||||
}
|
||||
|
||||
.arrow {
|
||||
padding: 0 .2rem;
|
||||
@include transition(transform 0.2s ease);
|
||||
}
|
||||
|
||||
.ellipses {
|
||||
padding: .4rem;
|
||||
}
|
||||
|
||||
.copy {
|
||||
display: none;
|
||||
padding: .4rem;
|
||||
|
||||
&:hover {
|
||||
cursor: pointer;
|
||||
color: $global-link-hover-color;
|
||||
|
||||
[theme=dark] & {
|
||||
color: $global-link-hover-color-dark;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.table-wrapper {
|
||||
max-height: 0;
|
||||
overflow-y: hidden;
|
||||
@include details-transition-open;
|
||||
}
|
||||
|
||||
&.open {
|
||||
.code-header {
|
||||
background: darken($code-background-color, 3%);
|
||||
|
||||
[theme=dark] & {
|
||||
background: darken($code-background-color-dark, 3%);
|
||||
}
|
||||
}
|
||||
|
||||
.table-wrapper {
|
||||
max-height: $MAX_LENGTH;
|
||||
@include details-transition-close;
|
||||
}
|
||||
|
||||
.arrow {
|
||||
@include transform(rotate(90deg));
|
||||
}
|
||||
|
||||
.ellipses {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.copy {
|
||||
display: inline;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* Comment */ .c,
|
||||
/* CommentHashbang */ .ch,
|
||||
/* CommentMultiline */ .cm,
|
||||
/* CommentSingle */ .c1,
|
||||
/* CommentSpecial */ .cs,
|
||||
/* CommentPreproc */ .cp,
|
||||
/* CommentPreprocFile */ .cpf { font-style: italic }
|
||||
/* GenericUnderline */ .gl { text-decoration: underline }
|
||||
|
||||
@each $class, $color in $code-highlight-color-map {
|
||||
.#{$class} { color: $color; }
|
||||
}
|
||||
|
||||
[theme=dark] & {
|
||||
@each $class, $color in $code-highlight-color-map-dark {
|
||||
.#{$class} { color: $color; }
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.gist {
|
||||
font-family: $code-font-family;
|
||||
font-size: $code-font-size;
|
||||
|
||||
.table-wrapper {
|
||||
> table,
|
||||
> table thead,
|
||||
> table tr,
|
||||
> table td {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
border: none !important;
|
||||
}
|
||||
}
|
||||
|
||||
.gist-file, .gist-data, .gist-meta {
|
||||
border: none;
|
||||
}
|
||||
|
||||
.gist-meta {
|
||||
padding: .4rem .8rem;
|
||||
background-color: darken($code-background-color, 5%);
|
||||
|
||||
@include link(false, false);
|
||||
|
||||
[theme=dark] & {
|
||||
background-color: darken($code-background-color-dark, 5%);
|
||||
}
|
||||
}
|
||||
|
||||
[theme=dark] & {
|
||||
// imported from https://github.com/lonekorean/gist-syntax-themes/blob/master/stylesheets/one-dark.css
|
||||
.highlight {
|
||||
background: #141414;
|
||||
}
|
||||
.blob-num,
|
||||
.blob-code-inner,
|
||||
.highlight,
|
||||
.pl-enm,
|
||||
.pl-ko,
|
||||
.pl-mo,
|
||||
.pl-mp1 .pl-sf,
|
||||
.pl-ms,
|
||||
.pl-pdc1,
|
||||
.pl-scp,
|
||||
.pl-smc,
|
||||
.pl-som,
|
||||
.pl-va,
|
||||
.pl-vpf,
|
||||
.pl-vpu,
|
||||
.pl-mdr {
|
||||
color: #aab1bf;
|
||||
}
|
||||
.pl-mb,
|
||||
.pl-pdb {
|
||||
font-weight: 700;
|
||||
}
|
||||
.pl-c,
|
||||
.pl-c span,
|
||||
.pl-pdc {
|
||||
color: #5b6270;
|
||||
font-style: italic;
|
||||
}
|
||||
.pl-sr .pl-cce {
|
||||
color: #56b5c2;
|
||||
font-weight: 400;
|
||||
}
|
||||
.pl-ef,
|
||||
.pl-en,
|
||||
.pl-enf,
|
||||
.pl-eoai,
|
||||
.pl-kos,
|
||||
.pl-mh .pl-pdh,
|
||||
.pl-mr {
|
||||
color: #61afef;
|
||||
}
|
||||
.pl-ens,
|
||||
.pl-vi {
|
||||
color: #be5046;
|
||||
}
|
||||
.pl-enti,
|
||||
.pl-mai .pl-sf,
|
||||
.pl-ml,
|
||||
.pl-sf,
|
||||
.pl-sr,
|
||||
.pl-sr .pl-sra,
|
||||
.pl-src,
|
||||
.pl-st,
|
||||
.pl-vo {
|
||||
color: #56b5c2;
|
||||
}
|
||||
.pl-eoi,
|
||||
.pl-mri,
|
||||
.pl-pds,
|
||||
.pl-pse .pl-s1,
|
||||
.pl-s,
|
||||
.pl-s1 {
|
||||
color: #97c279;
|
||||
}
|
||||
.pl-k,
|
||||
.pl-kolp,
|
||||
.pl-mc,
|
||||
.pl-pde {
|
||||
color: #c578dd;
|
||||
}
|
||||
.pl-mi,
|
||||
.pl-pdi {
|
||||
color: #c578dd;
|
||||
font-style: italic;
|
||||
}
|
||||
.pl-mp,
|
||||
.pl-stp {
|
||||
color: #818896;
|
||||
}
|
||||
.pl-mdh,
|
||||
.pl-mdi,
|
||||
.pl-mdr {
|
||||
font-weight: 400;
|
||||
}
|
||||
.pl-mdht,
|
||||
.pl-mi1 {
|
||||
color: #97c279;
|
||||
background: #020;
|
||||
}
|
||||
.pl-md,
|
||||
.pl-mdhf {
|
||||
color: #df6b75;
|
||||
background: #200;
|
||||
}
|
||||
.pl-corl {
|
||||
color: #df6b75;
|
||||
text-decoration: underline;
|
||||
}
|
||||
.pl-ib {
|
||||
background: #df6b75;
|
||||
}
|
||||
.pl-ii {
|
||||
background: #e0c184;
|
||||
color: #fff;
|
||||
}
|
||||
.pl-iu {
|
||||
background: #e05151;
|
||||
}
|
||||
.pl-ms1 {
|
||||
color: #aab1bf;
|
||||
background: #373b41;
|
||||
}
|
||||
.pl-c1,
|
||||
.pl-cn,
|
||||
.pl-e,
|
||||
.pl-eoa,
|
||||
.pl-eoac,
|
||||
.pl-eoac .pl-pde,
|
||||
.pl-kou,
|
||||
.pl-mm,
|
||||
.pl-mp .pl-s3,
|
||||
.pl-mq,
|
||||
.pl-s3,
|
||||
.pl-sok,
|
||||
.pl-sv,
|
||||
.pl-mb {
|
||||
color: #d19965;
|
||||
}
|
||||
.pl-enc,
|
||||
.pl-entc,
|
||||
.pl-pse .pl-s2,
|
||||
.pl-s2,
|
||||
.pl-sc,
|
||||
.pl-smp,
|
||||
.pl-sr .pl-sre,
|
||||
.pl-stj,
|
||||
.pl-v,
|
||||
.pl-pdb {
|
||||
color: #e4bf7a;
|
||||
}
|
||||
.pl-ent,
|
||||
.pl-entl,
|
||||
.pl-entm,
|
||||
.pl-mh,
|
||||
.pl-pdv,
|
||||
.pl-smi,
|
||||
.pl-sol,
|
||||
.pl-mdh,
|
||||
.pl-mdi {
|
||||
color: #df6b75;
|
||||
}
|
||||
}
|
||||
}
|
||||
3
themes/keepit/assets/css/_partial/_single/_comment.scss
Normal file
@@ -0,0 +1,3 @@
|
||||
#comments {
|
||||
padding: 8rem 0 2rem;
|
||||
}
|
||||
4
themes/keepit/assets/css/_partial/_single/_echarts.scss
Normal file
@@ -0,0 +1,4 @@
|
||||
.echarts {
|
||||
margin: .5rem 0;
|
||||
text-align: center;
|
||||
}
|
||||
98
themes/keepit/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/keepit/assets/css/_partial/_single/_mapbox.scss
Normal file
@@ -0,0 +1,4 @@
|
||||
.mapbox {
|
||||
margin: .5rem 0;
|
||||
padding: .5rem 0;
|
||||
}
|
||||
3
themes/keepit/assets/css/_partial/_single/_music.scss
Normal file
@@ -0,0 +1,3 @@
|
||||
meting-js {
|
||||
margin: .5rem 0;
|
||||
}
|
||||
157
themes/keepit/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;
|
||||
|
||||
[data-header-desktop=normal] & {
|
||||
top: 5rem;
|
||||
}
|
||||
|
||||
@include blur;
|
||||
|
||||
[theme=dark] & {
|
||||
border-left-color: $global-border-color-dark;
|
||||
}
|
||||
|
||||
.toc-title {
|
||||
margin: .8rem 0;
|
||||
}
|
||||
|
||||
.toc-content {
|
||||
&.always-active ul {
|
||||
display: block;
|
||||
}
|
||||
|
||||
> nav > ul {
|
||||
margin: .625rem 0;
|
||||
}
|
||||
|
||||
ul {
|
||||
ul {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.has-active > ul {
|
||||
display: block;
|
||||
}
|
||||
}
|
||||
|
||||
a.active {
|
||||
font-weight: bold;
|
||||
color: $single-link-color;
|
||||
|
||||
[theme=dark] & {
|
||||
color: $single-link-color-dark;
|
||||
}
|
||||
|
||||
&::before {
|
||||
color: $single-link-hover-color;
|
||||
|
||||
[theme=dark] & {
|
||||
color: $single-link-hover-color-dark;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#toc-static {
|
||||
display: none;
|
||||
margin: .8rem 0;
|
||||
|
||||
&[data-kept=true] {
|
||||
display: block;
|
||||
}
|
||||
|
||||
.toc-title {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
line-height: 2em;
|
||||
padding: 0 .75rem;
|
||||
background: darken($code-background-color, 6%);
|
||||
|
||||
[theme=dark] & {
|
||||
background: darken($code-background-color-dark, 6%);
|
||||
}
|
||||
}
|
||||
|
||||
.toc-content {
|
||||
background-color: $code-background-color;
|
||||
|
||||
> nav > ul {
|
||||
margin: 0;
|
||||
padding: .4rem 1rem .4rem 1.8rem;
|
||||
}
|
||||
|
||||
[theme=dark] & {
|
||||
background-color: $code-background-color-dark;
|
||||
}
|
||||
}
|
||||
|
||||
&.open {
|
||||
.toc-title {
|
||||
background: darken($code-background-color, 3%);
|
||||
|
||||
[theme=dark] & {
|
||||
background: darken($code-background-color-dark, 3%);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
369
themes/keepit/assets/css/_variables.scss
Normal file
@@ -0,0 +1,369 @@
|
||||
// ==============================
|
||||
// Variables
|
||||
// ==============================
|
||||
|
||||
// ========== Global ========== //
|
||||
// Font and Line Height
|
||||
$global-font-family: system-ui, -apple-system, BlinkMacSystemFont, PingFang SC, Microsoft YaHei UI, Segoe UI, Roboto, Oxygen, Ubuntu, Cantarell, Fira Sans, Droid Sans, Helvetica Neue, Helvetica, Arial, sans-serif !default;
|
||||
$global-font-size: 16px;
|
||||
$global-font-weight: 400;
|
||||
$global-line-height: 1.5rem;
|
||||
|
||||
// Color of the background
|
||||
$global-background-color: #fff !default;
|
||||
$global-background-color-dark: #292a2d !default;
|
||||
|
||||
// Color of the text
|
||||
$global-font-color: #161209 !default;
|
||||
$global-font-color-dark: #a9a9b3 !default;
|
||||
|
||||
// Color of the secondary text
|
||||
$global-font-secondary-color: #a9a9b3 !default;
|
||||
$global-font-secondary-color-dark: #5d5d5f !default;
|
||||
|
||||
// Color of the link
|
||||
$global-link-color: #161209 !default;
|
||||
$global-link-color-dark: #a9a9b3 !default;
|
||||
|
||||
// Color of the hover link
|
||||
$global-link-hover-color: #2d96bd !default;
|
||||
$global-link-hover-color-dark: #fff !default;
|
||||
|
||||
// Color of the border
|
||||
$global-border-color: #f0f0f0 !default;
|
||||
$global-border-color-dark: #363636 !default;
|
||||
// ========== Global ========== //
|
||||
|
||||
// ========== Scrollbar ========== //
|
||||
// Color of the scrollbar
|
||||
$scrollbar-color: #87878d !default;
|
||||
|
||||
// Color of the hover scrollbar
|
||||
$scrollbar-hover-color: #a9a9b3 !default;
|
||||
// ========== Scrollbar ========== //
|
||||
|
||||
// ========== Selection ========== //
|
||||
// Color of the selected text
|
||||
$selection-color: rgba(53, 166, 247, 0.25) !default;
|
||||
$selection-color-dark: rgba(50, 112, 194, 0.4) !default;
|
||||
// ========== Selection ========== //
|
||||
|
||||
// ========== Header ========== //
|
||||
// Height of the header
|
||||
$header-height: 3.5rem !default;
|
||||
|
||||
// Color of the header background
|
||||
$header-background-color: #f8f8f8 !default;
|
||||
$header-background-color-dark: #252627 !default;
|
||||
|
||||
// Font style of the header title
|
||||
$header-title-font-family: $global-font-family !default;
|
||||
$header-title-font-size: 1.5rem !default;
|
||||
|
||||
// Color of the hover header item
|
||||
$header-hover-color: #161209 !default;
|
||||
$header-hover-color-dark: #fff !default;
|
||||
|
||||
// Color of the search background
|
||||
$search-background-color: #e9e9e9 !default;
|
||||
$search-background-color-dark: #363636 !default;
|
||||
// ========== Header ========== //
|
||||
|
||||
// ========== Single Content ========== //
|
||||
// Font size of the TOC
|
||||
$toc-title-font-size: 1.2rem !default;
|
||||
$toc-content-font-size: 1rem !default;
|
||||
|
||||
// Color of the single link
|
||||
$single-link-color: #2d96bd !default;
|
||||
$single-link-color-dark: #55bde2 !default;
|
||||
|
||||
// Color of the hover single link
|
||||
$single-link-hover-color: #ef3982 !default;
|
||||
$single-link-hover-color-dark: #bdebfc !default;
|
||||
|
||||
// Color of the table background
|
||||
$table-background-color: #fff !default;
|
||||
$table-background-color-dark: #272c34 !default;
|
||||
|
||||
// Color of the table thead
|
||||
$table-thead-color: #ededed !default;
|
||||
$table-thead-color-dark: #20252b !default;
|
||||
|
||||
// Color of the blockquote
|
||||
$blockquote-color: #6bd6fd !default;
|
||||
$blockquote-color-dark: #59c5ec !default;
|
||||
// ========== Single Content ========== //
|
||||
|
||||
// ========== Pagination ========== //
|
||||
// Color of the link in pagination
|
||||
$pagination-link-color: #2d96bd !default;
|
||||
$pagination-link-color-dark: #a9a9b3 !default;
|
||||
|
||||
// Color of the hover link in pagination
|
||||
$pagination-link-hover-color: #000 !default;
|
||||
$pagination-link-hover-color-dark: #fff !default;
|
||||
// ========== Pagination ========== //
|
||||
|
||||
// ========== Code ========== //
|
||||
// Color of the code
|
||||
$code-color: #E74C3C !default;
|
||||
$code-color-dark: #E5BF78 !default;
|
||||
|
||||
// Color of the code background
|
||||
$code-background-color: #f5f5f5 !default;
|
||||
$code-background-color-dark: #272C34 !default;
|
||||
|
||||
$code-info-color: #9c9c9c !default;
|
||||
$code-info-color-dark: #b1b0b0 !default;
|
||||
|
||||
// Font size of the code
|
||||
$code-font-size: .875rem !default;
|
||||
|
||||
// Font family of the code
|
||||
$code-font-family: Source Code Pro, Menlo, Consolas, Monaco, monospace, $global-font-family !default;
|
||||
|
||||
// Code type map
|
||||
$code-type-map: (
|
||||
// Custom code type
|
||||
language-bash: 'Bash',
|
||||
language-c: 'C',
|
||||
language-cs: 'C#',
|
||||
language-cpp: 'C++',
|
||||
language-clojure: 'Clojure',
|
||||
language-coffeescript: 'CoffeeScript',
|
||||
language-css: 'CSS',
|
||||
language-dart: 'Dart',
|
||||
language-diff: 'Diff',
|
||||
language-erlang: 'Erlang',
|
||||
language-go: 'Go',
|
||||
language-go-html-template: 'Go HTML Template',
|
||||
language-groovy: 'Groovy',
|
||||
language-haskell: 'Haskell',
|
||||
language-html: 'HTML',
|
||||
language-http: 'HTTP',
|
||||
language-xml: 'XML',
|
||||
language-java: 'Java',
|
||||
language-js: 'JavaScript',
|
||||
language-javascript: 'JavaScript',
|
||||
language-json: 'JSON',
|
||||
language-kotlin: 'Kotlin',
|
||||
language-latex: 'LaTeX',
|
||||
language-less: 'Less',
|
||||
language-lisp: 'Lisp',
|
||||
language-lua: 'Lua',
|
||||
language-makefile: 'Makefile',
|
||||
language-markdown: 'Markdown',
|
||||
language-matlab: 'Matlab',
|
||||
language-objectivec: 'Objective-C',
|
||||
language-php: 'PHP',
|
||||
language-perl: 'Perl',
|
||||
language-powershell: 'PowerShell',
|
||||
language-posh: 'PowerShell',
|
||||
language-pwsh: 'PowerShell',
|
||||
language-python: 'Python',
|
||||
language-r: 'R',
|
||||
language-ruby: 'Ruby',
|
||||
language-rust: 'Rust',
|
||||
language-scala: 'Scala',
|
||||
language-scss: 'Scss',
|
||||
language-shell: 'Shell',
|
||||
language-sql: 'SQL',
|
||||
language-swift: 'Swift',
|
||||
language-tex: 'TeX',
|
||||
language-toml: 'TOML',
|
||||
language-ts: 'TypeScript',
|
||||
language-typescript: 'TypeScript',
|
||||
language-vue: 'Vue',
|
||||
language-yml: 'YAML',
|
||||
language-yaml: 'YAML',
|
||||
) !default;
|
||||
|
||||
// Color map of the code highlight
|
||||
$code-highlight-color-map: (
|
||||
/* Parentheses */ 'p': #a9a9b3,
|
||||
/* Keyword */ 'k': #b501a9,
|
||||
/* KeywordConstant */ 'kc': #b501a9,
|
||||
/* KeywordDeclaration */ 'kd': #b501a9,
|
||||
/* KeywordNamespace */ 'kn': #b501a9,
|
||||
/* KeywordPseudo */ 'kp': #b501a9,
|
||||
/* KeywordReserved */ 'kr': #b501a9,
|
||||
/* KeywordType */ 'kt': #b501a9,
|
||||
/* Name */ 'n': #333333,
|
||||
/* NameAttribute */ 'na': #2b77fa,
|
||||
/* NameBuiltin */ 'nb': #f74840,
|
||||
/* NameBuiltinPseudo */ 'bp': #f74840,
|
||||
/* NameClass */ 'nc': #cb8100,
|
||||
/* NameConstant */ 'no': #2b77fa,
|
||||
/* NameDecorator */ 'nd': #0086c1,
|
||||
/* NameEntity */ 'ni': #2b77fa,
|
||||
/* NameException */ 'ne': #2b77fa,
|
||||
/* NameFunction */ 'nf': #2b77fa,
|
||||
/* NameFunctionMagic */ 'fm': #1ccad6,
|
||||
/* NameLabel */ 'nl': #2b77fa,
|
||||
/* NameNamespace */ 'nn': #2b77fa,
|
||||
/* NameOther */ 'nx': #333333,
|
||||
/* NameProperty */ 'py': #2b77fa,
|
||||
/* NameTag */ 'nt': #2b77fa,
|
||||
/* NameVariable */ 'nv': #2b77fa,
|
||||
/* NameVariableClass */ 'vc': #2b77fa,
|
||||
/* NameVariableGlobal */ 'vg': #2b77fa,
|
||||
/* NameVariableInstance */ 'vi': #2b77fa,
|
||||
/* NameVariableMagic */ 'vm': #2b77fa,
|
||||
/* Literal */ 'l': #2aa198,
|
||||
/* LiteralDate */ 'ld': #2aa198,
|
||||
/* LiteralString */ 's': #24a443,
|
||||
/* LiteralStringAffix */ 'sa': #24a443,
|
||||
/* LiteralStringBacktick */ 'sb': #24a443,
|
||||
/* LiteralStringChar */ 'sc': #24a443,
|
||||
/* LiteralStringDelimiter */ 'dl': #24a443,
|
||||
/* LiteralStringDoc */ 'sd': #24a443,
|
||||
/* LiteralStringDouble */ 's2': #24a443,
|
||||
/* LiteralStringEscape */ 'se': #24a443,
|
||||
/* LiteralStringHeredoc */ 'sh': #24a443,
|
||||
/* LiteralStringInterpol */ 'si': #24a443,
|
||||
/* LiteralStringOther */ 'sx': #24a443,
|
||||
/* LiteralStringRegex */ 'sr': #24a443,
|
||||
/* LiteralStringSingle */ 's1': #24a443,
|
||||
/* LiteralStringSymbol */ 'ss': #24a443,
|
||||
/* LiteralNumber */ 'm': #e2893c,
|
||||
/* LiteralNumberBin */ 'mb': #e2893c,
|
||||
/* LiteralNumberFloat */ 'mf': #e2893c,
|
||||
/* LiteralNumberHex */ 'mh': #e2893c,
|
||||
/* LiteralNumberInteger */ 'mi': #e2893c,
|
||||
/* LiteralNumberIntegerLong */ 'il': #e2893c,
|
||||
/* LiteralNumberOct */ 'mo': #e2893c,
|
||||
/* Operator */ 'o': #f19b04,
|
||||
/* OperatorWord */ 'ow': #b501a9,
|
||||
/* Comment */ 'c': #a0a1a8,
|
||||
/* CommentHashbang */ 'ch': #a0a1a8,
|
||||
/* CommentMultiline */ 'cm': #a0a1a8,
|
||||
/* CommentSingle */ 'c1': #a0a1a8,
|
||||
/* CommentSpecial */ 'cs': #a0a1a8,
|
||||
/* CommentPreproc */ 'cp': #a0a1a8,
|
||||
/* CommentPreprocFile */ 'cpf': #a0a1a8,
|
||||
/* Generic */ 'g': #e72d40,
|
||||
/* GenericDeleted */ 'gd': #e72d40,
|
||||
/* GenericEmph */ 'ge': #e72d40,
|
||||
/* GenericError */ 'gr': #e72d40,
|
||||
/* GenericHeading */ 'gh': #e72d40,
|
||||
/* GenericInserted */ 'gi': #e72d40,
|
||||
/* GenericOutput */ 'go': #e72d40,
|
||||
/* GenericPrompt */ 'gp': #e72d40,
|
||||
/* GenericStrong */ 'gs': #e72d40,
|
||||
/* GenericSubheading */ 'gu': #e72d40,
|
||||
/* GenericTraceback */ 'gt': #e72d40,
|
||||
/* TextWhitespace */ 'w': #bbbbbb,
|
||||
) !default;
|
||||
$code-highlight-color-map-dark: (
|
||||
/* Parentheses */ 'p': #a9a9b3,
|
||||
/* Keyword */ 'k': #d371e3,
|
||||
/* KeywordConstant */ 'kc': #d371e3,
|
||||
/* KeywordDeclaration */ 'kd': #d371e3,
|
||||
/* KeywordNamespace */ 'kn': #d371e3,
|
||||
/* KeywordPseudo */ 'kp': #d371e3,
|
||||
/* KeywordReserved */ 'kr': #d371e3,
|
||||
/* KeywordType */ 'kt': #d371e3,
|
||||
/* Name */ 'n': #a9b2c0,
|
||||
/* NameAttribute */ 'na': #41b0f5,
|
||||
/* NameBuiltin */ 'nb': #19b9c4,
|
||||
/* NameBuiltinPseudo */ 'bp': #ecbf6f,
|
||||
/* NameClass */ 'nc': #ecbf6f,
|
||||
/* NameConstant */ 'no': #41b0f5,
|
||||
/* NameDecorator */ 'nd': #ecbf6f,
|
||||
/* NameEntity */ 'ni': #41b0f5,
|
||||
/* NameException */ 'ne': #41b0f5,
|
||||
/* NameFunction */ 'nf': #41b0f5,
|
||||
/* NameFunctionMagic */ 'fm': #19b9c4,
|
||||
/* NameLabel */ 'nl': #41b0f5,
|
||||
/* NameNamespace */ 'nn': #41b0f5,
|
||||
/* NameOther */ 'nx': #a9a9b3,
|
||||
/* NameProperty */ 'py': #41b0f5,
|
||||
/* NameTag */ 'nt': #41b0f5,
|
||||
/* NameVariable */ 'nv': #41b0f5,
|
||||
/* NameVariableClass */ 'vc': #41b0f5,
|
||||
/* NameVariableGlobal */ 'vg': #41b0f5,
|
||||
/* NameVariableInstance */ 'vi': #41b0f5,
|
||||
/* NameVariableMagic */ 'vm': #41b0f5,
|
||||
/* Literal */ 'l': #2aa198,
|
||||
/* LiteralDate */ 'ld': #2aa198,
|
||||
/* LiteralString */ 's': #8cc570,
|
||||
/* LiteralStringAffix */ 'sa': #8cc570,
|
||||
/* LiteralStringBacktick */ 'sb': #8cc570,
|
||||
/* LiteralStringChar */ 'sc': #8cc570,
|
||||
/* LiteralStringDelimiter */ 'dl': #8cc570,
|
||||
/* LiteralStringDoc */ 'sd': #8cc570,
|
||||
/* LiteralStringDouble */ 's2': #8cc570,
|
||||
/* LiteralStringEscape */ 'se': #8cc570,
|
||||
/* LiteralStringHeredoc */ 'sh': #8cc570,
|
||||
/* LiteralStringInterpol */ 'si': #8cc570,
|
||||
/* LiteralStringOther */ 'sx': #8cc570,
|
||||
/* LiteralStringRegex */ 'sr': #8cc570,
|
||||
/* LiteralStringSingle */ 's1': #8cc570,
|
||||
/* LiteralStringSymbol */ 'ss': #8cc570,
|
||||
/* LiteralNumber */ 'm': #db985c,
|
||||
/* LiteralNumberBin */ 'mb': #db985c,
|
||||
/* LiteralNumberFloat */ 'mf': #db985c,
|
||||
/* LiteralNumberHex */ 'mh': #db985c,
|
||||
/* LiteralNumberInteger */ 'mi': #db985c,
|
||||
/* LiteralNumberIntegerLong */ 'il': #db985c,
|
||||
/* LiteralNumberOct */ 'mo': #db985c,
|
||||
/* Operator */ 'o': #ecbf6f,
|
||||
/* OperatorWord */ 'ow': #d371e3,
|
||||
/* Comment */ 'c': #7e848f,
|
||||
/* CommentHashbang */ 'ch': #7e848f,
|
||||
/* CommentMultiline */ 'cm': #7e848f,
|
||||
/* CommentSingle */ 'c1': #7e848f,
|
||||
/* CommentSpecial */ 'cs': #7e848f,
|
||||
/* CommentPreproc */ 'cp': #7e848f,
|
||||
/* CommentPreprocFile */ 'cpf': #7e848f,
|
||||
/* Generic */ 'g': #f16372,
|
||||
/* GenericDeleted */ 'gd': #f16372,
|
||||
/* GenericEmph */ 'ge': #f16372,
|
||||
/* GenericError */ 'gr': #f16372,
|
||||
/* GenericHeading */ 'gh': #f16372,
|
||||
/* GenericInserted */ 'gi': #f16372,
|
||||
/* GenericOutput */ 'go': #f16372,
|
||||
/* GenericPrompt */ 'gp': #f16372,
|
||||
/* GenericStrong */ 'gs': #f16372,
|
||||
/* GenericSubheading */ 'gu': #f16372,
|
||||
/* GenericTraceback */ 'gt': #f16372,
|
||||
/* TextWhitespace */ 'w': #bbbbbb,
|
||||
) !default;
|
||||
// ========== Code ========== //
|
||||
|
||||
// ========== Admonition ========== //
|
||||
// Color map of the admonition
|
||||
$admonition-color-map: (
|
||||
'note': #448aff,
|
||||
'abstract': #00b0ff,
|
||||
'info': #00b8d4,
|
||||
'tip': #00bfa5,
|
||||
'success': #00c853,
|
||||
'question': #64dd17,
|
||||
'warning': #ff9100,
|
||||
'failure': #ff5252,
|
||||
'danger': #ff1744,
|
||||
'bug': #f50057,
|
||||
'example': #651fff,
|
||||
'quote': #9e9e9e,
|
||||
) !default;
|
||||
|
||||
// Color map of the admonition background
|
||||
$admonition-background-color-map: (
|
||||
'note': rgba(68, 138, 255, 0.1),
|
||||
'abstract': rgba(0, 176, 255, 0.1),
|
||||
'info': rgba(0, 184, 212, 0.1),
|
||||
'tip': rgba(0, 191, 165, 0.1),
|
||||
'success': rgba(0, 200, 83, 0.1),
|
||||
'question': rgba(100, 221, 23, 0.1),
|
||||
'warning': rgba(255, 145, 0, 0.1),
|
||||
'failure': rgba(255, 82, 82, 0.1),
|
||||
'danger': rgba(255, 23, 68, 0.1),
|
||||
'bug': rgba(245, 0, 87, 0.1),
|
||||
'example': rgba(101, 31, 255, 0.1),
|
||||
'quote': rgba(159, 159, 159, 0.1),
|
||||
) !default;
|
||||
// ========== Admonition ========== //
|
||||
|
||||
$MAX_LENGTH: 12000px;
|
||||
19
themes/keepit/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";
|
||||
61
themes/keepit/assets/data/cdn/jsdelivr.yml
Normal file
@@ -0,0 +1,61 @@
|
||||
prefix:
|
||||
libFiles: https://cdn.jsdelivr.net/npm/
|
||||
# simple-icons@6.20.0 https://github.com/simple-icons/simple-icons
|
||||
simpleIcons: https://cdn.jsdelivr.net/npm/simple-icons@6.20.0/icons/
|
||||
libFiles:
|
||||
# normalize.css@8.0.1 https://github.com/necolas/normalize.css
|
||||
normalizeCSS: normalize.css@8.0.1/normalize.min.css
|
||||
# fontawesome-free@6.1.1 https://fontawesome.com/
|
||||
fontawesomeFreeCSS: '@fortawesome/fontawesome-free@6.1.1/css/all.min.css'
|
||||
# animate.css@4.1.1 https://github.com/daneden/animate.css
|
||||
animateCSS: animate.css@4.1.1/animate.min.css
|
||||
# autocomplete.js@0.38.1 https://github.com/algolia/autocomplete.js
|
||||
autocompleteJS: autocomplete.js@0.38.1/dist/autocomplete.min.js
|
||||
# lunr.js@2.3.9 https://lunrjs.com/
|
||||
lunrJS: lunr@2.3.9/lunr.min.js
|
||||
# algoliasearch@4.13.0 https://github.com/algolia/algoliasearch-client-javascript
|
||||
algoliasearchJS: algoliasearch@4.13.0/dist/algoliasearch-lite.umd.min.js
|
||||
# lazysizes@5.3.1 https://github.com/aFarkas/lazysizes
|
||||
lazysizesJS: lazysizes@5.3.1/lazysizes.min.js
|
||||
# object-fit-images@3.2.4 https://github.com/fregante/object-fit-images
|
||||
objectFitImagesJS: object-fit-images@3.2.4/dist/ofi.min.js
|
||||
# twemoji@14.0.2 https://github.com/twitter/twemoji
|
||||
twemojiJS: twemoji@14.0.2/dist/twemoji.min.js
|
||||
# lightgallery@2.4.0 https://github.com/sachinchoolur/lightgallery
|
||||
lightgalleryCSS: lightgallery@2.4.0/css/lightgallery-bundle.min.css
|
||||
lightgalleryJS: lightgallery@2.4.0/lightgallery.min.js
|
||||
lightgalleryThumbnailJS: lightgallery@2.4.0/plugins/thumbnail/lg-thumbnail.min.js
|
||||
lightgalleryZoomJS: lightgallery@2.4.0/plugins/zoom/lg-zoom.min.js
|
||||
# clipboard.js@2.0.11 https://github.com/zenorocha/clipboard.js
|
||||
clipboardJS: clipboard@2.0.11/dist/clipboard.min.js
|
||||
# sharer.js@0.5.1 https://github.com/ellisonleao/sharer.js
|
||||
sharerJS: sharer.js@0.5.1/sharer.min.js
|
||||
# typeit@8.5.4 https://github.com/alexmacarthur/typeit
|
||||
typeitJS: typeit@8.5.4/dist/index.umd.js
|
||||
# katex@0.15.3 https://katex.org/
|
||||
katexCSS: katex@0.15.3/dist/katex.min.css
|
||||
katexJS: katex@0.15.3/dist/katex.min.js
|
||||
katexAutoRenderJS: katex@0.15.3/dist/contrib/auto-render.min.js
|
||||
katexCopyTexCSS: katex@0.15.3/dist/contrib/copy-tex.min.css
|
||||
katexCopyTexJS: katex@0.15.3/dist/contrib/copy-tex.min.js
|
||||
katexMhchemJS: katex@0.15.3/dist/contrib/mhchem.min.js
|
||||
# mermaid@9.1.0 https://github.com/mermaid-js/mermaid
|
||||
mermaidJS: mermaid@9.1.0/dist/mermaid.min.js
|
||||
# echarts@5.3.2 https://echarts.apache.org/
|
||||
echartsJS: echarts@5.3.2/dist/echarts.min.js
|
||||
# mapbox-gl@2.8.2 https://docs.mapbox.com/mapbox-gl-js
|
||||
mapboxGLCSS: mapbox-gl@2.8.2/dist/mapbox-gl.min.css
|
||||
mapboxGLJS: mapbox-gl@2.8.2/dist/mapbox-gl.min.js
|
||||
# aplayer@1.10.1 https://github.com/MoePlayer/APlayer
|
||||
aplayerCSS: aplayer@1.10.1/dist/APlayer.min.css
|
||||
aplayerJS: aplayer@1.10.1/dist/APlayer.min.js
|
||||
# meting@2.0.1 https://github.com/metowolf/MetingJS
|
||||
metingJS: meting@2.0.1/dist/Meting.min.js
|
||||
# gitalk@1.7.2 https://github.com/gitalk/gitalk
|
||||
gitalkCSS: gitalk@1.7.2/dist/gitalk.min.css
|
||||
gitalkJS: gitalk@1.7.2/dist/gitalk.min.js
|
||||
# valine@1.4.18 https://valine.js.org/
|
||||
valineJS: valine@1.4.18/dist/Valine.min.js
|
||||
# cookieconsent@3.1.1 https://github.com/osano/cookieconsent
|
||||
cookieconsentCSS: cookieconsent@3.1.1/build/cookieconsent.min.css
|
||||
cookieconsentJS: cookieconsent@3.1.1/build/cookieconsent.min.js
|
||||
150
themes/keepit/assets/data/emoji/apple.yml
Normal file
@@ -0,0 +1,150 @@
|
||||
emojiCDN: 'https://cdn.jsdelivr.net/npm/emoji-datasource-apple@14.0.0/img/apple/64/'
|
||||
emojiMaps:
|
||||
'100': 1f4af.png
|
||||
grinning: 1f600.png
|
||||
smiley: 1f603.png
|
||||
smile: 1f604.png
|
||||
grin: 1f601.png
|
||||
laughing: 1f606.png
|
||||
sweat_smile: 1f605.png
|
||||
rolling_on_the_floor_laughing: 1f923.png
|
||||
joy: 1f602.png
|
||||
slightly_smiling_face: 1f642.png
|
||||
upside_down_face: 1f643.png
|
||||
wink: 1f609.png
|
||||
blush: 1f60a.png
|
||||
innocent: 1f607.png
|
||||
smiling_face_with_3_hearts: 1f970.png
|
||||
heart_eyes: 1f60d.png
|
||||
star-struck: 1f929.png
|
||||
kissing_heart: 1f618.png
|
||||
kissing: 1f617.png
|
||||
relaxed: 263a-fe0f.png
|
||||
kissing_closed_eyes: 1f61a.png
|
||||
kissing_smiling_eyes: 1f619.png
|
||||
yum: 1f60b.png
|
||||
stuck_out_tongue: 1f61b.png
|
||||
stuck_out_tongue_winking_eye: 1f61c.png
|
||||
zany_face: 1f92a.png
|
||||
stuck_out_tongue_closed_eyes: 1f61d.png
|
||||
money_mouth_face: 1f911.png
|
||||
hugging_face: 1f917.png
|
||||
face_with_hand_over_mouth: 1f92d.png
|
||||
shushing_face: 1f92b.png
|
||||
thinking_face: 1f914.png
|
||||
zipper_mouth_face: 1f910.png
|
||||
face_with_raised_eyebrow: 1f928.png
|
||||
neutral_face: 1f610.png
|
||||
expressionless: 1f611.png
|
||||
no_mouth: 1f636.png
|
||||
smirk: 1f60f.png
|
||||
unamused: 1f612.png
|
||||
face_with_rolling_eyes: 1f644.png
|
||||
grimacing: 1f62c.png
|
||||
lying_face: 1f925.png
|
||||
relieved: 1f60c.png
|
||||
pensive: 1f614.png
|
||||
sleepy: 1f62a.png
|
||||
drooling_face: 1f924.png
|
||||
sleeping: 1f634.png
|
||||
mask: 1f637.png
|
||||
face_with_thermometer: 1f912.png
|
||||
face_with_head_bandage: 1f915.png
|
||||
nauseated_face: 1f922.png
|
||||
face_vomiting: 1f92e.png
|
||||
sneezing_face: 1f927.png
|
||||
hot_face: 1f975.png
|
||||
cold_face: 1f976.png
|
||||
woozy_face: 1f974.png
|
||||
dizzy_face: 1f635.png
|
||||
exploding_head: 1f92f.png
|
||||
face_with_cowboy_hat: 1f920.png
|
||||
partying_face: 1f973.png
|
||||
sunglasses: 1f60e.png
|
||||
nerd_face: 1f913.png
|
||||
face_with_monocle: 1f9d0.png
|
||||
confused: 1f615.png
|
||||
worried: 1f61f.png
|
||||
slightly_frowning_face: 1f641.png
|
||||
white_frowning_face: 2639-fe0f.png
|
||||
open_mouth: 1f62e.png
|
||||
hushed: 1f62f.png
|
||||
astonished: 1f632.png
|
||||
flushed: 1f633.png
|
||||
pleading_face: 1f97a.png
|
||||
frowning: 1f626.png
|
||||
anguished: 1f627.png
|
||||
fearful: 1f628.png
|
||||
cold_sweat: 1f630.png
|
||||
disappointed_relieved: 1f625.png
|
||||
cry: 1f622.png
|
||||
sob: 1f62d.png
|
||||
scream: 1f631.png
|
||||
confounded: 1f616.png
|
||||
persevere: 1f623.png
|
||||
disappointed: 1f61e.png
|
||||
sweat: 1f613.png
|
||||
weary: 1f629.png
|
||||
tired_face: 1f62b.png
|
||||
yawning_face: 1f971.png
|
||||
triumph: 1f624.png
|
||||
rage: 1f621.png
|
||||
angry: 1f620.png
|
||||
face_with_symbols_on_mouth: 1f92c.png
|
||||
smiling_imp: 1f608.png
|
||||
imp: 1f47f.png
|
||||
skull: 1f480.png
|
||||
skull_and_crossbones: 2620-fe0f.png
|
||||
hankey: 1f4a9.png
|
||||
clown_face: 1f921.png
|
||||
japanese_ogre: 1f479.png
|
||||
japanese_goblin: 1f47a.png
|
||||
ghost: 1f47b.png
|
||||
alien: 1f47d.png
|
||||
space_invader: 1f47e.png
|
||||
robot_face: 1f916.png
|
||||
smiley_cat: 1f63a.png
|
||||
smile_cat: 1f638.png
|
||||
joy_cat: 1f639.png
|
||||
heart_eyes_cat: 1f63b.png
|
||||
smirk_cat: 1f63c.png
|
||||
kissing_cat: 1f63d.png
|
||||
scream_cat: 1f640.png
|
||||
crying_cat_face: 1f63f.png
|
||||
pouting_cat: 1f63e.png
|
||||
see_no_evil: 1f648.png
|
||||
hear_no_evil: 1f649.png
|
||||
speak_no_evil: 1f64a.png
|
||||
kiss: 1f48b.png
|
||||
love_letter: 1f48c.png
|
||||
cupid: 1f498.png
|
||||
gift_heart: 1f49d.png
|
||||
sparkling_heart: 1f496.png
|
||||
heartpulse: 1f497.png
|
||||
heartbeat: 1f493.png
|
||||
revolving_hearts: 1f49e.png
|
||||
two_hearts: 1f495.png
|
||||
heart_decoration: 1f49f.png
|
||||
heavy_heart_exclamation_mark_ornament: 2763-fe0f.png
|
||||
broken_heart: 1f494.png
|
||||
heart: 2764-fe0f.png
|
||||
orange_heart: 1f9e1.png
|
||||
yellow_heart: 1f49b.png
|
||||
green_heart: 1f49a.png
|
||||
blue_heart: 1f499.png
|
||||
purple_heart: 1f49c.png
|
||||
brown_heart: 1f90e.png
|
||||
black_heart: 1f5a4.png
|
||||
white_heart: 1f90d.png
|
||||
anger: 1f4a2.png
|
||||
boom: 1f4a5.png
|
||||
dizzy: 1f4ab.png
|
||||
sweat_drops: 1f4a6.png
|
||||
dash: 1f4a8.png
|
||||
hole: 1f573-fe0f.png
|
||||
bomb: 1f4a3.png
|
||||
speech_balloon: 1f4ac.png
|
||||
left_speech_bubble: 1f5e8-fe0f.png
|
||||
right_anger_bubble: 1f5ef-fe0f.png
|
||||
thought_balloon: 1f4ad.png
|
||||
zzz: 1f4a4.png
|
||||
150
themes/keepit/assets/data/emoji/facebook.yml
Normal file
@@ -0,0 +1,150 @@
|
||||
emojiCDN: 'https://cdn.jsdelivr.net/npm/emoji-datasource-facebook@14.0.0/img/facebook/64/'
|
||||
emojiMaps:
|
||||
'100': 1f4af.png
|
||||
grinning: 1f600.png
|
||||
smiley: 1f603.png
|
||||
smile: 1f604.png
|
||||
grin: 1f601.png
|
||||
laughing: 1f606.png
|
||||
sweat_smile: 1f605.png
|
||||
rolling_on_the_floor_laughing: 1f923.png
|
||||
joy: 1f602.png
|
||||
slightly_smiling_face: 1f642.png
|
||||
upside_down_face: 1f643.png
|
||||
wink: 1f609.png
|
||||
blush: 1f60a.png
|
||||
innocent: 1f607.png
|
||||
smiling_face_with_3_hearts: 1f970.png
|
||||
heart_eyes: 1f60d.png
|
||||
star-struck: 1f929.png
|
||||
kissing_heart: 1f618.png
|
||||
kissing: 1f617.png
|
||||
relaxed: 263a-fe0f.png
|
||||
kissing_closed_eyes: 1f61a.png
|
||||
kissing_smiling_eyes: 1f619.png
|
||||
yum: 1f60b.png
|
||||
stuck_out_tongue: 1f61b.png
|
||||
stuck_out_tongue_winking_eye: 1f61c.png
|
||||
zany_face: 1f92a.png
|
||||
stuck_out_tongue_closed_eyes: 1f61d.png
|
||||
money_mouth_face: 1f911.png
|
||||
hugging_face: 1f917.png
|
||||
face_with_hand_over_mouth: 1f92d.png
|
||||
shushing_face: 1f92b.png
|
||||
thinking_face: 1f914.png
|
||||
zipper_mouth_face: 1f910.png
|
||||
face_with_raised_eyebrow: 1f928.png
|
||||
neutral_face: 1f610.png
|
||||
expressionless: 1f611.png
|
||||
no_mouth: 1f636.png
|
||||
smirk: 1f60f.png
|
||||
unamused: 1f612.png
|
||||
face_with_rolling_eyes: 1f644.png
|
||||
grimacing: 1f62c.png
|
||||
lying_face: 1f925.png
|
||||
relieved: 1f60c.png
|
||||
pensive: 1f614.png
|
||||
sleepy: 1f62a.png
|
||||
drooling_face: 1f924.png
|
||||
sleeping: 1f634.png
|
||||
mask: 1f637.png
|
||||
face_with_thermometer: 1f912.png
|
||||
face_with_head_bandage: 1f915.png
|
||||
nauseated_face: 1f922.png
|
||||
face_vomiting: 1f92e.png
|
||||
sneezing_face: 1f927.png
|
||||
hot_face: 1f975.png
|
||||
cold_face: 1f976.png
|
||||
woozy_face: 1f974.png
|
||||
dizzy_face: 1f635.png
|
||||
exploding_head: 1f92f.png
|
||||
face_with_cowboy_hat: 1f920.png
|
||||
partying_face: 1f973.png
|
||||
sunglasses: 1f60e.png
|
||||
nerd_face: 1f913.png
|
||||
face_with_monocle: 1f9d0.png
|
||||
confused: 1f615.png
|
||||
worried: 1f61f.png
|
||||
slightly_frowning_face: 1f641.png
|
||||
white_frowning_face: 2639-fe0f.png
|
||||
open_mouth: 1f62e.png
|
||||
hushed: 1f62f.png
|
||||
astonished: 1f632.png
|
||||
flushed: 1f633.png
|
||||
pleading_face: 1f97a.png
|
||||
frowning: 1f626.png
|
||||
anguished: 1f627.png
|
||||
fearful: 1f628.png
|
||||
cold_sweat: 1f630.png
|
||||
disappointed_relieved: 1f625.png
|
||||
cry: 1f622.png
|
||||
sob: 1f62d.png
|
||||
scream: 1f631.png
|
||||
confounded: 1f616.png
|
||||
persevere: 1f623.png
|
||||
disappointed: 1f61e.png
|
||||
sweat: 1f613.png
|
||||
weary: 1f629.png
|
||||
tired_face: 1f62b.png
|
||||
yawning_face: 1f971.png
|
||||
triumph: 1f624.png
|
||||
rage: 1f621.png
|
||||
angry: 1f620.png
|
||||
face_with_symbols_on_mouth: 1f92c.png
|
||||
smiling_imp: 1f608.png
|
||||
imp: 1f47f.png
|
||||
skull: 1f480.png
|
||||
skull_and_crossbones: 2620-fe0f.png
|
||||
hankey: 1f4a9.png
|
||||
clown_face: 1f921.png
|
||||
japanese_ogre: 1f479.png
|
||||
japanese_goblin: 1f47a.png
|
||||
ghost: 1f47b.png
|
||||
alien: 1f47d.png
|
||||
space_invader: 1f47e.png
|
||||
robot_face: 1f916.png
|
||||
smiley_cat: 1f63a.png
|
||||
smile_cat: 1f638.png
|
||||
joy_cat: 1f639.png
|
||||
heart_eyes_cat: 1f63b.png
|
||||
smirk_cat: 1f63c.png
|
||||
kissing_cat: 1f63d.png
|
||||
scream_cat: 1f640.png
|
||||
crying_cat_face: 1f63f.png
|
||||
pouting_cat: 1f63e.png
|
||||
see_no_evil: 1f648.png
|
||||
hear_no_evil: 1f649.png
|
||||
speak_no_evil: 1f64a.png
|
||||
kiss: 1f48b.png
|
||||
love_letter: 1f48c.png
|
||||
cupid: 1f498.png
|
||||
gift_heart: 1f49d.png
|
||||
sparkling_heart: 1f496.png
|
||||
heartpulse: 1f497.png
|
||||
heartbeat: 1f493.png
|
||||
revolving_hearts: 1f49e.png
|
||||
two_hearts: 1f495.png
|
||||
heart_decoration: 1f49f.png
|
||||
heavy_heart_exclamation_mark_ornament: 2763-fe0f.png
|
||||
broken_heart: 1f494.png
|
||||
heart: 2764-fe0f.png
|
||||
orange_heart: 1f9e1.png
|
||||
yellow_heart: 1f49b.png
|
||||
green_heart: 1f49a.png
|
||||
blue_heart: 1f499.png
|
||||
purple_heart: 1f49c.png
|
||||
brown_heart: 1f90e.png
|
||||
black_heart: 1f5a4.png
|
||||
white_heart: 1f90d.png
|
||||
anger: 1f4a2.png
|
||||
boom: 1f4a5.png
|
||||
dizzy: 1f4ab.png
|
||||
sweat_drops: 1f4a6.png
|
||||
dash: 1f4a8.png
|
||||
hole: 1f573-fe0f.png
|
||||
bomb: 1f4a3.png
|
||||
speech_balloon: 1f4ac.png
|
||||
left_speech_bubble: 1f5e8-fe0f.png
|
||||
right_anger_bubble: 1f5ef-fe0f.png
|
||||
thought_balloon: 1f4ad.png
|
||||
zzz: 1f4a4.png
|
||||
150
themes/keepit/assets/data/emoji/google.yml
Normal file
@@ -0,0 +1,150 @@
|
||||
emojiCDN: 'https://cdn.jsdelivr.net/npm/emoji-datasource-google@14.0.0/img/google/64/'
|
||||
emojiMaps:
|
||||
'100': 1f4af.png
|
||||
grinning: 1f600.png
|
||||
smiley: 1f603.png
|
||||
smile: 1f604.png
|
||||
grin: 1f601.png
|
||||
laughing: 1f606.png
|
||||
sweat_smile: 1f605.png
|
||||
rolling_on_the_floor_laughing: 1f923.png
|
||||
joy: 1f602.png
|
||||
slightly_smiling_face: 1f642.png
|
||||
upside_down_face: 1f643.png
|
||||
wink: 1f609.png
|
||||
blush: 1f60a.png
|
||||
innocent: 1f607.png
|
||||
smiling_face_with_3_hearts: 1f970.png
|
||||
heart_eyes: 1f60d.png
|
||||
star-struck: 1f929.png
|
||||
kissing_heart: 1f618.png
|
||||
kissing: 1f617.png
|
||||
relaxed: 263a-fe0f.png
|
||||
kissing_closed_eyes: 1f61a.png
|
||||
kissing_smiling_eyes: 1f619.png
|
||||
yum: 1f60b.png
|
||||
stuck_out_tongue: 1f61b.png
|
||||
stuck_out_tongue_winking_eye: 1f61c.png
|
||||
zany_face: 1f92a.png
|
||||
stuck_out_tongue_closed_eyes: 1f61d.png
|
||||
money_mouth_face: 1f911.png
|
||||
hugging_face: 1f917.png
|
||||
face_with_hand_over_mouth: 1f92d.png
|
||||
shushing_face: 1f92b.png
|
||||
thinking_face: 1f914.png
|
||||
zipper_mouth_face: 1f910.png
|
||||
face_with_raised_eyebrow: 1f928.png
|
||||
neutral_face: 1f610.png
|
||||
expressionless: 1f611.png
|
||||
no_mouth: 1f636.png
|
||||
smirk: 1f60f.png
|
||||
unamused: 1f612.png
|
||||
face_with_rolling_eyes: 1f644.png
|
||||
grimacing: 1f62c.png
|
||||
lying_face: 1f925.png
|
||||
relieved: 1f60c.png
|
||||
pensive: 1f614.png
|
||||
sleepy: 1f62a.png
|
||||
drooling_face: 1f924.png
|
||||
sleeping: 1f634.png
|
||||
mask: 1f637.png
|
||||
face_with_thermometer: 1f912.png
|
||||
face_with_head_bandage: 1f915.png
|
||||
nauseated_face: 1f922.png
|
||||
face_vomiting: 1f92e.png
|
||||
sneezing_face: 1f927.png
|
||||
hot_face: 1f975.png
|
||||
cold_face: 1f976.png
|
||||
woozy_face: 1f974.png
|
||||
dizzy_face: 1f635.png
|
||||
exploding_head: 1f92f.png
|
||||
face_with_cowboy_hat: 1f920.png
|
||||
partying_face: 1f973.png
|
||||
sunglasses: 1f60e.png
|
||||
nerd_face: 1f913.png
|
||||
face_with_monocle: 1f9d0.png
|
||||
confused: 1f615.png
|
||||
worried: 1f61f.png
|
||||
slightly_frowning_face: 1f641.png
|
||||
white_frowning_face: 2639-fe0f.png
|
||||
open_mouth: 1f62e.png
|
||||
hushed: 1f62f.png
|
||||
astonished: 1f632.png
|
||||
flushed: 1f633.png
|
||||
pleading_face: 1f97a.png
|
||||
frowning: 1f626.png
|
||||
anguished: 1f627.png
|
||||
fearful: 1f628.png
|
||||
cold_sweat: 1f630.png
|
||||
disappointed_relieved: 1f625.png
|
||||
cry: 1f622.png
|
||||
sob: 1f62d.png
|
||||
scream: 1f631.png
|
||||
confounded: 1f616.png
|
||||
persevere: 1f623.png
|
||||
disappointed: 1f61e.png
|
||||
sweat: 1f613.png
|
||||
weary: 1f629.png
|
||||
tired_face: 1f62b.png
|
||||
yawning_face: 1f971.png
|
||||
triumph: 1f624.png
|
||||
rage: 1f621.png
|
||||
angry: 1f620.png
|
||||
face_with_symbols_on_mouth: 1f92c.png
|
||||
smiling_imp: 1f608.png
|
||||
imp: 1f47f.png
|
||||
skull: 1f480.png
|
||||
skull_and_crossbones: 2620-fe0f.png
|
||||
hankey: 1f4a9.png
|
||||
clown_face: 1f921.png
|
||||
japanese_ogre: 1f479.png
|
||||
japanese_goblin: 1f47a.png
|
||||
ghost: 1f47b.png
|
||||
alien: 1f47d.png
|
||||
space_invader: 1f47e.png
|
||||
robot_face: 1f916.png
|
||||
smiley_cat: 1f63a.png
|
||||
smile_cat: 1f638.png
|
||||
joy_cat: 1f639.png
|
||||
heart_eyes_cat: 1f63b.png
|
||||
smirk_cat: 1f63c.png
|
||||
kissing_cat: 1f63d.png
|
||||
scream_cat: 1f640.png
|
||||
crying_cat_face: 1f63f.png
|
||||
pouting_cat: 1f63e.png
|
||||
see_no_evil: 1f648.png
|
||||
hear_no_evil: 1f649.png
|
||||
speak_no_evil: 1f64a.png
|
||||
kiss: 1f48b.png
|
||||
love_letter: 1f48c.png
|
||||
cupid: 1f498.png
|
||||
gift_heart: 1f49d.png
|
||||
sparkling_heart: 1f496.png
|
||||
heartpulse: 1f497.png
|
||||
heartbeat: 1f493.png
|
||||
revolving_hearts: 1f49e.png
|
||||
two_hearts: 1f495.png
|
||||
heart_decoration: 1f49f.png
|
||||
heavy_heart_exclamation_mark_ornament: 2763-fe0f.png
|
||||
broken_heart: 1f494.png
|
||||
heart: 2764-fe0f.png
|
||||
orange_heart: 1f9e1.png
|
||||
yellow_heart: 1f49b.png
|
||||
green_heart: 1f49a.png
|
||||
blue_heart: 1f499.png
|
||||
purple_heart: 1f49c.png
|
||||
brown_heart: 1f90e.png
|
||||
black_heart: 1f5a4.png
|
||||
white_heart: 1f90d.png
|
||||
anger: 1f4a2.png
|
||||
boom: 1f4a5.png
|
||||
dizzy: 1f4ab.png
|
||||
sweat_drops: 1f4a6.png
|
||||
dash: 1f4a8.png
|
||||
hole: 1f573-fe0f.png
|
||||
bomb: 1f4a3.png
|
||||
speech_balloon: 1f4ac.png
|
||||
left_speech_bubble: 1f5e8-fe0f.png
|
||||
right_anger_bubble: 1f5ef-fe0f.png
|
||||
thought_balloon: 1f4ad.png
|
||||
zzz: 1f4a4.png
|
||||
150
themes/keepit/assets/data/emoji/twitter.yml
Normal file
@@ -0,0 +1,150 @@
|
||||
emojiCDN: 'https://cdn.jsdelivr.net/npm/emoji-datasource-twitter@14.0.0/img/twitter/64/'
|
||||
emojiMaps:
|
||||
'100': 1f4af.png
|
||||
grinning: 1f600.png
|
||||
smiley: 1f603.png
|
||||
smile: 1f604.png
|
||||
grin: 1f601.png
|
||||
laughing: 1f606.png
|
||||
sweat_smile: 1f605.png
|
||||
rolling_on_the_floor_laughing: 1f923.png
|
||||
joy: 1f602.png
|
||||
slightly_smiling_face: 1f642.png
|
||||
upside_down_face: 1f643.png
|
||||
wink: 1f609.png
|
||||
blush: 1f60a.png
|
||||
innocent: 1f607.png
|
||||
smiling_face_with_3_hearts: 1f970.png
|
||||
heart_eyes: 1f60d.png
|
||||
star-struck: 1f929.png
|
||||
kissing_heart: 1f618.png
|
||||
kissing: 1f617.png
|
||||
relaxed: 263a-fe0f.png
|
||||
kissing_closed_eyes: 1f61a.png
|
||||
kissing_smiling_eyes: 1f619.png
|
||||
yum: 1f60b.png
|
||||
stuck_out_tongue: 1f61b.png
|
||||
stuck_out_tongue_winking_eye: 1f61c.png
|
||||
zany_face: 1f92a.png
|
||||
stuck_out_tongue_closed_eyes: 1f61d.png
|
||||
money_mouth_face: 1f911.png
|
||||
hugging_face: 1f917.png
|
||||
face_with_hand_over_mouth: 1f92d.png
|
||||
shushing_face: 1f92b.png
|
||||
thinking_face: 1f914.png
|
||||
zipper_mouth_face: 1f910.png
|
||||
face_with_raised_eyebrow: 1f928.png
|
||||
neutral_face: 1f610.png
|
||||
expressionless: 1f611.png
|
||||
no_mouth: 1f636.png
|
||||
smirk: 1f60f.png
|
||||
unamused: 1f612.png
|
||||
face_with_rolling_eyes: 1f644.png
|
||||
grimacing: 1f62c.png
|
||||
lying_face: 1f925.png
|
||||
relieved: 1f60c.png
|
||||
pensive: 1f614.png
|
||||
sleepy: 1f62a.png
|
||||
drooling_face: 1f924.png
|
||||
sleeping: 1f634.png
|
||||
mask: 1f637.png
|
||||
face_with_thermometer: 1f912.png
|
||||
face_with_head_bandage: 1f915.png
|
||||
nauseated_face: 1f922.png
|
||||
face_vomiting: 1f92e.png
|
||||
sneezing_face: 1f927.png
|
||||
hot_face: 1f975.png
|
||||
cold_face: 1f976.png
|
||||
woozy_face: 1f974.png
|
||||
dizzy_face: 1f635.png
|
||||
exploding_head: 1f92f.png
|
||||
face_with_cowboy_hat: 1f920.png
|
||||
partying_face: 1f973.png
|
||||
sunglasses: 1f60e.png
|
||||
nerd_face: 1f913.png
|
||||
face_with_monocle: 1f9d0.png
|
||||
confused: 1f615.png
|
||||
worried: 1f61f.png
|
||||
slightly_frowning_face: 1f641.png
|
||||
white_frowning_face: 2639-fe0f.png
|
||||
open_mouth: 1f62e.png
|
||||
hushed: 1f62f.png
|
||||
astonished: 1f632.png
|
||||
flushed: 1f633.png
|
||||
pleading_face: 1f97a.png
|
||||
frowning: 1f626.png
|
||||
anguished: 1f627.png
|
||||
fearful: 1f628.png
|
||||
cold_sweat: 1f630.png
|
||||
disappointed_relieved: 1f625.png
|
||||
cry: 1f622.png
|
||||
sob: 1f62d.png
|
||||
scream: 1f631.png
|
||||
confounded: 1f616.png
|
||||
persevere: 1f623.png
|
||||
disappointed: 1f61e.png
|
||||
sweat: 1f613.png
|
||||
weary: 1f629.png
|
||||
tired_face: 1f62b.png
|
||||
yawning_face: 1f971.png
|
||||
triumph: 1f624.png
|
||||
rage: 1f621.png
|
||||
angry: 1f620.png
|
||||
face_with_symbols_on_mouth: 1f92c.png
|
||||
smiling_imp: 1f608.png
|
||||
imp: 1f47f.png
|
||||
skull: 1f480.png
|
||||
skull_and_crossbones: 2620-fe0f.png
|
||||
hankey: 1f4a9.png
|
||||
clown_face: 1f921.png
|
||||
japanese_ogre: 1f479.png
|
||||
japanese_goblin: 1f47a.png
|
||||
ghost: 1f47b.png
|
||||
alien: 1f47d.png
|
||||
space_invader: 1f47e.png
|
||||
robot_face: 1f916.png
|
||||
smiley_cat: 1f63a.png
|
||||
smile_cat: 1f638.png
|
||||
joy_cat: 1f639.png
|
||||
heart_eyes_cat: 1f63b.png
|
||||
smirk_cat: 1f63c.png
|
||||
kissing_cat: 1f63d.png
|
||||
scream_cat: 1f640.png
|
||||
crying_cat_face: 1f63f.png
|
||||
pouting_cat: 1f63e.png
|
||||
see_no_evil: 1f648.png
|
||||
hear_no_evil: 1f649.png
|
||||
speak_no_evil: 1f64a.png
|
||||
kiss: 1f48b.png
|
||||
love_letter: 1f48c.png
|
||||
cupid: 1f498.png
|
||||
gift_heart: 1f49d.png
|
||||
sparkling_heart: 1f496.png
|
||||
heartpulse: 1f497.png
|
||||
heartbeat: 1f493.png
|
||||
revolving_hearts: 1f49e.png
|
||||
two_hearts: 1f495.png
|
||||
heart_decoration: 1f49f.png
|
||||
heavy_heart_exclamation_mark_ornament: 2763-fe0f.png
|
||||
broken_heart: 1f494.png
|
||||
heart: 2764-fe0f.png
|
||||
orange_heart: 1f9e1.png
|
||||
yellow_heart: 1f49b.png
|
||||
green_heart: 1f49a.png
|
||||
blue_heart: 1f499.png
|
||||
purple_heart: 1f49c.png
|
||||
brown_heart: 1f90e.png
|
||||
black_heart: 1f5a4.png
|
||||
white_heart: 1f90d.png
|
||||
anger: 1f4a2.png
|
||||
boom: 1f4a5.png
|
||||
dizzy: 1f4ab.png
|
||||
sweat_drops: 1f4a6.png
|
||||
dash: 1f4a8.png
|
||||
hole: 1f573-fe0f.png
|
||||
bomb: 1f4a3.png
|
||||
speech_balloon: 1f4ac.png
|
||||
left_speech_bubble: 1f5e8-fe0f.png
|
||||
right_anger_bubble: 1f5ef-fe0f.png
|
||||
thought_balloon: 1f4ad.png
|
||||
zzz: 1f4a4.png
|
||||
18
themes/keepit/assets/data/polyfill.yml
Normal file
@@ -0,0 +1,18 @@
|
||||
theme:
|
||||
- html5shiv
|
||||
- Object.values
|
||||
- Promise
|
||||
- fetch
|
||||
- Element.prototype.after
|
||||
algoliasearch:
|
||||
- Promise
|
||||
- Object.entries
|
||||
- Object.assign
|
||||
TypeIt:
|
||||
- Array.prototype.fill
|
||||
- Array.prototype.find
|
||||
- Array.from
|
||||
- IntersectionObserver
|
||||
- Math.sign
|
||||
- Object.assign
|
||||
- Promise
|
||||
511
themes/keepit/assets/data/social.yml
Normal file
@@ -0,0 +1,511 @@
|
||||
# 001: Github
|
||||
github:
|
||||
Weight: 60
|
||||
Prefix: https://github.com/
|
||||
Title: GitHub
|
||||
Icon:
|
||||
Class: fab fa-github-alt fa-fw
|
||||
|
||||
# 002: LinkedIn
|
||||
linkedin:
|
||||
Weight: 2
|
||||
Prefix: https://linkedin.com/in/
|
||||
Title: LinkedIn
|
||||
Icon:
|
||||
Class: fab fa-linkedin fa-fw
|
||||
|
||||
# 003: Twitter
|
||||
twitter:
|
||||
Weight: 3
|
||||
Prefix: https://twitter.com/
|
||||
Title: Twitter
|
||||
Icon:
|
||||
Class: fab fa-twitter fa-fw
|
||||
|
||||
# 004: Instagram
|
||||
instagram:
|
||||
Weight: 4
|
||||
Prefix: https://www.instagram.com/
|
||||
Title: Instagram
|
||||
Icon:
|
||||
Class: fab fa-instagram fa-fw
|
||||
|
||||
# 005: facebook
|
||||
facebook:
|
||||
Weight: 5
|
||||
Prefix: https://facebook.com/
|
||||
Title: facebook
|
||||
Icon:
|
||||
Class: fab fa-facebook fa-fw
|
||||
|
||||
# 006: Telegram
|
||||
telegram:
|
||||
Weight: 6
|
||||
Prefix: https://t.me/
|
||||
Title: Telegram
|
||||
Icon:
|
||||
Class: fab fa-telegram-plane fa-fw
|
||||
|
||||
# 007: Medium
|
||||
medium:
|
||||
Weight: 7
|
||||
Prefix: https://medium.com/
|
||||
Title: Medium
|
||||
Icon:
|
||||
Class: fab fa-medium fa-fw
|
||||
|
||||
# 008: GitLab
|
||||
gitlab:
|
||||
Weight: 8
|
||||
Prefix: https://gitlab.spencassemble.com/
|
||||
Title: GitLab
|
||||
Icon:
|
||||
Class: fab fa-gitlab fa-fw
|
||||
|
||||
# 009: YouTube Legacy
|
||||
youtubelegacy:
|
||||
Weight: 9
|
||||
Prefix: https://www.youtube.com/user/
|
||||
Title: YouTube
|
||||
Icon:
|
||||
Class: fab fa-youtube fa-fw
|
||||
|
||||
# 010: YouTube Custom
|
||||
youtubecustom:
|
||||
Weight: 10
|
||||
Prefix: https://www.youtube.com/c/
|
||||
Title: YouTube
|
||||
Icon:
|
||||
Class: fab fa-youtube fa-fw
|
||||
|
||||
# 011: YouTube Channel
|
||||
youtubechannel:
|
||||
Weight: 11
|
||||
Prefix: https://www.youtube.com/channel/
|
||||
Title: YouTube
|
||||
Icon:
|
||||
Class: fab fa-youtube fa-fw
|
||||
|
||||
# 012: Tumblr
|
||||
tumblr:
|
||||
Weight: 12
|
||||
Template: https://%v.tumblr.com/
|
||||
Title: Tumblr
|
||||
Icon:
|
||||
Class: fab fa-tumblr fa-fw
|
||||
|
||||
# 013: Quora
|
||||
quora:
|
||||
Weight: 13
|
||||
Prefix: https://www.quora.com/profile/
|
||||
Title: Quora
|
||||
Icon:
|
||||
Class: fab fa-quora fa-fw
|
||||
|
||||
# 014: Keybase
|
||||
keybase:
|
||||
Weight: 14
|
||||
Prefix: https://keybase.io/
|
||||
Title: Keybase
|
||||
Icon:
|
||||
Class: fab fa-keybase fa-fw
|
||||
|
||||
# 015: Pinterest
|
||||
pinterest:
|
||||
Weight: 15
|
||||
Prefix: https://www.pinterest.com/
|
||||
Title: Pinterest
|
||||
Icon:
|
||||
Class: fab fa-pinterest fa-fw
|
||||
|
||||
# 016: Reddit
|
||||
reddit:
|
||||
Weight: 16
|
||||
Prefix: https://www.reddit.com/user/
|
||||
Title: Reddit
|
||||
Icon:
|
||||
Class: fab fa-reddit fa-fw
|
||||
|
||||
# 017: CodePen
|
||||
codepen:
|
||||
Weight: 17
|
||||
Prefix: https://codepen.io/
|
||||
Title: CodePen
|
||||
Icon:
|
||||
Class: fab fa-codepen fa-fw
|
||||
|
||||
# 018: freeCodeCamp
|
||||
freecodecamp:
|
||||
Weight: 18
|
||||
Prefix: https://freecodecamp.org/
|
||||
Title: freeCodeCamp
|
||||
Icon:
|
||||
Class: fab fa-free-code-camp fa-fw
|
||||
|
||||
# 019: Bitbucket
|
||||
bitbucket:
|
||||
Weight: 19
|
||||
Prefix: https://bitbucket.org/
|
||||
Title: Bitbucket
|
||||
Icon:
|
||||
Class: fab fa-bitbucket fa-fw
|
||||
|
||||
# 020: Stack Overflow
|
||||
stackoverflow:
|
||||
Weight: 20
|
||||
Prefix: https://stackoverflow.com/users/
|
||||
Title: Stack Overflow
|
||||
Icon:
|
||||
Class: fab fa-stack-overflow fa-fw
|
||||
|
||||
# 021: 微博
|
||||
weibo:
|
||||
Weight: 21
|
||||
Prefix: https://weibo.com/
|
||||
Title: 微博
|
||||
Icon:
|
||||
Class: fab fa-weibo fa-fw
|
||||
|
||||
# 022: OK.RU
|
||||
odnoklassniki:
|
||||
Weight: 22
|
||||
Prefix: https://ok.ru/
|
||||
Title: OK.RU
|
||||
Icon:
|
||||
Class: fab fa-odnoklassniki fa-fw
|
||||
|
||||
# 023: VK
|
||||
vk:
|
||||
Weight: 23
|
||||
Prefix: https://vk.com/
|
||||
Title: VK
|
||||
Icon:
|
||||
Class: fab fa-vk fa-fw
|
||||
|
||||
# 024: Flickr
|
||||
flickr:
|
||||
Weight: 24
|
||||
Prefix: https://www.flickr.com/photos/
|
||||
Title: Flickr
|
||||
Icon:
|
||||
Class: fab fa-flickr fa-fw
|
||||
|
||||
# 025: Xing
|
||||
xing:
|
||||
Weight: 25
|
||||
Prefix: https://www.xing.com/profile/
|
||||
Title: Xing
|
||||
Icon:
|
||||
Class: fab fa-xing fa-fw
|
||||
|
||||
# 026: Snapchat
|
||||
snapchat:
|
||||
Weight: 26
|
||||
Prefix: https://www.snapchat.com/add/
|
||||
Title: Snapchat
|
||||
Icon:
|
||||
Class: fab fa-snapchat fa-fw
|
||||
|
||||
# 027: SoundCloud
|
||||
soundcloud:
|
||||
Weight: 27
|
||||
Prefix: https://soundcloud.com/
|
||||
Title: SoundCloud
|
||||
Icon:
|
||||
Class: fab fa-soundcloud fa-fw
|
||||
|
||||
# 028: Spotify
|
||||
spotify:
|
||||
Weight: 28
|
||||
Prefix: https://open.spotify.com/user/
|
||||
Title: Spotify
|
||||
Icon:
|
||||
Class: fab fa-spotify fa-fw
|
||||
|
||||
# 029: Bandcamp
|
||||
bandcamp:
|
||||
Weight: 29
|
||||
Template: https://%v.bandcamp.com/
|
||||
Title: Bandcamp
|
||||
Icon:
|
||||
Class: fab fa-bandcamp fa-fw
|
||||
|
||||
# 030: PayPal
|
||||
paypal:
|
||||
Weight: 30
|
||||
Prefix: https://paypal.me/
|
||||
Title: PayPal
|
||||
Icon:
|
||||
Class: fab fa-paypal fa-fw
|
||||
|
||||
# 031: 500px
|
||||
fivehundredpx:
|
||||
Weight: 31
|
||||
Prefix: https://500px.com/
|
||||
Title: 500px
|
||||
Icon:
|
||||
Class: fab fa-500px fa-fw
|
||||
|
||||
# 032: Mix
|
||||
mix:
|
||||
Weight: 32
|
||||
Prefix: https://mix.com/
|
||||
Title: Mix
|
||||
Icon:
|
||||
Class: fab fa-mix fa-fw
|
||||
|
||||
# 033: Goodreads
|
||||
goodreads:
|
||||
Weight: 33
|
||||
Prefix: https://www.goodreads.com/user/show/
|
||||
Title: Goodreads
|
||||
Icon:
|
||||
Class: fab fa-goodreads fa-fw
|
||||
|
||||
# 034: Last.fm
|
||||
lastfm:
|
||||
Weight: 34
|
||||
Prefix: https://www.last.fm/user/
|
||||
Title: Last.fm
|
||||
Icon:
|
||||
Class: fab fa-lastfm fa-fw
|
||||
|
||||
# 035: Foursquare
|
||||
foursquare:
|
||||
Weight: 35
|
||||
Prefix: https://foursquare.com/
|
||||
Title: Foursquare
|
||||
Icon:
|
||||
Class: fab fa-foursquare fa-fw
|
||||
|
||||
# 036: Hacker News
|
||||
hackernews:
|
||||
Weight: 36
|
||||
Template: https://news.ycombinator.com/user?id=%v
|
||||
Title: Hacker News
|
||||
Icon:
|
||||
Class: fab fa-hacker-news fa-fw
|
||||
|
||||
# 037: Kickstarter
|
||||
kickstarter:
|
||||
Weight: 37
|
||||
Prefix: https://kickstarter.com/profile/
|
||||
Title: Kickstarter
|
||||
Icon:
|
||||
Class: fab fa-kickstarter fa-fw
|
||||
|
||||
# 038: Patreon
|
||||
patreon:
|
||||
Weight: 38
|
||||
Prefix: https://patreon.com/
|
||||
Title: Patreon
|
||||
Icon:
|
||||
Class: fab fa-patreon fa-fw
|
||||
|
||||
# 039: Steam
|
||||
steam:
|
||||
Weight: 39
|
||||
Prefix: https://steamcommunity.com/id/
|
||||
Title: Steam
|
||||
Icon:
|
||||
Class: fab fa-steam fa-fw
|
||||
|
||||
# 040: Twitch
|
||||
twitch:
|
||||
Weight: 40
|
||||
Prefix: https://www.twitch.tv/
|
||||
Title: Twitch
|
||||
Icon:
|
||||
Class: fab fa-twitch fa-fw
|
||||
|
||||
# 041: Strava
|
||||
strava:
|
||||
Weight: 41
|
||||
Prefix: https://www.strava.com/athletes/
|
||||
Title: Strava
|
||||
Icon:
|
||||
Class: fab fa-strava fa-fw
|
||||
|
||||
# 042: Skype
|
||||
skype:
|
||||
Weight: 42
|
||||
Template: "skype:"
|
||||
Title: Skype
|
||||
Icon:
|
||||
Class: fab fa-skype fa-fw
|
||||
|
||||
# 043: WhatsApp
|
||||
whatsapp:
|
||||
Weight: 43
|
||||
Prefix: https://wa.me/
|
||||
Title: WhatsApp
|
||||
Icon:
|
||||
Class: fab fa-whatsapp fa-fw
|
||||
|
||||
# 044: 知乎
|
||||
zhihu:
|
||||
Weight: 44
|
||||
Prefix: https://www.zhihu.com/people/
|
||||
Title: 知乎
|
||||
Icon:
|
||||
Simpleicons: zhihu
|
||||
|
||||
# 045: 豆瓣
|
||||
douban:
|
||||
Weight: 45
|
||||
Prefix: https://www.douban.com/people/
|
||||
Title: 豆瓣
|
||||
Icon:
|
||||
Simpleicons: douban
|
||||
|
||||
# 046: Angellist
|
||||
angellist:
|
||||
Weight: 46
|
||||
Prefix: https://angel.co/
|
||||
Title: Angellist
|
||||
Icon:
|
||||
Class: fab fa-angellist fa-fw
|
||||
|
||||
# 047: SlideShare
|
||||
slideshare:
|
||||
Weight: 47
|
||||
Prefix: https://slideshare.com/
|
||||
Title: SlideShare
|
||||
Icon:
|
||||
Class: fab fa-slideshare fa-fw
|
||||
|
||||
# 048: JSFiddle
|
||||
jsfiddle:
|
||||
Weight: 48
|
||||
Prefix: https://jsfiddle.com/
|
||||
Title: JSFiddle
|
||||
Icon:
|
||||
Class: fab fa-jsfiddle fa-fw
|
||||
|
||||
# 049: DeviantArt
|
||||
deviantart:
|
||||
Weight: 49
|
||||
Template: https://%v.deviantart.com/
|
||||
Title: DeviantArt
|
||||
Icon:
|
||||
Class: fab fa-deviantart fa-fw
|
||||
|
||||
# 050: Behance
|
||||
behance:
|
||||
Weight: 50
|
||||
Prefix: https://behance.net/
|
||||
Title: Behance
|
||||
Icon:
|
||||
Class: fab fa-behance fa-fw
|
||||
|
||||
# 051: Dribbble
|
||||
dribbble:
|
||||
Weight: 51
|
||||
Prefix: https://dribbble.com/
|
||||
Title: Dribbble
|
||||
Icon:
|
||||
Class: fab fa-dribbble fa-fw
|
||||
|
||||
# 052: WordPress
|
||||
wordpress:
|
||||
Weight: 52
|
||||
Template: https://%v.wordpress.com/
|
||||
Title: WordPress
|
||||
Icon:
|
||||
Class: fab fa-wordpress fa-fw
|
||||
|
||||
# 053: Vine
|
||||
vine:
|
||||
Weight: 53
|
||||
Prefix: https://vine.co/
|
||||
Title: Vine
|
||||
Icon:
|
||||
Class: fab fa-vine fa-fw
|
||||
|
||||
# 054: Google Scholar
|
||||
googlescholar:
|
||||
Weight: 54
|
||||
Template: https://scholar.google.com/citations?%v
|
||||
Title: Google Scholar
|
||||
Icon:
|
||||
Simpleicons: googlescholar
|
||||
|
||||
# 055: ResearchGate
|
||||
researchgate:
|
||||
Weight: 55
|
||||
Prefix: https://www.researchgate.net/profile/
|
||||
Title: ResearchGate
|
||||
Icon:
|
||||
Class: fab fa-researchgate fa-fw
|
||||
|
||||
# 056: Mastodon
|
||||
mastodon:
|
||||
Weight: 56
|
||||
Prefix: https://mastodon.social/
|
||||
Title: Mastodon
|
||||
Icon:
|
||||
Class: fab fa-mastodon fa-fw
|
||||
|
||||
# 057: Thingiverse
|
||||
thingiverse:
|
||||
Weight: 57
|
||||
Prefix: https://www.thingiverse.com/
|
||||
Title: Thingiverse
|
||||
Icon:
|
||||
Simpleicons: thingiverse
|
||||
|
||||
# 058: Dev.To
|
||||
devto:
|
||||
Weight: 58
|
||||
Prefix: https://dev.to/
|
||||
Title: Dev.To
|
||||
Icon:
|
||||
Class: fab fa-dev fa-fw
|
||||
|
||||
# 059: Gitea
|
||||
gitea:
|
||||
Weight: 59
|
||||
Title: Gitea
|
||||
Icon:
|
||||
Simpleicons: gitea
|
||||
|
||||
# 060: XMPP
|
||||
xmpp:
|
||||
Weight: 60
|
||||
Template: xmpp:%v
|
||||
Title: XMPP
|
||||
Icon:
|
||||
Simpleicons: xmpp
|
||||
|
||||
# 061: Matrix
|
||||
matrix:
|
||||
Weight: 61
|
||||
Prefix: https://matrix.to/#/
|
||||
Title: Matrix
|
||||
Icon:
|
||||
Simpleicons: matrix
|
||||
|
||||
# 062: bilibili
|
||||
bilibili:
|
||||
Weight: 62
|
||||
Prefix: https://space.bilibili.com/
|
||||
Title: bilibili
|
||||
Icon:
|
||||
Simpleicons: bilibili
|
||||
|
||||
# 063: Email
|
||||
email:
|
||||
Weight: 63
|
||||
Template: mailto:%v
|
||||
Title: Email
|
||||
Icon:
|
||||
Class: far fa-envelope fa-fw
|
||||
|
||||
# 064: RSS
|
||||
rss:
|
||||
Weight: 64
|
||||
Url: /index.xml
|
||||
Title: RSS
|
||||
Newtab: true
|
||||
Icon:
|
||||
Class: fas fa-rss fa-fw
|
||||
1058
themes/keepit/assets/js/theme.js
Normal file
24
themes/keepit/assets/lib/VERSION
Normal file
@@ -0,0 +1,24 @@
|
||||
normalize.css@8.0.1 https://github.com/necolas/normalize.css
|
||||
fontawesome-free@6.1.1 https://fontawesome.com/
|
||||
simple-icons@6.20.0 https://github.com/simple-icons/simple-icons
|
||||
animate.css@4.1.1 https://github.com/daneden/animate.css
|
||||
autocomplete@0.38.1 https://github.com/algolia/autocomplete
|
||||
lunr.js@2.3.9 https://lunrjs.com/
|
||||
algoliasearch@4.13.0 https://github.com/algolia/algoliasearch-client-javascript
|
||||
lazysizes@5.3.1 https://github.com/aFarkas/lazysizes
|
||||
object-fit-images@3.2.4 https://github.com/fregante/object-fit-images
|
||||
twemoji@14.0.2 https://github.com/twitter/twemoji
|
||||
emoji-data@14.0.0 https://github.com/iamcal/emoji-data
|
||||
lightgallery@2.4.0 https://github.com/sachinchoolur/lightgallery
|
||||
clipboard.js@2.0.11 https://github.com/zenorocha/clipboard.js
|
||||
sharer.js@0.4.0 https://github.com/ellisonleao/sharer.js
|
||||
typeit@8.5.4 https://github.com/alexmacarthur/typeit
|
||||
katex@0.15.3 https://katex.org/
|
||||
mermaid@9.1.0 https://github.com/mermaid-js/mermaid
|
||||
echarts@5.3.2 https://echarts.apache.org/
|
||||
mapbox-gl@2.8.2 https://github.com/mapbox/mapbox-gl-js
|
||||
aplayer@1.10.1 https://github.com/MoePlayer/APlayer
|
||||
meting@2.0.1 https://github.com/metowolf/MetingJS
|
||||
gitalk@1.7.2 https://github.com/gitalk/gitalk
|
||||
valine@1.4.18 https://valine.js.org/
|
||||
cookieconsent@3.1.1 https://github.com/osano/cookieconsent
|
||||
8
themes/keepit/assets/lib/algoliasearch/algoliasearch-lite.umd.min.js
vendored
Normal file
7
themes/keepit/assets/lib/animate/animate.min.css
vendored
Executable file
3
themes/keepit/assets/lib/aplayer/APlayer.min.css
vendored
Normal file
2
themes/keepit/assets/lib/aplayer/APlayer.min.js
vendored
Normal file
112
themes/keepit/assets/lib/aplayer/dark.scss
Normal file
@@ -0,0 +1,112 @@
|
||||
[theme=dark] .aplayer {
|
||||
background: #212121;
|
||||
|
||||
&.aplayer-withlist {
|
||||
.aplayer-info {
|
||||
border-bottom-color: #5c5c5c;
|
||||
}
|
||||
}
|
||||
|
||||
&.aplayer-fixed {
|
||||
.aplayer-list {
|
||||
border-color: #5c5c5c;
|
||||
}
|
||||
}
|
||||
|
||||
.aplayer-body {
|
||||
background-color: #212121;
|
||||
}
|
||||
|
||||
.aplayer-info {
|
||||
border-top-color: #212121;
|
||||
}
|
||||
|
||||
.aplayer-info {
|
||||
.aplayer-music {
|
||||
.aplayer-title {
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
.aplayer-author {
|
||||
color: #fff;
|
||||
}
|
||||
}
|
||||
|
||||
.aplayer-controller {
|
||||
.aplayer-time {
|
||||
color: #eee;
|
||||
|
||||
.aplayer-icon {
|
||||
path {
|
||||
fill: #eee;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.aplayer-list {
|
||||
background-color: #212121;
|
||||
|
||||
&::-webkit-scrollbar-thumb {
|
||||
background-color: #999;
|
||||
}
|
||||
|
||||
&::-webkit-scrollbar-thumb:hover {
|
||||
background-color: #bbb;
|
||||
}
|
||||
|
||||
li {
|
||||
color: #fff;
|
||||
border-top-color: #666;
|
||||
|
||||
&:hover {
|
||||
background: #4e4e4e;
|
||||
}
|
||||
|
||||
&.aplayer-list-light {
|
||||
background: #6c6c6c;
|
||||
}
|
||||
|
||||
.aplayer-list-index {
|
||||
color: #ddd;
|
||||
}
|
||||
|
||||
.aplayer-list-author {
|
||||
color: #ddd;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.aplayer-lrc {
|
||||
text-shadow: -1px -1px 0 #666;
|
||||
|
||||
&:before {
|
||||
background: -moz-linear-gradient(top, rgba(33,33,33,1) 0%, rgba(33,33,33,0) 100%);
|
||||
background: -webkit-linear-gradient(top, rgba(33,33,33,1) 0%,rgba(33,33,33,0) 100%);
|
||||
background: linear-gradient(to bottom, rgba(33,33,33,1) 0%,rgba(33,33,33,0) 100%);
|
||||
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#212121', endColorstr='#00212121',GradientType=0 );
|
||||
}
|
||||
|
||||
&:after {
|
||||
background: -moz-linear-gradient(top, rgba(33,33,33,0) 0%, rgba(33,33,33,0.8) 100%);
|
||||
background: -webkit-linear-gradient(top, rgba(33,33,33,0) 0%,rgba(33,33,33,0.8) 100%);
|
||||
background: linear-gradient(to bottom, rgba(33,33,33,0) 0%,rgba(33,33,33,0.8) 100%);
|
||||
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#00212121', endColorstr='#cc212121',GradientType=0 );
|
||||
}
|
||||
|
||||
p {
|
||||
color: #fff;
|
||||
}
|
||||
}
|
||||
|
||||
.aplayer-miniswitcher {
|
||||
background: #484848;
|
||||
|
||||
.aplayer-icon {
|
||||
path {
|
||||
fill: #eee;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
7
themes/keepit/assets/lib/autocomplete/autocomplete.min.js
vendored
Normal file
7
themes/keepit/assets/lib/clipboard/clipboard.min.js
vendored
Normal file
6
themes/keepit/assets/lib/cookieconsent/cookieconsent.min.css
vendored
Normal file
@@ -0,0 +1,6 @@
|
||||
.cc-window{opacity:1;-webkit-transition:opacity 1s ease;transition:opacity 1s ease}.cc-window.cc-invisible{opacity:0}.cc-animate.cc-revoke{-webkit-transition:transform 1s ease;-webkit-transition:-webkit-transform 1s ease;transition:-webkit-transform 1s ease;transition:transform 1s ease;transition:transform 1s ease,-webkit-transform 1s ease}.cc-animate.cc-revoke.cc-top{-webkit-transform:translateY(-2em);transform:translateY(-2em)}.cc-animate.cc-revoke.cc-bottom{-webkit-transform:translateY(2em);transform:translateY(2em)}.cc-animate.cc-revoke.cc-active.cc-top{-webkit-transform:translateY(0);transform:translateY(0)}.cc-animate.cc-revoke.cc-active.cc-bottom{-webkit-transform:translateY(0);transform:translateY(0)}.cc-revoke:hover{-webkit-transform:translateY(0);transform:translateY(0)}.cc-grower{max-height:0;overflow:hidden;-webkit-transition:max-height 1s;transition:max-height 1s}
|
||||
.cc-revoke,.cc-window{position:fixed;overflow:hidden;-webkit-box-sizing:border-box;box-sizing:border-box;font-family:Helvetica,Calibri,Arial,sans-serif;font-size:16px;line-height:1.5em;display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:nowrap;flex-wrap:nowrap;z-index:9999}.cc-window.cc-static{position:static}.cc-window.cc-floating{padding:2em;max-width:24em;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.cc-window.cc-banner{padding:1em 1.8em;width:100%;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}.cc-revoke{padding:.5em}.cc-revoke:hover{text-decoration:underline}.cc-header{font-size:18px;font-weight:700}.cc-btn,.cc-close,.cc-link,.cc-revoke{cursor:pointer}.cc-link{opacity:.8;display:inline-block;padding:.2em;text-decoration:underline}.cc-link:hover{opacity:1}.cc-link:active,.cc-link:visited{color:initial}.cc-btn{display:block;padding:.4em .8em;font-size:.9em;font-weight:700;border-width:2px;border-style:solid;text-align:center;white-space:nowrap}.cc-highlight .cc-btn:first-child{background-color:transparent;border-color:transparent}.cc-highlight .cc-btn:first-child:focus,.cc-highlight .cc-btn:first-child:hover{background-color:transparent;text-decoration:underline}.cc-close{display:block;position:absolute;top:.5em;right:.5em;font-size:1.6em;opacity:.9;line-height:.75}.cc-close:focus,.cc-close:hover{opacity:1}
|
||||
.cc-revoke.cc-top{top:0;left:3em;border-bottom-left-radius:.5em;border-bottom-right-radius:.5em}.cc-revoke.cc-bottom{bottom:0;left:3em;border-top-left-radius:.5em;border-top-right-radius:.5em}.cc-revoke.cc-left{left:3em;right:unset}.cc-revoke.cc-right{right:3em;left:unset}.cc-top{top:1em}.cc-left{left:1em}.cc-right{right:1em}.cc-bottom{bottom:1em}.cc-floating>.cc-link{margin-bottom:1em}.cc-floating .cc-message{display:block;margin-bottom:1em}.cc-window.cc-floating .cc-compliance{-webkit-box-flex:1;-ms-flex:1 0 auto;flex:1 0 auto}.cc-window.cc-banner{-webkit-box-align:center;-ms-flex-align:center;align-items:center}.cc-banner.cc-top{left:0;right:0;top:0}.cc-banner.cc-bottom{left:0;right:0;bottom:0}.cc-banner .cc-message{display:block;-webkit-box-flex:1;-ms-flex:1 1 auto;flex:1 1 auto;max-width:100%;margin-right:1em}.cc-compliance{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-ms-flex-line-pack:justify;align-content:space-between}.cc-floating .cc-compliance>.cc-btn{-webkit-box-flex:1;-ms-flex:1;flex:1}.cc-btn+.cc-btn{margin-left:.5em}
|
||||
@media print{.cc-revoke,.cc-window{display:none}}@media screen and (max-width:900px){.cc-btn{white-space:normal}}@media screen and (max-width:414px) and (orientation:portrait),screen and (max-width:736px) and (orientation:landscape){.cc-window.cc-top{top:0}.cc-window.cc-bottom{bottom:0}.cc-window.cc-banner,.cc-window.cc-floating,.cc-window.cc-left,.cc-window.cc-right{left:0;right:0}.cc-window.cc-banner{-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.cc-window.cc-banner .cc-compliance{-webkit-box-flex:1;-ms-flex:1 1 auto;flex:1 1 auto}.cc-window.cc-floating{max-width:none}.cc-window .cc-message{margin-bottom:1em}.cc-window.cc-banner{-webkit-box-align:unset;-ms-flex-align:unset;align-items:unset}.cc-window.cc-banner .cc-message{margin-right:0}}
|
||||
.cc-floating.cc-theme-classic{padding:1.2em;border-radius:5px}.cc-floating.cc-type-info.cc-theme-classic .cc-compliance{text-align:center;display:inline;-webkit-box-flex:0;-ms-flex:none;flex:none}.cc-theme-classic .cc-btn{border-radius:5px}.cc-theme-classic .cc-btn:last-child{min-width:140px}.cc-floating.cc-type-info.cc-theme-classic .cc-btn{display:inline-block}
|
||||
.cc-theme-edgeless.cc-window{padding:0}.cc-floating.cc-theme-edgeless .cc-message{margin:2em;margin-bottom:1.5em}.cc-banner.cc-theme-edgeless .cc-btn{margin:0;padding:.8em 1.8em;height:100%}.cc-banner.cc-theme-edgeless .cc-message{margin-left:1em}.cc-floating.cc-theme-edgeless .cc-btn+.cc-btn{margin-left:0}
|
||||
1
themes/keepit/assets/lib/cookieconsent/cookieconsent.min.js
vendored
Normal file
45
themes/keepit/assets/lib/echarts/echarts.min.js
vendored
Normal file
273
themes/keepit/assets/lib/echarts/theme/dark.yml
Normal file
@@ -0,0 +1,273 @@
|
||||
# dark theme based on chalk theme
|
||||
color:
|
||||
- '#fc97af'
|
||||
- '#87f7cf'
|
||||
- '#f7f494'
|
||||
- '#72ccff'
|
||||
- '#f7c5a0'
|
||||
- '#d4a4eb'
|
||||
- '#d2f5a6'
|
||||
- '#76f2f2'
|
||||
backgroundColor: rgba(41,52,65,1)
|
||||
textStyle: {}
|
||||
title:
|
||||
textStyle:
|
||||
color: '#ffffff'
|
||||
subtextStyle:
|
||||
color: '#dddddd'
|
||||
line:
|
||||
itemStyle:
|
||||
borderWidth: 1
|
||||
lineStyle:
|
||||
width: 2
|
||||
symbolSize: 6
|
||||
symbol: circle
|
||||
smooth: true
|
||||
radar:
|
||||
itemStyle:
|
||||
borderWidth: 1
|
||||
lineStyle:
|
||||
width: 2
|
||||
symbolSize: 3
|
||||
symbol: circle
|
||||
smooth: true
|
||||
bar:
|
||||
itemStyle:
|
||||
barBorderWidth: 0
|
||||
barBorderColor: '#ccc'
|
||||
pie:
|
||||
itemStyle:
|
||||
borderWidth: 0
|
||||
borderColor: '#ccc'
|
||||
scatter:
|
||||
itemStyle:
|
||||
borderWidth: 0
|
||||
borderColor: '#ccc'
|
||||
boxplot:
|
||||
itemStyle:
|
||||
borderWidth: 0
|
||||
borderColor: '#ccc'
|
||||
parallel:
|
||||
itemStyle:
|
||||
borderWidth: 0
|
||||
borderColor: '#ccc'
|
||||
sankey:
|
||||
itemStyle:
|
||||
borderWidth: 0
|
||||
borderColor: '#ccc'
|
||||
funnel:
|
||||
itemStyle:
|
||||
borderWidth: 0
|
||||
borderColor: '#ccc'
|
||||
gauge:
|
||||
itemStyle:
|
||||
borderWidth: 0
|
||||
borderColor: '#ccc'
|
||||
candlestick:
|
||||
itemStyle:
|
||||
color: '#fc97af'
|
||||
color0: transparent
|
||||
borderColor: '#fc97af'
|
||||
borderColor0: '#87f7cf'
|
||||
borderWidth: 1
|
||||
graph:
|
||||
itemStyle:
|
||||
borderWidth: 0
|
||||
borderColor: '#ccc'
|
||||
lineStyle:
|
||||
width: 1
|
||||
color: '#ffffff'
|
||||
symbolSize: 3
|
||||
symbol: emptyCircle
|
||||
smooth: true
|
||||
color:
|
||||
- '#fc97af'
|
||||
- '#87f7cf'
|
||||
- '#f7f494'
|
||||
- '#72ccff'
|
||||
- '#f7c5a0'
|
||||
- '#d4a4eb'
|
||||
- '#d2f5a6'
|
||||
- '#76f2f2'
|
||||
label:
|
||||
color: '#293441'
|
||||
map:
|
||||
itemStyle:
|
||||
areaColor: '#f3f3f3'
|
||||
borderColor: '#999999'
|
||||
borderWidth: 0.5
|
||||
label:
|
||||
color: '#893448'
|
||||
emphasis:
|
||||
itemStyle:
|
||||
areaColor: rgba(255,178,72,1)
|
||||
borderColor: '#eb8146'
|
||||
borderWidth: 1
|
||||
label:
|
||||
color: rgb(137,52,72)
|
||||
geo:
|
||||
itemStyle:
|
||||
areaColor: '#f3f3f3'
|
||||
borderColor: '#999999'
|
||||
borderWidth: 0.5
|
||||
label:
|
||||
color: '#893448'
|
||||
emphasis:
|
||||
itemStyle:
|
||||
areaColor: rgba(255,178,72,1)
|
||||
borderColor: '#eb8146'
|
||||
borderWidth: 1
|
||||
label:
|
||||
color: rgb(137,52,72)
|
||||
categoryAxis:
|
||||
axisLine:
|
||||
show: true
|
||||
lineStyle:
|
||||
color: '#666666'
|
||||
axisTick:
|
||||
show: true
|
||||
lineStyle:
|
||||
color: '#333'
|
||||
axisLabel:
|
||||
show: true
|
||||
color: '#aaaaaa'
|
||||
splitLine:
|
||||
show: false
|
||||
lineStyle:
|
||||
color:
|
||||
- '#e6e6e6'
|
||||
splitArea:
|
||||
show: false
|
||||
areaStyle:
|
||||
color:
|
||||
- rgba(250,250,250,0.05)
|
||||
- rgba(200,200,200,0.02)
|
||||
valueAxis:
|
||||
axisLine:
|
||||
show: true
|
||||
lineStyle:
|
||||
color: '#666666'
|
||||
axisTick:
|
||||
show: true
|
||||
lineStyle:
|
||||
color: '#333'
|
||||
axisLabel:
|
||||
show: true
|
||||
color: '#aaaaaa'
|
||||
splitLine:
|
||||
show: true
|
||||
lineStyle:
|
||||
color:
|
||||
- '#e6e6e6'
|
||||
splitArea:
|
||||
show: false
|
||||
areaStyle:
|
||||
color:
|
||||
- rgba(250,250,250,0.05)
|
||||
- rgba(200,200,200,0.02)
|
||||
logAxis:
|
||||
axisLine:
|
||||
show: true
|
||||
lineStyle:
|
||||
color: '#666666'
|
||||
axisTick:
|
||||
show: true
|
||||
lineStyle:
|
||||
color: '#333'
|
||||
axisLabel:
|
||||
show: true
|
||||
color: '#aaaaaa'
|
||||
splitLine:
|
||||
show: true
|
||||
lineStyle:
|
||||
color:
|
||||
- '#e6e6e6'
|
||||
splitArea:
|
||||
show: true
|
||||
areaStyle:
|
||||
color:
|
||||
- rgba(250,250,250,0.05)
|
||||
- rgba(200,200,200,0.02)
|
||||
timeAxis:
|
||||
axisLine:
|
||||
show: true
|
||||
lineStyle:
|
||||
color: '#666666'
|
||||
axisTick:
|
||||
show: true
|
||||
lineStyle:
|
||||
color: '#333'
|
||||
axisLabel:
|
||||
show: true
|
||||
color: '#aaaaaa'
|
||||
splitLine:
|
||||
show: true
|
||||
lineStyle:
|
||||
color:
|
||||
- '#e6e6e6'
|
||||
splitArea:
|
||||
show: false
|
||||
areaStyle:
|
||||
color:
|
||||
- rgba(250,250,250,0.05)
|
||||
- rgba(200,200,200,0.02)
|
||||
toolbox:
|
||||
iconStyle:
|
||||
borderColor: '#999999'
|
||||
emphasis:
|
||||
iconStyle:
|
||||
borderColor: '#666666'
|
||||
legend:
|
||||
textStyle:
|
||||
color: '#999999'
|
||||
tooltip:
|
||||
axisPointer:
|
||||
lineStyle:
|
||||
color: '#cccccc'
|
||||
width: 1
|
||||
crossStyle:
|
||||
color: '#cccccc'
|
||||
width: 1
|
||||
timeline:
|
||||
lineStyle:
|
||||
color: '#87f7cf'
|
||||
width: 1
|
||||
itemStyle:
|
||||
color: '#87f7cf'
|
||||
borderWidth: 1
|
||||
controlStyle:
|
||||
color: '#87f7cf'
|
||||
borderColor: '#87f7cf'
|
||||
borderWidth: 0.5
|
||||
checkpointStyle:
|
||||
color: '#fc97af'
|
||||
borderColor: '#fc97af'
|
||||
label:
|
||||
color: '#87f7cf'
|
||||
emphasis:
|
||||
itemStyle:
|
||||
color: '#f7f494'
|
||||
controlStyle:
|
||||
color: '#87f7cf'
|
||||
borderColor: '#87f7cf'
|
||||
borderWidth: 0.5
|
||||
label:
|
||||
color: '#87f7cf'
|
||||
visualMap:
|
||||
color:
|
||||
- '#fc97af'
|
||||
- '#87f7cf'
|
||||
dataZoom:
|
||||
backgroundColor: rgba(255,255,255,0)
|
||||
dataBackgroundColor: rgba(114,204,255,1)
|
||||
fillerColor: rgba(114,204,255,0.2)
|
||||
handleColor: '#72ccff'
|
||||
handleSize: 100%
|
||||
textStyle:
|
||||
color: '#333333'
|
||||
markPoint:
|
||||
label:
|
||||
color: '#293441'
|
||||
emphasis:
|
||||
label:
|
||||
color: '#293441'
|
||||
297
themes/keepit/assets/lib/echarts/theme/light.yml
Normal file
@@ -0,0 +1,297 @@
|
||||
# light theme based on macarons theme
|
||||
color:
|
||||
- '#2ec7c9'
|
||||
- '#b6a2de'
|
||||
- '#5ab1ef'
|
||||
- '#ffb980'
|
||||
- '#d87a80'
|
||||
- '#8d98b3'
|
||||
- '#e5cf0d'
|
||||
- '#97b552'
|
||||
- '#95706d'
|
||||
- '#dc69aa'
|
||||
- '#07a2a4'
|
||||
- '#9a7fd1'
|
||||
- '#588dd5'
|
||||
- '#f5994e'
|
||||
- '#c05050'
|
||||
- '#59678c'
|
||||
- '#c9ab00'
|
||||
- '#7eb00a'
|
||||
- '#6f5553'
|
||||
- '#c14089'
|
||||
backgroundColor: rgba(0,0,0,0)
|
||||
textStyle: {}
|
||||
title:
|
||||
textStyle:
|
||||
color: '#008acd'
|
||||
subtextStyle:
|
||||
color: '#aaaaaa'
|
||||
line:
|
||||
itemStyle:
|
||||
borderWidth: 1
|
||||
lineStyle:
|
||||
width: 2
|
||||
symbolSize: 5
|
||||
symbol: emptyCircle
|
||||
smooth: true
|
||||
radar:
|
||||
itemStyle:
|
||||
borderWidth: 1
|
||||
lineStyle:
|
||||
width: 2
|
||||
symbolSize: 3
|
||||
symbol: emptyCircle
|
||||
smooth: true
|
||||
bar:
|
||||
itemStyle:
|
||||
barBorderWidth: 0
|
||||
barBorderColor: '#ccc'
|
||||
pie:
|
||||
itemStyle:
|
||||
borderWidth: 0
|
||||
borderColor: '#ccc'
|
||||
scatter:
|
||||
itemStyle:
|
||||
borderWidth: 0
|
||||
borderColor: '#ccc'
|
||||
boxplot:
|
||||
itemStyle:
|
||||
borderWidth: 0
|
||||
borderColor: '#ccc'
|
||||
parallel:
|
||||
itemStyle:
|
||||
borderWidth: 0
|
||||
borderColor: '#ccc'
|
||||
sankey:
|
||||
itemStyle:
|
||||
borderWidth: 0
|
||||
borderColor: '#ccc'
|
||||
funnel:
|
||||
itemStyle:
|
||||
borderWidth: 0
|
||||
borderColor: '#ccc'
|
||||
gauge:
|
||||
itemStyle:
|
||||
borderWidth: 0
|
||||
borderColor: '#ccc'
|
||||
candlestick:
|
||||
itemStyle:
|
||||
color: '#d87a80'
|
||||
color0: '#2ec7c9'
|
||||
borderColor: '#d87a80'
|
||||
borderColor0: '#2ec7c9'
|
||||
borderWidth: 1
|
||||
graph:
|
||||
itemStyle:
|
||||
borderWidth: 0
|
||||
borderColor: '#ccc'
|
||||
lineStyle:
|
||||
width: 1
|
||||
color: '#aaaaaa'
|
||||
symbolSize: 3
|
||||
symbol: emptyCircle
|
||||
smooth: true
|
||||
color:
|
||||
- '#2ec7c9'
|
||||
- '#b6a2de'
|
||||
- '#5ab1ef'
|
||||
- '#ffb980'
|
||||
- '#d87a80'
|
||||
- '#8d98b3'
|
||||
- '#e5cf0d'
|
||||
- '#97b552'
|
||||
- '#95706d'
|
||||
- '#dc69aa'
|
||||
- '#07a2a4'
|
||||
- '#9a7fd1'
|
||||
- '#588dd5'
|
||||
- '#f5994e'
|
||||
- '#c05050'
|
||||
- '#59678c'
|
||||
- '#c9ab00'
|
||||
- '#7eb00a'
|
||||
- '#6f5553'
|
||||
- '#c14089'
|
||||
label:
|
||||
color: '#eeeeee'
|
||||
map:
|
||||
itemStyle:
|
||||
areaColor: '#dddddd'
|
||||
borderColor: '#eeeeee'
|
||||
borderWidth: 0.5
|
||||
label:
|
||||
color: '#d87a80'
|
||||
emphasis:
|
||||
itemStyle:
|
||||
areaColor: rgba(254,153,78,1)
|
||||
borderColor: '#444'
|
||||
borderWidth: 1
|
||||
label:
|
||||
color: rgb(100,0,0)
|
||||
geo:
|
||||
itemStyle:
|
||||
areaColor: '#dddddd'
|
||||
borderColor: '#eeeeee'
|
||||
borderWidth: 0.5
|
||||
label:
|
||||
color: '#d87a80'
|
||||
emphasis:
|
||||
itemStyle:
|
||||
areaColor: rgba(254,153,78,1)
|
||||
borderColor: '#444'
|
||||
borderWidth: 1
|
||||
label:
|
||||
color: rgb(100,0,0)
|
||||
categoryAxis:
|
||||
axisLine:
|
||||
show: true
|
||||
lineStyle:
|
||||
color: '#008acd'
|
||||
axisTick:
|
||||
show: true
|
||||
lineStyle:
|
||||
color: '#333'
|
||||
axisLabel:
|
||||
show: true
|
||||
color: '#333'
|
||||
splitLine:
|
||||
show: false
|
||||
lineStyle:
|
||||
color:
|
||||
- '#eee'
|
||||
splitArea:
|
||||
show: false
|
||||
areaStyle:
|
||||
color:
|
||||
- rgba(250,250,250,0.3)
|
||||
- rgba(200,200,200,0.3)
|
||||
valueAxis:
|
||||
axisLine:
|
||||
show: true
|
||||
lineStyle:
|
||||
color: '#008acd'
|
||||
axisTick:
|
||||
show: true
|
||||
lineStyle:
|
||||
color: '#333'
|
||||
axisLabel:
|
||||
show: true
|
||||
color: '#333'
|
||||
splitLine:
|
||||
show: true
|
||||
lineStyle:
|
||||
color:
|
||||
- '#eee'
|
||||
splitArea:
|
||||
show: true
|
||||
areaStyle:
|
||||
color:
|
||||
- rgba(250,250,250,0.3)
|
||||
- rgba(200,200,200,0.3)
|
||||
logAxis:
|
||||
axisLine:
|
||||
show: true
|
||||
lineStyle:
|
||||
color: '#008acd'
|
||||
axisTick:
|
||||
show: true
|
||||
lineStyle:
|
||||
color: '#333'
|
||||
axisLabel:
|
||||
show: true
|
||||
color: '#333'
|
||||
splitLine:
|
||||
show: true
|
||||
lineStyle:
|
||||
color:
|
||||
- '#eee'
|
||||
splitArea:
|
||||
show: true
|
||||
areaStyle:
|
||||
color:
|
||||
- rgba(250,250,250,0.3)
|
||||
- rgba(200,200,200,0.3)
|
||||
timeAxis:
|
||||
axisLine:
|
||||
show: true
|
||||
lineStyle:
|
||||
color: '#008acd'
|
||||
axisTick:
|
||||
show: true
|
||||
lineStyle:
|
||||
color: '#333'
|
||||
axisLabel:
|
||||
show: true
|
||||
color: '#333'
|
||||
splitLine:
|
||||
show: true
|
||||
lineStyle:
|
||||
color:
|
||||
- '#eee'
|
||||
splitArea:
|
||||
show: false
|
||||
areaStyle:
|
||||
color:
|
||||
- rgba(250,250,250,0.3)
|
||||
- rgba(200,200,200,0.3)
|
||||
toolbox:
|
||||
iconStyle:
|
||||
borderColor: '#2ec7c9'
|
||||
emphasis:
|
||||
iconStyle:
|
||||
borderColor: '#18a4a6'
|
||||
legend:
|
||||
textStyle:
|
||||
color: '#333333'
|
||||
tooltip:
|
||||
axisPointer:
|
||||
lineStyle:
|
||||
color: '#008acd'
|
||||
width: 1
|
||||
crossStyle:
|
||||
color: '#008acd'
|
||||
width: 1
|
||||
timeline:
|
||||
lineStyle:
|
||||
color: '#008acd'
|
||||
width: 1
|
||||
itemStyle:
|
||||
color: '#008acd'
|
||||
borderWidth: 1
|
||||
controlStyle:
|
||||
color: '#008acd'
|
||||
borderColor: '#008acd'
|
||||
borderWidth: 0.5
|
||||
checkpointStyle:
|
||||
color: '#2ec7c9'
|
||||
borderColor: '#2ec7c9'
|
||||
label:
|
||||
color: '#008acd'
|
||||
emphasis:
|
||||
itemStyle:
|
||||
color: '#a9334c'
|
||||
controlStyle:
|
||||
color: '#008acd'
|
||||
borderColor: '#008acd'
|
||||
borderWidth: 0.5
|
||||
label:
|
||||
color: '#008acd'
|
||||
visualMap:
|
||||
color:
|
||||
- '#5ab1ef'
|
||||
- '#e0ffff'
|
||||
dataZoom:
|
||||
backgroundColor: rgba(47,69,84,0)
|
||||
dataBackgroundColor: '#efefff'
|
||||
fillerColor: rgba(182,162,222,0.2)
|
||||
handleColor: '#008acd'
|
||||
handleSize: 100%
|
||||
textStyle:
|
||||
color: '#333333'
|
||||
markPoint:
|
||||
label:
|
||||
color: '#eeeeee'
|
||||
emphasis:
|
||||
label:
|
||||
color: '#eeeeee'
|
||||