mirror of https://github.com/Nofated095/blog
20210609
This commit is contained in:
commit
d05983dc95
|
@ -0,0 +1,2 @@
|
|||
node_modules
|
||||
.DS_Store
|
|
@ -0,0 +1,348 @@
|
|||
# Version of the configuration file
|
||||
version: 4.0.0
|
||||
# Icarus theme variant, can be "default" or "cyberpunk"
|
||||
variant: default
|
||||
# Path or URL to the website's logo
|
||||
logo:
|
||||
text: Nofated's Blog
|
||||
# Page metadata configurations
|
||||
head:
|
||||
# URL or path to the website's icon
|
||||
favicon: https://cravatar.eu/helmavatar/Nofated
|
||||
# Web application manifests configuration
|
||||
# https://developer.mozilla.org/en-US/docs/Web/Manifest
|
||||
manifest:
|
||||
# Name of the web application (default to the site title)
|
||||
name:
|
||||
# The displayed name of the web application
|
||||
# when there is not enough space to display full name
|
||||
short_name:
|
||||
# The start URL of the web application
|
||||
start_url:
|
||||
# The default theme color for the application
|
||||
theme_color:
|
||||
# A placeholder background color for the application page to display
|
||||
# before its stylesheet is loaded
|
||||
background_color:
|
||||
# The preferred display mode for the website
|
||||
display: standalone
|
||||
# Image files that can serve as application icons for different contexts
|
||||
icons:
|
||||
-
|
||||
# The path to the image file
|
||||
src: ''
|
||||
# A string containing space-separated image dimensions
|
||||
sizes: ''
|
||||
# A hint as to the media type of the image
|
||||
type:
|
||||
# Open Graph metadata
|
||||
# https://hexo.io/docs/helpers.html#open-graph
|
||||
open_graph:
|
||||
# Page title (og:title) (optional)
|
||||
# You should leave this blank for most of the time
|
||||
title:
|
||||
# Page type (og:type) (optional)
|
||||
# You should leave this blank for most of the time
|
||||
type: blog
|
||||
# Page URL (og:url) (optional)
|
||||
# You should leave this blank for most of the time
|
||||
url:
|
||||
# Page cover (og:image) (optional)
|
||||
# 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 Site (twitter:site)
|
||||
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)
|
||||
# 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:
|
||||
# Navigation menu items
|
||||
menu:
|
||||
首页: /
|
||||
归档: /archives
|
||||
分类: /categories
|
||||
标签: /tags
|
||||
媒体: /media
|
||||
友链: /friend
|
||||
关于: /about
|
||||
导航: http://nofated.gitee.io/edgelight
|
||||
# Page footer configurations
|
||||
footer:
|
||||
# Links to be shown on the right of the footer section
|
||||
links:
|
||||
Creative Commons:
|
||||
icon: fab fa-creative-commons
|
||||
url: 'https://creativecommons.org/'
|
||||
Attribution 4.0 International:
|
||||
icon: fab fa-creative-commons-by
|
||||
url: 'https://creativecommons.org/licenses/by/4.0/'
|
||||
Download on GitHub:
|
||||
icon: fab fa-github
|
||||
url: 'https://github.com/ppoffice/hexo-theme-icarus'
|
||||
# Article related configurations
|
||||
article:
|
||||
# Code highlight settings
|
||||
highlight:
|
||||
# Code highlight themes
|
||||
# https://github.com/highlightjs/highlight.js/tree/master/src/styles
|
||||
theme: atom-one-light
|
||||
# Show copy code button
|
||||
clipboard: true
|
||||
# Default folding status of the code blocks. Can be "", "folded", "unfolded"
|
||||
fold: unfolded
|
||||
# Whether to show estimated article reading time
|
||||
readtime: true
|
||||
# Article licensing block
|
||||
licenses:
|
||||
Creative Commons:
|
||||
icon: fab fa-creative-commons
|
||||
url: 'https://creativecommons.org/'
|
||||
Attribution:
|
||||
icon: fab fa-creative-commons-by
|
||||
url: 'https://creativecommons.org/licenses/by/4.0/'
|
||||
Noncommercial:
|
||||
icon: fab fa-creative-commons-nc
|
||||
url: 'https://creativecommons.org/licenses/by-nc/4.0/'
|
||||
# Search plugin configurations
|
||||
# https://ppoffice.github.io/hexo-theme-icarus/categories/Plugins/Search/
|
||||
search:
|
||||
type: insight
|
||||
# Comment plugin configurations
|
||||
# https://ppoffice.github.io/hexo-theme-icarus/categories/Plugins/Comment/
|
||||
comment:
|
||||
type: valine
|
||||
app_id: L7bg4EcXDh2SSIwYGu8fU9p5-MdYXbMMI
|
||||
app_key: Iwbdj09b8tI7DXkKYz7sMbfc
|
||||
placeholder: "" # 可选填
|
||||
avatar: mm # 可选填
|
||||
avatar_force: false # 可选填
|
||||
meta: ["nick", "mail", "link"] # 可选填
|
||||
page_size: 10 # 可选填
|
||||
lang: zh-CN # 可选填
|
||||
visitor: false # 可选填
|
||||
highlight: true # 可选填
|
||||
record_ip: false # 可选填
|
||||
server_urls: # 可选填
|
||||
emoji_cdn: # 可选填
|
||||
emoji_maps: # 可选填
|
||||
enable_qq: false # 可选填
|
||||
required_fields: [] # 可选填
|
||||
# Donate plugin configurations
|
||||
# https://ppoffice.github.io/hexo-theme-icarus/categories/Plugins/Donation/
|
||||
donates:
|
||||
-
|
||||
type: alipay
|
||||
# Alipay qrcode image URL
|
||||
qrcode: 'https://pic.rmb.bdstatic.com/bjh/e773e4c7da6f039ecbe0b3536ca16119.jpeg'
|
||||
-
|
||||
type: wechat
|
||||
# Wechat qrcode image URL
|
||||
qrcode: 'https://pic.rmb.bdstatic.com/bjh/caae30e75d185555d0518690e5ea101a.png'
|
||||
# Share plugin configurations
|
||||
# https://ppoffice.github.io/hexo-theme-icarus/categories/Plugins/Share/
|
||||
# Sidebar configurations.
|
||||
# Please be noted that a sidebar is only visible when it has at least one widget
|
||||
sidebar:
|
||||
# Left sidebar configurations
|
||||
left:
|
||||
# Whether the sidebar sticks to the top when page scrolls
|
||||
sticky: false
|
||||
# Right sidebar configurations
|
||||
right:
|
||||
# Whether the sidebar sticks to the top when page scrolls
|
||||
sticky: true
|
||||
# Sidebar widget configurations
|
||||
# http://ppoffice.github.io/hexo-theme-icarus/categories/Widgets/
|
||||
widgets:
|
||||
# Profile widget configurations
|
||||
-
|
||||
# Where should the widget be placed, left sidebar or right sidebar
|
||||
position: left
|
||||
type: profile
|
||||
# Author name
|
||||
author: Nofated
|
||||
# Author title
|
||||
author_title: Student
|
||||
# Author's current location
|
||||
location: Beijing, China
|
||||
# URL or path to the avatar image
|
||||
avatar: https://pic.rmb.bdstatic.com/bjh/020a46e8318d66b55d73afe31805d653.jpeg
|
||||
# Whether show the rounded avatar image
|
||||
avatar_rounded: false
|
||||
# Email address for the Gravatar
|
||||
gravatar:
|
||||
# URL or path for the follow button
|
||||
follow_link: 'https://space.bilibili.com/351951550'
|
||||
# Links to be shown on the bottom of the profile widget
|
||||
social_links:
|
||||
Github:
|
||||
icon: fab fa-github
|
||||
url: 'https://github.com/Nofated095'
|
||||
QQ:
|
||||
icon: fab fa-qq
|
||||
url: 'tencent://message/?uin=2032025551&Menu=yes'
|
||||
Email:
|
||||
icon: fas fa-envelope
|
||||
url: 'mailto:nofated095@outlook.com'
|
||||
RSS:
|
||||
icon: fas fa-rss
|
||||
url: /atom.xml
|
||||
-
|
||||
position: left
|
||||
type: categories
|
||||
-
|
||||
# Where should the widget be placed, left sidebar or right sidebar
|
||||
position: left
|
||||
type: tags
|
||||
# Table of contents widget configurations
|
||||
-
|
||||
# Where should the widget be placed, left sidebar or right sidebar
|
||||
position: right
|
||||
type: toc
|
||||
# Whether to show the index of each heading
|
||||
index: true
|
||||
# Whether to collapse sub-headings when they are out-of-view
|
||||
collapsed: true
|
||||
# Maximum level of headings to show (1-6)
|
||||
depth: 3
|
||||
-
|
||||
# Where should the widget be placed, left sidebar or right sidebar
|
||||
position: right
|
||||
type: recent_posts
|
||||
# Recommendation links widget configurations
|
||||
-
|
||||
position: right
|
||||
type: links
|
||||
links:
|
||||
BMCLAPI: 'http://bmclapidoc.bangbang93.com/'
|
||||
Jenkins of HMCL: 'https://ci.huangyuhui.net/'
|
||||
Microsoft Docs: 'https://docs.microsoft.com/zh-cn/'
|
||||
# Recent posts widget configurations
|
||||
# Tags widget configurations
|
||||
|
||||
# Plugin configurations
|
||||
# https://ppoffice.github.io/hexo-theme-icarus/categories/Plugins/
|
||||
plugins:
|
||||
# Enable page startup animations
|
||||
animejs: true
|
||||
# Show the "back to top" button
|
||||
back_to_top: true
|
||||
# Baidu Analytics plugin settings
|
||||
# https://tongji.baidu.com
|
||||
baidu_analytics:
|
||||
# Baidu Analytics tracking ID
|
||||
tracking_id:
|
||||
# Bing Webmaster Tools plugin settings
|
||||
# https://www.bing.com/toolbox/webmaster/
|
||||
bing_webmaster:
|
||||
# Bing Webmaster Tools tracking ID in the <meta> tag
|
||||
tracking_id:
|
||||
# BuSuanZi site/page view counter
|
||||
# https://busuanzi.ibruce.info
|
||||
busuanzi: true
|
||||
# CNZZ statistics
|
||||
# https://www.umeng.com/web
|
||||
cnzz:
|
||||
# CNZZ tracker id
|
||||
id:
|
||||
# CNZZ website id
|
||||
web_id:
|
||||
# Alerting users about the use of cookies
|
||||
# https://www.osano.com/cookieconsent/
|
||||
cookie_consent:
|
||||
# The compliance type. Can be "info", "opt-in", or "opt-out"
|
||||
type: info
|
||||
# Theme of the popup. Can be "block", "edgeless", or "classic"
|
||||
theme: edgeless
|
||||
# Whether the popup should stay static regardless of the page scrolls
|
||||
static: false
|
||||
# Where on the screen the consent popup should display
|
||||
position: bottom-left
|
||||
# URL to your site's cookie policy
|
||||
policyLink: 'https://www.cookiesandyou.com/'
|
||||
# Enable the lightGallery and Justified Gallery plugins
|
||||
gallery: true
|
||||
# Google Analytics plugin settings
|
||||
# https://analytics.google.com
|
||||
google_analytics:
|
||||
# Google Analytics tracking ID
|
||||
tracking_id:
|
||||
# Hotjar user feedback plugin
|
||||
# https://www.hotjar.com/
|
||||
hotjar:
|
||||
# Hotjar site id
|
||||
site_id:
|
||||
# Enable the KaTeX math typesetting support
|
||||
# https://katex.org/
|
||||
katex: false
|
||||
# Enable the MathJax math typesetting support
|
||||
# https://www.mathjax.org/
|
||||
mathjax: false
|
||||
# Enable the Outdated Browser plugin
|
||||
# http://outdatedbrowser.com/
|
||||
outdated_browser: false
|
||||
# Show a progress bar at top of the page on page loading
|
||||
progressbar: true
|
||||
# Statcounter statistics
|
||||
# https://statcounter.com/
|
||||
statcounter:
|
||||
# Statcounter project id
|
||||
project:
|
||||
# Statcounter project security code
|
||||
security:
|
||||
# Twitter conversion tracking plugin settings
|
||||
# https://business.twitter.com/en/help/campaign-measurement-and-analytics/conversion-tracking-for-websites.html
|
||||
twitter_conversion_tracking:
|
||||
# Twitter Pixel ID
|
||||
pixel_id:
|
||||
# CDN provider settings
|
||||
# https://ppoffice.github.io/hexo-theme-icarus/Configuration/Theme/speed-up-your-site-with-custom-cdn/
|
||||
providers:
|
||||
# Name or URL template of the JavaScript and/or stylesheet CDN provider
|
||||
cdn: jsdelivr
|
||||
# Name or URL template of the webfont CDN provider
|
||||
fontcdn: loli
|
||||
# Name or URL of the fontawesome icon font CDN provider
|
||||
iconcdn: https://cdn.bootcdn.net/ajax/libs/font-awesome/5.15.2/css/all.css
|
|
@ -0,0 +1,112 @@
|
|||
# Hexo Configuration
|
||||
## Docs: https://hexo.io/docs/configuration.html
|
||||
## Source: https://github.com/hexojs/hexo/
|
||||
|
||||
# Site
|
||||
title: Nofated's Blog
|
||||
subtitle: ''
|
||||
description: ''
|
||||
keywords:
|
||||
author: Nofated
|
||||
language: zh-CN
|
||||
timezone: ''
|
||||
|
||||
# URL
|
||||
## If your site is put in a subdirectory, set url as 'http://example.com/child' and root as '/child/'
|
||||
url: http://nofated.gitee.io
|
||||
root: /
|
||||
permalink: :year/:month/:day/:title/
|
||||
permalink_defaults:
|
||||
pretty_urls:
|
||||
trailing_index: true # Set to false to remove trailing 'index.html' from permalinks
|
||||
trailing_html: true # Set to false to remove trailing '.html' from permalinks
|
||||
|
||||
# Directory
|
||||
source_dir: source
|
||||
public_dir: public
|
||||
tag_dir: tags
|
||||
archive_dir: archives
|
||||
category_dir: categories
|
||||
code_dir: downloads/code
|
||||
i18n_dir: :lang
|
||||
skip_render:
|
||||
|
||||
# Writing
|
||||
new_post_name: :title.md # File name of new posts
|
||||
default_layout: post
|
||||
titlecase: false # Transform title into titlecase
|
||||
external_link:
|
||||
enable: true # Open external links in new tab
|
||||
field: site # Apply to the whole site
|
||||
exclude: ''
|
||||
filename_case: 0
|
||||
render_drafts: false
|
||||
post_asset_folder: false
|
||||
relative_link: false
|
||||
future: true
|
||||
highlight:
|
||||
enable: true
|
||||
line_number: true
|
||||
auto_detect: false
|
||||
tab_replace: ''
|
||||
wrap: true
|
||||
hljs: false
|
||||
prismjs:
|
||||
enable: false
|
||||
preprocess: true
|
||||
line_number: true
|
||||
tab_replace: ''
|
||||
|
||||
# Home page setting
|
||||
# path: Root path for your blogs index page. (default = '')
|
||||
# per_page: Posts displayed per page. (0 = disable pagination)
|
||||
# order_by: Posts order. (Order by date descending by default)
|
||||
index_generator:
|
||||
path: ''
|
||||
per_page: 10
|
||||
order_by: -date
|
||||
|
||||
# Category & Tag
|
||||
default_category: uncategorized
|
||||
category_map:
|
||||
tag_map:
|
||||
|
||||
# Metadata elements
|
||||
## https://developer.mozilla.org/en-US/docs/Web/HTML/Element/meta
|
||||
meta_generator: true
|
||||
|
||||
# Date / Time format
|
||||
## Hexo uses Moment.js to parse and display date
|
||||
## You can customize the date format as defined in
|
||||
## http://momentjs.com/docs/#/displaying/format/
|
||||
date_format: YYYY-MM-DD
|
||||
time_format: HH:mm:ss
|
||||
## updated_option supports 'mtime', 'date', 'empty'
|
||||
updated_option: 'mtime'
|
||||
|
||||
# Pagination
|
||||
## Set per_page to 0 to disable pagination
|
||||
per_page: 10
|
||||
pagination_dir: page
|
||||
|
||||
# Include / Exclude file(s)
|
||||
## include:/exclude: options only apply to the 'source/' folder
|
||||
include:
|
||||
exclude:
|
||||
ignore:
|
||||
|
||||
# Extensions
|
||||
## Plugins: https://hexo.io/plugins/
|
||||
## Themes: https://hexo.io/themes/
|
||||
theme: icarus
|
||||
|
||||
# Deployment
|
||||
## Docs: https://hexo.io/docs/one-command-deployment
|
||||
deploy:
|
||||
type: git
|
||||
repo:
|
||||
gitee: https://gitee.com/nofated/Nofated.git,master
|
||||
github: https://github.com/Nofated095/nofated095.github.io.git,master
|
||||
|
||||
aplayer:
|
||||
meting: true
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,33 @@
|
|||
{
|
||||
"name": "hexo-site",
|
||||
"version": "0.0.0",
|
||||
"private": true,
|
||||
"scripts": {
|
||||
"build": "hexo generate",
|
||||
"clean": "hexo clean",
|
||||
"deploy": "hexo deploy",
|
||||
"server": "hexo server"
|
||||
},
|
||||
"hexo": {
|
||||
"version": "5.3.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"bulma-stylus": "^0.8.0",
|
||||
"hexo": "^5.0.0",
|
||||
"hexo-component-inferno": "^0.11.3",
|
||||
"hexo-deployer-git": "^3.0.0",
|
||||
"hexo-generator-archive": "^1.0.0",
|
||||
"hexo-generator-category": "^1.0.0",
|
||||
"hexo-generator-index": "^2.0.0",
|
||||
"hexo-generator-tag": "^1.0.0",
|
||||
"hexo-renderer-ejs": "^1.0.0",
|
||||
"hexo-renderer-inferno": "^0.1.3",
|
||||
"hexo-renderer-marked": "^3.0.0",
|
||||
"hexo-renderer-stylus": "^2.0.0",
|
||||
"hexo-server": "^2.0.0",
|
||||
"hexo-tag-aplayer": "^3.0.4",
|
||||
"hexo-theme-landscape": "^0.0.3",
|
||||
"inferno": "^7.4.7",
|
||||
"inferno-create-element": "^7.4.7"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,4 @@
|
|||
---
|
||||
title: {{ title }}
|
||||
tags:
|
||||
---
|
|
@ -0,0 +1,4 @@
|
|||
---
|
||||
title: {{ title }}
|
||||
date: {{ date }}
|
||||
---
|
|
@ -0,0 +1,9 @@
|
|||
---
|
||||
title: {{ title }}
|
||||
date: {{ date }}
|
||||
cover:
|
||||
tags:
|
||||
categories:
|
||||
---
|
||||
|
||||
<!--more-->
|
|
@ -0,0 +1,34 @@
|
|||
---
|
||||
title: 总结 2021
|
||||
time: 2022-01-01 00:00:00
|
||||
categories:
|
||||
- 日常生活
|
||||
- 记录
|
||||
tags:
|
||||
- 总结
|
||||
---
|
||||
2022 要来力
|
||||
<!--more-->
|
||||
第一次写总结性的文章,写得不好请见谅。
|
||||
|
||||
## January
|
||||
|
||||
跨年没看B站跨年祭,有点可惜,但说实在是我不感兴趣。元旦假期复习了复习,4号5号考了期末模拟,前女友和我一个考场所以我信心满满,结果分数惨不忍睹,也不敢问班主任排名,被爸爸妈妈狠批了一顿,特别难过。大概是因为考试把脑子考糊涂了,我就提出了分手。6号和前女友分手,初恋草草地结束了。第二天又因为作业没带被数学老师狠批一顿到快7点,心里很难受,想着求复合,但是最终失败。有复习了一段时间,就迎来了区里的区统考。虽然说分数和排名还是不太理想,但总规还凑和,年级排到了54,班级第5。我把成绩贴出来。
|
||||
|
||||
|科目|满分|成绩|
|
||||
|:-:|:-:|:-:|
|
||||
|语文|100|81|
|
||||
|数学|100|91|
|
||||
|英语|60+40|60+39.65=99.65(约合100)|
|
||||
|物理|70|64|
|
||||
|历史|70|70|
|
||||
|地理|70|62|
|
||||
|道德与法治|70|61|
|
||||
|生物|70|68|
|
||||
|总分|598.65|
|
||||
|
||||
操蛋的是,物理我白丢3分,因为多选题用了专门涂卡的自动铅笔。结果我给填淡了,机器不认,哭力。第二天讲评卷子更离谱的是我们的英语老师念成绩时候偏偏把我和我前女友一起念了,全班掌声激励,我直接自闭。然后我炫耀了一波英语和历史成绩就进入寒假了。
|
||||
|
||||
## February
|
||||
|
||||
寒假开头是好好利用了一下手里的 Samsung Galaxy S6,本来想重新构建博客结果按照网上用 Termux 整活各种权限不足就放弃了。过年前还把前女友惹急了,反正是证明了我们之间再也没有可能了。不过也好,增进了我和班长之间的友谊(稳赚不赔2333)。开开心心度过了除夕。初一爸爸妈妈不在家,我趁着机会整了一个 Ubuntu To Go 和 一个可移动的 Minecraft JE。之后刚才说的 Samsung Galaxy S6 就坏了。不过也促进了我利用 Ubuntu To Go 重写博客,还养成了经常备份的好习惯2333。最后一星期赶了赶作业就开学了。
|
|
@ -0,0 +1,9 @@
|
|||
---
|
||||
title: OSX-KVM
|
||||
date: 2021-05-09 23:05:18
|
||||
cover:
|
||||
tags:
|
||||
categories:
|
||||
---
|
||||
|
||||
<!--more-->
|
|
@ -0,0 +1,30 @@
|
|||
---
|
||||
title: Ubuntu To Go 制作教程
|
||||
date: 2021-05-05 06:31:04
|
||||
cover:
|
||||
tags:
|
||||
- Ubuntu
|
||||
categories:
|
||||
- 写BUG日常
|
||||
- 教程
|
||||
---
|
||||
把 Ubuntu 装进移动硬盘
|
||||
<!--more-->
|
||||
|
||||
{% raw %}<article class="message is-success"><div class="message-body">{% endraw %}
|
||||
本文内容仅供参考。文章参考了部分网络上的内容。
|
||||
|
||||
特别鸣谢
|
||||
- [StevenQiu](https://www.littlqiu.net)
|
||||
- [Ubuntu团队](https://www.ubuntu.com)
|
||||
{% raw %}</div></article>{% endraw %}
|
||||
|
||||
## 准备
|
||||
|
||||
- 一个大于8GB的U盘或者移动硬盘
|
||||
- [Vmware Workstation](https://www.vmware.com/products/workstation-pro/workstation-pro-evaluation.html)
|
||||
- Ubuntu [安装盘](https://mirrors.163.com/ubuntu-releases)
|
||||
- 一个可以联网的计算机
|
||||
|
||||
## 安装
|
||||
|
|
@ -0,0 +1,58 @@
|
|||
---
|
||||
title: Ubuntu 的正确使用方式
|
||||
date: 2021-05-05 18:33:22
|
||||
cover:
|
||||
tags:
|
||||
- Ubuntu
|
||||
categories:
|
||||
- 写BUG日常
|
||||
- 资源
|
||||
---
|
||||
准备真的把 Ubuntu 当作日常操作系统?也许这篇文章可以帮助你
|
||||
<!--more-->
|
||||
|
||||
## 软件安装
|
||||
|
||||
### 浏览器
|
||||
* Chromium 网页浏览器
|
||||
|
||||
```bash
|
||||
sudo snap install chromium
|
||||
```
|
||||
|
||||
### 邮件
|
||||
* Geary 邮件
|
||||
|
||||
```bash
|
||||
sudo apt-get install geary
|
||||
```
|
||||
|
||||
### 虚拟机
|
||||
* VMware Workstastion
|
||||
|
||||
[下载](https://www.vmware.com/products/workstation-pro/workstation-pro-evaluation.html)
|
||||
```bash
|
||||
sudo chmod +x *.bundle
|
||||
sudo ./*.bundle
|
||||
```
|
||||
|
||||
## 依赖安装
|
||||
|
||||
### NPM
|
||||
```bash
|
||||
sudo apt-get install npm
|
||||
sudo npm install -g npm
|
||||
npm config set registry https://registry.npm.taobao.org #换源
|
||||
```
|
||||
### Nodejs
|
||||
```bash
|
||||
curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.11/install.sh | bash
|
||||
exit
|
||||
nvm install node
|
||||
```
|
||||
## 系统设置
|
||||
|
||||
### 8小时时差
|
||||
```bash
|
||||
sudo timedatectl set-local-rtc 1
|
||||
```
|
|
@ -0,0 +1,48 @@
|
|||
---
|
||||
title: 虚拟机安装 android-x86
|
||||
date: 2020-10-01 17:00:00
|
||||
cover: https://pic.rmb.bdstatic.com/bjh/38969b26e37f770d59195c27d73ddfcb.jpeg
|
||||
tags:
|
||||
- android
|
||||
- 虚拟机
|
||||
categories:
|
||||
- 写BUG日常
|
||||
- 教程
|
||||
---
|
||||
看到我的 Parallels Desktop ,发现好久好久没有用过了,今天刚好趁着国庆捣鼓亿下(但实际文章是国庆假期后月考完了写的)。
|
||||
<!--more-->
|
||||
{% raw %}<article class="message is-success"><div class="message-body">{% endraw %}
|
||||
关于虚拟机的使用、创建我就直接跳过了。如果你不知道去哪里寻找需要的 android-x86,你可以点击[清华大学开源软件镜像站下载](https://mirrors.tuna.tsinghua.edu.cn) 或 [北京外国语大学开源软件镜像站下载](https://mirrors.bfsu.edu.cn) 右侧的`获取下载链接`,选择`操作系统`,再选择 `Android-x86`,然后你就可以选择适合你的版本进行下载。不同的版本可能操作方式不同
|
||||
{% raw %}</div></article>{% endraw %}
|
||||
|
||||
## 安装
|
||||
|
||||
![打开你的虚拟机软件,创建新的虚拟机并载入刚刚下载的ISO镜像,开机](https://pic.rmb.bdstatic.com/bjh/a60eb584d2b95e3837d06dcee64b0d70.png)
|
||||
![按 TAP](https://pic.rmb.bdstatic.com/bjh/9d154ae657f448943a8c9d5ff1b24922.png)
|
||||
![在最后面加 INSTALL=1 并回车](https://pic.rmb.bdstatic.com/bjh/6beb1b556f45693562a68df4bae1507a.png)
|
||||
![选第一个](https://pic.rmb.bdstatic.com/bjh/4d80b5cb3ad070d0f32e256d5e0d2833.png)
|
||||
![传统引导选择 NO,若不是,则反之](https://pic.rmb.bdstatic.com/bjh/fea208fb4c56f9968a5d6244c25609b3.png)
|
||||
![选择 New,并回车](https://pic.rmb.bdstatic.com/bjh/f29f7a12aa4cdf20133e2d50f3a56a19.png)
|
||||
![选择 Primary,并回车](https://pic.rmb.bdstatic.com/bjh/8b28c0375801b0bfb4b24b80528a7759.png)
|
||||
![空间大小选默认,回车](https://pic.rmb.bdstatic.com/bjh/388ae95b0b4ae1c01f08b4c3911d38c3.png)
|
||||
![选择 Bootable,回车](https://pic.rmb.bdstatic.com/bjh/e1a480439efc216ebfe1cbbb85b1fe4a.png)
|
||||
![选择 Write,回车](https://pic.rmb.bdstatic.com/bjh/6c632d5f9ec38217a901bc01c019325b.png)
|
||||
![输入 yes 确认,回车](https://pic.rmb.bdstatic.com/bjh/d21ab94f358733d437b822289e5d01e8.png)
|
||||
![选择 Quit,回车](https://pic.rmb.bdstatic.com/bjh/e2c370ddaa0f1d79cef397175b9762f7.png)
|
||||
![选用第一个没格式化的,回车](https://pic.rmb.bdstatic.com/bjh/73cc0b145feb51087d19110c9ed0ba07.png)
|
||||
![格式选 ext4,回车](https://pic.rmb.bdstatic.com/bjh/8b9b7694076bf2b86966dd9b69c73e31.png)
|
||||
![确认格式化并回车](https://pic.rmb.bdstatic.com/bjh/c3337c2548f01c2a939e07900e5f124e.png)
|
||||
![等待格式化](https://pic.rmb.bdstatic.com/bjh/2ba4ddb50b155121a7a5312b5f10dbf9.png)
|
||||
![建议安装](https://pic.rmb.bdstatic.com/bjh/2f5e1ff3be8238397a4710286a9543bd.png)
|
||||
![是否将/system目录设为可读写,毕竟只是玩玩,我就不设置了]https://pic.rmb.bdstatic.com/bjh/a108e8d8d64fe8d22d3f619d5114bbf6.png)
|
||||
![等待写入](https://pic.rmb.bdstatic.com/bjh/7b005e34aa3875210f834be5bc71df39.png)
|
||||
![选择 Reboot,回车](https://pic.rmb.bdstatic.com/bjh/beba012ffdccb833a75c01361cb8f989.png)
|
||||
![可以回车实验性进系统,如果没有开机LOGO往下看](https://pic.rmb.bdstatic.com/bjh/da67e97fc803fe5265c8c58bdf92a23f.png)
|
||||
![选择第二个选项,回车](https://pic.rmb.bdstatic.com/bjh/5dafea468bdbd4faf320cea0c5124885.png)
|
||||
![滚完代码后回车](https://pic.rmb.bdstatic.com/bjh/8197687a94f49eeab0015958c7c6ef91.png)
|
||||
![输入 mount –o remount,rw /mnt 后回车](https://pic.rmb.bdstatic.com/bjh/cc88bb757e6474b7ec1baca25a01fda7.png)
|
||||
![按I键进入编辑模式,把第一个title下面的 root=/dev/ram0 改成 nomodeset_root=/dev/ram0,然后重启](https://pic.rmb.bdstatic.com/bjh/4c92f6bf9e73d91c26741e449d09bc44.png)
|
||||
![看到LOGO代表安装成功,耐心等待进系统](https://pic.rmb.bdstatic.com/bjh/4c92f6bf9e73d91c26741e449d09bc44.png)
|
||||
![我选的简体中文](https://pic.rmb.bdstatic.com/bjh/7fe21556d79b5a1adb5ef3fe251097b3.png)
|
||||
![同意协议](https://pic.rmb.bdstatic.com/bjh/ddd2e81f5309d730aa8def9ef673b45c.png)
|
||||
![整个安装过程结束](https://pic.rmb.bdstatic.com/bjh/bee7256ea68d7b8be8417c6688333a24.png)
|
|
@ -0,0 +1,81 @@
|
|||
---
|
||||
title: B站外嵌视频播放器防踩坑
|
||||
date: 2020-09-21 10:08:09
|
||||
cover: https://pic.rmb.bdstatic.com/bjh/c6d5d344aef87ec4511ff2521dd304bd.jpeg
|
||||
tags:
|
||||
- HTML5
|
||||
- Bilibili
|
||||
categories:
|
||||
- 写BUG日常
|
||||
- 教程
|
||||
---
|
||||
B站有一个神奇的`嵌入代码`的功能,但是这个功能不经过我们加工后直接放出来很丑。问了问度娘并简单研究了一下,我把我遇到的一些问题和解决方法贴出来。
|
||||
<!--more-->
|
||||
{% raw %}<article class="message is-success"><div class="message-body">{% endraw %}
|
||||
我们拿 [BV1PC4y1t77X](https://www.bilibili.com/video/BV1PC4y1t77X) 这个视频来进行测试。
|
||||
{% raw %}</div></article>{% endraw %}
|
||||
|
||||
## 视频下面给出的嵌入代码的问题
|
||||
|
||||
![嵌入代码](https://pic.rmb.bdstatic.com/bjh/83e5afc3e50b52eff95825a9024d8e2b.jpeg)
|
||||
|
||||
在这里把代码原封不动复制过来,得到了下面的这个玩意。
|
||||
|
||||
<iframe src="//player.bilibili.com/player.html?aid=796700174&bvid=BV1PC4y1t77X&cid=223520581&page=1" scrolling="no" border="0" frameborder="no" framespacing="0" allowfullscreen="true"> </iframe>
|
||||
|
||||
``` HTML 点击展开代码>folded
|
||||
<iframe src="//player.bilibili.com/player.html?aid=796700174&bvid=BV1PC4y1t77X&cid=223520581&page=1" scrolling="no" border="0" frameborder="no" framespacing="0" allowfullscreen="true"> </iframe>
|
||||
```
|
||||
|
||||
这是未经我们自定义得到的外嵌播放器,问题很多,清晰度不是我们想要的,没法自适应屏幕。
|
||||
|
||||
但是网络上的大佬多啊,很快就找到了大佬给的说明。
|
||||
|
||||
|变量|说明|
|
||||
|:-:|:-:|
|
||||
|cid|chat id,每个chat id对应一组弹幕池。如果填了aid这个字段不填也没关系|
|
||||
|aid|article id, 视频的av号。就是视频链接结尾 avxxxx 后面的数字。如果填了bvid这个字段不填也没关系|
|
||||
|bvid|bilibili video id, 视频的bv号。就是视频链接结尾 BVxxxx 后面的字符。2020.03 时候, B站把 AV 号根据一定的算法转成这个了|
|
||||
|page|第几个视频, 起始下标为 1 (默认值也是为1)。就是B站视频选集里的第几个视频,俗称p1、p2|
|
||||
|as_wide|是否宽屏。1: 宽屏, 0: 小屏|
|
||||
|high_quality|是否高清。1: 高清, 0: 最低视频质量(默认)/如视频有 360p 720p 1080p 三种, 默认或者 high_quality=0 是最低 360p。high_quality=1 是最高1080p|
|
||||
|danmaku|是否开启弹幕。1: 开启(默认), 0: 关闭|
|
||||
|t|打开时, 自动跳转到某个时间, 并且自动播放(单位秒)。比如 t=60, 那么自动跳转到1分钟, 且自动播放|
|
||||
|
||||
{% raw %}<article class="message is-success"><div class="message-body">{% endraw %}
|
||||
这个说明具有时效性,可能随着B站修改播放器,这个说明会失效
|
||||
{% raw %}</div></article>{% endraw %}
|
||||
|
||||
我照着这个又简单改了改 iframe 模块,得到了这个。
|
||||
|
||||
<iframe src="//player.bilibili.com/player.html?bvid=BV1PC4y1t77X&page=1&danmaku=0&high_quality=1" scrolling="no" border="0" frameborder="no" framespacing="0" allowfullscreen="true"></iframe>
|
||||
|
||||
``` HTML 点击展开代码>folded
|
||||
<iframe src="//player.bilibili.com/player.html?bvid=BV1PC4y1t77X&page=1&danmaku=0&high_quality=1" scrolling="no" border="0" frameborder="no" framespacing="0" allowfullscreen="true"></iframe>
|
||||
```
|
||||
|
||||
可以看到,它没有自适应屏幕,问了问度娘,看大佬给的解决方案,最后得到了这个。
|
||||
|
||||
<div style="position: relative; width: 100%; height: 0; padding-bottom: 75%;">
|
||||
<iframe src="//player.bilibili.com/player.html?bvid=BV1PC4y1t77X&page=1&danmaku=0&high_quality=1" scrolling="no" border="0" frameborder="no" framespacing="0" allowfullscreen="true" style="position: absolute; width: 100%; height: 100%; left: 0; top: 0;"></iframe>
|
||||
</div>
|
||||
|
||||
``` HTML 点击展开代码>folded
|
||||
<div style="position: relative; width: 100%; height: 0; padding-bottom: 75%;">
|
||||
<iframe src="//player.bilibili.com/player.html?bvid=BV1PC4y1t77X&page=1&danmaku=0&high_quality=1" scrolling="no" border="0" frameborder="no" framespacing="0" allowfullscreen="true" style="position: absolute; width: 100%; height: 100%; left: 0; top: 0;"></iframe>
|
||||
</div>
|
||||
```
|
||||
|
||||
可以说非常完美,基本可以适应各类大小。顺便我还找到了可以屏蔽链接跳转的一个小玩意。
|
||||
|
||||
<div style="position: relative; width: 100%; height: 0; padding-bottom: 75%;">
|
||||
<iframe src="//player.bilibili.com/player.html?bvid=BV1PC4y1t77X&page=1&danmaku=0&high_quality=1" scrolling="no" border="0" frameborder="no" framespacing="0" allowfullscreen="true" style="position: absolute; width: 100%; height: 100%; left: 0; top: 0;" sandbox="allow-top-navigation allow-same-origin allow-forms allow-scripts"></iframe>
|
||||
</div>
|
||||
|
||||
``` HTML 点击展开代码>folded
|
||||
<div style="position: relative; width: 100%; height: 0; padding-bottom: 75%;">
|
||||
<iframe src="//player.bilibili.com/player.html?bvid=BV1PC4y1t77X&page=1&danmaku=0&high_quality=1" scrolling="no" border="0" frameborder="no" framespacing="0" allowfullscreen="true" style="position: absolute; width: 100%; height: 100%; left: 0; top: 0;" sandbox="allow-top-navigation allow-same-origin allow-forms allow-scripts"></iframe>
|
||||
</div>
|
||||
```
|
||||
|
||||
但是目前由于播放器改版,上面的“去bilibili观看”去不掉。
|
|
@ -0,0 +1,345 @@
|
|||
---
|
||||
title: 活用 Bulma 美化文章
|
||||
date: 2020-10-15 10:34:46
|
||||
cover: https://pic.rmb.bdstatic.com/bjh/2902fadc80bff86b1f657a77e15e2cf1.png
|
||||
tags:
|
||||
- Hexo
|
||||
- Icarus
|
||||
- Bulma
|
||||
categories:
|
||||
- 写BUG日常
|
||||
- 教程
|
||||
---
|
||||
怎么让自己光秃秃的 MarkDown 文章变得更好看呢?
|
||||
<!--more-->
|
||||
{% raw %}<article class="message is-success"><div class="message-body">{% endraw %}
|
||||
特别鸣谢
|
||||
- [iMaeGoo](https://www.imaegoo.com/)
|
||||
{% raw %}</div></article>{% endraw %}
|
||||
|
||||
## 按钮
|
||||
|
||||
<div class="buttons">
|
||||
<button class="button is-info">Info</button>
|
||||
<button class="button is-success">Success</button>
|
||||
<button class="button is-warning">Warning</button>
|
||||
<button class="button is-danger">Danger</button>
|
||||
</div>
|
||||
|
||||
``` js 点击展开代码>folded
|
||||
<div class="buttons">
|
||||
<button class="button is-info">Info</button>
|
||||
<button class="button is-success">Success</button>
|
||||
<button class="button is-warning">Warning</button>
|
||||
<button class="button is-danger">Danger</button>
|
||||
</div>
|
||||
```
|
||||
|
||||
光有按钮肯定是不行的,一般我们还需要给按钮增加事件,比如点击下面的按钮,可以计算你的身份证效验码。
|
||||
|
||||
<button class="button is-info" onclick="alert(calc(prompt('请输入待计算的身份证号前17位')))">计算身份证效验码</button>
|
||||
|
||||
<script>function calc(str)
|
||||
{
|
||||
/*
|
||||
*/
|
||||
var coeff = [7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2,1];
|
||||
var suffix = ['1','0','x','9','8','7','6','5','4','3','2'];
|
||||
var sum = 0;
|
||||
for(var i=0;i<17;i++)
|
||||
sum += coeff[i] * parseInt(str.charCodeAt(i)-48);
|
||||
sum %= 11;
|
||||
str = str.substr(0,17) + suffix[sum];
|
||||
return str;
|
||||
}
|
||||
</script>
|
||||
|
||||
``` js 点击展开代码>folded
|
||||
<script>function calc(str)
|
||||
{
|
||||
/*
|
||||
*/
|
||||
var coeff = [7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2,1];
|
||||
var suffix = ['1','0','x','9','8','7','6','5','4','3','2'];
|
||||
var sum = 0;
|
||||
for(var i=0;i<17;i++)
|
||||
sum += coeff[i] * parseInt(str.charCodeAt(i)-48);
|
||||
sum %= 11;
|
||||
str = str.substr(0,17) + suffix[sum];
|
||||
return str;
|
||||
}
|
||||
</script>
|
||||
```
|
||||
|
||||
显示一言
|
||||
|
||||
<button class="button is-info" onclick="showHitokoto(event)">显示一言</button>
|
||||
<blockquote class="hitokoto">↑↑↑ 试着点击“显示一言”!</blockquote>
|
||||
|
||||
<script>
|
||||
function showHitokoto (event) {
|
||||
event.target.classList.add('is-loading');
|
||||
$.ajax({
|
||||
type: 'GET',
|
||||
url: 'https://v1.hitokoto.cn/',
|
||||
success: function (data) {
|
||||
$('.hitokoto').text(data.hitokoto);
|
||||
event.target.classList.remove('is-loading');
|
||||
}
|
||||
});
|
||||
}
|
||||
</script>
|
||||
|
||||
``` js 点击展开代码>folded
|
||||
<button class="button is-info" onclick="showHitokoto(event)">显示一言</button>
|
||||
<blockquote class="hitokoto">↑↑↑ 试着点击“显示一言”!</blockquote>
|
||||
|
||||
<script>
|
||||
function showHitokoto (event) {
|
||||
event.target.classList.add('is-loading');
|
||||
$.ajax({
|
||||
type: 'GET',
|
||||
url: 'https://v1.hitokoto.cn/',
|
||||
success: function (data) {
|
||||
$('.hitokoto').text(data.hitokoto);
|
||||
event.target.classList.remove('is-loading');
|
||||
}
|
||||
});
|
||||
}
|
||||
</script>
|
||||
```
|
||||
|
||||
## 标签页
|
||||
|
||||
<div class="tabs is-toggle"><ul>
|
||||
<li class="is-active"><a onclick="onTabClick(event)">
|
||||
<span class="icon is-small"><i class="fas fa-image" aria-hidden="true"></i></span>
|
||||
<span>Pictures</span>
|
||||
</a></li>
|
||||
<li><a onclick="onTabClick(event)">
|
||||
<span class="icon is-small"><i class="fas fa-music" aria-hidden="true"></i></span>
|
||||
<span>Music</span>
|
||||
</a></li>
|
||||
<li><a onclick="onTabClick(event)">
|
||||
<span class="icon is-small"><i class="fas fa-film" aria-hidden="true"></i></span>
|
||||
<span>Videos</span>
|
||||
</a></li>
|
||||
<li><a onclick="onTabClick(event)">
|
||||
<span class="icon is-small"><i class="far fa-file-alt" aria-hidden="true"></i></span>
|
||||
<span>Documents</span>
|
||||
</a></li>
|
||||
</ul></div>
|
||||
|
||||
{% raw %}<div id="Pictures" class="tab-content" style="display: block;">{% endraw %}
|
||||
[Pixabay](https://pixabay.com/zh/) 是全球知名的图库网站及充满活力的创意社区,拥有上百万张免费正版高清照片素材,涵盖风景、人物、动态、静物等多种分类,你可以在任何地方使用 Pixabay 图库中的素材...
|
||||
{% raw %}</div>{% endraw %}
|
||||
{% raw %}<div id="Music" class="tab-content">{% endraw %}
|
||||
[网易云音乐](https://music.163.com/) 是一款专注于发现与分享的音乐产品,依托专业音乐人、DJ、好友推荐及社交功能,为用户打造全新的音乐生活。
|
||||
{% raw %}</div>{% endraw %}
|
||||
{% raw %}<div id="Videos" class="tab-content">{% endraw %}
|
||||
[哔哩哔哩](https://www.bilibili.com/) 是国内知名的视频弹幕网站,这里有最及时的动漫新番,最棒的ACG氛围,最有创意的Up主。大家可以在这里找到许多欢乐。
|
||||
{% raw %}</div>{% endraw %}
|
||||
{% raw %}<div id="Documents" class="tab-content">{% endraw %}
|
||||
[石墨文档](https://shimo.im/) 是全新一代云 Office 办公软件,支持多人在线协作编辑文档和表格,独有内容级安全,全过程留痕可追溯。PC 端和移动端全覆盖,随时随地远程办公。即写即存...
|
||||
{% raw %}</div>{% endraw %}
|
||||
|
||||
<style type="text/css">
|
||||
.content .tabs ul { margin: 0; }
|
||||
.tab-content { display: none; }
|
||||
</style>
|
||||
|
||||
<script>
|
||||
function onTabClick (event) {
|
||||
var tabTitle = $(event.currentTarget).children('span:last-child').text();
|
||||
$('.article .content .tab-content').css('display', 'none');
|
||||
$('.article .content .tabs li').removeClass('is-active');
|
||||
$('#' + tabTitle).css('display', 'block');
|
||||
$(event.currentTarget).parent().addClass('is-active');
|
||||
}
|
||||
</script>
|
||||
|
||||
``` js 点击展开代码>folded
|
||||
<div class="tabs is-toggle"><ul>
|
||||
<li class="is-active"><a onclick="onTabClick(event)">
|
||||
<span class="icon is-small"><i class="fas fa-image" aria-hidden="true"></i></span>
|
||||
<span>Pictures</span>
|
||||
</a></li>
|
||||
<li><a onclick="onTabClick(event)">
|
||||
<span class="icon is-small"><i class="fas fa-music" aria-hidden="true"></i></span>
|
||||
<span>Music</span>
|
||||
</a></li>
|
||||
<li><a onclick="onTabClick(event)">
|
||||
<span class="icon is-small"><i class="fas fa-film" aria-hidden="true"></i></span>
|
||||
<span>Videos</span>
|
||||
</a></li>
|
||||
<li><a onclick="onTabClick(event)">
|
||||
<span class="icon is-small"><i class="far fa-file-alt" aria-hidden="true"></i></span>
|
||||
<span>Documents</span>
|
||||
</a></li>
|
||||
</ul></div>
|
||||
|
||||
{% raw %}<div id="Pictures" class="tab-content" style="display: block;">{% endraw %}
|
||||
[Pixabay](https://pixabay.com/zh/) 是全球知名的图库网站及充满活力的创意社区,拥有上百万张免费正版高清照片素材,涵盖风景、人物、动态、静物等多种分类,你可以在任何地方使用 Pixabay 图库中的素材...
|
||||
{% raw %}</div>{% endraw %}
|
||||
{% raw %}<div id="Music" class="tab-content">{% endraw %}
|
||||
[网易云音乐](https://music.163.com/) 是一款专注于发现与分享的音乐产品,依托专业音乐人、DJ、好友推荐及社交功能,为用户打造全新的音乐生活。
|
||||
{% raw %}</div>{% endraw %}
|
||||
{% raw %}<div id="Videos" class="tab-content">{% endraw %}
|
||||
[哔哩哔哩](https://www.bilibili.com/) 是国内知名的视频弹幕网站,这里有最及时的动漫新番,最棒的ACG氛围,最有创意的Up主。大家可以在这里找到许多欢乐。
|
||||
{% raw %}</div>{% endraw %}
|
||||
{% raw %}<div id="Documents" class="tab-content">{% endraw %}
|
||||
[石墨文档](https://shimo.im/) 是全新一代云 Office 办公软件,支持多人在线协作编辑文档和表格,独有内容级安全,全过程留痕可追溯。PC 端和移动端全覆盖,随时随地远程办公。即写即存...
|
||||
{% raw %}</div>{% endraw %}
|
||||
|
||||
<style type="text/css">
|
||||
.content .tabs ul { margin: 0; }
|
||||
.tab-content { display: none; }
|
||||
</style>
|
||||
|
||||
<script>
|
||||
function onTabClick (event) {
|
||||
var tabTitle = $(event.currentTarget).children('span:last-child').text();
|
||||
$('.article .content .tab-content').css('display', 'none');
|
||||
$('.article .content .tabs li').removeClass('is-active');
|
||||
$('#' + tabTitle).css('display', 'block');
|
||||
$(event.currentTarget).parent().addClass('is-active');
|
||||
}
|
||||
</script>
|
||||
```
|
||||
|
||||
## 彩色突出
|
||||
|
||||
{% raw %}<div class="notification is-info">{% endraw %}
|
||||
[Icarus](https://blog.zhangruipeng.me/hexo-theme-icarus/) 主题以白色的简洁为主,但有时候我们希望在文章中用**特别的样式**注明一些内容,*markdown* 语法就不够用了,所以在此分享一下我的高级玩法。
|
||||
{% raw %}</div>{% endraw %}
|
||||
|
||||
``` js 点击展开代码>folded
|
||||
{% raw %}<div class="notification is-info">{% endraw %}
|
||||
[Icarus](https://blog.zhangruipeng.me/hexo-theme-icarus/) 主题以白色的简洁为主,但有时候我们希望在文章中用**特别的样式**注明一些内容,*markdown* 语法就不够用了,所以在此分享一下我的高级玩法。
|
||||
{% raw %}</div>{% endraw %}
|
||||
```
|
||||
|
||||
{% raw %}<div class="notification is-success">{% endraw %}
|
||||
[Icarus](https://blog.zhangruipeng.me/hexo-theme-icarus/) 主题以白色的简洁为主,但有时候我们希望在文章中用**特别的样式**注明一些内容,*markdown* 语法就不够用了,所以在此分享一下我的高级玩法。
|
||||
{% raw %}</div>{% endraw %}
|
||||
|
||||
``` js 点击展开代码>folded
|
||||
{% raw %}<div class="notification is-success">{% endraw %}
|
||||
[Icarus](https://blog.zhangruipeng.me/hexo-theme-icarus/) 主题以白色的简洁为主,但有时候我们希望在文章中用**特别的样式**注明一些内容,*markdown* 语法就不够用了,所以在此分享一下我的高级玩法。
|
||||
{% raw %}</div>{% endraw %}
|
||||
```
|
||||
|
||||
{% raw %}<div class="notification is-warning">{% endraw %}
|
||||
[Icarus](https://blog.zhangruipeng.me/hexo-theme-icarus/) 主题以白色的简洁为主,但有时候我们希望在文章中用**特别的样式**注明一些内容,*markdown* 语法就不够用了,所以在此分享一下我的高级玩法。
|
||||
{% raw %}</div>{% endraw %}
|
||||
|
||||
``` js 点击展开代码>folded
|
||||
{% raw %}<div class="notification is-warning">{% endraw %}
|
||||
[Icarus](https://blog.zhangruipeng.me/hexo-theme-icarus/) 主题以白色的简洁为主,但有时候我们希望在文章中用**特别的样式**注明一些内容,*markdown* 语法就不够用了,所以在此分享一下我的高级玩法。
|
||||
{% raw %}</div>{% endraw %}
|
||||
```
|
||||
|
||||
{% raw %}<div class="notification is-danger">{% endraw %}
|
||||
[Icarus](https://blog.zhangruipeng.me/hexo-theme-icarus/) 主题以白色的简洁为主,但有时候我们希望在文章中用**特别的样式**注明一些内容,*markdown* 语法就不够用了,所以在此分享一下我的高级玩法。
|
||||
{% raw %}</div>{% endraw %}
|
||||
|
||||
``` js 点击展开代码>folded
|
||||
{% raw %}<div class="notification is-danger">{% endraw %}
|
||||
[Icarus](https://blog.zhangruipeng.me/hexo-theme-icarus/) 主题以白色的简洁为主,但有时候我们希望在文章中用**特别的样式**注明一些内容,*markdown* 语法就不够用了,所以在此分享一下我的高级玩法。
|
||||
{% raw %}</div>{% endraw %}
|
||||
```
|
||||
|
||||
{% raw %}<article class="message is-info"><div class="message-body">{% endraw %}
|
||||
[Icarus](https://blog.zhangruipeng.me/hexo-theme-icarus/) 主题以白色的简洁为主,但有时候我们希望在文章中用**特别的样式**注明一些内容,*markdown* 语法就不够用了,所以在此分享一下我的高级玩法。
|
||||
{% raw %}</div></article>{% endraw %}
|
||||
|
||||
``` js 点击展开代码>folded
|
||||
{% raw %}<article class="message is-info"><div class="message-body">{% endraw %}
|
||||
[Icarus](https://blog.zhangruipeng.me/hexo-theme-icarus/) 主题以白色的简洁为主,但有时候我们希望在文章中用**特别的样式**注明一些内容,*markdown* 语法就不够用了,所以在此分享一下我的高级玩法。
|
||||
{% raw %}</div></article>{% endraw %}
|
||||
```
|
||||
|
||||
{% raw %}<article class="message is-success"><div class="message-body">{% endraw %}
|
||||
[Icarus](https://blog.zhangruipeng.me/hexo-theme-icarus/) 主题以白色的简洁为主,但有时候我们希望在文章中用**特别的样式**注明一些内容,*markdown* 语法就不够用了,所以在此分享一下我的高级玩法。
|
||||
{% raw %}</div></article>{% endraw %}
|
||||
|
||||
``` js 点击展开代码>folded
|
||||
{% raw %}<article class="message is-success"><div class="message-body">{% endraw %}
|
||||
[Icarus](https://blog.zhangruipeng.me/hexo-theme-icarus/) 主题以白色的简洁为主,但有时候我们希望在文章中用**特别的样式**注明一些内容,*markdown* 语法就不够用了,所以在此分享一下我的高级玩法。
|
||||
{% raw %}</div></article>{% endraw %}
|
||||
```
|
||||
|
||||
{% raw %}<article class="message is-warning"><div class="message-body">{% endraw %}
|
||||
[Icarus](https://blog.zhangruipeng.me/hexo-theme-icarus/) 主题以白色的简洁为主,但有时候我们希望在文章中用**特别的样式**注明一些内容,*markdown* 语法就不够用了,所以在此分享一下我的高级玩法。
|
||||
{% raw %}</div></article>{% endraw %}
|
||||
|
||||
``` js 点击展开代码>folded
|
||||
{% raw %}<article class="message is-warning"><div class="message-body">{% endraw %}
|
||||
[Icarus](https://blog.zhangruipeng.me/hexo-theme-icarus/) 主题以白色的简洁为主,但有时候我们希望在文章中用**特别的样式**注明一些内容,*markdown* 语法就不够用了,所以在此分享一下我的高级玩法。
|
||||
{% raw %}</div></article>{% endraw %}
|
||||
```
|
||||
|
||||
{% raw %}<article class="message is-danger"><div class="message-body">{% endraw %}
|
||||
[Icarus](https://blog.zhangruipeng.me/hexo-theme-icarus/) 主题以白色的简洁为主,但有时候我们希望在文章中用**特别的样式**注明一些内容,*markdown* 语法就不够用了,所以在此分享一下我的高级玩法。
|
||||
{% raw %}</div></article>{% endraw %}
|
||||
|
||||
``` js 点击展开代码>folded
|
||||
{% raw %}<article class="message is-danger"><div class="message-body">{% endraw %}
|
||||
[Icarus](https://blog.zhangruipeng.me/hexo-theme-icarus/) 主题以白色的简洁为主,但有时候我们希望在文章中用**特别的样式**注明一些内容,*markdown* 语法就不够用了,所以在此分享一下我的高级玩法。
|
||||
{% raw %}</div></article>{% endraw %}
|
||||
```
|
||||
|
||||
{% raw %}<article class="message is-info"><div class="message-header">{% endraw %}
|
||||
活用 Bulma 美化文章
|
||||
{% raw %}</div><div class="message-body">{% endraw %}
|
||||
[Icarus](https://blog.zhangruipeng.me/hexo-theme-icarus/) 主题以白色的简洁为主,但有时候我们希望在文章中用**特别的样式**注明一些内容,*markdown* 语法就不够用了,所以在此分享一下我的高级玩法。
|
||||
{% raw %}</div></article>{% endraw %}
|
||||
|
||||
``` js 点击展开代码>folded
|
||||
{% raw %}<article class="message is-info"><div class="message-header">{% endraw %}
|
||||
活用 Bulma 美化文章
|
||||
{% raw %}</div><div class="message-body">{% endraw %}
|
||||
[Icarus](https://blog.zhangruipeng.me/hexo-theme-icarus/) 主题以白色的简洁为主,但有时候我们希望在文章中用**特别的样式**注明一些内容,*markdown* 语法就不够用了,所以在此分享一下我的高级玩法。
|
||||
{% raw %}</div></article>{% endraw %}
|
||||
```
|
||||
|
||||
## 你知道的太多了
|
||||
|
||||
{% raw %}
|
||||
<style type="text/css">
|
||||
.heimu { color: #000; background-color: #000; }
|
||||
.heimu:hover { color: #fff; }
|
||||
</style>
|
||||
{% endraw %}
|
||||
我们要科学利用网络,提高媒介素养,积极利用网络获取新知。学会信息节食,不沉迷于网络 {% raw %}<span class="heimu">就像我一样2333</span>{% endraw %},还可以积极利用网络为国家和社会发展建言献策{% raw %}<span class="heimu">我就参加过</span>{% endraw %}。
|
||||
|
||||
``` js 点击展开代码>folded
|
||||
{% raw %}
|
||||
<style type="text/css">
|
||||
.heimu { color: #000; background-color: #000; }
|
||||
.heimu:hover { color: #fff; }
|
||||
</style>
|
||||
{% endraw %}
|
||||
我们要科学利用网络,提高媒介素养,积极利用网络获取新知。学会信息节食,不沉迷于网络 {% raw %}<span class="heimu">就像我一样2333</span>{% endraw %},还可以积极利用网络为国家和社会发展建言献策{% raw %}<span class="heimu">我就参加过</span>{% endraw %}。
|
||||
```
|
||||
|
||||
## 点击展开代码
|
||||
|
||||
``` js 点击展开代码>folded
|
||||
``` js 点击展开代码>folded
|
||||
<p>Hello, Bulma!</p>
|
||||
```
|
||||
|
||||
## 封面来源声明
|
||||
|
||||
<a class="tag is-dark is-medium" href="https://bulma.io" target="_blank">
|
||||
<span class="icon"><i class="fas fa-camera"></i></span>
|
||||
Bulma Docs
|
||||
</a>
|
||||
|
||||
``` js 点击展开代码>folded
|
||||
<a class="tag is-dark is-medium" href="https://bulma.io" target="_blank">
|
||||
<span class="icon"><i class="fas fa-camera"></i></span>
|
||||
Bulma Docs
|
||||
</a>
|
||||
```
|
|
@ -0,0 +1,121 @@
|
|||
---
|
||||
title: Gridea 魔改使其支持 Gitee Pages
|
||||
cover: https://pic.rmb.bdstatic.com/bjh/0d9eb92f67ba93b514f2555a70eacebe.png
|
||||
date: 2020-05-09 11:33:30
|
||||
tags:
|
||||
- Gridea
|
||||
categories:
|
||||
- 写BUG日常
|
||||
- 教程
|
||||
---
|
||||
Gridea 是一款很好用的博客写作软件。它功能全面但可惜部署不支持国内的 Gitee 代码储存仓库。本篇文章将对 Gridea 进行源码上的修改使其支持 Gridea。
|
||||
<!--more-->
|
||||
{% raw %}<article class="message is-success"><div class="message-body">{% endraw %}
|
||||
本篇文章会手把手进行教学,当然你也可以直接克隆已经做好的[仓库](https://gitee.com/Nofated/gridea)
|
||||
{% raw %}</div></article>{% endraw %}
|
||||
|
||||
## 教程
|
||||
|
||||
### 克隆源代码
|
||||
|
||||
```
|
||||
# Github 官方
|
||||
git clone https:/github.com/getgridea/gridea.git
|
||||
|
||||
# FastGit 镜像
|
||||
git clone https://hub.fastgit.org/getgridea/gridea.git
|
||||
|
||||
# Gitee 镜像
|
||||
git clone https://gitee.com/mirrors/gridea.git
|
||||
|
||||
# Gitee
|
||||
git clone https://gitee.com/fehey/gridea.git
|
||||
```
|
||||
|
||||
以上四个仓库都是可以的。你可以自行选择。
|
||||
|
||||
```
|
||||
# 进入 Gridea 的目录
|
||||
cd gridea
|
||||
```
|
||||
|
||||
## 修改源码
|
||||
|
||||
``` diff src/server/deploy.ts >folded
|
||||
this.platformAddress = ({ // 18行
|
||||
github: 'github.com',
|
||||
coding: 'e.coding.net',
|
||||
+ gitee: 'gitee.com',
|
||||
} as any)[setting.platform || 'github']
|
||||
|
||||
const preUrl = ({
|
||||
github: `${setting.username}:${setting.token}`,
|
||||
coding: `${setting.tokenUsername}:${setting.token}`,
|
||||
+ gitee: `${setting.username}:${setting.token}`,
|
||||
} as any)[setting.platform || 'github']
|
||||
|
||||
this.remoteUrl = `https://${preUrl}@${this.platformAddress}/${setting.username}/${setting.repository}.git`
|
||||
```
|
||||
|
||||
``` diff src/server/events/deploy.ts>folded
|
||||
ipcMain.removeAllListeners('remote-detected') // 17行
|
||||
|
||||
ipcMain.on('site-publish', async (event: IpcMainEvent, params: any) => {
|
||||
+ console.log(platform)
|
||||
const client = ({
|
||||
'github': deploy,
|
||||
'coding': deploy,
|
||||
+ 'gitee': deploy,
|
||||
'sftp': sftp,
|
||||
} as any)[platform]
|
||||
|
||||
|
||||
const client = ({ // 38行
|
||||
'github': deploy,
|
||||
'coding': deploy,
|
||||
+ 'gitee': deploy,
|
||||
'sftp': sftp,
|
||||
} as any)[platform]
|
||||
|
||||
const result = await client.remoteDetect()
|
||||
event.sender.send('remote-detected', result)
|
||||
})
|
||||
```
|
||||
|
||||
``` diff src/views/setting/includes/BasicSetting.vue >folded
|
||||
<a-radio-group name="platform" v-model="form.platform"> // 5行
|
||||
<a-radio value="github">Github Pages</a-radio>
|
||||
<a-radio value="coding">Coding Pages</a-radio>
|
||||
+ <a-radio value="gitee">Gitee Pages</a-radio>
|
||||
<a-radio value="sftp">SFTP</a-radio>
|
||||
</a-radio-group>
|
||||
</a-form-item>
|
||||
<a-input v-model="form.domain" placeholder="mydomain.com" style="width: calc(100% - 96px);" />
|
||||
</a-input-group>
|
||||
</a-form-item>
|
||||
- <template v-if="['github', 'coding'].includes(form.platform)">
|
||||
+ <template v-if="['github', 'coding', 'gitee'].includes(form.platform)">
|
||||
<a-form-item :label="$t('repository')" :labelCol="formLayout.label" :wrapperCol="formLayout.wrapper" :colon="false">
|
||||
<a-input v-model="form.repository" />
|
||||
</a-form-item>
|
||||
export default class BasicSetting extends Vue {
|
||||
|
||||
|
||||
&& form.branch // 134行
|
||||
&& form.username
|
||||
&& form.token
|
||||
- const pagesPlatfomValid = baseValid && (form.platform === 'github' || (form.platform === 'coding' && form.tokenUsername))
|
||||
+ const pagesPlatfomValid = baseValid && (form.platform === 'gitee' || form.platform === 'github' || (form.platform === 'coding' && form.tokenUsername))
|
||||
const sftpPlatformValid = ['sftp'].includes(form.platform)
|
||||
&& form.port
|
||||
```
|
||||
|
||||
## 测试与编译
|
||||
|
||||
``` 需要安装 yarn 和 electron
|
||||
yarn
|
||||
# 测试
|
||||
yarn electron:serve
|
||||
# 生成
|
||||
yarn electron:build
|
||||
```
|
|
@ -0,0 +1,51 @@
|
|||
---
|
||||
title: 折腾你的老 Mac | 给不支持的 Mac 安装 Big Sur
|
||||
date: 2021-06-08 15:08:54
|
||||
cover: https://pic.rmb.bdstatic.com/bjh/8122bfd5ae9ef6ed4adbeac8c51d696f.jpeg
|
||||
tags:
|
||||
- Mac
|
||||
- Big Sur
|
||||
categories:
|
||||
- 写BUG日常
|
||||
- 教程
|
||||
---
|
||||
Wi-Fi 问题完美解决。
|
||||
<!--more-->
|
||||
|
||||
{% raw %}<article class="message is-success"><div class="message-body">{% endraw %}
|
||||
特别鸣谢
|
||||
- [青瓷妈妈的文章](https://zhuanlan.zhihu.com/p/335640700)
|
||||
|
||||
本文基础系统为 macOS Mojave 10.14.6
|
||||
{% raw %}</div></article>{% endraw %}
|
||||
|
||||
## Big Sur 下载
|
||||
|
||||
<https://www.applex.net/threads/macos-big-sur-11-4-dmg.94267/>
|
||||
|
||||
>感谢该网站的分享。从注册到下载全部免费并且不需要任何什么公众号等。可以直接直链下载。
|
||||
|
||||
## 创建新分区(可选)
|
||||
|
||||
![](https://pic.rmb.bdstatic.com/bjh/f88b2dc2331bc2ebb68742660164d8de.png)
|
||||
|
||||
选择合适分区大小并设置为 APFS 格式。
|
||||
|
||||
## 创建启动U盘
|
||||
|
||||
### U盘格式化
|
||||
|
||||
![打开磁盘工具,点击显示,点击所有设备](https://pic.rmb.bdstatic.com/bjh/728a6b7e3ee2452f8b7674bfeb1a7856.png)
|
||||
![格式化U盘](https://pic.rmb.bdstatic.com/bjh/1d987ff85f140c73e506f25da7abd488.png)
|
||||
|
||||
### 刻录U盘
|
||||
|
||||
[下载插件](https://codeload.github.com/barrykn/big-sur-micropatcher/zip/main)
|
||||
|
||||
[项目的GitHub](https://github.com/barrykn/big-sur-micropatcher)
|
||||
|
||||
打开终端
|
||||
|
||||
``` bash BASH
|
||||
sudo /Applications/Install\ macOS\ Big\ Sur.app/Contents/Resources/createinstallmedia --volume /Volumes/upan
|
||||
```
|
|
@ -0,0 +1,92 @@
|
|||
---
|
||||
title: TIS Trinity Union 图片壁纸
|
||||
date: 2020-05-15 14:33:53
|
||||
cover: https://pic.rmb.bdstatic.com/bjh/447cd020c4b832642cd37d8716136cbb.jpeg
|
||||
tags:
|
||||
- Minecraft
|
||||
categories:
|
||||
- 日常生活
|
||||
- 玩游戏
|
||||
---
|
||||
TIS Trinity Union
|
||||
国内最大的红石技术向生存服之一 | 国内三个最大的原版技术服合并而来的服务器 | 专注于生电领域的服务器
|
||||
<!--more-->
|
||||
{% raw %}<article class="message is-success"><div class="message-body">{% endraw %}
|
||||
本文章所有内容均源自网络。本站与 TIS Trinity Union 服务器无关
|
||||
{% raw %}</div></article>{% endraw %}
|
||||
|
||||
## 一周年
|
||||
|
||||
![朝阳下的土楼](https://pic.rmb.bdstatic.com/bjh/be3635a7db53b391ffbdd9b73a917508.png)
|
||||
![出生点空置域](https://pic.rmb.bdstatic.com/bjh/b8e2569cf8b28f69700a1e49da43848c.png)
|
||||
![地铁小镇 塔楼后边是刷冰机](https://pic.rmb.bdstatic.com/bjh/f4f32e666552442b4efe0b89d9c413ac.png)
|
||||
![二联守卫者农场 为什么叫二联?因为这里曾经有两个海底神殿!](https://pic.rmb.bdstatic.com/bjh/b97839ce7c9ba38d30775ec3077e349b.png)
|
||||
![海滨小镇](https://pic.rmb.bdstatic.com/bjh/2a992e5f63b8f4c8d5a945eaabbc833c.png)
|
||||
![海滨小镇夜景](https://pic.rmb.bdstatic.com/bjh/cdc58cf14343370b133fdd05ddecb7a7.png)
|
||||
![核弹岛 一个由TNT建造成的小岛!](https://pic.rmb.bdstatic.com/bjh/3661116d4381b87eb91900f66ba5a3e8.png)
|
||||
![黄昏下的绿野镇观赏农田](https://pic.rmb.bdstatic.com/bjh/a66be5858b493acb6d76f95fadeb801e.png)
|
||||
![旧基地](https://pic.rmb.bdstatic.com/bjh/28c086ff9141ccd281f970793859b084.png)
|
||||
![绿野镇观赏农田](https://pic.rmb.bdstatic.com/bjh/0302ae43aa8c08895f5e75bf3acce79e.png)
|
||||
![绿野镇远景 朦胧的意境美](https://pic.rmb.bdstatic.com/bjh/6dc8c4e43198801f0acf1b62bbcb3189.png)
|
||||
![蘑菇牛农场 再也不用愁没有牛肉啦](https://pic.rmb.bdstatic.com/bjh/f5ad0f313816188023a6414cd151d90a.png)
|
||||
![末地大厅与远处的村民工程](https://pic.rmb.bdstatic.com/bjh/55c303b35007c02655873fc0ac12a5ba.png)
|
||||
![平顶山采矿机 沙漠之中的开路先锋?](https://pic.rmb.bdstatic.com/bjh/bd02ac517b2a27ad92ab6617266854b8.png)
|
||||
![全物品内饰](https://pic.rmb.bdstatic.com/bjh/a1b52fb0fa64888b1dbae9de306fdfd9.png)
|
||||
![沙漠工业区](https://pic.rmb.bdstatic.com/bjh/4aa56a7f90e425f330d09f09c66d8926.png)
|
||||
![山谷里的夺宝小游戏](https://pic.rmb.bdstatic.com/bjh/eee0bf9e104f5af44a1bae73965a1386.png)
|
||||
![史莱姆农场](https://pic.rmb.bdstatic.com/bjh/a220393034746d5484970fcd7bd938c5.png)
|
||||
![史莱姆农场俯视图 是不是很像一块电路板?](https://pic.rmb.bdstatic.com/bjh/33d8083a93c5dc27d38410c3d750fe9b.png)
|
||||
![刷花机 为什么是心形?因为要给心爱的人送花呀](https://pic.rmb.bdstatic.com/bjh/443a19d9835e0c50f04a5e71e10569e5.png)
|
||||
![四联女巫塔 效率极高!](https://pic.rmb.bdstatic.com/bjh/0f219e91364378b85935fb24802c9322.png)
|
||||
![土楼](https://pic.rmb.bdstatic.com/bjh/23961d5602e2a256058272c34e0f8f5e.png)
|
||||
![土楼的夜景](https://pic.rmb.bdstatic.com/bjh/af043925fd4615f11d9d49bfc5edbad2.png)
|
||||
![土楼近景](https://pic.rmb.bdstatic.com/bjh/f82cba3d018a80f6d024d400086f402c.png)
|
||||
![土楼旁边的建筑](https://pic.rmb.bdstatic.com/bjh/0e84e6bafe2fc02df283569a96c8955c.jpeg)
|
||||
![远处的八角土楼 是仿照世界仅存的最后一座八角土楼建造的!](https://pic.rmb.bdstatic.com/bjh/ed6af96441994765f6053ea96507c17b.png)
|
||||
![最初的基地](https://pic.rmb.bdstatic.com/bjh/378dea34407d985380df2edcb63486a0.png)
|
||||
|
||||
## 二周年
|
||||
|
||||
![冰船](https://pic.rmb.bdstatic.com/bjh/12597c0e0e05eb5ab0bc5bf3500cb690.png)
|
||||
![出生点1](https://pic.rmb.bdstatic.com/bjh/693f89d2dc4556ed058f794b2d33b047.png)
|
||||
![出生点2](https://pic.rmb.bdstatic.com/bjh/67c723eb4869501681b77e14865a4b63.png)
|
||||
![大白熊空置域](https://pic.rmb.bdstatic.com/bjh/40e669a6ea35b302da0dba738a5c7a34.png)
|
||||
![地狱大厅0](https://pic.rmb.bdstatic.com/bjh/739fed8dca9f3efdf7d1e6500307ab18.png)
|
||||
![地狱大厅1](https://pic.rmb.bdstatic.com/bjh/17b0acb94759d0fb2804f24226fd1589.png)
|
||||
![地狱大厅2](https://pic.rmb.bdstatic.com/bjh/1262a858fd1202b9d25fbe0c1f52ef7f.png)
|
||||
![凋灵骷髅塔](https://pic.rmb.bdstatic.com/bjh/fac7d34829a0be678fd9c64863a9609e.png)
|
||||
![合影](https://pic.rmb.bdstatic.com/bjh/9fad8ea38c5c135b92ad4d37d481c035.png)
|
||||
![火神号0](https://pic.rmb.bdstatic.com/bjh/d4ba3df6538ac923239f34fe3d1d06ce.png)
|
||||
![火神号1](https://pic.rmb.bdstatic.com/bjh/6868968816717d466634f2fb65b9fb6e.png)
|
||||
![火神号2](https://pic.rmb.bdstatic.com/bjh/45504e564c84dcf676b5208c0a0ee62f.png)
|
||||
![火神号3](https://pic.rmb.bdstatic.com/bjh/4092490751d2316e7d80aa61fe690722.png)
|
||||
![火神号4](https://pic.rmb.bdstatic.com/bjh/10d9103d24b88e92fe55b5b44db509ad.png)
|
||||
![绿野镇1](https://pic.rmb.bdstatic.com/bjh/9438b00ffe18b81916bacc7586bc5665.png)
|
||||
![绿野镇2](https://pic.rmb.bdstatic.com/bjh/0bc2023a7432d40ec268175bdaa1dfb2.png)
|
||||
![绿野镇3](https://pic.rmb.bdstatic.com/bjh/4a05312113b345ee1765684a190492bd.png)
|
||||
![末地石农场](https://pic.rmb.bdstatic.com/bjh/36a6e413f75a9f7a3f8dd9497b546ef8.png)
|
||||
![蜃海0](https://pic.rmb.bdstatic.com/bjh/d60793b30bea185a3664760a14e6721f.png)
|
||||
![蜃海1](https://pic.rmb.bdstatic.com/bjh/4ea213a5d3aece40cfe34d1e34339fe0.png)
|
||||
![蜃海2](https://pic.rmb.bdstatic.com/bjh/18bdb7c9366df3aa84af89d591b2c303.png)
|
||||
![蜃海3](https://pic.rmb.bdstatic.com/bjh/1d43834ef5372d3c57361e4a47511d15.png)
|
||||
![蜃海4](https://pic.rmb.bdstatic.com/bjh/fcd4877c290844763b565dcba000b86a.png)
|
||||
![蜃海5](https://pic.rmb.bdstatic.com/bjh/220227a13b21799e84bccbb2e3768188.png)
|
||||
![蜃海6](https://pic.rmb.bdstatic.com/bjh/f9ec1619d858e302c6612ad896bd606f.png)
|
||||
![蜃海(内)](https://pic.rmb.bdstatic.com/bjh/82227f18034fbe1f455f4b9b8a66b701.png)
|
||||
![树场特区](https://pic.rmb.bdstatic.com/bjh/c00a5651268dfe83ce654c4abb5eaca1.png)
|
||||
![四联女巫塔](https://pic.rmb.bdstatic.com/bjh/a416742325bdb1cdfd9611f5fb8f741a.png)
|
||||
![索菲空置域](https://pic.rmb.bdstatic.com/bjh/e75e520cd364af5e9d9de2c09b173438.png)
|
||||
![香子兰空置域](https://pic.rmb.bdstatic.com/bjh/c1d640e264560338db1b9276ce947c5f.png)
|
||||
![主世界末地岛1](https://pic.rmb.bdstatic.com/bjh/8a30380a80018f53b8b0122c0499f36b.png)
|
||||
![主世界末地岛2](https://pic.rmb.bdstatic.com/bjh/028029ead25a25cea39c6e54f9b06eba.png)
|
||||
![主世界猪人塔1](https://pic.rmb.bdstatic.com/bjh/a044d395677f94c1dd1382784a9cce06.png)
|
||||
![主世界猪人塔2](https://pic.rmb.bdstatic.com/bjh/053bc6ac57609c897f273d645707bf0d.png)
|
||||
|
||||
## 其它
|
||||
|
||||
![末地村民工程](https://pic.rmb.bdstatic.com/bjh/06c4022b6db7cf5091f7a64f1141892f.jpeg)
|
||||
![地狱盾构机(临时工程)](https://pic.rmb.bdstatic.com/bjh/95cdd887150a7f88c6b31ad18883b062.jpeg)
|
||||
![混凝土工厂](https://pic.rmb.bdstatic.com/bjh/0cca4c1940454908db40f56ba39d30b3.jpeg)
|
||||
![工业基地&员工宿舍](https://pic.rmb.bdstatic.com/bjh/62d99a7432a257407ded3a05cedb4750.jpeg)
|
||||
![将军亭](https://pic.rmb.bdstatic.com/bjh/91826c88f48b4f0688de90f542c582b7.jpeg)
|
||||
![沙漠刷怪塔储存系统](https://pic.rmb.bdstatic.com/bjh/240f8ec8c6475fbdf211ff1c8f65324a.jpeg)
|
|
@ -0,0 +1,215 @@
|
|||
---
|
||||
title: Ubuntu 安装 aria2 并配置
|
||||
date: 2021-02-27 21:49:11
|
||||
cover: https://pic.rmb.bdstatic.com/bjh/292af82583715d0ded5a48f96944391e.png
|
||||
tags:
|
||||
- Ubuntu
|
||||
- aria2
|
||||
- 下载
|
||||
categories:
|
||||
- 写BUG日常
|
||||
- 教程
|
||||
---
|
||||
Ubuntu 安装了 [Motrix](https://motrix.app),好用是真好用,但是缺点就是我电脑太卡,启动它老费劲了。所以在这里把安装 aria2 的过程分享出来供大家参考
|
||||
<!--more-->
|
||||
{% raw %}<article class="message is-success"><div class="message-body">{% endraw %}
|
||||
本文章需要你有执行 sudo 的权限
|
||||
{% raw %}</div></article>{% endraw %}
|
||||
|
||||
## 安装
|
||||
|
||||
``` BASH BASH
|
||||
sudo apt-get install aria2
|
||||
```
|
||||
|
||||
## 配置
|
||||
|
||||
### 手动创建配置文件
|
||||
|
||||
``` BASH BASH
|
||||
sudo mkdir /etc/aria2 #新建文件夹
|
||||
sudo touch /etc/aria2/aria2.session #新建session文件
|
||||
sudo chmod 777 /etc/aria2/aria2.session #设置aria2.session可写
|
||||
sudo gedit /etc/aria2/aria2.conf #创建配置文件
|
||||
```
|
||||
|
||||
当然你也可以用一键命令行(
|
||||
|
||||
``` BASH BASH
|
||||
sudo mkdir /etc/aria2 && sudo touch /etc/aria2/aria2.session && sudo chmod 777 /etc/aria2/aria2.session && sudo gedit /etc/aria2/aria2.conf
|
||||
```
|
||||
|
||||
### 写入配置文件
|
||||
|
||||
如果一切正常的话,你应该已经打开了 Ubuntu 自带的 gedit。现在添加如下配置信息,当然你也可以自定义。
|
||||
|
||||
``` path /etc/aria2/aria2.conf >folded
|
||||
## 全局设置 ## ============================================================
|
||||
# 日志
|
||||
#log-level=warn
|
||||
#log=/PATH/.aria2/aria2.log
|
||||
|
||||
# 后台运行
|
||||
#daemon=true
|
||||
|
||||
# 下载位置, 默认: 当前启动位置(***)
|
||||
dir=/home/***/下载
|
||||
|
||||
# 从会话文件中读取下载任务(***)
|
||||
input-file=/etc/aria2/aria2.session
|
||||
|
||||
# 在Aria2退出时保存`错误/未完成`的下载任务到会话文件(***)
|
||||
save-session=/etc/aria2/aria2.session
|
||||
|
||||
# 定时保存会话, 0为退出时才保存, 需1.16.1以上版本, 默认:0
|
||||
save-session-interval=30
|
||||
|
||||
# 断点续传
|
||||
continue=true
|
||||
|
||||
# 启用磁盘缓存, 0为禁用缓存, 需1.16以上版本, 默认:16M
|
||||
#disk-cache=32M
|
||||
|
||||
# 文件预分配方式, 能有效降低磁盘碎片, 默认:prealloc
|
||||
# 预分配所需时间: none < falloc ? trunc < prealloc
|
||||
# falloc和trunc则需要文件系统和内核支持
|
||||
# NTFS建议使用falloc, EXT3/4建议trunc, MAC 下需要注释此项
|
||||
file-allocation=none
|
||||
# 客户端伪装
|
||||
user-agent=Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.93 Safari/537.36
|
||||
|
||||
# 禁用IPv6, 默认:false
|
||||
disable-ipv6=true
|
||||
|
||||
# 其他
|
||||
always-resume=true
|
||||
check-integrity=true
|
||||
|
||||
## 下载位置 ## ============================================================
|
||||
# 最大同时下载任务数, 运行时可修改, 默认:5
|
||||
max-concurrent-downloads=3
|
||||
|
||||
# 同一服务器连接数, 添加时可指定, 默认:1
|
||||
max-connection-per-server=16
|
||||
|
||||
# 最小文件分片大小, 添加时可指定, 取值范围1M -1024M, 默认:20M
|
||||
# 假定size=10M, 文件为20MiB 则使用两个来源下载; 文件为15MiB 则使用一个来源下载
|
||||
min-split-size=10M
|
||||
|
||||
# 单个任务最大线程数, 添加时可指定, 默认:5
|
||||
split=64
|
||||
|
||||
# 整体下载速度限制, 运行时可修改, 默认:0
|
||||
#max-overall-download-limit=0
|
||||
|
||||
# 单个任务下载速度限制, 默认:0
|
||||
#max-download-limit=0
|
||||
|
||||
# 整体上传速度限制, 运行时可修改, 默认:0
|
||||
#max-overall-upload-limit=0
|
||||
|
||||
# 单个任务上传速度限制, 默认:0
|
||||
#max-upload-limit=0
|
||||
|
||||
## RPC设置 ## ============================================================
|
||||
# 启用RPC, 默认:false
|
||||
enable-rpc=true
|
||||
|
||||
# 允许所有来源, 默认:false
|
||||
rpc-allow-origin-all=true
|
||||
|
||||
# 允许非外部访问, 默认:false
|
||||
rpc-listen-all=true
|
||||
|
||||
# 事件轮询方式, 取值:[epoll, kqueue, port, poll, select], 不同系统默认值不同
|
||||
#event-poll=select
|
||||
|
||||
# RPC监听端口, 端口被占用时可以修改, 默认:6800
|
||||
rpc-listen-port=6800
|
||||
|
||||
# 设置的RPC授权令牌, v1.18.4新增功能, 取代 --rpc-user 和 --rpc-passwd 选项
|
||||
#rpc-secret=<TOKEN>
|
||||
|
||||
# 是否启用 RPC 服务的 SSL/TLS 加密,
|
||||
# 启用加密后 RPC 服务需要使用 https 或者 wss 协议连接
|
||||
#rpc-secure=true
|
||||
|
||||
# 在 RPC 服务中启用 SSL/TLS 加密时的证书文件,
|
||||
# 使用 PEM 格式时,您必须通过 --rpc-private-key 指定私钥
|
||||
#rpc-certificate=/path/to/certificate.pem
|
||||
|
||||
# 在 RPC 服务中启用 SSL/TLS 加密时的私钥文件
|
||||
#rpc-private-key=/path/to/certificate.key
|
||||
|
||||
## BT/PT下载相关 ## ============================================================
|
||||
# 当下载的是一个种子(以.torrent结尾)时, 自动开始BT任务, 默认:true
|
||||
#follow-torrent=true
|
||||
|
||||
# BT监听端口, 当端口被屏蔽时使用, 默认:6881-6999
|
||||
listen-port=51413
|
||||
|
||||
# 单个种子最大连接数, 默认:55
|
||||
#bt-max-peers=55
|
||||
|
||||
# 打开DHT功能, PT需要禁用, 默认:true
|
||||
enable-dht=false
|
||||
|
||||
# 打开IPv6 DHT功能, PT需要禁用
|
||||
#enable-dht6=false
|
||||
|
||||
# DHT网络监听端口, 默认:6881-6999
|
||||
#dht-listen-port=6881-6999
|
||||
|
||||
dht-file-path=/opt/var/aria2/dht.dat
|
||||
dht-file-path6=/opt/var/aria2/dht6.dat
|
||||
|
||||
# 本地节点查找, PT需要禁用, 默认:false
|
||||
#bt-enable-lpd=false
|
||||
|
||||
# 种子交换, PT需要禁用, 默认:true
|
||||
enable-peer-exchange=false
|
||||
|
||||
# 每个种子限速, 对少种的PT很有用, 默认:50K
|
||||
#bt-request-peer-speed-limit=50K
|
||||
|
||||
# 设置 peer id 前缀
|
||||
peer-id-prefix=-TR2770-
|
||||
|
||||
# 当种子的分享率达到这个数时, 自动停止做种, 0为一直做种, 默认:1.0
|
||||
seed-ratio=0
|
||||
|
||||
# 强制保存会话, 即使任务已经完成, 默认:false
|
||||
# 较新的版本开启后会在任务完成后依然保留.aria2文件
|
||||
#force-save=false
|
||||
|
||||
# BT校验相关, 默认:true
|
||||
#bt-hash-check-seed=true
|
||||
|
||||
# 继续之前的BT任务时, 无需再次校验, 默认:false
|
||||
bt-seed-unverified=true
|
||||
|
||||
# 保存磁力链接元数据为种子文件(.torrent文件), 默认:false
|
||||
bt-save-metadata=true
|
||||
|
||||
bt-max-open-files=16
|
||||
|
||||
# Http/FTP 相关
|
||||
connect-timeout=120
|
||||
```
|
||||
## 启动
|
||||
|
||||
``` BASH BASH
|
||||
sudo aria2c --conf-path=/etc/aria2/aria2.conf
|
||||
```
|
||||
|
||||
若没有报错证明安装成功,就可以 Ctrl+C 停止,将其转为后台运行
|
||||
|
||||
``` BASH BASH
|
||||
sudo aria2c --conf-path=/etc/aria2/aria2.conf -D
|
||||
```
|
||||
|
||||
## RPC
|
||||
|
||||
命令行肯定是不够的,所以这时候我们需要使用 aria2 的 RPC。
|
||||
|
||||
你可以在这里下载 [AriaNg](https://github.com/mayswind/AriaNg/releases),推荐 All-in-one,可以直接提取出来放在桌面。不出意外的话,打开之后就可以自动对接到 aria2。
|
|
@ -0,0 +1,97 @@
|
|||
---
|
||||
title: Windows 系统软件合集
|
||||
date: 2020-06-05 17:36:23
|
||||
cover: https://pic.rmb.bdstatic.com/bjh/f1151f93c9b294b73288c0969909bb53.jpeg
|
||||
tags:
|
||||
- Windows
|
||||
categories:
|
||||
- 写BUG日常
|
||||
- 资源
|
||||
---
|
||||
有的时候安装完 Windows 系统,却不知道应该安装一些什么必装软件,在之后使用时还有可能现找,这很麻烦,所以我在这里就直接收录了一些我认为必要的 Windows 软件。
|
||||
<!--more-->
|
||||
{% raw %}<article class="message is-success"><div class="message-body">{% endraw %}
|
||||
本文章所有收录的软件均源自网络,与本站无关。部分绝版或官网速度慢的软件本站提供不与本站相关的第三方镜像站。
|
||||
{% raw %}</div></article>{% endraw %}
|
||||
|
||||
## 浏览器
|
||||
|
||||
|名称|下载|
|
||||
|:-:|:-:|
|
||||
|Chrome|[官网下载](https://www.google.cn/chrome/)|
|
||||
|Microsoft Edge|[官网下载](https://www.microsoft.com/zh-cn/edge)|
|
||||
|Firefox|[官网下载](http://www.firefox.com.cn/)|
|
||||
|百分浏览器|[官网下载](https://www.centbrowser.cn/)|
|
||||
|
||||
## 解压缩
|
||||
|
||||
|名称|下载|
|
||||
|:-:|:-:|
|
||||
|7-zip|[官网下载](https://www.7-zip.org/)|
|
||||
|Bandizip 6.29|[官网下载](https://www.bandisoft.com/bandizip/old/6/)|
|
||||
|WinRAR|[官网下载](https://www.rarlab.com/download.htm)|
|
||||
|
||||
## 安全
|
||||
|
||||
|名称|下载|
|
||||
|:-:|:-:|
|
||||
|火绒安全软件|[官网下载](https://www.huorong.cn/person5.html)|
|
||||
|ESET NOD32杀毒软件|[中国科学技术大学网络信息中心下载](http://ustcnet.ustc.edu.cn/2015/0323/c11158a120698/page.htm)|
|
||||
|
||||
## 输入法
|
||||
|
||||
|名称|下载|
|
||||
|:-:|:-:|
|
||||
|搜狗输入法|[官网下载](https://pinyin.sogou.com/)|
|
||||
|谷歌拼音|[腾讯软件中心下载](https://pc.qq.com/detail/3/detail_97003.html)|
|
||||
|迅飞输入法|[官网下载](https://srf.xunfei.cn/)|
|
||||
|必应Bing输入法|[腾讯软件中心下载](https://pc.qq.com/detail/10/detail_8010.html)|
|
||||
|
||||
## 聊天工具
|
||||
|
||||
|名称|下载|
|
||||
|:-:|:-:|
|
||||
|QQ|[官网下载](https://im.qq.com/pcqq/)|
|
||||
|微信|[官网下载](https://pc.weixin.qq.com/)|
|
||||
|TIM|[官网下载](https://office.qq.com/download.html)|
|
||||
|Discord|[官网下载](https://discord.com/download)|
|
||||
|TeamSpeak3|[官网下载](http://www.ts1.cn/download)|
|
||||
|
||||
## 下载工具
|
||||
|
||||
|名称|下载|
|
||||
|:-:|:-:|
|
||||
|NeatDownloadManager|[官网下载](http://neatdownloadmanager.com/file/NeatDM_setup.exe)|
|
||||
|Xdown|[官网下载](https://xdown.org/)|
|
||||
|Motrix|[官网下载](https://motrix.app/)|
|
||||
|
||||
## 媒体
|
||||
|
||||
|名称|下载|
|
||||
|:-:|:-:|
|
||||
|VLC|[官网下载](https://www.videolan.org/vlc/download-windows.html)|
|
||||
|PotPlayer|[官网下载](http://www.potplayercn.com/download/)|
|
||||
|Listen 1|[官网下载](http://listen1.github.io/listen1/)|
|
||||
|2345看图王|[绿化版下载](https://www.lanzous.com/i89x19a)|
|
||||
|
||||
## 虚拟机
|
||||
|
||||
|名称|下载|
|
||||
|:-:|:-:|
|
||||
|VMware Workstation|[官网下载](https://www.vmware.com/go/getworkstation-win)|
|
||||
|Virtualbox|[官网下载](https://www.virtualbox.org/wiki/Downloads) [清华大学开源软件镜像站下载](https://mirrors.tuna.tsinghua.edu.cn/virtualbox/virtualbox-Win-latest.exe) [北京外国语大学开源软件镜像站下载](https://mirrors.bfsu.edu.cn/virtualbox/virtualbox-Win-latest.exe)|
|
||||
|
||||
|
||||
## 办公
|
||||
|
||||
|名称|下载|
|
||||
|:-:|:-:|
|
||||
|Office Tool Plus|[官网下载](https://otp.landian.vip/zh-cn/download.html)|
|
||||
|WPS Office 2019|[官网下载](https://pc.wps.cn/)|
|
||||
|
||||
## 实用工具
|
||||
|
||||
|名称|下载|
|
||||
|:-:|:-:|
|
||||
|腾讯电脑管家桌面整理|[官网下载](https://guanjia.qq.com/product/zmzl/)|
|
||||
|Everything|[官网下载](https://www.voidtools.com/zh-cn/downloads/)|
|
|
@ -0,0 +1,56 @@
|
|||
---
|
||||
title: 关于
|
||||
cover: https://bing.biturl.top/?resolution=1920&format=image&index=0&mkt=zh-CN
|
||||
date: 2020-10-01 00:00:00
|
||||
---
|
||||
想了又想,决定还是把关于博客和关于我分开写
|
||||
|
||||
{% meting "1398631166" "netease" "song" %}
|
||||
|
||||
## 关于博客
|
||||
|
||||
这个小博客历经了很多次改版。原定的是一个基于 WordPress 的资源站或者镜像站。但很后来认清事实后还是老老实实写博客。选用 Gridea,但最终因为没有我喜欢的主题并且我不会构建重写的 Gridea,我最终选择了 Hexo + Icarus 进行写作并沿用至今。
|
||||
|
||||
2020年年末时由于种种原因,原先写博客的电脑坏了,虽然文件没有丢失,但是我没有给博客的源文件做备份,我也暂时碰不到它,于是在2021年初的寒假,我开始着手进行博客的重写恢复工作。这期间一开始使用一台 Samsung Galaxy S6,但又因为这个手机后来也坏了,我没备份,我就又用 Ubuntu To Go 和我爸爸原来的老电脑重新写博客。
|
||||
|
||||
目前博客有两个域名 https://nofated095.github.io 和 http://nofated.gitee.io 这两个站点分别架设在国际的 Github Pages 和国内的 Gitee Pages上。正在考虑将来购买一个域名并租用服务器进行域名跳转服务。
|
||||
|
||||
## 关于我
|
||||
|
||||
Hi, 我是 Nofated,很高兴可以在这里见到你!
|
||||
|
||||
### 名称
|
||||
|
||||
`Nofated` 是我的正式名称,当然有时你也可能看到诸如 `Nofated095` 等其他名称。目前不统一的的名称存在于我的百度和 MCBBS 账号。
|
||||
|
||||
### 学业
|
||||
|
||||
我居住在北京,正在准备中考,很快在2021年下半学期我就要参加生物和地理的中考,结束时候我就升入初三该开始没日没夜的学习了。所以可能我会在网络上消失一段时间。
|
||||
|
||||
### 游戏
|
||||
|
||||
最喜欢的游戏是 Minecraft,没有什么理由,最开始接触到它是大概小学三四年级的时候。目前热衷于生电领域,但是我还很弱,目前是两个服务器的成员(也许很快就不是了)。
|
||||
|
||||
### 编程
|
||||
|
||||
我接触的语言很少很少,目前正在学习 Python3。我最开始正式学习的语言是 HTML5,但我现在有时还需要看看菜鸟编程(。目前我还没有独自写过任何项目,也没有参与编写过任何项目,也许这还需要一段时间。
|
||||
|
||||
### 习惯
|
||||
|
||||
目前日常使用的操作系统是 Ubuntu To Go(Ubuntu 20.10),有时也会用 Windows 系的操作系统或者 macOS。手机是一台 Nokia 230,平时就拿来打电话和听音乐,闲的没事会看看番剧。
|
||||
|
||||
### 番剧
|
||||
|
||||
- 《魔物娘的同居生活》\
|
||||
- 《工作细胞》\
|
||||
- 《JOJO的奇妙冒险》/
|
||||
- 《四月是你的谎言》\
|
||||
- 《工作细胞 BLACK》/
|
||||
- 《工作细胞第二季》/
|
||||
|
||||
\:已刷完
|
||||
/:没刷完或正在刷
|
||||
|
||||
### 性格
|
||||
|
||||
不好说,也许是最近刚进入青春期的原因,人比较nt,也不太会安慰人。不喜欢被别人控制,想法比较中立。我的话经常不过脑子就说出来。
|
|
@ -0,0 +1,224 @@
|
|||
---
|
||||
title: 友情链接
|
||||
cover: https://bing.biturl.top/?resolution=1920&format=image&index=0&mkt=zh-CN
|
||||
date: 2020-10-01 00:00:00
|
||||
---
|
||||
欢迎来和我互换友链呐,从今天起我们就是朋友啦2333
|
||||
|
||||
当然想要互换也是有一定规则的哦
|
||||
|
||||
- 欢迎技术类博客交换,但我可是会对你的博客审查的哦,你的博客可不能含有和色情、暴力、政治敏感的元素哦。
|
||||
- 切忌,你的文章可以有转载,但是不能剽窃别人的文章哦。转载别忘了声明一下2333,虽然这个我不会查但是我觉得这是我们写博客的原则。如果你的博客原创内容较多我会优先考虑哦。
|
||||
|
||||
看完了?如果你确定要申请的话,就在评论留言提供你的站点名称、站点链接、站点描述、站点LOGO。
|
||||
排名不分先后,如果你要更新信息后请留言告知。
|
||||
当然你要保持你的博客更新哦。会酌情清理很久很久不更新的、不符合要求的友链,我就不再另行通知啦。
|
||||
|
||||
这是我的站点信息
|
||||
|
||||
|key|value|
|
||||
|:-:|:-:|
|
||||
|站点名称|Nofated's Blog|
|
||||
|站点链接|https://nofated095.github.io 或 http://nofated.gitee.io|
|
||||
|站点描述|I hope to be with you everyday.|
|
||||
|站点LOGO|https://pic.rmb.bdstatic.com/bjh/020a46e8318d66b55d73afe31805d653.jpeg|
|
||||
|
||||
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/mdui@1.0.0/dist/css/mdui.min.css">
|
||||
<script src="https://cdn.jsdelivr.net/npm/mdui@1.0.0/dist/js/mdui.min.js"></script>
|
||||
|
||||
<body class="mdui-loaded">
|
||||
<div class="mdui-container-fluid">
|
||||
<div class="mdui-row">
|
||||
<div class="mdui-col-xs-12 mdui-col-sm-6"><br>
|
||||
<a href="https://blog.xiaojin233.cn" target="_blank">
|
||||
<div class="mdui-card mdui-hoverable mdui-ripple">
|
||||
<div class="mdui-card-header">
|
||||
<img class="mdui-card-header-avatar" src="https://cdn.jsdelivr.net/gh/jinzhijie/jinzhijie.github.io@master/images/avatar.png">
|
||||
<div class="mdui-card-header-title">Xiao_Jin' Blog</div>
|
||||
<div class="mdui-card-header-subtitle">记录生活,分享有趣</div>
|
||||
</div>
|
||||
</div>
|
||||
</a>
|
||||
</div>
|
||||
<div class="mdui-col-xs-12 mdui-col-sm-6"><br>
|
||||
<a href="https://xiaohaoxh.cn/" target="_blank">
|
||||
<div class="mdui-card mdui-hoverable mdui-ripple">
|
||||
<div class="mdui-card-header">
|
||||
<img class="mdui-card-header-avatar" src="https://pic.rmb.bdstatic.com/bjh/ee44729dbb5e8dc1f8cc74ddee069824.jpeg">
|
||||
<div class="mdui-card-header-title">XiaohaoのBlog</div>
|
||||
<div class="mdui-card-header-subtitle">一个深圳初中生的原创生活书~</div>
|
||||
</div>
|
||||
</div>
|
||||
</a>
|
||||
</div>
|
||||
<div class="mdui-col-xs-12 mdui-col-sm-6"><br>
|
||||
<a href="https://blog.restent.win" target="_blank">
|
||||
<div class="mdui-card mdui-hoverable mdui-ripple">
|
||||
<div class="mdui-card-header">
|
||||
<img class="mdui-card-header-avatar" src="https://cdn.jsdelivr.net/gh/Restent/Restent/avatar.jpg">
|
||||
<div class="mdui-card-header-title">Restent Blog</div>
|
||||
<div class="mdui-card-header-subtitle">I need to learn to let myself go.</div>
|
||||
</div>
|
||||
</div>
|
||||
</a>
|
||||
</div>
|
||||
<div class="mdui-col-xs-12 mdui-col-sm-6"><br>
|
||||
<a href="https://www.mashirl.com/" target="_blank">
|
||||
<div class="mdui-card mdui-hoverable mdui-ripple">
|
||||
<div class="mdui-card-header">
|
||||
<img class="mdui-card-header-avatar" src="https://cdn.jsdelivr.net/gh/Mashirl/Images/avatar.jpg">
|
||||
<div class="mdui-card-header-title">Mashirl's Blog</div>
|
||||
<div class="mdui-card-header-subtitle">予 世界温柔以待 惟愿 时光静好</div>
|
||||
</div>
|
||||
</div>
|
||||
</a>
|
||||
</div>
|
||||
<div class="mdui-col-xs-12 mdui-col-sm-6"><br>
|
||||
<a href="https://blog.moeworld.tech/" target="_blank">
|
||||
<div class="mdui-card mdui-hoverable mdui-ripple">
|
||||
<div class="mdui-card-header">
|
||||
<img class="mdui-card-header-avatar" src="https://blog.moeworld.tech/wp-content/themes/kratos-pjax-master/static/images/photo.jpg">
|
||||
<div class="mdui-card-header-title">空域</div>
|
||||
<div class="mdui-card-header-subtitle">探索更大的世界</div>
|
||||
</div>
|
||||
</div>
|
||||
</a>
|
||||
</div>
|
||||
<div class="mdui-col-xs-12 mdui-col-sm-6"><br>
|
||||
<a href="https://ivampiresp.com/" target="_blank">
|
||||
<div class="mdui-card mdui-hoverable mdui-ripple">
|
||||
<div class="mdui-card-header">
|
||||
<img class="mdui-card-header-avatar" src="https://fdn.geekzu.org/avatar/9116fc3de8f9a46668beb1a6b7dbcbcd">
|
||||
<div class="mdui-card-header-title">iVampireSP的物语</div>
|
||||
<div class="mdui-card-header-subtitle">终究没有结束呐</div>
|
||||
</div>
|
||||
</div>
|
||||
</a>
|
||||
</div>
|
||||
<div class="mdui-col-xs-12 mdui-col-sm-6"><br>
|
||||
<a href="https://blog.charlieyu4994.cn/" target="_blank">
|
||||
<div class="mdui-card mdui-hoverable mdui-ripple">
|
||||
<div class="mdui-card-header">
|
||||
<img class="mdui-card-header-avatar" src="https://blog.charlieyu4994.cn/images/avatar.png">
|
||||
<div class="mdui-card-header-title">CharlieYu4994的博客</div>
|
||||
<div class="mdui-card-header-subtitle">就只是博客而已</div>
|
||||
</div>
|
||||
</div>
|
||||
</a>
|
||||
</div>
|
||||
<div class="mdui-col-xs-12 mdui-col-sm-6"><br>
|
||||
<a href="https://www.littleqiu.net/" target="_blank">
|
||||
<div class="mdui-card mdui-hoverable mdui-ripple">
|
||||
<div class="mdui-card-header">
|
||||
<img class="mdui-card-header-avatar" src="https://www.littleqiu.net/images/Avatar.png">
|
||||
<div class="mdui-card-header-title">DreamCity</div>
|
||||
<div class="mdui-card-header-subtitle">愿你有一天,能与你最重要的人重逢</div>
|
||||
</div>
|
||||
</div>
|
||||
</a>
|
||||
</div>
|
||||
<div class="mdui-col-xs-12 mdui-col-sm-6"><br>
|
||||
<a href="https://blog.bangbang93.com/" target="_blank">
|
||||
<div class="mdui-card mdui-hoverable mdui-ripple">
|
||||
<div class="mdui-card-header">
|
||||
<img class="mdui-card-header-avatar" src="https://tva3.sinaimg.cn/crop.0.0.200.200.200/56e0fc78jw1e8qgp5bmzyj2050050aa8.jpg">
|
||||
<div class="mdui-card-header-title">bangbang93.blog()</div>
|
||||
<div class="mdui-card-header-subtitle">bangbang93常驻据点</div>
|
||||
</div>
|
||||
</div>
|
||||
</a>
|
||||
</div>
|
||||
<div class="mdui-col-xs-12 mdui-col-sm-6"><br>
|
||||
<a href="https://diygod.me/" target="_blank">
|
||||
<div class="mdui-card mdui-hoverable mdui-ripple">
|
||||
<div class="mdui-card-header">
|
||||
<img class="mdui-card-header-avatar" src="https://cdn.jsdelivr.net/gh/DIYgod/diygod.me@gh-pages/images/DIYgod-avatar.webp">
|
||||
<div class="mdui-card-header-title">Hi, DIYGod</div>
|
||||
<div class="mdui-card-header-subtitle">写代码是热爱,写到世界充满爱</div>
|
||||
</div>
|
||||
</div>
|
||||
</a>
|
||||
</div>
|
||||
<div class="mdui-col-xs-12 mdui-col-sm-6"><br>
|
||||
<a href="https://blog.becomingcelia.com/" target="_blank">
|
||||
<div class="mdui-card mdui-hoverable mdui-ripple">
|
||||
<div class="mdui-card-header">
|
||||
<img class="mdui-card-header-avatar" src="https://blog.becomingcelia.com/zb_users/theme/suiranx_air/image/favicon.ico">
|
||||
<div class="mdui-card-header-title">Celia的博客</div>
|
||||
<div class="mdui-card-header-subtitle">读万卷书,行万里路</div>
|
||||
</div>
|
||||
</div>
|
||||
</a>
|
||||
</div>
|
||||
<div class="mdui-col-xs-12 mdui-col-sm-6"><br>
|
||||
<a href="https://shuiyunxc.gitee.io/" target="_blank">
|
||||
<div class="mdui-card mdui-hoverable mdui-ripple">
|
||||
<div class="mdui-card-header">
|
||||
<img class="mdui-card-header-avatar" src="https://shuiyunxc.gitee.io/images/avatar.png">
|
||||
<div class="mdui-card-header-title">独行秀才的老窝</div>
|
||||
<div class="mdui-card-header-subtitle">专注于黑苹果安装维护</div>
|
||||
</div>
|
||||
</div>
|
||||
</a>
|
||||
</div>
|
||||
<div class="mdui-col-xs-12 mdui-col-sm-6"><br>
|
||||
<a href="https://www.runningcheese.com/" target="_blank">
|
||||
<div class="mdui-card mdui-hoverable mdui-ripple">
|
||||
<div class="mdui-card-header">
|
||||
<img class="mdui-card-header-avatar" src="https://www.runningcheese.com/wp-content/uploads/2019/07/11/2019071115110119.png">
|
||||
<div class="mdui-card-header-title">奔跑中的奶酪</div>
|
||||
<div class="mdui-card-header-subtitle">有智,有趣,有爱</div>
|
||||
</div>
|
||||
</div>
|
||||
</a>
|
||||
</div>
|
||||
<div class="mdui-col-xs-12 mdui-col-sm-6"><br>
|
||||
<a href="https://www.52ecy.cn/" target="_blank">
|
||||
<div class="mdui-card mdui-hoverable mdui-ripple">
|
||||
<div class="mdui-card-header">
|
||||
<img class="mdui-card-header-avatar" src="https://tvax4.sinaimg.cn/crop.0.0.640.640.180/78350c19ly8fjzdg8pbsqj20hs0hsmyu.jpg">
|
||||
<div class="mdui-card-header-title">阿珏博客</div>
|
||||
<div class="mdui-card-header-subtitle">逐梦,逐二次元,就如同你所看到的一样</div>
|
||||
</div>
|
||||
</div>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
|
||||
该页面采用了 `Material Design` 的设计,下面是示例
|
||||
|
||||
``` HTML MDUI>folded
|
||||
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/mdui@1.0.0/dist/css/mdui.min.css"> // 加载主题文件
|
||||
<script src="https://cdn.jsdelivr.net/npm/mdui@1.0.0/dist/js/mdui.min.js"></script>
|
||||
|
||||
<body class="mdui-loaded">
|
||||
<div class="mdui-container-fluid">
|
||||
<div class="mdui-row">
|
||||
<div class="mdui-col-xs-12 mdui-col-sm-6"><br>
|
||||
<a href="https://example.com" target="_blank">
|
||||
<div class="mdui-card mdui-hoverable mdui-ripple">
|
||||
<div class="mdui-card-header">
|
||||
<img class="mdui-card-header-avatar" src="https://example.com/images/avatar.png">
|
||||
<div class="mdui-card-header-title">YourNamehere</div>
|
||||
<div class="mdui-card-header-subtitle">YourTexthere</div>
|
||||
</div>
|
||||
</div>
|
||||
</a>
|
||||
</div>
|
||||
<div class="mdui-col-xs-12 mdui-col-sm-6"><br>
|
||||
<a href="https://example1.com" target="_blank">
|
||||
<div class="mdui-card mdui-hoverable mdui-ripple">
|
||||
<div class="mdui-card-header">
|
||||
<img class="mdui-card-header-avatar" src="https://example1.com/images/avatar.png">
|
||||
<div class="mdui-card-header-title">YourNamehere</div>
|
||||
<div class="mdui-card-header-subtitle">YourTexthere</div>
|
||||
</div>
|
||||
</div>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
```
|
|
@ -0,0 +1,17 @@
|
|||
---
|
||||
title: 媒体
|
||||
cover: https://bing.biturl.top/?resolution=1920&format=image&index=0&mkt=zh-CN
|
||||
date: 2020-10-01 00:00:00
|
||||
---
|
||||
|
||||
## 我喜欢的音乐
|
||||
|
||||
{% meting "5299711328" "netease" "playlist" %}
|
||||
|
||||
## 随便收藏的歌
|
||||
|
||||
{% meting "2893951019" "netease" "playlist" %}
|
||||
|
||||
## 来玩游戏啊awa
|
||||
|
||||
{% meting "3051358227" "netease" "playlist" %}
|
|
@ -0,0 +1 @@
|
|||
node_modules/
|
|
@ -0,0 +1,68 @@
|
|||
{
|
||||
"extends": [
|
||||
"hexo",
|
||||
"plugin:react/recommended",
|
||||
"plugin:json/recommended"
|
||||
],
|
||||
"settings": {
|
||||
"node": {
|
||||
"tryExtensions": [
|
||||
".js",
|
||||
".jsx",
|
||||
".json"
|
||||
]
|
||||
},
|
||||
"react": {
|
||||
"version": "16.0"
|
||||
}
|
||||
},
|
||||
"parserOptions": {
|
||||
"ecmaFeatures": {
|
||||
"jsx": true
|
||||
},
|
||||
"sourceType": "module"
|
||||
},
|
||||
"plugins": [
|
||||
"react"
|
||||
],
|
||||
"rules": {
|
||||
"react/jsx-uses-vars": "error",
|
||||
"indent": [
|
||||
"error",
|
||||
4,
|
||||
{
|
||||
"SwitchCase": 1
|
||||
}
|
||||
],
|
||||
"react/no-unknown-property": [
|
||||
"error",
|
||||
{
|
||||
"ignore": [
|
||||
"class",
|
||||
"onclick",
|
||||
"onload",
|
||||
"onsubmit",
|
||||
"crossorigin"
|
||||
]
|
||||
}
|
||||
],
|
||||
"react/react-in-jsx-scope": [
|
||||
"off"
|
||||
],
|
||||
"react/prop-types": [
|
||||
"off"
|
||||
],
|
||||
"react/display-name": [
|
||||
"off"
|
||||
],
|
||||
"react/jsx-key": [
|
||||
"off"
|
||||
],
|
||||
"react/jsx-no-target-blank": [
|
||||
"error",
|
||||
{
|
||||
"allowReferrer": true
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
|
@ -0,0 +1,39 @@
|
|||
---
|
||||
name: Bug反馈
|
||||
about: 请按照模板填写Bug反馈,否则你的Issue可能会被直接关闭。
|
||||
title: [Bug] 问题概述
|
||||
labels: ''
|
||||
assignees: ''
|
||||
|
||||
---
|
||||
|
||||
> 确保你在提交Bug反馈之前仔细阅读了[Hexo文档](https://hexo.io/zh-cn/),[Icarus用户指南](https://ppoffice.github.io/hexo-theme-icarus/tags/Icarus%E7%94%A8%E6%88%B7%E6%8C%87%E5%8D%97/),和[GitHub issues](https://github.com/ppoffice/hexo-theme-icarus/issues)来了解你的问题是否已经被他人提出过。
|
||||
|
||||
**Bug描述**
|
||||
简洁清晰地描述你遇到的Bug是什么。
|
||||
|
||||
**系统与环境**
|
||||
列出你的Hexo和Icarus的版本和配置。
|
||||
|
||||
- Hexo,操作系统,和Node.js的版本(使用`hexo version`命令来查看)
|
||||
- 站点配置文件`_config.yml`
|
||||
- 主题配置文件`_config.icarus.yml`或`themes/icarus/_config.yml`
|
||||
- 其他额外的配置文件(文章front-matter,`_config.post.yml`,或`_config.page.yml`)
|
||||
- 浏览器版本(如Firefox 70.0,Chrome Android 80.0)
|
||||
|
||||
**复现方式**
|
||||
列出复现这个Bug的步骤,如:
|
||||
|
||||
1. 访问‘...’
|
||||
2. 点击’...‘
|
||||
3. 下拉到‘...’
|
||||
4. 出现‘...’的错误
|
||||
|
||||
**期望行为**
|
||||
简洁清晰地描述没有这个情况下你期望得到的结果。
|
||||
|
||||
**截图**
|
||||
如果可以的话,请附上几张截图来帮助说明你遇到的问题。
|
||||
|
||||
**额外上下文**
|
||||
附上与问题有关的其他上下文信息。
|
|
@ -0,0 +1,39 @@
|
|||
---
|
||||
name: Bug Report
|
||||
about: Please follow this template if you are reporting a bug, or your issue may be closed without further notice.
|
||||
title: [Bug] Bug summary
|
||||
labels: ''
|
||||
assignees: ''
|
||||
|
||||
---
|
||||
|
||||
> Make sure you go through the [Hexo docs](https://hexo.io), [Icarus user manual](https://ppoffice.github.io/hexo-theme-icarus/tags/Icarus-User-Guide/), and [GitHub issues](https://github.com/ppoffice/hexo-theme-icarus/issues) to see if the bug you are reporting has been already addressed by others.
|
||||
|
||||
**Describe the bug**
|
||||
A clear and concise description of what the bug is.
|
||||
|
||||
**System and Environment**
|
||||
The version and configuration of Hexo and Icarus.
|
||||
|
||||
- Hexo, OS, and node version (use `hexo version` command to view these information)
|
||||
- Site configuration file `_config.yml`
|
||||
- Theme configuration file `_config.icarus.yml` or `themes/icarus/_config.yml`
|
||||
- Any additional theme configuration files (post front-matter, `_config.post.yml`, or `_config.page.yml`)
|
||||
- Browser and version (e.g., Firefox 70.0, Chrome Android 80.0)
|
||||
|
||||
**To Reproduce**
|
||||
Steps to reproduce the behavior, such as:
|
||||
|
||||
1. Go to '...'
|
||||
2. Click on '...'
|
||||
3. Scroll down to '...'
|
||||
4. '...' error appears
|
||||
|
||||
**Expected behavior**
|
||||
A clear and concise description of what you expected to happen.
|
||||
|
||||
**Screenshots**
|
||||
If applicable, add screenshots to help explain your problem.
|
||||
|
||||
**Additional context**
|
||||
Add any other context about the problem here.
|
|
@ -0,0 +1,20 @@
|
|||
blank_issues_enabled: false
|
||||
contact_links:
|
||||
- name: Gitter
|
||||
url: https://gitter.im/hexo-theme-icarus/community
|
||||
about: Redirect your Icarus usage questions to Gitter.
|
||||
- name: Gitter
|
||||
url: https://gitter.im/hexo-theme-icarus/community
|
||||
about: 与Icarus使用相关的问题请转至这里。
|
||||
- name: Bug Report
|
||||
url: https://github.com/ppoffice/hexo-theme-icarus/issues/new?template=bug_report.md
|
||||
about: Please follow this template if you are reporting a bug, or your issue may be closed without further notice.
|
||||
- name: Bug反馈
|
||||
url: https://github.com/ppoffice/hexo-theme-icarus/issues/new?template=Bug反馈.md
|
||||
about: 请按照模板填写Bug反馈,否则你的Issue可能会被直接关闭。
|
||||
- name: Feature Request
|
||||
url: https://github.com/ppoffice/hexo-theme-icarus/issues/new?template=feature_request.md
|
||||
about: Please follow this template if you are requesting a new feature, or your issue may be closed without further notice.
|
||||
- name: 功能建议
|
||||
url: https://github.com/ppoffice/hexo-theme-icarus/issues/new?template=功能建议.md
|
||||
about: 请按照模板填写功能建议,否则你的Issue可能会被直接关闭。
|
|
@ -0,0 +1,26 @@
|
|||
---
|
||||
name: Feature Request
|
||||
about: Please follow this template if you are requesting a new feature, or your issue may be closed without further notice.
|
||||
title: [FEAT] Feature request summary
|
||||
labels: ''
|
||||
assignees: ''
|
||||
|
||||
---
|
||||
|
||||
> Make sure you go through the [Hexo docs](https://hexo.io), [Icarus user manual](https://ppoffice.github.io/hexo-theme-icarus/tags/Icarus-User-Guide/), and [GitHub issues](https://github.com/ppoffice/hexo-theme-icarus/issues) to see if the feature you are requesting has been already addressed by others.
|
||||
|
||||
**Is your feature request related to a problem? Please describe.**
|
||||
|
||||
A clear and concise description of what the problem is (e.g., I'm always frustrated when [...]).
|
||||
|
||||
**Describe the solution you'd like**
|
||||
|
||||
A clear and concise description of what you want to happen.
|
||||
|
||||
**Describe alternatives you've considered**
|
||||
|
||||
A clear and concise description of any alternative solutions or features you've considered.
|
||||
|
||||
**Additional context**
|
||||
|
||||
Add any other context or screenshots about the feature request here.
|
|
@ -0,0 +1,26 @@
|
|||
---
|
||||
name: 功能建议
|
||||
about: 请按照模板填写功能建议,否则你的Issue可能会被直接关闭。
|
||||
title: [FEAT] 功能建议概述
|
||||
labels: ''
|
||||
assignees: ''
|
||||
|
||||
---
|
||||
|
||||
> 确保你在提交功能建议之前仔细阅读了[Hexo文档](https://hexo.io/zh-cn/),[Icarus用户指南](https://ppoffice.github.io/hexo-theme-icarus/tags/Icarus%E7%94%A8%E6%88%B7%E6%8C%87%E5%8D%97/),和[GitHub issues](https://github.com/ppoffice/hexo-theme-icarus/issues)来了解你的建议是否已经被他人提出过。
|
||||
|
||||
**你的功能建议与某个使用问题相关么?请详述。**
|
||||
|
||||
简洁清晰地描述你遇到的问题是什么(如:我在使用...的时候遇到了...)。
|
||||
|
||||
**描述你想要的解决方案**
|
||||
|
||||
简洁清晰地描述你想要的解决方案可以达到的效果。
|
||||
|
||||
**描述你考虑过的替代办法**
|
||||
|
||||
简洁清晰地描述你考虑过的替代解决方案或是新功能。
|
||||
|
||||
**额外上下文**
|
||||
|
||||
附上与功能请求有关的其他上下文信息或者截图。
|
|
@ -0,0 +1,30 @@
|
|||
---
|
||||
name: Pull Request
|
||||
about: Suggest a code change to this project.
|
||||
title: ''
|
||||
labels: ''
|
||||
assignees: ''
|
||||
|
||||
---
|
||||
|
||||
**Note 0**
|
||||
Please review [the contributing guide](https://github.com/ppoffice/hexo-theme-icarus/blob/master/CONTRIBUTING.md) before making this pull request.
|
||||
|
||||
**Note 1**
|
||||
|
||||
Please break up your pull request into multiple smaller requests if it contains multiple bug fixes
|
||||
or new features.
|
||||
Each pull request should have one bug fix or new feature only for better code maintainability.
|
||||
|
||||
**Note 2**
|
||||
|
||||
Many components of this theme, including core functions, some Hexo extensions, widgets and plugins,
|
||||
have been moved to [ppoffice/hexo-component-inferno](https://github.com/ppoffice/hexo-component-inferno).
|
||||
Please make a pull request to that repository instead of this one if your changes are related to
|
||||
the above components.
|
||||
|
||||
**Detailed description**
|
||||
|
||||
> Please use the [Icarus issue template](https://github.com/ppoffice/hexo-theme-icarus/blob/master/.github/ISSUE_TEMPLATE/bug_report.md) if it is a bug fix.
|
||||
|
||||
> Please use the [Icarus feature request template](https://github.com/ppoffice/hexo-theme-icarus/blob/master/.github/ISSUE_TEMPLATE/feature_request.md) if it is a bug fix.
|
|
@ -0,0 +1,6 @@
|
|||
version: 2
|
||||
updates:
|
||||
- package-ecosystem: 'npm'
|
||||
directory: '/'
|
||||
schedule:
|
||||
interval: 'daily'
|
|
@ -0,0 +1,32 @@
|
|||
# Number of days of inactivity before an issue becomes stale
|
||||
daysUntilStale: 14
|
||||
# Number of days of inactivity before a stale issue is closed
|
||||
daysUntilClose: 7
|
||||
# Issues with these labels will never be considered stale
|
||||
exemptLabels:
|
||||
- bug:core
|
||||
- bug:extension
|
||||
- bug:general
|
||||
- feature:core
|
||||
- feature:extension
|
||||
- feature:general
|
||||
- tutorial:v1
|
||||
- tutorial:v2
|
||||
- tutorial:v3
|
||||
- tutorial:v4
|
||||
- tutorial:v5
|
||||
- tutorial:v6
|
||||
- tutorial:v7
|
||||
- tutorial:v8
|
||||
- tutorial:v9
|
||||
- Gitalk
|
||||
- utterances
|
||||
# Label to use when marking an issue as stale
|
||||
staleLabel: wontfix
|
||||
# Comment to post when marking an issue as stale. Set to `false` to disable
|
||||
markComment: >
|
||||
This issue has been automatically marked as stale because it has not had
|
||||
recent activity. It will be closed if no further activity occurs. Thank you
|
||||
for your contributions.
|
||||
# Comment to post when closing a stale issue. Set to `false` to disable
|
||||
closeComment: false
|
|
@ -0,0 +1,20 @@
|
|||
name: GitHub Release
|
||||
|
||||
on:
|
||||
push:
|
||||
tags:
|
||||
- "*"
|
||||
|
||||
jobs:
|
||||
publish:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- uses: actions/create-release@v1
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
with:
|
||||
tag_name: ${{ github.ref }}
|
||||
release_name: ${{ github.ref }}
|
||||
draft: true
|
||||
prerelease: false
|
|
@ -0,0 +1,15 @@
|
|||
name: Code Linting
|
||||
|
||||
on: [push, pull_request]
|
||||
|
||||
jobs:
|
||||
lint:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- uses: actions/setup-node@v1
|
||||
- run: npm install
|
||||
- run: >
|
||||
npm install $(node -e "const deps=require('./package.json').peerDependencies;
|
||||
console.log(Object.keys(deps).map(key=>key+'@'+deps[key]).join(' '));")
|
||||
- run: npm run lint
|
|
@ -0,0 +1,18 @@
|
|||
name: Node.js Package
|
||||
|
||||
on:
|
||||
release:
|
||||
types: [published]
|
||||
|
||||
jobs:
|
||||
publish:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- uses: actions/setup-node@v1
|
||||
with:
|
||||
node-version: 12
|
||||
registry-url: https://registry.npmjs.org/
|
||||
- run: npm publish
|
||||
env:
|
||||
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
|
|
@ -0,0 +1,39 @@
|
|||
name: Test
|
||||
|
||||
on: [push, pull_request]
|
||||
|
||||
jobs:
|
||||
test:
|
||||
runs-on: ubuntu-latest
|
||||
strategy:
|
||||
matrix:
|
||||
node-version: [12, 14]
|
||||
fail-fast: false
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
with:
|
||||
repository: hexojs/hexo-starter
|
||||
- uses: actions/checkout@v2
|
||||
with:
|
||||
path: themes/icarus
|
||||
- uses: actions/checkout@v2
|
||||
with:
|
||||
repository: SukkaLab/hexo-many-posts
|
||||
path: source/_posts/hexo-many-posts
|
||||
- uses: actions/setup-node@v1
|
||||
with:
|
||||
node-version: ${{ matrix.node-version }}
|
||||
- uses: actions/cache@v1
|
||||
with:
|
||||
path: node_modules
|
||||
key: npm-cache
|
||||
restore-keys: npm-cache
|
||||
- run: npm install
|
||||
- run: >
|
||||
npm install $(node -e "const deps=require('./themes/icarus/package.json').dependencies;
|
||||
console.log(Object.keys(deps).map(key=>key+'@'+deps[key]).join(' '));")
|
||||
- run: >
|
||||
npm install $(node -e "const deps=require('./themes/icarus/package.json').peerDependencies;
|
||||
console.log(Object.keys(deps).map(key=>key+'@'+deps[key]).join(' '));")
|
||||
- run: npx hexo config theme icarus
|
||||
- run: time NODE_ENV=production npx hexo g -b
|
|
@ -0,0 +1,116 @@
|
|||
# Logs
|
||||
logs
|
||||
*.log
|
||||
npm-debug.log*
|
||||
yarn-debug.log*
|
||||
yarn-error.log*
|
||||
lerna-debug.log*
|
||||
|
||||
# Diagnostic reports (https://nodejs.org/api/report.html)
|
||||
report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json
|
||||
|
||||
# Runtime data
|
||||
pids
|
||||
*.pid
|
||||
*.seed
|
||||
*.pid.lock
|
||||
|
||||
# Directory for instrumented libs generated by jscoverage/JSCover
|
||||
lib-cov
|
||||
|
||||
# Coverage directory used by tools like istanbul
|
||||
coverage
|
||||
*.lcov
|
||||
|
||||
# nyc test coverage
|
||||
.nyc_output
|
||||
|
||||
# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files)
|
||||
.grunt
|
||||
|
||||
# Bower dependency directory (https://bower.io/)
|
||||
bower_components
|
||||
|
||||
# node-waf configuration
|
||||
.lock-wscript
|
||||
|
||||
# Compiled binary addons (https://nodejs.org/api/addons.html)
|
||||
build/Release
|
||||
|
||||
# Dependency directories
|
||||
node_modules/
|
||||
jspm_packages/
|
||||
|
||||
# TypeScript v1 declaration files
|
||||
typings/
|
||||
|
||||
# TypeScript cache
|
||||
*.tsbuildinfo
|
||||
|
||||
# Optional npm cache directory
|
||||
.npm
|
||||
|
||||
# Optional eslint cache
|
||||
.eslintcache
|
||||
|
||||
# Microbundle cache
|
||||
.rpt2_cache/
|
||||
.rts2_cache_cjs/
|
||||
.rts2_cache_es/
|
||||
.rts2_cache_umd/
|
||||
|
||||
# Optional REPL history
|
||||
.node_repl_history
|
||||
|
||||
# Output of 'npm pack'
|
||||
*.tgz
|
||||
|
||||
# Yarn Integrity file
|
||||
.yarn-integrity
|
||||
|
||||
# dotenv environment variables file
|
||||
.env
|
||||
.env.test
|
||||
|
||||
# parcel-bundler cache (https://parceljs.org/)
|
||||
.cache
|
||||
|
||||
# Next.js build output
|
||||
.next
|
||||
|
||||
# Nuxt.js build / generate output
|
||||
.nuxt
|
||||
dist
|
||||
|
||||
# Gatsby files
|
||||
.cache/
|
||||
# Comment in the public line in if your project uses Gatsby and not Next.js
|
||||
# https://nextjs.org/blog/next-9-1#public-directory-support
|
||||
# public
|
||||
|
||||
# vuepress build output
|
||||
.vuepress/dist
|
||||
|
||||
# Serverless directories
|
||||
.serverless/
|
||||
|
||||
# FuseBox cache
|
||||
.fusebox/
|
||||
|
||||
# DynamoDB Local files
|
||||
.dynamodb/
|
||||
|
||||
# TernJS port file
|
||||
.tern-port
|
||||
|
||||
# Stores VSCode versions used for testing VSCode extensions
|
||||
.vscode-test
|
||||
|
||||
_config*.yml*
|
||||
yarn.lock
|
||||
|
||||
# Intellij Idea config file
|
||||
.idea
|
||||
*.ipr
|
||||
*.iws
|
||||
*.iml
|
|
@ -0,0 +1,5 @@
|
|||
.github/
|
||||
.eslintignore
|
||||
.eslintrc.json
|
||||
.travis.yml
|
||||
yarn.lock
|
|
@ -0,0 +1,40 @@
|
|||
# Contributing Guidelines
|
||||
|
||||
## Code styles
|
||||
|
||||
Please refer to the [.eslintrc.json](https://github.com/ppoffice/hexo-theme-icarus/blob/master/.eslintrc.json).
|
||||
You can also use `npm run lint` or `yarn lint` to fix code style issues.
|
||||
|
||||
## Project versioning
|
||||
|
||||
We use [SemVer](http://semver.org/) for versioning.
|
||||
Any changes to the code base should not be released using an existing version.
|
||||
|
||||
## Commit message format
|
||||
|
||||
The commit message should follow the [Bluejava commit message format](https://github.com/bluejava/git-commit-guide).
|
||||
The supported scopes are:
|
||||
|
||||
- **core** for changes related to Hexo extensions and theme-specific functions
|
||||
- **comment** for comment plugin layout, schema, style, or script changes
|
||||
- **share** for share plugin layout, schema, style, or script changes
|
||||
- **donate** for donation plugin layout, schema, style, or script changes
|
||||
- **search** for search plugin layout, schema, style, or script changes
|
||||
- **widget** for widget layout, schema, style, or script changes
|
||||
- **plugin** for other plugin layout, schema, style, or script changes
|
||||
- **i18n** for adding or updating translations
|
||||
- **test** for testing or linting-related commits
|
||||
- **build** for build scripts, CI, other development or deployment related commits
|
||||
- use __\*__ or leave empty to refer to commits that do not have a clear scope
|
||||
|
||||
## Submit changes
|
||||
|
||||
1. Fork this repository, make changes to it, and run it against some actual Hexo sites to see if
|
||||
anything is broken.
|
||||
You should also run `npm run lint` or `yarn lint` to find and fix any code formatting issue.
|
||||
2. Submit a pull request to our repository. Please make sure you followed the instructions
|
||||
above.
|
||||
3. We will review the pull request regularly and inform you of our questions and any changes
|
||||
that need to be made before we can merge your pull request.
|
||||
4. We expect your response within two weeks, after which your pull request may be closed if
|
||||
no activity is shown.
|
|
@ -0,0 +1,21 @@
|
|||
The MIT License (MIT)
|
||||
|
||||
Copyright (c) 2020 PPOffice
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
|
@ -0,0 +1,158 @@
|
|||
<p align="center" class="mb-2">
|
||||
<img class="not-gallery-item" height="48" src="https://ppoffice.github.io/hexo-theme-icarus/img/logo.svg">
|
||||
<br> A simple, delicate, and modern theme for the static site generator Hexo.
|
||||
<br>
|
||||
<a href="https://ppoffice.github.io/hexo-theme-icarus/">Preview</a> |
|
||||
<a href="https://ppoffice.github.io/hexo-theme-icarus/categories/">Documentation</a> |
|
||||
<a href="https://gitter.im/hexo-theme-icarus/community?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge">Chat on Gitter</a>
|
||||
<br>
|
||||
</p>
|
||||
|
||||
![](https://ppoffice.github.io/hexo-theme-icarus/gallery/preview.png?1 "Icarus Preview")
|
||||
|
||||
## :cd: Installation
|
||||
|
||||
```shell
|
||||
$ npm install hexo-theme-icarus
|
||||
$ hexo config theme icarus
|
||||
```
|
||||
|
||||
Please refer to [Getting Started with Icarus](https://ppoffice.github.io/hexo-theme-icarus/uncategorized/getting-started-with-icarus/)
|
||||
for more details.
|
||||
|
||||
## :gift: Features
|
||||
|
||||
### Cyberpunk Theme Variant
|
||||
|
||||
Tap into the future cyber world with the newly added Cyberpunk theme variant.
|
||||
Inspired by [Cyberpunk 2077](https://www.cyberpunk.net).
|
||||
|
||||
![Icarus Cyberpunk](https://ppoffice.github.io/hexo-theme-icarus/gallery/screenshots/cyberpunk.png "Icarus Cyberpunk")
|
||||
|
||||
### Extensive Plugin Support
|
||||
|
||||
Icarus includes plentiful search, comment, sharing and other plugins out of the box that makes your
|
||||
blog feature-rich and powerful.
|
||||
|
||||
**[Comment](https://ppoffice.github.io/hexo-theme-icarus/categories/Plugins/Comment/)**
|
||||
|
||||
Changyan · Disqus · DisqusJS · Facebook · Gitalk · Gitment ·
|
||||
Isso · LiveRe · Utterance · Valine
|
||||
|
||||
**[Donate Button](https://ppoffice.github.io/hexo-theme-icarus/categories/Plugins/Donation/)**
|
||||
|
||||
Afdian.net · Alipay · Buy me a coffee · Patreon · Paypal · Wecat
|
||||
|
||||
**[Search](https://ppoffice.github.io/hexo-theme-icarus/categories/Plugins/Search/)**
|
||||
|
||||
Algolia · Baidu · Google CSE · Insight
|
||||
|
||||
**[Share](https://ppoffice.github.io/hexo-theme-icarus/categories/Plugins/Share/)**
|
||||
|
||||
AddThis · AddToAny · Baidu Share · Share.js · ShareThis
|
||||
|
||||
**[Widgets](https://ppoffice.github.io/hexo-theme-icarus/categories/Widgets/)**
|
||||
|
||||
Google Adsense · Archives · Categories · External Site Links ·
|
||||
Recent Posts · Google Feedburner · Tags · Table of Contents
|
||||
|
||||
**[Analytics](https://ppoffice.github.io/hexo-theme-icarus/Plugins/Analytics/icarus-user-guide-web-analytics-plugins/)**
|
||||
|
||||
Baidu Statistics · Bing Webmaster · BuSuanZi Web Counter · CNZZ Statistics ·
|
||||
Google Analytics · Hotjar · StatCounter · Twitter Conversion Tracking
|
||||
|
||||
**[Other Plugins](https://ppoffice.github.io/hexo-theme-icarus/categories/Plugins/)**
|
||||
|
||||
Cookie Consent · LightGallery · Justified Gallery · KaTeX · MathJax ·
|
||||
Oudated Browser · Page Loading Animations
|
||||
|
||||
### Colorful Code Highlight
|
||||
|
||||
Icarus directly import stylesheets from the [highlight.js](https://highlightjs.org/) package and makes more than
|
||||
90 code highlight themes available to you.
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<th>Atom One Light</th>
|
||||
<th>Monokai</th>
|
||||
<th>Kimbie Dark</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><img width="266" src="https://ppoffice.github.io/hexo-theme-icarus/gallery/code-highlight/atom-one-light.png?2"></td>
|
||||
<td><img width="266" src="https://ppoffice.github.io/hexo-theme-icarus/gallery/code-highlight/monokai.png?2"></td>
|
||||
<td><img width="266" src="https://ppoffice.github.io/hexo-theme-icarus/gallery/code-highlight/kimbie-dark.png?2"></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
### Flexible Theme Configuration
|
||||
|
||||
Icarus allows you to configure your site on a per-page or per-layout basis.
|
||||
|
||||
<div>
|
||||
<table>
|
||||
<tr>
|
||||
<th>_config.yml</th>
|
||||
<th>post.md</th>
|
||||
<th>_config.page.yml</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<pre>widgets:
|
||||
- type: profile
|
||||
position: left
|
||||
- type: recent_posts
|
||||
position: right</pre>
|
||||
</td>
|
||||
<td>
|
||||
<pre>widgets:
|
||||
- type: profile
|
||||
position: left
|
||||
- type: recent_posts
|
||||
position: left</pre>
|
||||
</td>
|
||||
<td>
|
||||
<pre>widgets: null
|
||||
|
||||
|
||||
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><img width="266" src="https://ppoffice.github.io/hexo-theme-icarus/gallery/screenshots/default-config.png"></td>
|
||||
<td><img width="266" src="https://ppoffice.github.io/hexo-theme-icarus/gallery/screenshots/post-config.png"></td>
|
||||
<td><img width="266" src="https://ppoffice.github.io/hexo-theme-icarus/gallery/screenshots/layout-config.png"></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
### Responsive Layout
|
||||
|
||||
Give your audiences best viewing experience with Icarus's mobile-friendly responsive layout.
|
||||
|
||||
![Responsive Layout](https://ppoffice.github.io/hexo-theme-icarus/gallery/responsive.png)
|
||||
|
||||
## :hammer: Development
|
||||
|
||||
This project is built with
|
||||
|
||||
- [Hexo](https://hexo.io/)
|
||||
- [Inferno.js](https://infernojs.org/)
|
||||
- [Stylus](https://stylus-lang.com/)
|
||||
- [Bulma](https://bulma.io/)
|
||||
|
||||
Please refer to the [documentation](https://ppoffice.github.io/hexo-theme-icarus/categories/) and
|
||||
[contributing guide](https://github.com/ppoffice/hexo-theme-icarus/blob/master/CONTRIBUTING.md) for implementation details.
|
||||
|
||||
## :tada: Contribute
|
||||
|
||||
If you feel like to help us build a better Icarus, you can
|
||||
|
||||
:black_nib: [Submit a tutorial](https://github.com/ppoffice/hexo-theme-icarus/new/site/source/_posts) |
|
||||
:earth_asia: [Add a translation](https://github.com/ppoffice/hexo-theme-icarus/tree/master/languages) |
|
||||
:triangular_flag_on_post: [Report a bug](https://github.com/ppoffice/hexo-theme-icarus/issues/new) |
|
||||
:electric_plug: [Suggest a new feature](https://github.com/ppoffice/hexo-theme-icarus/pulls)
|
||||
|
||||
## :memo: License
|
||||
|
||||
This project is licensed under the MIT License - see the [LICENSE](https://github.com/ppoffice/hexo-theme-icarus/blob/master/LICENSE) file for details.
|
|
@ -0,0 +1,107 @@
|
|||
/* eslint no-process-exit: "off" */
|
||||
const fs = require('fs');
|
||||
const path = require('path');
|
||||
const util = require('util');
|
||||
const crypto = require('crypto');
|
||||
const logger = require('hexo-log')();
|
||||
const yaml = require('hexo-component-inferno/lib/util/yaml');
|
||||
const { Migrator } = require('hexo-component-inferno/lib/core/migrate');
|
||||
const { SchemaLoader } = require('hexo-component-inferno/lib/core/schema');
|
||||
const { yellow } = require('./util/console');
|
||||
|
||||
function loadThemeConfig(hexo, cfgPaths) {
|
||||
const configs = cfgPaths.map(cfgPath => fs.readFileSync(cfgPath))
|
||||
.map(cfgPath => yaml.parse(cfgPath));
|
||||
return Object.assign({}, ...configs, hexo.config.theme_config);
|
||||
}
|
||||
|
||||
function generateThemeConfigFile(schema, cfgPath) {
|
||||
const defaultValue = schema.getDefaultValue();
|
||||
fs.writeFileSync(cfgPath, defaultValue.toYaml());
|
||||
}
|
||||
|
||||
function hashConfigFile(cfgPath) {
|
||||
const content = fs.readFileSync(cfgPath);
|
||||
return crypto.createHash('md5').update(content).digest('hex');
|
||||
}
|
||||
|
||||
function checkConfig(hexo) {
|
||||
if (!process.argv.includes('--icarus-dont-check-config')) {
|
||||
logger.info('=== Checking theme configurations ===');
|
||||
|
||||
const siteCfgFile = path.join(hexo.base_dir, '_config.yml');
|
||||
const themeSiteCfg = path.join(hexo.base_dir, '_config.icarus.yml');
|
||||
const themeDirCfg = path.join(hexo.theme_dir, '_config.yml');
|
||||
const themeCfgPaths = [themeDirCfg, themeSiteCfg].filter(cfgPath => fs.existsSync(cfgPath));
|
||||
const themeSiteCfgExample = themeSiteCfg + '.example';
|
||||
|
||||
const schemaDir = path.join(hexo.theme_dir, 'include/schema/');
|
||||
const loader = SchemaLoader.load(require(path.join(schemaDir, 'config.json')), schemaDir);
|
||||
const schema = loader.getSchema('/config.json');
|
||||
|
||||
if (!process.argv.includes('--icarus-dont-generate-config')) {
|
||||
if (!themeCfgPaths.length) {
|
||||
logger.warn('None of the following configuration files is found:');
|
||||
logger.warn(`- ${yellow(themeSiteCfg)}`);
|
||||
logger.warn(`- ${yellow(themeDirCfg)}`);
|
||||
logger.info('Generating theme configuration file...');
|
||||
generateThemeConfigFile(schema, themeSiteCfg);
|
||||
themeCfgPaths.push(themeSiteCfg);
|
||||
logger.info(`${yellow(themeSiteCfg)} created successfully.`);
|
||||
logger.info('To skip configuration generation, use "--icarus-dont-generate-config".');
|
||||
}
|
||||
}
|
||||
|
||||
let cfg = loadThemeConfig(hexo, themeCfgPaths);
|
||||
|
||||
if (!process.argv.includes('--icarus-dont-upgrade-config')) {
|
||||
const migrator = new Migrator(require(path.join(hexo.theme_dir, 'include/migration/head')));
|
||||
if (cfg.version && migrator.isOudated(cfg.version)) {
|
||||
logger.warn(`Your theme configuration is outdated (${cfg.version} < ${migrator.getLatestVersion()}).`);
|
||||
logger.info('To skip the configuration upgrade, use "--icarus-dont-upgrade-config".');
|
||||
|
||||
logger.info('Backing up theme configuration files...');
|
||||
for (const cfgPath of themeCfgPaths) {
|
||||
const backupPath = cfgPath + '.' + hashConfigFile(cfgPath);
|
||||
const relCfgPath = path.relative(hexo.base_dir, cfgPath);
|
||||
const relBackupPath = path.relative(hexo.base_dir, backupPath);
|
||||
fs.renameSync(cfgPath, backupPath);
|
||||
logger.info(`${yellow(relCfgPath)} => ${yellow(relBackupPath)}`);
|
||||
}
|
||||
|
||||
logger.info('Upgrading theme configurations...');
|
||||
cfg = migrator.migrate(cfg);
|
||||
fs.writeFileSync(themeSiteCfg, yaml.stringify(cfg));
|
||||
logger.info(`Theme configurations are written to ${yellow(themeSiteCfg)}.`);
|
||||
|
||||
generateThemeConfigFile(schema, themeSiteCfgExample);
|
||||
logger.info(`Example configurations is at ${yellow(themeSiteCfgExample)}.`);
|
||||
}
|
||||
}
|
||||
|
||||
const validation = schema.validate(cfg);
|
||||
if (validation !== true) {
|
||||
logger.warn('Theme configurations failed one or more checks.');
|
||||
logger.warn('Icarus may still run, but you will encounter unexcepted results.');
|
||||
logger.warn('Here is some information for you to correct the configuration file.');
|
||||
logger.warn(util.inspect(validation));
|
||||
}
|
||||
|
||||
const rootCfg = yaml.parse(fs.readFileSync(siteCfgFile));
|
||||
if (rootCfg.theme_config) {
|
||||
logger.warn(`"theme_config" found in ${yellow(siteCfgFile)}.`);
|
||||
logger.warn(`Please remove theme configurations from ${yellow(siteCfgFile)}.`);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
module.exports = hexo => {
|
||||
try {
|
||||
checkConfig(hexo);
|
||||
} catch (e) {
|
||||
logger.error(e);
|
||||
logger.error('Theme configuration checking failed.');
|
||||
logger.info('You may use \'--icarus-dont-check-config\' to skip configuration checking.');
|
||||
process.exit(-1);
|
||||
}
|
||||
};
|
|
@ -0,0 +1,34 @@
|
|||
/* eslint no-process-exit: "off" */
|
||||
const semver = require('semver');
|
||||
const logger = require('hexo-log')();
|
||||
const packageInfo = require('../package.json');
|
||||
const { yellow, red, green } = require('./util/console');
|
||||
|
||||
module.exports = hexo => {
|
||||
function checkDependency(name, reqVer) {
|
||||
try {
|
||||
require.resolve(name);
|
||||
const version = require(name + '/package.json').version;
|
||||
if (!semver.satisfies(version, reqVer)) {
|
||||
logger.error(`Package ${yellow(name)}'s version (${yellow(version)}) does not satisfy the required version (${red(reqVer)}).`);
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
} catch (e) {
|
||||
logger.error(`Package ${yellow(name)} is not installed.`);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
logger.info('=== Checking package dependencies ===');
|
||||
const dependencies = Object.assign({}, packageInfo.peerDependencies, packageInfo.dependencies);
|
||||
const missingDeps = Object.keys(dependencies)
|
||||
.filter(name => !checkDependency(name, dependencies[name]));
|
||||
if (missingDeps && missingDeps.length) {
|
||||
logger.error('Please install the missing dependencies your Hexo site root directory:');
|
||||
logger.error(green('npm install --save ' + missingDeps.map(name => `${name}@${dependencies[name]}`).join(' ')));
|
||||
logger.error('or:');
|
||||
logger.error(green('yarn add ' + missingDeps.map(name => `${name}@${dependencies[name]}`).join(' ')));
|
||||
process.exit(-1);
|
||||
}
|
||||
};
|
|
@ -0,0 +1 @@
|
|||
module.exports = require('./v3_v4');
|
|
@ -0,0 +1,102 @@
|
|||
const logger = require('hexo-log')();
|
||||
const deepmerge = require('deepmerge');
|
||||
const Migration = require('hexo-component-inferno/lib/core/migrate').Migration;
|
||||
|
||||
module.exports = class extends Migration {
|
||||
constructor() {
|
||||
super('3.0.0', null);
|
||||
}
|
||||
|
||||
upgrade(config) {
|
||||
const result = deepmerge({}, config);
|
||||
result.head = {
|
||||
favicon: config.favicon || null,
|
||||
canonical_url: config.canonical_url || null,
|
||||
open_graph: config.open_graph || null,
|
||||
meta: config.meta || null,
|
||||
rss: config.rss || null
|
||||
};
|
||||
delete result.favicon;
|
||||
delete result.canonical_url;
|
||||
delete result.open_graph;
|
||||
delete result.meta;
|
||||
delete result.rss;
|
||||
|
||||
if (result.logo === '/images/logo.svg') {
|
||||
result.logo = result.logo.replace(/^\/images/, '/img');
|
||||
}
|
||||
|
||||
if (result.head.favicon === '/img/favicon.svg') {
|
||||
result.head.favicon = result.head.favicon.replace(/^\/images/, '/img');
|
||||
}
|
||||
|
||||
if (result.search && Object.prototype.hasOwnProperty.call(result.search, 'type')) {
|
||||
switch (result.search.type) {
|
||||
case 'google-cse':
|
||||
result.search.type = 'google_cse';
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (result.comment && Object.prototype.hasOwnProperty.call(result.comment, 'type')) {
|
||||
switch (result.comment.type) {
|
||||
case 'changyan':
|
||||
result.comment.app_id = config.comment.appid;
|
||||
delete result.comment.appid;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (Array.isArray(result.donate) && result.donate.length) {
|
||||
result.donates = result.donate;
|
||||
delete result.donate;
|
||||
}
|
||||
|
||||
if (Array.isArray(result.widgets) && result.widgets.length) {
|
||||
for (const widget of result.widgets) {
|
||||
if (Object.prototype.hasOwnProperty.call(widget, 'type')) {
|
||||
switch (widget.type) {
|
||||
case 'archive':
|
||||
widget.type = 'archives';
|
||||
break;
|
||||
case 'category':
|
||||
widget.type = 'categories';
|
||||
break;
|
||||
case 'tag':
|
||||
widget.type = 'tags';
|
||||
break;
|
||||
case 'tagcloud':
|
||||
logger.warn('The tagcloud widget has been removed from Icarus in version 3.0.0.');
|
||||
logger.warn('Please remove it from your configuration file.');
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (result.plugins && typeof result.plugins === 'object') {
|
||||
for (const name in result.plugins) {
|
||||
switch (name) {
|
||||
case 'outdated-browser':
|
||||
result.plugins.outdated_browser = result.plugins[name];
|
||||
delete result.plugins[name];
|
||||
break;
|
||||
case 'back-to-top':
|
||||
result.plugins.back_to_top = result.plugins[name];
|
||||
delete result.plugins[name];
|
||||
break;
|
||||
case 'baidu-analytics':
|
||||
result.plugins.baidu_analytics = result.plugins[name];
|
||||
delete result.plugins[name];
|
||||
break;
|
||||
case 'google-analytics':
|
||||
result.plugins.google_analytics = result.plugins[name];
|
||||
delete result.plugins[name];
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
};
|
|
@ -0,0 +1,14 @@
|
|||
const Migration = require('hexo-component-inferno/lib/core/migrate').Migration;
|
||||
|
||||
module.exports = class extends Migration {
|
||||
constructor() {
|
||||
super('4.0.0', null);
|
||||
}
|
||||
|
||||
upgrade(config) {
|
||||
if (typeof config.article === 'object') {
|
||||
delete config.article.thumbnail;
|
||||
}
|
||||
return config;
|
||||
}
|
||||
};
|
|
@ -0,0 +1,15 @@
|
|||
const logger = require('hexo-log')();
|
||||
|
||||
module.exports = hexo => {
|
||||
logger.info('=== Registering Hexo extensions ===');
|
||||
require('hexo-component-inferno/lib/hexo/filter/locals')(hexo);
|
||||
require('hexo-component-inferno/lib/hexo/generator/assets')(hexo);
|
||||
require('hexo-component-inferno/lib/hexo/generator/insight')(hexo);
|
||||
require('hexo-component-inferno/lib/hexo/generator/categories')(hexo);
|
||||
require('hexo-component-inferno/lib/hexo/generator/category')(hexo);
|
||||
require('hexo-component-inferno/lib/hexo/generator/manifest')(hexo);
|
||||
require('hexo-component-inferno/lib/hexo/generator/tags')(hexo);
|
||||
require('hexo-component-inferno/lib/hexo/helper/cdn')(hexo);
|
||||
require('hexo-component-inferno/lib/hexo/helper/page')(hexo);
|
||||
require('hexo-component-inferno/lib/core/view').init(hexo);
|
||||
};
|
|
@ -0,0 +1,64 @@
|
|||
{
|
||||
"$schema": "http://json-schema.org/draft-07/schema#",
|
||||
"$id": "/common/article.json",
|
||||
"description": "Article related configurations",
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"highlight": {
|
||||
"type": "object",
|
||||
"description": "Code highlight settings",
|
||||
"properties": {
|
||||
"theme": {
|
||||
"type": "string",
|
||||
"description": "Code highlight themes\nhttps://github.com/highlightjs/highlight.js/tree/master/src/styles",
|
||||
"default": "atom-one-light",
|
||||
"nullable": true
|
||||
},
|
||||
"clipboard": {
|
||||
"type": "boolean",
|
||||
"description": "Show copy code button",
|
||||
"default": true,
|
||||
"nullable": true
|
||||
},
|
||||
"fold": {
|
||||
"type": "string",
|
||||
"description": "Default folding status of the code blocks. Can be \"\", \"folded\", \"unfolded\"",
|
||||
"enum": [
|
||||
"",
|
||||
"folded",
|
||||
"unfolded"
|
||||
],
|
||||
"default": "unfolded",
|
||||
"nullable": true
|
||||
}
|
||||
},
|
||||
"nullable": true
|
||||
},
|
||||
"readtime": {
|
||||
"type": "boolean",
|
||||
"description": "Whether to show estimated article reading time",
|
||||
"default": true,
|
||||
"nullable": true
|
||||
},
|
||||
"licenses": {
|
||||
"$ref": "/misc/poly_links.json",
|
||||
"description": "Article licensing block",
|
||||
"examples": [
|
||||
{
|
||||
"Creative Commons": {
|
||||
"icon": "fab fa-creative-commons",
|
||||
"url": "https://creativecommons.org/"
|
||||
},
|
||||
"Attribution": {
|
||||
"icon": "fab fa-creative-commons-by",
|
||||
"url": "https://creativecommons.org/licenses/by/4.0/"
|
||||
},
|
||||
"Noncommercial": {
|
||||
"icon": "fab fa-creative-commons-nc",
|
||||
"url": "https://creativecommons.org/licenses/by-nc/4.0/"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,38 @@
|
|||
{
|
||||
"$schema": "http://json-schema.org/draft-07/schema#",
|
||||
"$id": "/common/comment.json",
|
||||
"description": "Comment plugin configurations\nhttps://ppoffice.github.io/hexo-theme-icarus/categories/Plugins/Comment/",
|
||||
"type": "object",
|
||||
"oneOf": [
|
||||
{
|
||||
"$ref": "/comment/disqus.json"
|
||||
},
|
||||
{
|
||||
"$ref": "/comment/changyan.json"
|
||||
},
|
||||
{
|
||||
"$ref": "/comment/disqusjs.json"
|
||||
},
|
||||
{
|
||||
"$ref": "/comment/facebook.json"
|
||||
},
|
||||
{
|
||||
"$ref": "/comment/gitalk.json"
|
||||
},
|
||||
{
|
||||
"$ref": "/comment/gitment.json"
|
||||
},
|
||||
{
|
||||
"$ref": "/comment/isso.json"
|
||||
},
|
||||
{
|
||||
"$ref": "/comment/livere.json"
|
||||
},
|
||||
{
|
||||
"$ref": "/comment/utterances.json"
|
||||
},
|
||||
{
|
||||
"$ref": "/comment/valine.json"
|
||||
}
|
||||
]
|
||||
}
|
|
@ -0,0 +1,29 @@
|
|||
{
|
||||
"$schema": "http://json-schema.org/draft-07/schema#",
|
||||
"$id": "/common/donates.json",
|
||||
"description": "Donate plugin configurations\nhttps://ppoffice.github.io/hexo-theme-icarus/categories/Plugins/Donation/",
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "object",
|
||||
"oneOf": [
|
||||
{
|
||||
"$ref": "/donate/afdian.json"
|
||||
},
|
||||
{
|
||||
"$ref": "/donate/alipay.json"
|
||||
},
|
||||
{
|
||||
"$ref": "/donate/buymeacoffee.json"
|
||||
},
|
||||
{
|
||||
"$ref": "/donate/patreon.json"
|
||||
},
|
||||
{
|
||||
"$ref": "/donate/paypal.json"
|
||||
},
|
||||
{
|
||||
"$ref": "/donate/wechat.json"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
|
@ -0,0 +1,28 @@
|
|||
{
|
||||
"$schema": "http://json-schema.org/draft-07/schema#",
|
||||
"$id": "/common/footer.json",
|
||||
"description": "Page footer configurations",
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"links": {
|
||||
"$ref": "/misc/poly_links.json",
|
||||
"description": "Links to be shown on the right of the footer section",
|
||||
"examples": [
|
||||
{
|
||||
"Creative Commons": {
|
||||
"icon": "fab fa-creative-commons",
|
||||
"url": "https://creativecommons.org/"
|
||||
},
|
||||
"Attribution 4.0 International": {
|
||||
"icon": "fab fa-creative-commons-by",
|
||||
"url": "https://creativecommons.org/licenses/by/4.0/"
|
||||
},
|
||||
"Download on GitHub": {
|
||||
"icon": "fab fa-github",
|
||||
"url": "https://github.com/ppoffice/hexo-theme-icarus"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,31 @@
|
|||
{
|
||||
"$schema": "http://json-schema.org/draft-07/schema#",
|
||||
"$id": "/common/head.json",
|
||||
"description": "Page metadata configurations",
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"favicon": {
|
||||
"type": "string",
|
||||
"description": "URL or path to the website's icon",
|
||||
"default": "/img/favicon.svg",
|
||||
"nullable": true
|
||||
},
|
||||
"manifest": {
|
||||
"$ref": "/misc/manifest.json"
|
||||
},
|
||||
"open_graph": {
|
||||
"$ref": "/misc/open_graph.json"
|
||||
},
|
||||
"structured_data": {
|
||||
"$ref": "/misc/structured_data.json"
|
||||
},
|
||||
"meta": {
|
||||
"$ref": "/misc/meta.json"
|
||||
},
|
||||
"rss": {
|
||||
"type": "string",
|
||||
"description": "URL or path to the website's RSS atom.xml",
|
||||
"nullable": true
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,40 @@
|
|||
{
|
||||
"$schema": "http://json-schema.org/draft-07/schema#",
|
||||
"$id": "/common/navbar.json",
|
||||
"description": "Page top navigation bar configurations",
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"menu": {
|
||||
"type": "object",
|
||||
"description": "Navigation menu items",
|
||||
"patternProperties": {
|
||||
".+": {
|
||||
"type": "string",
|
||||
"description": "URL or path of the menu link"
|
||||
}
|
||||
},
|
||||
"examples": [
|
||||
{
|
||||
"Home": "/",
|
||||
"Archives": "/archives",
|
||||
"Categories": "/categories",
|
||||
"Tags": "/tags",
|
||||
"About": "/about"
|
||||
}
|
||||
],
|
||||
"nullable": true
|
||||
},
|
||||
"links": {
|
||||
"$ref": "/misc/poly_links.json",
|
||||
"description": "Links to be shown on the right of the navigation bar",
|
||||
"examples": [
|
||||
{
|
||||
"Download on GitHub": {
|
||||
"icon": "fab fa-github",
|
||||
"url": "https://github.com/ppoffice/hexo-theme-icarus"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,56 @@
|
|||
{
|
||||
"$schema": "http://json-schema.org/draft-07/schema#",
|
||||
"$id": "/common/plugins.json",
|
||||
"description": "Plugin configurations\nhttps://ppoffice.github.io/hexo-theme-icarus/categories/Plugins/",
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"animejs": {
|
||||
"$ref": "/plugin/animejs.json"
|
||||
},
|
||||
"back_to_top": {
|
||||
"$ref": "/plugin/back_to_top.json"
|
||||
},
|
||||
"baidu_analytics": {
|
||||
"$ref": "/plugin/baidu_analytics.json"
|
||||
},
|
||||
"bing_webmaster": {
|
||||
"$ref": "/plugin/bing_webmaster.json"
|
||||
},
|
||||
"busuanzi": {
|
||||
"$ref": "/plugin/busuanzi.json"
|
||||
},
|
||||
"cnzz": {
|
||||
"$ref": "/plugin/cnzz.json"
|
||||
},
|
||||
"cookie_consent": {
|
||||
"$ref": "/plugin/cookie_consent.json"
|
||||
},
|
||||
"gallery": {
|
||||
"$ref": "/plugin/gallery.json"
|
||||
},
|
||||
"google_analytics": {
|
||||
"$ref": "/plugin/google_analytics.json"
|
||||
},
|
||||
"hotjar": {
|
||||
"$ref": "/plugin/hotjar.json"
|
||||
},
|
||||
"katex": {
|
||||
"$ref": "/plugin/katex.json"
|
||||
},
|
||||
"mathjax": {
|
||||
"$ref": "/plugin/mathjax.json"
|
||||
},
|
||||
"outdated_browser": {
|
||||
"$ref": "/plugin/outdated_browser.json"
|
||||
},
|
||||
"progressbar": {
|
||||
"$ref": "/plugin/progressbar.json"
|
||||
},
|
||||
"statcounter": {
|
||||
"$ref": "/plugin/statcounter.json"
|
||||
},
|
||||
"twitter_conversion_tracking": {
|
||||
"$ref": "/plugin/twitter_conversion_tracking.json"
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,26 @@
|
|||
{
|
||||
"$schema": "http://json-schema.org/draft-07/schema#",
|
||||
"$id": "/common/providers.json",
|
||||
"description": "CDN provider settings\nhttps://ppoffice.github.io/hexo-theme-icarus/Configuration/Theme/speed-up-your-site-with-custom-cdn/",
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"cdn": {
|
||||
"type": "string",
|
||||
"description": "Name or URL template of the JavaScript and/or stylesheet CDN provider",
|
||||
"default": "jsdelivr",
|
||||
"nullable": true
|
||||
},
|
||||
"fontcdn": {
|
||||
"type": "string",
|
||||
"description": "Name or URL template of the webfont CDN provider",
|
||||
"default": "google",
|
||||
"nullable": true
|
||||
},
|
||||
"iconcdn": {
|
||||
"type": "string",
|
||||
"description": "Name or URL of the fontawesome icon font CDN provider",
|
||||
"default": "fontawesome",
|
||||
"nullable": true
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,20 @@
|
|||
{
|
||||
"$schema": "http://json-schema.org/draft-07/schema#",
|
||||
"$id": "/common/search.json",
|
||||
"description": "Search plugin configurations\nhttps://ppoffice.github.io/hexo-theme-icarus/categories/Plugins/Search/",
|
||||
"type": "object",
|
||||
"oneOf": [
|
||||
{
|
||||
"$ref": "/search/insight.json"
|
||||
},
|
||||
{
|
||||
"$ref": "/search/baidu.json"
|
||||
},
|
||||
{
|
||||
"$ref": "/search/google_cse.json"
|
||||
},
|
||||
{
|
||||
"$ref": "/search/algolia.json"
|
||||
}
|
||||
]
|
||||
}
|
|
@ -0,0 +1,23 @@
|
|||
{
|
||||
"$schema": "http://json-schema.org/draft-07/schema#",
|
||||
"$id": "/common/share.json",
|
||||
"description": "Share plugin configurations\nhttps://ppoffice.github.io/hexo-theme-icarus/categories/Plugins/Share/",
|
||||
"type": "object",
|
||||
"oneOf": [
|
||||
{
|
||||
"$ref": "/share/sharethis.json"
|
||||
},
|
||||
{
|
||||
"$ref": "/share/addthis.json"
|
||||
},
|
||||
{
|
||||
"$ref": "/share/addtoany.json"
|
||||
},
|
||||
{
|
||||
"$ref": "/share/bdshare.json"
|
||||
},
|
||||
{
|
||||
"$ref": "/share/sharejs.json"
|
||||
}
|
||||
]
|
||||
}
|
|
@ -0,0 +1,30 @@
|
|||
{
|
||||
"$schema": "http://json-schema.org/draft-07/schema#",
|
||||
"$id": "/common/sidebar.json",
|
||||
"description": "Sidebar configurations.\nPlease be noted that a sidebar is only visible when it has at least one widget",
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"left": {
|
||||
"type": "object",
|
||||
"description": "Left sidebar configurations",
|
||||
"properties": {
|
||||
"sticky": {
|
||||
"type": "boolean",
|
||||
"description": "Whether the sidebar sticks to the top when page scrolls",
|
||||
"default": false
|
||||
}
|
||||
}
|
||||
},
|
||||
"right": {
|
||||
"type": "object",
|
||||
"description": "Right sidebar configurations",
|
||||
"properties": {
|
||||
"sticky": {
|
||||
"type": "boolean",
|
||||
"description": "Whether the sidebar sticks to the top when page scrolls",
|
||||
"default": false
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,48 @@
|
|||
{
|
||||
"$schema": "http://json-schema.org/draft-07/schema#",
|
||||
"$id": "/common/widgets.json",
|
||||
"description": "Sidebar widget configurations\nhttp://ppoffice.github.io/hexo-theme-icarus/categories/Widgets/",
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"position": {
|
||||
"type": "string",
|
||||
"description": "Where should the widget be placed, left sidebar or right sidebar",
|
||||
"default": "left"
|
||||
}
|
||||
},
|
||||
"oneOf": [
|
||||
{
|
||||
"$ref": "/widget/profile.json"
|
||||
},
|
||||
{
|
||||
"$ref": "/widget/toc.json"
|
||||
},
|
||||
{
|
||||
"$ref": "/widget/links.json"
|
||||
},
|
||||
{
|
||||
"$ref": "/widget/categories.json"
|
||||
},
|
||||
{
|
||||
"$ref": "/widget/recent_posts.json"
|
||||
},
|
||||
{
|
||||
"$ref": "/widget/archives.json"
|
||||
},
|
||||
{
|
||||
"$ref": "/widget/tags.json"
|
||||
},
|
||||
{
|
||||
"$ref": "/widget/subscribe_email.json"
|
||||
},
|
||||
{
|
||||
"$ref": "/widget/adsense.json"
|
||||
}
|
||||
],
|
||||
"required": [
|
||||
"position"
|
||||
]
|
||||
}
|
||||
}
|
|
@ -0,0 +1,78 @@
|
|||
{
|
||||
"$schema": "http://json-schema.org/draft-07/schema#",
|
||||
"$id": "/config.json",
|
||||
"description": "The configuration file definition",
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"version": {
|
||||
"type": "string",
|
||||
"description": "Version of the configuration file",
|
||||
"default": "4.0.0"
|
||||
},
|
||||
"variant": {
|
||||
"type": "string",
|
||||
"description": "Icarus theme variant, can be \"default\" or \"cyberpunk\"",
|
||||
"enum": [
|
||||
"default",
|
||||
"cyberpunk"
|
||||
],
|
||||
"default": "default"
|
||||
},
|
||||
"logo": {
|
||||
"type": [
|
||||
"string",
|
||||
"object"
|
||||
],
|
||||
"description": "Path or URL to the website's logo",
|
||||
"default": "/img/logo.svg",
|
||||
"properties": {
|
||||
"text": {
|
||||
"type": "string",
|
||||
"description": "Text to be shown in place of the logo image"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"text"
|
||||
]
|
||||
},
|
||||
"head": {
|
||||
"$ref": "/common/head.json"
|
||||
},
|
||||
"navbar": {
|
||||
"$ref": "/common/navbar.json"
|
||||
},
|
||||
"footer": {
|
||||
"$ref": "/common/footer.json"
|
||||
},
|
||||
"article": {
|
||||
"$ref": "/common/article.json"
|
||||
},
|
||||
"search": {
|
||||
"$ref": "/common/search.json"
|
||||
},
|
||||
"comment": {
|
||||
"$ref": "/common/comment.json"
|
||||
},
|
||||
"donates": {
|
||||
"$ref": "/common/donates.json"
|
||||
},
|
||||
"share": {
|
||||
"$ref": "/common/share.json"
|
||||
},
|
||||
"sidebar": {
|
||||
"$ref": "/common/sidebar.json"
|
||||
},
|
||||
"widgets": {
|
||||
"$ref": "/common/widgets.json"
|
||||
},
|
||||
"plugins": {
|
||||
"$ref": "/common/plugins.json"
|
||||
},
|
||||
"providers": {
|
||||
"$ref": "/common/providers.json"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"version"
|
||||
]
|
||||
}
|
|
@ -0,0 +1,7 @@
|
|||
{
|
||||
"$schema": "http://json-schema.org/draft-07/schema#",
|
||||
"$id": "/plugin/animejs.json",
|
||||
"description": "Enable page startup animations",
|
||||
"type": "boolean",
|
||||
"default": true
|
||||
}
|
|
@ -0,0 +1,7 @@
|
|||
{
|
||||
"$schema": "http://json-schema.org/draft-07/schema#",
|
||||
"$id": "/plugin/back_to_top.json",
|
||||
"description": "Show the \"back to top\" button",
|
||||
"type": "boolean",
|
||||
"default": true
|
||||
}
|
|
@ -0,0 +1,92 @@
|
|||
{
|
||||
"$schema": "http://json-schema.org/draft-07/schema#",
|
||||
"$id": "/widget/profile.json",
|
||||
"description": "Profile widget configurations",
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"type": {
|
||||
"type": "string",
|
||||
"const": "profile",
|
||||
"nullable": true
|
||||
},
|
||||
"author": {
|
||||
"type": "string",
|
||||
"description": "Author name",
|
||||
"examples": [
|
||||
"Your name"
|
||||
],
|
||||
"nullable": true
|
||||
},
|
||||
"author_title": {
|
||||
"type": "string",
|
||||
"description": "Author title",
|
||||
"examples": [
|
||||
"Your title"
|
||||
],
|
||||
"nullable": true
|
||||
},
|
||||
"location": {
|
||||
"type": "string",
|
||||
"description": "Author's current location",
|
||||
"examples": [
|
||||
"Your location"
|
||||
],
|
||||
"nullable": true
|
||||
},
|
||||
"avatar": {
|
||||
"type": "string",
|
||||
"description": "URL or path to the avatar image",
|
||||
"nullable": true
|
||||
},
|
||||
"avatar_rounded": {
|
||||
"type": "boolean",
|
||||
"description": "Whether show the rounded avatar image",
|
||||
"default": false,
|
||||
"nullable": true
|
||||
},
|
||||
"gravatar": {
|
||||
"type": "string",
|
||||
"description": "Email address for the Gravatar",
|
||||
"nullable": true
|
||||
},
|
||||
"follow_link": {
|
||||
"type": "string",
|
||||
"description": "URL or path for the follow button",
|
||||
"examples": [
|
||||
"https://github.com/ppoffice"
|
||||
],
|
||||
"nullable": true
|
||||
},
|
||||
"social_links": {
|
||||
"$ref": "/misc/poly_links.json",
|
||||
"description": "Links to be shown on the bottom of the profile widget",
|
||||
"examples": [
|
||||
{
|
||||
"Github": {
|
||||
"icon": "fab fa-github",
|
||||
"url": "https://github.com/ppoffice"
|
||||
},
|
||||
"Facebook": {
|
||||
"icon": "fab fa-facebook",
|
||||
"url": "https://facebook.com"
|
||||
},
|
||||
"Twitter": {
|
||||
"icon": "fab fa-twitter",
|
||||
"url": "https://twitter.com"
|
||||
},
|
||||
"Dribbble": {
|
||||
"icon": "fab fa-dribbble",
|
||||
"url": "https://dribbble.com"
|
||||
},
|
||||
"RSS": {
|
||||
"icon": "fas fa-rss",
|
||||
"url": "/"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"type"
|
||||
]
|
||||
}
|
|
@ -0,0 +1,194 @@
|
|||
/* ---------------------------------
|
||||
* Article Summary and Content
|
||||
* --------------------------------- */
|
||||
$article-font-size ?= 1.1rem
|
||||
|
||||
article
|
||||
&.media
|
||||
color: $text-light
|
||||
|
||||
a
|
||||
color: inherit
|
||||
|
||||
&:hover
|
||||
color: $primary
|
||||
|
||||
.image
|
||||
width: 64px
|
||||
height: 64px
|
||||
|
||||
img
|
||||
object-fit: cover
|
||||
width: 100%
|
||||
height: 100%
|
||||
|
||||
.title
|
||||
@extend .is-size-6
|
||||
margin-bottom: .25em
|
||||
|
||||
.date, .categories
|
||||
@extend .is-size-7
|
||||
|
||||
.categories
|
||||
@extend .is-uppercase
|
||||
|
||||
.media-content
|
||||
color: $text-light
|
||||
|
||||
.title
|
||||
margin: 0
|
||||
line-height: inherit
|
||||
|
||||
&.article
|
||||
.article-meta, .article-tags
|
||||
color: $text-light
|
||||
|
||||
.article-meta
|
||||
overflow-x: auto
|
||||
margin-bottom: .5rem
|
||||
|
||||
.article-more
|
||||
@extend .button.is-light
|
||||
|
||||
.content
|
||||
word-wrap: break-word
|
||||
font-size: $article-font-size
|
||||
|
||||
h1
|
||||
font-size: 1.75em
|
||||
|
||||
h2
|
||||
font-size: 1.5em
|
||||
|
||||
h3
|
||||
font-size: 1.25em
|
||||
|
||||
h4
|
||||
font-size: 1.125em
|
||||
|
||||
h5
|
||||
font-size: 1em
|
||||
|
||||
pre
|
||||
font-size: .85em
|
||||
|
||||
code
|
||||
padding: 0
|
||||
background: transparent
|
||||
overflow-wrap: break-word
|
||||
|
||||
blockquote
|
||||
&.pullquote
|
||||
float: right
|
||||
max-width: 50%
|
||||
font-size: 1.15rem
|
||||
position: relative
|
||||
|
||||
footer
|
||||
strong + cite
|
||||
margin-left: .5em
|
||||
|
||||
.message.message-immersive
|
||||
border-radius: 0
|
||||
margin: 0 0 - $card-content-padding $card-content-padding 0 - $card-content-padding
|
||||
|
||||
.message-body
|
||||
border: none
|
||||
|
||||
.rtl
|
||||
direction: rtl
|
||||
|
||||
.level
|
||||
&, &.is-mobile
|
||||
.level-item:not(:last-child)
|
||||
margin-left: .75rem
|
||||
margin-right: 0
|
||||
|
||||
// Overflow table
|
||||
.table-overflow
|
||||
overflow-x: auto
|
||||
|
||||
table
|
||||
width: auto !important
|
||||
|
||||
th
|
||||
word-break: keep-all
|
||||
|
||||
// Video container
|
||||
.video-container
|
||||
position: relative
|
||||
padding-bottom: 56.25%
|
||||
padding-top: 25px
|
||||
height: 0
|
||||
|
||||
iframe
|
||||
position: absolute
|
||||
top: 0
|
||||
left: 0
|
||||
width: 100%
|
||||
height: 100%
|
||||
|
||||
.article-licensing
|
||||
position: relative
|
||||
z-index: 1
|
||||
box-shadow: none
|
||||
background: $white-ter
|
||||
border-radius: $radius
|
||||
overflow: hidden
|
||||
|
||||
&:after
|
||||
position: absolute
|
||||
z-index: -1
|
||||
right: -50px
|
||||
top: -87.87px
|
||||
content: '\f25e'
|
||||
font-size: 200px
|
||||
font-family: 'Font Awesome 5 Brands'
|
||||
opacity: .1
|
||||
|
||||
.level-left
|
||||
flex-wrap: wrap
|
||||
max-width: 100%
|
||||
|
||||
.licensing-title
|
||||
@extend .mb-3
|
||||
line-height: 1.2
|
||||
|
||||
p:not(:last-child)
|
||||
@extend .mb-1
|
||||
|
||||
a
|
||||
@extend .is-size-7, .has-text-grey
|
||||
|
||||
.licensing-meta
|
||||
.level-item
|
||||
@extend .mr-4
|
||||
|
||||
.icons
|
||||
.icon
|
||||
@extend .ml-1
|
||||
width: 1.2em
|
||||
height: 1.2em
|
||||
font-size: 1.2em
|
||||
vertical-align: bottom
|
||||
|
||||
h6
|
||||
@extend .is-size-7
|
||||
|
||||
a
|
||||
color: inherit
|
||||
|
||||
a
|
||||
&.article-nav-prev
|
||||
span
|
||||
text-align: left
|
||||
flex-shrink: 1
|
||||
word-wrap: break-word
|
||||
white-space: normal
|
||||
|
||||
&.article-nav-next
|
||||
span
|
||||
text-align: right
|
||||
flex-shrink: 1
|
||||
word-wrap: break-word
|
||||
white-space: normal
|
|
@ -0,0 +1,99 @@
|
|||
bulma-stylus-root = '../../../../node_modules/bulma-stylus/stylus'
|
||||
|
||||
/* ---------------------------------
|
||||
* Override Bulma CSS Framework
|
||||
* --------------------------------- */
|
||||
$body-size ?= 14px
|
||||
$body-background-color ?= #f7f7f7
|
||||
|
||||
$family-sans-serif ?= Ubuntu, Roboto, 'Open Sans', 'Microsoft YaHei', sans-serif
|
||||
$family-code ?= 'Source Code Pro', monospace, 'Microsoft YaHei'
|
||||
|
||||
$size-7 ?= .85rem
|
||||
$size-small ?= .75rem
|
||||
|
||||
$primary ?= $blue
|
||||
$custom-colors ?= {
|
||||
grey-lightest: {
|
||||
'1': $grey-lightest
|
||||
'2': $grey-darker
|
||||
}
|
||||
}
|
||||
|
||||
$navbar-item-active-color ?= $primary
|
||||
$footer-background-color ?= $scheme-main
|
||||
|
||||
$gap ?= 64px
|
||||
$tablet ?= 769px
|
||||
$desktop ?= 1088px
|
||||
$widescreen ?= 1280px
|
||||
$fullhd ?= 1472px
|
||||
|
||||
$shadow ?= 0 4px 10px rgba(0, 0, 0, 0.05)
|
||||
|
||||
$title-weight ?= $weight-normal
|
||||
|
||||
$control-height ?= 2.25em
|
||||
$button-padding-vertical ?= calc(0.375em - 1px)
|
||||
|
||||
$card-radius ?= $radius
|
||||
$card-media-margin ?= 0.75rem
|
||||
$card-shadow ?= $shadow, 0 0 1px rgba(0, 0, 0, 0.1)
|
||||
|
||||
$menu-item-active-color ?= $link
|
||||
$menu-item-active-background-color ?= hsl(219, 70%, 96%)
|
||||
|
||||
$content-heading-weight ?= $weight-normal
|
||||
|
||||
|
||||
$logo-height ?= 1.75rem
|
||||
|
||||
// FIXME: https://github.com/groenroos/bulma-stylus/issues/11
|
||||
@import bulma-stylus-root + '/utilities/initial-variables'
|
||||
@import bulma-stylus-root + '/utilities/functions'
|
||||
@import bulma-stylus-root + '/utilities/derived-variables'
|
||||
|
||||
$colors = merge($colors, $custom-colors)
|
||||
|
||||
@import bulma-stylus-root + '/utilities/animations'
|
||||
@import bulma-stylus-root + '/utilities/mixins'
|
||||
@import bulma-stylus-root + '/utilities/controls'
|
||||
@import bulma-stylus-root + '/base/_all'
|
||||
@import bulma-stylus-root + '/components/_all'
|
||||
@import bulma-stylus-root + '/elements/_all'
|
||||
@import bulma-stylus-root + '/form/_all'
|
||||
@import bulma-stylus-root + '/grid/_all'
|
||||
@import bulma-stylus-root + '/layout/_all'
|
||||
|
||||
html
|
||||
height: 100%
|
||||
-webkit-text-size-adjust: 100%
|
||||
-moz-text-size-adjust: 100%
|
||||
-ms-text-size-adjust: 100%
|
||||
text-size-adjust: 100%
|
||||
|
||||
body
|
||||
min-height: 100%
|
||||
display: flex
|
||||
flex-direction: column
|
||||
|
||||
body > .section
|
||||
flex-grow: 1
|
||||
|
||||
+desktop()
|
||||
::-webkit-scrollbar
|
||||
width: 8px
|
||||
height: 8px
|
||||
|
||||
::-webkit-scrollbar-track
|
||||
border-radius: 3px
|
||||
background: rgba(0,0,0,0.06)
|
||||
box-shadow: inset 0 0 5px rgba(0,0,0,0.1)
|
||||
|
||||
::-webkit-scrollbar-thumb
|
||||
border-radius: 3px
|
||||
background: rgba(0,0,0,0.12)
|
||||
box-shadow: inset 0 0 10px rgba(0,0,0,0.2)
|
||||
|
||||
::-webkit-scrollbar-thumb:hover
|
||||
background: rgba(0,0,0,0.24)
|
|
@ -0,0 +1,8 @@
|
|||
/* ---------------------------------
|
||||
* Buttons
|
||||
* --------------------------------- */
|
||||
.button
|
||||
&.is-transparent
|
||||
color: inherit
|
||||
background: transparent
|
||||
border-color: transparent
|
|
@ -0,0 +1,18 @@
|
|||
/* ---------------------------------
|
||||
* Card
|
||||
* --------------------------------- */
|
||||
.card
|
||||
overflow: visible
|
||||
border-radius: $card-radius
|
||||
|
||||
& + .card, & + .column-right-shadow
|
||||
margin-top: 1.5rem
|
||||
|
||||
.card-image
|
||||
overflow: hidden
|
||||
border-top-left-radius: $card-radius
|
||||
border-top-right-radius: $card-radius
|
||||
|
||||
.media + .media
|
||||
border: none
|
||||
margin-top: 0
|
|
@ -0,0 +1,105 @@
|
|||
/* ---------------------------------
|
||||
* Code Highlight
|
||||
* --------------------------------- */
|
||||
$codeblock-caption-bg ?= rgba(200, 200, 200, .15)
|
||||
|
||||
figure.highlight
|
||||
padding: 0
|
||||
width: 100%
|
||||
position: relative
|
||||
margin: 1em 0 1em !important
|
||||
border-radius: $radius
|
||||
|
||||
&.folded
|
||||
.highlight-body
|
||||
height: 0
|
||||
|
||||
.copy
|
||||
opacity: .7
|
||||
|
||||
pre, table tr:hover
|
||||
color: inherit
|
||||
background: transparent
|
||||
|
||||
table
|
||||
width: auto
|
||||
|
||||
tr td
|
||||
border: none
|
||||
|
||||
tr:not(:first-child) td
|
||||
padding-top: 0
|
||||
|
||||
tr:not(:last-child) td
|
||||
padding-bottom: 0
|
||||
|
||||
pre
|
||||
padding: 0
|
||||
overflow: visible
|
||||
|
||||
.line, code .hljs
|
||||
line-height: 1.5rem
|
||||
|
||||
figcaption, .gutter
|
||||
background: $codeblock-caption-bg
|
||||
|
||||
figcaption
|
||||
margin: 0 !important
|
||||
padding: .3em 0em .3em .75em
|
||||
font-style: normal
|
||||
font-size: .8em
|
||||
|
||||
*
|
||||
color: inherit
|
||||
|
||||
span
|
||||
font-weight: 500
|
||||
font-family: $family-code
|
||||
|
||||
.level-left *:not(:last-child)
|
||||
margin-right: .5em
|
||||
|
||||
.level-right *:not(:first-child)
|
||||
margin-left: .5em
|
||||
|
||||
.fold
|
||||
cursor: pointer
|
||||
|
||||
&.level
|
||||
overflow: auto
|
||||
|
||||
.level-right
|
||||
a
|
||||
padding: 0em .75em
|
||||
|
||||
.highlight-body
|
||||
overflow: auto
|
||||
|
||||
.gutter
|
||||
text-align: right
|
||||
|
||||
.tag, .title, .number, .section
|
||||
display: inherit
|
||||
font: inherit
|
||||
margin: inherit
|
||||
padding: inherit
|
||||
background: inherit
|
||||
height: inherit
|
||||
text-align: inherit
|
||||
vertical-align: inherit
|
||||
min-width: inherit
|
||||
border-radius: inherit
|
||||
|
||||
/* ---------------------------------
|
||||
* Fix Gist Snippet
|
||||
* --------------------------------- */
|
||||
.gist
|
||||
table
|
||||
tr:hover
|
||||
background: transparent
|
||||
|
||||
td
|
||||
border: none
|
||||
|
||||
.file
|
||||
all: initial
|
|
@ -0,0 +1,58 @@
|
|||
/* ---------------------------------
|
||||
* Donate Buttons
|
||||
* --------------------------------- */
|
||||
$donate-qrcode-max-width ?= 280px
|
||||
$donate-qrcode-shadow ?= $card-shadow
|
||||
$donate-qrcode-box-radius ?= $card-radius
|
||||
|
||||
$donate-button-colors ?= {
|
||||
'afdian': rgb(136, 95, 217),
|
||||
'alipay': rgb(0, 160, 232),
|
||||
'buymeacoffee': rgb(255, 221, 0),
|
||||
'paypal': rgb(254, 183, 0),
|
||||
'patreon': rgb(255, 66, 77),
|
||||
'wechat': rgb(26, 173, 25),
|
||||
}
|
||||
|
||||
.donate
|
||||
position: relative
|
||||
|
||||
.qrcode
|
||||
display: none
|
||||
position: absolute
|
||||
z-index: 99
|
||||
bottom: 2.5em
|
||||
line-height: 0
|
||||
overflow: hidden
|
||||
box-shadow: $donate-qrcode-shadow
|
||||
border-radius: $donate-qrcode-box-radius
|
||||
|
||||
img
|
||||
max-width: $donate-qrcode-max-width
|
||||
|
||||
&:hover
|
||||
.qrcode
|
||||
display: block
|
||||
|
||||
&:first-child:not(:last-child)
|
||||
.qrcode
|
||||
left: -.75rem
|
||||
|
||||
&:last-child:not(:first-child)
|
||||
.qrcode
|
||||
right: -.75rem
|
||||
|
||||
for $name, $color in $donate-button-colors
|
||||
&[data-type={'"' + $name + '"'}]
|
||||
color: findColorInvert($color)
|
||||
background-color: $color
|
||||
border-color: transparent
|
||||
|
||||
&:active
|
||||
background-color: darken($color, 5%)
|
||||
|
||||
&:hover
|
||||
background-color: darken($color, 2.5%)
|
||||
|
||||
&:focus:not(:active)
|
||||
box-shadow: 0 0 0 .125em rgba($color, .25)
|
|
@ -0,0 +1,20 @@
|
|||
/* ---------------------------------
|
||||
* Page Footer
|
||||
* --------------------------------- */
|
||||
footer.footer
|
||||
.level-start
|
||||
+mobile()
|
||||
text-align: center
|
||||
|
||||
.level-end
|
||||
.field
|
||||
flex-wrap: wrap
|
||||
align-items: center
|
||||
|
||||
+mobile()
|
||||
justify-content: center
|
||||
margin-top: 1rem
|
||||
|
||||
.footer-logo
|
||||
img
|
||||
max-height: $logo-height
|
|
@ -0,0 +1,162 @@
|
|||
/* ---------------------------------
|
||||
* Spacing helpers
|
||||
* --------------------------------- */
|
||||
$spacer ?= 1rem
|
||||
$spacers ?= 0, $spacer * .25, $spacer * .5, $spacer, $spacer * 1.5, $spacer * 3
|
||||
|
||||
for n in (0 .. 5)
|
||||
.ml-{n}
|
||||
margin-left: $spacers[n] !important
|
||||
|
||||
.mr-{n}
|
||||
margin-right: $spacers[n] !important
|
||||
|
||||
.mx-{n}
|
||||
@extend .ml-{n}, .mr-{n}
|
||||
|
||||
.ml-n{n}
|
||||
margin-left: - $spacers[n] !important
|
||||
|
||||
.mr-n{n}
|
||||
margin-right: - $spacers[n] !important
|
||||
|
||||
.mx-n{n}
|
||||
@extend .ml-n{n}, .mr-n{n}
|
||||
|
||||
.mt-{n}
|
||||
margin-top: $spacers[n] !important
|
||||
|
||||
.mb-{n}
|
||||
margin-bottom: $spacers[n] !important
|
||||
|
||||
.my-{n}
|
||||
@extend .mt-{n}, .mb-{n}
|
||||
|
||||
.mt-n{n}
|
||||
margin-top: - $spacers[n] !important
|
||||
|
||||
.mb-n{n}
|
||||
margin-bottom: - $spacers[n] !important
|
||||
|
||||
.my-n{n}
|
||||
@extend .mt-n{n}, .mb-n{n}
|
||||
|
||||
.pl-{n}
|
||||
padding-left: $spacers[n] !important
|
||||
|
||||
.pr-{n}
|
||||
padding-right: $spacers[n] !important
|
||||
|
||||
.px-{n}
|
||||
@extend .pl-{n}, .pr-{n}
|
||||
|
||||
.pl-n{n}
|
||||
padding-left: - $spacers[n] !important
|
||||
|
||||
.pr-n{n}
|
||||
padding-right: - $spacers[n] !important
|
||||
|
||||
.px-n{n}
|
||||
@extend .pl-n{n}, .pr-n{n}
|
||||
|
||||
.pt-{n}
|
||||
padding-top: $spacers[n] !important
|
||||
|
||||
.pb-{n}
|
||||
padding-bottom: $spacers[n] !important
|
||||
|
||||
.py-{n}
|
||||
@extend .pt-{n}, .pb-{n}
|
||||
|
||||
.pt-n{n}
|
||||
padding-top: - $spacers[n] !important
|
||||
|
||||
.pb-n{n}
|
||||
padding-bottom: - $spacers[n] !important
|
||||
|
||||
.py-n{n}
|
||||
@extend .pt-n{n}, .pb-n{n}
|
||||
|
||||
.ml-auto
|
||||
margin-left: auto !important
|
||||
|
||||
.mr-auto
|
||||
margin-right: auto !important
|
||||
|
||||
.mx-auto
|
||||
@extend .ml-auto, .mr-auto
|
||||
|
||||
.mt-auto
|
||||
margin-top: auto !important
|
||||
|
||||
.mb-auto
|
||||
margin-bottom: auto !important
|
||||
|
||||
.my-auto
|
||||
@extend .mt-auto, .mb-auto
|
||||
|
||||
.pl-auto
|
||||
margin-left: auto !important
|
||||
|
||||
.pr-auto
|
||||
margin-right: auto !important
|
||||
|
||||
.px-auto
|
||||
@extend .pl-auto, .pr-auto
|
||||
|
||||
.pt-auto
|
||||
margin-top: auto !important
|
||||
|
||||
.pb-auto
|
||||
margin-bottom: auto !important
|
||||
|
||||
.py-auto
|
||||
@extend .pt-auto, .pb-auto
|
||||
|
||||
/* ---------------------------------
|
||||
* Flex helpers
|
||||
* --------------------------------- */
|
||||
for n in (0 .. 5)
|
||||
.order-{n}
|
||||
order: n !important
|
||||
|
||||
.justify-content-start
|
||||
justify-content: start !important
|
||||
|
||||
.justify-content-center
|
||||
justify-content: center !important
|
||||
|
||||
.flex-shrink-1
|
||||
flex-shrink: 1 !important
|
||||
|
||||
/* ---------------------------------
|
||||
* Color helpers
|
||||
* --------------------------------- */
|
||||
.link-muted
|
||||
color: inherit
|
||||
|
||||
&:hover
|
||||
color: $primary !important
|
||||
|
||||
/* ---------------------------------
|
||||
* Image helpers
|
||||
* --------------------------------- */
|
||||
.image
|
||||
&.is-7by3
|
||||
padding-top: 42.8%
|
||||
|
||||
img
|
||||
bottom: 0
|
||||
left: 0
|
||||
position: absolute
|
||||
right: 0
|
||||
top: 0
|
||||
|
||||
.avatar
|
||||
height: 100%
|
||||
object-fit: cover
|
||||
|
||||
.fill
|
||||
object-fit: cover
|
||||
width: 100% !important
|
||||
height: 100% !important
|
|
@ -0,0 +1,53 @@
|
|||
/* ---------------------------------
|
||||
* Top Navigation
|
||||
* --------------------------------- */
|
||||
$navbar-item-padding-v ?= 1.25rem
|
||||
$navbar-item-padding-h ?= .75rem
|
||||
$navbar-item-margin-v ?= 0
|
||||
$navbar-item-margin-h ?= 0
|
||||
|
||||
.navbar-main
|
||||
box-shadow: $shadow
|
||||
|
||||
.navbar-menu, .navbar-start, .navbar-end
|
||||
align-items: stretch
|
||||
display: flex
|
||||
padding: 0
|
||||
flex-shrink: 0
|
||||
|
||||
.navbar-menu
|
||||
flex-grow: 1
|
||||
flex-shrink: 0
|
||||
overflow-x: auto
|
||||
|
||||
.navbar-start
|
||||
justify-content: flex-start
|
||||
margin-right: auto
|
||||
|
||||
.navbar-end
|
||||
justify-content: flex-end
|
||||
margin-left: auto
|
||||
|
||||
.navbar-item
|
||||
display: flex
|
||||
align-items: center
|
||||
padding: $navbar-item-padding-v $navbar-item-padding-h
|
||||
margin: $navbar-item-margin-v $navbar-item-margin-h
|
||||
|
||||
&.is-active
|
||||
background-color: transparent
|
||||
|
||||
+until($navbar-breakpoint)
|
||||
.navbar-menu
|
||||
justify-content: center
|
||||
box-shadow: none
|
||||
|
||||
.navbar-start
|
||||
margin-right: 0
|
||||
|
||||
.navbar-end
|
||||
margin-left: 0
|
||||
|
||||
.navbar-logo
|
||||
img
|
||||
max-height: $logo-height
|
|
@ -0,0 +1,32 @@
|
|||
/* ---------------------------------
|
||||
* Pagination and Post Navigation
|
||||
* --------------------------------- */
|
||||
$pagination-box-shadow ?= $card-shadow
|
||||
$pagination-background-color ?= $button-background-color
|
||||
$post-navigation-fg ?= $grey
|
||||
|
||||
.pagination
|
||||
@extend .pagination.is-centered
|
||||
margin-top: 1.5rem
|
||||
|
||||
.pagination-link,
|
||||
.pagination-ellipsis,
|
||||
.pagination-previous,
|
||||
.pagination-next
|
||||
a
|
||||
color: $pagination-color
|
||||
.pagination-link,
|
||||
.pagination-previous,
|
||||
.pagination-next
|
||||
border: none
|
||||
background: $pagination-background-color
|
||||
box-shadow: $pagination-box-shadow
|
||||
.pagination-link.is-current
|
||||
background: $pagination-current-background-color
|
||||
|
||||
.post-navigation
|
||||
color: $post-navigation-fg
|
||||
flex-wrap: wrap
|
||||
justify-content: space-around
|
||||
.level-item
|
||||
margin-bottom: 0
|
|
@ -0,0 +1,128 @@
|
|||
/* ---------------------------------
|
||||
* Back to Top Button
|
||||
* --------------------------------- */
|
||||
#back-to-top
|
||||
position: fixed
|
||||
opacity: 0
|
||||
outline: none
|
||||
padding: 8px 0
|
||||
line-height: 24px
|
||||
border-radius: $card-radius
|
||||
transform: translateY(120px)
|
||||
transition: .4s ease opacity, .4s ease width, .4s ease transform, .4s ease border-radius
|
||||
|
||||
&.is-rounded
|
||||
border-radius: 50%
|
||||
|
||||
&.fade-in
|
||||
opacity: 1
|
||||
|
||||
&.rise-up
|
||||
transform: translateY(0)
|
||||
|
||||
/* ---------------------------------
|
||||
* Gallery Plugin
|
||||
* --------------------------------- */
|
||||
.gallery-item
|
||||
.caption
|
||||
color: $grey
|
||||
|
||||
/* ---------------------------------
|
||||
* Page Loading Progressbar
|
||||
* --------------------------------- */
|
||||
.pace
|
||||
user-select: none
|
||||
pointer-events: none
|
||||
|
||||
.pace-progress
|
||||
top: 0
|
||||
right: 100%
|
||||
width: 100%
|
||||
height: 2px
|
||||
z-index: 2000
|
||||
position: fixed
|
||||
background: $primary
|
||||
|
||||
.pace-inactive
|
||||
display: none
|
||||
|
||||
/* ---------------------------------
|
||||
* Fix FontAwesome Icons
|
||||
* --------------------------------- */
|
||||
.fa, .fab, .fal, .far, .fas
|
||||
line-height: inherit
|
||||
|
||||
/* ---------------------------------
|
||||
* MathJax and KaTeX
|
||||
* --------------------------------- */
|
||||
.MathJax, .katex-display
|
||||
overflow-x: auto
|
||||
overflow-y: hidden
|
||||
|
||||
.katex
|
||||
white-space: nowrap
|
||||
|
||||
.katex-display
|
||||
margin-top: -1em !important
|
||||
|
||||
.katex-html
|
||||
padding-top: 1em
|
||||
|
||||
.tag
|
||||
align-items: unset
|
||||
background-color: unset
|
||||
border-radius: unset
|
||||
color: unset
|
||||
display: unset
|
||||
font-size: unset
|
||||
height: unset
|
||||
justify-content: unset
|
||||
line-height: unset
|
||||
padding-left: unset
|
||||
padding-right: unset
|
||||
white-space: unset
|
||||
|
||||
/* ---------------------------------
|
||||
* Cookie Consent
|
||||
* --------------------------------- */
|
||||
.cc-window, .cc-revoke
|
||||
font-size: 1.1rem !important
|
||||
font-family: $family-sans-serif !important
|
||||
|
||||
.cc-window
|
||||
color: $text !important
|
||||
background-color: $scheme-main !important
|
||||
|
||||
&.cc-floating
|
||||
border-radius: $card-radius
|
||||
box-shadow: $card-shadow
|
||||
|
||||
&.cc-banner
|
||||
background-color: darken($scheme-main, 2.5%) !important
|
||||
|
||||
&.cc-theme-block, &.cc-theme-classic
|
||||
.cc-compliance > .cc-btn
|
||||
border-radius: $radius-rounded
|
||||
|
||||
.cc-compliance > .cc-btn
|
||||
font-weight: 400
|
||||
border: none
|
||||
color: $primary-invert
|
||||
background-color: $primary
|
||||
|
||||
&:hover, &:focus
|
||||
background-color: darken($primary, 2.5%)
|
||||
|
||||
&.cc-deny
|
||||
&:hover
|
||||
color: $primary
|
||||
text-decoration: none
|
||||
|
||||
.cc-revoke
|
||||
padding: .5rem 1rem !important
|
||||
color: $primary-invert !important
|
||||
background-color: $primary !important
|
||||
|
||||
&:hover
|
||||
text-decoration: none !important
|
||||
background-color: darken($primary, 2.5%)
|
|
@ -0,0 +1,32 @@
|
|||
/* ---------------------------------
|
||||
* Responsive Layout
|
||||
* --------------------------------- */
|
||||
+widescreen()
|
||||
.is-1-column .container, .is-2-column .container
|
||||
max-width: $desktop - 2 * $gap
|
||||
width: $desktop - 2 * $gap
|
||||
|
||||
+fullhd()
|
||||
.is-2-column .container
|
||||
max-width: $widescreen - 2 * $gap
|
||||
width: $widescreen - 2 * $gap
|
||||
|
||||
.is-1-column .container
|
||||
max-width: $desktop - 2 * $gap
|
||||
width: $desktop - 2 * $gap
|
||||
|
||||
+tablet()
|
||||
.is-sticky
|
||||
position: -webkit-sticky
|
||||
position: sticky
|
||||
top: 1.5rem
|
||||
z-index: 99
|
||||
|
||||
.column-main, .column-left, .column-right, .column-right-shadow
|
||||
&.is-sticky
|
||||
top: .75rem
|
||||
align-self: flex-start
|
||||
|
||||
+mobile()
|
||||
.section
|
||||
padding: 1.5rem 1rem
|
|
@ -0,0 +1,204 @@
|
|||
/* ---------------------------------
|
||||
* Search Box
|
||||
* --------------------------------- */
|
||||
// container sizes
|
||||
$searchbox-container-width ?= 540px
|
||||
$searchbox-container-margin ?= 100px
|
||||
$searchbox-breakpoint-width ?= 559px
|
||||
$searchbox-breakpoint-height ?= 479px
|
||||
// overlay and container styles
|
||||
$searchbox-box-shadow ?= $card-shadow
|
||||
$searchbox-border-radius ?= $radius
|
||||
$searchbox-bg-overlay ?= $modal-background-background-color
|
||||
$searchbox-bg-container ?= $white-ter
|
||||
$searchbox-border ?= $border
|
||||
// header styles
|
||||
$searchbox-bg-input ?= $white
|
||||
$searchbox-bg-close-hover ?= $searchbox-bg-container
|
||||
$searchbox-bg-close-active ?= $grey-lighter
|
||||
// body styles
|
||||
$searchbox-fg-result-header ?= $grey-light
|
||||
$searchbox-fg-result-item-secondary ?= $grey-light
|
||||
$searchbox-bg-result-item-hover ?= $searchbox-bg-input
|
||||
$searchbox-fg-result-item-active ?= findColorInvert($primary)
|
||||
$searchbox-bg-result-item-active ?= $primary
|
||||
$searchbox-bg-result-item-highlight ?= $yellow
|
||||
// footer styles
|
||||
$searchbox-bg-pagination-item ?= $searchbox-bg-input
|
||||
$searchbox-bg-pagination-item-hover ?= $searchbox-bg-container
|
||||
$searchbox-fg-pagination-item-active ?= findColorInvert($primary)
|
||||
$searchbox-bg-pagination-item-active ?= $primary
|
||||
$searchbox-bg-pagination-item-disabled ?= $searchbox-bg-container
|
||||
|
||||
.searchbox
|
||||
display: none
|
||||
top: 0
|
||||
left: 0
|
||||
width: 100%
|
||||
height: 100%
|
||||
z-index: 100
|
||||
font-size: 1rem
|
||||
line-height: 0
|
||||
background: $searchbox-bg-overlay
|
||||
|
||||
&.show
|
||||
display: flex
|
||||
|
||||
a, a:hover
|
||||
color: inherit
|
||||
text-decoration: none
|
||||
|
||||
input
|
||||
font-size: 1rem
|
||||
border: none
|
||||
outline: none
|
||||
box-shadow: none
|
||||
border-radius: 0
|
||||
|
||||
&, .searchbox-container
|
||||
position: fixed
|
||||
align-items: center
|
||||
flex-direction: column
|
||||
line-height: 1.25em
|
||||
|
||||
.searchbox-container
|
||||
z-index: 101
|
||||
display: flex
|
||||
overflow: hidden
|
||||
box-shadow: $searchbox-box-shadow
|
||||
border-radius: $searchbox-border-radius
|
||||
background-color: $searchbox-bg-container
|
||||
width: $searchbox-container-width
|
||||
top: $searchbox-container-margin
|
||||
bottom: $searchbox-container-margin
|
||||
|
||||
.searchbox-header, .searchbox-body, .searchbox-footer
|
||||
width: 100%
|
||||
|
||||
.searchbox-header
|
||||
display: flex
|
||||
flex-direction: row
|
||||
line-height: 1.5em
|
||||
font-weight: normal
|
||||
background-color: $searchbox-bg-input
|
||||
// fix Chrome 71 height issue
|
||||
// https://github.com/ppoffice/hexo-theme-icarus/issues/719
|
||||
min-height: 3rem
|
||||
|
||||
.searchbox-input-container
|
||||
display: flex
|
||||
flex-grow: 1
|
||||
|
||||
.searchbox-input
|
||||
flex-grow: 1
|
||||
color: inherit
|
||||
box-sizing: border-box
|
||||
padding: .75em 0 .75em 1.25em
|
||||
background: $searchbox-bg-input
|
||||
|
||||
.searchbox-close
|
||||
display: inline-block
|
||||
font-size: 1.5em
|
||||
padding: .5em .75em
|
||||
cursor: pointer
|
||||
|
||||
&:hover
|
||||
background: $searchbox-bg-close-hover
|
||||
|
||||
&:active
|
||||
background: $searchbox-bg-close-active
|
||||
|
||||
.searchbox-body
|
||||
flex-grow: 1
|
||||
overflow-y: auto
|
||||
border-top: 1px solid $searchbox-border
|
||||
|
||||
.searchbox-result-section header, .searchbox-result-item
|
||||
padding: .75em 1em
|
||||
|
||||
.searchbox-result-section
|
||||
border-bottom: 1px solid $searchbox-border
|
||||
|
||||
header
|
||||
color: $searchbox-fg-result-header
|
||||
|
||||
.searchbox-result-item
|
||||
display: flex
|
||||
flex-direction: row
|
||||
|
||||
&:not(.disabled):not(.active):not(:active):hover
|
||||
background-color: $searchbox-bg-result-item-hover
|
||||
|
||||
&:active, &.active
|
||||
color: $searchbox-fg-result-item-active
|
||||
background-color: $searchbox-bg-result-item-active
|
||||
|
||||
em
|
||||
font-style: normal
|
||||
background: $searchbox-bg-result-item-highlight
|
||||
|
||||
.searchbox-result-icon
|
||||
margin-right: 1em
|
||||
|
||||
.searchbox-result-content
|
||||
overflow: hidden
|
||||
|
||||
.searchbox-result-title, .searchbox-result-preview
|
||||
display: block
|
||||
overflow: hidden
|
||||
white-space: nowrap
|
||||
text-overflow: ellipsis
|
||||
|
||||
.searchbox-result-title-secondary
|
||||
color: $searchbox-fg-result-item-secondary
|
||||
|
||||
.searchbox-result-preview
|
||||
margin-top: .25em
|
||||
|
||||
.searchbox-result-item:not(:active):not(.active)
|
||||
.searchbox-result-preview
|
||||
color: $searchbox-fg-result-item-secondary
|
||||
|
||||
.searchbox-footer
|
||||
padding: .5em 1em
|
||||
|
||||
.searchbox-pagination
|
||||
margin: 0
|
||||
padding: 0
|
||||
list-style: none
|
||||
text-align: center
|
||||
|
||||
.searchbox-pagination-item
|
||||
margin: 0 .25rem
|
||||
|
||||
.searchbox-pagination-item, .searchbox-pagination-link
|
||||
display: inline-block
|
||||
|
||||
.searchbox-pagination-link
|
||||
overflow: hidden
|
||||
padding: .5em .8em
|
||||
box-shadow: $searchbox-box-shadow
|
||||
border-radius: $searchbox-border-radius
|
||||
background-color: $searchbox-bg-pagination-item
|
||||
|
||||
.searchbox-pagination-item.active
|
||||
.searchbox-pagination-link
|
||||
color: $searchbox-fg-pagination-item-active
|
||||
background-color: $searchbox-bg-pagination-item-active
|
||||
|
||||
.searchbox-pagination-item.disabled
|
||||
.searchbox-pagination-link
|
||||
cursor: not-allowed
|
||||
background-color: $searchbox-bg-pagination-item-disabled
|
||||
|
||||
.searchbox-pagination-item:not(.active):not(.disabled)
|
||||
.searchbox-pagination-link:hover
|
||||
background-color: $searchbox-bg-pagination-item-hover
|
||||
|
||||
@media screen and (max-width: $searchbox-breakpoint-width), screen and (max-height: $searchbox-breakpoint-height)
|
||||
.searchbox .searchbox-container
|
||||
top: 0
|
||||
left: 0
|
||||
width: 100%
|
||||
height: 100%
|
||||
border-radius: 0
|
|
@ -0,0 +1,38 @@
|
|||
/* ---------------------------------
|
||||
* Archive Timeline
|
||||
* --------------------------------- */
|
||||
$timeline-fg-line ?= $grey-lighter
|
||||
$timeline-bg-line ?= $card-background-color
|
||||
|
||||
.timeline
|
||||
margin-left: 1rem
|
||||
padding: 1rem 0 0 1.5rem
|
||||
border-left: 1px solid $timeline-fg-line
|
||||
|
||||
.media
|
||||
position: relative
|
||||
|
||||
&:before, &:last-child:after
|
||||
content: ''
|
||||
display: block
|
||||
position: absolute
|
||||
left: calc(-.375rem - 1.5rem - .25px)
|
||||
|
||||
&:before
|
||||
width: .75rem
|
||||
height: .75rem
|
||||
top: calc(1rem + 1.5 * .85rem / 2 - .75rem / 2)
|
||||
background: $timeline-fg-line
|
||||
border-radius: 50%
|
||||
|
||||
&:first-child:before
|
||||
top: calc(1.5 * .85rem / 2 - .75rem / 2)
|
||||
|
||||
&:last-child:after
|
||||
width: .75rem
|
||||
top: calc(1rem + 1.5 * .85rem / 2 + .75rem / 2)
|
||||
bottom: 0
|
||||
background: $timeline-bg-line
|
||||
|
||||
&:first-child:last-child:after
|
||||
top: calc(1.5 * .85rem / 2 + .75rem / 2)
|
|
@ -0,0 +1,65 @@
|
|||
.widget
|
||||
.menu-list
|
||||
li
|
||||
ul
|
||||
margin-right: 0
|
||||
|
||||
.level
|
||||
margin-bottom: 0
|
||||
|
||||
.level-left, .level-right, .level-item
|
||||
flex-shrink: 1
|
||||
|
||||
.level-left, .level-right
|
||||
align-items: flex-start
|
||||
|
||||
.tag
|
||||
background: $light-grey
|
||||
color: $white-invert
|
||||
|
||||
.tags
|
||||
.tag:first-child
|
||||
background: $primary
|
||||
color: $primary-invert
|
||||
|
||||
.tag:last-child
|
||||
background: $light-grey
|
||||
color: $white-invert
|
||||
|
||||
.level.is-multiline
|
||||
flex-wrap: wrap
|
||||
|
||||
/* ---------------------------------
|
||||
* Table of Content Widget
|
||||
* --------------------------------- */
|
||||
+mobile()
|
||||
.widget.card#toc
|
||||
display: none
|
||||
position: fixed
|
||||
margin: 1rem
|
||||
left: 0
|
||||
right: 0
|
||||
bottom: 0
|
||||
z-index: 100
|
||||
|
||||
.card-content
|
||||
padding: 0
|
||||
|
||||
.menu
|
||||
padding: 1.5rem
|
||||
max-height: calc(100vh - 2rem)
|
||||
overflow-y: auto
|
||||
|
||||
#toc-mask
|
||||
display: none
|
||||
position: fixed
|
||||
top: 0
|
||||
left: 0
|
||||
right: 0
|
||||
bottom: 0
|
||||
z-index: 99
|
||||
background: rgba(0, 0, 0, .7)
|
||||
|
||||
.widget.card#toc, #toc-mask
|
||||
&.is-active
|
||||
display: block
|
|
@ -0,0 +1,15 @@
|
|||
let chalk;
|
||||
try {
|
||||
chalk = require('chalk'); // eslint-disable-line node/no-extraneous-require
|
||||
} catch (e) { }
|
||||
|
||||
module.exports = new Proxy({}, {
|
||||
get(obj, prop) {
|
||||
if (chalk) {
|
||||
return chalk[prop];
|
||||
}
|
||||
return function() {
|
||||
return arguments.length === 1 ? arguments[0] : arguments;
|
||||
};
|
||||
}
|
||||
});
|
|
@ -0,0 +1,65 @@
|
|||
common:
|
||||
archive:
|
||||
one: 'Archiv'
|
||||
other: 'Archive'
|
||||
category:
|
||||
one: 'Kategorie'
|
||||
other: 'Kategorien'
|
||||
tag:
|
||||
one: 'Tag'
|
||||
other: 'Tags'
|
||||
post:
|
||||
one: 'Seite'
|
||||
other: 'Seiten'
|
||||
page:
|
||||
one: 'Page'
|
||||
other: 'Pages'
|
||||
prev: 'Zurück'
|
||||
next: 'Weiter'
|
||||
widget:
|
||||
follow: 'Folgen'
|
||||
recents: 'Letzte Einträge'
|
||||
links: 'Links'
|
||||
catalogue: 'Katalog'
|
||||
subscribe_email: 'Abonnieren Sie Updates'
|
||||
subscribe: 'Abonnieren'
|
||||
adsense: 'Werbung'
|
||||
article:
|
||||
created_at: 'Gepostet vor %s'
|
||||
updated_at: 'Aktualisiert vor %s'
|
||||
more: 'Mehr lesen'
|
||||
comments: 'Kommentare'
|
||||
read_time: '%s lesen'
|
||||
word_count:
|
||||
one: 'Über %d Wort'
|
||||
other: 'Über %d Wörter'
|
||||
licensing:
|
||||
author: 'Author'
|
||||
created_at: 'Posted on'
|
||||
updated_at: 'Updated on'
|
||||
licensed_under: 'Licensed under'
|
||||
donate:
|
||||
title: 'Gefällt Ihnen der Artikel? Unterstützen Sie den Autor mit'
|
||||
afdian: 'Afdian.net'
|
||||
alipay: 'Alipay'
|
||||
wechat: 'Wechat'
|
||||
paypal: 'Paypal'
|
||||
patreon: 'Patreon'
|
||||
buymeacoffee: 'Kauf mir einen Kaffee'
|
||||
plugin:
|
||||
backtotop: 'Zurück nach oben'
|
||||
visit_count: '%s Besuche'
|
||||
visitor_count: 'Von %s Nutzern besucht'
|
||||
cookie_consent:
|
||||
message: Diese Website verwendet Cookies, um Ihre Erfahrung zu verbessern.
|
||||
dismiss: Verstanden!
|
||||
allow: Cookies zulassen
|
||||
deny: Ablehnen
|
||||
link: Mehr erfahren
|
||||
policy: Cookie-Richtlinie
|
||||
search:
|
||||
search: 'Suche'
|
||||
hint: 'Tippen Sie etwas...'
|
||||
no_result: 'Keine Ergebnisse für'
|
||||
untitled: '(Ohne Titel)'
|
||||
empty_preview: '(Keine Vorschau)'
|
|
@ -0,0 +1,65 @@
|
|||
common:
|
||||
archive:
|
||||
one: 'Archive'
|
||||
other: 'Archives'
|
||||
category:
|
||||
one: 'Category'
|
||||
other: 'Categories'
|
||||
tag:
|
||||
one: 'Tag'
|
||||
other: 'Tags'
|
||||
post:
|
||||
one: 'Post'
|
||||
other: 'Posts'
|
||||
page:
|
||||
one: 'Page'
|
||||
other: 'Pages'
|
||||
prev: 'Previous'
|
||||
next: 'Next'
|
||||
widget:
|
||||
follow: 'Follow'
|
||||
recents: 'Recents'
|
||||
links: 'Links'
|
||||
catalogue: 'Catalogue'
|
||||
subscribe_email: 'Subscribe for updates'
|
||||
subscribe: 'Subscribe'
|
||||
adsense: 'Advertisement'
|
||||
article:
|
||||
created_at: 'Posted %s'
|
||||
updated_at: 'Updated %s'
|
||||
more: 'Read more'
|
||||
comments: 'Comments'
|
||||
read_time: '%s read'
|
||||
word_count:
|
||||
one: 'About %d word'
|
||||
other: 'About %d words'
|
||||
licensing:
|
||||
author: 'Author'
|
||||
created_at: 'Posted on'
|
||||
updated_at: 'Updated on'
|
||||
licensed_under: 'Licensed under'
|
||||
donate:
|
||||
title: 'Like this article? Support the author with'
|
||||
afdian: 'Afdian.net'
|
||||
alipay: 'Alipay'
|
||||
wechat: 'Wechat'
|
||||
paypal: 'Paypal'
|
||||
patreon: 'Patreon'
|
||||
buymeacoffee: 'Buy me a coffee'
|
||||
plugin:
|
||||
backtotop: 'Back to top'
|
||||
visit_count: '%s visits'
|
||||
visitor_count: 'Visited by %s users'
|
||||
cookie_consent:
|
||||
message: This website uses cookies to improve your experience.
|
||||
dismiss: Got it!
|
||||
allow: Allow cookies
|
||||
deny: Decline
|
||||
link: Learn more
|
||||
policy: Cookie Policy
|
||||
search:
|
||||
search: 'Search'
|
||||
hint: 'Type something...'
|
||||
no_result: 'No results for'
|
||||
untitled: '(Untitled)'
|
||||
empty_preview: '(No preview)'
|
|
@ -0,0 +1,66 @@
|
|||
#By SrWoOoW
|
||||
common:
|
||||
archive:
|
||||
one: 'Archivo'
|
||||
other: 'Archivos'
|
||||
category:
|
||||
one: 'Categoría'
|
||||
other: 'Categorías'
|
||||
tag:
|
||||
one: 'Etiqueta'
|
||||
other: 'Etiquetas'
|
||||
post:
|
||||
one: 'Entrada'
|
||||
other: 'Entradas'
|
||||
page:
|
||||
one: 'Página'
|
||||
other: 'Páginas'
|
||||
prev: 'Anterior'
|
||||
next: 'Siguiente'
|
||||
widget:
|
||||
follow: 'SEGUIR'
|
||||
recents: 'Recientes'
|
||||
links: 'Enlaces'
|
||||
catalogue: 'Catálogo'
|
||||
subscribe_email: 'Suscríbete para recibir actualizaciones'
|
||||
subscribe: 'Suscribir'
|
||||
adsense: 'Anuncio'
|
||||
article:
|
||||
created_at: 'Publicado hace %s'
|
||||
updated_at: 'Actualizado hace %s'
|
||||
more: 'Leer más'
|
||||
comments: 'Comentarios'
|
||||
read_time: '%s de lectura'
|
||||
word_count:
|
||||
one: 'Aproximadamente %d palabra'
|
||||
other: 'Aproximadamente %d palabras'
|
||||
licensing:
|
||||
author: 'Author'
|
||||
created_at: 'Posted on'
|
||||
updated_at: 'Updated on'
|
||||
licensed_under: 'Licensed under'
|
||||
donate:
|
||||
title: '¿Te gusta este artículo? Apoya al autor con'
|
||||
afdian: 'Afdian.net'
|
||||
alipay: 'Alipay'
|
||||
wechat: 'Wechat'
|
||||
paypal: 'Paypal'
|
||||
patreon: 'Patreon'
|
||||
buymeacoffee: 'Cómprame un café'
|
||||
plugin:
|
||||
backtotop: 'Volver arriba'
|
||||
visit_count: '%s visitas'
|
||||
visitor_count: 'Visitado por %s usuarios'
|
||||
cookie_consent:
|
||||
message: Este sitio web utiliza cookies para mejorar su experiencia.
|
||||
dismiss: ¡Entendido!
|
||||
allow: Permitir cookies
|
||||
deny: Descenso
|
||||
link: Aprende más
|
||||
policy: Política de cookies
|
||||
search:
|
||||
search: 'Buscar'
|
||||
hint: 'Teclea algo...'
|
||||
no_result: 'No hay resultados para'
|
||||
untitled: '(Sin título)'
|
||||
empty_preview: '(Sin vista previa)'
|
|
@ -0,0 +1,65 @@
|
|||
common:
|
||||
archive:
|
||||
one: 'Archive'
|
||||
other: 'Archives'
|
||||
category:
|
||||
one: 'Catégorie'
|
||||
other: 'Catégories'
|
||||
tag:
|
||||
one: 'Tag'
|
||||
other: 'Tags'
|
||||
post:
|
||||
one: 'Article'
|
||||
other: 'Articles'
|
||||
page:
|
||||
one: 'Page'
|
||||
other: 'Pages'
|
||||
prev: 'Préc'
|
||||
next: 'Suiv'
|
||||
widget:
|
||||
follow: 'Suivre'
|
||||
recents: 'Récents'
|
||||
links: 'Liens'
|
||||
catalogue: 'Catalogue'
|
||||
subscribe_email: 'Abonnez-vous aux mises à jour'
|
||||
subscribe: 'Abonnez-vous'
|
||||
adsense: 'Annonce'
|
||||
article:
|
||||
created_at: 'Publié il y a %s'
|
||||
updated_at: 'Mis à jour il y a %s'
|
||||
more: 'Lire la suite'
|
||||
comments: 'Commentaires'
|
||||
read_time: '%s de lecture'
|
||||
word_count:
|
||||
one: 'Environ %d mot'
|
||||
other: 'Environ %d mots'
|
||||
licensing:
|
||||
author: 'Author'
|
||||
created_at: 'Posted on'
|
||||
updated_at: 'Updated on'
|
||||
licensed_under: 'Licensed under'
|
||||
donate:
|
||||
title: "Vous aimez cet article? Soutenez l'auteur avec"
|
||||
afdian: 'Afdian.net'
|
||||
alipay: 'Alipay'
|
||||
wechat: 'Wechat'
|
||||
paypal: 'Paypal'
|
||||
patreon: 'Patreon'
|
||||
buymeacoffee: 'Achetez-moi un café'
|
||||
plugin:
|
||||
backtotop: 'Retour au sommet'
|
||||
visit_count: '%s visites'
|
||||
visitor_count: 'Visité par %s utilisateurs'
|
||||
cookie_consent:
|
||||
message: Ce site Web utilise des cookies pour améliorer votre expérience.
|
||||
dismiss: Je l'ai!
|
||||
allow: Autorise les cookies
|
||||
deny: Déclin
|
||||
link: Apprendre encore plus
|
||||
policy: Politique relative aux cookies
|
||||
search:
|
||||
search: 'Search'
|
||||
hint: 'Type something...'
|
||||
no_result: 'Aucun résultat pour'
|
||||
untitled: '(Sans titre)'
|
||||
empty_preview: '(Pas de prévisualisation)'
|
|
@ -0,0 +1,65 @@
|
|||
common:
|
||||
archive:
|
||||
one: 'Arsip'
|
||||
other: 'Arsip'
|
||||
category:
|
||||
one: 'Kategori'
|
||||
other: 'Kategori'
|
||||
tag:
|
||||
one: 'Tag'
|
||||
other: 'Tag'
|
||||
post:
|
||||
one: 'Artikel'
|
||||
other: 'Artikel'
|
||||
page:
|
||||
one: 'Halaman'
|
||||
other: 'Halaman'
|
||||
prev: 'Sebelumnya'
|
||||
next: 'Berikutnya'
|
||||
widget:
|
||||
follow: 'IKUTI'
|
||||
recents: 'Terbaru'
|
||||
links: 'Tautan'
|
||||
catalogue: 'Katalog'
|
||||
subscribe_email: 'Berlangganan untuk pembaruan'
|
||||
subscribe: 'Berlangganan'
|
||||
adsense: 'Iklan'
|
||||
article:
|
||||
created_at: 'Diposting %s'
|
||||
updated_at: 'Diperbarui %s'
|
||||
more: 'Selengkapnya'
|
||||
comments: 'Komentar'
|
||||
read_time: '%s membaca'
|
||||
word_count:
|
||||
one: 'Sekitar %d kata'
|
||||
other: 'Sekitar %d kata'
|
||||
licensing:
|
||||
author: 'Author'
|
||||
created_at: 'Posted on'
|
||||
updated_at: 'Updated on'
|
||||
licensed_under: 'Licensed under'
|
||||
donate:
|
||||
title: 'Suka dengan artikel ini? Bantu penulis dengan donasi melalui'
|
||||
afdian: 'Afdian.net'
|
||||
alipay: 'Alipay'
|
||||
wechat: 'Wechat'
|
||||
paypal: 'Paypal'
|
||||
patreon: 'Patreon'
|
||||
buymeacoffee: 'Belikan aku kopi'
|
||||
plugin:
|
||||
backtotop: 'Kembali ke atas'
|
||||
visit_count: '%s kunjungan'
|
||||
visitor_count: 'Dikunjungi oleh %s pengguna'
|
||||
cookie_consent:
|
||||
message: Situs web ini menggunakan cookie untuk meningkatkan pengalaman Anda.
|
||||
dismiss: Mengerti!
|
||||
allow: Izinkan cookie
|
||||
deny: Menolak
|
||||
link: Belajarlah lagi
|
||||
policy: Kebijakan Cookie
|
||||
search:
|
||||
search: 'Pencarian'
|
||||
hint: 'Tulis Sesuatu..'
|
||||
no_result: 'Tidak ada hasil untuk'
|
||||
untitled: '(Tanpa judul)'
|
||||
empty_preview: '(Tidak ada preview)'
|
|
@ -0,0 +1,65 @@
|
|||
common:
|
||||
archive:
|
||||
one: 'アーカイブ'
|
||||
other: 'アーカイブ'
|
||||
category:
|
||||
one: 'カテゴリ'
|
||||
other: 'カテゴリ'
|
||||
tag:
|
||||
one: 'タグ'
|
||||
other: 'タグ'
|
||||
post:
|
||||
one: '投稿'
|
||||
other: '投稿'
|
||||
page:
|
||||
one: 'ページ'
|
||||
other: 'ページ'
|
||||
prev: '前'
|
||||
next: '次'
|
||||
widget:
|
||||
follow: 'フォローする'
|
||||
recents: '最近の記事'
|
||||
links: 'リンク'
|
||||
catalogue: 'カタログ'
|
||||
subscribe_email: '更新を購読する'
|
||||
subscribe: '購読する'
|
||||
adsense: '広告'
|
||||
article:
|
||||
created_at: '%sに投稿'
|
||||
updated_at: '%sに更新'
|
||||
more: '続きを読む'
|
||||
comments: 'コメント'
|
||||
read_time: '%sで読む'
|
||||
word_count:
|
||||
one: '約%d語'
|
||||
other: '約%d語'
|
||||
licensing:
|
||||
author: 'Author'
|
||||
created_at: 'Posted on'
|
||||
updated_at: 'Updated on'
|
||||
licensed_under: 'Licensed under'
|
||||
donate:
|
||||
title: 'この記事は気に入りましたか? 著者をサポートする'
|
||||
afdian: 'Afdian.net'
|
||||
alipay: 'Alipay'
|
||||
wechat: 'Wechat'
|
||||
paypal: 'Paypal'
|
||||
patreon: 'Patreon'
|
||||
buymeacoffee: 'コーヒーを買って'
|
||||
plugin:
|
||||
backtotop: 'トップに戻る'
|
||||
visit_count: '%s回の訪問'
|
||||
visitor_count: '%s人のユーザーがアクセス'
|
||||
cookie_consent:
|
||||
message: このウェブサイトはあなたの経験を改善するためにCookieを使用しています。
|
||||
dismiss: 了解しました
|
||||
allow: Cookiesを許可する
|
||||
deny: 拒否する
|
||||
link: もっと詳しく知る
|
||||
policy: Cookieポリシー
|
||||
search:
|
||||
search: '検索'
|
||||
hint: '何かを入力してください...'
|
||||
no_result: 'の結果はありません'
|
||||
untitled: '(無題)'
|
||||
empty_preview: '(プレビューなし)'
|
|
@ -0,0 +1,65 @@
|
|||
common:
|
||||
archive:
|
||||
one: '아카이브'
|
||||
other: '아카이브'
|
||||
category:
|
||||
one: '카테고리'
|
||||
other: '카테고리'
|
||||
tag:
|
||||
one: '태그'
|
||||
other: '태그'
|
||||
post:
|
||||
one: '포스트'
|
||||
other: '포스트'
|
||||
page:
|
||||
one: '페이지'
|
||||
other: '페이지'
|
||||
prev: '이전'
|
||||
next: '다음'
|
||||
widget:
|
||||
follow: '팔로우'
|
||||
recents: '최근 글'
|
||||
links: '링크'
|
||||
catalogue: '카탈로그'
|
||||
subscribe_email: '업데이트 소식 받기'
|
||||
subscribe: '구독'
|
||||
adsense: '광고'
|
||||
article:
|
||||
created_at: '%s 게시 됨'
|
||||
updated_at: '%s 업데이트 됨'
|
||||
more: '자세히 보기'
|
||||
comments: '댓글'
|
||||
read_time: '%s안에 읽기'
|
||||
word_count:
|
||||
one: '약 %d 단어'
|
||||
other: '약 %d 단어'
|
||||
licensing:
|
||||
author: 'Author'
|
||||
created_at: 'Posted on'
|
||||
updated_at: 'Updated on'
|
||||
licensed_under: 'Licensed under'
|
||||
donate:
|
||||
title: '이 글이 마음에 드시나요? 다음을 통해 후원하실 수 있습니다: '
|
||||
afdian: 'Afdian.net'
|
||||
alipay: 'Alipay'
|
||||
wechat: 'Wechat'
|
||||
paypal: 'Paypal'
|
||||
patreon: 'Patreon'
|
||||
buymeacoffee: '커피 한 잔 사주기'
|
||||
plugin:
|
||||
backtotop: '맨 위로'
|
||||
visit_count: '%s회 방문'
|
||||
visitor_count: '%s명의 사용자가 방문 함'
|
||||
cookie_consent:
|
||||
message: 이 웹 사이트는 귀하의 경험을 향상시키기 위해 Cookie를 사용합니다.
|
||||
dismiss: 무시
|
||||
allow: 허용
|
||||
deny: 거부
|
||||
link: 더 알아보기
|
||||
policy: Cookie 정책
|
||||
search:
|
||||
search: '검색'
|
||||
hint: '입력 하세요...'
|
||||
no_result: '에 대한 결과 없음'
|
||||
untitled: '(제목 없음)'
|
||||
empty_preview: '(미리보기 없음)'
|
|
@ -0,0 +1,65 @@
|
|||
common:
|
||||
archive:
|
||||
one: 'Archiwum'
|
||||
other: 'Archiwum'
|
||||
category:
|
||||
one: 'Kategoria'
|
||||
other: 'Kategorie'
|
||||
tag:
|
||||
one: 'Tag'
|
||||
other: 'Tagi'
|
||||
post:
|
||||
one: 'Artykuł'
|
||||
other: 'Artykuły'
|
||||
page:
|
||||
one: 'Strona'
|
||||
other: 'Strony'
|
||||
prev: 'Poprzedni'
|
||||
next: 'Następny'
|
||||
widget:
|
||||
follow: 'SUBSKRYBUJ'
|
||||
recents: 'Najnowsze wpisy'
|
||||
links: 'Linki'
|
||||
catalogue: 'Spis treści'
|
||||
subscribe_email: 'Zapisz się, aby otrzymywać aktualizacje'
|
||||
subscribe: 'Subskrybuj'
|
||||
adsense: 'Reklama'
|
||||
article:
|
||||
created_at: 'Opublikowano %s'
|
||||
updated_at: 'Zaktualizowano %s'
|
||||
more: 'Czytaj dalej'
|
||||
comments: 'Komentarze'
|
||||
read_time: '%s czytania'
|
||||
word_count:
|
||||
one: 'Około %d słowa'
|
||||
other: 'Około %d słów'
|
||||
licensing:
|
||||
author: 'Author'
|
||||
created_at: 'Posted on'
|
||||
updated_at: 'Updated on'
|
||||
licensed_under: 'Licensed under'
|
||||
donate:
|
||||
title: 'Podoba Ci się ten artykuł? Wesprzyj autora za pomocą'
|
||||
afdian: 'Afdian.net'
|
||||
alipay: 'Alipay'
|
||||
wechat: 'Wechat'
|
||||
paypal: 'Paypal'
|
||||
patreon: 'Patreon'
|
||||
buymeacoffee: 'Kup mi kawę'
|
||||
plugin:
|
||||
backtotop: 'Powrót do góry'
|
||||
visit_count: '%s wizyty'
|
||||
visitor_count: 'Odwiedzone przez %s użytkowników'
|
||||
cookie_consent:
|
||||
message: Ta strona korzysta z plików cookie, aby poprawić Twoje doświadczenia.
|
||||
dismiss: Rozumiem!
|
||||
allow: Zezwól na pliki cookie
|
||||
deny: Odrzucać
|
||||
link: Ucz się więcej
|
||||
policy: Polityka Cookie
|
||||
search:
|
||||
search: 'szukaj'
|
||||
hint: 'Wpisz coś...'
|
||||
no_result: 'Brak wyników dla'
|
||||
untitled: '(Bez tytułu)'
|
||||
empty_preview: '(Brak podglądu)'
|
|
@ -0,0 +1,65 @@
|
|||
common:
|
||||
archive:
|
||||
one: 'Arquivo'
|
||||
other: 'Arquivos'
|
||||
category:
|
||||
one: 'Categoria'
|
||||
other: 'Categorias'
|
||||
tag:
|
||||
one: 'Tag'
|
||||
other: 'Tags'
|
||||
post:
|
||||
one: 'Artigo'
|
||||
other: 'Artigos'
|
||||
page:
|
||||
one: 'Página'
|
||||
other: 'Páginas'
|
||||
prev: 'Anterior'
|
||||
next: 'Próximo'
|
||||
widget:
|
||||
follow: 'Seguir'
|
||||
recents: 'Recentes'
|
||||
links: 'Links'
|
||||
catalogue: 'Catálogo'
|
||||
subscribe_email: 'Subscrição de atualizações'
|
||||
subscribe: 'Se inscrever'
|
||||
adsense: 'Anúncio'
|
||||
article:
|
||||
created_at: 'Postado %s'
|
||||
updated_at: 'Atualizado %s'
|
||||
more: 'Ler Mais'
|
||||
comments: 'Comentarios'
|
||||
read_time: '%s lidos'
|
||||
word_count:
|
||||
one: 'Cerca de %d palavra'
|
||||
other: 'Cerca de %d palavras'
|
||||
licensing:
|
||||
author: 'Author'
|
||||
created_at: 'Posted on'
|
||||
updated_at: 'Updated on'
|
||||
licensed_under: 'Licensed under'
|
||||
donate:
|
||||
title: 'Gostou deste artigo? Apoie o autor com'
|
||||
afdian: 'Afdian.net'
|
||||
alipay: 'Alipay'
|
||||
wechat: 'Wechat'
|
||||
paypal: 'Paypal'
|
||||
patreon: 'Patreon'
|
||||
buymeacoffee: 'Me compra um café'
|
||||
plugin:
|
||||
backtotop: 'De volta ao topo'
|
||||
visit_count: '%s visitas'
|
||||
visitor_count: 'Visitado por %s usuários'
|
||||
cookie_consent:
|
||||
message: Este site usa cookies para melhorar sua experiência.
|
||||
dismiss: Entendi!
|
||||
allow: Permitir cookies
|
||||
deny: Declínio
|
||||
link: Saber mais
|
||||
policy: Política de Cookies
|
||||
search:
|
||||
search: 'Procurar'
|
||||
hint: 'Digite alguma coisa...'
|
||||
no_result: 'Sem resultados para'
|
||||
untitled: '(Sem título)'
|
||||
empty_preview: '(Não há visualização)'
|
|
@ -0,0 +1,65 @@
|
|||
common:
|
||||
archive:
|
||||
one: 'архив'
|
||||
other: 'архивы'
|
||||
category:
|
||||
one: 'категории'
|
||||
other: 'категории'
|
||||
tag:
|
||||
one: 'тег'
|
||||
other: 'теги'
|
||||
post:
|
||||
one: 'пост'
|
||||
other: 'посты'
|
||||
page:
|
||||
one: 'страница'
|
||||
other: 'страницы'
|
||||
prev: 'Назад'
|
||||
next: 'Далее'
|
||||
widget:
|
||||
follow: 'Подписаться'
|
||||
recents: 'недавние'
|
||||
links: 'ссылки'
|
||||
catalogue: 'Каталог'
|
||||
subscribe_email: 'Подпишитесь на обновления'
|
||||
subscribe: 'Подписывайся'
|
||||
adsense: 'Рекламное объявление'
|
||||
article:
|
||||
created_at: 'Опубликовано %s'
|
||||
updated_at: 'Обновлено %s'
|
||||
more: 'Читать дальше'
|
||||
comments: 'Комментарии'
|
||||
read_time: '%s на чтение'
|
||||
word_count:
|
||||
one: 'Около %d слова'
|
||||
other: 'Примерно %d слова'
|
||||
licensing:
|
||||
author: 'Author'
|
||||
created_at: 'Posted on'
|
||||
updated_at: 'Updated on'
|
||||
licensed_under: 'Licensed under'
|
||||
donate:
|
||||
title: 'Понравилась эта статья? Поддержите автора'
|
||||
afdian: 'Afdian.net'
|
||||
alipay: 'Alipay'
|
||||
wechat: 'Wechat'
|
||||
paypal: 'Paypal'
|
||||
patreon: 'Patreon'
|
||||
buymeacoffee: 'Купи мне кофе'
|
||||
plugin:
|
||||
backtotop: 'Вернуться наверх'
|
||||
visit_count: '%s посещения'
|
||||
visitor_count: 'Посетили %s пользователя'
|
||||
cookie_consent:
|
||||
message: Этот веб-сайт использует файлы cookie для улучшения вашего опыта.
|
||||
dismiss: Понял!
|
||||
allow: Разрешить cookies
|
||||
deny: Отказаться
|
||||
link: Учить больше
|
||||
policy: Политика Cookie
|
||||
search:
|
||||
search: 'Поиск'
|
||||
hint: 'Введите что-нибудь...'
|
||||
no_result: 'Нет результатов по запросу'
|
||||
untitled: '(Без названия)'
|
||||
empty_preview: '(Нет предварительного просмотра)'
|
|
@ -0,0 +1,65 @@
|
|||
common:
|
||||
archive:
|
||||
one: 'Arhiw'
|
||||
other: 'Arhiwler'
|
||||
category:
|
||||
one: 'Bölüm'
|
||||
other: 'Bölümler'
|
||||
tag:
|
||||
one: 'Teg'
|
||||
other: 'Tegler'
|
||||
post:
|
||||
one: 'Post'
|
||||
other: 'Postlar'
|
||||
page:
|
||||
one: 'Sahypa'
|
||||
other: 'Sahypalar'
|
||||
prev: 'Öňki'
|
||||
next: 'Indiki'
|
||||
widget:
|
||||
follow: 'Abuna bol'
|
||||
recents: 'Täze habarlar'
|
||||
links: 'Linkler'
|
||||
catalogue: 'Katalog'
|
||||
subscribe_email: 'Täzelikler üçin ýazyl'
|
||||
subscribe: 'Ýazyl'
|
||||
adsense: 'Mahabat'
|
||||
article:
|
||||
created_at: 'Paýlaşyldy %s'
|
||||
updated_at: 'Üýtgedildi %s'
|
||||
more: 'Dowamy...'
|
||||
comments: 'Kommentariýa'
|
||||
read_time: '%s okaldy'
|
||||
word_count:
|
||||
one: 'Ortaça %d söz'
|
||||
other: 'Ortaça %d söz'
|
||||
licensing:
|
||||
author: 'Awtor'
|
||||
created_at: 'Paýlaşdy'
|
||||
updated_at: 'Üýtgetdi'
|
||||
licensed_under: 'Resmileşdirilen'
|
||||
donate:
|
||||
title: 'Haladynmy? Awtory gollaň'
|
||||
afdian: 'Afdian.net'
|
||||
alipay: 'Alipay'
|
||||
wechat: 'Wechat'
|
||||
paypal: 'Paypal'
|
||||
patreon: 'Patreon'
|
||||
buymeacoffee: 'Buy me a coffee'
|
||||
plugin:
|
||||
backtotop: 'Ýokaryk'
|
||||
visit_count: '%s görüldi'
|
||||
visitor_count: '%s adam gördi'
|
||||
cookie_consent:
|
||||
message: Bu web saýt siziň üçin kuki ulanýar.
|
||||
dismiss: Düşündim!
|
||||
allow: Kukini kabul et!
|
||||
deny: Närazylyk bildir
|
||||
link: Dowamy...
|
||||
policy: Kuki syýasaty
|
||||
search:
|
||||
search: 'Gözle'
|
||||
hint: 'Birzatlar ýazyň...'
|
||||
no_result: 'Tapylmady'
|
||||
untitled: 'Atlandyrylmadyk'
|
||||
empty_preview: 'Boş'
|
|
@ -0,0 +1,65 @@
|
|||
common:
|
||||
archive:
|
||||
one: 'Arşiv'
|
||||
other: 'Arşivler'
|
||||
category:
|
||||
one: 'Kategori'
|
||||
other: 'Kategoriler'
|
||||
tag:
|
||||
one: 'Etiket'
|
||||
other: 'Etiketler'
|
||||
post:
|
||||
one: 'Gönderi'
|
||||
other: 'Gönderiler'
|
||||
page:
|
||||
one: 'Sayfa'
|
||||
other: 'Sayfalar'
|
||||
prev: 'Önceki'
|
||||
next: 'Sonraki'
|
||||
widget:
|
||||
follow: 'TAKİP ET'
|
||||
recents: 'Son'
|
||||
links: 'Linkler'
|
||||
catalogue: 'Katalog'
|
||||
subscribe_email: 'Güncellemeler için abone olun'
|
||||
subscribe: 'Abone ol'
|
||||
adsense: 'İlan'
|
||||
article:
|
||||
created_at: '%s yayınlandı'
|
||||
updated_at: '%s güncellendi'
|
||||
more: 'Daha fazla oku'
|
||||
comments: 'Yorumlar'
|
||||
read_time: '%s okundu'
|
||||
word_count:
|
||||
one: 'Yaklaşık %d kelime'
|
||||
other: 'Yaklaşık %d kelime'
|
||||
licensing:
|
||||
author: 'Author'
|
||||
created_at: 'Posted on'
|
||||
updated_at: 'Updated on'
|
||||
licensed_under: 'Licensed under'
|
||||
donate:
|
||||
title: 'Bu makaleyi beğendiniz mi? Yazarı şununla destekleyin'
|
||||
afdian: 'Afdian.net'
|
||||
alipay: 'Alipay'
|
||||
wechat: 'Wechat'
|
||||
paypal: 'Paypal'
|
||||
patreon: 'Patreon'
|
||||
buymeacoffee: 'Bana bir kahve al'
|
||||
plugin:
|
||||
backtotop: 'Başa dönüş'
|
||||
visit_count: '%s ziyaret'
|
||||
visitor_count: '%s kullanıcı tarafından ziyaret edildi'
|
||||
cookie_consent:
|
||||
message: Bu web sitesi, deneyiminizi geliştirmek için çerezler kullanır.
|
||||
dismiss: Anladım!
|
||||
allow: Çerezlere izin ver
|
||||
deny: Reddet
|
||||
link: Daha fazla bilgi edin
|
||||
policy: Çerez politikası
|
||||
search:
|
||||
search: 'Search'
|
||||
hint: 'Bir şeyler yaz...'
|
||||
no_result: 'İçin sonuç yok'
|
||||
untitled: '(Başlıksız)'
|
||||
empty_preview: '(Önizleme yok)'
|
|
@ -0,0 +1,65 @@
|
|||
common:
|
||||
archive:
|
||||
one: 'Lưu trữ'
|
||||
other: 'Lưu trữ'
|
||||
category:
|
||||
one: 'Thể loại'
|
||||
other: 'Thể loại'
|
||||
tag:
|
||||
one: 'Nhãn'
|
||||
other: 'Nhãn'
|
||||
post:
|
||||
one: 'Bài viết'
|
||||
other: 'Bài viết'
|
||||
page:
|
||||
one: 'Trang'
|
||||
other: 'Trang'
|
||||
prev: 'Trước'
|
||||
next: 'Sau'
|
||||
widget:
|
||||
follow: 'Theo dõi'
|
||||
recents: 'Gần đây'
|
||||
links: 'Link'
|
||||
catalogue: 'Mục lục'
|
||||
subscribe_email: 'Theo dõi các bản cập nhật'
|
||||
subscribe: 'Theo dõi'
|
||||
adsense: 'Quảng cáo'
|
||||
article:
|
||||
created_at: 'Đã đăng %s'
|
||||
updated_at: 'Đã cập nhật %s'
|
||||
more: 'Đọc thêm'
|
||||
comments: 'Bình luận'
|
||||
read_time: '%s đọc'
|
||||
word_count:
|
||||
one: 'Khoảng %d từ'
|
||||
other: 'Khoảng %d từ'
|
||||
licensing:
|
||||
author: 'Author'
|
||||
created_at: 'Posted on'
|
||||
updated_at: 'Updated on'
|
||||
licensed_under: 'Licensed under'
|
||||
donate:
|
||||
title: 'Bạn đọc có thể ủng hộ blog qua'
|
||||
afdian: 'Afdian.net'
|
||||
alipay: 'Alipay'
|
||||
wechat: 'Wechat'
|
||||
paypal: 'Paypal'
|
||||
patreon: 'Patreon'
|
||||
buymeacoffee: 'Mua cho tôi một ly cà phê'
|
||||
plugin:
|
||||
backtotop: 'Trở lai đầu trang'
|
||||
visit_count: '%s Bạn đọc'
|
||||
visitor_count: 'Thăm bởi %s bạn đọc'
|
||||
cookie_consent:
|
||||
message: Trang web này sử dụng cookie để cải thiện trải nghiệm của bạn.
|
||||
dismiss: Hiểu rồi!
|
||||
allow: Cho phép cookie
|
||||
deny: Từ chối
|
||||
link: Tìm hiểu thêm
|
||||
policy: Chính sách Cookie
|
||||
search:
|
||||
search: 'Tìm kiếm'
|
||||
hint: 'Gõ gì đó...'
|
||||
no_result: 'Không có kết quả cho'
|
||||
untitled: '(Không có tiêu đề)'
|
||||
empty_preview: '(Không có xem trước)'
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue