Initial website
This commit is contained in:
commit
fd1bd20c85
7
.gitignore
vendored
Normal file
7
.gitignore
vendored
Normal file
@ -0,0 +1,7 @@
|
||||
.DS_Store
|
||||
Thumbs.db
|
||||
db.json
|
||||
*.log
|
||||
node_modules/
|
||||
public/
|
||||
.deploy*/
|
24
.gitlab-ci.yml
Normal file
24
.gitlab-ci.yml
Normal file
@ -0,0 +1,24 @@
|
||||
# Deploy pages with hexo
|
||||
image: node:9.7
|
||||
|
||||
pages:
|
||||
stage: deploy
|
||||
|
||||
cache:
|
||||
paths:
|
||||
- node_modules/
|
||||
|
||||
script:
|
||||
- npm install hexo-cli -g
|
||||
- npm install
|
||||
- hexo generate
|
||||
|
||||
artifacts:
|
||||
paths:
|
||||
- public
|
||||
|
||||
only:
|
||||
- pages
|
||||
|
||||
tags:
|
||||
- pages
|
81
_config.yml
Normal file
81
_config.yml
Normal file
@ -0,0 +1,81 @@
|
||||
# Hexo Configuration
|
||||
## Docs: https://hexo.io/docs/configuration.html
|
||||
## Source: https://github.com/hexojs/hexo/
|
||||
|
||||
# Site
|
||||
title: Chinwag BBS
|
||||
subtitle: BBS are back!
|
||||
description:
|
||||
keywords: bbs chinwag mysticbbs
|
||||
author: Deon George
|
||||
language: en
|
||||
timezone: Australia/Melbourne
|
||||
|
||||
# URL
|
||||
## If your site is put in a subdirectory, set url as 'http://yoursite.com/child' and root as '/child/'
|
||||
url: http://yoursite.com
|
||||
root: /
|
||||
permalink: :year/:month/:day/:title/
|
||||
permalink_defaults:
|
||||
|
||||
# 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: pages
|
||||
titlecase: false # Transform title into titlecase
|
||||
external_link: true # Open external links in new tab
|
||||
filename_case: 0
|
||||
render_drafts: false
|
||||
post_asset_folder: true
|
||||
relative_link: false
|
||||
future: true
|
||||
highlight:
|
||||
enable: true
|
||||
line_number: true
|
||||
auto_detect: 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:
|
||||
|
||||
# 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
|
||||
|
||||
# Pagination
|
||||
## Set per_page to 0 to disable pagination
|
||||
per_page: 10
|
||||
pagination_dir: page
|
||||
|
||||
# Extensions
|
||||
## Plugins: https://hexo.io/plugins/
|
||||
## Themes: https://hexo.io/themes/
|
||||
theme: hueman
|
||||
|
||||
# Deployment
|
||||
## Docs: https://hexo.io/docs/deployment.html
|
||||
deploy:
|
||||
type:
|
3642
package-lock.json
generated
Normal file
3642
package-lock.json
generated
Normal file
File diff suppressed because it is too large
Load Diff
20
package.json
Normal file
20
package.json
Normal file
@ -0,0 +1,20 @@
|
||||
{
|
||||
"name": "hexo-site",
|
||||
"version": "0.0.0",
|
||||
"private": true,
|
||||
"hexo": {
|
||||
"version": "3.7.1"
|
||||
},
|
||||
"dependencies": {
|
||||
"hexo": "^3.7.0",
|
||||
"hexo-generator-archive": "^0.1.5",
|
||||
"hexo-generator-category": "^0.1.3",
|
||||
"hexo-generator-index": "^0.2.1",
|
||||
"hexo-generator-json-content": "^3.0.1",
|
||||
"hexo-generator-tag": "^0.2.0",
|
||||
"hexo-renderer-ejs": "^0.3.1",
|
||||
"hexo-renderer-marked": "^0.3.2",
|
||||
"hexo-renderer-stylus": "^0.3.3",
|
||||
"hexo-server": "^0.3.1"
|
||||
}
|
||||
}
|
39
source/_posts/chinwag.md
Normal file
39
source/_posts/chinwag.md
Normal file
@ -0,0 +1,39 @@
|
||||
---
|
||||
title: Chinwag BBS
|
||||
comments: false
|
||||
date: 2018-08-31 16:00:24
|
||||
thumbnail: /images/chinwag.png
|
||||
category:
|
||||
- BBS
|
||||
- Mystic BBS
|
||||
---
|
||||
Chinwag is a BBS running on a Raspberry Pi under Docker.
|
||||
|
||||
If you would like to explore BBS, Echomail and Netmail without having to setup a BBS for yourself, you are welcome to connect to mine.
|
||||
|
||||
Just press the *Connect* button below, and create an account. The first time you login you'll have limited abilities, but send me a note and I'll upgrade you so that you can use the Echomail and Netmail areas.
|
||||
<div id="fTelnetContainer_chinwag_leenooks_net_10023" class="fTelnetContainer"></div>
|
||||
<script>document.write('<script src="//embed-v2.ftelnet.ca/js/ftelnet-loader.norip.xfer.js?v=' + (new Date()).getTime() + '"><\/script>');</script>
|
||||
<script>
|
||||
var Options_chinwag_leenooks_net_10023 = new fTelnetOptions();
|
||||
Options_chinwag_leenooks_net_10023.BareLFtoCRLF = false;
|
||||
Options_chinwag_leenooks_net_10023.BitsPerSecond = 57600;
|
||||
Options_chinwag_leenooks_net_10023.ConnectionType = 'tcp';
|
||||
Options_chinwag_leenooks_net_10023.Emulation = 'ansi-bbs';
|
||||
Options_chinwag_leenooks_net_10023.Enter = '\r';
|
||||
Options_chinwag_leenooks_net_10023.Font = 'CP437';
|
||||
Options_chinwag_leenooks_net_10023.ForceWss = false;
|
||||
Options_chinwag_leenooks_net_10023.Hostname = 'chinwag.leenooks.net';
|
||||
Options_chinwag_leenooks_net_10023.LocalEcho = false;
|
||||
Options_chinwag_leenooks_net_10023.Port = 10023;
|
||||
Options_chinwag_leenooks_net_10023.ProxyHostname = 'proxy-au.ftelnet.ca';
|
||||
Options_chinwag_leenooks_net_10023.ProxyPort = 8410;
|
||||
Options_chinwag_leenooks_net_10023.ScreenColumns = 80;
|
||||
Options_chinwag_leenooks_net_10023.ScreenRows = 25;
|
||||
Options_chinwag_leenooks_net_10023.SplashScreen = 'G1swbRtbNEMbWzMybS5+fi4gICAufn4uG1s3QxtbMzFt3BtbMTs0MW2xsbGxsRtbNDBtICAbWzQxbbGxG1s0MG0gIBtbNDFtsbEbWzQwbSAgG1s0MW2xsRtbNDBtICAbWzQxbbGxG1s0MG3cICAbWzQxbbGxG1s0MG0gIBtbNDFtsbEbWzQwbSAgIBtbNDFtsbEbWzQwbSAg3BtbNDFtsbGxsRtbNDBt3CAgICDcG1s0MW2xsbEbWzQwbSAgICAbWzM3bSANChtbM0MbWzA7MzJtJy4gXCAnICcgLyAuJxtbNkMbWzE7MzE7NDFtsrIbWzQwbSAgG1s0MW2yshtbNDBtICAbWzQxbbKyG1s0MG0gIBtbNDFtsrIbWzQwbSAgG1s0MW2yshtbNDBtICAbWzQxbbKyG1s0MG3fG1s0MW2yG1s0MG3cG1s0MW2yshtbNDBtICAbWzQxbbKyG1s0MG0gICAbWzQxbbKyG1s0MG0gIBtbNDFtsrIbWzQwbSAgG1s0MW2yshtbNDBtICDcG1s0MW2yG1s0MG3fIBtbNDFtsrIbWzQwbRtbMzdtDQobWzRDG1swOzMxbS5+IC5+fn4uLn4uG1s3QxtbMW3f3xtbNkPf3yAg398gIN/fICDf3xtbMzBt2dkbWzMxbd/f3yAg398gIBtbMzBt2RtbMzFt398gIN/fIBtbMzBt2RtbMzFt398gIN/fG1szMG3AwBtbMzFt398bWzM3bQ0KG1szQxtbMDszMW06IC5+Lid+Jy5+LiA6G1s2QxtbMTszNzs0N22yshtbNDBtG1s2QxtbNDdtsrIbWzQwbd/fG1s0N22yshtbNDBtICAbWzQ3bbKyG1s0MG0gIBtbNDdtsrIbWzQwbSAgIBtbNDdtsrIbWzQwbSAgG1s0N22yshtbNDBtIBtbNDdtshtbNDBtIBtbNDdtsrIbWzQwbSAgG1s0N22yshtbNDBt398bWzQ3bbKyG1s0MG0gIBtbNDdtshtbNDBt3SDfG1s0N22yshtbNDBtDQobWzJDG1swOzMxbX4gKCAgICkgKCAgICkgfhtbNUMbWzE7Mzc7NDdtsbEbWzQwbSAgG1s0N22xsRtbNDBtICAbWzQ3bbGxG1s0MG0gIBtbNDdtsbEbWzQwbSAgG1s0N22xsRtbNDBtICAbWzQ3bbGxG1s0MG0gICAbWzQ3bbGxG1s0MG0gIBtbNDdtsbEbWzQwbSAbWzQ3bbEbWzQwbSAbWzQ3bbGxG1s0MG0gIBtbNDdtsbEbWzQwbSAgG1s0N22xsRtbNDBtICDfG1s0N22xG1s0MG3cIBtbNDdtsbEbWzQwbQ0KG1sxQxtbMDszMW0oIDogJ34nLn4uJ34nIDogKSAgICAbWzE7Mzdt3xtbNDdtsLCwsLAbWzQwbSAgG1s0N22wsBtbNDBtICAbWzQ3bbCwG1s0MG0gIBtbNDdtsLAbWzQwbSAgG1s0N22wsBtbNDBtICAgG1s0N22wsBtbNDBtICDfG1s0N22wsBtbNDBt3xtbNDdtsLAbWzQwbd8gIBtbNDdtsLAbWzQwbSAgG1s0N22wsBtbNDBtICAgIN8bWzQ3bbCwsBtbNDBtDQobWzJDG1swOzMxbX4gLn4gKCAgICkgfi4gfhtbNjFDG1swbQ0KG1szQxtbMzFtKCAgOiAnficgOiAgKRtbNkNXZWxvbWUhG1s0NUMgDQobWzRDJ34gLn5+fi4gficbWzdDQ2hpbndhZyBpcyBydW5uaW5nIG9uIGEgUmFzcGJlcnJ5IFBJIGluIERvY2tlciEbWzVDIA0KG1s4Qyd+Jw0KG1s3QxtbMTszMG1fLS1ffFwbWzlDU3lzdGVtICAgIDogWxtbMzdtQ2hpbndhZyAgIBtbMzBtXRtbNkNOb2RlICA6IFsbWzM3bSAgICAgICAxG1szMG1dDQobWzZDLxtbNkNcG1s4Q015c3RpYyBCQlM6IFsbWzM3bTEuMTIgQTM5ICAbWzMwbV0bWzZDRGF0ZSAgOiBbG1szN20xOC8wOC8xOBtbMzBtXQ0KG1s2Q1xfLl9fLhtbMzdtKhtbMzBtLxtbOENTeXNvcBtbNUM6IFsbWzM3bWRlb24gICAgICAbWzMwbV0bWzZDVGltZSAgOiBbG1szN20gIDAxOjAwYRtbMzBtXQ0KG1sxMkNWDQo=';
|
||||
var fTelnet_chinwag_leenooks_net_10023 = new fTelnetClient('fTelnetContainer_chinwag_leenooks_net_10023', Options_chinwag_leenooks_net_10023);
|
||||
</script>
|
||||
|
||||
There is some useful terminal emulation software available on the Net.
|
||||
|
||||
I'm a MAC use so I use [SyncTERM](http://syncterm.bbsdev.net) - it works a treat!
|
32
source/_posts/mysticbbs.md
Normal file
32
source/_posts/mysticbbs.md
Normal file
@ -0,0 +1,32 @@
|
||||
---
|
||||
title: MysticBBS
|
||||
thumbnail: /images/mysticlogo.png
|
||||
comments: false
|
||||
categories:
|
||||
- Docker
|
||||
- MysticBBS
|
||||
tags:
|
||||
- Docker
|
||||
date: 2018-09-01 12:00:00
|
||||
---
|
||||
[Mystic BBS](http://mysticbbs.com) is great software to get up and running and get (back) into the BBS scene.
|
||||
|
||||
There is a wealth of information on the [wiki](http://wiki.mysticbbs.com), or you can even go through [*Mystic Guy's* youtube videos](https://www.youtube.com/channel/UCPOUHszVXaGNSlK3AdI7kLQ).
|
||||
|
||||
If you would like to get up and running quickly, I've created some Docker Images which you can use as a starting point. The images are available for Raspberry Pi (ARM) and Intel.
|
||||
|
||||
There are two images:
|
||||
<table><tr><th width="20%">Name</th><th width="80%">Information</th></tr><tr><td>armv7l</td><td>This image is a clean installation of Mystic BBS as provided by the upstream developer. It does have the pre-requisites so that spell is enabled and cryptlib is also installed so that you can use SSH based connections.</td></tr><tr><td>armv7l-extras</td><td>This image extends the base image and provides some doors and utilities.</td></tr><tr><td>x86_64</td><td>Just like the image above, however, this is for Intel Linux platforms.</td></tr><tr><td>x86_64-extras</td><td>This image extends the base image and provides some doors and utilities.</td></tr></table>
|
||||
|
||||
To get the images, just install docker onto your linux platform, and then do
|
||||
|
||||
`docker pull registry.leenooks.net/leenooks/mysticbbs:1.12a39-[TAG ABOVE]`
|
||||
|
||||
To make sure your data is kept between re-creations of your docker container, you have two options:
|
||||
1. Start your mystic container with `-v [HOST PATH]:/mystic/data`, or
|
||||
2. Start your subsequent containers with `--volumes_from=[ORIG CONTAINER]`.
|
||||
In this case, you might want to rename your old container if you want to use the same container name.
|
||||
|
||||
You could even use this image to have our containers in a docker swarm (as I do).
|
||||
|
||||
If you need any help, [login](/2018/08/31/chinwag/) to my BBS and send me a message, or if you use another BBS, or a Sysop of a BBS and connected to one of the networks I'm connected to, you can send me a Netmail. See the list of [networks](/networks) that I'm already connected to.
|
13
source/about/index.md
Normal file
13
source/about/index.md
Normal file
@ -0,0 +1,13 @@
|
||||
---
|
||||
title: Chinwag BBS
|
||||
date: 2018-08-30 21:27:43
|
||||
---
|
||||
In the early 1990's I ran a two line BBS based from St Kilda, Vic Australia called Doofus BBS. It had FidoNet node 3:632/509.
|
||||
|
||||
As the Internet came around, BBS's last popularity and I grew up, got busy working, living and parenting.
|
||||
|
||||
I recently discovered my old BBS backup disks, and wanted to see if I could bring it back online. While I havent got there yet, I discovered a huge resurgence of BBS's and thought I'd have a play with that Software once more.
|
||||
|
||||
So, today my BBS "Chinwag" is running on a Raspberry Pi in a Docker Container.
|
||||
|
||||
If you would like to take a look and be a user, you are welcome! If you need any help bringing your own BBS online, [login](/2018/08/31/chinwag/) to mine and send me a message.
|
BIN
source/images/bbs-header.png
Normal file
BIN
source/images/bbs-header.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 24 KiB |
BIN
source/images/chinwag.png
Normal file
BIN
source/images/chinwag.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 4.6 KiB |
BIN
source/images/favicon.ico
Normal file
BIN
source/images/favicon.ico
Normal file
Binary file not shown.
After Width: | Height: | Size: 3.9 KiB |
BIN
source/images/mysticlogo.png
Normal file
BIN
source/images/mysticlogo.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 15 KiB |
13
source/networks/index.md
Normal file
13
source/networks/index.md
Normal file
@ -0,0 +1,13 @@
|
||||
---
|
||||
title: Fidonet Networks
|
||||
date: 2018-09-03 17:24:36
|
||||
---
|
||||
My BBS's are a member of the following networks.
|
||||
|
||||
| Network | Address |
|
||||
| - | - |
|
||||
| FidoNet | 3:633/509 |
|
||||
| fsxNet | 21:2/116 |
|
||||
| piNet | 314:314/180 |
|
||||
|
||||
If you want to send me a message, address it to `deon` at one of those network addresses above.
|
339
themes/hueman/LICENSE
Normal file
339
themes/hueman/LICENSE
Normal file
@ -0,0 +1,339 @@
|
||||
GNU GENERAL PUBLIC LICENSE
|
||||
Version 2, June 1991
|
||||
|
||||
Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
|
||||
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
Everyone is permitted to copy and distribute verbatim copies
|
||||
of this license document, but changing it is not allowed.
|
||||
|
||||
Preamble
|
||||
|
||||
The licenses for most software are designed to take away your
|
||||
freedom to share and change it. By contrast, the GNU General Public
|
||||
License is intended to guarantee your freedom to share and change free
|
||||
software--to make sure the software is free for all its users. This
|
||||
General Public License applies to most of the Free Software
|
||||
Foundation's software and to any other program whose authors commit to
|
||||
using it. (Some other Free Software Foundation software is covered by
|
||||
the GNU Lesser General Public License instead.) You can apply it to
|
||||
your programs, too.
|
||||
|
||||
When we speak of free software, we are referring to freedom, not
|
||||
price. Our General Public Licenses are designed to make sure that you
|
||||
have the freedom to distribute copies of free software (and charge for
|
||||
this service if you wish), that you receive source code or can get it
|
||||
if you want it, that you can change the software or use pieces of it
|
||||
in new free programs; and that you know you can do these things.
|
||||
|
||||
To protect your rights, we need to make restrictions that forbid
|
||||
anyone to deny you these rights or to ask you to surrender the rights.
|
||||
These restrictions translate to certain responsibilities for you if you
|
||||
distribute copies of the software, or if you modify it.
|
||||
|
||||
For example, if you distribute copies of such a program, whether
|
||||
gratis or for a fee, you must give the recipients all the rights that
|
||||
you have. You must make sure that they, too, receive or can get the
|
||||
source code. And you must show them these terms so they know their
|
||||
rights.
|
||||
|
||||
We protect your rights with two steps: (1) copyright the software, and
|
||||
(2) offer you this license which gives you legal permission to copy,
|
||||
distribute and/or modify the software.
|
||||
|
||||
Also, for each author's protection and ours, we want to make certain
|
||||
that everyone understands that there is no warranty for this free
|
||||
software. If the software is modified by someone else and passed on, we
|
||||
want its recipients to know that what they have is not the original, so
|
||||
that any problems introduced by others will not reflect on the original
|
||||
authors' reputations.
|
||||
|
||||
Finally, any free program is threatened constantly by software
|
||||
patents. We wish to avoid the danger that redistributors of a free
|
||||
program will individually obtain patent licenses, in effect making the
|
||||
program proprietary. To prevent this, we have made it clear that any
|
||||
patent must be licensed for everyone's free use or not licensed at all.
|
||||
|
||||
The precise terms and conditions for copying, distribution and
|
||||
modification follow.
|
||||
|
||||
GNU GENERAL PUBLIC LICENSE
|
||||
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
||||
|
||||
0. This License applies to any program or other work which contains
|
||||
a notice placed by the copyright holder saying it may be distributed
|
||||
under the terms of this General Public License. The "Program", below,
|
||||
refers to any such program or work, and a "work based on the Program"
|
||||
means either the Program or any derivative work under copyright law:
|
||||
that is to say, a work containing the Program or a portion of it,
|
||||
either verbatim or with modifications and/or translated into another
|
||||
language. (Hereinafter, translation is included without limitation in
|
||||
the term "modification".) Each licensee is addressed as "you".
|
||||
|
||||
Activities other than copying, distribution and modification are not
|
||||
covered by this License; they are outside its scope. The act of
|
||||
running the Program is not restricted, and the output from the Program
|
||||
is covered only if its contents constitute a work based on the
|
||||
Program (independent of having been made by running the Program).
|
||||
Whether that is true depends on what the Program does.
|
||||
|
||||
1. You may copy and distribute verbatim copies of the Program's
|
||||
source code as you receive it, in any medium, provided that you
|
||||
conspicuously and appropriately publish on each copy an appropriate
|
||||
copyright notice and disclaimer of warranty; keep intact all the
|
||||
notices that refer to this License and to the absence of any warranty;
|
||||
and give any other recipients of the Program a copy of this License
|
||||
along with the Program.
|
||||
|
||||
You may charge a fee for the physical act of transferring a copy, and
|
||||
you may at your option offer warranty protection in exchange for a fee.
|
||||
|
||||
2. You may modify your copy or copies of the Program or any portion
|
||||
of it, thus forming a work based on the Program, and copy and
|
||||
distribute such modifications or work under the terms of Section 1
|
||||
above, provided that you also meet all of these conditions:
|
||||
|
||||
a) You must cause the modified files to carry prominent notices
|
||||
stating that you changed the files and the date of any change.
|
||||
|
||||
b) You must cause any work that you distribute or publish, that in
|
||||
whole or in part contains or is derived from the Program or any
|
||||
part thereof, to be licensed as a whole at no charge to all third
|
||||
parties under the terms of this License.
|
||||
|
||||
c) If the modified program normally reads commands interactively
|
||||
when run, you must cause it, when started running for such
|
||||
interactive use in the most ordinary way, to print or display an
|
||||
announcement including an appropriate copyright notice and a
|
||||
notice that there is no warranty (or else, saying that you provide
|
||||
a warranty) and that users may redistribute the program under
|
||||
these conditions, and telling the user how to view a copy of this
|
||||
License. (Exception: if the Program itself is interactive but
|
||||
does not normally print such an announcement, your work based on
|
||||
the Program is not required to print an announcement.)
|
||||
|
||||
These requirements apply to the modified work as a whole. If
|
||||
identifiable sections of that work are not derived from the Program,
|
||||
and can be reasonably considered independent and separate works in
|
||||
themselves, then this License, and its terms, do not apply to those
|
||||
sections when you distribute them as separate works. But when you
|
||||
distribute the same sections as part of a whole which is a work based
|
||||
on the Program, the distribution of the whole must be on the terms of
|
||||
this License, whose permissions for other licensees extend to the
|
||||
entire whole, and thus to each and every part regardless of who wrote it.
|
||||
|
||||
Thus, it is not the intent of this section to claim rights or contest
|
||||
your rights to work written entirely by you; rather, the intent is to
|
||||
exercise the right to control the distribution of derivative or
|
||||
collective works based on the Program.
|
||||
|
||||
In addition, mere aggregation of another work not based on the Program
|
||||
with the Program (or with a work based on the Program) on a volume of
|
||||
a storage or distribution medium does not bring the other work under
|
||||
the scope of this License.
|
||||
|
||||
3. You may copy and distribute the Program (or a work based on it,
|
||||
under Section 2) in object code or executable form under the terms of
|
||||
Sections 1 and 2 above provided that you also do one of the following:
|
||||
|
||||
a) Accompany it with the complete corresponding machine-readable
|
||||
source code, which must be distributed under the terms of Sections
|
||||
1 and 2 above on a medium customarily used for software interchange; or,
|
||||
|
||||
b) Accompany it with a written offer, valid for at least three
|
||||
years, to give any third party, for a charge no more than your
|
||||
cost of physically performing source distribution, a complete
|
||||
machine-readable copy of the corresponding source code, to be
|
||||
distributed under the terms of Sections 1 and 2 above on a medium
|
||||
customarily used for software interchange; or,
|
||||
|
||||
c) Accompany it with the information you received as to the offer
|
||||
to distribute corresponding source code. (This alternative is
|
||||
allowed only for noncommercial distribution and only if you
|
||||
received the program in object code or executable form with such
|
||||
an offer, in accord with Subsection b above.)
|
||||
|
||||
The source code for a work means the preferred form of the work for
|
||||
making modifications to it. For an executable work, complete source
|
||||
code means all the source code for all modules it contains, plus any
|
||||
associated interface definition files, plus the scripts used to
|
||||
control compilation and installation of the executable. However, as a
|
||||
special exception, the source code distributed need not include
|
||||
anything that is normally distributed (in either source or binary
|
||||
form) with the major components (compiler, kernel, and so on) of the
|
||||
operating system on which the executable runs, unless that component
|
||||
itself accompanies the executable.
|
||||
|
||||
If distribution of executable or object code is made by offering
|
||||
access to copy from a designated place, then offering equivalent
|
||||
access to copy the source code from the same place counts as
|
||||
distribution of the source code, even though third parties are not
|
||||
compelled to copy the source along with the object code.
|
||||
|
||||
4. You may not copy, modify, sublicense, or distribute the Program
|
||||
except as expressly provided under this License. Any attempt
|
||||
otherwise to copy, modify, sublicense or distribute the Program is
|
||||
void, and will automatically terminate your rights under this License.
|
||||
However, parties who have received copies, or rights, from you under
|
||||
this License will not have their licenses terminated so long as such
|
||||
parties remain in full compliance.
|
||||
|
||||
5. You are not required to accept this License, since you have not
|
||||
signed it. However, nothing else grants you permission to modify or
|
||||
distribute the Program or its derivative works. These actions are
|
||||
prohibited by law if you do not accept this License. Therefore, by
|
||||
modifying or distributing the Program (or any work based on the
|
||||
Program), you indicate your acceptance of this License to do so, and
|
||||
all its terms and conditions for copying, distributing or modifying
|
||||
the Program or works based on it.
|
||||
|
||||
6. Each time you redistribute the Program (or any work based on the
|
||||
Program), the recipient automatically receives a license from the
|
||||
original licensor to copy, distribute or modify the Program subject to
|
||||
these terms and conditions. You may not impose any further
|
||||
restrictions on the recipients' exercise of the rights granted herein.
|
||||
You are not responsible for enforcing compliance by third parties to
|
||||
this License.
|
||||
|
||||
7. If, as a consequence of a court judgment or allegation of patent
|
||||
infringement or for any other reason (not limited to patent issues),
|
||||
conditions are imposed on you (whether by court order, agreement or
|
||||
otherwise) that contradict the conditions of this License, they do not
|
||||
excuse you from the conditions of this License. If you cannot
|
||||
distribute so as to satisfy simultaneously your obligations under this
|
||||
License and any other pertinent obligations, then as a consequence you
|
||||
may not distribute the Program at all. For example, if a patent
|
||||
license would not permit royalty-free redistribution of the Program by
|
||||
all those who receive copies directly or indirectly through you, then
|
||||
the only way you could satisfy both it and this License would be to
|
||||
refrain entirely from distribution of the Program.
|
||||
|
||||
If any portion of this section is held invalid or unenforceable under
|
||||
any particular circumstance, the balance of the section is intended to
|
||||
apply and the section as a whole is intended to apply in other
|
||||
circumstances.
|
||||
|
||||
It is not the purpose of this section to induce you to infringe any
|
||||
patents or other property right claims or to contest validity of any
|
||||
such claims; this section has the sole purpose of protecting the
|
||||
integrity of the free software distribution system, which is
|
||||
implemented by public license practices. Many people have made
|
||||
generous contributions to the wide range of software distributed
|
||||
through that system in reliance on consistent application of that
|
||||
system; it is up to the author/donor to decide if he or she is willing
|
||||
to distribute software through any other system and a licensee cannot
|
||||
impose that choice.
|
||||
|
||||
This section is intended to make thoroughly clear what is believed to
|
||||
be a consequence of the rest of this License.
|
||||
|
||||
8. If the distribution and/or use of the Program is restricted in
|
||||
certain countries either by patents or by copyrighted interfaces, the
|
||||
original copyright holder who places the Program under this License
|
||||
may add an explicit geographical distribution limitation excluding
|
||||
those countries, so that distribution is permitted only in or among
|
||||
countries not thus excluded. In such case, this License incorporates
|
||||
the limitation as if written in the body of this License.
|
||||
|
||||
9. The Free Software Foundation may publish revised and/or new versions
|
||||
of the General Public License from time to time. Such new versions will
|
||||
be similar in spirit to the present version, but may differ in detail to
|
||||
address new problems or concerns.
|
||||
|
||||
Each version is given a distinguishing version number. If the Program
|
||||
specifies a version number of this License which applies to it and "any
|
||||
later version", you have the option of following the terms and conditions
|
||||
either of that version or of any later version published by the Free
|
||||
Software Foundation. If the Program does not specify a version number of
|
||||
this License, you may choose any version ever published by the Free Software
|
||||
Foundation.
|
||||
|
||||
10. If you wish to incorporate parts of the Program into other free
|
||||
programs whose distribution conditions are different, write to the author
|
||||
to ask for permission. For software which is copyrighted by the Free
|
||||
Software Foundation, write to the Free Software Foundation; we sometimes
|
||||
make exceptions for this. Our decision will be guided by the two goals
|
||||
of preserving the free status of all derivatives of our free software and
|
||||
of promoting the sharing and reuse of software generally.
|
||||
|
||||
NO WARRANTY
|
||||
|
||||
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
|
||||
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
|
||||
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
|
||||
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
|
||||
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
|
||||
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
|
||||
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
|
||||
REPAIR OR CORRECTION.
|
||||
|
||||
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
|
||||
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
|
||||
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
|
||||
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
|
||||
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
|
||||
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
|
||||
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
|
||||
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
|
||||
POSSIBILITY OF SUCH DAMAGES.
|
||||
|
||||
END OF TERMS AND CONDITIONS
|
||||
|
||||
How to Apply These Terms to Your New Programs
|
||||
|
||||
If you develop a new program, and you want it to be of the greatest
|
||||
possible use to the public, the best way to achieve this is to make it
|
||||
free software which everyone can redistribute and change under these terms.
|
||||
|
||||
To do so, attach the following notices to the program. It is safest
|
||||
to attach them to the start of each source file to most effectively
|
||||
convey the exclusion of warranty; and each file should have at least
|
||||
the "copyright" line and a pointer to where the full notice is found.
|
||||
|
||||
A Hexo migrator that import off-site images referenced in markdown source
|
||||
Copyright (C) 2013 AKFish
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License along
|
||||
with this program; if not, write to the Free Software Foundation, Inc.,
|
||||
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
|
||||
Also add information on how to contact you by electronic and paper mail.
|
||||
|
||||
If the program is interactive, make it output a short notice like this
|
||||
when it starts in an interactive mode:
|
||||
|
||||
Gnomovision version 69, Copyright (C) year name of author
|
||||
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
||||
This is free software, and you are welcome to redistribute it
|
||||
under certain conditions; type `show c' for details.
|
||||
|
||||
The hypothetical commands `show w' and `show c' should show the appropriate
|
||||
parts of the General Public License. Of course, the commands you use may
|
||||
be called something other than `show w' and `show c'; they could even be
|
||||
mouse-clicks or menu items--whatever suits your program.
|
||||
|
||||
You should also get your employer (if you work as a programmer) or your
|
||||
school, if any, to sign a "copyright disclaimer" for the program, if
|
||||
necessary. Here is a sample; alter the names:
|
||||
|
||||
Yoyodyne, Inc., hereby disclaims all copyright interest in the program
|
||||
`Gnomovision' (which makes passes at compilers) written by James Hacker.
|
||||
|
||||
{signature of Ty Coon}, 1 April 1989
|
||||
Ty Coon, President of Vice
|
||||
|
||||
This General Public License does not permit incorporating your program into
|
||||
proprietary programs. If your program is a subroutine library, you may
|
||||
consider it more useful to permit linking proprietary applications with the
|
||||
library. If this is what you want to do, use the GNU Lesser General
|
||||
Public License instead of this License.
|
68
themes/hueman/README.md
Normal file
68
themes/hueman/README.md
Normal file
@ -0,0 +1,68 @@
|
||||
# Hueman
|
||||
#### Probably the most beautiful theme for Hexo. [Preview](http://ppoffice.github.io/hexo-theme-hueman/)
|
||||
|
||||
![Hueman](http://ppoffice.github.io/hexo-theme-hueman/gallery/screenshot.jpg "")
|
||||
|
||||
> This theme is ported from [AlxMedia](https://github.com/AlxMedia)'s the WordPress theme [Hueman](https://github.com/AlxMedia/hueman).
|
||||
|
||||
> Special thanks to [AlxMedia](https://github.com/AlxMedia), who designed the original theme [Hueman](https://github.com/AlxMedia/hueman) for wordpress.
|
||||
|
||||
#### [View Documentation](https://github.com/ppoffice/hexo-theme-hueman/wiki)
|
||||
:star: It is strongly recommended that you read the docs before using Hueman.
|
||||
|
||||
## Features
|
||||
|
||||
### Responsive Layout
|
||||
|
||||
Hueman knows on what screen size you are browsering the website, and reorganize the layout to fit your device.
|
||||
|
||||
![](http://ppoffice.github.io/hexo-theme-hueman/gallery/responsive.jpg "")
|
||||
|
||||
### Categories inside Main Menu
|
||||
|
||||
Hueman inserts your blog categories into main menu in the header section. You can enable/disable this feature in `menu` setting.
|
||||
|
||||
![](http://ppoffice.github.io/hexo-theme-hueman/gallery/main-menu.jpg "")
|
||||
|
||||
### Self-hosted Insite Search Engine
|
||||
With the help of [Insight Search](https://github.com/ppoffice/hexo-theme-hueman/wiki/Search#insight-search), you can search anything inside your site without any third-party plugin.
|
||||
|
||||
![](http://ppoffice.github.io/hexo-theme-hueman/gallery/insight-search.png "")
|
||||
|
||||
### Custom Comment Services
|
||||
Hueman supports several comment services, give you better choices to communicate with your readers.
|
||||
|
||||
![](http://ppoffice.github.io/hexo-theme-hueman/gallery/custom-comments.png "")
|
||||
|
||||
### Thumbnail
|
||||
|
||||
Hueman uses the `thumbnail` [front-matter](https://hexo.io/docs/front-matter.html) option to set the thumbnail for a post. If the post does not have a `thumbnail` option, Hueman will find the first image in the post as the thumbnail. You can enable/disable this feature in `thumbnail` setting.
|
||||
|
||||
![](http://ppoffice.github.io/hexo-theme-hueman/gallery/thumbnail.jpg "")
|
||||
|
||||
### Code Highlight
|
||||
Hueman has more than 60 themes imported from [Highlight.js](https://github.com/isagalaev/highlight.js), and it is very easy to customize your own highlight theme.
|
||||
|
||||
![](http://ppoffice.github.io/hexo-theme-hueman/gallery/code-highlight.png "")
|
||||
|
||||
### lightgallery
|
||||
|
||||
Hueman uses [lightgallery.js](https://sachinchoolur.github.io/lightgallery.js/) to showcase your photos. Just enable it in your configuration, and that's all!
|
||||
|
||||
![](http://ppoffice.github.io/hexo-theme-hueman/gallery/lightgallery.jpg "")
|
||||
|
||||
### Sidebar
|
||||
|
||||
Hueman provides 6 built-in widgets:
|
||||
|
||||
- recent_posts
|
||||
- category
|
||||
- archives
|
||||
- tag
|
||||
- tagcloud
|
||||
- links
|
||||
|
||||
All of them are enabled by default. You can edit them in `widget` setting.
|
||||
|
||||
### And so many new features to be explored...
|
||||
[View Documentation](https://github.com/ppoffice/hexo-theme-hueman/wiki)
|
106
themes/hueman/_config.yml
Normal file
106
themes/hueman/_config.yml
Normal file
@ -0,0 +1,106 @@
|
||||
# Menus
|
||||
menu:
|
||||
Home: /
|
||||
# Delete this row if you don't want categories in your header nav bar
|
||||
Categories:
|
||||
Networks: /networks/index.html
|
||||
About: /about/index.html
|
||||
|
||||
# Customize
|
||||
customize:
|
||||
logo:
|
||||
width: 320
|
||||
height: 90
|
||||
url: /images/bbs-header.png
|
||||
theme_color: '#006bde'
|
||||
highlight: androidstudio
|
||||
sidebar: left # sidebar position, options: left, right
|
||||
thumbnail: true # enable posts thumbnail, options: true, false
|
||||
favicon: /images/favicon.ico # path to favicon
|
||||
# social_links: # for more icons, please see http://fontawesome.io/icons/#brand
|
||||
# twitter: /
|
||||
# facebook: /
|
||||
# google-plus: /
|
||||
# github: https://github.com/ppoffice/hexo-theme-hueman
|
||||
# weibo: /
|
||||
# rss: /
|
||||
|
||||
# Widgets
|
||||
widgets:
|
||||
# - catalog
|
||||
- recent_posts
|
||||
- category
|
||||
# - archive
|
||||
- tag
|
||||
# - tagcloud
|
||||
# - links
|
||||
|
||||
# Search
|
||||
search:
|
||||
insight: true # you need to install `hexo-generator-json-content` before using Insight Search
|
||||
swiftype: # enter swiftype install key here
|
||||
baidu: false # you need to disable other search engines to use Baidu search, options: true, false
|
||||
|
||||
# Comment
|
||||
comment:
|
||||
disqus: # enter disqus shortname here
|
||||
duoshuo: # enter duoshuo shortname here
|
||||
youyan: # enter youyan uid here
|
||||
facebook: # enter true to enable
|
||||
isso: # options for isso. All fields below are OPTIONAL (except for site). See https://posativ.org/isso/docs/configuration/client/ for more information.
|
||||
on: # enter true to enable isso
|
||||
site: # enter the domain name of your own comment isso server, eg. comments.example.com
|
||||
lang: # two letter language code, eg. en
|
||||
reply-to-self: # true when your server spam guard has this value set
|
||||
require-author: # true when your server spam guard has this value set
|
||||
require-email: # true when your server spam guard has this value set
|
||||
max-comments-top: # number of top level comments to show, specify "inf" for all
|
||||
max-comments-nested: # number of nested comments to show.
|
||||
reveal-on-click: # number of comments to reveal when clicking "hidden" link
|
||||
avatar: # true|false, setting to enable avatar generation
|
||||
avatar-bg: # background color of avatar, i.e. "#f0f0f0"
|
||||
avatar-fg: # set pallet of foreground colors (up to 8) i.e. "#9abf88 #5698c4 #e279a3 #9163b6"
|
||||
vote: # true|false, setting to enable voting feature on client side.
|
||||
vote-levels: # levels to customize appearance of comments, eg. "[-5, 5, 15]" or "0,5,10"
|
||||
changyan:
|
||||
appId: # enter the changyan appId here
|
||||
appKey: # enter the changyan appKey here
|
||||
on: # enter true to enable
|
||||
valine: # Valine Comment System https://github.com/xCss/Valine
|
||||
on: # enter true to enable valine
|
||||
appId: # enter the leancloud application appId here
|
||||
appKey: # enter the leancloud application appKey here
|
||||
notify: # enter true to enable <Mail notifier> https://github.com/xCss/Valine/wiki/Valine-%E8%AF%84%E8%AE%BA%E7%B3%BB%E7%BB%9F%E4%B8%AD%E7%9A%84%E9%82%AE%E4%BB%B6%E6%8F%90%E9%86%92%E8%AE%BE%E7%BD%AE
|
||||
verify: # enter true to enable <Validation code>
|
||||
placeholder: Just Do It # enter the comment box placeholder
|
||||
avatar: identicon # (''/mm/identicon/monsterid/wavatar/retro/hide), more to see https://valine.js.org/avatar/
|
||||
avatar_cdn: https://gravatar.loli.net/avatar/ # avatar CDN address, default gravatar.loli.net
|
||||
pageSize: 10 # comments of one page
|
||||
|
||||
# Share
|
||||
share: default # options: jiathis, bdshare, addtoany, default
|
||||
|
||||
# Plugins
|
||||
plugins:
|
||||
lightgallery: true # options: true, false
|
||||
justifiedgallery: true # options: true, false
|
||||
google_analytics: # enter the tracking ID for your Google Analytics
|
||||
baidu_analytics: # enter Baidu Analytics hash key
|
||||
bing_site_verification: # enter Bing verification key here
|
||||
statcounter:
|
||||
sc_project: # enter statcounter project id
|
||||
sc_invisible: # enter 1 to make statcounter invisible
|
||||
sc_security: # enter security code
|
||||
public: # enter true if you want a link to your public stats. Must be configured on statcouter as well.
|
||||
on: # enter true to enable statcounter
|
||||
mathjax: false # options: true, false
|
||||
|
||||
# Miscellaneous
|
||||
miscellaneous:
|
||||
open_graph: # see http://ogp.me
|
||||
fb_app_id:
|
||||
fb_admins:
|
||||
twitter_id:
|
||||
google_plus:
|
||||
links:
|
||||
Mystic Docker: https://dev.leenooks.net/leenooks/mysticbbs
|
105
themes/hueman/_config.yml.example
Normal file
105
themes/hueman/_config.yml.example
Normal file
@ -0,0 +1,105 @@
|
||||
# Menus
|
||||
menu:
|
||||
Home: /
|
||||
# Delete this row if you don't want categories in your header nav bar
|
||||
Categories:
|
||||
About: /about/index.html
|
||||
|
||||
# Customize
|
||||
customize:
|
||||
logo:
|
||||
width: 165
|
||||
height: 60
|
||||
url: images/logo-header.png
|
||||
theme_color: '#006bde'
|
||||
highlight: androidstudio
|
||||
sidebar: left # sidebar position, options: left, right
|
||||
thumbnail: true # enable posts thumbnail, options: true, false
|
||||
favicon: # path to favicon
|
||||
social_links: # for more icons, please see http://fontawesome.io/icons/#brand
|
||||
twitter: /
|
||||
facebook: /
|
||||
google-plus: /
|
||||
github: https://github.com/ppoffice/hexo-theme-hueman
|
||||
weibo: /
|
||||
rss: /
|
||||
|
||||
# Widgets
|
||||
widgets:
|
||||
- catalog
|
||||
- recent_posts
|
||||
- category
|
||||
- archive
|
||||
- tag
|
||||
- tagcloud
|
||||
- links
|
||||
|
||||
# Search
|
||||
search:
|
||||
insight: true # you need to install `hexo-generator-json-content` before using Insight Search
|
||||
swiftype: # enter swiftype install key here
|
||||
baidu: false # you need to disable other search engines to use Baidu search, options: true, false
|
||||
|
||||
# Comment
|
||||
comment:
|
||||
disqus: hexo-theme-hueman # enter disqus shortname here
|
||||
duoshuo: # enter duoshuo shortname here
|
||||
youyan: # enter youyan uid here
|
||||
facebook: # enter true to enable
|
||||
isso: # options for isso. All fields below are OPTIONAL (except for site). See https://posativ.org/isso/docs/configuration/client/ for more information.
|
||||
on: # enter true to enable isso
|
||||
site: # enter the domain name of your own comment isso server, eg. comments.example.com
|
||||
lang: # two letter language code, eg. en
|
||||
reply-to-self: # true when your server spam guard has this value set
|
||||
require-author: # true when your server spam guard has this value set
|
||||
require-email: # true when your server spam guard has this value set
|
||||
max-comments-top: # number of top level comments to show, specify "inf" for all
|
||||
max-comments-nested: # number of nested comments to show.
|
||||
reveal-on-click: # number of comments to reveal when clicking "hidden" link
|
||||
avatar: # true|false, setting to enable avatar generation
|
||||
avatar-bg: # background color of avatar, i.e. "#f0f0f0"
|
||||
avatar-fg: # set pallet of foreground colors (up to 8) i.e. "#9abf88 #5698c4 #e279a3 #9163b6"
|
||||
vote: # true|false, setting to enable voting feature on client side.
|
||||
vote-levels: # levels to customize appearance of comments, eg. "[-5, 5, 15]" or "0,5,10"
|
||||
changyan:
|
||||
appId: # enter the changyan appId here
|
||||
appKey: # enter the changyan appKey here
|
||||
on: # enter true to enable
|
||||
valine: # Valine Comment System https://github.com/xCss/Valine
|
||||
on: # enter true to enable valine
|
||||
appId: # enter the leancloud application appId here
|
||||
appKey: # enter the leancloud application appKey here
|
||||
notify: # enter true to enable <Mail notifier> https://github.com/xCss/Valine/wiki/Valine-%E8%AF%84%E8%AE%BA%E7%B3%BB%E7%BB%9F%E4%B8%AD%E7%9A%84%E9%82%AE%E4%BB%B6%E6%8F%90%E9%86%92%E8%AE%BE%E7%BD%AE
|
||||
verify: # enter true to enable <Validation code>
|
||||
placeholder: Just Do It # enter the comment box placeholder
|
||||
avatar: identicon # (''/mm/identicon/monsterid/wavatar/retro/hide), more to see https://valine.js.org/avatar/
|
||||
avatar_cdn: https://gravatar.loli.net/avatar/ # avatar CDN address, default gravatar.loli.net
|
||||
pageSize: 10 # comments of one page
|
||||
|
||||
# Share
|
||||
share: default # options: jiathis, bdshare, addtoany, default
|
||||
|
||||
# Plugins
|
||||
plugins:
|
||||
lightgallery: true # options: true, false
|
||||
justifiedgallery: true # options: true, false
|
||||
google_analytics: # enter the tracking ID for your Google Analytics
|
||||
baidu_analytics: # enter Baidu Analytics hash key
|
||||
bing_site_verification: # enter Bing verification key here
|
||||
statcounter:
|
||||
sc_project: # enter statcounter project id
|
||||
sc_invisible: # enter 1 to make statcounter invisible
|
||||
sc_security: # enter security code
|
||||
public: # enter true if you want a link to your public stats. Must be configured on statcouter as well.
|
||||
on: # enter true to enable statcounter
|
||||
mathjax: false # options: true, false
|
||||
|
||||
# Miscellaneous
|
||||
miscellaneous:
|
||||
open_graph: # see http://ogp.me
|
||||
fb_app_id:
|
||||
fb_admins:
|
||||
twitter_id:
|
||||
google_plus:
|
||||
links:
|
||||
Hexo: http://hexo.io
|
33
themes/hueman/languages/ca.yml
Normal file
33
themes/hueman/languages/ca.yml
Normal file
@ -0,0 +1,33 @@
|
||||
index:
|
||||
home: 'Inici'
|
||||
about: 'Quant a'
|
||||
search: 'Cercar'
|
||||
archive: 'Arxiu'
|
||||
category: 'Categoria'
|
||||
uncategorized: 'Sense categoria'
|
||||
tag: 'Etiqueta'
|
||||
nav:
|
||||
current_page:
|
||||
other: 'Pàgina %d '
|
||||
total_page:
|
||||
other: 'de %d'
|
||||
sidebar:
|
||||
follow: 'seguir'
|
||||
newer: 'més nou'
|
||||
older: 'antic'
|
||||
recents: 'recents'
|
||||
archives: 'arxius'
|
||||
categories: 'categories'
|
||||
links: 'links'
|
||||
tags: 'etiquetes'
|
||||
tag_cloud: 'etiqueta cloud'
|
||||
article:
|
||||
comments: 'Comentaris'
|
||||
share: 'Compartir'
|
||||
insight:
|
||||
hint: 'Type something...'
|
||||
posts: 'Posts'
|
||||
pages: 'Pages'
|
||||
categories: 'categories'
|
||||
tags: 'etiquetes'
|
||||
untitled: '(Untitled)'
|
36
themes/hueman/languages/en.yml
Normal file
36
themes/hueman/languages/en.yml
Normal file
@ -0,0 +1,36 @@
|
||||
index:
|
||||
home: 'Home'
|
||||
about: 'About'
|
||||
search: 'Search'
|
||||
archive: 'Archive'
|
||||
category: 'Category'
|
||||
networks: 'Networks'
|
||||
uncategorized: 'uncategorized'
|
||||
tag: 'Tag'
|
||||
nav:
|
||||
current_page:
|
||||
other: 'Page %d '
|
||||
total_page:
|
||||
other: 'of %d'
|
||||
sidebar:
|
||||
follow: 'follow'
|
||||
newer: 'newer'
|
||||
older: 'older'
|
||||
recents: 'recents'
|
||||
sticky: 'Popular'
|
||||
archives: 'archives'
|
||||
categories: 'categories'
|
||||
links: 'links'
|
||||
tags: 'tags'
|
||||
tag_cloud: 'tag cloud'
|
||||
catalogue: 'Catalog'
|
||||
article:
|
||||
comments: 'Comments'
|
||||
share: 'Share'
|
||||
insight:
|
||||
hint: 'Type something...'
|
||||
posts: 'Posts'
|
||||
pages: 'Pages'
|
||||
categories: 'Categories'
|
||||
tags: 'Tags'
|
||||
untitled: '(Untitled)'
|
33
themes/hueman/languages/es.yml
Normal file
33
themes/hueman/languages/es.yml
Normal file
@ -0,0 +1,33 @@
|
||||
index:
|
||||
home: 'Inicio'
|
||||
about: 'Acerca de'
|
||||
search: 'Buscar'
|
||||
archive: 'Archivo'
|
||||
category: 'Categoria'
|
||||
uncategorized: 'Sin categoría'
|
||||
tag: 'Etiqueta'
|
||||
nav:
|
||||
current_page:
|
||||
other: 'Página %d '
|
||||
total_page:
|
||||
other: 'de %d'
|
||||
sidebar:
|
||||
follow: 'seguir'
|
||||
newer: 'más nuevo'
|
||||
older: 'antiguo'
|
||||
recents: 'recientes'
|
||||
archives: 'archivos'
|
||||
categories: 'categorias'
|
||||
links: 'links'
|
||||
tags: 'etiquetas'
|
||||
tag_cloud: 'etiqueta cloud'
|
||||
article:
|
||||
comments: 'Comentarios'
|
||||
share: 'Compartir'
|
||||
insight:
|
||||
hint: 'Type something...'
|
||||
posts: 'Entradas'
|
||||
pages: 'Pages'
|
||||
categories: 'Categorias'
|
||||
tags: 'Etiquetas'
|
||||
untitled: '(Untitled)'
|
33
themes/hueman/languages/fr.yml
Normal file
33
themes/hueman/languages/fr.yml
Normal file
@ -0,0 +1,33 @@
|
||||
index:
|
||||
home: 'Accueil'
|
||||
about: 'À propos'
|
||||
search: 'Rechercher'
|
||||
archive: 'Archive'
|
||||
category: 'Categorie'
|
||||
uncategorized: 'Aucune catégorie'
|
||||
tag: 'Tag'
|
||||
nav:
|
||||
current_page:
|
||||
other: 'Page %d '
|
||||
total_page:
|
||||
other: 'sur %d'
|
||||
sidebar:
|
||||
follow: 'suivre'
|
||||
newer: '+ récent'
|
||||
older: '- récent'
|
||||
recents: 'récents'
|
||||
archives: 'archives'
|
||||
categories: 'catégories'
|
||||
links: 'liens'
|
||||
tags: 'tags'
|
||||
tag_cloud: 'tag cloud'
|
||||
article:
|
||||
comments: 'Commentaires'
|
||||
share: 'Partager'
|
||||
insight:
|
||||
hint: 'Type something...'
|
||||
posts: 'Articles'
|
||||
pages: 'Pages'
|
||||
categories: 'Catégories'
|
||||
tags: 'Tags'
|
||||
untitled: '(Untitled)'
|
33
themes/hueman/languages/hu.yml
Normal file
33
themes/hueman/languages/hu.yml
Normal file
@ -0,0 +1,33 @@
|
||||
index:
|
||||
home: 'Főoldal'
|
||||
about: 'Elérhetőség'
|
||||
search: 'Keresés'
|
||||
archive: 'Archívum'
|
||||
category: 'Kategória'
|
||||
uncategorized: 'kategorizálatlan'
|
||||
tag: 'Címke'
|
||||
nav:
|
||||
current_page:
|
||||
other: '%d. oldal '
|
||||
total_page:
|
||||
other: '/ %d'
|
||||
sidebar:
|
||||
follow: 'követés'
|
||||
newer: 'következő'
|
||||
older: 'előző'
|
||||
recents: 'friss'
|
||||
archives: 'archívum'
|
||||
categories: 'kategórák'
|
||||
links: 'linkek'
|
||||
tags: 'címkék'
|
||||
tag_cloud: 'címkefelhő'
|
||||
article:
|
||||
comments: 'Komment'
|
||||
share: 'Megosztás'
|
||||
insight:
|
||||
hint: 'Keresendő szöveg...'
|
||||
posts: 'Bejegyzések'
|
||||
pages: 'Oldalak'
|
||||
categories: 'Kategóriák'
|
||||
tags: 'Címkék'
|
||||
untitled: '(Névtelen)'
|
33
themes/hueman/languages/id.yml
Normal file
33
themes/hueman/languages/id.yml
Normal file
@ -0,0 +1,33 @@
|
||||
index:
|
||||
home: 'Beranda'
|
||||
about: 'Tentang'
|
||||
search: 'Cari'
|
||||
archive: 'Arsip'
|
||||
category: 'Kategori'
|
||||
uncategorized: 'belum terkategori'
|
||||
tag: 'Tag'
|
||||
nav:
|
||||
current_page:
|
||||
other: 'Halaman %d '
|
||||
total_page:
|
||||
other: 'dari %d'
|
||||
sidebar:
|
||||
follow: 'ikuti'
|
||||
newer: 'lebih baru'
|
||||
older: 'lebih lawas'
|
||||
recents: 'terbaru'
|
||||
archives: 'arsip'
|
||||
categories: 'kategori'
|
||||
links: 'tautan'
|
||||
tags: 'tag'
|
||||
tag_cloud: 'awan tag'
|
||||
article:
|
||||
comments: 'Komentar'
|
||||
share: 'Bagikan'
|
||||
insight:
|
||||
hint: 'Type something...'
|
||||
posts: 'pos'
|
||||
pages: 'Pages'
|
||||
categories: 'kategori'
|
||||
tags: 'tag'
|
||||
untitled: '(Untitled)'
|
33
themes/hueman/languages/ja.yml
Normal file
33
themes/hueman/languages/ja.yml
Normal file
@ -0,0 +1,33 @@
|
||||
index:
|
||||
home: 'ホーム'
|
||||
about: 'このブログについて'
|
||||
search: '検索'
|
||||
archive: 'アーカイブ'
|
||||
category: 'カテゴリー'
|
||||
uncategorized: 'カテゴリ未設定'
|
||||
tag: 'タグ'
|
||||
nav:
|
||||
current_page:
|
||||
other: ' %d ページ'
|
||||
total_page:
|
||||
other: '%d ページ中'
|
||||
sidebar:
|
||||
follow: 'フォロー'
|
||||
newer: '新しい'
|
||||
older: '古い'
|
||||
recents: '最新'
|
||||
archives: 'アーカイブ'
|
||||
categories: 'カテゴリー'
|
||||
links: 'リンク'
|
||||
tags: 'タグ'
|
||||
tag_cloud: 'タグクラウド'
|
||||
article:
|
||||
comments: 'コメント'
|
||||
share: 'シェア'
|
||||
insight:
|
||||
hint: '入力してください'
|
||||
posts: '記事'
|
||||
pages: 'ページ'
|
||||
categories: 'カテゴリー'
|
||||
tags: 'タグ'
|
||||
untitled: '(名称未設定)'
|
33
themes/hueman/languages/ko.yml
Normal file
33
themes/hueman/languages/ko.yml
Normal file
@ -0,0 +1,33 @@
|
||||
index:
|
||||
home: '홈'
|
||||
about: 'About'
|
||||
search: '검색'
|
||||
archive: '아카이브'
|
||||
category: '카테고리'
|
||||
uncategorized: '미지정'
|
||||
tag: '태그'
|
||||
nav:
|
||||
current_page:
|
||||
other: 'Page %d '
|
||||
total_page:
|
||||
other: 'of %d'
|
||||
sidebar:
|
||||
follow: '팔로우'
|
||||
newer: '새로운'
|
||||
older: '오래된'
|
||||
recents: '최근 글'
|
||||
archives: '아카이브'
|
||||
categories: '카테고리'
|
||||
links: '링크'
|
||||
tags: '태그'
|
||||
tag_cloud: '태그 클라우드'
|
||||
article:
|
||||
comments: '댓글'
|
||||
share: '공유하기'
|
||||
insight:
|
||||
hint: 'Type something...'
|
||||
posts: '포스트'
|
||||
pages: 'Pages'
|
||||
categories: '카테고리'
|
||||
tags: '태그'
|
||||
untitled: '(Untitled)'
|
33
themes/hueman/languages/pt-BR.yml
Normal file
33
themes/hueman/languages/pt-BR.yml
Normal file
@ -0,0 +1,33 @@
|
||||
index:
|
||||
home: 'Home'
|
||||
about: 'Sobre'
|
||||
search: 'Busca'
|
||||
archive: 'Arquivo'
|
||||
category: 'Categoria'
|
||||
uncategorized: 'sem categoria'
|
||||
tag: 'Tag'
|
||||
nav:
|
||||
current_page:
|
||||
other: 'Página %d '
|
||||
total_page:
|
||||
other: 'de %d'
|
||||
sidebar:
|
||||
follow: 'seguir'
|
||||
newer: 'novos'
|
||||
older: 'antigos'
|
||||
recents: 'recentes'
|
||||
archives: 'arquivos'
|
||||
categories: 'categorias'
|
||||
links: 'links'
|
||||
tags: 'tags'
|
||||
tag_cloud: 'tag cloud'
|
||||
article:
|
||||
comments: 'Comentários'
|
||||
share: 'Compartilhar'
|
||||
insight:
|
||||
hint: 'Type something...'
|
||||
posts: 'Posts'
|
||||
pages: 'Pages'
|
||||
categories: 'categorias'
|
||||
tags: 'tags'
|
||||
untitled: '(Untitled)'
|
33
themes/hueman/languages/ru.yml
Normal file
33
themes/hueman/languages/ru.yml
Normal file
@ -0,0 +1,33 @@
|
||||
index:
|
||||
home: 'Главная'
|
||||
about: 'О сайте'
|
||||
search: 'Поиск'
|
||||
archive: 'архив'
|
||||
category: 'категории : '
|
||||
uncategorized: 'без категории'
|
||||
tag: 'тэг : '
|
||||
nav:
|
||||
current_page:
|
||||
other: 'Страница %d '
|
||||
total_page:
|
||||
other: 'из %d'
|
||||
sidebar:
|
||||
follow: 'Подписаться'
|
||||
newer: 'новые'
|
||||
older: 'старые'
|
||||
recents: 'недавние'
|
||||
archives: 'архивы'
|
||||
categories: 'Категории'
|
||||
links: 'ссылки'
|
||||
tags: 'Тэги'
|
||||
tag_cloud: 'Облако тэгов'
|
||||
article:
|
||||
comments: 'Комментарии'
|
||||
share: 'Поделиться'
|
||||
insight:
|
||||
hint: 'Введите что-нибудь...'
|
||||
posts: 'посты'
|
||||
pages: 'страницы'
|
||||
categories: 'категории'
|
||||
tags: 'теги'
|
||||
untitled: '(Без названия)'
|
33
themes/hueman/languages/tr.yml
Normal file
33
themes/hueman/languages/tr.yml
Normal file
@ -0,0 +1,33 @@
|
||||
index:
|
||||
home: 'Anasayfa'
|
||||
about: 'Hakkında'
|
||||
search: 'Ara'
|
||||
archive: 'Arşiv'
|
||||
category: 'Kategori'
|
||||
uncategorized: 'Kategorisiz'
|
||||
tag: 'Etiket'
|
||||
nav:
|
||||
current_page:
|
||||
other: 'Sayfa %d '
|
||||
total_page:
|
||||
other: 'toplam %d'
|
||||
sidebar:
|
||||
follow: 'Takip Et'
|
||||
newer: 'sonraki'
|
||||
older: 'önceki'
|
||||
recents: 'son yazılar'
|
||||
archives: 'arşiv'
|
||||
categories: 'kategoriler'
|
||||
links: 'linkler'
|
||||
tags: 'etiketler'
|
||||
tag_cloud: 'etiket bulutu'
|
||||
article:
|
||||
comments: 'Yorumlar'
|
||||
share: 'Paylaş'
|
||||
insight:
|
||||
hint: 'Bir şeyler yaz...'
|
||||
posts: 'Gönderiler'
|
||||
pages: 'Sayfalar'
|
||||
categories: 'Kategoriler'
|
||||
tags: 'Etiketler'
|
||||
untitled: '(Başlıksız)'
|
33
themes/hueman/languages/vi.yml
Normal file
33
themes/hueman/languages/vi.yml
Normal file
@ -0,0 +1,33 @@
|
||||
index:
|
||||
home: 'Trang chủ'
|
||||
about: 'Giới thiệu'
|
||||
search: 'Tìm kiếm'
|
||||
archive: 'Lưu trữ'
|
||||
category: 'Chuyên mục'
|
||||
uncategorized: 'Chưa phân loại'
|
||||
tag: 'Thẻ'
|
||||
nav:
|
||||
current_page:
|
||||
other: '%d '
|
||||
total_page:
|
||||
other: '/ %d'
|
||||
sidebar:
|
||||
follow: 'Theo dõi'
|
||||
newer: 'Mới hơn'
|
||||
older: 'Cũ hơn'
|
||||
recents: 'Bài viết mới'
|
||||
archives: 'Lưu trữ'
|
||||
categories: 'Chuyên mục'
|
||||
links: 'Liên kết'
|
||||
tags: 'Thẻ'
|
||||
tag_cloud: 'Mây thẻ'
|
||||
article:
|
||||
comments: 'Bình luận'
|
||||
share: 'Chia sẻ'
|
||||
insight:
|
||||
hint: 'Gõ gì đó...'
|
||||
posts: 'Bài viết'
|
||||
pages: 'Trang'
|
||||
categories: 'Chuyên mục'
|
||||
tags: 'Thẻ'
|
||||
untitled: '(Không đề)'
|
34
themes/hueman/languages/zh-CN.yml
Normal file
34
themes/hueman/languages/zh-CN.yml
Normal file
@ -0,0 +1,34 @@
|
||||
index:
|
||||
home: '主页'
|
||||
about: '关于'
|
||||
search: '搜索'
|
||||
archive: '归档'
|
||||
category: '分类:'
|
||||
uncategorized: '未分类'
|
||||
tag: '标签:'
|
||||
nav:
|
||||
current_page:
|
||||
other: '第 %d 页,'
|
||||
total_page:
|
||||
other: '共 %d 页'
|
||||
sidebar:
|
||||
follow: '关注我 '
|
||||
newer: '下一篇'
|
||||
older: '上一篇'
|
||||
recents: '最新文章'
|
||||
archives: '归档'
|
||||
categories: '分类'
|
||||
links: '链接'
|
||||
tags: '标签'
|
||||
tag_cloud: '标签云'
|
||||
catalogue: '目录'
|
||||
article:
|
||||
comments: '评论'
|
||||
share: '分享到'
|
||||
insight:
|
||||
hint: '想要查找什么...'
|
||||
posts: '文章'
|
||||
pages: '页面'
|
||||
categories: '分类'
|
||||
tags: '标签'
|
||||
untitled: '(未命名)'
|
35
themes/hueman/languages/zh-TW.yml
Normal file
35
themes/hueman/languages/zh-TW.yml
Normal file
@ -0,0 +1,35 @@
|
||||
index:
|
||||
home: '首頁'
|
||||
about: '關於'
|
||||
search: '搜尋'
|
||||
archive: '所有文章'
|
||||
category: '分類:'
|
||||
uncategorized: '未分類'
|
||||
tag: '標籤:'
|
||||
nav:
|
||||
current_page:
|
||||
other: '第 %d 頁,'
|
||||
total_page:
|
||||
other: '共 %d 頁'
|
||||
sidebar:
|
||||
follow: '追蹤 '
|
||||
newer: '下一篇'
|
||||
older: '上一篇'
|
||||
recents: '最新文章'
|
||||
sticky: '熱門文章'
|
||||
archives: '所有文章'
|
||||
categories: '分類'
|
||||
links: '連結'
|
||||
tags: '標籤'
|
||||
tag_cloud: '標籤雲'
|
||||
catalogue: '目錄'
|
||||
article:
|
||||
comments: '評論'
|
||||
share: '分享到'
|
||||
insight:
|
||||
hint: '輸入關鍵字...'
|
||||
posts: '文章'
|
||||
pages: '頁面'
|
||||
categories: '分類'
|
||||
tags: '標籤'
|
||||
untitled: '(未命名)'
|
1
themes/hueman/layout/archive.ejs
Normal file
1
themes/hueman/layout/archive.ejs
Normal file
@ -0,0 +1 @@
|
||||
<%- partial('common/archive') %>
|
1
themes/hueman/layout/author.ejs
Normal file
1
themes/hueman/layout/author.ejs
Normal file
@ -0,0 +1 @@
|
||||
<%- partial('common/archive') %>
|
1
themes/hueman/layout/category.ejs
Normal file
1
themes/hueman/layout/category.ejs
Normal file
@ -0,0 +1 @@
|
||||
<%- partial('common/archive') %>
|
43
themes/hueman/layout/comment/changyan.ejs
Normal file
43
themes/hueman/layout/comment/changyan.ejs
Normal file
@ -0,0 +1,43 @@
|
||||
<% if (typeof(script) !== 'undefined' && script) { %>
|
||||
<script id="cy_cmt_num" src="https://changyan.sohu.com/upload/plugins/plugins.list.count.js?clientId=<%= theme.comment.changyan.appId %>"></script>
|
||||
<script type="text/javascript">
|
||||
(function() {
|
||||
var appid = '<%= theme.comment.changyan.appId %>';
|
||||
var conf = '<%= theme.comment.changyan.appKey %>';
|
||||
var width = window.innerWidth || document.documentElement.clientWidth;
|
||||
if (width < 960) {
|
||||
window.document.write('<script id="changyan_mobile_js" charset="utf-8" type="text/javascript" src="https://changyan.sohu.com/upload/mobile/wap-js/changyan_mobile.js?client_id=' + appid + '&conf=' + conf + '"><\/script>');
|
||||
} else {
|
||||
var loadJs = function(d, a) {
|
||||
var c = document.getElementsByTagName("head")[0] || document.head || document.documentElement;
|
||||
var b = document.createElement("script");
|
||||
b.setAttribute("type", "text/javascript");
|
||||
b.setAttribute("charset", "UTF-8");
|
||||
b.setAttribute("src", d);
|
||||
if (typeof a === "function") {
|
||||
if (window.attachEvent) {
|
||||
b.onreadystatechange = function() {
|
||||
var e = b.readyState;
|
||||
if (e === "loaded" || e === "complete") {
|
||||
b.onreadystatechange = null;
|
||||
a()
|
||||
}
|
||||
}
|
||||
} else {
|
||||
b.onload = a
|
||||
}
|
||||
}
|
||||
c.appendChild(b)
|
||||
};
|
||||
loadJs("https://changyan.sohu.com/upload/changyan.js", function() {
|
||||
window.changyan.api.config({
|
||||
appid: appid,
|
||||
conf: conf
|
||||
})
|
||||
});
|
||||
}
|
||||
})();
|
||||
</script>
|
||||
<% } else { %>
|
||||
<div id="SOHUCS" sid="<%= page.permalink %>"></div>
|
||||
<% } %>
|
16
themes/hueman/layout/comment/counter.ejs
Normal file
16
themes/hueman/layout/comment/counter.ejs
Normal file
@ -0,0 +1,16 @@
|
||||
<% if (post.comments) { %>
|
||||
<span class="comment-counter">
|
||||
<i class="fa fa-comments-o"></i>
|
||||
<% if (theme.comment.disqus) { %>
|
||||
<span class="disqus-comment-count" data-disqus-identifier="<%= post.disqusId || '' %>" data-disqus-url="<%= post.permalink %>">0</span>
|
||||
<% } else if (theme.comment.duoshuo) { %>
|
||||
<span class="ds-thread-count" data-thread-key="<%= post.path %>">0</span>
|
||||
<% } else if (theme.comment.isso) { %>
|
||||
<span><a href="<%= post.permalink %>#isso-thread"></a></span>
|
||||
<% } else if (theme.comment.facebook) { %>
|
||||
<span class="fb-comments-count" data-href="<%= post.permalink %>">0</span>
|
||||
<% } else if (theme.comment.changyan.on) { %>
|
||||
<span class="cy_cmt_count" id="sourceId::<%= post.permalink %>">0</span>
|
||||
<% } %>
|
||||
</span>
|
||||
<% } %>
|
22
themes/hueman/layout/comment/disqus.ejs
Normal file
22
themes/hueman/layout/comment/disqus.ejs
Normal file
@ -0,0 +1,22 @@
|
||||
<% if (typeof(script) !== 'undefined' && script) { %>
|
||||
<script>
|
||||
var disqus_shortname = '<%= theme.comment.disqus %>';
|
||||
<% if (page.disqusId) { %>
|
||||
var disqus_identifier = '<%= page.disqusId || page.slug %>';
|
||||
<% } %>
|
||||
<% if (page.permalink) { %>
|
||||
var disqus_url = '<%= page.permalink %>';
|
||||
<% } %>
|
||||
(function() {
|
||||
var dsq = document.createElement('script');
|
||||
dsq.type = 'text/javascript';
|
||||
dsq.async = true;
|
||||
dsq.src = '//' + disqus_shortname + '.disqus.com/<% if (page.comments) { %>embed.js<% } else { %>count.js<% } %>';
|
||||
(document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(dsq);
|
||||
})();
|
||||
</script>
|
||||
<% } else { %>
|
||||
<div id="disqus_thread">
|
||||
<noscript>Please enable JavaScript to view the <a href="//disqus.com/?ref_noscript">comments powered by Disqus.</a></noscript>
|
||||
</div>
|
||||
<% } %>
|
52
themes/hueman/layout/comment/duoshuo.ejs
Normal file
52
themes/hueman/layout/comment/duoshuo.ejs
Normal file
@ -0,0 +1,52 @@
|
||||
<% if (typeof(script) !== 'undefined' && script) { %>
|
||||
<script type="text/javascript">
|
||||
var duoshuoQuery = {short_name:'<%= theme.comment.duoshuo %>'};
|
||||
(function() {
|
||||
var ds = document.createElement('script');
|
||||
ds.type = 'text/javascript';ds.async = true;
|
||||
ds.src = (document.location.protocol == 'https:' ? 'https:' : 'http:') + '//static.duoshuo.com/embed.js';
|
||||
ds.charset = 'UTF-8';
|
||||
(document.getElementsByTagName('head')[0]
|
||||
|| document.getElementsByTagName('body')[0]).appendChild(ds);
|
||||
})();
|
||||
</script>
|
||||
<% } else { %>
|
||||
<div class="ds-thread" data-thread-key="<%= post.path %>" data-title="<%= post.title %>" data-url="<%= page.permalink %>"></div>
|
||||
<style>
|
||||
#ds-thread #ds-reset .ds-textarea-wrapper {
|
||||
background: none;
|
||||
}
|
||||
#ds-reset .ds-avatar img {
|
||||
box-shadow: none;
|
||||
}
|
||||
#ds-reset .ds-gradient-bg {
|
||||
background: #f7f7f7;
|
||||
}
|
||||
#ds-thread #ds-reset li.ds-tab a {
|
||||
border-radius: 3px;
|
||||
}
|
||||
#ds-thread #ds-reset .ds-post-button {
|
||||
color: white;
|
||||
border: none;
|
||||
box-shadow: none;
|
||||
background: #d32;
|
||||
text-shadow: none;
|
||||
font-weight: normal;
|
||||
font-family: 'Microsoft Yahei';
|
||||
}
|
||||
#ds-thread #ds-reset .ds-post-button:hover {
|
||||
color: white;
|
||||
background: #DE594C;
|
||||
}
|
||||
#ds-thread #ds-reset .ds-post-button:active {
|
||||
background: #d32;
|
||||
}
|
||||
#ds-smilies-tooltip ul.ds-smilies-tabs li a.ds-current {
|
||||
color: white;
|
||||
background: #d32;
|
||||
box-shadow: none;
|
||||
text-shadow: none;
|
||||
font-weight: normal;
|
||||
}
|
||||
</style>
|
||||
<% } %>
|
11
themes/hueman/layout/comment/facebook.ejs
Normal file
11
themes/hueman/layout/comment/facebook.ejs
Normal file
@ -0,0 +1,11 @@
|
||||
<% if (typeof(script) !== 'undefined' && script) { %>
|
||||
<script>(function(d, s, id) {
|
||||
var js, fjs = d.getElementsByTagName(s)[0];
|
||||
if (d.getElementById(id)) return;
|
||||
js = d.createElement(s); js.id = id;
|
||||
js.src = "//connect.facebook.net/<%= config.language ? config.language.split('-').join('_') : 'en' %>/sdk.js#xfbml=1&version=v2.8";
|
||||
fjs.parentNode.insertBefore(js, fjs);
|
||||
}(document, 'script', 'facebook-jssdk'));</script>
|
||||
<% } else { %>
|
||||
<div class="fb-comments" data-width="100%" data-href="<%= page.permalink %>" data-num-posts="5"></div>
|
||||
<% } %>
|
22
themes/hueman/layout/comment/index.ejs
Normal file
22
themes/hueman/layout/comment/index.ejs
Normal file
@ -0,0 +1,22 @@
|
||||
<% if (post.comments) { %>
|
||||
<section id="comments">
|
||||
<% if (theme.comment.disqus) { %>
|
||||
<%- partial('comment/disqus') %>
|
||||
<% } else if (theme.comment.duoshuo) { %>
|
||||
<%- partial('comment/duoshuo') %>
|
||||
<% } else if (theme.comment.youyan) { %>
|
||||
<%- partial('comment/youyan') %>
|
||||
<% } else if (theme.comment.livere) { %>
|
||||
<%- partial('comment/livere') %>
|
||||
<% } else if (theme.comment.facebook) { %>
|
||||
<%- partial('comment/facebook') %>
|
||||
<% } else if (typeof(theme.comment.isso) === 'string'
|
||||
|| theme.comment.isso && theme.comment.isso.on) { %>
|
||||
<%- partial('comment/isso') %>
|
||||
<% } else if (theme.comment.changyan.on) { %>
|
||||
<%- partial('comment/changyan') %>
|
||||
<% } else if (theme.comment.valine.on) { %>
|
||||
<%- partial('comment/valine') %>
|
||||
<% } %>
|
||||
</section>
|
||||
<% } %>
|
29
themes/hueman/layout/comment/isso.ejs
Normal file
29
themes/hueman/layout/comment/isso.ejs
Normal file
@ -0,0 +1,29 @@
|
||||
<%
|
||||
if (typeof(script) !== 'undefined' && script) {
|
||||
let isso = theme.comment.isso;
|
||||
let issoSite = (typeof(isso) === 'string' ? isso : isso.site);
|
||||
if (isso === issoSite) { //isso is a string
|
||||
//TODO: maybe something better error logging
|
||||
console.warn('WARN Specifying property "comment.isso" as a ' +
|
||||
'string is deprecated. Please consider using the object form. See ' +
|
||||
'the respective _config.yml.example file for an example.');
|
||||
}
|
||||
%>
|
||||
<script data-isso="//<%= issoSite %>"
|
||||
<%
|
||||
let props = ['css', 'lang', 'reply_to_self', 'require_author',
|
||||
'require_email', 'max_comments_top', 'max_comments_nested',
|
||||
'reveal_on_click', 'avatar', 'avatar_bg', 'avatar_fg', 'vote',
|
||||
'vote_levels'];
|
||||
for (var p of props) {
|
||||
if (theme.comment.isso[p]) { %>
|
||||
<%= 'data-isso-' + p.replace('_', '-') %> =
|
||||
"<%= theme.comment.isso[p] %>"
|
||||
<% } %>
|
||||
<% } %>
|
||||
src="//<%= issoSite %>/js/embed.min.js">
|
||||
</script>
|
||||
<% } else { %>
|
||||
<section id="isso-thread"></section>
|
||||
<% } %>
|
||||
|
22
themes/hueman/layout/comment/livere.ejs
Normal file
22
themes/hueman/layout/comment/livere.ejs
Normal file
@ -0,0 +1,22 @@
|
||||
<% if (typeof(script) !== 'undefined' && script) { %>
|
||||
|
||||
<!-- 来必力City版安装代码 -->
|
||||
<script type="text/javascript">
|
||||
(function(d, s) {
|
||||
var j, e = d.getElementsByTagName(s)[0];
|
||||
|
||||
if (typeof LivereTower === 'function') { return; }
|
||||
|
||||
j = d.createElement(s);
|
||||
j.src = 'https://cdn-city.livere.com/js/embed.dist.js';
|
||||
j.async = true;
|
||||
|
||||
e.parentNode.insertBefore(j, e);
|
||||
})(document, 'script');
|
||||
</script>
|
||||
<noscript> 为正常使用来必力评论功能请激活JavaScript</noscript>
|
||||
<!-- City版安装代码已完成 -->
|
||||
|
||||
<% } else { %>
|
||||
<div id="lv-container" data-id="city" data-uid=<%= theme.comment.livere %>></div>
|
||||
<% } %>
|
18
themes/hueman/layout/comment/scripts.ejs
Normal file
18
themes/hueman/layout/comment/scripts.ejs
Normal file
@ -0,0 +1,18 @@
|
||||
<% if (theme.comment.disqus) { %>
|
||||
<%- partial('comment/disqus', { script: true }) %>
|
||||
<% } else if (theme.comment.duoshuo) { %>
|
||||
<%- partial('comment/duoshuo', { script: true }) %>
|
||||
<% } else if (theme.comment.youyan) { %>
|
||||
<%- partial('comment/youyan', { script: true }) %>
|
||||
<% } else if (theme.comment.livere) { %>
|
||||
<%- partial('comment/livere', { script: true }) %>
|
||||
<% } else if (theme.comment.facebook) { %>
|
||||
<%- partial('comment/facebook', { script: true }) %>
|
||||
<% } else if (typeof(theme.comment.isso) === 'string'
|
||||
|| theme.comment.isso && theme.comment.isso.on) { %>
|
||||
<%- partial('comment/isso', { script: true }) %>
|
||||
<% } else if (theme.comment.changyan.on) { %>
|
||||
<%- partial('comment/changyan', { script: true }) %>
|
||||
<% } else if (theme.comment.valine.on) { %>
|
||||
<%- partial('comment/valine', { script: true }) %>
|
||||
<% } %>
|
19
themes/hueman/layout/comment/valine.ejs
Normal file
19
themes/hueman/layout/comment/valine.ejs
Normal file
@ -0,0 +1,19 @@
|
||||
<% if (typeof(script) !== 'undefined' && script) { %>
|
||||
<script src="//cdn1.lncld.net/static/js/3.0.4/av-min.js"></script>
|
||||
<script src='//unpkg.com/valine/dist/Valine.min.js'></script>
|
||||
<script>
|
||||
new Valine({
|
||||
el: '#valine-thread' ,
|
||||
notify:<%= theme.comment.valine.notify %>,
|
||||
verify:<%= theme.comment.valine.verify %>,
|
||||
app_id: '<%= theme.comment.valine.appId %>',
|
||||
app_key: '<%= theme.comment.valine.appKey %>',
|
||||
placeholder: '<%= theme.comment.valine.placeholder %>',
|
||||
pageSize: '<%= theme.comment.valine.pageSize %>',
|
||||
avatar: '<%= theme.comment.valine.avatar %>',
|
||||
avatar_cdn: '<%= theme.comment.valine.avatar_cdn %>'
|
||||
});
|
||||
</script>
|
||||
<% } else { %>
|
||||
<div id="valine-thread"></div>
|
||||
<% } %>
|
5
themes/hueman/layout/comment/youyan.ejs
Normal file
5
themes/hueman/layout/comment/youyan.ejs
Normal file
@ -0,0 +1,5 @@
|
||||
<% if (typeof(script) !== 'undefined' && script) { %>
|
||||
<script type="text/javascript" src="//v2.uyan.cc/code/uyan.js?uid=<%= theme.comment.youyan %>"></script>
|
||||
<% } else { %>
|
||||
<div id="uyan_frame"></div>
|
||||
<% } %>
|
32
themes/hueman/layout/common/archive.ejs
Normal file
32
themes/hueman/layout/common/archive.ejs
Normal file
@ -0,0 +1,32 @@
|
||||
<% var last, postCount = 0; %>
|
||||
<% page.posts.each(function(post, i) { %>
|
||||
<% var year = post.date.year(); %>
|
||||
<% if (last != year) { %>
|
||||
<% if (last != null) { %>
|
||||
</div></section>
|
||||
<% } %>
|
||||
<% last = year; postCount = 0;%>
|
||||
<section class="archives-wrap">
|
||||
<div class="archive-year-wrap">
|
||||
<a href="<%- url_for('archives/' + year) %>" class="archive-year"><i class="icon fa fa-calendar-o"></i><%= year %></a>
|
||||
</div>
|
||||
<div class="archives">
|
||||
<% } %>
|
||||
<% postCount++; %>
|
||||
<% if (postCount % 2 == 1) { %>
|
||||
<div class="article-row">
|
||||
<% } %>
|
||||
<%- partial('summary', { post: post }) %>
|
||||
<% if (postCount == page.posts.length || postCount % 2 == 0) { %>
|
||||
</div>
|
||||
<% } %>
|
||||
<% }) %>
|
||||
<% if (page.posts.length) { %>
|
||||
</div></section>
|
||||
<% } %>
|
||||
<% if (page.total > 1) { %>
|
||||
<nav id="page-nav">
|
||||
<span class="pages"><%= _p('nav.current_page', page.current) %><%= _p('nav.total_page', page.total) %></span>
|
||||
<%- paginator({prev_text: '«', next_text: '»'}) %>
|
||||
</nav>
|
||||
<% } %>
|
24
themes/hueman/layout/common/article.ejs
Normal file
24
themes/hueman/layout/common/article.ejs
Normal file
@ -0,0 +1,24 @@
|
||||
<article id="<%= post.layout %>-<%= post.slug %>" class="article article-single article-type-<%= post.layout %><%= (post.direction && post.direction.toLowerCase() === 'rtl' ? ' rtl' : '') %>" itemscope itemprop="blogPost">
|
||||
<div class="article-inner">
|
||||
<% if (post.link || post.title) { %>
|
||||
<header class="article-header">
|
||||
<%- partial('post/title', { class_name: 'article-title' }) %>
|
||||
</header>
|
||||
<% } %>
|
||||
<% if (post.layout != 'page') { %>
|
||||
<div class="article-meta">
|
||||
<%- partial('post/date', { class_name: 'article-date', date_format: null }) %>
|
||||
<%- partial('post/author') %>
|
||||
<%- partial('post/tag') %>
|
||||
</div>
|
||||
<% } %>
|
||||
<%- partial('post/gallery') %>
|
||||
<div class="article-entry" itemprop="articleBody">
|
||||
<%- post.content %>
|
||||
</div>
|
||||
<footer class="article-footer">
|
||||
<%- partial('share/index', { post: post }) %>
|
||||
</footer>
|
||||
</div>
|
||||
</article>
|
||||
<%- partial('comment/index') %>
|
39
themes/hueman/layout/common/content-title.ejs
Normal file
39
themes/hueman/layout/common/content-title.ejs
Normal file
@ -0,0 +1,39 @@
|
||||
<div class="main-body-header">
|
||||
<h1 class="header">
|
||||
<%
|
||||
var title = page.title;
|
||||
if (page.archive) {
|
||||
title = __('index.archive');
|
||||
if (page.month) {
|
||||
title += ': ' + page.year + '/' + page.month;
|
||||
} else if (page.year) {
|
||||
title += ': ' + page.year;
|
||||
}
|
||||
title = '<i class="icon fa fa-archive"></i>' + title;
|
||||
} else if (page.author && !is_post()) {
|
||||
title = page.author.name;
|
||||
if (page.author.about) {
|
||||
title += ' - ' + page.author.about;
|
||||
}
|
||||
} else if (page.category) {
|
||||
title = '<i class="icon fa fa-folder-open"></i>' + __('index.category') + ': <em class="page-title-link">' + page.category + '</em>';
|
||||
} else if (page.tag) {
|
||||
title = '<i class="icon fa fa-tag"></i>' + __('index.tag') + ': <em>' + page.tag + '</em>';
|
||||
} else if (is_post()) {
|
||||
title = list_categories(page.categories, {show_count: false, style: 'none', class: 'page-title', separator: '<i class="icon fa fa-angle-right"></i>'});
|
||||
if (title == "") {
|
||||
title = __('index.uncategorized');
|
||||
}
|
||||
} else if (is_home()) {
|
||||
title = '<em class="page-title-link" data-url="home">' + __('index.home') + '</em>';
|
||||
} else if (page.subtitle) {
|
||||
title = '<em class="page-title-link" data-url="' + url_for(page.path) + '">' + page.subtitle + '</em>';
|
||||
} else if (page.title) {
|
||||
title = '<em class="page-title-link" data-url="' + url_for(page.path) + '">' + page.title + '</em>';
|
||||
} else {
|
||||
title = config.title;
|
||||
}
|
||||
%>
|
||||
<%- title %>
|
||||
</h1>
|
||||
</div>
|
17
themes/hueman/layout/common/footer.ejs
Normal file
17
themes/hueman/layout/common/footer.ejs
Normal file
@ -0,0 +1,17 @@
|
||||
<footer id="footer">
|
||||
<div class="container">
|
||||
<div class="container-inner">
|
||||
<a id="back-to-top" href="javascript:;"><i class="icon fa fa-angle-up"></i></a>
|
||||
<div class="credit">
|
||||
<h1 class="logo-wrap">
|
||||
<a href="<%- url_for() %>" class="logo"></a>
|
||||
</h1>
|
||||
<p>© <%= date(new Date(), 'YYYY') %> <%= config.author || config.title %></p>
|
||||
<p>Powered by <a href="//hexo.io/" target="_blank">Hexo</a>. Theme by <a href="//github.com/ppoffice" target="_blank">PPOffice</a></p>
|
||||
</div>
|
||||
<div class="footer-plugins">
|
||||
<%- partial('plugin/scripts', { isFooter: true }) %>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</footer>
|
60
themes/hueman/layout/common/head.ejs
Normal file
60
themes/hueman/layout/common/head.ejs
Normal file
@ -0,0 +1,60 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
|
||||
<%- partial('pwa/index') %>
|
||||
<%
|
||||
var title = page.title;
|
||||
if (is_archive()) {
|
||||
title = __('index.archive');
|
||||
if (is_month()) {
|
||||
title += ': ' + page.year + '/' + page.month;
|
||||
} else if (is_year()) {
|
||||
title += ': ' + page.year;
|
||||
}
|
||||
} else if (is_category()) {
|
||||
title = __('index.category') + ': ' + page.category;
|
||||
} else if (is_tag()) {
|
||||
title = __('index.tag') + ': ' + page.tag;
|
||||
}
|
||||
%>
|
||||
<title><% if (title) { %><%= title %> | <% } %><%= config.title %></title>
|
||||
<% if (theme.plugins.bing_site_verification) { %>
|
||||
<meta name="msvalidate.01" content="<%- theme.plugins.bing_site_verification %>" />
|
||||
<% } %>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
|
||||
<% if (page.tags) {
|
||||
var keywords = [];
|
||||
for (var i in page.tags.data) {
|
||||
keywords.push(page.tags.data[i].name);
|
||||
}
|
||||
%>
|
||||
<meta name="keywords" content="<%= keywords.join(',') %>" />
|
||||
<% } %>
|
||||
<%- open_graph({
|
||||
image: thumbnail(page),
|
||||
fb_app_id: theme.miscellaneous.open_graph.fb_app_id,
|
||||
fb_admins: theme.miscellaneous.open_graph.fb_admins,
|
||||
twitter_id: theme.miscellaneous.open_graph.twitter_id,
|
||||
google_plus: theme.miscellaneous.open_graph.google_plus,
|
||||
}) %>
|
||||
<%- meta(page) %>
|
||||
|
||||
<% if (theme.customize && theme.customize.social_links && theme.customize.social_links.rss) { %>
|
||||
<link rel="alternate" href="<%- theme.customize.social_links.rss %>" title="<%= config.title %>" type="application/atom+xml" />
|
||||
<% } %>
|
||||
|
||||
<% if (theme.customize.favicon) { %>
|
||||
<link rel="icon" href="<%- url_for(theme.customize.favicon) %>" />
|
||||
<% } %>
|
||||
|
||||
<%- css('libs/font-awesome/css/font-awesome.min') %>
|
||||
<%- css('libs/titillium-web/styles') %>
|
||||
<%- css('libs/source-code-pro/styles') %>
|
||||
|
||||
<%- css('css/style') %>
|
||||
|
||||
<%- js('libs/jquery/3.3.1/jquery.min') %>
|
||||
<%- partial('plugin/scripts', { isHead: true }) %>
|
||||
</head>
|
41
themes/hueman/layout/common/header.ejs
Normal file
41
themes/hueman/layout/common/header.ejs
Normal file
@ -0,0 +1,41 @@
|
||||
<header id="header">
|
||||
<div id="header-outer" class="outer">
|
||||
<div class="container">
|
||||
<div class="container-inner">
|
||||
<div id="header-title">
|
||||
<h1 class="logo-wrap">
|
||||
<a href="<%- url_for() %>" class="logo"></a>
|
||||
</h1>
|
||||
<% if (theme.subtitle) { %>
|
||||
<h2 class="subtitle-wrap">
|
||||
<p class="subtitle"><%= theme.subtitle %></p>
|
||||
</h2>
|
||||
<% } %>
|
||||
</div>
|
||||
<div id="header-inner" class="nav-container">
|
||||
<a id="main-nav-toggle" class="nav-icon fa fa-bars"></a>
|
||||
<div class="nav-container-inner">
|
||||
<ul id="main-nav">
|
||||
<% for (var i in theme.menu) {
|
||||
if (i == 'Categories') { %>
|
||||
<%- list_categories({
|
||||
depth: 2,
|
||||
style: 'list',
|
||||
class: 'main-nav',
|
||||
show_count: false,
|
||||
}) %>
|
||||
<% } else { %>
|
||||
<li class="main-nav-list-item" >
|
||||
<a class="main-nav-list-link" href="<%- url_for(theme.menu[i]) %>"><%= __('index.' + i.toLowerCase()) %></a>
|
||||
</li>
|
||||
<% }} %>
|
||||
</ul>
|
||||
<nav id="sub-nav">
|
||||
<%- partial('search/index') %>
|
||||
</nav>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</header>
|
5
themes/hueman/layout/common/post/author.ejs
Normal file
5
themes/hueman/layout/common/post/author.ejs
Normal file
@ -0,0 +1,5 @@
|
||||
<% if (post.authorId) { %>
|
||||
<div class="article-author">
|
||||
<a href="<%- config.root %><%- 'author/' + post.authorId %>"><%= post.author.name %></a>
|
||||
</div>
|
||||
<% } %>
|
7
themes/hueman/layout/common/post/date.ejs
Normal file
7
themes/hueman/layout/common/post/date.ejs
Normal file
@ -0,0 +1,7 @@
|
||||
<% if (post.date) { %>
|
||||
<div class="<%= class_name %>">
|
||||
<a href="<%- url_for(post.path) %>" class="<%= class_name %>">
|
||||
<time datetime="<%= date_xml(post.date) %>" itemprop="datePublished"><%= date(post.date, date_format) %></time>
|
||||
</a>
|
||||
</div>
|
||||
<% } %>
|
9
themes/hueman/layout/common/post/gallery.ejs
Normal file
9
themes/hueman/layout/common/post/gallery.ejs
Normal file
@ -0,0 +1,9 @@
|
||||
<% if (post.photos && post.photos.length) { %>
|
||||
<div class="article-gallery">
|
||||
<% post.photos.forEach(function(photo, i) { %>
|
||||
<a class="gallery-item" href="<%- url_for(photo) %>" rel="gallery_<%= post._id %>">
|
||||
<img src="<%- url_for(photo) %>" itemprop="image" />
|
||||
</a>
|
||||
<% }) %>
|
||||
</div>
|
||||
<% } %>
|
24
themes/hueman/layout/common/post/nav.ejs
Normal file
24
themes/hueman/layout/common/post/nav.ejs
Normal file
@ -0,0 +1,24 @@
|
||||
<% if (post.prev || post.next) { %>
|
||||
<nav id="article-nav">
|
||||
<% if (post.prev) { %>
|
||||
<a href="<%- url_for(post.prev.path) %>" id="article-nav-newer" class="article-nav-link-wrap">
|
||||
<strong class="article-nav-caption"><%= __('sidebar.newer') %></strong>
|
||||
<p class="article-nav-title">
|
||||
<% if (post.prev.title) { %>
|
||||
<%= post.prev.title %>
|
||||
<% } else { %>
|
||||
(no title)
|
||||
<% } %>
|
||||
</p>
|
||||
<i class="icon fa fa-chevron-right" id="icon-chevron-right"></i>
|
||||
</a>
|
||||
<% } %>
|
||||
<% if (post.next) { %>
|
||||
<a href="<%- url_for(post.next.path) %>" id="article-nav-older" class="article-nav-link-wrap">
|
||||
<strong class="article-nav-caption"><%= __('sidebar.older') %></strong>
|
||||
<p class="article-nav-title"><%= post.next.title %></p>
|
||||
<i class="icon fa fa-chevron-left" id="icon-chevron-left"></i>
|
||||
</a>
|
||||
<% } %>
|
||||
</nav>
|
||||
<% } %>
|
6
themes/hueman/layout/common/post/tag.ejs
Normal file
6
themes/hueman/layout/common/post/tag.ejs
Normal file
@ -0,0 +1,6 @@
|
||||
<% if (post.tags && post.tags.length) { %>
|
||||
<div class="article-tag">
|
||||
<i class="fa fa-tag"></i>
|
||||
<%- list_tags(post.tags, { show_count: false, style: 'link' }) %>
|
||||
</div>
|
||||
<% } %>
|
15
themes/hueman/layout/common/post/title.ejs
Normal file
15
themes/hueman/layout/common/post/title.ejs
Normal file
@ -0,0 +1,15 @@
|
||||
<% if (post.link) { %>
|
||||
<h1 itemprop="name">
|
||||
<a class="<%= class_name %>" href="<%- url_for(post.link) %>" target="_blank" itemprop="url"><%= post.title %></a>
|
||||
</h1>
|
||||
<% } else if (post.title) { %>
|
||||
<% if (typeof(linkable) !== 'undefined' && linkable) { %>
|
||||
<h1 class="<%= class_name %>" itemprop="name">
|
||||
<a href="<%- url_for(post.path) %>"><%= post.title %></a>
|
||||
</h1>
|
||||
<% } else { %>
|
||||
<h1 class="<%= class_name %>" itemprop="name">
|
||||
<%= post.title %>
|
||||
</h1>
|
||||
<% } %>
|
||||
<% } %>
|
5
themes/hueman/layout/common/scripts.ejs
Normal file
5
themes/hueman/layout/common/scripts.ejs
Normal file
@ -0,0 +1,5 @@
|
||||
<%- partial('comment/scripts') %>
|
||||
<%- partial('plugin/scripts') %>
|
||||
|
||||
<!-- Custom Scripts -->
|
||||
<%- js('js/main') %>
|
27
themes/hueman/layout/common/sidebar.ejs
Normal file
27
themes/hueman/layout/common/sidebar.ejs
Normal file
@ -0,0 +1,27 @@
|
||||
<aside id="sidebar">
|
||||
<a class="sidebar-toggle" title="Expand Sidebar"><i class="toggle icon"></i></a>
|
||||
<div class="sidebar-top">
|
||||
<p><%= __('sidebar.follow') %>:</p>
|
||||
<ul class="social-links">
|
||||
<% for (var i in theme.customize.social_links) { %>
|
||||
<% if (theme.customize.social_links[i]) { %>
|
||||
<li>
|
||||
<a class="social-tooltip" title="<%= i %>" href="<%- url_for(theme.customize.social_links[i]) %>" target="_blank" rel="noopener">
|
||||
<i class="icon fa fa-<%= i %>"></i>
|
||||
</a>
|
||||
</li>
|
||||
<% } %>
|
||||
<% } %>
|
||||
</ul>
|
||||
</div>
|
||||
<% if (is_post()) { %>
|
||||
<%- partial('post/nav', {post: page}) %>
|
||||
<% } %>
|
||||
<div class="widgets-container">
|
||||
<% if (theme.widgets) { %>
|
||||
<% theme.widgets.forEach(function(widget) { %>
|
||||
<%- partial('widget/' + widget, {post: page}) %>
|
||||
<% }) %>
|
||||
<% } %>
|
||||
</div>
|
||||
</aside>
|
23
themes/hueman/layout/common/summary.ejs
Normal file
23
themes/hueman/layout/common/summary.ejs
Normal file
@ -0,0 +1,23 @@
|
||||
<article class="article article-summary<%= (post.direction && post.direction.toLowerCase() === 'rtl' ? ' rtl' : '') %>">
|
||||
<div class="article-summary-inner">
|
||||
<% if (theme.customize.thumbnail === true) { %>
|
||||
<%- partial('common/thumbnail', { counter: true }) %>
|
||||
<% } %>
|
||||
<div class="article-meta">
|
||||
<div class="category">
|
||||
<%- list_categories(post.categories, {
|
||||
depth:2,
|
||||
style: 'none',
|
||||
show_count: false,
|
||||
class: 'article-category',
|
||||
separator: '<i class="icon fa fa-angle-right"></i>',
|
||||
}) %>
|
||||
</div>
|
||||
<div class="date"><time datetime="<%= date_xml(post.date) %>" itemprop="datePublished"><%= date(post.date) %></time></div>
|
||||
</div>
|
||||
<%- partial('post/title', { class_name: 'article-title', linkable: true }) %>
|
||||
<p class="article-excerpt">
|
||||
<%- excerpt(post) %>
|
||||
</p>
|
||||
</div>
|
||||
</article>
|
11
themes/hueman/layout/common/thumbnail.ejs
Normal file
11
themes/hueman/layout/common/thumbnail.ejs
Normal file
@ -0,0 +1,11 @@
|
||||
<a href="<%- url_for(post.link ? post.link : post.path) %>" class="thumbnail">
|
||||
<% var thumbnailUrl = thumbnail(post) %>
|
||||
<% if (thumbnailUrl) { %>
|
||||
<span style="background-image:url(<%- thumbnailUrl %>)" alt="<%= post.title %>" class="thumbnail-image"></span>
|
||||
<% } else { %>
|
||||
<span class="thumbnail-image thumbnail-none"></span>
|
||||
<% } %>
|
||||
<% if (typeof(counter) !== 'undefined' && counter) { %>
|
||||
<%- partial('comment/counter') %>
|
||||
<% } %>
|
||||
</a>
|
1
themes/hueman/layout/index.ejs
Normal file
1
themes/hueman/layout/index.ejs
Normal file
@ -0,0 +1 @@
|
||||
<%- partial('common/archive') %>
|
22
themes/hueman/layout/layout.ejs
Normal file
22
themes/hueman/layout/layout.ejs
Normal file
@ -0,0 +1,22 @@
|
||||
<%- partial('common/head') %>
|
||||
<body>
|
||||
<div id="wrap">
|
||||
<%- partial('common/header', null, {cache: !config.relative_link}) %>
|
||||
<div class="container">
|
||||
<div class="main-body container-inner">
|
||||
<div class="main-body-inner">
|
||||
<section id="main">
|
||||
<%- partial('common/content-title') %>
|
||||
<div class="main-body-content">
|
||||
<%- body %>
|
||||
</div>
|
||||
</section>
|
||||
<%- partial('common/sidebar') %>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<%- partial('common/footer', null, {cache: !config.relative_link}) %>
|
||||
<%- partial('common/scripts') %>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
1
themes/hueman/layout/page.ejs
Normal file
1
themes/hueman/layout/page.ejs
Normal file
@ -0,0 +1 @@
|
||||
<%- partial('common/article', { post: page }) %>
|
9
themes/hueman/layout/plugin/baidu-analytics.ejs
Normal file
9
themes/hueman/layout/plugin/baidu-analytics.ejs
Normal file
@ -0,0 +1,9 @@
|
||||
<script>
|
||||
var _hmt = _hmt || [];
|
||||
(function() {
|
||||
var hm = document.createElement("script");
|
||||
hm.src = "//hm.baidu.com/hm.js?<%= theme.plugins.baidu_analytics %>";
|
||||
var s = document.getElementsByTagName("script")[0];
|
||||
s.parentNode.insertBefore(hm, s);
|
||||
})();
|
||||
</script>
|
10
themes/hueman/layout/plugin/google-analytics.ejs
Normal file
10
themes/hueman/layout/plugin/google-analytics.ejs
Normal file
@ -0,0 +1,10 @@
|
||||
<script type="text/javascript">
|
||||
(function(i,s,o,g,r,a,m) {i['GoogleAnalyticsObject']=r;i[r]=i[r]||function() {
|
||||
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
|
||||
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
|
||||
})(window,document,'script','//www.google-analytics.com/analytics.js','ga');
|
||||
|
||||
ga('create', '<%= theme.plugins.google_analytics %>', 'auto');
|
||||
ga('send', 'pageview');
|
||||
|
||||
</script>
|
39
themes/hueman/layout/plugin/scripts.ejs
Normal file
39
themes/hueman/layout/plugin/scripts.ejs
Normal file
@ -0,0 +1,39 @@
|
||||
<% if (typeof(isHead) !== 'undefined' && isHead) { %>
|
||||
<% if (theme.plugins.lightgallery) { %>
|
||||
<%- css('libs/lightgallery/css/lightgallery.min') %>
|
||||
<% } %>
|
||||
<% if (theme.plugins.justifiedgallery) { %>
|
||||
<%- css('libs/justified-gallery/justifiedGallery.min') %>
|
||||
<% } %>
|
||||
<% if (theme.plugins.google_analytics) { %>
|
||||
<%- partial('plugin/google-analytics') %>
|
||||
<% } %>
|
||||
<% if (theme.plugins.baidu_analytics) { %>
|
||||
<%- partial('plugin/baidu-analytics') %>
|
||||
<% } %>
|
||||
<% } else if (typeof(isFooter) !== 'undefined' && isFooter) { %>
|
||||
<% if (theme.plugins.statcounter && theme.plugins.statcounter.on) { %>
|
||||
<%- partial('plugin/statcounter') %>
|
||||
<% } %>
|
||||
<% } else { %>
|
||||
<% if (theme.plugins.lightgallery) { %>
|
||||
<%- js('libs/lightgallery/js/lightgallery.min') %>
|
||||
<%- js('libs/lightgallery/js/lg-thumbnail.min') %>
|
||||
<%- js('libs/lightgallery/js/lg-pager.min') %>
|
||||
<%- js('libs/lightgallery/js/lg-autoplay.min') %>
|
||||
<%- js('libs/lightgallery/js/lg-fullscreen.min') %>
|
||||
<%- js('libs/lightgallery/js/lg-zoom.min') %>
|
||||
<%- js('libs/lightgallery/js/lg-hash.min') %>
|
||||
<%- js('libs/lightgallery/js/lg-share.min') %>
|
||||
<%- js('libs/lightgallery/js/lg-video.min') %>
|
||||
<% } %>
|
||||
<% if (theme.plugins.justifiedgallery) { %>
|
||||
<%- js('libs/justified-gallery/jquery.justifiedGallery.min') %>
|
||||
<% } %>
|
||||
<% if (theme.plugins.mathjax) { %>
|
||||
<script type="text/x-mathjax-config">
|
||||
MathJax.Hub.Config({ tex2jax: { inlineMath: [['$','$'], ['\\(','\\)']] } });
|
||||
</script>
|
||||
<%- js('https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.1/MathJax.js?config=TeX-MML-AM_CHTML') %>
|
||||
<% } %>
|
||||
<% } %>
|
23
themes/hueman/layout/plugin/statcounter.ejs
Normal file
23
themes/hueman/layout/plugin/statcounter.ejs
Normal file
@ -0,0 +1,23 @@
|
||||
<!-- Default Statcounter code -->
|
||||
<% let sc = theme.plugins.statcounter; %>
|
||||
<script type="text/javascript">
|
||||
var sc_project=<%= sc.sc_project %>;
|
||||
var sc_invisible=<%= sc.sc_invisible %>;
|
||||
var sc_security="<%= sc.sc_security %>";
|
||||
</script>
|
||||
<script type="text/javascript" src="https://www.statcounter.com/counter/counter.js">
|
||||
</script>
|
||||
<noscript>
|
||||
<div class="statcounter">
|
||||
<a title="Web Analytics" href="http://statcounter.com/" target="_blank">
|
||||
<img class="statcounter"
|
||||
src="//c.statcounter.com/<%= sc.sc_project %>/0/<%=
|
||||
sc.sc_security %>/<%= sc.sc_invisible %>/"
|
||||
alt="Web Analytics">
|
||||
</a>
|
||||
</div>
|
||||
</noscript>
|
||||
<!-- End of Statcounter Code -->
|
||||
<% if (sc.public) { %>
|
||||
<a href="http://statcounter.com/p<%= sc.sc_project %>/?guest=1">View My Stats</a>
|
||||
<% } %>
|
1
themes/hueman/layout/post.ejs
Normal file
1
themes/hueman/layout/post.ejs
Normal file
@ -0,0 +1 @@
|
||||
<%- partial('common/article', { post: page }) %>
|
20
themes/hueman/layout/pwa/index.ejs
Normal file
20
themes/hueman/layout/pwa/index.ejs
Normal file
@ -0,0 +1,20 @@
|
||||
<% if (config.pwa) { %>
|
||||
<%
|
||||
var icon = config.pwa.manifest.body.icons.find(icon => icon.sizes === '152x152');
|
||||
%>
|
||||
<% if (icon) { %>
|
||||
<link rel="icon" href="/<%= icon.src %>" />
|
||||
<link rel="apple-touch-icon" href="/<%= icon.src %>" />
|
||||
|
||||
<meta name="msapplication-TileImage" content="/<%= icon.src %>" />
|
||||
<% } %>
|
||||
|
||||
<meta name="msapplication-TileColor" content="<%= theme.customize.theme_color %>" />
|
||||
|
||||
<meta name="theme-color" content="<%= theme.customize.theme_color %>" />
|
||||
|
||||
<meta name="apple-mobile-web-app-capable" content="yes" />
|
||||
<meta name="apple-mobile-web-app-status-bar-style" content="default" />
|
||||
<meta name="apple-mobile-web-app-title" content="<%= config.pwa.manifest.body.name %>" />
|
||||
|
||||
<% } %>
|
12
themes/hueman/layout/search/baidu.ejs
Normal file
12
themes/hueman/layout/search/baidu.ejs
Normal file
@ -0,0 +1,12 @@
|
||||
<form class="search-form" method="GET" action="https://www.baidu.com/s?">
|
||||
<input name="wd" type="text" class="search-form-input" placeholder="<%= __('index.search') %>" />
|
||||
</form>
|
||||
<script>
|
||||
(function ($) {
|
||||
$('.search-form').on('submit', function (e) {
|
||||
var keyword = $('.search-form-input[name="wd"]').val();
|
||||
window.location = 'https://www.baidu.com/s?wd=site:<%= config.url.replace(/http(s)*:\/\//, "") %> ' + keyword;
|
||||
return false;
|
||||
});
|
||||
})(jQuery);
|
||||
</script>
|
18
themes/hueman/layout/search/index.ejs
Normal file
18
themes/hueman/layout/search/index.ejs
Normal file
@ -0,0 +1,18 @@
|
||||
<div id="search-form-wrap">
|
||||
<% if (theme.search.insight) { %>
|
||||
<form class="search-form">
|
||||
<input type="text" class="ins-search-input search-form-input" placeholder="<%= __('index.search') %>" />
|
||||
<button type="submit" class="search-form-submit"></button>
|
||||
</form>
|
||||
<%- partial('search/insight') %>
|
||||
<% } else if (theme.search.swiftype) { %>
|
||||
<div class="search-form">
|
||||
<input type="text" class="st-default-search-input search-form-input" placeholder="<%= __('index.search') %>" />
|
||||
</div>
|
||||
<%- partial('search/swiftype') %>
|
||||
<% } else if (theme.search.baidu) { %>
|
||||
<%- partial('search/baidu') %>
|
||||
<% } else { %>
|
||||
<%- search_form({text: __('index.search')}) %>
|
||||
<% } %>
|
||||
</div>
|
29
themes/hueman/layout/search/insight.ejs
Normal file
29
themes/hueman/layout/search/insight.ejs
Normal file
@ -0,0 +1,29 @@
|
||||
<div class="ins-search">
|
||||
<div class="ins-search-mask"></div>
|
||||
<div class="ins-search-container">
|
||||
<div class="ins-input-wrapper">
|
||||
<input type="text" class="ins-search-input" placeholder="<%= __('insight.hint') %>" />
|
||||
<span class="ins-close ins-selectable"><i class="fa fa-times-circle"></i></span>
|
||||
</div>
|
||||
<div class="ins-section-wrapper">
|
||||
<div class="ins-section-container"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<script>
|
||||
(function (window) {
|
||||
var INSIGHT_CONFIG = {
|
||||
TRANSLATION: {
|
||||
POSTS: '<%= __("insight.posts") %>',
|
||||
PAGES: '<%= __("insight.pages") %>',
|
||||
CATEGORIES: '<%= __("insight.categories") %>',
|
||||
TAGS: '<%= __("insight.tags") %>',
|
||||
UNTITLED: '<%= __("insight.untitled") %>',
|
||||
},
|
||||
ROOT_URL: '<%= config.root %>',
|
||||
CONTENT_URL: '<%- url_for("/content.json")%>',
|
||||
};
|
||||
window.INSIGHT_CONFIG = INSIGHT_CONFIG;
|
||||
})(window);
|
||||
</script>
|
||||
<%- js('js/insight') %>
|
26
themes/hueman/layout/search/swiftype.ejs
Normal file
26
themes/hueman/layout/search/swiftype.ejs
Normal file
@ -0,0 +1,26 @@
|
||||
<script type="text/javascript">
|
||||
(function(w,d,t,u,n,s,e) {w['SwiftypeObject']=n;w[n]=w[n]||function() {
|
||||
(w[n].q=w[n].q||[]).push(arguments);};s=d.createElement(t);
|
||||
e=d.getElementsByTagName(t)[0];s.async=1;s.src=u;e.parentNode.insertBefore(s,e);
|
||||
})(window,document,'script','//s.swiftypecdn.com/install/v2/st.js','_st');
|
||||
|
||||
_st('install','<%= theme.search.swiftype %>','2.0.0');
|
||||
</script>
|
||||
<style>
|
||||
.st-ui-injected-overlay-container,
|
||||
.st-ui-injected-overlay-container *:not(select) {
|
||||
font-family: inherit !important;
|
||||
}
|
||||
section.st-ui-content.st-search-results a.st-ui-result .st-ui-type-heading {
|
||||
color: <%= theme.customize.theme_color %> !important;
|
||||
}
|
||||
.st-ui-injected-overlay-container .st-ui-header input[type="text"]:focus {
|
||||
border-bottom: 2px solid <%= theme.customize.theme_color %>;
|
||||
}
|
||||
.st-ui-injected-overlay-container .st-ui-footer a.st-ui-pagination-link {
|
||||
color: <%= theme.customize.theme_color %>;
|
||||
}
|
||||
.st-ui-injected-overlay-container .st-ui-footer a.st-ui-pagination-link span.st-ui-arrow {
|
||||
border-color: <%= theme.customize.theme_color %>;
|
||||
}
|
||||
</style>
|
52
themes/hueman/layout/share/addtoany.ejs
Normal file
52
themes/hueman/layout/share/addtoany.ejs
Normal file
@ -0,0 +1,52 @@
|
||||
<div class="a2a_kit a2a_default_style">
|
||||
<a class="a2a_dd" href="https://www.addtoany.com/share">Share</a>
|
||||
<span class="a2a_divider"></span>
|
||||
<a class="a2a_button_facebook"></a>
|
||||
<a class="a2a_button_twitter"></a>
|
||||
<a class="a2a_button_google_plus"></a>
|
||||
<a class="a2a_button_pinterest"></a>
|
||||
<a class="a2a_button_tumblr"></a>
|
||||
</div>
|
||||
<script type="text/javascript" src="//static.addtoany.com/menu/page.js"></script>
|
||||
<style>
|
||||
.a2a_menu {
|
||||
border-radius: 4px;
|
||||
}
|
||||
.a2a_menu a {
|
||||
margin: 2px 0;
|
||||
font-size: 14px;
|
||||
line-height: 16px;
|
||||
border-radius: 4px;
|
||||
color: inherit !important;
|
||||
font-family: 'Microsoft Yahei';
|
||||
}
|
||||
#a2apage_dropdown {
|
||||
margin: 10px 0;
|
||||
}
|
||||
.a2a_mini_services {
|
||||
padding: 10px;
|
||||
}
|
||||
a.a2a_i,
|
||||
i.a2a_i {
|
||||
width: 122px;
|
||||
line-height: 16px;
|
||||
}
|
||||
a.a2a_i .a2a_svg,
|
||||
a.a2a_more .a2a_svg {
|
||||
width: 16px;
|
||||
height: 16px;
|
||||
line-height: 16px;
|
||||
vertical-align: top;
|
||||
background-size: 16px;
|
||||
}
|
||||
a.a2a_i {
|
||||
border: none !important;
|
||||
}
|
||||
a.a2a_menu_show_more_less {
|
||||
margin: 0;
|
||||
padding: 10px 0;
|
||||
line-height: 16px;
|
||||
}
|
||||
.a2a_mini_services:after{content:".";display:block;height:0;clear:both;visibility:hidden}
|
||||
.a2a_mini_services{*+height:1%;}
|
||||
</style>
|
34
themes/hueman/layout/share/bdshare.ejs
Normal file
34
themes/hueman/layout/share/bdshare.ejs
Normal file
@ -0,0 +1,34 @@
|
||||
<div class="bdsharebuttonbox">
|
||||
<a href="#" class="bds_more" data-cmd="more">分享到:</a>
|
||||
<a href="#" class="bds_qzone" data-cmd="qzone" title="分享到QQ空间">QQ空间</a>
|
||||
<a href="#" class="bds_tsina" data-cmd="tsina" title="分享到新浪微博">新浪微博</a>
|
||||
<a href="#" class="bds_tqq" data-cmd="tqq" title="分享到腾讯微博">腾讯微博</a>
|
||||
<a href="#" class="bds_renren" data-cmd="renren" title="分享到人人网">人人网</a>
|
||||
<a href="#" class="bds_weixin" data-cmd="weixin" title="分享到微信">微信</a>
|
||||
</div>
|
||||
<script>
|
||||
window._bd_share_config={"common":{"bdSnsKey":{},"bdText":"","bdMini":"2","bdMiniList":false,"bdPic":"","bdStyle":"0","bdSize":"16"},"share":{"bdSize":16}};with(document)0[(getElementsByTagName('head')[0]||body).appendChild(createElement('script')).src='//bdimg.share.baidu.com/static/api/js/share.js?v=89860593.js?cdnversion='+~(-new Date()/36e5)];
|
||||
</script>
|
||||
<style>
|
||||
.bdshare_popup_box {
|
||||
border-radius: 4px;
|
||||
border: #e1e1e1 solid 1px;
|
||||
}
|
||||
.bdshare-button-style0-16 a,
|
||||
.bdshare-button-style0-16 .bds_more {
|
||||
padding-left: 20px;
|
||||
margin: 6px 10px 6px 0;
|
||||
}
|
||||
.bdshare_dialog_list a,
|
||||
.bdshare_popup_list a,
|
||||
.bdshare_popup_bottom a {
|
||||
font-family: 'Microsoft Yahei';
|
||||
}
|
||||
.bdshare_popup_top {
|
||||
display: none;
|
||||
}
|
||||
.bdshare_popup_bottom {
|
||||
height: auto;
|
||||
padding: 5px;
|
||||
}
|
||||
</style>
|
59
themes/hueman/layout/share/default.ejs
Normal file
59
themes/hueman/layout/share/default.ejs
Normal file
@ -0,0 +1,59 @@
|
||||
<a data-url="<%- post.permalink %>" data-id="<%= post._id %>" class="article-share-link"><i class="fa fa-share"></i><%=__('article.share')%></a>
|
||||
<script>
|
||||
(function ($) {
|
||||
$('body').on('click', function() {
|
||||
$('.article-share-box.on').removeClass('on');
|
||||
}).on('click', '.article-share-link', function(e) {
|
||||
e.stopPropagation();
|
||||
|
||||
var $this = $(this),
|
||||
url = $this.attr('data-url'),
|
||||
encodedUrl = encodeURIComponent(url),
|
||||
id = 'article-share-box-' + $this.attr('data-id'),
|
||||
offset = $this.offset(),
|
||||
box;
|
||||
|
||||
if ($('#' + id).length) {
|
||||
box = $('#' + id);
|
||||
|
||||
if (box.hasClass('on')){
|
||||
box.removeClass('on');
|
||||
return;
|
||||
}
|
||||
} else {
|
||||
var html = [
|
||||
'<div id="' + id + '" class="article-share-box">',
|
||||
'<input class="article-share-input" value="' + url + '">',
|
||||
'<div class="article-share-links">',
|
||||
'<a href="https://twitter.com/intent/tweet?url=' + encodedUrl + '" class="article-share-twitter" target="_blank" title="Twitter"></a>',
|
||||
'<a href="https://www.facebook.com/sharer.php?u=' + encodedUrl + '" class="article-share-facebook" target="_blank" title="Facebook"></a>',
|
||||
'<a href="http://pinterest.com/pin/create/button/?url=' + encodedUrl + '" class="article-share-pinterest" target="_blank" title="Pinterest"></a>',
|
||||
'<a href="https://plus.google.com/share?url=' + encodedUrl + '" class="article-share-google" target="_blank" title="Google+"></a>',
|
||||
'</div>',
|
||||
'</div>'
|
||||
].join('');
|
||||
|
||||
box = $(html);
|
||||
|
||||
$('body').append(box);
|
||||
}
|
||||
|
||||
$('.article-share-box.on').hide();
|
||||
|
||||
box.css({
|
||||
top: offset.top + 25,
|
||||
left: offset.left
|
||||
}).addClass('on');
|
||||
|
||||
}).on('click', '.article-share-box', function (e) {
|
||||
e.stopPropagation();
|
||||
}).on('click', '.article-share-box-input', function () {
|
||||
$(this).select();
|
||||
}).on('click', '.article-share-box-link', function (e) {
|
||||
e.preventDefault();
|
||||
e.stopPropagation();
|
||||
|
||||
window.open(this.href, 'article-share-box-window-' + Date.now(), 'width=500,height=450');
|
||||
});
|
||||
})(jQuery);
|
||||
</script>
|
12
themes/hueman/layout/share/index.ejs
Normal file
12
themes/hueman/layout/share/index.ejs
Normal file
@ -0,0 +1,12 @@
|
||||
<% if (theme.share === 'jiathis') { %>
|
||||
<%- partial('jiathis') %>
|
||||
<% } %>
|
||||
<% if (theme.share === 'bdshare') { %>
|
||||
<%- partial('bdshare') %>
|
||||
<% } %>
|
||||
<% if (theme.share === 'addtoany') { %>
|
||||
<%- partial('addtoany') %>
|
||||
<% } %>
|
||||
<% if (!theme.share || theme.share === 'default') { %>
|
||||
<%- partial('default', { post: post }) %>
|
||||
<% } %>
|
50
themes/hueman/layout/share/jiathis.ejs
Normal file
50
themes/hueman/layout/share/jiathis.ejs
Normal file
@ -0,0 +1,50 @@
|
||||
<div class="jiathis_style">
|
||||
<span class="jiathis_txt">分享到:</span>
|
||||
<a class="jiathis_button_qzone">QQ空间</a>
|
||||
<a class="jiathis_button_tsina">新浪微博</a>
|
||||
<a class="jiathis_button_tqq">腾讯微博</a>
|
||||
<a class="jiathis_button_weixin">微信</a>
|
||||
<a href="//www.jiathis.com/share" class="jiathis jiathis_txt jiathis_separator jtico jtico_jiathis" target="_blank">更多</a>
|
||||
<a class="jiathis_counter_style"></a>
|
||||
</div>
|
||||
<script type="text/javascript" src="//v3.jiathis.com/code/jia.js" charset="utf-8"></script>
|
||||
<style>
|
||||
.jiathis_style div:first-child:not(.jiadiv_01) {
|
||||
width: auto !important;
|
||||
border: none !important;
|
||||
}
|
||||
.jiathis_style .jiadiv_01 {
|
||||
margin: 10px 0;
|
||||
border-radius: 4px;
|
||||
border: #e1e1e1 solid 1px;
|
||||
}
|
||||
.jiathis_style .jiadiv_01 div:first-child {
|
||||
display: none;
|
||||
}
|
||||
.jiathis_style .jiadiv_02 {
|
||||
padding: 7px 0 !important;
|
||||
}
|
||||
.jiathis_style .jiadiv_02 .jiatitle {
|
||||
width: 85px;
|
||||
border: none;
|
||||
height: auto;
|
||||
margin: 3px 10px;
|
||||
padding: 6px 10px;
|
||||
border-radius: 4px;
|
||||
}
|
||||
.jiathis_style .jiadiv_02 .jiatitle:hover {
|
||||
border: none;
|
||||
}
|
||||
.jiathis_style .jiadiv_02 .jiatitle:nth-child(even) {
|
||||
margin-left: 0;
|
||||
}
|
||||
.jiathis_style .jtico:hover {
|
||||
opacity: 1;
|
||||
}
|
||||
.jiathis_style .ckepopBottom,
|
||||
.jiathis_style .centerBottom {
|
||||
width: auto !important;
|
||||
padding: 5px;
|
||||
background: #f7f7f7;
|
||||
}
|
||||
</style>
|
1
themes/hueman/layout/tag.ejs
Normal file
1
themes/hueman/layout/tag.ejs
Normal file
@ -0,0 +1 @@
|
||||
<%- partial('common/archive') %>
|
8
themes/hueman/layout/widget/archive.ejs
Normal file
8
themes/hueman/layout/widget/archive.ejs
Normal file
@ -0,0 +1,8 @@
|
||||
<% if (site.posts.length) { %>
|
||||
<div class="widget-wrap widget-list">
|
||||
<h3 class="widget-title"><%= __('sidebar.archives') %></h3>
|
||||
<div class="widget">
|
||||
<%- list_archives() %>
|
||||
</div>
|
||||
</div>
|
||||
<% } %>
|
10
themes/hueman/layout/widget/catalog.ejs
Normal file
10
themes/hueman/layout/widget/catalog.ejs
Normal file
@ -0,0 +1,10 @@
|
||||
<% if (typeof(post) != 'undefined' && post.toc) { %>
|
||||
<div class="widget-wrap widget-list">
|
||||
<h3 class="widget-title"><%= __('sidebar.catalogue') %></h3>
|
||||
<div class="widget">
|
||||
<div id="toc" class="toc-article">
|
||||
<%- toc(post.content) %>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<% } %>
|
8
themes/hueman/layout/widget/category.ejs
Normal file
8
themes/hueman/layout/widget/category.ejs
Normal file
@ -0,0 +1,8 @@
|
||||
<% if (site.categories.length) { %>
|
||||
<div class="widget-wrap widget-list">
|
||||
<h3 class="widget-title"><%= __('sidebar.categories') %></h3>
|
||||
<div class="widget">
|
||||
<%- list_categories() %>
|
||||
</div>
|
||||
</div>
|
||||
<% } %>
|
14
themes/hueman/layout/widget/links.ejs
Normal file
14
themes/hueman/layout/widget/links.ejs
Normal file
@ -0,0 +1,14 @@
|
||||
<% if (site.posts.length) { %>
|
||||
<div class="widget-wrap widget-list">
|
||||
<h3 class="widget-title"><%= __('sidebar.links') %></h3>
|
||||
<div class="widget">
|
||||
<ul>
|
||||
<% for (var i in theme.miscellaneous.links) { %>
|
||||
<li>
|
||||
<a href="<%- theme.miscellaneous.links[i] %>"><%= i %></a>
|
||||
</li>
|
||||
<% } %>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<% } %>
|
23
themes/hueman/layout/widget/recent_posts.ejs
Normal file
23
themes/hueman/layout/widget/recent_posts.ejs
Normal file
@ -0,0 +1,23 @@
|
||||
<% if (site.posts.length) { %>
|
||||
<div class="widget-wrap">
|
||||
<h3 class="widget-title"><%= __('sidebar.recents') %></h3>
|
||||
<div class="widget">
|
||||
<ul id="recent-post" class="<%= (theme.customize.thumbnail?'':'no-thumbnail') %>">
|
||||
<% site.posts.sort('date', -1).limit(5).each(function(post) { %>
|
||||
<li>
|
||||
<% if (theme.customize.thumbnail === true) { %>
|
||||
<div class="item-thumbnail">
|
||||
<%- partial('common/thumbnail.ejs', {post: post}) %>
|
||||
</div>
|
||||
<% } %>
|
||||
<div class="item-inner">
|
||||
<p class="item-category"><%- list_categories(post.categories, {show_count: false, depth:2, class: 'article-category', style: 'none', separator: '<i class="icon fa fa-angle-right"></i>'}) %></p>
|
||||
<p class="item-title"><a href="<%- url_for((post.link?post.link:post.path)) %>" class="title"><%= post.title %></a></p>
|
||||
<p class="item-date"><time datetime="<%= date_xml(post.date) %>" itemprop="datePublished"><%= date(post.date) %></time></p>
|
||||
</div>
|
||||
</li>
|
||||
<% }) %>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<% } %>
|
25
themes/hueman/layout/widget/sticky_posts.ejs
Normal file
25
themes/hueman/layout/widget/sticky_posts.ejs
Normal file
@ -0,0 +1,25 @@
|
||||
<% if (site.posts.length) { %>
|
||||
<div class="widget-wrap">
|
||||
<h3 class="widget-title"><%= __('sidebar.sticky') %></h3>
|
||||
<div class="widget">
|
||||
<ul id="recent-post" class="<%= (theme.customize.thumbnail?'':'no-thumbnail') %>">
|
||||
<% site.posts.filter(function(post) { return post.sticky; }).sort('sticky', -1).limit(5).each(function(post) { %>
|
||||
<% if (!post.hidden) { %>
|
||||
<li>
|
||||
<% if (theme.customize.thumbnail === true) { %>
|
||||
<div class="item-thumbnail">
|
||||
<%- partial('common/thumbnail.ejs', {post: post}) %>
|
||||
</div>
|
||||
<% } %>
|
||||
<div class="item-inner">
|
||||
<p class="item-category"><%- list_categories(post.categories, {show_count: false, depth:2, class: 'article-category', style: 'none', separator: '<i class="icon fa fa-angle-right"></i>'}) %></p>
|
||||
<p class="item-title"><a href="<%- url_for((post.link?post.link:post.path)) %>" class="title"><%= post.title %></a></p>
|
||||
<p class="item-date"><time datetime="<%= date_xml(post.date) %>" itemprop="datePublished"><%= date(post.date) %></time></p>
|
||||
</div>
|
||||
</li>
|
||||
<% } %>
|
||||
<% }) %>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<% } %>
|
8
themes/hueman/layout/widget/tag.ejs
Normal file
8
themes/hueman/layout/widget/tag.ejs
Normal file
@ -0,0 +1,8 @@
|
||||
<% if (site.tags.length) { %>
|
||||
<div class="widget-wrap widget-list">
|
||||
<h3 class="widget-title"><%= __('sidebar.tags') %></h3>
|
||||
<div class="widget">
|
||||
<%- list_tags() %>
|
||||
</div>
|
||||
</div>
|
||||
<% } %>
|
8
themes/hueman/layout/widget/tagcloud.ejs
Normal file
8
themes/hueman/layout/widget/tagcloud.ejs
Normal file
@ -0,0 +1,8 @@
|
||||
<% if (site.tags.length) { %>
|
||||
<div class="widget-wrap widget-float">
|
||||
<h3 class="widget-title"><%= __('sidebar.tag_cloud') %></h3>
|
||||
<div class="widget tagcloud">
|
||||
<%- tagcloud() %>
|
||||
</div>
|
||||
</div>
|
||||
<% } %>
|
9
themes/hueman/package.json
Normal file
9
themes/hueman/package.json
Normal file
@ -0,0 +1,9 @@
|
||||
{
|
||||
"name": "hexo-theme-hueman",
|
||||
"version": "0.2.1",
|
||||
"private": true,
|
||||
"peerDependencies": {
|
||||
"hexo-pwa": ">= 0.1.3",
|
||||
"hexo-multiauthor": "0.0.1"
|
||||
}
|
||||
}
|
15
themes/hueman/scripts/excerpt.js
Normal file
15
themes/hueman/scripts/excerpt.js
Normal file
@ -0,0 +1,15 @@
|
||||
/**
|
||||
* Excerpt Helper
|
||||
* @description Get the excerpt from a post
|
||||
* @example
|
||||
* <%- excerpt(post) %>
|
||||
*/
|
||||
hexo.extend.helper.register('excerpt', function (post) {
|
||||
var excerpt;
|
||||
if (post.excerpt) {
|
||||
excerpt = post.excerpt.replace(/\<[^\>]+\>/g, '');
|
||||
} else {
|
||||
excerpt = post.content.replace(/\<[^\>]+\>/g, '').substring(0, 200);
|
||||
}
|
||||
return excerpt;
|
||||
});
|
39
themes/hueman/scripts/meta.js
Normal file
39
themes/hueman/scripts/meta.js
Normal file
@ -0,0 +1,39 @@
|
||||
/**
|
||||
* Meta Helper
|
||||
* @description Generate meta tags for HTML header
|
||||
* @example
|
||||
* <%- meta(post) %>
|
||||
*/
|
||||
function trim (str) {
|
||||
return str.trim().replace(/^"(.*)"$/, '$1').replace(/^'(.*)'$/, '$1');
|
||||
}
|
||||
|
||||
function split (str, sep) {
|
||||
var result = [];
|
||||
var matched = null;
|
||||
while (matched = sep.exec(str)) {
|
||||
result.push(matched[0]);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
hexo.extend.helper.register('meta', function (post) {
|
||||
var metas = post.meta || [];
|
||||
var output = '';
|
||||
var metaDOMArray = metas.map(function (meta) {
|
||||
var entities = split(meta, /(?:[^\\;]+|\\.)+/g);
|
||||
var entityArray = entities.map(function (entity) {
|
||||
var keyValue = split(entity, /(?:[^\\=]+|\\.)+/g);
|
||||
if (keyValue.length < 2) {
|
||||
return null;
|
||||
}
|
||||
var key = trim(keyValue[0]);
|
||||
var value = trim(keyValue[1]);
|
||||
return key + '="' + value + '"';
|
||||
}).filter(function (entity) {
|
||||
return entity;
|
||||
});
|
||||
return '<meta ' + entityArray.join(' ') + ' />';
|
||||
});
|
||||
return metaDOMArray.join('\n');
|
||||
});
|
17
themes/hueman/scripts/thumbnail.js
Normal file
17
themes/hueman/scripts/thumbnail.js
Normal file
@ -0,0 +1,17 @@
|
||||
/**
|
||||
* Thumbnail Helper
|
||||
* @description Get the thumbnail url from a post
|
||||
* @example
|
||||
* <%- thumbnail(post) %>
|
||||
*/
|
||||
hexo.extend.helper.register('thumbnail', function (post) {
|
||||
var url = post.thumbnail || '';
|
||||
if (!url) {
|
||||
var imgPattern = /\<img\s.*?\s?src\s*=\s*['|"]?([^\s'"]+).*?\>/ig;
|
||||
var result = imgPattern.exec(post.content);
|
||||
if (result && result.length > 1) {
|
||||
url = result[1];
|
||||
}
|
||||
}
|
||||
return url;
|
||||
});
|
57
themes/hueman/source/css/_extend.styl
Normal file
57
themes/hueman/source/css/_extend.styl
Normal file
@ -0,0 +1,57 @@
|
||||
$block-caption
|
||||
&, a
|
||||
text-decoration: none
|
||||
text-transform: uppercase
|
||||
color: color-default + #111
|
||||
line-height: 1em
|
||||
text-shadow: 0 1px #fff
|
||||
|
||||
$base-style
|
||||
h1
|
||||
font-size: 2em
|
||||
h2
|
||||
font-size: 1.5em
|
||||
h3
|
||||
font-size: 1.3em
|
||||
h4
|
||||
font-size: 1.2em
|
||||
h5
|
||||
font-size: 1em
|
||||
h6
|
||||
font-size: 1em
|
||||
color: color-grey
|
||||
hr
|
||||
border: 1px dashed color-border
|
||||
strong
|
||||
font-weight: bold
|
||||
em, cite
|
||||
font-style: italic
|
||||
sup, sub
|
||||
font-size: 0.75em
|
||||
line-height: 0
|
||||
position: relative
|
||||
vertical-align: baseline
|
||||
sup
|
||||
top: -0.5em
|
||||
sub
|
||||
bottom: -0.2em
|
||||
small
|
||||
font-size: 0.85em
|
||||
acronym, abbr
|
||||
border-bottom: 1px dotted
|
||||
ul, ol, dl
|
||||
line-height: line-height
|
||||
ul, ol
|
||||
ul, ol
|
||||
margin-top: 0
|
||||
margin-bottom: 0
|
||||
margin-left: 20px
|
||||
ul
|
||||
list-style: disc
|
||||
list-style-position: inside
|
||||
ol
|
||||
list-style: decimal
|
||||
list-style-position: inside
|
||||
dt
|
||||
font-weight: bold
|
||||
list-style-position: inside
|
89
themes/hueman/source/css/_highlight/agate.styl
Normal file
89
themes/hueman/source/css/_highlight/agate.styl
Normal file
@ -0,0 +1,89 @@
|
||||
/*!
|
||||
* Agate by Taufik Nurrohman <https://github.com/tovic>
|
||||
* ----------------------------------------------------
|
||||
*
|
||||
* #ade5fc
|
||||
* #a2fca2
|
||||
* #c6b4f0
|
||||
* #d36363
|
||||
* #fcc28c
|
||||
* #fc9b9b
|
||||
* #ffa
|
||||
* #fff
|
||||
* #333
|
||||
* #62c8f3
|
||||
* #888
|
||||
*
|
||||
*/
|
||||
|
||||
.highlight
|
||||
color: white
|
||||
background: #333
|
||||
.code
|
||||
.name,
|
||||
.strong
|
||||
font-weight: bold
|
||||
|
||||
.code,
|
||||
.emphasis
|
||||
font-style: italic
|
||||
|
||||
.tag
|
||||
color: #62c8f3
|
||||
|
||||
.variable,
|
||||
.template-variable,
|
||||
.selector-id,
|
||||
.selector-class
|
||||
color: #ade5fc
|
||||
|
||||
.string,
|
||||
.bullet
|
||||
color: #a2fca2
|
||||
|
||||
.type,
|
||||
.title,
|
||||
.section,
|
||||
.attribute,
|
||||
.quote,
|
||||
.built_in,
|
||||
.builtin-name
|
||||
color: #ffa
|
||||
|
||||
.number,
|
||||
.symbol,
|
||||
.bullet
|
||||
color: #d36363
|
||||
|
||||
.keyword,
|
||||
.selector-tag,
|
||||
.literal
|
||||
color: #fcc28c
|
||||
|
||||
.comment,
|
||||
.deletion,
|
||||
.code
|
||||
color: #888
|
||||
|
||||
.regexp,
|
||||
.link
|
||||
color: #c6b4f0
|
||||
|
||||
.meta
|
||||
color: #fc9b9b
|
||||
|
||||
.deletion
|
||||
background-color: #fc9b9b
|
||||
color: #333
|
||||
|
||||
.addition
|
||||
background-color: #a2fca2
|
||||
color: #333
|
||||
|
||||
.highlight a
|
||||
color: inherit
|
||||
|
||||
.highlight a:focus,
|
||||
.highlight a:hover
|
||||
color: inherit
|
||||
text-decoration: underline
|
52
themes/hueman/source/css/_highlight/androidstudio.styl
Normal file
52
themes/hueman/source/css/_highlight/androidstudio.styl
Normal file
@ -0,0 +1,52 @@
|
||||
/*
|
||||
Date: 24 Fev 2015
|
||||
Author: Pedro Oliveira <kanytu@gmail . com>
|
||||
*/
|
||||
|
||||
.highlight
|
||||
color: #a9b7c6
|
||||
background: #282b2e
|
||||
.code
|
||||
.number,
|
||||
.literal,
|
||||
.symbol,
|
||||
.bullet
|
||||
color: #6897BB
|
||||
|
||||
.keyword,
|
||||
.selector-tag,
|
||||
.deletion
|
||||
color: #cc7832
|
||||
|
||||
.variable,
|
||||
.template-variable,
|
||||
.link
|
||||
color: #629755
|
||||
|
||||
.comment,
|
||||
.quote
|
||||
color: #808080
|
||||
|
||||
.meta
|
||||
color: #bbb529
|
||||
|
||||
.string,
|
||||
.attribute,
|
||||
.addition
|
||||
color: #6A8759
|
||||
|
||||
.section,
|
||||
.title,
|
||||
.type
|
||||
color: #ffc66d
|
||||
|
||||
.name,
|
||||
.selector-id,
|
||||
.selector-class
|
||||
color: #e8bf6a
|
||||
|
||||
.emphasis
|
||||
font-style: italic
|
||||
|
||||
.strong
|
||||
font-weight: bold
|
71
themes/hueman/source/css/_highlight/arduino-light.styl
Normal file
71
themes/hueman/source/css/_highlight/arduino-light.styl
Normal file
@ -0,0 +1,71 @@
|
||||
/*
|
||||
|
||||
Arduino® Light Theme - Stefania Mellai <s.mellai@arduino.cc>
|
||||
|
||||
*/
|
||||
|
||||
.highlight
|
||||
color: #434f54
|
||||
background: #FFFFFF
|
||||
.code
|
||||
.subst
|
||||
color: #434f54
|
||||
|
||||
.keyword,
|
||||
.attribute,
|
||||
.selector-tag,
|
||||
.doctag,
|
||||
.name
|
||||
color: #00979D
|
||||
|
||||
.built_in,
|
||||
.literal,
|
||||
.bullet,
|
||||
.code,
|
||||
.addition
|
||||
color: #D35400
|
||||
|
||||
.regexp,
|
||||
.symbol,
|
||||
.variable,
|
||||
.template-variable,
|
||||
.link,
|
||||
.selector-attr,
|
||||
.selector-pseudo
|
||||
color: #00979D
|
||||
|
||||
.type,
|
||||
.string,
|
||||
.selector-id,
|
||||
.selector-class,
|
||||
.quote,
|
||||
.template-tag,
|
||||
.deletion
|
||||
color: #005C5F
|
||||
|
||||
.title,
|
||||
.section
|
||||
color: #880000
|
||||
font-weight: bold
|
||||
|
||||
.comment
|
||||
color: rgba(149,165,166,.8)
|
||||
|
||||
.meta-keyword
|
||||
color: #728E00
|
||||
|
||||
.meta
|
||||
color: #728E00
|
||||
color: #434f54
|
||||
|
||||
.emphasis
|
||||
font-style: italic
|
||||
|
||||
.strong
|
||||
font-weight: bold
|
||||
|
||||
.function
|
||||
color: #728E00
|
||||
|
||||
.number
|
||||
color: #8A7B52
|
59
themes/hueman/source/css/_highlight/arta.styl
Normal file
59
themes/hueman/source/css/_highlight/arta.styl
Normal file
@ -0,0 +1,59 @@
|
||||
/*
|
||||
Date: 17.V.2011
|
||||
Author: pumbur <pumbur@pumbur.net>
|
||||
*/
|
||||
|
||||
.highlight
|
||||
color: #aaa
|
||||
background: #222
|
||||
.code
|
||||
.subst
|
||||
color: #aaa
|
||||
|
||||
.section
|
||||
color: #fff
|
||||
|
||||
.comment,
|
||||
.quote,
|
||||
.meta
|
||||
color: #444
|
||||
|
||||
.string,
|
||||
.symbol,
|
||||
.bullet,
|
||||
.regexp
|
||||
color: #ffcc33
|
||||
|
||||
.number,
|
||||
.addition
|
||||
color: #00cc66
|
||||
|
||||
.built_in,
|
||||
.builtin-name,
|
||||
.literal,
|
||||
.type,
|
||||
.template-variable,
|
||||
.attribute,
|
||||
.link
|
||||
color: #32aaee
|
||||
|
||||
.keyword,
|
||||
.selector-tag,
|
||||
.name,
|
||||
.selector-id,
|
||||
.selector-class
|
||||
color: #6644aa
|
||||
|
||||
.title,
|
||||
.variable,
|
||||
.deletion,
|
||||
.template-tag
|
||||
color: #bb1166
|
||||
|
||||
.section,
|
||||
.doctag,
|
||||
.strong
|
||||
font-weight: bold
|
||||
|
||||
.emphasis
|
||||
font-style: italic
|
37
themes/hueman/source/css/_highlight/ascetic.styl
Normal file
37
themes/hueman/source/css/_highlight/ascetic.styl
Normal file
@ -0,0 +1,37 @@
|
||||
/*
|
||||
|
||||
Original style from softwaremaniacs.org (c) Ivan Sagalaev <Maniac@SoftwareManiacs.Org>
|
||||
|
||||
*/
|
||||
|
||||
.highlight
|
||||
color: black
|
||||
background: white
|
||||
.code
|
||||
.string,
|
||||
.variable,
|
||||
.template-variable,
|
||||
.symbol,
|
||||
.bullet,
|
||||
.section,
|
||||
.addition,
|
||||
.attribute,
|
||||
.link
|
||||
color: #888
|
||||
|
||||
.comment,
|
||||
.quote,
|
||||
.meta,
|
||||
.deletion
|
||||
color: #ccc
|
||||
|
||||
.keyword,
|
||||
.selector-tag,
|
||||
.section,
|
||||
.name,
|
||||
.type,
|
||||
.strong
|
||||
font-weight: bold
|
||||
|
||||
.emphasis
|
||||
font-style: italic
|
68
themes/hueman/source/css/_highlight/atelier-cave-dark.styl
Normal file
68
themes/hueman/source/css/_highlight/atelier-cave-dark.styl
Normal file
@ -0,0 +1,68 @@
|
||||
/* Base16 Atelier Cave Dark - Theme */
|
||||
/* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/cave) */
|
||||
/* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */
|
||||
|
||||
.highlight
|
||||
color: #8b8792
|
||||
background: #19171c
|
||||
.code
|
||||
/* Atelier-Cave Comment */
|
||||
.comment,
|
||||
.quote
|
||||
color: #7e7887
|
||||
|
||||
/* Atelier-Cave Red */
|
||||
.variable,
|
||||
.template-variable,
|
||||
.attribute,
|
||||
.regexp,
|
||||
.link,
|
||||
.tag,
|
||||
.name,
|
||||
.selector-id,
|
||||
.selector-class
|
||||
color: #be4678
|
||||
|
||||
/* Atelier-Cave Orange */
|
||||
.number,
|
||||
.meta,
|
||||
.built_in,
|
||||
.builtin-name,
|
||||
.literal,
|
||||
.type,
|
||||
.params
|
||||
color: #aa573c
|
||||
|
||||
/* Atelier-Cave Green */
|
||||
.string,
|
||||
.symbol,
|
||||
.bullet
|
||||
color: #2a9292
|
||||
|
||||
/* Atelier-Cave Blue */
|
||||
.title,
|
||||
.section
|
||||
color: #576ddb
|
||||
|
||||
/* Atelier-Cave Purple */
|
||||
.keyword,
|
||||
.selector-tag
|
||||
color: #955ae7
|
||||
|
||||
.deletion,
|
||||
.addition
|
||||
color: #19171c
|
||||
display: inline-block
|
||||
width: 100%
|
||||
|
||||
.deletion
|
||||
background-color: #be4678
|
||||
|
||||
.addition
|
||||
background-color: #2a9292
|
||||
|
||||
.emphasis
|
||||
font-style: italic
|
||||
|
||||
.strong
|
||||
font-weight: bold
|
70
themes/hueman/source/css/_highlight/atelier-cave-light.styl
Normal file
70
themes/hueman/source/css/_highlight/atelier-cave-light.styl
Normal file
@ -0,0 +1,70 @@
|
||||
/* Base16 Atelier Cave Light - Theme */
|
||||
/* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/cave) */
|
||||
/* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */
|
||||
|
||||
.highlight
|
||||
color: #585260
|
||||
background: #efecf4
|
||||
.code
|
||||
/* Atelier-Cave Comment */
|
||||
.comment,
|
||||
.quote
|
||||
color: #655f6d
|
||||
|
||||
/* Atelier-Cave Red */
|
||||
.variable,
|
||||
.template-variable,
|
||||
.attribute,
|
||||
.tag,
|
||||
.name,
|
||||
.regexp,
|
||||
.link,
|
||||
.name,
|
||||
.name,
|
||||
.selector-id,
|
||||
.selector-class
|
||||
color: #be4678
|
||||
|
||||
/* Atelier-Cave Orange */
|
||||
.number,
|
||||
.meta,
|
||||
.built_in,
|
||||
.builtin-name,
|
||||
.literal,
|
||||
.type,
|
||||
.params
|
||||
color: #aa573c
|
||||
|
||||
/* Atelier-Cave Green */
|
||||
.string,
|
||||
.symbol,
|
||||
.bullet
|
||||
color: #2a9292
|
||||
|
||||
/* Atelier-Cave Blue */
|
||||
.title,
|
||||
.section
|
||||
color: #576ddb
|
||||
|
||||
/* Atelier-Cave Purple */
|
||||
.keyword,
|
||||
.selector-tag
|
||||
color: #955ae7
|
||||
|
||||
.deletion,
|
||||
.addition
|
||||
color: #19171c
|
||||
display: inline-block
|
||||
width: 100%
|
||||
|
||||
.deletion
|
||||
background-color: #be4678
|
||||
|
||||
.addition
|
||||
background-color: #2a9292
|
||||
|
||||
.emphasis
|
||||
font-style: italic
|
||||
|
||||
.strong
|
||||
font-weight: bold
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user