chore: prepare for the 3.0.0 release

pull/701/head
ppoffice 2020-03-12 12:13:52 -04:00
parent 692975dd3f
commit 750e057473
25 changed files with 242 additions and 7002 deletions

1
.gitignore vendored
View File

@ -6,3 +6,4 @@ node_modules/
public/ public/
.deploy*/ .deploy*/
.vscode/ .vscode/
yarn.lock

View File

@ -1,39 +1,91 @@
# Version of the Icarus theme that is currently used # Version of the configuration file
version: 2.6.0 version: 3.0.0
# Path or URL to the website's icon # Icarus theme variant, can be "default" or "cyberpunk"
favicon: /images/favicon.svg variant: default
# Path or URL to RSS atom.xml # Path or URL to the website's logo
rss: logo: /img/logo.svg
# Path or URL to the website's logo to be shown on the left of the navigation bar or footer # Page metadata configurations
logo: /images/logo.svg head:
# Open Graph metadata # URL or path to the website's icon
# https://hexo.io/docs/helpers.html#open-graph favicon: /img/favicon.svg
open_graph: # Canonical URL of the current page
# Facebook App ID canonical_url:
fb_app_id: # Open Graph metadata
# Facebook Admin ID # https://hexo.io/docs/helpers.html#open-graph
fb_admins: open_graph:
# Twitter ID # Page title (og:title) (optional)
twitter_id: # You should leave this blank for most of the time
# Twitter site title:
twitter_site: # Page type (og:type) (optional)
# Google+ profile link # You should leave this blank for most of the time
google_plus: type: blog
# Navigation bar link settings # Page URL (og:url) (optional)
# You should leave this blank for most of the time
url:
# Page cover (og:image) (optional) Default to the Open Graph image or thumbnail of the page
# You should leave this blank for most of the time
image:
# Site name (og:site_name) (optional)
# You should leave this blank for most of the time
site_name:
# Page author (article:author) (optional)
# You should leave this blank for most of the time
author:
# Page description (og:description) (optional)
# You should leave this blank for most of the time
description:
# Twitter card type (twitter:card)
twitter_card:
# Twitter ID (twitter:creator)
twitter_id:
# Twitter ID (twitter:creator)
twitter_site:
# Google+ profile link (deprecated)
google_plus:
# Facebook admin ID
fb_admins:
# Facebook App ID
fb_app_id:
# Structured data of the page
# https://developers.google.com/search/docs/guides/intro-structured-data
structured_data:
# Page title (optional)
# You should leave this blank for most of the time
title:
# Page description (optional)
# You should leave this blank for most of the time
description:
# Page URL (optional)
# You should leave this blank for most of the time
url:
# Page author (article:author) (optional)
# You should leave this blank for most of the time
author:
# Page images (optional) Default to the Open Graph image or thumbnail of the page
# You should leave this blank for most of the time
image:
# Additional HTML meta tags in an array
meta:
# Meta tag specified in <attribute>=<value> style
# E.g., name=theme-color;content=#123456 => <meta name="theme-color" content="#123456">
- ''
# URL or path to the website's RSS atom.xml
rss:
# Page top navigation bar configurations
navbar: navbar:
# Navigation bar menu links # Naviagtion menu items
menu: menu:
Home: / Home: /
Archives: /archives Archives: /archives
Categories: /categories Categories: /categories
Tags: /tags Tags: /tags
About: /about About: /about
# Navigation bar links to be shown on the right # Links to be shown on the right of the navigation bar
links: links:
Download on GitHub: Download on GitHub:
icon: fab fa-github icon: fab fa-github
url: 'http://github.com/ppoffice/hexo-theme-icarus' url: 'https://github.com/ppoffice/hexo-theme-icarus'
# Footer section link settings # Page footer configurations
footer: footer:
# Links to be shown on the right of the footer section # Links to be shown on the right of the footer section
links: links:
@ -45,196 +97,221 @@ footer:
url: 'https://creativecommons.org/licenses/by/4.0/' url: 'https://creativecommons.org/licenses/by/4.0/'
Download on GitHub: Download on GitHub:
icon: fab fa-github icon: fab fa-github
url: 'http://github.com/ppoffice/hexo-theme-icarus' url: 'https://github.com/ppoffice/hexo-theme-icarus'
# Article display settings # Article related configurations
article: article:
# Code highlight settings # Code highlight settings
highlight: highlight:
# Code highlight themes # Code highlight themes
# https://github.com/highlightjs/highlight.js/tree/master/src/styles # https://github.com/highlightjs/highlight.js/tree/master/src/styles
theme: atom-one-light theme: atom-one-light
# Show code copying button # Show copy code button
clipboard: true clipboard: true
# Default folding status of the code blocks. Can be "", "folded", "unfolded" # Default folding status of the code blocks. Can be "", "folded", "unfolded"
fold: unfolded fold: unfolded
# Whether to show article thumbnail images # Whether to show thumbnail image for every article
thumbnail: true thumbnail: true
# Whether to show estimate article reading time # Whether to show estimated article reading time
readtime: true readtime: true
# Search plugin settings # Search plugin configurations
# http://ppoffice.github.io/hexo-theme-icarus/categories/Configuration/Search-Plugins # https://ppoffice.github.io/hexo-theme-icarus/categories/Plugins/Search/
search: search:
# Name of the search plugin
type: insight type: insight
# Comment plugin settings # Comment plugin configurations
# http://ppoffice.github.io/hexo-theme-icarus/categories/Configuration/Comment-Plugins # https://ppoffice.github.io/hexo-theme-icarus/categories/Plugins/Comment/
comment: comment:
# Name of the comment plugin
type: disqus type: disqus
# Disqus shortname
shortname: hexo-theme-icarus shortname: hexo-theme-icarus
# Donation entries # Donate plugin configurations
# http://ppoffice.github.io/hexo-theme-icarus/categories/Donation/ # https://ppoffice.github.io/hexo-theme-icarus/categories/Plugins/Donation/
# donate: # donates:
# # Alipay donate button configurations
# - # -
# # Donation entry name
# type: alipay # type: alipay
# # Qrcode image URL # # Alipay qrcode image URL
# qrcode: /gallery/donate/alipay.png # qrcode: ''
# # "Buy me a coffee" donate button configurations
# - # -
# # Donation entry name # type: buymeacoffee
# type: wechat # # URL to the "Buy me a coffee" page
# # Qrcode image URL # url: ''
# qrcode: /gallery/donate/wechat.jpg # # Patreon donate button configurations
# - # -
# # Donation entry name
# type: paypal
# # Paypal business ID or email address
# business: paypal@paypal.com
# # Currency code
# currency_code: USD
# -
# # Donation entry name
# type: patreon # type: patreon
# # URL to the Patreon page # # URL to the Patreon page
# url: https://www.patreon.com/ # url: ''
# Share plugin settings # # Paypal donate button configurations
# http://ppoffice.github.io/hexo-theme-icarus/categories/Configuration/Share-Plugins # -
# type: paypal
# # Paypal business ID or email address
# business: ''
# # Currency code
# currency_code: USD
# # Wechat donate button configurations
# -
# type: wechat
# # Wechat qrcode image URL
# qrcode: ''
# Share plugin configurations
# https://ppoffice.github.io/hexo-theme-icarus/categories/Plugins/Share/
share: share:
# Share plugin name
type: sharethis type: sharethis
# URL to the ShareThis share plugin script
install_url: //platform-api.sharethis.com/js/sharethis.js#property=5ab6f60ace89f00013641890&product=inline-share-buttons install_url: //platform-api.sharethis.com/js/sharethis.js#property=5ab6f60ace89f00013641890&product=inline-share-buttons
# Sidebar settings. # Sidebar configurations.
# Please be noted that a sidebar is only visible when it has at least one widget # Please be noted that a sidebar is only visible when it has at least one widget
sidebar: sidebar:
# left sidebar settings # Left sidebar configurations
left: left:
# Whether the left sidebar is sticky when page scrolls # Whether the sidebar sticks to the top when page scrolls
# http://ppoffice.github.io/hexo-theme-icarus/Configuration/Theme/make-a-sidebar-sticky-when-page-scrolls/
sticky: false sticky: false
# right sidebar settings # Right sidebar configurations
right: right:
# Whether the right sidebar is sticky when page scrolls # Whether the sidebar sticks to the top when page scrolls
# http://ppoffice.github.io/hexo-theme-icarus/Configuration/Theme/make-a-sidebar-sticky-when-page-scrolls/
sticky: false sticky: false
# Sidebar widget settings # Sidebar widget configurations
# http://ppoffice.github.io/hexo-theme-icarus/categories/Widgets/ # http://ppoffice.github.io/hexo-theme-icarus/categories/Widgets/
widgets: widgets:
# Profile widget configurations
- -
# Widget name # Where should the widget be placed, left sidebar or right sidebar
type: profile
# Where should the widget be placed, left or right
position: left position: left
# Author name to be shown in the profile widget type: profile
# Author name
author: PPOffice author: PPOffice
# Title of the author to be shown in the profile widget # Author title
author_title: Web Developer author_title: Web Developer
# Author's current location to be shown in the profile widget # Author's current location
location: Earth, Solar System location: Earth, Solar System
# Path or URL to the avatar to be shown in the profile widget # URL or path to the avatar image
avatar: avatar:
# Email address for the Gravatar to be shown in the profile widget # Whether show the rounded avatar image
gravatar:
# Whether to show avatar image rounded or square
avatar_rounded: false avatar_rounded: false
# Path or URL for the follow button # Email address for the Gravatar
follow_link: 'http://github.com/ppoffice' gravatar:
# URL or path for the follow button
follow_link: 'https://github.com/ppoffice'
# Links to be shown on the bottom of the profile widget # Links to be shown on the bottom of the profile widget
social_links: social_links:
Github: Github:
icon: fab fa-github icon: fab fa-github
url: 'http://github.com/ppoffice' url: 'https://github.com/ppoffice'
Facebook: Facebook:
icon: fab fa-facebook icon: fab fa-facebook
url: 'http://facebook.com' url: 'https://facebook.com'
Twitter: Twitter:
icon: fab fa-twitter icon: fab fa-twitter
url: 'http://twitter.com' url: 'https://twitter.com'
Dribbble: Dribbble:
icon: fab fa-dribbble icon: fab fa-dribbble
url: 'http://dribbble.com' url: 'https://dribbble.com'
RSS: RSS:
icon: fas fa-rss icon: fas fa-rss
url: / url: /
# Table of contents widget configurations
- -
# Widget name # Where should the widget be placed, left sidebar or right sidebar
position: left
type: toc type: toc
# Where should the widget be placed, left or right # Recommendation links widget configurations
position: left
- -
# Widget name # Where should the widget be placed, left sidebar or right sidebar
type: links
# Where should the widget be placed, left or right
position: left position: left
# Links to be shown in the links widget type: links
# Names and URLs of the sites
links: links:
Hexo: 'https://hexo.io' Hexo: 'https://hexo.io'
Bulma: 'https://bulma.io' Bulma: 'https://bulma.io'
# Categories widget configurations
- -
# Widget name # Where should the widget be placed, left sidebar or right sidebar
type: category
# Where should the widget be placed, left or right
position: left position: left
type: categories
# Recent posts widget configurations
- -
# Widget name # Where should the widget be placed, left sidebar or right sidebar
type: tagcloud position: right
# Where should the widget be placed, left or right
position: left
-
# Widget name
type: recent_posts type: recent_posts
# Where should the widget be placed, left or right # Archives widget configurations
position: right
- -
# Widget name # Where should the widget be placed, left sidebar or right sidebar
type: archive
# Where should the widget be placed, left or right
position: right position: right
type: archives
# Tags widget configurations
- -
# Widget name # Where should the widget be placed, left sidebar or right sidebar
type: tag
# Where should the widget be placed, left or right
position: right position: right
# Other plugin settings type: tags
# Google FeedBurner email subscription widget configurations
# -
# # Where should the widget be placed, left sidebar or right sidebar
# position: left
# type: subscribe_email
# # Hint text under the email input
# description:
# # Feedburner ID
# feedburner_id: ''
# Google AdSense unit configurations
# -
# # Where should the widget be placed, left sidebar or right sidebar
# position: left
# type: adsense
# # AdSense client ID
# client_id: ''
# # AdSense AD unit ID
# slot_id: ''
# Plugin configurations
plugins: plugins:
# Enable page animations # Enable page startup animations
animejs: true animejs: true
# Enable the lightGallery and Justified Gallery plugins # Show the "back to top" button
# http://ppoffice.github.io/hexo-theme-icarus/Plugins/General/gallery-plugin/ back_to_top: true
gallery: true
# Enable the Outdated Browser plugin
# http://outdatedbrowser.com/
outdated-browser: true
# Enable the MathJax plugin
# http://ppoffice.github.io/hexo-theme-icarus/Plugins/General/mathjax-plugin/
mathjax: true
# Show the back to top button on mobile devices
back-to-top: true
# Google Analytics plugin settings
# http://ppoffice.github.io/hexo-theme-icarus/Plugins/General/site-analytics-plugin/#Google-Analytics
google-analytics:
# Google Analytics tracking id
tracking_id: UA-72437521-5
# Baidu Analytics plugin settings # Baidu Analytics plugin settings
# http://ppoffice.github.io/hexo-theme-icarus/Plugins/General/site-analytics-plugin/#Baidu-Analytics # https://tongji.baidu.com
baidu-analytics: baidu_analytics:
# Baidu Analytics tracking id # Baidu Analytics tracking ID
tracking_id: tracking_id:
# Hotjar user feedback plugin
# http://ppoffice.github.io/hexo-theme-icarus/Plugins/General/site-analytics-plugin/#Hotjar
hotjar:
# Hotjar site id
site_id: 1067642
# Show a loading progress bar at top of the page
progressbar: true
# BuSuanZi site/page view counter # BuSuanZi site/page view counter
# https://busuanzi.ibruce.info # https://busuanzi.ibruce.info
busuanzi: false busuanzi: false
# CNZZ statistics
# https://www.umeng.com/web
cnzz:
# CNZZ tracker id
id:
# CNZZ website id
web_id:
# Enable the lightGallery and Justified Gallery plugins
# https://ppoffice.github.io/hexo-theme-icarus/Plugins/General/gallery-plugin/
gallery: true
# Google Analytics plugin settings
# https://analytics.google.com
google_analytics:
# Google Analytics tracking ID
tracking_id: UA-72437521-5
# Hotjar user feedback plugin
# https://www.hotjar.com/
hotjar:
# Hotjar site id
site_id:
# Enable the KaTeX math typesetting supprot
# https://katex.org/
katex: false
# Enable the MathJax math typesetting support
# https://www.mathjax.org/
mathjax: true
# Enable the Outdated Browser plugin
# http://outdatedbrowser.com/
outdated_browser: true
# Show a progress bar at top of the page on page loading
progressbar: true
# CDN provider settings # CDN provider settings
# http://ppoffice.github.io/hexo-theme-icarus/Configuration/Theme/speed-up-your-site-with-custom-cdn/ # https://ppoffice.github.io/hexo-theme-icarus/Configuration/Theme/speed-up-your-site-with-custom-cdn/
providers: providers:
# Name or URL of the JavaScript and/or stylesheet CDN provider # Name or URL template of the JavaScript and/or stylesheet CDN provider
cdn: jsdelivr cdn: jsdelivr
# Name or URL of the webfont CDN provider # Name or URL template of the webfont CDN provider
fontcdn: google fontcdn: google
# Name or URL of the webfont Icon CDN provider # Name or URL of the fontawesome icon font CDN provider
iconcdn: fontawesome iconcdn: fontawesome

