Compare commits

28 Commits
master ... hmsy

Author SHA1 Message Date
46746b2c07 reduce footer icon max-width to 20rem 2022-09-06 23:51:32 +08:00
ad2207816e move home_button to config.toml homeimg 2022-09-06 23:06:41 +08:00
8381fa320b Merge remote-tracking branch 'shanghai/hmsy' into hmsy 2022-07-16 00:15:25 +08:00
09b81b4c1e Change: image width to max 100
fix the problem when use a very small low quality pic
2022-05-03 02:37:34 +08:00
98b9ba2aac Merge remote-tracking branch 'upstream/master' into hmsy 2022-02-16 11:36:15 +08:00
Joe Hutchinson
3d5ad66c95 Mobile hover (#72)
* Restore onTouch article card style

* Minify Katex files

* Fix date on li-next

* Add ontouch to htmlvalidator ignore
2022-02-15 22:32:04 -05:00
c149f02ce1 Merge remote-tracking branch 'upstream/master' into hmsy 2022-02-14 08:23:14 +08:00
Joe Hutchinson
99cddb52cc Update README.md 2022-02-10 00:24:16 -05:00
Joe Hutchinson
f7848361fc Mobile card active and GitHub Actions (#71)
* Remove js for mobile card click style

* Add headshot alt text and update example site

* Add html validator github action

* Debug GA

* Fix GA bug
2022-02-10 00:19:08 -05:00
Joe Hutchinson
d49083abec Fix how GitHub displays readme with TOML 2022-02-09 13:52:56 -05:00
Joe Hutchinson
80eedf87b4 Clarify params in README and example site 2022-02-09 13:50:51 -05:00
Joe Hutchinson
0d71200d8b Fix spacing in README 2022-02-09 13:31:23 -05:00
Joe Hutchinson
56f9b1ee83 Add more social icons to footer (#70)
* Enable markdown in post titles
* Update footer icons to no atrib assets
2022-02-09 13:17:35 -05:00
Joe Hutchinson
ac516333b5 Update README.md to include headshot image param 2022-02-07 16:45:57 -05:00
44604f2dc4 Personalize: page button style 2021-08-26 22:43:01 +08:00
2a36ad6fbc Merge branch 'patch-minify' into hmsy 2021-08-26 10:57:07 +08:00
45fc1a2d56 Make css and js resources minify 2021-08-26 10:56:49 +08:00
96a4c93c65 Adjust home header margin 2021-08-26 02:19:45 +08:00
40a5c9da9f Revert "Fix description not display on homepage"
This reverts commit 281a3bec39.

Because, description in `config.toml` will show in `<head>`,
the description in `/content/posts/_index.md` will show on the homepage,
below the title as a small text. So this is not a bug.
2021-08-26 01:53:43 +08:00
c691742260 Merge branch 'patch-height' into hmsy 2021-08-26 00:24:33 +08:00
3eca8c1fce Fix homepage on large screen 2021-08-26 00:22:23 +08:00
b69817378d Merge branch 'patch-height' into hmsy 2021-08-25 17:59:02 +08:00
92dcce0790 Merge branch 'patch-404' into hmsy 2021-08-25 17:58:51 +08:00
3ef80768b4 Fix height is not 100%, footer is not at bottom 2021-08-25 17:58:20 +08:00
7407765b42 Add 404 page 2021-08-25 17:56:06 +08:00
d33c84a200 change some words to chinese 2021-08-23 22:21:06 +08:00
05f1eaf95a hmsy personalize style 2021-08-23 19:58:09 +08:00
281a3bec39 Fix description not display on homepage 2021-08-23 17:08:21 +08:00
49 changed files with 710 additions and 18771 deletions

28
.github/workflows/main.yml vendored Normal file
View File

@@ -0,0 +1,28 @@
name: Validate Generated Files
on:
push:
branches:
- master
pull_request:
branches:
- master
jobs:
deploy:
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@v2
- name: Install Dependencies
run: |
sudo snap install hugo
pip install html5validator
- name: Build Example Site
run: |
cd exampleSite/
hugo --minify
- name: Validate Generated Files
run: html5validator --root exampleSite/public/ --also-check-css --ignore katex ontouch

View File

@@ -1,4 +1,7 @@
# aether # aether
[![Validate Generated Files](https://github.com/josephhutch/aether/actions/workflows/main.yml/badge.svg)](https://github.com/josephhutch/aether/actions/workflows/main.yml)
Aether is a Hugo theme for blogs that emphasizes motion, depth, and material as design elements. Aether presents your content in a clean interface that highlights good photography and writing. Aether is a Hugo theme for blogs that emphasizes motion, depth, and material as design elements. Aether presents your content in a clean interface that highlights good photography and writing.
## Features ## Features
@@ -34,12 +37,25 @@ googleAnalytics = "Your google analytics tracking ID - optional"
disqusShortname = "Your shortname for Disqus - optional" disqusShortname = "Your shortname for Disqus - optional"
[params] [params]
brand = "The name that is displayed in the top left of the website, consider it the website name" brand = "The name that is displayed in the top left of the website - optional, title is fallback"
description = "The website's description" description = "The website's description"
github = "URL to your Github account - link will be included in the footer" bgimg = "Path, within the 'assets' folder, of the image used for the page background - optional"
linkedin = "URL to your Linkedin account - link will be included in the footer" headshotimg = "Path, within the 'assets' folder, of the image used for the home page header - optional"
bgimg = "Path, within the 'assets' folder, of the image used for the page background - optional" headshotalt = "Alt text for the headshotimg - should be used with headshotimg"
rssinmenu = whether you would like a RSS feed link to appear in the navigation menu (true, false) - optional rssinmenu = whether you would like a RSS feed link to appear in the nav menu and footer (true, false) - optional
facebook = "URL to your Facebook account, icon link will be included in the footer - optional"
flicker = "URL to your Flicker account, icon link will be included in the footer - optional"
github = "URL to your GitHub account, icon link will be included in the footer - optional"
instagram = "URL to your Instagram account, icon link will be included in the footer - optional"
linkedin = "URL to your LinkedIn account, icon link will be included in the footer - optional"
patreon = "URL to your Patreon account, icon link will be included in the footer - optional"
soundcloud = "URL to your Soundcloud account, icon link will be included in the footer - optional"
spotify = "URL to your Spotify account, icon link will be included in the footer - optional"
tumblr = "URL to your Tumblr account, icon link will be included in the footer - optional"
twitch = "URL to your Twitch account, icon link will be included in the footer - optional"
twitter = "URL to your Twitter account, icon link will be included in the footer - optional"
vimeo = "URL to your Vimeo account, icon link will be included in the footer - optional"
youtube = "URL to your Youtube account, icon link will be included in the footer - optional"
[markup] [markup]
[markup.highlight] [markup.highlight]
@@ -159,7 +175,7 @@ Refer to [/exampleSite/layouts/partials](/exampleSite/layouts/partials) for samp
[Latex Math Documentation](https://en.wikibooks.org/wiki/LaTeX/Mathematics) - Learn math typesetting with LaTeX (powered by KaTeX) [Latex Math Documentation](https://en.wikibooks.org/wiki/LaTeX/Mathematics) - Learn math typesetting with LaTeX (powered by KaTeX)
## Contributing ## Contributing
Aether is actively maintained and I welcome you to help make it better! Contributions in the way of new features, documentation improvements, bug fixes, and feature requests are appreciated. Please make an individual pull-request/issue for each suggestion. Aether is actively maintained and I welcome you to help make it better! Contributions in the way of new features, documentation improvements, bug fixes, and feature requests are appreciated. Please make an individual pull-request/issue for each suggestion. PRs are tested in GitHub Actions to ensure the html and css generated from the example site are valid.
## License ## License
MIT © Joe Hutchinson MIT © Joe Hutchinson

File diff suppressed because it is too large Load Diff

1
assets/css/katex.min.css vendored Normal file

File diff suppressed because one or more lines are too long

View File

@@ -1,3 +1,6 @@
html {
height: 100%;
}
body { body {
font-family: Avenir, HelveticaNeue-Light, "Helvetica Neue Light", font-family: Avenir, HelveticaNeue-Light, "Helvetica Neue Light",
"Helvetica Neue", Helvetica, Arial, "Lucida Grande", sans-serif; "Helvetica Neue", Helvetica, Arial, "Lucida Grande", sans-serif;
@@ -10,21 +13,22 @@ body {
align-items: center; align-items: center;
width: 100%; width: 100%;
box-sizing: border-box; box-sizing: border-box;
word-break: break-word;
} }
p { p {
margin: 1.5em 0; margin: 1.5em 0;
} }
.home-header { .home-header {
min-height: 26rem;
max-width: 50rem; max-width: 50rem;
margin: 0 -1.2rem -5rem -1.2rem; margin: 3rem 0;
padding: 1.2rem; padding: 1.2rem;
display: flex; display: flex;
flex-direction: column; flex-direction: column;
z-index: -1; z-index: -1;
background-position: center; background-position: center;
background-size: cover; background-size: cover;
background-color: pink;
border-radius: 2em;
box-shadow: 0 0 1em 0.039em;
} }
.home-faceshot-card { .home-faceshot-card {
align-self: center; align-self: center;
@@ -293,13 +297,18 @@ p {
z-index: 2; z-index: 2;
} }
.pagination-nav { .pagination-nav {
margin: 2em 0; padding: 2em 0;
width: 100%; width: 100%;
max-width: 47rem; max-width: 47rem;
} }
/* .pagination-text { .pagination-text {
font-family: 'LatoLatinWebMedium'; background-color: pink;
} */ padding: 0.5rem;
border-radius: 0.5rem;
box-shadow: 0 0 0.5rem;
text-decoration: none;
color: darkred;
}
.pagination-newer { .pagination-newer {
float:left; float:left;
} }
@@ -368,7 +377,7 @@ h1, h2, h3, h4, h5, h6 {
} }
img { img {
display: block; display: block;
width: 100%; max-width: 100%;
height: auto; height: auto;
margin: 1.5em 0; margin: 1.5em 0;
} }
@@ -441,11 +450,10 @@ footer {
height: 17rem; height: 17rem;
max-width: 50rem; max-width: 50rem;
width: 100%; width: 100%;
margin-top: -10rem;
display: flex; display: flex;
flex-flow: row wrap; flex-flow: column;
justify-content: space-evenly; justify-content: space-evenly;
align-items: flex-end; align-items: center;
color: white; color: white;
background-position: 40% 0%; background-position: 40% 0%;
background-size: 50rem; background-size: 50rem;
@@ -453,12 +461,18 @@ footer {
.footer-link { .footer-link {
margin: 1rem 0; margin: 1rem 0;
} }
.footer-home-icon {
max-width: 20rem;
border: 0.39rem solid pink;
border-radius: 4rem;
margin: 0;
}
.footer-icon { .footer-icon {
max-width: 3rem; max-width: 3rem;
margin: 0; margin: 0;
} }
@media screen and (pointer: coarse) { @media screen and (pointer: coarse) {
.card-hover { .card:active {
transform: scale(0.95); transform: scale(0.95);
box-shadow: 0 0.4rem 2rem 0 rgba(0,0,0,0.2); box-shadow: 0 0.4rem 2rem 0 rgba(0,0,0,0.2);
} }

21
assets/icons/facebook.svg Normal file
View File

@@ -0,0 +1,21 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 16.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" id="Layer_5" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve">
<path fill-rule="evenodd" clip-rule="evenodd" d="M448,512h-87.999c-22.094,0-39.999-17.922-39.999-40V360.001
c0-22.094,17.905-39.999,39.999-39.999h12.922c8.32,0,16.844-6.656,19.062-15.031l8.484-31.953
c2.484-9.312-2.812-17.023-11.852-17.023h-28.617c-22.094,0-39.999-17.902-39.999-39.988v-16c0-22.102,17.905-40.007,39.999-40.007
h24.008c8.82,0,16-7.156,16-16v-32.004c0-8.828-7.18-16.004-16-16.004h-48.008c-44.187,0-79.991,35.828-79.991,80.011v40.004
c0,22.085-17.922,39.988-40.003,39.988h-7.625c-9.039,0-16.379,7.711-16.379,17.023v31.953c0,8.375,6.746,15.031,15.07,15.031h8.934
c22.082,0,40.003,17.905,40.003,39.999V472c0,22.078-17.922,40-40.003,40h-8c-8.844,0-16.004-7.172-16.004-16
c0-8.844,7.16-16,16.004-16c8.824,0,16-7.172,16-16v-95.999c0-8.844-7.175-16-16-16H197.51c-20.719,0-37.511-16.578-37.511-37.577
v-47.922c0-23.156,18.371-42.512,41.027-42.512h6.98c8.824,0,16-7.16,16-15.984v-40.004c0-57.441,46.559-103.995,103.995-103.995
h64.008c22.086,0,39.984,17.902,39.984,39.988v48.004c0,22.085-17.898,40.003-39.984,40.003h-24.008h-16v16.004
c0,8.824,7.156,15.984,16,15.984h29.969c22.672,0,37.398,19.355,33.062,42.512l-8.992,47.922
c-3.93,20.999-23.82,37.577-44.539,37.577h-9.5c-8.844,0-16,7.156-16,16V464c0,8.828,7.156,16,16,16H448c17.672,0,32-14.328,32-32
V64.007c0-17.688-14.328-32.003-32-32.003H64.007c-17.672,0-32.003,14.316-32.003,32.003V448c0,17.672,14.332,32,32.003,32h16
c8.828,0,16.003,7.156,16.003,16c0,8.828-7.175,16-16.003,16h-16C28.668,512,0,483.344,0,448V64.007C0,28.648,28.668,0,64.007,0H448
c35.359,0,64,28.648,64,64.007V448C512,483.344,483.359,512,448,512L448,512z M143.999,480c8.844,0,16,7.156,16,16
c0,8.828-7.156,16-16,16c-8.828,0-16.004-7.172-16.004-16C127.995,487.156,135.171,480,143.999,480L143.999,480z"/>
</svg>

After

Width:  |  Height:  |  Size: 2.2 KiB

16
assets/icons/flicker.svg Normal file
View File

@@ -0,0 +1,16 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 16.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" id="Layer_12" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve">
<g>
<path fill-rule="evenodd" clip-rule="evenodd" d="M128,352c53.023,0,96-42.977,96-96h32
c0,70.688-57.309,128-128,128S0,326.688,0,256c0-70.691,57.309-128,128-128c31.398,0,60.141,11.344,82.406,30.117l-0.039,0.059
c3.414,2.93,5.625,7.215,5.625,12.082c0,8.824-7.156,16-16,16c-3.859,0-7.371-1.434-10.145-3.723l-0.039,0.059
C173.109,168.516,151.562,160,128,160c-53.023,0-96,42.977-96,96S74.977,352,128,352L128,352z"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M352,384c-8.844,0-16-7.156-16-16s7.156-16,16-16
c53.023,0,96-42.977,96-96s-42.977-96-96-96s-96,42.977-96,96h-32c0-70.691,57.312-128,128-128s128,57.309,128,128
C480,326.688,422.688,384,352,384L352,384z M288,336c8.844,0,16,7.156,16,16s-7.156,16-16,16s-16-7.156-16-16S279.156,336,288,336
L288,336z"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.4 KiB

23
assets/icons/github.svg Normal file
View File

@@ -0,0 +1,23 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 16.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" id="Layer_12" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve">
<path fill-rule="evenodd" clip-rule="evenodd" d="M192,368.004c0-8.844,7.156-16,16-16s16,7.156,16,16
s-7.156,16-16,16S192,376.848,192,368.004L192,368.004z M349.328,494.16c-4.266,1.219-8.672,2.094-13.328,2.094
c-26.516,0-48-21.484-48-48v-58.188c0-20.094,12.898-37.156,30.797-43.438C353.164,335.082,384,306.082,384,272.004V240
c0-15.164-6.188-29.285-16-41.367V162.5c0-17.668-14.328-23.719-32-13.496l-24.516,14.176C303.633,161.145,295.703,160,288,160h-64
c-7.699,0-15.633,1.145-23.484,3.18L176,149.004c-17.668-10.223-32-4.172-32,13.496v36.133c-9.812,12.082-16,26.203-16,41.367
v32.004c0,23.281,14.488,44.188,34.578,58.812l-0.02,0.031c4.172,2.859,6.945,7.688,6.945,13.156c0,8.828-7.176,16-16,16
c-4.52,0-8.574-1.891-11.48-4.906C115.004,334.629,96,305.035,96,272.004V240c0-18.523,6.012-35.977,16-51.375v-47.633
c0-35.336,28.645-47.438,64-26.996l27.461,15.887C210.309,128.719,217.172,128,224,128h64c6.828,0,13.688,0.719,20.539,1.883
L336,113.996c35.359-20.441,64-8.34,64,26.996v47.633c9.984,15.398,16,32.852,16,51.375v32.004
c0,47.609-39.25,88.141-85.531,104.359c-0.055,0.047-0.109,0.172-0.188,0.188c-6.016,2.312-10.281,8.125-10.281,14.953v56.75
c0,8.844,7.156,16,16,16c1.336,0,2.562-0.375,3.797-0.688C421.969,430.41,480,350.066,480,256c0-123.715-100.281-224-224-224
C132.285,32,32,132.285,32,256c0,97.41,62.254,180.066,149.121,210.895c0.445,0.047,0.852,0.234,1.316,0.234
c5.277,0,9.562-4.297,9.562-9.562c0-5.281-4.285-9.562-9.562-9.562c-0.113,0-0.113-0.094-0.191-0.141
c-53.16-1.422-53.219-63.859-70.246-63.859c-8.844,0-16-7.156-16-16s7.156-16,16-16c1.688,0,4.207,0,7.988,0
c32.02,0,27.445,64,72.012,64c17.668,0,32,14.328,32,32v28c0,15.453-12.527,28-28.004,28c-1.688,0-3.277-0.344-4.887-0.656
C81.203,474.613,0,374.926,0,256C0,114.617,114.617,0,256,0s256,114.617,256,256C512,364.41,444.508,456.848,349.328,494.16
L349.328,494.16z"/>
</svg>

After

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

55
assets/icons/home.svg Normal file
View File

@@ -0,0 +1,55 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
width="100%"
height="100%"
viewBox="6 6 52 52"
version="1.1"
xml:space="preserve"
style="fill-rule:evenodd;clip-rule:evenodd;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:2;"
id="svg11">
<metadata
id="metadata17">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
</cc:Work>
</rdf:RDF>
</metadata>
<defs
id="defs15" />
<path
d="M55.579,31.579c0.693,0.693 0.781,1.787 0.208,2.583c-0.396,0.549 -0.857,1.189 -1.284,1.781c-0.342,0.476 -0.877,0.777 -1.461,0.824c-0.585,0.048 -1.161,-0.164 -1.575,-0.579c-4.986,-4.985 -19.467,-19.466 -19.467,-19.466c0,0 -14.481,14.481 -19.467,19.466c-0.414,0.415 -0.99,0.627 -1.575,0.579c-0.584,-0.047 -1.119,-0.348 -1.461,-0.824c-0.427,-0.592 -0.888,-1.232 -1.284,-1.781c-0.573,-0.796 -0.485,-1.89 0.208,-2.583c4.962,-4.962 23.579,-23.579 23.579,-23.579c0,0 18.617,18.617 23.579,23.579Z"
style="fill:none;stroke:#141823;stroke-width:3px;"
id="path3" />
<path
d="M13.977,34.745l18.023,-18.023l18.023,18.023l0,20.002c0,0.598 -0.237,1.171 -0.66,1.593c-0.422,0.423 -0.995,0.66 -1.593,0.66c-6.472,0 -25.068,0 -31.54,0c-0.598,0 -1.171,-0.237 -1.593,-0.66c-0.423,-0.422 -0.66,-0.995 -0.66,-1.593l0,-20.002Z"
style="fill:none;stroke:#141823;stroke-width:3px;"
id="path5" />
<path
d="M20.736,19.264l-7.885,7.885l0,-11.827l7.885,0l0,3.942Z"
style="fill:none;stroke:#141823;stroke-width:3px;"
id="path7" />
<path
d="M37,44.5c0,-0.398 -0.158,-0.779 -0.439,-1.061c-0.282,-0.281 -0.663,-0.439 -1.061,-0.439c-1.888,0 -5.112,0 -7,0c-0.398,0 -0.779,0.158 -1.061,0.439c-0.281,0.282 -0.439,0.663 -0.439,1.061c0,3.613 0,12.5 0,12.5l10,0l0,-12.5Z"
style="fill:none;stroke:#141823;stroke-width:3px;"
id="path9" />
</svg>

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 25 KiB

View File

@@ -0,0 +1,23 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 16.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
width="64px" height="64px" viewBox="0 0 64 64" enable-background="new 0 0 64 64" xml:space="preserve">
<path fill-rule="evenodd" clip-rule="evenodd" d="M21.986,40.006c1.102,0,1.993,0.893,1.993,1.993s-0.892,1.992-1.993,1.992
c-1.1,0-1.992-0.892-1.992-1.992S20.887,40.006,21.986,40.006L21.986,40.006z M16.145,34.299
c-1.261-8.749,4.81-16.862,13.559-18.123s16.863,4.81,18.124,13.559s-4.81,16.863-13.559,18.124
c-0.098,0.015-0.192,0.015-0.289,0.026l0.296-0.041c-1.094,0.157-2.106-0.602-2.265-1.695c-0.157-1.093,0.602-2.108,1.695-2.267
l-0.003-0.007c0.003,0,0.005,0,0.008,0c6.56-0.945,11.109-7.028,10.164-13.588c-0.945-6.561-7.027-11.11-13.588-10.165
c-6.557,0.945-11.11,7.028-10.164,13.588c0,0.003,0,0.005,0.002,0.005l-0.007,0.003l0,0c0.157,1.093-0.602,2.106-1.695,2.264
c-1.093,0.157-2.108-0.601-2.267-1.694l0.044,0.298C16.186,34.488,16.159,34.396,16.145,34.299L16.145,34.299z M47.989,13.005
c0-1.658,1.346-3.004,3.006-3.004c1.642,0,2.973,1.318,2.999,2.958v0.094c-0.026,1.64-1.357,2.958-2.999,2.958
C49.335,16.011,47.989,14.665,47.989,13.005L47.989,13.005z M58.661,58.52C55.183,62.034,50.357,64,42.012,64H21.986
c-8.345,0-13.17-1.966-16.646-5.48C1.908,55.054,0,50.216,0,42.014V21.988c0-8.205,1.908-13.04,5.34-16.506
C8.816,1.967,13.641,0,21.986,0h20.025c8.346,0,13.171,1.967,16.649,5.482c0.223,0.223,0.427,0.468,0.633,0.71
c0.422,0.366,0.695,0.902,0.695,1.505c0,1.105-0.895,2-2,2c-0.604,0-1.14-0.274-1.506-0.698l-0.026,0.021
c-0.206-0.245-0.399-0.499-0.627-0.728c-3.042-3.076-7.533-4.283-14.837-4.283H22.997c-7.302,0-11.784,1.207-14.826,4.283
c-3.003,3.033-4.171,7.536-4.171,14.713v17.997c0,7.18,1.168,11.671,4.171,14.703c3.042,3.075,7.524,4.295,14.826,4.295h17.997
c7.304,0,11.795-1.22,14.837-4.295c3.003-3.032,4.159-7.523,4.159-14.703V23.006c0-1.748-0.072-3.333-0.218-4.78l0.009-0.002
c-0.108-1.103,0.691-2.089,1.796-2.206c1.107-0.114,2.1,0.69,2.213,1.795c0.003,0.029,0,0.056,0,0.085h0.005
C63.916,19.172,64,20.507,64,21.988v20.025C64,50.216,62.09,55.054,58.661,58.52L58.661,58.52z"/>
</svg>

After

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

27
assets/icons/linkedin.svg Normal file
View File

@@ -0,0 +1,27 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 16.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" id="Layer_5" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve">
<path fill-rule="evenodd" clip-rule="evenodd" d="M472,480h-79.991c-19.375,0-35.523-13.758-39.211-32.04
c-0.273,0-0.523,0.039-0.797,0.039V303.205c0-17.242-14.328-31.196-31.999-31.196c-17.672,0-32,13.954-32,31.196v136.38v0.43
c0,9.758-3.648,18.547-9.438,25.508c-3.18,4.813-8.609,7.985-14.805,7.985c-9.812,0-17.758-7.946-17.758-17.759
c0-5.188,2.258-9.812,5.828-13.062c2.586-2.852,4.18-6.547,4.18-10.673v-22.875V376.2v-74.487c0-34.079,28.648-61.713,63.992-61.713
c35.343,0,64.007,27.634,64.007,61.713v107.426c0,1.148-0.109,2.141-0.18,3.195c0.055-0.016,0.125-0.016,0.18-0.039v19.719
c0,8.829,7.156,15.985,16,15.985H464c8.844,0,16-7.156,16-15.985V288.01c0-1.203-0.141-2.352-0.391-3.478
C475.5,215.046,420.017,159.99,352.001,159.99c-28.234,0-54.233,9.578-75.358,25.657c-0.078-0.039-0.164-0.023-0.328,0.102
c-2.148,1.727-4.859,2.75-7.812,2.75c-6.914,0-12.492-5.602-12.492-12.508c0-0.859-0.051-1.305-0.141-1.43
c-0.738-8.149-7.52-14.571-15.859-14.571h-48.007c-17.668,0-32.003,14.336-32.003,32.009v240.015c0,1.438,0.254,2.821,0.609,4.142
c-0.375,1.148-0.609,2.422-0.609,3.859c0,22.086-17.902,39.985-40.004,39.985h-2.926H40.003C17.922,480,0,462.101,0,440.015V167.99
c0-22.086,17.922-39.985,40.003-39.985h40.004c26.496,0,47.988-21.493,47.988-48.01c0-26.516-21.492-48.009-47.988-48.009
c-26.512,0-48.003,21.493-48.003,48.009c0,8.844-7.156,16-16.004,16c-8.824,0-16-7.156-16-16C0,35.806,35.824,0,80.007,0
c44.187,0,79.992,35.806,79.992,79.995c0,4.055-0.395,8-0.984,11.899c-0.129,0.75-0.199,1.523-0.344,2.273
c-0.699,3.891-1.648,7.719-2.906,11.391c-0.051,0.18-0.141,0.344-0.195,0.523c-2.762,7.946-6.691,15.305-11.66,21.907
c-14.586,19.391-37.746,32.001-63.902,32.001H48.003c-8.844,0-16,7.18-16,16v256.023c0,8.829,7.156,15.985,16,15.985h80.8
c-0.52-2.586-0.809-5.242-0.809-7.984V191.999c0-35.345,28.668-63.994,64.007-63.994h56.007c9.883,0,18.867,3.641,25.836,9.617
c0.086,0.055,0.172-0.039,0.266,0.031c2.797,2.406,6.422,3.844,10.391,3.844c2.188,0,4.266-0.43,6.148-1.227
c0.57-0.25,0.914-0.211,1.242-0.172c18.578-7.609,38.78-12.094,60.108-12.094c82.938,0,151.124,63.111,159.194,143.911
c0.539,2.602,0.805,5.328,0.805,8.094v160.006C512,462.101,494.102,480,472,480L472,480z M208.006,447.999c8.824,0,16,7.172,16,16
c0,8.845-7.175,16.001-16,16.001c-8.844,0-16.004-7.156-16.004-16.001C192.002,455.171,199.163,447.999,208.006,447.999
L208.006,447.999z"/>
</svg>

After

Width:  |  Height:  |  Size: 2.8 KiB

15
assets/icons/patreon.svg Normal file
View File

@@ -0,0 +1,15 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 16.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
width="64px" height="64px" viewBox="0 0 64 64" enable-background="new 0 0 64 64" xml:space="preserve">
<path fill-rule="evenodd" clip-rule="evenodd" d="M20,34c0,1.105-0.895,2-2,2s-2-0.895-2-2s0.895-2,2-2
S20,32.895,20,34L20,34z M32,64c-4.458,0-8.696-0.931-12.55-2.579C17.413,60.461,16,58.4,16,56V45.047C16,42.26,18.259,40,21.047,40
c1.212,0,2.322,0.432,3.195,1.146C26.334,42.924,29.04,44,32,44c6.628,0,12-5.372,12-12s-5.372-12-12-12
c-4.797,0-8.924,2.822-10.846,6.89l-0.021-0.012C20.807,27.539,20.131,28,19.343,28c-1.103,0-2-0.895-2-2
c0-0.432,0.141-0.829,0.374-1.154C20.344,19.607,25.741,16,32,16c8.836,0,16,7.164,16,16s-7.164,16-16,16
c-3.922,0-7.486-1.442-10.262-3.794c0.002,0.024-0.002,0.034-0.02,0.021C21.54,44.085,21.309,44,21.062,44
C20.475,44,20,44.476,20,45.062V56c0,0.749,0.424,1.384,1.033,1.727C24.402,59.176,28.1,60,32,60c15.465,0,28-12.536,28-28
S47.465,4,32,4C16.536,4,4,16.536,4,32v30c0,1.105-0.895,2-2,2s-2-0.895-2-2V32C0,14.327,14.327,0,32,0s32,14.327,32,32
S49.673,64,32,64L32,64z"/>
</svg>

After

Width:  |  Height:  |  Size: 1.4 KiB

72
assets/icons/rss.svg Normal file
View File

@@ -0,0 +1,72 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 16.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" id="Layer_5" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve">
<path fill-rule="evenodd" clip-rule="evenodd" d="M512,448.014C512,483.351,483.344,512,448,512h-32.001
c-35.359,0-64.008-28.649-64.008-63.986c0-7.859-0.414-15.609-1.023-23.306c-0.109-1.289-0.156-2.586-0.281-3.859
c-0.688-7.297-1.672-14.531-2.891-21.673c-0.234-1.398-0.5-2.758-0.75-4.141c-1.352-7.195-2.906-14.312-4.781-21.328
c-0.266-1.023-0.57-1.992-0.859-3c-2.008-7.228-4.219-14.368-6.766-21.368c-0.031-0.102-0.086-0.227-0.125-0.336
c-2.562-7.031-5.484-13.907-8.594-20.673c-0.438-0.984-0.844-1.969-1.305-2.938c-3.056-6.461-6.353-12.758-9.853-18.945
c-0.609-1.094-1.234-2.172-1.859-3.267c-3.594-6.148-7.391-12.18-11.414-18.031c-0.555-0.805-1.133-1.609-1.68-2.398
c-4.188-5.961-8.547-11.79-13.156-17.407c-0.125-0.156-0.281-0.336-0.406-0.5c-4.633-5.594-9.5-10.961-14.516-16.195
c-0.828-0.883-1.641-1.758-2.5-2.625c-4.891-4.984-10.004-9.773-15.262-14.383c-0.949-0.844-1.918-1.688-2.871-2.492
c-5.383-4.594-10.871-9.023-16.574-13.203c-0.809-0.594-1.652-1.149-2.461-1.743c-5.938-4.273-11.981-8.383-18.262-12.203
c-0.105-0.055-0.195-0.125-0.305-0.195c-6.188-3.766-12.594-7.227-19.066-10.547c-1.168-0.594-2.297-1.203-3.465-1.773
c-6.223-3.07-12.574-5.868-19.051-8.493c-1.363-0.555-2.727-1.109-4.109-1.633c-6.582-2.547-13.258-4.875-20.075-6.938
c-1.059-0.32-2.152-0.609-3.211-0.914c-25.562-7.43-52.563-11.5-80.532-11.5c-17.668,0-32,14.313-32,31.985v32.009
c0,17.665,14.333,32.001,32,32.001c17.566,0,34.516,2.562,50.68,6.977c4.953,1.367,9.812,2.906,14.602,4.648
c0.289,0.086,0.539,0.219,0.809,0.305c23.699,8.704,45.172,21.938,63.434,38.643c0.789,0.734,1.617,1.422,2.387,2.172
c2.871,2.711,5.633,5.523,8.324,8.414c1.184,1.273,2.367,2.547,3.516,3.859c2.402,2.688,4.699,5.414,6.941,8.25
c1.328,1.688,2.602,3.445,3.875,5.188c2.012,2.743,4.055,5.454,5.922,8.282c1.363,2.086,2.566,4.234,3.855,6.352
c2.512,4.164,4.879,8.398,7.07,12.758c1.613,3.195,3.227,6.384,4.664,9.688c1.004,2.273,1.848,4.625,2.762,6.961
c1.203,3.102,2.387,6.203,3.426,9.383c0.789,2.367,1.488,4.75,2.172,7.141c0.969,3.391,1.848,6.829,2.637,10.274
c0.52,2.266,1.039,4.523,1.469,6.836c0.738,3.844,1.277,7.75,1.777,11.641c0.254,2.07,0.574,4.094,0.773,6.172
c0.355,3.774,0.43,7.61,0.574,11.431c0.23,2.188,0.34,4.398,0.34,6.641c0,35.337-28.648,63.986-64.008,63.986h-24.004h-8
c-35.34,0-63.992-28.649-63.992-63.986c0-17.673-14.333-32.009-32.004-32.009c-17.668,0-32,14.336-32,32.009
c0,17.665,14.333,31.985,32,31.985c8.848,0,16.004,7.172,16.004,16.001c0,8.844-7.156,16-16.004,16C28.648,512,0,483.351,0,448.014
c0-35.36,28.648-64.01,63.989-64.01c35.344,0,64.012,28.649,64.012,64.01c0,17.665,14.312,31.985,31.984,31.985h8h24.004
c17.668,0,32.004-14.32,32.004-31.985c0-24.243-5.543-47.134-15.196-67.729c-0.824-1.758-1.633-3.531-2.531-5.273
c-1.184-2.312-2.457-4.594-3.746-6.852c-0.969-1.704-2.012-3.376-3.051-5.024c-1.309-2.094-2.637-4.211-4.035-6.242
c-2.152-3.102-4.434-6.117-6.781-9.062c-1.402-1.719-2.871-3.367-4.324-5.039c-1.723-1.969-3.48-3.945-5.293-5.828
c-1.488-1.524-2.977-3.017-4.52-4.485c-1.957-1.883-4-3.68-6.047-5.469c-1.309-1.133-2.602-2.297-3.945-3.391
c-3.41-2.75-6.907-5.422-10.532-7.898c-1.059-0.719-2.172-1.328-3.246-2.023c-2.816-1.812-5.688-3.609-8.629-5.258
c-1.508-0.844-3.031-1.633-4.559-2.422c-2.781-1.453-5.633-2.798-8.504-4.095c-1.414-0.625-2.797-1.289-4.23-1.883
c-4.254-1.734-8.578-3.352-13.008-4.75c-0.539-0.164-1.094-0.289-1.648-0.453c-3.984-1.195-8.059-2.258-12.164-3.133
c-1.527-0.328-3.106-0.609-4.665-0.898c-3.336-0.633-6.727-1.133-10.137-1.547c-1.473-0.18-2.906-0.359-4.395-0.5
c-4.898-0.445-9.812-0.75-14.82-0.75C28.648,288.009,0,259.352,0,223.999V191.99c0-35.345,28.648-63.994,63.989-63.994
c5.203,0,10.352,0.148,15.5,0.398c1.867,0.086,3.734,0.266,5.617,0.375c3.426,0.234,6.852,0.445,10.242,0.773
c1.778,0.18,3.516,0.391,5.274,0.609c3.391,0.391,6.781,0.789,10.137,1.289c2.008,0.289,4,0.633,5.992,0.969
c2.852,0.469,5.668,0.969,8.504,1.508c2.277,0.453,4.52,0.914,6.762,1.398c2.941,0.633,5.867,1.313,8.754,2.032
c1.938,0.484,3.859,0.969,5.797,1.469c2.852,0.773,5.688,1.594,8.52,2.422c2.047,0.609,4.125,1.203,6.172,1.852
c2.617,0.82,5.168,1.719,7.77,2.633c2.242,0.773,4.5,1.523,6.707,2.367c2.207,0.828,4.414,1.742,6.602,2.602
c2.387,0.953,4.809,1.868,7.176,2.891c2.047,0.875,4.02,1.812,6.047,2.727c5.078,2.297,10.082,4.719,15.031,7.266
c1.543,0.789,3.105,1.562,4.629,2.383c2.602,1.398,5.148,2.875,7.695,4.344c1.653,0.93,3.34,1.844,4.973,2.836
c2.637,1.578,5.234,3.242,7.836,4.898c1.418,0.914,2.855,1.789,4.27,2.727c2.531,1.664,5.023,3.391,7.48,5.125
c1.582,1.117,3.176,2.242,4.754,3.391c2.262,1.656,4.504,3.336,6.711,5.023c1.559,1.188,3.09,2.406,4.605,3.625
c2.359,1.898,4.703,3.805,7.016,5.758c1.219,1.039,2.422,2.086,3.625,3.141c2.484,2.172,4.969,4.344,7.391,6.602
c0.812,0.734,1.562,1.492,2.352,2.242c22.625,21.438,42.165,46.142,57.767,73.377c0.195,0.32,0.383,0.664,0.57,1
c2.086,3.664,4.094,7.375,6.031,11.125c0.25,0.484,0.484,0.953,0.734,1.438c1.953,3.821,3.844,7.657,5.641,11.571
c0.078,0.195,0.172,0.391,0.266,0.594c1.883,4.102,3.695,8.234,5.398,12.43c0,0.016,0,0.031,0.016,0.07
c8.805,21.618,15.32,44.416,19.25,68.104c2.836,17.126,4.398,34.688,4.398,52.635c0,17.665,14.328,31.985,32,31.985H448
c17.672,0,31.992-14.32,31.992-31.985c0-25.907-2.477-51.221-7.016-75.814c-0.055-0.273-0.086-0.539-0.148-0.828
c-1.125-6.009-2.383-11.985-3.766-17.899c-0.047-0.234-0.086-0.453-0.141-0.664c-1.344-5.688-2.797-11.344-4.359-16.938
c-0.203-0.734-0.406-1.469-0.625-2.211c-1.594-5.578-3.281-11.062-5.094-16.555c-0.039-0.109-0.078-0.25-0.109-0.375
c-13.688-41.188-33.626-79.495-58.72-113.847c-0.07-0.125-0.141-0.234-0.234-0.344c-3.141-4.29-6.383-8.485-9.688-12.649
c-0.656-0.82-1.289-1.68-1.953-2.508c-3.062-3.821-6.242-7.571-9.453-11.282c-0.922-1.062-1.844-2.117-2.766-3.18
c-3.203-3.641-6.531-7.227-9.859-10.766c-0.922-0.969-1.852-1.953-2.781-2.922c-3.25-3.375-6.57-6.688-9.922-9.938
c-1.258-1.203-2.5-2.406-3.766-3.609c-3.305-3.117-6.672-6.203-10.086-9.234c-1.242-1.11-2.508-2.188-3.773-3.282
c-3.383-2.945-6.812-5.852-10.312-8.664c-1.609-1.297-3.227-2.547-4.86-3.828c-3.281-2.563-6.578-5.165-9.953-7.641
c-1.672-1.219-3.375-2.398-5.078-3.625c-3.5-2.492-7-5-10.562-7.391c-0.781-0.516-1.547-1-2.32-1.508
c-9.039-5.953-18.297-11.57-27.805-16.821c-0.5-0.289-1-0.594-1.508-0.867c-2.836-1.539-5.738-2.992-8.609-4.484
c-2.961-1.539-5.902-3.086-8.898-4.539c-2.816-1.375-5.707-2.672-8.559-3.977c-2.906-1.328-5.773-2.656-8.719-3.93
c-3.102-1.344-6.223-2.586-9.364-3.859c-2.977-1.203-5.918-2.383-8.934-3.516c-2.871-1.078-5.777-2.102-8.664-3.102
c-3.391-1.188-6.801-2.352-10.227-3.461c-2.742-0.883-5.523-1.742-8.305-2.57c-3.445-1.039-6.906-2.008-10.387-2.938
c-2.996-0.812-5.992-1.602-9.008-2.336c-3.352-0.82-6.727-1.578-10.118-2.328c-3.086-0.688-6.152-1.352-9.273-1.961
c-3.535-0.68-7.121-1.328-10.691-1.914c-2.906-0.508-5.797-1.008-8.738-1.438c-4.234-0.609-8.52-1.109-12.789-1.617
c-2.332-0.266-4.613-0.57-6.945-0.805c-4.805-0.469-9.668-0.805-14.512-1.109c-2.008-0.133-3.98-0.328-6.008-0.414
c-1.578-0.07-3.176-0.07-4.773-0.125v-0.18c-4.035-0.039-8.055-1.578-11.141-4.664c-6.242-6.243-6.242-16.383,0-22.626
c3.41-3.406,7.965-4.773,12.414-4.469C320.561,9.454,512,206.327,512,448.014L512,448.014z M15.984,32.001
C7.156,32.001,0,24.829,0,16C0,7.156,7.156,0,15.984,0c8.844,0,16.004,7.156,16.004,16C31.988,24.829,24.828,32.001,15.984,32.001
L15.984,32.001z"/>
</svg>

After

Width:  |  Height:  |  Size: 7.7 KiB

View File

@@ -0,0 +1,18 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 16.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" id="Layer_12" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve">
<path fill-rule="evenodd" clip-rule="evenodd" d="M512,303.844c0,44.18-35.82,80-80,80h-32c-8.844,0-16-7.156-16-16
s7.156-16,16-16h32c26.516,0,48-21.492,48-48s-21.484-48-48-48h-0.25c-20.812,0-38.539-13.25-45.188-31.766
c-0.047-0.117-0.156-0.234-0.195-0.352c-12.492-35.078-44.727-60.758-83.398-63.531c-8.359,0.539-14.969,7.406-14.969,15.906
v191.742c0,8.844-7.156,16-16,16s-16-7.156-16-16V176.102c0-26.32,21.156-47.617,47.398-47.945
c52.242,2.984,95.961,37.297,112.891,84.438c0.078,0.078,0.234,0.156,0.258,0.234c2.094,6.398,8.102,11.016,15.203,11.016H432
c0.891,0,1.766,0.102,2.656,0.141C434.812,224,435.047,224,435.18,224C477.891,225.688,512,260.734,512,303.844L512,303.844z
M208,383.844c-8.844,0-16-7.156-16-16v-176c0-8.844,7.156-16,16-16s16,7.156,16,16v176C224,376.688,216.844,383.844,208,383.844
L208,383.844z M144,383.844c-8.844,0-16-7.156-16-16V183.836c0-8.828,7.156-16,16-16s16,7.172,16,16v184.008
C160,376.688,152.844,383.844,144,383.844L144,383.844z M80,383.844c-8.844,0-16-7.156-16-16v-128c0-8.844,7.156-16,16-16
s16,7.156,16,16v128C96,376.688,88.844,383.844,80,383.844L80,383.844z M16,351.844c-8.844,0-16-7.156-16-16v-64
c0-8.844,7.156-16,16-16s16,7.156,16,16v64C32,344.688,24.844,351.844,16,351.844L16,351.844z M336,351.844c8.844,0,16,7.156,16,16
s-7.156,16-16,16s-16-7.156-16-16S327.156,351.844,336,351.844L336,351.844z"/>
</svg>

After

Width:  |  Height:  |  Size: 1.8 KiB

26
assets/icons/spotify.svg Normal file
View File

@@ -0,0 +1,26 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 16.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" id="Layer_12" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve">
<path fill-rule="evenodd" clip-rule="evenodd" d="M500.555,246.359l-0.211-0.156
c-2.906,3.957-7.562,6.555-12.836,6.555c-8.844,0-16-7.156-16-16c0-3.336,1.023-6.438,2.773-8.996l-0.172-0.117
c3.664-6.051,5.891-13.051,5.891-20.637c0-17.066-10.727-31.555-25.773-37.293C380.062,132.926,296.555,112,208,112
c-49.375,0-97.164,6.609-142.703,18.695c-1.547,0.27-3,0.695-4.5,1.141l-8.469-30.699C101.898,87.465,154.062,80,208,80
c96.062,0,186.625,23.328,266.57,64.445l0.039-0.078C496.891,156.605,512,180.285,512,207.512
C512,221.824,507.773,235.148,500.555,246.359L500.555,246.359z M32,170.141c0,22.148,17.961,40.125,40.125,40.125
c3.438,0,6.734-0.562,9.914-1.375l0.055,0.211c40.086-11.07,82.289-17.105,125.906-17.105c84.109,0,163.008,22.09,231.406,60.668
l0.062-0.098c19.43,11.324,32.539,32.332,32.539,56.434c0,36.094-29.266,65.336-65.336,65.336c-11.93,0-23.062-3.234-32.695-8.82
l-0.039,0.055c-50-28.93-108.008-45.555-169.93-45.555c-43.812,0-85.664,8.383-124.141,23.508C70.633,346.859,64,355.625,64,366
c0,13.266,10.742,24.008,24.008,24.008c3.18,0,6.227-0.656,9-1.781l11.789,29.805c-6.359,2.484-13.227,3.977-20.461,3.977
C57.211,422.008,32,396.781,32,365.672c0-23.703,14.68-43.906,35.414-52.211l11.484,29.031l-11.508-29.086
c42.398-16.352,88.438-25.414,136.617-25.414c67.297,0,130.438,17.656,185.266,48.336c5.164,3.375,11.289,5.352,17.898,5.352
c18.141,0,32.836-14.703,32.836-32.828c0-12.242-6.766-22.797-16.695-28.438l0.039-0.078C359.68,244.516,286.258,224,208,224
c-40.672,0-80,5.621-117.391,15.961l0.016,0.055c-5.914,1.574-12.102,2.484-18.5,2.484C32.289,242.5,0,210.211,0,170.375
c0-32.953,22.125-60.684,52.305-69.297l8.477,30.758C44.195,136.766,32,151.949,32,170.141L32,170.141z M32,264.008
c8.844,0,16,7.156,16,16s-7.156,16-16,16s-16-7.156-16-16S23.156,264.008,32,264.008L32,264.008z M204.008,368.016
c53.156,0,102.922,14.336,145.836,39.141c5.938,2.328,10.164,8.086,10.164,14.852c0,8.844-7.172,16-16,16
c-2.93,0-5.602-0.828-7.969-2.211l-0.117,0.195c-38.672-22.828-83.766-35.977-131.914-35.977c-33.609,0-65.688,6.438-95.188,18.055
l-11.773-29.75C130.172,375.273,166.227,368.016,204.008,368.016L204.008,368.016z M400,416.016c8.844,0,16,7.156,16,16
c0,8.828-7.156,16-16,16s-16-7.172-16-16C384,423.172,391.156,416.016,400,416.016L400,416.016z"/>
</svg>

After

Width:  |  Height:  |  Size: 2.7 KiB

22
assets/icons/tumblr.svg Normal file
View File

@@ -0,0 +1,22 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 16.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" id="Layer_5" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve">
<path fill-rule="evenodd" clip-rule="evenodd" d="M352,376.012c0-8.852,7.156-16.008,16-16.008s16,7.156,16,16.008
c0,8.82-7.156,16-16,16S352,384.832,352,376.012L352,376.012z M372.773,492.676C349.414,501.605,311.977,512,264.008,512
c-75.117,0-136-60.879-136-135.988c0-1.812,0.07-3.5,0.141-5.188c-0.031-0.93-0.141-1.867-0.141-2.82v-113.75
c0-6.332-3.789-11.66-9.148-14.242H104c-22.102,0-40-17.922-40-40.004V152c0-19.57,14.047-35.805,32.648-39.27
c35.164-7.426,61.797-37.957,63.289-74.969c0-0.07,0.109-0.016,0.266,0.125C161.336,16.773,178.633,0,200,0h48
c22.086,0,40.008,17.902,40.008,40.004v56.008c0,8.828,7.156,15.984,15.984,15.984H344c22.094,0,40,17.922,40,40.004v48.008
c0,22.082-17.906,40.004-40,40.004h-40.008c-8.828,0-15.984,7.156-15.984,15.984v16v64.008v8c0,13.258,10.742,24,23.984,24
c8.844,0,16,7.164,16,16.008c0,8.82-7.156,15.984-16,15.984c-39.859,0-56.039-29.992-56.039-56.312c0-9.438,0-41.531,0-94.848
c0-0.305,0.047-0.5,0.047-0.824c0-22.101,17.906-40.003,40.008-40.003c0.555,0,0.953-0.09,1.453-0.125l38.891,0.09
c8.664-0.215,15.648-7.25,15.648-15.969v-32c0-8.828-7.164-16.004-16.008-16.004h-39.984C273.906,144,256,126.098,256,104.012
c0-24.305,0-43.539,0-56.004c0-8.848-7.156-16.004-16-16.004c-8.57,0-20.055,0-33.008,0c-7.805,0-14.312,5.598-15.711,13.008
c0,0.035-0.078,0-0.109,0c-6.547,64.383-60.438,88.441-84.047,95.973c-0.016,0-0.016,0.039-0.039,0.039
C100.648,143.102,96,149.129,96,156.254v35.75c0,8.848,7.156,16.004,16,16.004h16.008c14.742,0,31.984,17.902,31.984,40.003
c0,31.446,0,75.813,0,111.993c0,63.383,32.828,120,104.016,120c51.586,0,82.914-12.578,96.312-19.516
c4.555-2.812,7.68-7.734,7.68-13.492c0-0.109,0.016-0.164,0.016-0.273l0.039-14.203c0-0.18-0.055-0.344-0.055-0.516
c0-8.828,7.156-16.008,16-16.008s16,7.18,16,16.008v20C400,470.348,388.734,486.105,372.773,492.676L372.773,492.676z"/>
</svg>

After

Width:  |  Height:  |  Size: 2.3 KiB

18
assets/icons/twitch.svg Normal file
View File

@@ -0,0 +1,18 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 16.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
width="64px" height="64px" viewBox="0 0 64 64" enable-background="new 0 0 64 64" xml:space="preserve">
<path fill-rule="evenodd" clip-rule="evenodd" d="M28,30V18c0-1.105,0.895-2,2-2s2,0.895,2,2v12c0,1.105-0.895,2-2,2
S28,31.105,28,30L28,30z M44,30V18c0-1.105,0.895-2,2-2s2,0.895,2,2v12c0,1.105-0.895,2-2,2S44,31.105,44,30L44,30z M62.356,41.644
l-1.782,1.782l-0.007-0.008C60.206,43.777,59.707,44,59.156,44c-1.105,0-2-0.895-2-2c0-0.546,0.221-1.04,0.574-1.398l-0.01-0.01
L60,38.312V5.001C60,4.448,59.552,4,59.001,4H16.999C16.448,4,16,4.448,16,5.001v38C16,43.552,16.448,44,16.999,44h8
C26.657,44,28,45.343,28,47.001v1.375l2.744-2.744c1.071-1.009,2.512-1.632,4.1-1.632H49.75c2.347,0,4.25,1.903,4.25,4.25
c0,1.158-0.471,2.206-1.222,2.972l-3.353,3.353C48.523,55.454,47.295,56,45.937,56H34l-6.577,6.577
C26.523,63.454,25.295,64,23.937,64H20c-2.208,0-4-1.791-4-4v-2.999C16,56.448,15.552,56,14.999,56h-6C6.237,56,4,53.763,4,51.001
V18c0-1.105,0.895-2,2-2s2,0.895,2,2v33.001C8,51.552,8.448,52,8.999,52h6C17.763,52,20,54.237,20,57.001v1.998
C20,59.552,20.448,60,20.999,60h3.313l6.577-6.577C31.789,52.546,33.019,52,34.376,52h11.937l4-4H34l-5.236,5.236
C28.257,53.707,27.583,54,26.836,54C25.271,54,24,52.729,24,51.164V48h-7.001C14.237,48,12,45.763,12,43.001v-38
C12,2.237,14.237,0,16.999,0H18h41.001C61.763,0,64,2.237,64,5.001v32.531C64,39.125,63.372,40.569,62.356,41.644L62.356,41.644z
M8,12c-1.105,0-2-0.895-2-2s0.895-2,2-2s2,0.895,2,2S9.105,12,8,12L8,12z"/>
</svg>

After

Width:  |  Height:  |  Size: 1.8 KiB

39
assets/icons/twitter.svg Normal file
View File

@@ -0,0 +1,39 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 16.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" id="Layer_5" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve">
<path fill-rule="evenodd" clip-rule="evenodd" d="M512,107.867c0,7.031-2.203,13.527-5.977,18.836
c-10.062,15.051-23.727,25.977-37.367,37.422c-2.797,2.707-4.57,6.387-4.805,10.531c-1.523,69.156-27.141,148.246-72.78,200.512
c-54.586,62.49-129,104.881-215.078,104.881c-8.824,0-16-7.172-16-16c0-8.844,7.176-16,16-16
c158.555,0,244.944-138.6,255.007-256.924c0.469-1.652,0.758-3.785,0.758-6.816c0-1.008,0.016-2.012,0.07-2.996
c0.789-13.796,6.961-26.156,16.43-35.019c0.469-0.449,0.828-0.859,1.172-1.273c11.555-11.375,22.211-24.668,30.461-37.152
c-11.719,5.258-24.078,9.238-36.922,11.93c-2.148,0-3.961-1.812-3.961-4c0-1.094,0.445-2.098,1.164-2.816
c0.031-0.035-0.109,0.016-0.125,0.016c12.609-11.012,22.281-25.402,27.484-41.816c-8.469,5.059-17.406,9.418-26.68,13.098
c-5.992,2.387-12.5,3.766-19.359,3.766c-10.672,0-20.593-3.211-28.843-8.719c-0.32-0.215-0.648-0.359-0.969-0.555
c-13.672-9.184-29.617-14.711-47.68-14.711l-1.883,0.34c-39.742,0-69.945,22.406-81.234,56.707
c-0.317,0.147-3.551,14.406-3.875,16.453c-2.996,19.121-19.535,33.742-39.504,33.742c-2.168,0-4.305-0.18-6.387-0.539
c-52.472-9.812-99.847-32.504-135.207-69.406c-0.215-0.18-0.379-0.234-0.684-0.539c-4.68-4.684-12.27-4.684-16.969,0
c-1.094,1.113-1.938,2.367-2.531,3.73c-0.141,0.344-0.23,0.344-0.34,0.414c-4.27,9.867-7.391,20.539-7.391,31.09
c0,21.832,8.879,41.761,22.227,57.601c0,0.02-0.16-0.07-0.09,0c1.168,1.398,1.867,3.195,1.867,5.148c0,4.414-3.59,8-8.004,8
c-0.879,0-1.703-0.23-2.492-0.5c-0.125-0.055-0.25-0.109-0.375-0.16c-0.145,0.051-0.305,0.125-0.559,0
c-1.074-0.539-2.277-0.844-3.566-0.844c-4.344,0-7.859,3.516-7.969,7.82c4.164,28.469,21.637,53.676,45.227,68.458
c-0.305-0.031-0.484-0.031-0.375,0.031c2.168,1.422,3.621,3.898,3.621,6.695c0,4.414-3.586,8-8,8c-0.09,0-0.18-0.016-0.27-0.016
c-0.105-0.023-0.195-0.055-0.305-0.07c-0.285-0.039-0.555-0.094-0.844-0.125c-2.152,0.109-3.84,1.812-3.84,3.961
c0,0.633,0.129,1.219,0.395,1.742c6.512,16.219,17.527,30.078,31.395,40.219c0.164,0.125,0.199,0.234,0.395,0.375
c1.184,0.844,2.297,1.812,3.375,2.875c10.922,10.922,10.922,28.648,0,39.594c-3.355,3.328-7.34,5.664-11.555,6.953
c-0.035,0.016-0.016,0-0.055,0.016c-16.395,5.203-33.762,8.219-52.203,8.219c-3.086,0-6.527,0-9.992,0c-2.207,0-4,1.797-4,4
c0,1.297,0.645,2.375,1.578,3.094c6.586,3.906,13.332,7.727,20.344,11.281l-0.016,0.016c4.715,2.639,7.965,7.623,7.965,13.436
c0,8.523-6.906,15.43-15.43,15.43c-3.48,0-6.672-1.203-9.258-3.141c-11.211-5.867-22.082-12.148-32.414-18.836
C2.182,417.184-3.166,401.34,1.893,387.129c4.594-12.992,16.703-19.086,30.105-19.086c5.953,0.719,17.902,0,24,0
c12.289,0,22.355-2.531,33.996-5.344c-17.473-14.82-30.965-34.555-38.266-57.57c-1.812-5.727-1.992-11.734-0.645-17.398
c-20.648-22.531-35.089-55.293-35.089-87.672c0.16-8.02,5.273-14.711,10.496-20.434c-5.059-13.761-10.496-28.433-10.496-43.574
c0-22.137,8.558-43.969,19.554-63.004c5.309-9.184,17.957-16.164,28.449-16.988c9.598,0,18.031,5.273,24.148,12.844
c30.176,37.352,77.406,57.426,123.871,68.906c0.789,0.141,1.633,0.25,2.477,0.25c7.625,0,13.938-5.293,15.59-12.434
C242.817,71.844,284.563,32,342.118,32c24.344,0,48.078,7.34,68.147,20.633c3.125,1.973,6.766,3.176,10.727,3.176
c1.758,0,3.445-0.289,5.039-0.719c8.672-3.23,17.117-6.98,25.117-11.785c5.078-3.035,10.727-3.266,16.359-3.266
c7.109,0,14.195,1.129,20.008,5.793c10.422,8.379,14.633,22.391,10.562,35.199c0,0.035-0.016,0.07-0.016,0.105
C506.477,86.984,512,96.781,512,107.867L512,107.867z M31.998,368.043C30.74,367.902,33.251,368.043,31.998,368.043L31.998,368.043z
M63.998,56.059C63.173,56.059,64.826,55.984,63.998,56.059L63.998,56.059z M120.005,440.049c8.828,0,16.004,7.156,16.004,16
c0,8.828-7.176,16-16.004,16c-8.844,0-16-7.172-16-16C104.005,447.205,111.162,440.049,120.005,440.049L120.005,440.049z"/>
</svg>

After

Width:  |  Height:  |  Size: 4.1 KiB

26
assets/icons/vimeo.svg Normal file
View File

@@ -0,0 +1,26 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 16.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" id="Layer_5" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve">
<path fill-rule="evenodd" clip-rule="evenodd" d="M406.832,355.254C335.223,437.988,276.129,480,231.242,480
c-46.305,0-90.398-74.402-115.102-194.09c-13.039-63.145-23.656-86.176-28.719-94.215c-0.539,0.305-0.969,0.539-1.438,0.773
l-0.031-0.07c-2.211,1.125-4.664,1.828-7.32,1.828c-8.898,0-16.133-7.211-16.133-16.125c0-5.508,2.781-10.352,7-13.258v-0.023
c0.039-0.016,0.055-0.031,0.086-0.055c0.039-0.016,0.078-0.047,0.094-0.07c6.422-4.641,13.422-8.266,21.172-8.266
c22.633,0,39.875,36.719,57.633,122.746c23.859,115.594,62.758,167.578,82.758,167.578c19.641,0,65.34-14.703,150.668-113.266
c22.766-26.297,97.839-117.243,97.839-192.876c0-36.922-9.542-76.394-63.745-76.394l-3.171-0.052
c-67.938,0-96.423,44.615-108.063,74.482c0,0.094,0.078,0.07,0,0.234c-0.328,0.875-0.516,1.844-0.516,2.852
c0,4.414,3.594,7.984,8,7.984c0.406,0,0.812-0.125,1.203-0.18c3.75-0.844,6.875-1.398,8.609-1.398c0.359,0,0.828-0.039,1.406-0.055
c1.281-0.07,2.953-0.141,4.859-0.141c22.266,0,35.031,12.156,35.031,33.383c0,32.828-46.859,112.77-69.141,130.863
c-4,3.266-8.297,4.906-12.766,4.906c-19.875,0-36.723-33.969-50.059-100.965c-1.828-9.133-3.367-20.688-5.016-32.922
c-6.695-49.797-17.297-119.242-50.375-119.242c-32.039,0-82.867,42.445-116.391,75.617l-0.109-0.109
c-2.945,2.938-7.016,4.75-11.5,4.75c-8.969,0-16.25-7.281-16.25-16.25c0-4.484,1.828-8.539,4.766-11.484
C68.906,83.359,125.758,32,173.422,32c65.961,0,77.836,88.336,85.695,146.781c1.559,11.695,3.059,22.727,4.668,30.836
c6.453,32.469,13.75,54.34,19.266,66.34c19.5-25.082,47.266-78.824,47.266-94.629c0-0.055,0-0.094,0-0.141
c-0.531-0.039-1.219-0.078-1.984-0.078c-1.266,0-2.359,0.078-3.219,0.109c-0.594,0.039-1.141,0.055-1.625,0.07
c-0.938,0.164-2.391,0.508-4.125,0.914c-0.188,0.039-0.297,0.055-0.484,0.094c-2.766,0.609-5.656,0.93-8.609,0.93
c-22.109,0-40.016-17.898-40.016-40c0-4.219,0.719-8.258,1.938-12.094C288.395,86.461,329.707,32,412.91,32
C458.113,32,512,50.711,512,139.852C512,168.086,501.754,245.602,406.832,355.254L406.832,355.254z M16.008,191.984
c-8.828,0-16.008-7.18-16.008-16c0-8.844,7.18-16.008,16.008-16.008c8.844,0,16,7.164,16,16.008
C32.008,184.805,24.852,191.984,16.008,191.984L16.008,191.984z"/>
</svg>

After

Width:  |  Height:  |  Size: 2.6 KiB

29
assets/icons/youtube.svg Normal file
View File

@@ -0,0 +1,29 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 16.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" id="Layer_5" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve">
<path fill-rule="evenodd" clip-rule="evenodd" d="M506.89,360.392c0,0-11.502,39.733-26.863,55.608
c-19.464,20.844-42.788,25.266-52.805,26.484c-3.282,0.25-6.673,0.461-10.064,0.672l-0.016-0.141
c-4.47,0.359-9.063-0.984-12.471-4.406c-6.212-6.188-6.212-16.258,0-22.445c2.813-2.82,6.462-4.164,10.135-4.43l-0.016-0.18
c0.539-0.039,1.109-0.07,1.633-0.109c8.29-1.008,26.355-1.094,42.491-18.319c12.721-13.109,16.846-42.891,16.846-42.891
s4.235-34.961,4.235-69.921v-48.801c0-34.96-4.235-69.944-4.235-69.944s-4.125-29.777-16.846-42.89
c-16.136-17.207-34.201-17.297-42.491-18.301c-59.337-4.375-160.438-4.359-160.438-4.359s-101.086-0.016-160.423,4.359
c-8.291,1.004-26.355,1.094-42.483,18.301c-12.705,13.113-16.847,42.89-16.847,42.89c-0.008,0-4.235,34.984-4.235,69.944v48.801
c0,34.96,4.235,69.921,4.235,69.921c-0.008,0,4.142,29.781,16.847,42.891c16.127,17.226,37.318,16.687,46.757,18.483
C133.763,414.922,255.984,416,255.984,416c8.845,0,16.002,7.172,16.002,16c0,8.844-7.157,16-16.002,16
c-0.266,0-0.523-0.047-0.789-0.062c-10.103-0.109-126.113-1.406-165.283-5.258c-11.392-2.195-38.467-5.836-57.954-26.68
c-15.362-15.875-26.84-55.608-26.84-55.608S0,326.071,0,283.736v-55.683c0-42.336,5.118-76.671,5.118-76.671
s11.478-39.503,26.84-55.363c19.487-20.843,42.795-25.507,52.805-26.726C156.422,64,255.891,64,255.891,64h0.219
c0,0,99.469,0,171.112,5.293c10.017,1.219,33.341,5.883,52.805,26.726c15.361,15.859,26.863,55.363,26.863,55.363
s5.11,34.335,5.11,76.671v55.683C512,326.071,506.89,360.392,506.89,360.392L506.89,360.392z M320.002,416
c8.845,0,16.002,7.172,16.002,16c0,8.844-7.157,16-16.002,16S304,440.844,304,432C304,423.172,311.157,416,320.002,416L320.002,416z
M248.468,334.142l-0.148,0.078c-2.368,1.438-5.11,2.297-8.072,2.297c-8.697,0-15.752-7.055-15.752-15.75
c0-6.062,3.461-11.266,8.486-13.905l-0.016-0.016l81.614-43.523c-0.047-0.039-0.18-0.07-0.102-0.109
c2.673-1.289,4.517-4.035,4.517-7.211c0-2.906-1.609-5.453-3.931-6.836l-95.538-51.054c-1.11-0.555-2.258-0.844-3.532-0.844
c-4.274,0-7.681,3.355-7.916,7.535l0.016,99.042h-0.125c0,0.055,0.023,0.109,0.023,0.164c0,8.843-7.181,15.999-16.01,15.999
c-8.845,0-16.002-7.156-16.002-15.999c0-0.023,0-0.023,0-0.039V192.569c0-17.976,14.588-32.558,32.567-32.558
c6.149,0,11.893,1.703,16.792,4.664c0.195,0.105,0.266,0.07,0.43,0.141l110.376,63.597c2.336,1.363,4.492,2.976,6.485,4.968
c12.502,12.504,12.502,32.762,0,45.262c-1.837,1.828-3.86,3.359-5.978,4.664l-87.537,50.444
C248.897,333.892,248.679,334.001,248.468,334.142L248.468,334.142z"/>
</svg>

After

Width:  |  Height:  |  Size: 2.9 KiB

BIN
assets/img/aquarium.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 64 KiB

BIN
assets/img/negi.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

BIN
assets/img/negi2.jpg Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 51 KiB

View File

@@ -1,350 +0,0 @@
(function webpackUniversalModuleDefinition(root, factory) {
if(typeof exports === 'object' && typeof module === 'object')
module.exports = factory(require("katex"));
else if(typeof define === 'function' && define.amd)
define(["katex"], factory);
else if(typeof exports === 'object')
exports["renderMathInElement"] = factory(require("katex"));
else
root["renderMathInElement"] = factory(root["katex"]);
})((typeof self !== 'undefined' ? self : this), function(__WEBPACK_EXTERNAL_MODULE__0__) {
return /******/ (function(modules) { // webpackBootstrap
/******/ // The module cache
/******/ var installedModules = {};
/******/
/******/ // The require function
/******/ function __webpack_require__(moduleId) {
/******/
/******/ // Check if module is in cache
/******/ if(installedModules[moduleId]) {
/******/ return installedModules[moduleId].exports;
/******/ }
/******/ // Create a new module (and put it into the cache)
/******/ var module = installedModules[moduleId] = {
/******/ i: moduleId,
/******/ l: false,
/******/ exports: {}
/******/ };
/******/
/******/ // Execute the module function
/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
/******/
/******/ // Flag the module as loaded
/******/ module.l = true;
/******/
/******/ // Return the exports of the module
/******/ return module.exports;
/******/ }
/******/
/******/
/******/ // expose the modules object (__webpack_modules__)
/******/ __webpack_require__.m = modules;
/******/
/******/ // expose the module cache
/******/ __webpack_require__.c = installedModules;
/******/
/******/ // define getter function for harmony exports
/******/ __webpack_require__.d = function(exports, name, getter) {
/******/ if(!__webpack_require__.o(exports, name)) {
/******/ Object.defineProperty(exports, name, { enumerable: true, get: getter });
/******/ }
/******/ };
/******/
/******/ // define __esModule on exports
/******/ __webpack_require__.r = function(exports) {
/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
/******/ }
/******/ Object.defineProperty(exports, '__esModule', { value: true });
/******/ };
/******/
/******/ // create a fake namespace object
/******/ // mode & 1: value is a module id, require it
/******/ // mode & 2: merge all properties of value into the ns
/******/ // mode & 4: return value when already ns object
/******/ // mode & 8|1: behave like require
/******/ __webpack_require__.t = function(value, mode) {
/******/ if(mode & 1) value = __webpack_require__(value);
/******/ if(mode & 8) return value;
/******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;
/******/ var ns = Object.create(null);
/******/ __webpack_require__.r(ns);
/******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value });
/******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));
/******/ return ns;
/******/ };
/******/
/******/ // getDefaultExport function for compatibility with non-harmony modules
/******/ __webpack_require__.n = function(module) {
/******/ var getter = module && module.__esModule ?
/******/ function getDefault() { return module['default']; } :
/******/ function getModuleExports() { return module; };
/******/ __webpack_require__.d(getter, 'a', getter);
/******/ return getter;
/******/ };
/******/
/******/ // Object.prototype.hasOwnProperty.call
/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
/******/
/******/ // __webpack_public_path__
/******/ __webpack_require__.p = "";
/******/
/******/
/******/ // Load entry module and return exports
/******/ return __webpack_require__(__webpack_require__.s = 1);
/******/ })
/************************************************************************/
/******/ ([
/* 0 */
/***/ (function(module, exports) {
module.exports = __WEBPACK_EXTERNAL_MODULE__0__;
/***/ }),
/* 1 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
// EXTERNAL MODULE: external "katex"
var external_katex_ = __webpack_require__(0);
var external_katex_default = /*#__PURE__*/__webpack_require__.n(external_katex_);
// CONCATENATED MODULE: ./contrib/auto-render/splitAtDelimiters.js
/* eslint no-constant-condition:0 */
var findEndOfMath = function findEndOfMath(delimiter, text, startIndex) {
// Adapted from
// https://github.com/Khan/perseus/blob/master/src/perseus-markdown.jsx
var index = startIndex;
var braceLevel = 0;
var delimLength = delimiter.length;
while (index < text.length) {
var character = text[index];
if (braceLevel <= 0 && text.slice(index, index + delimLength) === delimiter) {
return index;
} else if (character === "\\") {
index++;
} else if (character === "{") {
braceLevel++;
} else if (character === "}") {
braceLevel--;
}
index++;
}
return -1;
};
var splitAtDelimiters = function splitAtDelimiters(startData, leftDelim, rightDelim, display) {
var finalData = [];
for (var i = 0; i < startData.length; i++) {
if (startData[i].type === "text") {
var text = startData[i].data;
var lookingForLeft = true;
var currIndex = 0;
var nextIndex = void 0;
nextIndex = text.indexOf(leftDelim);
if (nextIndex !== -1) {
currIndex = nextIndex;
finalData.push({
type: "text",
data: text.slice(0, currIndex)
});
lookingForLeft = false;
}
while (true) {
if (lookingForLeft) {
nextIndex = text.indexOf(leftDelim, currIndex);
if (nextIndex === -1) {
break;
}
finalData.push({
type: "text",
data: text.slice(currIndex, nextIndex)
});
currIndex = nextIndex;
} else {
nextIndex = findEndOfMath(rightDelim, text, currIndex + leftDelim.length);
if (nextIndex === -1) {
break;
}
finalData.push({
type: "math",
data: text.slice(currIndex + leftDelim.length, nextIndex),
rawData: text.slice(currIndex, nextIndex + rightDelim.length),
display: display
});
currIndex = nextIndex + rightDelim.length;
}
lookingForLeft = !lookingForLeft;
}
finalData.push({
type: "text",
data: text.slice(currIndex)
});
} else {
finalData.push(startData[i]);
}
}
return finalData;
};
/* harmony default export */ var auto_render_splitAtDelimiters = (splitAtDelimiters);
// CONCATENATED MODULE: ./contrib/auto-render/auto-render.js
/* eslint no-console:0 */
var auto_render_splitWithDelimiters = function splitWithDelimiters(text, delimiters) {
var data = [{
type: "text",
data: text
}];
for (var i = 0; i < delimiters.length; i++) {
var delimiter = delimiters[i];
data = auto_render_splitAtDelimiters(data, delimiter.left, delimiter.right, delimiter.display || false);
}
return data;
};
/* Note: optionsCopy is mutated by this method. If it is ever exposed in the
* API, we should copy it before mutating.
*/
var auto_render_renderMathInText = function renderMathInText(text, optionsCopy) {
var data = auto_render_splitWithDelimiters(text, optionsCopy.delimiters);
if (data.length === 1 && data[0].type === 'text') {
// There is no formula in the text.
// Let's return null which means there is no need to replace
// the current text node with a new one.
return null;
}
var fragment = document.createDocumentFragment();
for (var i = 0; i < data.length; i++) {
if (data[i].type === "text") {
fragment.appendChild(document.createTextNode(data[i].data));
} else {
var span = document.createElement("span");
var math = data[i].data; // Override any display mode defined in the settings with that
// defined by the text itself
optionsCopy.displayMode = data[i].display;
try {
if (optionsCopy.preProcess) {
math = optionsCopy.preProcess(math);
}
external_katex_default.a.render(math, span, optionsCopy);
} catch (e) {
if (!(e instanceof external_katex_default.a.ParseError)) {
throw e;
}
optionsCopy.errorCallback("KaTeX auto-render: Failed to parse `" + data[i].data + "` with ", e);
fragment.appendChild(document.createTextNode(data[i].rawData));
continue;
}
fragment.appendChild(span);
}
}
return fragment;
};
var renderElem = function renderElem(elem, optionsCopy) {
for (var i = 0; i < elem.childNodes.length; i++) {
var childNode = elem.childNodes[i];
if (childNode.nodeType === 3) {
// Text node
var frag = auto_render_renderMathInText(childNode.textContent, optionsCopy);
if (frag) {
i += frag.childNodes.length - 1;
elem.replaceChild(frag, childNode);
}
} else if (childNode.nodeType === 1) {
(function () {
// Element node
var className = ' ' + childNode.className + ' ';
var shouldRender = optionsCopy.ignoredTags.indexOf(childNode.nodeName.toLowerCase()) === -1 && optionsCopy.ignoredClasses.every(function (x) {
return className.indexOf(' ' + x + ' ') === -1;
});
if (shouldRender) {
renderElem(childNode, optionsCopy);
}
})();
} // Otherwise, it's something else, and ignore it.
}
};
var renderMathInElement = function renderMathInElement(elem, options) {
if (!elem) {
throw new Error("No element provided to render");
}
var optionsCopy = {}; // Object.assign(optionsCopy, option)
for (var option in options) {
if (options.hasOwnProperty(option)) {
optionsCopy[option] = options[option];
}
} // default options
optionsCopy.delimiters = optionsCopy.delimiters || [{
left: "$$",
right: "$$",
display: true
}, {
left: "\\(",
right: "\\)",
display: false
}, // LaTeX uses $…$, but it ruins the display of normal `$` in text:
// {left: "$", right: "$", display: false},
// \[…\] must come last in this array. Otherwise, renderMathInElement
// will search for \[ before it searches for $$ or \(
// That makes it susceptible to finding a \\[0.3em] row delimiter and
// treating it as if it were the start of a KaTeX math zone.
{
left: "\\[",
right: "\\]",
display: true
}];
optionsCopy.ignoredTags = optionsCopy.ignoredTags || ["script", "noscript", "style", "textarea", "pre", "code", "option"];
optionsCopy.ignoredClasses = optionsCopy.ignoredClasses || [];
optionsCopy.errorCallback = optionsCopy.errorCallback || console.error; // Enable sharing of global macros defined via `\gdef` between different
// math elements within a single call to `renderMathInElement`.
optionsCopy.macros = optionsCopy.macros || {};
renderElem(elem, optionsCopy);
};
/* harmony default export */ var auto_render = __webpack_exports__["default"] = (renderMathInElement);
/***/ })
/******/ ])["default"];
});

1
assets/js/auto-render.min.js vendored Normal file
View File

@@ -0,0 +1 @@
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(require("katex")):"function"==typeof define&&define.amd?define(["katex"],t):"object"==typeof exports?exports.renderMathInElement=t(require("katex")):e.renderMathInElement=t(e.katex)}("undefined"!=typeof self?self:this,(function(e){return function(){"use strict";var t={771:function(t){t.exports=e}},r={};function n(e){var a=r[e];if(void 0!==a)return a.exports;var i=r[e]={exports:{}};return t[e](i,i.exports,n),i.exports}n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,{a:t}),t},n.d=function(e,t){for(var r in t)n.o(t,r)&&!n.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)};var a={};return function(){n.d(a,{default:function(){return s}});var e=n(771),t=n.n(e),r=function(e,t,r){for(var n=r,a=0,i=e.length;n<t.length;){var o=t[n];if(a<=0&&t.slice(n,n+i)===e)return n;"\\"===o?n++:"{"===o?a++:"}"===o&&a--,n++}return-1},i=/^\\begin{/,o=function(e,t){for(var n,a=[],o=new RegExp("("+t.map((function(e){return e.left.replace(/[-/\\^$*+?.()|[\]{}]/g,"\\$&")})).join("|")+")");-1!==(n=e.search(o));){n>0&&(a.push({type:"text",data:e.slice(0,n)}),e=e.slice(n));var l=t.findIndex((function(t){return e.startsWith(t.left)}));if(-1===(n=r(t[l].right,e,t[l].left.length)))break;var d=e.slice(0,n+t[l].right.length),s=i.test(d)?d:e.slice(t[l].left.length,n);a.push({type:"math",data:s,rawData:d,display:t[l].display}),e=e.slice(n+t[l].right.length)}return""!==e&&a.push({type:"text",data:e}),a},l=function(e,r){var n=o(e,r.delimiters);if(1===n.length&&"text"===n[0].type)return null;for(var a=document.createDocumentFragment(),i=0;i<n.length;i++)if("text"===n[i].type)a.appendChild(document.createTextNode(n[i].data));else{var l=document.createElement("span"),d=n[i].data;r.displayMode=n[i].display;try{r.preProcess&&(d=r.preProcess(d)),t().render(d,l,r)}catch(e){if(!(e instanceof t().ParseError))throw e;r.errorCallback("KaTeX auto-render: Failed to parse `"+n[i].data+"` with ",e),a.appendChild(document.createTextNode(n[i].rawData));continue}a.appendChild(l)}return a},d=function e(t,r){for(var n=0;n<t.childNodes.length;n++){var a=t.childNodes[n];if(3===a.nodeType){var i=l(a.textContent,r);i&&(n+=i.childNodes.length-1,t.replaceChild(i,a))}else 1===a.nodeType&&function(){var t=" "+a.className+" ";-1===r.ignoredTags.indexOf(a.nodeName.toLowerCase())&&r.ignoredClasses.every((function(e){return-1===t.indexOf(" "+e+" ")}))&&e(a,r)}()}},s=function(e,t){if(!e)throw new Error("No element provided to render");var r={};for(var n in t)t.hasOwnProperty(n)&&(r[n]=t[n]);r.delimiters=r.delimiters||[{left:"$$",right:"$$",display:!0},{left:"\\(",right:"\\)",display:!1},{left:"\\begin{equation}",right:"\\end{equation}",display:!0},{left:"\\begin{align}",right:"\\end{align}",display:!0},{left:"\\begin{alignat}",right:"\\end{alignat}",display:!0},{left:"\\begin{gather}",right:"\\end{gather}",display:!0},{left:"\\begin{CD}",right:"\\end{CD}",display:!0},{left:"\\[",right:"\\]",display:!0}],r.ignoredTags=r.ignoredTags||["script","noscript","style","textarea","pre","code","option"],r.ignoredClasses=r.ignoredClasses||[],r.errorCallback=r.errorCallback||console.error,r.macros=r.macros||{},d(e,r)}}(),a=a.default}()}));

View File

@@ -1,5 +1,3 @@
function cardPressed() { function cardPressed() {
this.classList.add('card-hover'); this.classList.add('card-hover');
} }

File diff suppressed because it is too large Load Diff

1
assets/js/katex.min.js vendored Normal file

File diff suppressed because one or more lines are too long

View File

@@ -10,6 +10,7 @@ themesDir = "../../"
brand = "aether" brand = "aether"
description = "aether Hugo theme for blogs" description = "aether Hugo theme for blogs"
headshotimg = "img/faceshot.jpg" headshotimg = "img/faceshot.jpg"
headshotalt = "Generic grey headshot picture"
[markup] [markup]
[markup.highlight] [markup.highlight]

View File

@@ -10,6 +10,8 @@ draft: false
resources: resources:
- name: featuredImage - name: featuredImage
src: "mdd-iphone.jpg" src: "mdd-iphone.jpg"
params:
description: "An iphone with a website featuring the aether theme"
--- ---
Hugo combined with the Aether theme turns easy to write markdown into powerful web pages. KaTeX, Highlight.js, and Hugo provides the ability to create mathmatical symobols, equations, highlighted code, tables, lists, and much more. Hugo combined with the Aether theme turns easy to write markdown into powerful web pages. KaTeX, Highlight.js, and Hugo provides the ability to create mathmatical symobols, equations, highlighted code, tables, lists, and much more.

View File

@@ -32,54 +32,83 @@ git clone https://github.com/josephhutch/aether.git themes/aether
Add the following parameters to your config file if they are not present already. Add the following parameters to your config file if they are not present already.
```toml ```toml
baseURL = "https://yourwebsitenamegoeshere.com" baseURL = "https://yourwebsitenamegoeshere.com/"
languageCode = "your language code" languageCode = "The language code for the language the website is written in"
title = "your website title" title = "The website title that is used in each page title, displayed in the browser tab and search results"
theme = "aether" theme = "aether"
googleAnalytics = "Your google analytics tracking ID" googleAnalytics = "Your google analytics tracking ID - optional"
disqusShortname = "Your shortname for Disqus - optional"
[params] [params]
brand = "the title displayed in the nav bar - optional" brand = "The name that is displayed in the top left of the website - optional, title is fallback"
description = "your website's description" description = "The website's description"
homeimg = "url to the image used for the home button - optional" bgimg = "Path, within the 'assets' folder, of the image used for the page background - optional"
bgimg = "url to the image used for the background - optional" headshotimg = "Path, within the 'assets' folder, of the image used for the home page header - optional"
rssinmenu = whether you would like a RSS feed link to appear in the nav menu and footer (true, false) - optional
facebook = "URL to your Facebook account, icon link will be included in the footer - optional"
flicker = "URL to your Flicker account, icon link will be included in the footer - optional"
github = "URL to your GitHub account, icon link will be included in the footer - optional"
instagram = "URL to your Instagram account, icon link will be included in the footer - optional"
linkedin = "URL to your LinkedIn account, icon link will be included in the footer - optional"
patreon = "URL to your Patreon account, icon link will be included in the footer - optional"
soundcloud = "URL to your Soundcloud account, icon link will be included in the footer - optional"
spotify = "URL to your Spotify account, icon link will be included in the footer - optional"
tumblr = "URL to your Tumblr account, icon link will be included in the footer - optional"
twitch = "URL to your Twitch account, icon link will be included in the footer - optional"
twitter = "URL to your Twitter account, icon link will be included in the footer - optional"
vimeo = "URL to your Vimeo account, icon link will be included in the footer - optional"
youtube = "URL to your Youtube account, icon link will be included in the footer - optional"
[markup]
[markup.highlight]
style = "igor"
``` ```
The `title` parameter is used for each page title, the title that search engines display in search results. If you would like the title shown in the top left of the page to be different from the page title, use the `brand` parameter. For instance, the title parameter for my site is `Joe Hutchinson` but the brand parameter is set to `joehutch`. The `title` parameter is used for each page title, the title that search engines display in search results. If you would like the title shown in the top left of the page to be different from the page title, use the `brand` parameter. For instance, the title parameter for my site is `Joe Hutchinson` but the brand parameter is set to `joehutch`.
The `homeimg` and `bgimg` parameters give you the ability to customize the look of your site further. The homeimg parameter is the image used for the home button at the bottom of every page. Since the text used on the home button is white, a darker background image is preferred. If the homeimg parameter is not specified, a fallback image is used. Similarly, the bgimg parameter is used for the background of each webpage. Aether is designed to look best with a subtle tiling image for the background. If no background image is specified, the background will be a solid gray color. Find your `language code` [here](https://www.metamodpro.com/browser-language-codes).
The `bgimg` parameters give you the ability to customize the look of your site further. The homeimg should reside in the assets folder of your site. The homeimg parameter is the image used for the home button at the bottom of every page. Since the text used on the home button is white, a darker background image is preferred. If the homeimg parameter is not specified, a fallback image is used. Aether is designed to look best with a subtle tiling image for the background. If no background image is specified, the background will be a solid gray color.
The default syntax highlighter `style` does not look great with aether so I recommend using igor. If you want to change the highlighter theme you can specify a different one from [this list](https://xyproto.github.io/splash/docs/all.html). To configure the syntax highlighter further, such as adding line numbers, check out [this Hugo doc section](https://gohugo.io/getting-started/configuration-markup#highlight).
That is the only configuration required at the site level! You can now begin writing content for your site. That is the only configuration required at the site level! You can now begin writing content for your site.
### Creating content ### Creating content
Make a new blog post by executing `hugo new posts/postnamehere/index.md` in your shell. At the top of the new markdown file, is what's called the front matter. The front matter is the page's metadata that determines how Hugo and aether generate the HTML for your post. Below you can find what the front matter should contain for a new post and what each of the parameters mean. Make a new blog post by executing `hugo new posts/postnamehere/index.md` in your shell. At the top of the new markdown file, is what's called the front matter. The front matter is the page's metadata that determines how Hugo and aether generate the HTML for your post. Below you can find what the front matter should contain for a new post and what each of the parameters mean.
```properties ```yaml
--- ---
title: "The title of your post" title: "The title of the post"
date: date the post was generated date: date the post was generated (automatically generated)
description: "Description of the post (displayed in the post's card)" description: "Description of the post (displayed in the post's card)"
categories: ["add comma separated categories here", "another category"] categories: ["Add comma separated categories here", "another category"]
featuredImage: "url to the page's featured image" toc: if the post should include a table of contents (true, false)
featuredImageDescription: "Description for the featured image, used as the alt text" displayInMenu: if the post should show up in the navigation menu (true, false)
dropCap: if the first letter should be a large decorative capital letter (true, false) displayInList: if the post should be listed on the home page and category pages (true, false)
displayInMenu: if post is listed in the navigation menu (true, false) draft: if the post is a draft (true, false)
displayInList: if post is listed on the home page and category pages (true, false) resources:
draft: if the page is a draft (true, false) - name: featuredImage
src: "Filename of the post's featured image, used as the card image and the image at the top of the article"
params:
description: "Description for the featured image, used as the alt text"
attribution:
name: "Name of person to attribute image to"
link: "optional URL to persons site"
--- ---
``` ```
The `displayInMenu` and `displayInList` parameters are used to determine where your content is displayed. Posts typically have displayInMenu set to false so that the post is not a menu option, and displayInList set to true so it shows up on the homepage's list of posts and in category page lists. An About Me page, on the other hand, would have displayInMenu set to true and displayInList set to false. That will allow the About Me page to be accessible from the menu but not displayed in the homepage's list of posts. The `displayInMenu` and `displayInList` parameters are used to determine where your content is displayed. Posts typically have displayInMenu set to false so that the post is not a menu option, and displayInList set to true so it shows up on the homepage's list of posts and in category page lists. An About Me page, on the other hand, would have displayInMenu set to true and displayInList set to false. That will allow the About Me page to be accessible from the menu but not displayed in the homepage's list of posts.
The `categories` parameter is used to group similar posts in category pages. Category pages are accessible from the menu and list all posts with the same category. The `categories` parameter is used to group similar posts in category pages. Category pages are accessible from the menu and list all posts within the same category.
The `dropCap` parameter is used to determine if the first letter of a post should be a dropped capital. A dropped capital letter is the large decorative letter at the beginning of a book or section. The `dropCap` parameter is used to determine if the first letter of a post should be a dropped capital. A dropped capital letter is the large decorative letter at the beginning of a book or section.
Add an interesting description and a good image to each post to get the most value from this theme. Add an interesting description and a good image to each post to get the most value from this theme.
Aether takes advantage of [page bundles](https://gohugo.io/content-management/page-bundles/) to optimize your images for your site. This may require you to update the way your content is structured, also see [content organization](https://gohugo.io/content-management/organization/). Use the `image` and `smallimg` shortcodes to take full advantage of image optimization. Aether takes advantage of [page bundles](https://gohugo.io/content-management/page-bundles/) to optimize your images for your site. This may require you to update the way your content is structured, also see [content organization](https://gohugo.io/content-management/organization/). Use the `image` and `smallimg` shortcodes to take full advantage of image optimization. Also, the `featuredImage` resource must exist in the post's page bundle.
Posts are written in markdown and LaTeX (for math symbols and equations). You can find tons of information on how to format your posts with markdown and LaTeX on the web. Posts are written in markdown. You can find how to write in markdown from this [markdown cheatsheet](https://github.com/adam-p/markdown-here/wiki/Markdown-Cheatsheet).
### Further Customization ### Further Customization
To change the heading and subtext at the top of list pages just add a \_index.md file in the folder that the list page is generated from. For example to change the heading at the top of the homepage, add an \_index.md file to the content folder with the following parameters. To change the heading and subtext at the top of list pages just add a \_index.md file in the folder that the list page is generated from. For example to change the heading at the top of the homepage, add an \_index.md file to the content folder with the following parameters.

View File

@@ -9,6 +9,8 @@ draft: false
resources: resources:
- name: featuredImage - name: featuredImage
src: "nyc.jpg" src: "nyc.jpg"
params:
description: "The New York City skyline"
--- ---

View File

@@ -15,11 +15,12 @@ categories = [
"Development", "Development",
"golang", "golang",
] ]
[[resources]] [resources]
name = "featuredImage" name = "featuredImage"
src = "lucas-benjamin-565254-unsplash.jpg" src = "lucas-benjamin-565254-unsplash.jpg"
[resources.params]
description = "Alt description for the featured image" [resources.params]
description = "A jellyfish with neon colors with a dark background"
+++ +++
Hugo uses the excellent [Go][] [html/template][gohtmltemplate] library for Hugo uses the excellent [Go][] [html/template][gohtmltemplate] library for

View File

@@ -15,9 +15,12 @@ categories = [
"Development", "Development",
"golang", "golang",
] ]
[[resources]] [resources]
name = "featuredImage" name = "featuredImage"
src = "andrew-neel-609846-unsplash.jpg" src = "andrew-neel-609846-unsplash.jpg"
[resources.params]
description = "A person sitting on a hardwood floor on their laptop"
+++ +++
## Step 1. Install Hugo ## Step 1. Install Hugo

View File

@@ -7,6 +7,8 @@ title: Migrate to Hugo from Jekyll
resources: resources:
- name: featuredImage - name: featuredImage
src: "yan-ots-257617-unsplash.jpg" src: "yan-ots-257617-unsplash.jpg"
params:
description: "Colorful buildings alongside a body of water"
--- ---
## Move static content to `static` ## Move static content to `static`

View File

@@ -0,0 +1,22 @@
<!DOCTYPE html>
<html lang="{{ .Site.LanguageCode }}" dir="ltr">
{{ partial "head.html" . }}
<body class="single-body">
{{ partial "nav-bar.html" . }}
<main class="content side-text-padding">
<article class="post {{ if ne .Params.dropcap false }}dropcase{{ end }}">
<header class="post-header">
<h1 class="post-title">{{ .Title }}</h1>
</header>
<img src="https://http.cat/404.jpg" />
<h2 id="title"><a href="{{ "/" | relURL }}">Go Home</a></h2>
</article>
{{ template "_internal/disqus.html" . }}
</main>
<nav class="end-nav side-padding">
</nav>
{{ partial "footer.html" . }}
{{ partial "scripts.html" . }}
</body>
</html>

View File

@@ -5,9 +5,9 @@
{{ partial "nav-bar.html" . }} {{ partial "nav-bar.html" . }}
<main class="card-container side-gutter"> <main class="card-container side-gutter">
{{ if or (not (eq .Description "")) (not (eq .Title "")) -}} {{ if or (not (eq .Description "")) (not (eq .Title "")) -}}
<header class="home-header" style="background-image: url('{{ "img/home-blob.svg" | absURL }}');"> <header class="home-header">
<div class="home-blob-text-container"> <div class="home-blob-text-container">
{{ with .Title }}<h1 class="home-blob-title">{{ . }}</h1>{{ end }} {{ with .Title }}<h1 class="home-blob-title">{{ . | markdownify }}</h1>{{ end }}
{{ with .Description }}<p class="home-blob-text">{{ . }}</p>{{ end }} {{ with .Description }}<p class="home-blob-text">{{ . }}</p>{{ end }}
</div> </div>
{{ with resources.GetMatch .Site.Params.headshotimg -}} {{ with resources.GetMatch .Site.Params.headshotimg -}}
@@ -17,7 +17,7 @@
{{ $faceshot_x2 := .Resize "544x Lanczos" }} {{ $faceshot_x2 := .Resize "544x Lanczos" }}
{{ $faceshot_x3 := .Resize "816x Lanczos" }} {{ $faceshot_x3 := .Resize "816x Lanczos" }}
<source srcset="{{ $faceshot.Permalink }} 1x, {{ $faceshot_x2.Permalink }} 2x, {{ $faceshot_x3.Permalink }} 3x"> <source srcset="{{ $faceshot.Permalink }} 1x, {{ $faceshot_x2.Permalink }} 2x, {{ $faceshot_x3.Permalink }} 3x">
<img class="home-faceshot" src="{{ $faceshot.Permalink }}" {{ with .Params.description -}} alt="{{ . }}" {{- end }}> <img class="home-faceshot" src="{{ $faceshot.Permalink }}" {{ with $.Site.Params.headshotalt -}} alt="{{ . }}" {{- end }}>
</picture> </picture>
</div> </div>
{{ end -}} {{ end -}}

View File

@@ -2,7 +2,7 @@
href="{{ .Permalink }}" class="card blog-card bc-next" rel="bookmark" > href="{{ .Permalink }}" class="card blog-card bc-next" rel="bookmark" >
{{ with .Resources.GetMatch "featuredImage" }} {{ with .Resources.GetMatch "featuredImage" }}
<div class="card-img-container"> <div class="card-img-container">
<p class="card-img-overlay">Next Article</p> <p class="card-img-overlay">下一篇文章</p>
<picture> <picture>
{{ $thumbnail := .Resize "400x Lanczos" }} {{ $thumbnail := .Resize "400x Lanczos" }}
{{ $thumbnail_2 := .Resize "800x Lanczos" }} {{ $thumbnail_2 := .Resize "800x Lanczos" }}
@@ -13,10 +13,10 @@
</div> </div>
{{ end }} {{ end }}
<article class="card-body"> <article class="card-body">
<h2 class="card-title">{{ .Title }}</h2> <h2 class="card-title">{{ .Title | markdownify }}</h2>
<p class="card-text">{{ if (isset .Params "description") }}{{ index .Params "description" | htmlUnescape }}{{ else }}{{ .Summary | plainify | htmlUnescape }}{{ end }}</p> <p class="card-text">{{ if (isset .Params "description") }}{{ index .Params "description" | htmlUnescape }}{{ else }}{{ .Summary | plainify | htmlUnescape }}{{ end }}</p>
<div class="card-subtext muted-text"> <div class="card-subtext muted-text">
<p>Posted <time datetime="{{ .PublishDate.Format "2006-01-02 12:00" }}">{{ .PublishDate.Format "Jan 2, 2006" }}</time></p> <p>发布于<time datetime="{{ .Date.Format "2006-01-02" }}">{{ .Date.Format "2006年1月2日" }}</time></p>
{{ if (isset .Params "categories") }}<p>{{ range .Params.categories }}#{{ . }} {{ end }}</p>{{ end }} {{ if (isset .Params "categories") }}<p>{{ range .Params.categories }}#{{ . }} {{ end }}</p>{{ end }}
</div> </div>
</article> </article>

View File

@@ -12,10 +12,10 @@
</div> </div>
{{- end }} {{- end }}
<article class="card-body"> <article class="card-body">
<h2 class="card-title">{{ .Title }}</h2> <h2 class="card-title">{{ .Title | markdownify }}</h2>
<p class="card-text">{{ if (isset .Params "description") }}{{ index .Params "description" | htmlUnescape }}{{ else }}{{ .Summary | plainify | htmlUnescape }}{{ end }}</p> <p class="card-text">{{ if (isset .Params "description") }}{{ index .Params "description" | htmlUnescape }}{{ else }}{{ .Summary | plainify | htmlUnescape }}{{ end }}</p>
<div class="card-subtext muted-text"> <div class="card-subtext muted-text">
<p>Posted <time datetime="{{ .Date.Format "2006-01-02" }}">{{ .Date.Format "Jan 2, 2006" }}</time></p> <p>发布于<time datetime="{{ .Date.Format "2006-01-02" }}">{{ .Date.Format "2006年1月2日" }}</time></p>
{{ if (isset .Params "categories") }}<p>{{ range .Params.categories }}#{{ . | urlize | title }} {{ end }}</p>{{ end }} {{ if (isset .Params "categories") }}<p>{{ range .Params.categories }}#{{ . | urlize | title }} {{ end }}</p>{{ end }}
</div> </div>
</article> </article>

View File

@@ -6,7 +6,7 @@
<main class="card-container side-gutter"> <main class="card-container side-gutter">
{{ if or (not (eq .Description "")) (not (eq .Title "")) -}} {{ if or (not (eq .Description "")) (not (eq .Title "")) -}}
<header class="list-header"> <header class="list-header">
{{ with .Title }}<h1 class="list-header-title">{{ . }}</h1>{{ end }} {{ with .Title | markdownify }}<h1 class="list-header-title">{{ . }}</h1>{{ end }}
{{ with .Description }}<p class="list-header-subtext">{{ . }}</p>{{ end }} {{ with .Description }}<p class="list-header-subtext">{{ . }}</p>{{ end }}
</header> </header>
{{- end }} {{- end }}

View File

@@ -7,7 +7,7 @@
<article class="post {{ if ne .Params.dropcap false }}dropcase{{ end }}"> <article class="post {{ if ne .Params.dropcap false }}dropcase{{ end }}">
<header class="post-header"> <header class="post-header">
<h1 class="post-title">{{ .Title }}</h1> <h1 class="post-title">{{ .Title }}</h1>
{{ if isset .Params "date" }}<p class="post-date">Posted <time datetime="{{ .Date.Format "2006-01-02" }}">{{ .Date.Format "Jan 2, 2006" }}</time></p>{{ end }} {{ if isset .Params "date" }}<p class="post-date">发布于<time datetime="{{ .Date.Format "2006-01-02" }}">{{ .Date.Format "2006年1月2日" }}</time></p>{{ end }}
</header> </header>
{{ with .Resources.GetMatch "featuredImage" -}} {{ with .Resources.GetMatch "featuredImage" -}}
<picture class="post-figure"> <picture class="post-figure">
@@ -26,7 +26,7 @@
{{- end }} {{- end }}
{{- end }} {{- end }}
{{ if .Params.toc -}} {{ if .Params.toc -}}
<h2>Contents</h2> <h2>目录</h2>
{{ .TableOfContents }} {{ .TableOfContents }}
{{- end }} {{- end }}
{{ .Content }} {{ .Content }}

View File

@@ -1,21 +1,106 @@
<footer class="side-padding" style="background-image: url('{{ "img/home-blob-flip.svg" | absURL }}');"> <footer class="side-padding" style="background-image: url('{{ "img/home-blob-flip.svg" | absURL }}');">
<a href="{{ $.Site.BaseURL }}" class="footer-link"> <a href="{{ $.Site.BaseURL }}" class="footer-link">
{{ with resources.Get "icons/home-page.png" }} {{ with resources.GetMatch .Site.Params.homeimg -}}
<img class="footer-icon" src="{{ .Permalink }}" alt="Home"> {{ $homeButton := .Resize "990x Lanczos" }}
<img class="footer-home-icon" src="{{ $homeButton.Permalink }}" alt="Home">
{{ end }} {{ end }}
</a> </a>
{{ if isset $.Site.Params "facebook"}}
<a href="{{ $.Site.Params.facebook }}" class="footer-link" target="_blank" rel="noopener noreferrer">
{{ with resources.Get "icons/facebook.svg" }}
<img class="footer-icon" src="{{ .Permalink }}" alt="Facebook" target="_blank" rel=" noreferrer"/>
{{ end }}
</a>
{{ end }}
{{ if isset $.Site.Params "flicker"}}
<a href="{{ $.Site.Params.flicker }}" class="footer-link" target="_blank" rel="noopener noreferrer">
{{ with resources.Get "icons/flicker.svg" }}
<img class="footer-icon" src="{{ .Permalink }}" alt="Flicker"/>
{{ end }}
</a>
{{ end }}
{{ if isset $.Site.Params "github"}} {{ if isset $.Site.Params "github"}}
<a href="{{ $.Site.Params.github }}" class="footer-link"> <a href="{{ $.Site.Params.github }}" class="footer-link" target="_blank" rel="noopener noreferrer">
{{ with resources.Get "icons/github.png" }} {{ with resources.Get "icons/github.svg" }}
<img class="footer-icon" src="{{ .Permalink }}" alt="GitHub"/> <img class="footer-icon" src="{{ .Permalink }}" alt="GitHub"/>
{{ end }} {{ end }}
</a> </a>
{{ end }} {{ end }}
{{ if isset $.Site.Params "instagram"}}
<a href="{{ $.Site.Params.instagram }}" class="footer-link" target="_blank" rel="noopener noreferrer">
{{ with resources.Get "icons/instagram.svg" }}
<img class="footer-icon" src="{{ .Permalink }}" alt="Instagram"/>
{{ end }}
</a>
{{ end }}
{{ if isset $.Site.Params "linkedin"}} {{ if isset $.Site.Params "linkedin"}}
<a href="{{ $.Site.Params.linkedin }}" class="footer-link"> <a href="{{ $.Site.Params.linkedin }}" class="footer-link" target="_blank" rel="noopener noreferrer">
{{ with resources.Get "icons/linkedin.png" }} {{ with resources.Get "icons/linkedin.svg" }}
<img class="footer-icon" src="{{ .Permalink }}" alt="LinkedIn"/> <img class="footer-icon" src="{{ .Permalink }}" alt="LinkedIn"/>
{{ end }} {{ end }}
</a> </a>
{{ end }} {{ end }}
{{ if isset $.Site.Params "patreon"}}
<a href="{{ $.Site.Params.patreon }}" class="footer-link" target="_blank" rel="noopener noreferrer">
{{ with resources.Get "icons/patreon.svg" }}
<img class="footer-icon" src="{{ .Permalink }}" alt="Patreon"/>
{{ end }}
</a>
{{ end }}
{{ if eq .Site.Params.rssinmenu true -}}
<a href="{{ "/index.xml" | absURL }}" class="footer-link" target="_blank" rel="noopener noreferrer">
{{ with resources.Get "icons/rss.svg" }}
<img class="footer-icon" src="{{ .Permalink }}" alt="RSS"/>
{{ end }}
</a>
{{ end }}
{{ if isset $.Site.Params "soundcloud"}}
<a href="{{ $.Site.Params.soundcloud }}" class="footer-link" target="_blank" rel="noopener noreferrer">
{{ with resources.Get "icons/soundcloud.svg" }}
<img class="footer-icon" src="{{ .Permalink }}" alt="Soundcloud"/>
{{ end }}
</a>
{{ end }}
{{ if isset $.Site.Params "spotify"}}
<a href="{{ $.Site.Params.spotify }}" class="footer-link" target="_blank" rel="noopener noreferrer">
{{ with resources.Get "icons/spotify.svg" }}
<img class="footer-icon" src="{{ .Permalink }}" alt="Spotify"/>
{{ end }}
</a>
{{ end }}
{{ if isset $.Site.Params "tumblr"}}
<a href="{{ $.Site.Params.tumblr }}" class="footer-link" target="_blank" rel="noopener noreferrer">
{{ with resources.Get "icons/tumblr.svg" }}
<img class="footer-icon" src="{{ .Permalink }}" alt="Tumblr"/>
{{ end }}
</a>
{{ end }}
{{ if isset $.Site.Params "twitch"}}
<a href="{{ $.Site.Params.twitch }}" class="footer-link" target="_blank" rel="noopener noreferrer">
{{ with resources.Get "icons/twitch.svg" }}
<img class="footer-icon" src="{{ .Permalink }}" alt="Twitch"/>
{{ end }}
</a>
{{ end }}
{{ if isset $.Site.Params "twitter"}}
<a href="{{ $.Site.Params.twitter }}" class="footer-link" target="_blank" rel="noopener noreferrer">
{{ with resources.Get "icons/twitter.svg" }}
<img class="footer-icon" src="{{ .Permalink }}" alt="Twitter"/>
{{ end }}
</a>
{{ end }}
{{ if isset $.Site.Params "vimeo"}}
<a href="{{ $.Site.Params.vimeo }}" class="footer-link" target="_blank" rel="noopener noreferrer">
{{ with resources.Get "icons/vimeo.svg" }}
<img class="footer-icon" src="{{ .Permalink }}" alt="Vimeo"/>
{{ end }}
</a>
{{ end }}
{{ if isset $.Site.Params "youtube"}}
<a href="{{ $.Site.Params.youtube }}" class="footer-link" target="_blank" rel="noopener noreferrer">
{{ with resources.Get "icons/youtube.svg" }}
<img class="footer-icon" src="{{ .Permalink }}" alt="Youtube"/>
{{ end }}
</a>
{{ end }}
</footer> </footer>

View File

@@ -22,7 +22,7 @@
{{ if (fileExists "layouts/partials/meta-tags.html") -}} {{ if (fileExists "layouts/partials/meta-tags.html") -}}
{{ partial "meta-tags.html" . }} {{ partial "meta-tags.html" . }}
{{ end -}} {{ end -}}
{{ with resources.Get "css/katex.css" -}} {{ with resources.Get "css/katex.min.css" -}}
<link href="{{ .Permalink }}" rel="stylesheet"> <link href="{{ .Permalink }}" rel="stylesheet">
{{ end -}} {{ end -}}
{{ $normalizeStyle := resources.Get "css/normalize.css" }} {{ $normalizeStyle := resources.Get "css/normalize.css" }}

View File

@@ -1,4 +0,0 @@
<a ontouchstart="cardPressed.call(this)" ontouchend="cardReleased.call(this)" ontouchmove="cardReleased.call(this)"
href="{{ .Site.BaseURL }}" class="card home-card" style="background-image: url({{if isset .Site.Params "homeimg"}} {{ (resources.Get .Site.Params.homeimg).Permalink | safeCSS }} {{ else }} {{ (resources.Get "img/grey-cloud.jpg").Permalink | safeCSS }} {{ end }})" rel="bookmark" >
Home
</a>

View File

@@ -1,7 +1,7 @@
{{ with resources.Get "js/katex.js" }} {{ with resources.Get "js/katex.min.js" }}
<script defer src="{{ .Permalink }}"></script> <script defer src="{{ .Permalink }}"></script>
{{ end }} {{ end }}
{{ with resources.Get "js/auto-render.js" }} {{ with resources.Get "js/auto-render.min.js" }}
<script defer src="{{ .Permalink }}" onload="renderMathInElement(document.body);"></script> <script defer src="{{ .Permalink }}" onload="renderMathInElement(document.body);"></script>
{{ end }} {{ end }}
{{ $corejs := resources.Get "js/core.js" | minify }} {{ $corejs := resources.Get "js/core.js" | minify }}