Initial commit
47
static/css/auto-complete.css
Normal file
|
|
@ -0,0 +1,47 @@
|
|||
.autocomplete-suggestions {
|
||||
text-align: left;
|
||||
cursor: default;
|
||||
border: 1px solid #ccc;
|
||||
border-top: 0;
|
||||
background: #fff;
|
||||
box-shadow: -1px 1px 3px rgba(0,0,0,.1);
|
||||
|
||||
/* core styles should not be changed */
|
||||
position: absolute;
|
||||
display: none;
|
||||
z-index: 9999;
|
||||
max-height: 254px;
|
||||
overflow: hidden;
|
||||
overflow-y: auto;
|
||||
box-sizing: border-box;
|
||||
|
||||
}
|
||||
.autocomplete-suggestion {
|
||||
position: relative;
|
||||
cursor: pointer;
|
||||
padding: 7px;
|
||||
line-height: 23px;
|
||||
white-space: nowrap;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
color: #333;
|
||||
}
|
||||
|
||||
.autocomplete-suggestion b {
|
||||
font-weight: normal;
|
||||
color: #1f8dd6;
|
||||
}
|
||||
|
||||
.autocomplete-suggestion.selected {
|
||||
background: #333;
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
.autocomplete-suggestion:hover {
|
||||
background: #444;
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
.autocomplete-suggestion > .context {
|
||||
font-size: 12px;
|
||||
}
|
||||
8
static/css/bootstrap.min.css
vendored
Normal file
2712
static/css/custom.css
Normal file
4
static/css/font-awesome.min.css
vendored
Normal file
BIN
static/css/fonts/FontAwesome.otf
Normal file
BIN
static/css/fonts/fontawesome-webfont.eot
Normal file
1
static/css/fonts/fontawesome-webfont.svg
Normal file
|
After Width: | Height: | Size: 377 KiB |
BIN
static/css/fonts/fontawesome-webfont.ttf
Normal file
BIN
static/css/fonts/fontawesome-webfont.woff
Normal file
BIN
static/css/fonts/fontawesome-webfont.woff2
Normal file
159
static/css/hugo-easy-gallery.css
Normal file
|
|
@ -0,0 +1,159 @@
|
|||
/*
|
||||
Put this file in /static/css/hugo-easy-gallery.css
|
||||
Documentation and licence at https://github.com/liwenyip/hugo-easy-gallery/
|
||||
*/
|
||||
|
||||
|
||||
/*
|
||||
Grid Layout Styles
|
||||
*/
|
||||
.gallery {
|
||||
overflow: hidden;
|
||||
margin: 10px;
|
||||
max-width: 768px;
|
||||
}
|
||||
.gallery .box {
|
||||
float: left;
|
||||
position: relative;
|
||||
/* Default: 1 tile wide */
|
||||
width: 100%;
|
||||
padding-bottom: 100%;
|
||||
}
|
||||
@media only screen and (min-width : 365px) {
|
||||
/* Tablet view: 2 tiles */
|
||||
.gallery .box {
|
||||
width: 50%;
|
||||
padding-bottom: 50%;
|
||||
}
|
||||
}
|
||||
@media only screen and (min-width : 480px) {
|
||||
/* Small desktop / ipad view: 3 tiles */
|
||||
.gallery .box {
|
||||
width: 33.3%;
|
||||
padding-bottom: 33.3%; /* */
|
||||
}
|
||||
}
|
||||
@media only screen and (min-width : 9999px) {
|
||||
/* Medium desktop: 4 tiles */
|
||||
.box {
|
||||
width: 25%;
|
||||
padding-bottom: 25%;
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
Transition styles
|
||||
*/
|
||||
.gallery.hover-transition figure,
|
||||
.gallery.hover-effect-zoom .img,
|
||||
.gallery:not(.caption-effect-appear) figcaption,
|
||||
.fancy-figure:not(.caption-effect-appear) figcaption {
|
||||
-webkit-transition: all 0.3s ease-in-out;
|
||||
-moz-transition: all 0.3s ease-in-out;
|
||||
-o-transition: all 0.3s ease-in-out;
|
||||
transition: all 0.3s ease-in-out;
|
||||
}
|
||||
/*
|
||||
figure styles
|
||||
*/
|
||||
figure {
|
||||
position:relative; /* purely to allow absolution positioning of figcaption */
|
||||
overflow: hidden;
|
||||
}
|
||||
.gallery figure {
|
||||
position: absolute;
|
||||
left: 5px;
|
||||
right: 5px;
|
||||
top: 5px;
|
||||
bottom: 5px;
|
||||
}
|
||||
.gallery.hover-effect-grow figure:hover {
|
||||
transform: scale(1.05);
|
||||
}
|
||||
.gallery.hover-effect-shrink figure:hover {
|
||||
transform: scale(0.95);
|
||||
}
|
||||
.gallery.hover-effect-slidedown figure:hover {
|
||||
transform: translateY(5px);
|
||||
}
|
||||
.gallery.hover-effect-slideup figure:hover {
|
||||
transform: translateY(-5px);
|
||||
}
|
||||
|
||||
/*
|
||||
img / a styles
|
||||
*/
|
||||
|
||||
.gallery .img {
|
||||
position: absolute;
|
||||
left: 0;
|
||||
right: 0;
|
||||
top: 0;
|
||||
bottom: 0;
|
||||
background-size: cover;
|
||||
background-position: 50% 50%;
|
||||
background-repeat: no-repeat;
|
||||
}
|
||||
.gallery.hover-effect-zoom figure:hover .img {
|
||||
transform: scale(1.05);
|
||||
}
|
||||
.gallery img {
|
||||
display: none; /* only show the img if not inside a gallery */
|
||||
}
|
||||
figure a {
|
||||
position: absolute;
|
||||
left: 0;
|
||||
right: 0;
|
||||
top: 0;
|
||||
bottom: 0;
|
||||
}
|
||||
|
||||
/*
|
||||
figcaption styles
|
||||
*/
|
||||
.gallery figcaption,
|
||||
.fancy-figure figcaption {
|
||||
position: absolute;
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
right: 0;
|
||||
background: #000;
|
||||
color: #FFF;
|
||||
text-align: center;
|
||||
font-size: 75%; /* change this if you want bigger text */
|
||||
background: rgba(0, 0, 0, 0.5);
|
||||
opacity: 1;
|
||||
cursor: pointer;
|
||||
}
|
||||
.gallery.caption-position-none figcaption,
|
||||
.fancy-figure.caption-position-none figcaption {
|
||||
display: none;
|
||||
}
|
||||
.gallery.caption-position-center figcaption,
|
||||
.fancy-figure.caption-position-center figcaption {
|
||||
top: 0;
|
||||
padding: 40% 5px;
|
||||
}
|
||||
.gallery.caption-position-bottom figcaption,
|
||||
.fancy-figure.caption-position-bottom figcaption {
|
||||
padding: 5px;
|
||||
}
|
||||
.gallery.caption-effect-fade figure:not(:hover) figcaption,
|
||||
.gallery.caption-effect-appear figure:not(:hover) figcaption,
|
||||
.fancy-figure.caption-effect-fade figure:not(:hover) figcaption,
|
||||
.fancy-figure.caption-effect-appear figure:not(:hover) figcaption {
|
||||
background: rgba(0, 0, 0, 0);
|
||||
opacity: 0;
|
||||
}
|
||||
.gallery.caption-effect-slide.caption-position-bottom figure:not(:hover) figcaption,
|
||||
.fancy-figure.caption-effect-slide.caption-position-bottom figure:not(:hover) figcaption {
|
||||
margin-bottom: -100%;
|
||||
}
|
||||
.gallery.caption-effect-slide.caption-position-center figure:not(:hover) figcaption,
|
||||
.fancy-figure.caption-effect-slide.caption-position-center figure:not(:hover) figcaption {
|
||||
top: 100%;
|
||||
}
|
||||
figcaption p {
|
||||
margin: auto; /* override style in theme */
|
||||
}
|
||||
|
||||
1
static/css/hux-blog.min.css
vendored
Normal file
3
static/css/iDisqus.min.css
vendored
Normal file
111
static/css/mindmap.css
Normal file
|
|
@ -0,0 +1,111 @@
|
|||
.km-view {
|
||||
font-family: "STHeitiSC-Light", "STHeiti", "Hei", "Heiti SC", "Microsoft Yahei", Arial, sans-serif;
|
||||
-webkit-user-select: none;
|
||||
user-select: none;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.km-view .km-receiver {
|
||||
position: absolute;
|
||||
left: -99999px;
|
||||
top: -99999px;
|
||||
width: 20px;
|
||||
height: 20px;
|
||||
outline: none;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
.km-view image {
|
||||
cursor: zoom-in;
|
||||
}
|
||||
|
||||
.km-image-viewer {
|
||||
position: fixed;
|
||||
z-index: 99999;
|
||||
top: 0;
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
right: 0;
|
||||
background: rgba(0, 0, 0, .75);
|
||||
}
|
||||
|
||||
.km-image-viewer .km-image-viewer-container {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
right: 0;
|
||||
text-align: center;
|
||||
white-space: nowrap;
|
||||
overflow: auto;
|
||||
}
|
||||
|
||||
.km-image-viewer .km-image-viewer-container::before {
|
||||
content: '';
|
||||
display: inline-block;
|
||||
height: 100%;
|
||||
width: 0;
|
||||
font-size: 0;
|
||||
vertical-align: middle;
|
||||
}
|
||||
|
||||
.km-image-viewer .km-image-viewer-container img {
|
||||
cursor: zoom-out;
|
||||
vertical-align: middle;
|
||||
}
|
||||
|
||||
.km-image-viewer .km-image-viewer-container img.limited {
|
||||
cursor: zoom-in;
|
||||
max-width: 100%;
|
||||
max-height: 100%;
|
||||
}
|
||||
|
||||
.km-image-viewer .km-image-viewer-toolbar {
|
||||
z-index: 1;
|
||||
background: rgba(0, 0, 0, .75);
|
||||
text-align: right;
|
||||
transition: all .25s;
|
||||
}
|
||||
|
||||
.km-image-viewer .km-image-viewer-toolbar.hidden {
|
||||
transform: translate(0, -100%);
|
||||
opacity: 0;
|
||||
}
|
||||
|
||||
.km-image-viewer .km-image-viewer-btn {
|
||||
cursor: pointer;
|
||||
outline: 0;
|
||||
border: 0;
|
||||
width: 44px;
|
||||
height: 44px;
|
||||
background: url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjY0IiBoZWlnaHQ9Ijg4IiB2aWV3Qm94PSIwIDAgMjY0IDg4IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjx0aXRsZT5kZWZhdWx0LXNraW4gMjwvdGl0bGU+PGcgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIj48Zz48cGF0aCBkPSJNNjcuMDAyIDU5LjV2My43NjhjLTYuMzA3Ljg0LTkuMTg0IDUuNzUtMTAuMDAyIDkuNzMyIDIuMjItMi44MyA1LjU2NC01LjA5OCAxMC4wMDItNS4wOThWNzEuNUw3MyA2NS41ODUgNjcuMDAyIDU5LjV6IiBpZD0iU2hhcGUiIGZpbGw9IiNmZmYiLz48ZyBmaWxsPSIjZmZmIj48cGF0aCBkPSJNMTMgMjl2LTVoMnYzaDN2MmgtNXpNMTMgMTVoNXYyaC0zdjNoLTJ2LTV6TTMxIDE1djVoLTJ2LTNoLTN2LTJoNXpNMzEgMjloLTV2LTJoM3YtM2gydjV6IiBpZD0iU2hhcGUiLz48L2c+PGcgZmlsbD0iI2ZmZiI+PHBhdGggZD0iTTYyIDI0djVoLTJ2LTNoLTN2LTJoNXpNNjIgMjBoLTV2LTJoM3YtM2gydjV6TTcwIDIwdi01aDJ2M2gzdjJoLTV6TTcwIDI0aDV2MmgtM3YzaC0ydi01eiIvPjwvZz48cGF0aCBkPSJNMjAuNTg2IDY2bC01LjY1Ni01LjY1NiAxLjQxNC0xLjQxNEwyMiA2NC41ODZsNS42NTYtNS42NTYgMS40MTQgMS40MTRMMjMuNDE0IDY2bDUuNjU2IDUuNjU2LTEuNDE0IDEuNDE0TDIyIDY3LjQxNGwtNS42NTYgNS42NTYtMS40MTQtMS40MTRMMjAuNTg2IDY2eiIgZmlsbD0iI2ZmZiIvPjxwYXRoIGQ9Ik0xMTEuNzg1IDY1LjAzTDExMCA2My41bDMtMy41aC0xMHYtMmgxMGwtMy0zLjUgMS43ODUtMS40NjhMMTE3IDU5bC01LjIxNSA2LjAzeiIgZmlsbD0iI2ZmZiIvPjxwYXRoIGQ9Ik0xNTIuMjE1IDY1LjAzTDE1NCA2My41bC0zLTMuNWgxMHYtMmgtMTBsMy0zLjUtMS43ODUtMS40NjhMMTQ3IDU5bDUuMjE1IDYuMDN6IiBmaWxsPSIjZmZmIi8+PGc+PHBhdGggaWQ9IlJlY3RhbmdsZS0xMSIgZmlsbD0iI2ZmZiIgZD0iTTE2MC45NTcgMjguNTQzbC0zLjI1LTMuMjUtMS40MTMgMS40MTQgMy4yNSAzLjI1eiIvPjxwYXRoIGQ9Ik0xNTIuNSAyN2MzLjAzOCAwIDUuNS0yLjQ2MiA1LjUtNS41cy0yLjQ2Mi01LjUtNS41LTUuNS01LjUgMi40NjItNS41IDUuNSAyLjQ2MiA1LjUgNS41IDUuNXoiIGlkPSJPdmFsLTEiIHN0cm9rZT0iI2ZmZiIgc3Ryb2tlLXdpZHRoPSIxLjUiLz48cGF0aCBmaWxsPSIjZmZmIiBkPSJNMTUwIDIxaDV2MWgtNXoiLz48L2c+PGc+PHBhdGggZD0iTTExNi45NTcgMjguNTQzbC0xLjQxNCAxLjQxNC0zLjI1LTMuMjUgMS40MTQtMS40MTQgMy4yNSAzLjI1eiIgZmlsbD0iI2ZmZiIvPjxwYXRoIGQ9Ik0xMDguNSAyN2MzLjAzOCAwIDUuNS0yLjQ2MiA1LjUtNS41cy0yLjQ2Mi01LjUtNS41LTUuNS01LjUgMi40NjItNS41IDUuNSAyLjQ2MiA1LjUgNS41IDUuNXoiIHN0cm9rZT0iI2ZmZiIgc3Ryb2tlLXdpZHRoPSIxLjUiLz48cGF0aCBmaWxsPSIjZmZmIiBkPSJNMTA2IDIxaDV2MWgtNXoiLz48cGF0aCBmaWxsPSIjZmZmIiBkPSJNMTA5LjA0MyAxOS4wMDhsLS4wODUgNS0xLS4wMTcuMDg1LTV6Ii8+PC9nPjwvZz48L2c+PC9zdmc+");
|
||||
}
|
||||
|
||||
.km-image-viewer .km-image-viewer-toolbar {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
right: 0;
|
||||
}
|
||||
|
||||
.km-image-viewer .km-image-viewer-close {
|
||||
background-position: 0 -44px;
|
||||
}
|
||||
|
||||
.mindmap {
|
||||
/*width: inherit;*/
|
||||
width: 100%;
|
||||
border: 1px solid #ccc;
|
||||
}
|
||||
|
||||
.mindmap-sm {
|
||||
height: 300px;
|
||||
}
|
||||
|
||||
.mindmap-md {
|
||||
height: 500px;
|
||||
}
|
||||
|
||||
.mindmap-lg {
|
||||
height: 800px;
|
||||
}
|
||||
72
static/css/roland.css
Normal file
|
|
@ -0,0 +1,72 @@
|
|||
body {
|
||||
background: inherit;
|
||||
}
|
||||
|
||||
.intro-header,.site-heading {
|
||||
color: white;
|
||||
text-align: center;
|
||||
margin-bottom: 2em;
|
||||
}
|
||||
.intro-header {
|
||||
background-color: #a7002f;
|
||||
background-repeat: repeat;
|
||||
background-size: cover;
|
||||
background-position: center;
|
||||
}
|
||||
.site-heading, .post-heading {
|
||||
padding: 15vh 0;
|
||||
}
|
||||
.site-heading h1 {
|
||||
font-weight: bolder;
|
||||
}
|
||||
|
||||
.post-heading h1 {
|
||||
text-shadow: 0 0 7px rgba(0,0,0,0.95), 0 0 5px rgb(0,0,0);
|
||||
font-weight: bolder;
|
||||
}
|
||||
.post-heading h2, .post-heading .meta {
|
||||
text-shadow: 0 0 4px rgba(0,0,0,0.95), 0 0 5px rgb(0,0,0);
|
||||
}
|
||||
|
||||
.post-preview > a {
|
||||
color: black;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
.post-content-preview {
|
||||
border-left: 5px solid #f6e5ea;
|
||||
padding-left: 1rem;
|
||||
padding-right: 1rem;
|
||||
}
|
||||
|
||||
.text-sc {
|
||||
font-variant: common-ligatures small-caps;
|
||||
}
|
||||
|
||||
.sidebar-container img {
|
||||
max-width: 70%;
|
||||
}
|
||||
|
||||
.sidebar-container .short-about a, footer .list-inline a {
|
||||
color: #d37f97;
|
||||
}
|
||||
.sidebar-container .short-about a:hover, footer .list-inline a:hover {
|
||||
color: #a7002f;
|
||||
}
|
||||
|
||||
#TableOfContents > ul {
|
||||
list-style-type: none;
|
||||
}
|
||||
|
||||
#TableOfContents > ul ul {
|
||||
list-style-type: square;
|
||||
}
|
||||
|
||||
article img {
|
||||
max-width: 90%;
|
||||
}
|
||||
|
||||
footer .copyright {
|
||||
font-size: 80%;
|
||||
text-align: center;
|
||||
}
|
||||
2723
static/css/style.css
Normal file
192
static/css/zanshang.css
Normal file
|
|
@ -0,0 +1,192 @@
|
|||
|
||||
.btn {
|
||||
display: inline-block;
|
||||
padding: 6px 12px;
|
||||
margin-bottom: 0;
|
||||
font-size: 14px;
|
||||
line-height: 1.42857143;
|
||||
text-align: center;
|
||||
cursor: pointer;
|
||||
-webkit-user-select: none;
|
||||
-moz-user-select: none;
|
||||
-ms-user-select: none;
|
||||
user-select: none;
|
||||
border: 1px solid transparent;
|
||||
border-radius: 4px;
|
||||
vertical-align: middle;
|
||||
}
|
||||
img{vertical-align: middle;}
|
||||
.close {
|
||||
float: right;
|
||||
font-size: 21px;
|
||||
line-height: 1;
|
||||
color: #000;
|
||||
text-shadow: 0 1px 0 #fff;
|
||||
opacity: .2
|
||||
}
|
||||
|
||||
button.close {
|
||||
-webkit-appearance: none;
|
||||
padding: 0;
|
||||
cursor: pointer;
|
||||
background: 0 0;
|
||||
border: 0
|
||||
}
|
||||
.entry-shang {
|
||||
padding: 30px 0 20px;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.entry-shang p {
|
||||
font-size: 12px;
|
||||
}
|
||||
|
||||
.btn-bred {
|
||||
min-width: 80px;
|
||||
border-color: #e26d6d;
|
||||
background: #e26d6d;
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
.zs-modal-bg {
|
||||
position: fixed;
|
||||
left: 0;
|
||||
top: 0;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
background: rgba(0,0,0,0.2);
|
||||
display: none;
|
||||
z-index: 100;
|
||||
}
|
||||
|
||||
.zs-modal-box {
|
||||
width: 340px;
|
||||
position: fixed;
|
||||
left: 50%;
|
||||
top: 50%;
|
||||
margin: -195px 0 0 -171px;
|
||||
border: 1px solid #eee;
|
||||
background: #fff;
|
||||
border-radius: 6px;
|
||||
z-index: 100;
|
||||
display: none;
|
||||
}
|
||||
|
||||
.zs-modal-head {
|
||||
padding: 0 16px;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.zs-modal-head img {
|
||||
width: 26px;
|
||||
height: 26px;
|
||||
border-radius: 50%;
|
||||
}
|
||||
|
||||
.zs-modal-head .close {
|
||||
position: absolute;
|
||||
right: 0;
|
||||
top: 0;
|
||||
width: 56px;
|
||||
height: 56px;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.zs-modal-head .author {
|
||||
padding-top: 15px;
|
||||
display: block;
|
||||
}
|
||||
.zs-modal-head .author a{
|
||||
color: #333;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
.zs-modal-head .author img {
|
||||
margin-right: 5px;
|
||||
}
|
||||
|
||||
.zs-modal-head .tip {
|
||||
background: #f6f6f6;
|
||||
padding: 0 10px;
|
||||
font-size: 12px;
|
||||
color: gray;
|
||||
border-radius: 3px;
|
||||
margin-top: 10px;
|
||||
position: relative;
|
||||
line-height: 28px;
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
|
||||
.zs-modal-head .tip i {
|
||||
display: block;
|
||||
border-width: 0 7px 7px 7px;
|
||||
border-color: transparent transparent #f6f6f6 transparent;
|
||||
border-style: dashed dashed solid dashed;
|
||||
content: "";
|
||||
position: absolute;
|
||||
left: 8px;
|
||||
top: -7px;
|
||||
}
|
||||
|
||||
.zs-modal-body {
|
||||
padding: 0 15px;
|
||||
}
|
||||
|
||||
.zs-modal-btns {
|
||||
font-size: 0;
|
||||
}
|
||||
|
||||
.zs-modal-btns .btn:nth-child(3n-2) {
|
||||
margin-left: 0;
|
||||
}
|
||||
|
||||
.zs-modal-btns .btn {
|
||||
width: 28%;
|
||||
margin-left: 8%;
|
||||
margin-bottom: 24px;
|
||||
display: inline-block;
|
||||
font-size: 12px;
|
||||
}
|
||||
|
||||
.zs-modal-btns .btn-blink {
|
||||
background: #fff;
|
||||
border-color: #e26d6d;
|
||||
color: #e26d6d;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.zs-modal-btns .btn-blink:hover, .zs-btns .btn-blink:active {
|
||||
background: rgba(226,109,109,.06);
|
||||
box-shadow: none;
|
||||
}
|
||||
|
||||
.zs-modal-btns .btn-blink:focus {
|
||||
background: #e26d6d;
|
||||
border-color: #e26d6d;
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
@media screen and (-webkit-min-device-pixel-ratio:0) {
|
||||
.zs-modal-body ul {
|
||||
letter-spacing: -5px;
|
||||
}
|
||||
}
|
||||
|
||||
.zs-modal-footer {
|
||||
padding: 0 15px 15px;
|
||||
}
|
||||
|
||||
.zs-modal-footer label {
|
||||
margin: 0 10px;
|
||||
}
|
||||
|
||||
.zs-modal-footer img {
|
||||
height: 30px;
|
||||
min-width: 85px;
|
||||
}
|
||||
|
||||
.zs-modal-pay {
|
||||
text-align: center;
|
||||
padding: 15px 0;
|
||||
display: none;
|
||||
}
|
||||
BIN
static/img/favicon.ico
Normal file
|
After Width: | Height: | Size: 1.1 KiB |
BIN
static/img/reward/alipay-1.png
Normal file
|
After Width: | Height: | Size: 15 KiB |
BIN
static/img/reward/alipay-10.png
Normal file
|
After Width: | Height: | Size: 19 KiB |
BIN
static/img/reward/alipay-100.png
Normal file
|
After Width: | Height: | Size: 19 KiB |
BIN
static/img/reward/alipay-2.png
Normal file
|
After Width: | Height: | Size: 19 KiB |
BIN
static/img/reward/alipay-5.png
Normal file
|
After Width: | Height: | Size: 20 KiB |
BIN
static/img/reward/alipay-50.png
Normal file
|
After Width: | Height: | Size: 19 KiB |
BIN
static/img/reward/alipay-btn.png
Normal file
|
After Width: | Height: | Size: 3.8 KiB |
BIN
static/img/reward/wechat-1.png
Normal file
|
After Width: | Height: | Size: 21 KiB |
BIN
static/img/reward/wechat-10.png
Normal file
|
After Width: | Height: | Size: 20 KiB |
BIN
static/img/reward/wechat-100.png
Normal file
|
After Width: | Height: | Size: 19 KiB |
BIN
static/img/reward/wechat-2.png
Normal file
|
After Width: | Height: | Size: 19 KiB |
BIN
static/img/reward/wechat-5.png
Normal file
|
After Width: | Height: | Size: 22 KiB |
BIN
static/img/reward/wechat-50.png
Normal file
|
After Width: | Height: | Size: 20 KiB |
BIN
static/img/reward/wechat-btn.png
Normal file
|
After Width: | Height: | Size: 2.7 KiB |
BIN
static/img/search.png
Normal file
|
After Width: | Height: | Size: 3.1 KiB |
3
static/js/auto-complete.js
Normal file
7
static/js/bootstrap.min.js
vendored
Normal file
87
static/js/fitvids.js
Normal file
|
|
@ -0,0 +1,87 @@
|
|||
/*jshint browser:true */
|
||||
/*!
|
||||
* FitVids 1.1
|
||||
*
|
||||
* Copyright 2013, Chris Coyier - http://css-tricks.com + Dave Rupert - http://daverupert.com
|
||||
* Credit to Thierry Koblentz - http://www.alistapart.com/articles/creating-intrinsic-ratios-for-video/
|
||||
* Released under the WTFPL license - http://sam.zoy.org/wtfpl/
|
||||
*
|
||||
*/
|
||||
|
||||
;(function( $ ){
|
||||
|
||||
'use strict';
|
||||
|
||||
$.fn.fitVids = function( options ) {
|
||||
var settings = {
|
||||
customSelector: null,
|
||||
ignore: null
|
||||
};
|
||||
|
||||
if(!document.getElementById('fit-vids-style')) {
|
||||
// appendStyles: https://github.com/toddmotto/fluidvids/blob/master/dist/fluidvids.js
|
||||
var head = document.head || document.getElementsByTagName('head')[0];
|
||||
var css = '.fluid-width-video-wrapper{width:100%;position:relative;padding:0;}.fluid-width-video-wrapper iframe,.fluid-width-video-wrapper object,.fluid-width-video-wrapper embed {position:absolute;top:0;left:0;width:100%;height:100%;}';
|
||||
var div = document.createElement("div");
|
||||
div.innerHTML = '<p>x</p><style id="fit-vids-style">' + css + '</style>';
|
||||
head.appendChild(div.childNodes[1]);
|
||||
}
|
||||
|
||||
if ( options ) {
|
||||
$.extend( settings, options );
|
||||
}
|
||||
|
||||
return this.each(function(){
|
||||
var selectors = [
|
||||
'iframe[src*="player.vimeo.com"]',
|
||||
'iframe[src*="youtube.com"]',
|
||||
'iframe[src*="youtube-nocookie.com"]',
|
||||
'iframe[src*="kickstarter.com"][src*="video.html"]',
|
||||
'object',
|
||||
'embed'
|
||||
];
|
||||
|
||||
if (settings.customSelector) {
|
||||
selectors.push(settings.customSelector);
|
||||
}
|
||||
|
||||
var ignoreList = '.fitvidsignore';
|
||||
|
||||
if(settings.ignore) {
|
||||
ignoreList = ignoreList + ', ' + settings.ignore;
|
||||
}
|
||||
|
||||
var $allVideos = $(this).find(selectors.join(','));
|
||||
$allVideos = $allVideos.not('object object'); // SwfObj conflict patch
|
||||
$allVideos = $allVideos.not(ignoreList); // Disable FitVids on this video.
|
||||
|
||||
$allVideos.each(function(){
|
||||
var $this = $(this);
|
||||
if($this.parents(ignoreList).length > 0) {
|
||||
return; // Disable FitVids on this video.
|
||||
}
|
||||
if (this.tagName.toLowerCase() === 'embed' && $this.parent('object').length || $this.parent('.fluid-width-video-wrapper').length) { return; }
|
||||
if ((!$this.css('height') && !$this.css('width')) && (isNaN($this.attr('height')) || isNaN($this.attr('width'))))
|
||||
{
|
||||
$this.attr('height', 9);
|
||||
$this.attr('width', 16);
|
||||
}
|
||||
var height = ( this.tagName.toLowerCase() === 'object' || ($this.attr('height') && !isNaN(parseInt($this.attr('height'), 10))) ) ? parseInt($this.attr('height'), 10) : $this.height(),
|
||||
width = !isNaN(parseInt($this.attr('width'), 10)) ? parseInt($this.attr('width'), 10) : $this.width(),
|
||||
aspectRatio = height / width;
|
||||
if(!$this.attr('name')){
|
||||
var videoName = 'fitvid' + $.fn.fitVids._count;
|
||||
$this.attr('name', videoName);
|
||||
$.fn.fitVids._count++;
|
||||
}
|
||||
$this.wrap('<div class="fluid-width-video-wrapper"></div>').parent('.fluid-width-video-wrapper').css('padding-top', (aspectRatio * 100)+'%');
|
||||
$this.removeAttr('height').removeAttr('width');
|
||||
});
|
||||
});
|
||||
};
|
||||
|
||||
// Internal counter for unique video names.
|
||||
$.fn.fitVids._count = 0;
|
||||
|
||||
// Works with either jQuery or Zepto
|
||||
})( window.jQuery || window.Zepto );
|
||||
1591
static/js/iDisqus.js
Normal file
9205
static/js/jquery.js
vendored
Normal file
4
static/js/jquery.min.js
vendored
Normal file
81
static/js/jquery.tagcloud.js
Executable file
|
|
@ -0,0 +1,81 @@
|
|||
(function($) {
|
||||
|
||||
$.fn.tagcloud = function(options) {
|
||||
var opts = $.extend({}, $.fn.tagcloud.defaults, options);
|
||||
tagWeights = this.map(function(){
|
||||
return $(this).attr("rel");
|
||||
});
|
||||
tagWeights = jQuery.makeArray(tagWeights).sort(compareWeights);
|
||||
lowest = tagWeights[0];
|
||||
highest = tagWeights.pop();
|
||||
range = highest - lowest;
|
||||
if(range === 0) {range = 1;}
|
||||
// Sizes
|
||||
if (opts.size) {
|
||||
fontIncr = (opts.size.end - opts.size.start)/range;
|
||||
}
|
||||
// Colors
|
||||
if (opts.color) {
|
||||
colorIncr = colorIncrement (opts.color, range);
|
||||
}
|
||||
return this.each(function() {
|
||||
weighting = $(this).attr("rel") - lowest;
|
||||
if (opts.size) {
|
||||
$(this).css({"font-size": opts.size.start + (weighting * fontIncr) + opts.size.unit});
|
||||
}
|
||||
if (opts.color) {
|
||||
// change color to background-color
|
||||
$(this).css({"backgroundColor": tagColor(opts.color, colorIncr, weighting)});
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
$.fn.tagcloud.defaults = {
|
||||
size: {start: 14, end: 18, unit: "pt"}
|
||||
};
|
||||
|
||||
// Converts hex to an RGB array
|
||||
function toRGB (code) {
|
||||
if (code.length == 4) {
|
||||
code = jQuery.map(/\w+/.exec(code), function(el) {return el + el; }).join("");
|
||||
}
|
||||
hex = /(\w{2})(\w{2})(\w{2})/.exec(code);
|
||||
return [parseInt(hex[1], 16), parseInt(hex[2], 16), parseInt(hex[3], 16)];
|
||||
}
|
||||
|
||||
// Converts an RGB array to hex
|
||||
function toHex (ary) {
|
||||
return "#" + jQuery.map(ary, function(i) {
|
||||
hex = i.toString(16);
|
||||
hex = (hex.length == 1) ? "0" + hex : hex;
|
||||
return hex;
|
||||
}).join("");
|
||||
}
|
||||
|
||||
function colorIncrement (color, range) {
|
||||
return jQuery.map(toRGB(color.end), function(n, i) {
|
||||
return (n - toRGB(color.start)[i])/range;
|
||||
});
|
||||
}
|
||||
|
||||
function tagColor (color, increment, weighting) {
|
||||
rgb = jQuery.map(toRGB(color.start), function(n, i) {
|
||||
ref = Math.round(n + (increment[i] * weighting));
|
||||
if (ref > 255) {
|
||||
ref = 255;
|
||||
} else {
|
||||
if (ref < 0) {
|
||||
ref = 0;
|
||||
}
|
||||
}
|
||||
return ref;
|
||||
});
|
||||
return toHex(rgb);
|
||||
}
|
||||
|
||||
function compareWeights(a, b)
|
||||
{
|
||||
return a - b;
|
||||
}
|
||||
|
||||
})(jQuery);
|
||||
12
static/js/kity.min.js
vendored
Normal file
10
static/js/kityminder.core.min.js
vendored
Normal file
80
static/js/load-photoswipe.js
Normal file
|
|
@ -0,0 +1,80 @@
|
|||
/*
|
||||
Put this file in /static/js/load-photoswipe.js
|
||||
Documentation and licence at https://github.com/liwenyip/hugo-easy-gallery/
|
||||
*/
|
||||
|
||||
/* Show an alert if this js file has been loaded twice */
|
||||
if (window.loadphotoswipejs) {
|
||||
window.alert("You've loaded load-photoswipe.js twice. See https://github.com/liwenyip/hugo-easy-gallery/issues/6")
|
||||
}
|
||||
var loadphotoswipejs = 1
|
||||
|
||||
/* TODO: Make the share function work */
|
||||
$( document ).ready(function() {
|
||||
/*
|
||||
Initialise Photoswipe
|
||||
*/
|
||||
var items = []; // array of slide objects that will be passed to PhotoSwipe()
|
||||
// for every figure element on the page:
|
||||
$('figure').each( function() {
|
||||
if ($(this).attr('class') == 'no-photoswipe') return true; // ignore any figures where class="no-photoswipe"
|
||||
// get properties from child a/img/figcaption elements,
|
||||
var $figure = $(this),
|
||||
$a = $figure.find('a'),
|
||||
$img = $figure.find('img'),
|
||||
$src = $a.attr('href'),
|
||||
$title = $img.attr('alt'),
|
||||
$msrc = $img.attr('src');
|
||||
// if data-size on <a> tag is set, read it and create an item
|
||||
if ($a.data('size')) {
|
||||
var $size = $a.data('size').split('x');
|
||||
var item = {
|
||||
src : $src,
|
||||
w : $size[0],
|
||||
h : $size[1],
|
||||
title : $title,
|
||||
msrc : $msrc
|
||||
};
|
||||
console.log("Using pre-defined dimensions for " + $src);
|
||||
// if not, set temp default size then load the image to check actual size
|
||||
} else {
|
||||
var item = {
|
||||
src : $src,
|
||||
w : 800, // temp default size
|
||||
h : 600, // temp default size
|
||||
title : $title,
|
||||
msrc : $msrc
|
||||
};
|
||||
console.log("Using default dimensions for " + $src);
|
||||
// load the image to check its dimensions
|
||||
// update the item as soon as w and h are known (check every 30ms)
|
||||
var img = new Image();
|
||||
img.src = $src;
|
||||
var wait = setInterval(function() {
|
||||
var w = img.naturalWidth,
|
||||
h = img.naturalHeight;
|
||||
if (w && h) {
|
||||
clearInterval(wait);
|
||||
item.w = w;
|
||||
item.h = h;
|
||||
console.log("Got actual dimensions for " + img.src);
|
||||
}
|
||||
}, 30);
|
||||
}
|
||||
// Save the index of this image then add it to the array
|
||||
var index = items.length;
|
||||
items.push(item);
|
||||
// Event handler for click on a figure
|
||||
$figure.on('click', function(event) {
|
||||
event.preventDefault(); // prevent the normal behaviour i.e. load the <a> hyperlink
|
||||
// Get the PSWP element and initialise it with the desired options
|
||||
var $pswp = $('.pswp')[0];
|
||||
var options = {
|
||||
index: index,
|
||||
bgOpacity: 0.8,
|
||||
showHideOpacity: true
|
||||
}
|
||||
new PhotoSwipe($pswp, PhotoSwipeUI_Default, items, options).init();
|
||||
});
|
||||
});
|
||||
});
|
||||
6
static/js/lunr.min.js
vendored
Normal file
50
static/js/mindmap.js
Normal file
|
|
@ -0,0 +1,50 @@
|
|||
$(document).ready(function() {
|
||||
$('.mindmap').each(function() {
|
||||
MM_FUNCS.drawMindMap(this);
|
||||
});
|
||||
});
|
||||
|
||||
var MM_FUNCS = {
|
||||
// 将 li 节点转换为 JSON 数据
|
||||
li2jsonData: function(liNode) {
|
||||
var liData;
|
||||
var aNode = liNode.children("a:first");
|
||||
if (aNode.length !== 0) {
|
||||
liData = {
|
||||
"data": {
|
||||
"text": aNode.text(),
|
||||
"hyperlink": aNode.attr("href")
|
||||
}
|
||||
};
|
||||
} else {
|
||||
liData = {
|
||||
"data": {
|
||||
"text": liNode[0].childNodes[0].nodeValue.trim()
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
liNode.find("> ul > li").each(function() {
|
||||
if (!liData.hasOwnProperty("children")) {
|
||||
liData.children = [];
|
||||
}
|
||||
liData.children.push(MM_FUNCS.li2jsonData($(this)));
|
||||
});
|
||||
|
||||
return liData;
|
||||
},
|
||||
// 绘制脑图
|
||||
drawMindMap: function(ulParent) {
|
||||
var ulElement = $(ulParent).find(">ul:first");
|
||||
var mmData = {"root": {}};
|
||||
var minder = new kityminder.Minder({
|
||||
renderTo: ulParent
|
||||
});
|
||||
|
||||
mmData.root = MM_FUNCS.li2jsonData(ulElement.children("li:first"));
|
||||
minder.importData('json', JSON.stringify(mmData));
|
||||
minder.disable();
|
||||
minder.execCommand('hand');
|
||||
$(ulElement).hide();
|
||||
}
|
||||
};
|
||||
1
static/js/mindmap.min.js
vendored
Normal file
|
|
@ -0,0 +1 @@
|
|||
$(document).ready(function(){$(".mindmap").each(function(){MM_FUNCS.drawMindMap(this)})});var MM_FUNCS={li2jsonData:function(c){var a;var b=c.children("a:first");if(b.length!==0){a={"data":{"text":b.text(),"hyperlink":b.attr("href")}}}else{a={"data":{"text":c[0].childNodes[0].nodeValue.trim()}}}c.find("> ul > li").each(function(){if(!a.hasOwnProperty("children")){a.children=[]}a.children.push(MM_FUNCS.li2jsonData($(this)))});return a},drawMindMap:function(a){var d=$(a).find(">ul:first");var c={"root":{}};var b=new kityminder.Minder({renderTo:a});c.root=MM_FUNCS.li2jsonData(d.children("li:first"));b.importData("json",JSON.stringify(c));b.disable();b.execCommand("hand");$(d).hide()}};
|
||||
1
static/js/production.min.js
vendored
Normal file
96
static/js/search.js
Normal file
|
|
@ -0,0 +1,96 @@
|
|||
var lunrIndex, pagesIndex;
|
||||
|
||||
function endsWith(str, suffix) {
|
||||
return str.indexOf(suffix, str.length - suffix.length) !== -1;
|
||||
}
|
||||
|
||||
// Initialize lunrjs using our generated index file
|
||||
function initLunr() {
|
||||
if (!endsWith(baseurl,"/")){
|
||||
baseurl = baseurl+'/'
|
||||
};
|
||||
|
||||
// First retrieve the index file
|
||||
$.getJSON(baseurl +"index.json")
|
||||
.done(function(index) {
|
||||
pagesIndex = index;
|
||||
// Set up lunrjs by declaring the fields we use
|
||||
// Also provide their boost level for the ranking
|
||||
lunrIndex = lunr(function() {
|
||||
this.ref("uri");
|
||||
this.field('title', {
|
||||
boost: 15
|
||||
});
|
||||
this.field('tags', {
|
||||
boost: 10
|
||||
});
|
||||
this.field("content", {
|
||||
boost: 5
|
||||
});
|
||||
|
||||
this.pipeline.remove(lunr.stemmer);
|
||||
this.searchPipeline.remove(lunr.stemmer);
|
||||
|
||||
// Feed lunr with each file and let lunr actually index them
|
||||
pagesIndex.forEach(function(page) {
|
||||
this.add(page);
|
||||
}, this);
|
||||
})
|
||||
})
|
||||
.fail(function(jqxhr, textStatus, error) {
|
||||
var err = textStatus + ", " + error;
|
||||
console.error("Error getting Hugo index file:", err);
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Trigger a search in lunr and transform the result
|
||||
*
|
||||
* @param {String} query
|
||||
* @return {Array} results
|
||||
*/
|
||||
function search(queryTerm) {
|
||||
// Find the item in our index corresponding to the lunr one to have more info
|
||||
return lunrIndex.search(queryTerm+"^100"+" "+queryTerm+"*^10"+" "+"*"+queryTerm+"^10"+" "+queryTerm+"~2^1").map(function(result) {
|
||||
return pagesIndex.filter(function(page) {
|
||||
return page.uri === result.ref;
|
||||
})[0];
|
||||
});
|
||||
}
|
||||
|
||||
// Let's get started
|
||||
initLunr();
|
||||
$( document ).ready(function() {
|
||||
var searchList = new autoComplete({
|
||||
/* selector for the search box element */
|
||||
selector: $("#search-by").get(0),
|
||||
/* source is the callback to perform the search */
|
||||
source: function(term, response) {
|
||||
response(search(term));
|
||||
},
|
||||
/* renderItem displays individual search results */
|
||||
renderItem: function(item, term) {
|
||||
var numContextWords = 2;
|
||||
var text = item.content.match(
|
||||
"(?:\\s?(?:[\\w]+)\\s?){0,"+numContextWords+"}" +
|
||||
term+"(?:\\s?(?:[\\w]+)\\s?){0,"+numContextWords+"}");
|
||||
item.context = text;
|
||||
var divcontext = document.createElement("div");
|
||||
divcontext.className = "context";
|
||||
divcontext.innerText = (item.context || '');
|
||||
var divsuggestion = document.createElement("div");
|
||||
divsuggestion.className = "autocomplete-suggestion";
|
||||
divsuggestion.setAttribute("data-term", term);
|
||||
divsuggestion.setAttribute("data-title", item.title);
|
||||
divsuggestion.setAttribute("data-uri", item.uri);
|
||||
divsuggestion.setAttribute("data-context", item.context);
|
||||
divsuggestion.innerText = '» ' + item.title;
|
||||
divsuggestion.appendChild(divcontext);
|
||||
return divsuggestion.outerHTML;
|
||||
},
|
||||
/* onSelect callback fires when a search suggestion is chosen */
|
||||
onSelect: function(e, term, item) {
|
||||
location.href = item.getAttribute('data-uri');
|
||||
}
|
||||
});
|
||||
});
|
||||