View File

@ -93,4 +93,7 @@ marked:
githubEmojis: githubEmojis:
className: not-gallery-item className: not-gallery-item
all_minifier: true algolia:
applicationID: RYILPF5LG6
apiKey: c358c55d21fca7cf3e935baced47bc28
indexName: icarus

6772
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@ -3,22 +3,25 @@
"version": "0.0.0", "version": "0.0.0",
"private": true, "private": true,
"hexo": { "hexo": {
"version": "4.0.0" "version": "4.2.0"
}, },
"dependencies": { "dependencies": {
"bulma-stylus": "0.8.0",
"clean-css": "^4.2.1", "clean-css": "^4.2.1",
"hexo": "^4.0.0", "hexo": "^4.0.0",
"hexo-all-minifier": "^0.5.3", "hexo-algolia": "^1.3.1",
"hexo-component-inferno": "^0.1.3",
"hexo-deployer-git": "^2.0.0", "hexo-deployer-git": "^2.0.0",
"hexo-filter-github-emojis": "^2.1.0", "hexo-filter-github-emojis": "^2.1.0",
"hexo-generator-archive": "^1.0.0", "hexo-generator-archive": "^1.0.0",
"hexo-generator-category": "^1.0.0", "hexo-generator-category": "^1.0.0",
"hexo-generator-index": "^1.0.0", "hexo-generator-index": "^1.0.0",
"hexo-generator-tag": "^1.0.0", "hexo-generator-tag": "^1.0.0",
"hexo-renderer-ejs": "^1.0.0", "hexo-renderer-inferno": "^0.1.3",
"hexo-renderer-marked": "^2.0.0", "hexo-renderer-marked": "^2.0.0",
"hexo-renderer-stylus": "^1.1.0", "hexo-renderer-stylus": "^1.1.0",
"hexo-server": "^1.0.0", "hexo-server": "^1.0.0",
"uglify-es": "^3.3.9" "inferno": "^7.3.3",
"inferno-create-element": "^7.3.3"
} }
} }

View File

@ -1,57 +0,0 @@
const fs = require('fs');
const path = require('path');
const cheerio = require('cheerio');
const UglifyJS = require('uglify-es');
const CleanCSS = require('clean-css');
const root = path.join(__dirname, '../themes/icarus/source/');
function replaceWithBundled(html) {
const urlFor = hexo.extend.helper.get('url_for').bind(hexo);
const $ = cheerio.load(html, { decodeEntities: false });
$('script').each(function () {
const url = $(this).attr('src');
if (url && url.startsWith(urlFor('/js')) && url.endsWith('.js') && !url.includes('animation')) {
$(this).remove();
}
});
$('body').append(`<script src="${urlFor('/js/bundle.js')}" defer></script>`);
$('link[rel="stylesheet"]').each(function () {
const url = $(this).attr('href');
if (url && url.startsWith(urlFor('/css')) && url.endsWith('.css') && !url.endsWith('style.css')) {
$(this).remove();
}
});
$('head').append(`<link rel="stylesheet" href="${urlFor('/css/bundle.css')}">`);
return $.html();
}
hexo.extend.generator.register('bundle.js', function (locals) {
const folder = path.join(root, 'js');
const concated = fs.readdirSync(path.join(root, 'js'))
.filter(filename => filename.endsWith('.js') && !filename.includes('animation'))
.map(filename => fs.readFileSync(path.join(folder, filename)))
.join('\n');
const result = UglifyJS.minify(concated);
return {
path: '/js/bundle.js',
data: result.code
};
});
hexo.extend.generator.register('bundle.css', function (locals) {
const folder = path.join(root, 'css');
const concated = fs.readdirSync(path.join(root, 'css'))
.filter(filename => filename.endsWith('.css'))
.map(filename => fs.readFileSync(path.join(folder, filename)))
.join('\n');
const result = new CleanCSS().minify(concated);
return {
path: '/css/bundle.css',
data: result.styles
};
});
hexo.extend.filter.register('after_render:html', function (content, data) {
return replaceWithBundled(content);
});

View File

@ -1,15 +0,0 @@
const cheerio = require('cheerio');
const UglifyJS = require('uglify-es');
hexo.extend.filter.register('after_render:html', function (content, data) {
const $ = cheerio.load(content, { decodeEntities: false });
$('script').each(function () {
const url = $(this).attr('src');
if (!url) {
$(this).html(UglifyJS.minify($(this).html()).code);
}
});
return $.html();
});

View File

@ -5,7 +5,7 @@ categories:
- Comment - Comment
comment: comment:
type: changyan type: changyan
appid: cyrDUlCiF app_id: cyrDUlCiF
conf: prod_43aadda874910d8f86160e62e6a1ade7 conf: prod_43aadda874910d8f86160e62e6a1ade7
--- ---

View File

@ -1,6 +1,6 @@
title: Making Money off Your Blog with Donation Buttons title: Making Money off Your Blog with Donation Buttons
date: 2016-01-30 00:00:01 date: 2016-01-30 00:00:01
donate: donates:
- -
type: alipay type: alipay
qrcode: /gallery/donate/alipay.png qrcode: /gallery/donate/alipay.png

View File

@ -4,7 +4,7 @@ categories:
- Plugins - Plugins
- Search - Search
search: search:
type: google-cse type: google_cse
cx: 006888261376761189075:qxqdcvqzio0 cx: 006888261376761189075:qxqdcvqzio0
--- ---

View File

@ -42,13 +42,13 @@ widgets:
type: recent_posts type: recent_posts
position: left position: left
- -
type: archive type: archives
position: left position: left
- -
type: category type: categories
position: left position: left
- -
type: tag type: tags
position: left position: left
--- ---
Sometimes you may want your sidebar's position to stay fixed when other parts of your page scrolls. This can be done via the `sticky` option of the sidebar in the theme's `_config.yml`. You can set any of the sidebar or even both of them to `sticky`. Sometimes you may want your sidebar's position to stay fixed when other parts of your page scrolls. This can be done via the `sticky` option of the sidebar in the theme's `_config.yml`. You can set any of the sidebar or even both of them to `sticky`.

View File

@ -18,10 +18,10 @@ comment:
placeholder: 快来评论吧 placeholder: 快来评论吧
plugins: plugins:
gallery: true gallery: true
outdated-browser: true outdated_browser: true
mathjax: true mathjax: true
animejs: true animejs: true
back-to-top: true back_to_top: true
progressbar: true progressbar: true
--- ---
作为静态网站生成器Hexo的一款主题Icarus以简洁、现代和精美为设计理念。在灵活且强大的配置系统的助力下用户可以自由实现单栏与多栏的灵活页面布局。同时Icarus提供了丰富的插件与挂件供用户选择让网站的个性化配置变得触手可及。此外得力于全新设计的API开发者可以更便捷地对Icarus进行深层定制。 作为静态网站生成器Hexo的一款主题Icarus以简洁、现代和精美为设计理念。在灵活且强大的配置系统的助力下用户可以自由实现单栏与多栏的灵活页面布局。同时Icarus提供了丰富的插件与挂件供用户选择让网站的个性化配置变得触手可及。此外得力于全新设计的API开发者可以更便捷地对Icarus进行深层定制。

View File

@ -1,8 +1,8 @@
title: title:
toc: true toc: true
--- ---
<p align="center" class="has-mb-6"> <p align="center" class="mb-2">
<img class="not-gallery-item" style="height:48px" src="/hexo-theme-icarus/images/logo.svg"> <img class="not-gallery-item" style="height:48px" src="/hexo-theme-icarus/img/logo.svg">
<br> A simple, delicate, and modern theme for the static site generator Hexo. <br> A simple, delicate, and modern theme for the static site generator Hexo.
</p> </p>
<p class="is-size-6 has-text-centered"> <p class="is-size-6 has-text-centered">

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.7 KiB

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.6 KiB

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 879 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 MiB

@ -1 +1 @@
Subproject commit ca1e73a4cfaed85a7e25c2cfd02cb71b668515cf Subproject commit e4cdb01dd8d92ebbb1cfc45124ad34c554fdc3d6