Tim J. Kicker
2 years ago
47 changed files with 5700 additions and 0 deletions
-
7.github/dependabot.yml
-
8.gitignore
-
0_config.landscape.yml
-
105_config.yml
-
2453package-lock.json
-
26package.json
-
4scaffolds/draft.md
-
4scaffolds/page.md
-
5scaffolds/post.md
-
38source/_posts/hello-world.md
-
0themes/.gitkeep
-
113themes/minima/.gitignore
-
21themes/minima/LICENSE
-
44themes/minima/README.md
-
53themes/minima/_config.yml
-
23themes/minima/layout/archive.ejs
-
30themes/minima/layout/index.ejs
-
142themes/minima/layout/layout.ejs
-
3themes/minima/layout/page.ejs
-
33themes/minima/layout/partial/comments.ejs
-
41themes/minima/layout/partial/footer.ejs
-
16themes/minima/layout/partial/google_analytics.ejs
-
54themes/minima/layout/partial/header.ejs
-
26themes/minima/layout/partial/pagination.ejs
-
40themes/minima/layout/partial/tcolor.ejs
-
5themes/minima/layout/post.ejs
-
35themes/minima/layout/tag.ejs
-
319themes/minima/source/css/custom.css
-
351themes/minima/source/css/normalize.css
-
289themes/minima/source/css/prism-dark.css
-
39themes/minima/source/css/prism-line-numbers.css
-
617themes/minima/source/css/skeleton.css
-
BINthemes/minima/source/fonts/dm-serif-display-v4-latin-regular.eot
-
404themes/minima/source/fonts/dm-serif-display-v4-latin-regular.svg
-
BINthemes/minima/source/fonts/dm-serif-display-v4-latin-regular.ttf
-
BINthemes/minima/source/fonts/dm-serif-display-v4-latin-regular.woff
-
BINthemes/minima/source/fonts/dm-serif-display-v4-latin-regular.woff2
-
BINthemes/minima/source/fonts/inter-v2-latin-regular.eot
-
351themes/minima/source/fonts/inter-v2-latin-regular.svg
-
BINthemes/minima/source/fonts/inter-v2-latin-regular.ttf
-
BINthemes/minima/source/fonts/inter-v2-latin-regular.woff
-
BINthemes/minima/source/fonts/inter-v2-latin-regular.woff2
-
BINthemes/minima/source/images/epic-smiley.jpg
-
BINthemes/minima/source/images/favicon.png
-
BINthemes/minima/source/images/teddy-bear-apple.webp
-
BINthemes/minima/source/images/thumbnail.jpg
-
1themes/minima/source/js/nanobar.min.js
@ -0,0 +1,7 @@ |
|||
version: 2 |
|||
updates: |
|||
- package-ecosystem: npm |
|||
directory: "/" |
|||
schedule: |
|||
interval: daily |
|||
open-pull-requests-limit: 20 |
@ -0,0 +1,8 @@ |
|||
.DS_Store |
|||
Thumbs.db |
|||
db.json |
|||
*.log |
|||
node_modules/ |
|||
public/ |
|||
.deploy*/ |
|||
_multiconfig.yml |
@ -0,0 +1,105 @@ |
|||
# Hexo Configuration |
|||
## Docs: https://hexo.io/docs/configuration.html |
|||
## Source: https://github.com/hexojs/hexo/ |
|||
|
|||
# Site |
|||
title: Hexo |
|||
subtitle: '' |
|||
description: '' |
|||
keywords: |
|||
author: Tim Kicker |
|||
language: en |
|||
timezone: '' |
|||
|
|||
# URL |
|||
## Set your site url here. For example, if you use GitHub Page, set url as 'https://username.github.io/project' |
|||
url: https://tim.kicker.dev |
|||
permalink: :year/:month/:day/:title/ |
|||
permalink_defaults: |
|||
pretty_urls: |
|||
trailing_index: true # Set to false to remove trailing 'index.html' from permalinks |
|||
trailing_html: true # Set to false to remove trailing '.html' from permalinks |
|||
|
|||
# Directory |
|||
source_dir: source |
|||
public_dir: public |
|||
tag_dir: tags |
|||
archive_dir: archives |
|||
category_dir: categories |
|||
code_dir: downloads/code |
|||
i18n_dir: :lang |
|||
skip_render: |
|||
|
|||
# Writing |
|||
new_post_name: :title.md # File name of new posts |
|||
default_layout: post |
|||
titlecase: false # Transform title into titlecase |
|||
external_link: |
|||
enable: true # Open external links in new tab |
|||
field: site # Apply to the whole site |
|||
exclude: '' |
|||
filename_case: 0 |
|||
render_drafts: false |
|||
post_asset_folder: false |
|||
relative_link: false |
|||
future: true |
|||
highlight: |
|||
enable: true |
|||
line_number: true |
|||
auto_detect: false |
|||
tab_replace: '' |
|||
wrap: true |
|||
hljs: false |
|||
prismjs: |
|||
enable: false |
|||
preprocess: true |
|||
line_number: true |
|||
tab_replace: '' |
|||
|
|||
# Home page setting |
|||
# path: Root path for your blogs index page. (default = '') |
|||
# per_page: Posts displayed per page. (0 = disable pagination) |
|||
# order_by: Posts order. (Order by date descending by default) |
|||
index_generator: |
|||
path: '' |
|||
per_page: 10 |
|||
order_by: -date |
|||
|
|||
# Category & Tag |
|||
default_category: uncategorized |
|||
category_map: |
|||
tag_map: |
|||
|
|||
# Metadata elements |
|||
## https://developer.mozilla.org/en-US/docs/Web/HTML/Element/meta |
|||
meta_generator: true |
|||
|
|||
# Date / Time format |
|||
## Hexo uses Moment.js to parse and display date |
|||
## You can customize the date format as defined in |
|||
## http://momentjs.com/docs/#/displaying/format/ |
|||
date_format: YYYY-MM-DD |
|||
time_format: HH:mm:ss |
|||
## updated_option supports 'mtime', 'date', 'empty' |
|||
updated_option: 'mtime' |
|||
|
|||
# Pagination |
|||
## Set per_page to 0 to disable pagination |
|||
per_page: 10 |
|||
pagination_dir: page |
|||
|
|||
# Include / Exclude file(s) |
|||
## include:/exclude: options only apply to the 'source/' folder |
|||
include: |
|||
exclude: |
|||
ignore: |
|||
|
|||
# Extensions |
|||
## Plugins: https://hexo.io/plugins/ |
|||
## Themes: https://hexo.io/themes/ |
|||
theme: minima |
|||
|
|||
# Deployment |
|||
## Docs: https://hexo.io/docs/one-command-deployment |
|||
deploy: |
|||
type: '' |
2453
package-lock.json
File diff suppressed because it is too large
View File
File diff suppressed because it is too large
View File
@ -0,0 +1,26 @@ |
|||
{ |
|||
"name": "hexo-site", |
|||
"version": "0.0.0", |
|||
"private": true, |
|||
"scripts": { |
|||
"build": "hexo generate", |
|||
"clean": "hexo clean", |
|||
"deploy": "hexo deploy", |
|||
"server": "hexo server" |
|||
}, |
|||
"hexo": { |
|||
"version": "6.3.0" |
|||
}, |
|||
"dependencies": { |
|||
"hexo": "^6.3.0", |
|||
"hexo-generator-archive": "^2.0.0", |
|||
"hexo-generator-category": "^2.0.0", |
|||
"hexo-generator-index": "^3.0.0", |
|||
"hexo-generator-tag": "^2.0.0", |
|||
"hexo-renderer-ejs": "^2.0.0", |
|||
"hexo-renderer-marked": "^6.0.0", |
|||
"hexo-renderer-stylus": "^2.1.0", |
|||
"hexo-server": "^3.0.0", |
|||
"hexo-theme-landscape": "^1.0.0" |
|||
} |
|||
} |
@ -0,0 +1,4 @@ |
|||
--- |
|||
title: {{ title }} |
|||
tags: |
|||
--- |
@ -0,0 +1,4 @@ |
|||
--- |
|||
title: {{ title }} |
|||
date: {{ date }} |
|||
--- |
@ -0,0 +1,5 @@ |
|||
--- |
|||
title: {{ title }} |
|||
date: {{ date }} |
|||
tags: |
|||
--- |
@ -0,0 +1,38 @@ |
|||
--- |
|||
title: Hello World |
|||
--- |
|||
Welcome to [Hexo](https://hexo.io/)! This is your very first post. Check [documentation](https://hexo.io/docs/) for more info. If you get any problems when using Hexo, you can find the answer in [troubleshooting](https://hexo.io/docs/troubleshooting.html) or you can ask me on [GitHub](https://github.com/hexojs/hexo/issues). |
|||
|
|||
## Quick Start |
|||
|
|||
### Create a new post |
|||
|
|||
``` bash |
|||
$ hexo new "My New Post" |
|||
``` |
|||
|
|||
More info: [Writing](https://hexo.io/docs/writing.html) |
|||
|
|||
### Run server |
|||
|
|||
``` bash |
|||
$ hexo server |
|||
``` |
|||
|
|||
More info: [Server](https://hexo.io/docs/server.html) |
|||
|
|||
### Generate static files |
|||
|
|||
``` bash |
|||
$ hexo generate |
|||
``` |
|||
|
|||
More info: [Generating](https://hexo.io/docs/generating.html) |
|||
|
|||
### Deploy to remote sites |
|||
|
|||
``` bash |
|||
$ hexo deploy |
|||
``` |
|||
|
|||
More info: [Deployment](https://hexo.io/docs/one-command-deployment.html) |
@ -0,0 +1,113 @@ |
|||
# Logs |
|||
logs |
|||
*.log |
|||
npm-debug.log* |
|||
yarn-debug.log* |
|||
yarn-error.log* |
|||
lerna-debug.log* |
|||
|
|||
# Diagnostic reports (https://nodejs.org/api/report.html) |
|||
report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json |
|||
|
|||
# Runtime data |
|||
pids |
|||
*.pid |
|||
*.seed |
|||
*.pid.lock |
|||
|
|||
# Directory for instrumented libs generated by jscoverage/JSCover |
|||
lib-cov |
|||
|
|||
# Coverage directory used by tools like istanbul |
|||
coverage |
|||
*.lcov |
|||
|
|||
# nyc test coverage |
|||
.nyc_output |
|||
|
|||
# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files) |
|||
.grunt |
|||
|
|||
# Bower dependency directory (https://bower.io/) |
|||
bower_components |
|||
|
|||
# node-waf configuration |
|||
.lock-wscript |
|||
|
|||
# Compiled binary addons (https://nodejs.org/api/addons.html) |
|||
build/Release |
|||
|
|||
# Dependency directories |
|||
node_modules/ |
|||
jspm_packages/ |
|||
|
|||
# TypeScript v1 declaration files |
|||
typings/ |
|||
|
|||
# TypeScript cache |
|||
*.tsbuildinfo |
|||
|
|||
# Optional npm cache directory |
|||
.npm |
|||
|
|||
# Optional eslint cache |
|||
.eslintcache |
|||
|
|||
# Microbundle cache |
|||
.rpt2_cache/ |
|||
.rts2_cache_cjs/ |
|||
.rts2_cache_es/ |
|||
.rts2_cache_umd/ |
|||
|
|||
# Optional REPL history |
|||
.node_repl_history |
|||
|
|||
# Output of 'npm pack' |
|||
*.tgz |
|||
|
|||
# Yarn Integrity file |
|||
.yarn-integrity |
|||
|
|||
# dotenv environment variables file |
|||
.env |
|||
.env.test |
|||
|
|||
# parcel-bundler cache (https://parceljs.org/) |
|||
.cache |
|||
|
|||
# Next.js build output |
|||
.next |
|||
|
|||
# Nuxt.js build / generate output |
|||
.nuxt |
|||
dist |
|||
|
|||
# Gatsby files |
|||
.cache/ |
|||
# Comment in the public line in if your project uses Gatsby and *not* Next.js |
|||
# https://nextjs.org/blog/next-9-1#public-directory-support |
|||
# public |
|||
|
|||
# vuepress build output |
|||
.vuepress/dist |
|||
|
|||
# Serverless directories |
|||
.serverless/ |
|||
|
|||
# FuseBox cache |
|||
.fusebox/ |
|||
|
|||
# DynamoDB Local files |
|||
.dynamodb/ |
|||
|
|||
# TernJS port file |
|||
.tern-port |
|||
|
|||
.idea |
|||
.DS_Store |
|||
*.pyc |
|||
Thumbs.db |
|||
*/.DS_Store |
|||
*/.idea/ |
|||
okay-conf.js |
|||
.vscode/ |
@ -0,0 +1,21 @@ |
|||
MIT License |
|||
|
|||
Copyright (c) 2020 Adi Sakti Jrs |
|||
|
|||
Permission is hereby granted, free of charge, to any person obtaining a copy |
|||
of this software and associated documentation files (the "Software"), to deal |
|||
in the Software without restriction, including without limitation the rights |
|||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell |
|||
copies of the Software, and to permit persons to whom the Software is |
|||
furnished to do so, subject to the following conditions: |
|||
|
|||
The above copyright notice and this permission notice shall be included in all |
|||
copies or substantial portions of the Software. |
|||
|
|||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR |
|||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, |
|||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE |
|||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER |
|||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, |
|||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE |
|||
SOFTWARE. |
@ -0,0 +1,44 @@ |
|||
# Minima |
|||
An undoubtedly simple and lightweight dark/light mode theme for Hexo. |
|||
|
|||
![Minima preview, device image by Freepik](https://adisaktijrs.github.io/2020/10/11/Hexo-Minima-Theme-v1-0-Officially-Released/minima.jpg) |
|||
|
|||
- See the demo [here](https://adisaktijrs.github.io/minima) |
|||
- See the quick start instruction and documentation [here](https://adisaktijrs.github.io/2020/10/11/Hexo-Minima-Theme-v1-0-Officially-Released/) |
|||
|
|||
## About Minima |
|||
Minima is an undoubtedly simple and lightweight dark/light mode theme for Hexo. I created this from scratch using [Skeleton CSS](http://getskeleton.com/) boilerplate. It only uses CSS and Vanilla JS, without using unnecessary third-party 'render-blocking' libraries. |
|||
|
|||
### Simplicity |
|||
Simplicity is a must! When I decided to move to Hexo for my personal blogging platform, the main reason was to find a simple and clean design, no fancy looks, unnecessary images and colors either. I'd like to have a blog that focuses on the content of my posts rather than turning readers attention to a 'cluttered' user interface. I found lots of beautiful themes on the Hexo themes page, but finally I decided to make my own. |
|||
|
|||
### Lightweight |
|||
This 'lightweight' means the theme uses as few design stuff as possible. Fewer JavaScript and CSS files. Minima only uses Skeleton for the CSS-boilerplate and [nanobar.js](https://nanobar.jacoborus.codes/) for the top loading bar. The following is the 'gross' performance of my blog with the Minima theme: |
|||
|
|||
![](https://adisaktijrs.github.io/2020/10/11/Hexo-Minima-Theme-v1-0-Officially-Released/Screenshot.png) |
|||
|
|||
### Customization |
|||
Minima uses vanilla JavaScript, vanilla CSS, and [EJS](https://ejs.co/). So it will be very easy for everyone to edit and customize the theme. |
|||
|
|||
## Features |
|||
- Pass the core of [Hexo Theme Unit Test](https://github.com/hexojs/hexo-theme-unit-test) |
|||
- Fully responsive design |
|||
- Support post, page, tags, archives, and pagination |
|||
- SEO: post meta description and images (appears in Facebook/Twitter shared-link) |
|||
- [Customizable] icon Dark/light mode instant switch ๐/โ๏ธ |
|||
- [Customizable] theme color |
|||
- Code highlighting with [Prism.js](https://prismjs.com/) |
|||
- [Disqus](https://disqus.com/) for post comments |
|||
- Show comments section button for faster posts loading |
|||
|
|||
## Documentation |
|||
See the quick start instruction and [documentation here](https://adisaktijrs.github.io/2020/10/11/Hexo-Minima-Theme-v1-0-Officially-Released/#Documentation) |
|||
|
|||
## Development |
|||
Everyone is welcome to contribute! Go ahead, fork and make pull request ๐ |
|||
|
|||
## Credit |
|||
Big thanks to [@pduchnovsky](https://github.com/pduchnovsky) and [yukimuon](https://github.com/yukimuon) to help me making this theme even better! |
|||
|
|||
## Licence |
|||
Minima is released under [MIT License](https://github.com/adisaktijrs/hexo-theme-minima/blob/master/LICENSE). Copyright ยฉ 2020 Adi Sakti Jrs |
@ -0,0 +1,53 @@ |
|||
#title in header |
|||
title: "Hello World." |
|||
|
|||
#main info |
|||
#owner |
|||
owner: "I am Tim J. Kicker" |
|||
email: [email protected] |
|||
info: "A student and developer from Austria ๐ฆ๐น" |
|||
#description |
|||
desc: "This is Minima, an undoubtedly simple and lightweight dark/light mode theme for Hexo. I created this from scratch using Skeleton CSS boilerplate. It only uses CSS and Vanilla JS, without using unnecessary third-party 'render-blocking' libraries! ๐" |
|||
|
|||
#menu |
|||
menu: |
|||
Blog: /archives |
|||
About: /About |
|||
|
|||
#index/main page max show posts (in number) |
|||
max_post: 4 |
|||
|
|||
# Colors use hex color without # |
|||
# Theme color |
|||
tcolor: 0FA0CE |
|||
|
|||
# Define path to user css |
|||
#(could be also located outside of theme) |
|||
# Relative to source/ directory |
|||
usercss: css/user.css |
|||
|
|||
# social profile at the footer/bottom |
|||
footer: true |
|||
placename: Earth |
|||
placelink: https://en.wikipedia.org/wiki/Earth |
|||
github: https://github.com/timkicker |
|||
linkedin: https://www.linkedin.com/in/tim-kicker-5438b1237/ |
|||
#twitter: https://twitter.com/adisaktijrs |
|||
#instagram: https://instagram.com/adisaktijrs |
|||
|
|||
# Misc |
|||
nanobar: /js/nanobar.min.js |
|||
switch_light: โ๏ธ |
|||
switch_dark: ๐ |
|||
|
|||
# favicon |
|||
favicon: /images/teddy-bear-apple.webp |
|||
# thumbnail |
|||
thumbnail: /images/teddy-bear-apple.webp |
|||
|
|||
article: |
|||
thumbnail: true |
|||
|
|||
# DISQUS comments (sign up to Disqus to get disqus_shortname) |
|||
disqus_enabled: false |
|||
disqus_shortname: https-tim-kicker |
@ -0,0 +1,23 @@ |
|||
|
|||
<h2>All Posts</h2> |
|||
|
|||
<% page.posts.each(function(post) { %> |
|||
<article> |
|||
<div class="row"> |
|||
|
|||
<div class="three columns left lit"> |
|||
<p class="bottom"><%- full_date(post.date, 'll') %></p> |
|||
</div> |
|||
<div class="nine columns left mb-3"> |
|||
<a href="<%- url_for(post.path) %>" class=""> |
|||
<% if (post.title == "") { %> |
|||
no title |
|||
<% } else { %> |
|||
<%- post.title %> |
|||
<% } %> |
|||
</a> |
|||
</div> |
|||
</div> |
|||
</article> |
|||
<% }) %> |
|||
<%- partial('partial/pagination', {type: 'page'}) %> |
@ -0,0 +1,30 @@ |
|||
<div class="row"> |
|||
<div class="column"> |
|||
<!-- Main information, edit it on theme/_config.yml --> |
|||
<h2 class="mb-2"><%= theme.owner %></h2> |
|||
<p><%= theme.info %></p> |
|||
<p><%= theme.desc %></p> |
|||
</div> |
|||
</div> |
|||
|
|||
<h3>Recent Posts</h3> |
|||
|
|||
<% site.posts.sort('date', 'desc').limit(theme.max_post).forEach(function(post){ %> |
|||
<div class="row"> |
|||
|
|||
<div class="three columns left lit"> |
|||
<p class="bottom"><%- full_date(post.date, 'll') %></p> |
|||
</div> |
|||
<div class="nine columns left mb-3"> |
|||
<a href="<%- url_for(post.path) %>" > |
|||
<% if (post.title == "") { %> |
|||
no title |
|||
<% } else { %> |
|||
<%- post.title %> |
|||
<% } %> |
|||
</a> |
|||
</div> |
|||
</div> |
|||
<% }) %> |
|||
|
|||
<h4> <a href="<%= config.root %>archives">All Posts</a></h4> |
@ -0,0 +1,142 @@ |
|||
<!DOCTYPE html> |
|||
<html lang="en"> |
|||
|
|||
<head> |
|||
|
|||
<!-- Minima --> |
|||
<!-- Hexo theme created by @adisaktijrs --> |
|||
|
|||
<!-- Basic Page Needs |
|||
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ --> |
|||
<meta charset="utf-8"> |
|||
|
|||
<% |
|||
if (!config.author) { |
|||
config.author = "" |
|||
} |
|||
|
|||
var title = title = config.title; |
|||
if (is_archive()){ |
|||
title = 'All Posts - ' + config.author; |
|||
} else if (is_post()){ |
|||
title = page.title; |
|||
} else if (is_page()){ |
|||
title = page.title + ' - ' + config.author; |
|||
} else if (is_tag()){ |
|||
title = 'Posts Related to ' + page.tag; |
|||
} |
|||
%> |
|||
<title><%= title %></title> |
|||
<% if (config.sitemap) { %> |
|||
<link rel="sitemap" href="<%-config.url + config.sitemap.path %>" /> |
|||
<% } %> |
|||
<link rel="canonical" href="<%= url.replace(/index\.html$/, '').replace(/index\.html$/, '') %>"> |
|||
<% if (is_page()){ %> |
|||
<meta name="description" content="<%= page.description %>"> |
|||
<% } else if (page.content){ %> |
|||
<meta name="description" content="<%= strip_html(page.content).replace(/\n/g, " ").replace(/^\s*/, '').replace(/\s*$/, '').substring(0, 150) %>"> |
|||
<% } else { %> |
|||
<meta name="description" content="<%= config.description %>"> |
|||
<% } %> |
|||
<% if (config.keywords) { %> |
|||
<meta name="keywords" content="<%= config.keywords %>"> |
|||
<% } %> |
|||
<meta name="author" content="<%- config.author %>"> |
|||
<% if (is_post() || is_page()) { %> |
|||
<meta property="og:image" content="<%-config.url + page.thumbnail %>"> |
|||
<% } else { %> |
|||
<meta property="og:image" content="<%-config.url + theme.thumbnail %>"> |
|||
<% } %> |
|||
<meta property="og:site_name" content="<%= config.title %>" /> |
|||
<meta property="og:type" content="article" /> |
|||
<meta property="og:title" content="<%= title %>" /> |
|||
<% if (is_page()){ %> |
|||
<meta property="og:description" content="<%= page.description %>"> |
|||
<% } else if (page.content){ %> |
|||
<meta property="og:description" content="<%= strip_html(page.content).replace(/\n/g, " ").replace(/^\s*/, '').replace(/\s*$/, '').substring(0, 150) %>"> |
|||
<% } else { %> |
|||
<meta property="og:description" content="<%= config.description %>"> |
|||
<% } %> |
|||
<meta property="og:url" content="<%= url.replace(/index\.html$/, '').replace(/index\.html$/, '') %>" /> |
|||
|
|||
<meta name="twitter:card" content="summary_large_image"> |
|||
<meta name="twitter:title" content="<%= title %>"> |
|||
<% if (is_page()){ %> |
|||
<meta name="twitter:description" content="<%= page.description %>"> |
|||
<% } else if (page.content){ %> |
|||
<meta name="twitter:description" content="<%= strip_html(page.content).replace(/\n/g, " ").replace(/^\s*/, '').replace(/\s*$/, '').substring(0, 150) %>"> |
|||
<% } else { %> |
|||
<meta name="twitter:description" content="<%= config.description %>"> |
|||
<% } %> |
|||
<% if (is_post() || is_page()) { %> |
|||
<meta name="twitter:image" content="<%-config.url + page.thumbnail %>"> |
|||
<% } else { %> |
|||
<meta name="twitter:image" content="<%-config.url + theme.thumbnail %>"> |
|||
<% } %> |
|||
<meta name="twitter:url" content="<%= url.replace(/index\.html$/, '').replace(/index\.html$/, '') %>" /> |
|||
|
|||
<!-- Mobile Specific Metas |
|||
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ --> |
|||
<meta name="viewport" content="width=device-width, initial-scale=1"> |
|||
|
|||
<!-- Preload fonts |
|||
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ --> |
|||
<link rel="preload" href="../fonts/dm-serif-display-v4-latin-regular.woff2" as="font" type="font/woff2" crossorigin> |
|||
<link rel="preload" href="../fonts/inter-v2-latin-regular.woff2" as="font" type="font/woff2" crossorigin> |
|||
|
|||
<!-- CSS |
|||
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ --> |
|||
<%- css('css/normalize.css') %> |
|||
<%- css('css/skeleton.css') %> |
|||
<%- css('css/custom.css') %> |
|||
<%- css('css/prism-dark.css') %> |
|||
<%- css('css/prism-line-numbers.css') %> |
|||
<!-- User css --> |
|||
<% if (theme.usercss) { %> |
|||
<%- css(theme.usercss) %> |
|||
<% } %> |
|||
|
|||
<!-- Favicon |
|||
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ --> |
|||
<link rel="icon" type="image/png" href="<%- theme.favicon %>"> |
|||
|
|||
<!-- Custom Theme Color Style |
|||
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ --> |
|||
<%- partial('partial/tcolor') %> |
|||
|
|||
<!-- Google Analytics (With Privacy Settings On) |
|||
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ --> |
|||
<%- partial('partial/google_analytics') %> |
|||
|
|||
</head> |
|||
|
|||
<body> |
|||
<div class="container"> |
|||
<div class="row"> |
|||
<div> |
|||
|
|||
<%- partial('partial/header') %> |
|||
<div class="trans"> |
|||
<%- body %> |
|||
<%- partial('partial/footer') %> |
|||
</div> |
|||
</div> |
|||
|
|||
</div> |
|||
|
|||
</div> |
|||
<script src="<%- theme.nanobar %>"></script> |
|||
<script> |
|||
var options = { |
|||
classname: 'nanobar', |
|||
id: 'myNanobar' |
|||
}; |
|||
var nanobar = new Nanobar(options); |
|||
nanobar.go(30); |
|||
nanobar.go(76); |
|||
nanobar.go(100); |
|||
</script> |
|||
|
|||
</body> |
|||
|
|||
</html> |
@ -0,0 +1,3 @@ |
|||
<h2><%- page.title %></h2> |
|||
|
|||
<%- page.content%> |
@ -0,0 +1,33 @@ |
|||
<% if (theme.disqus_enabled && theme.disqus_shortname){ %> |
|||
<hr> |
|||
<section id="comments" class="mt-2 mb-3"> |
|||
|
|||
<div id="disqus_thread"> |
|||
<a href="#" class="button button-primary" onclick="loadDisqus();return false;">View / Make Comments</a> |
|||
</div> |
|||
|
|||
<script> |
|||
var disqus_config = function() { |
|||
this.page.url = '<%= config.url + '/' + page.canonical_path %>'; |
|||
this.page.identifier = '<%= page.id || page.canonical_path %>'; |
|||
this.page.title = '<%= page.title %>'; |
|||
}; |
|||
|
|||
var is_disqus_loaded = false; |
|||
|
|||
function loadDisqus() { |
|||
if (!is_disqus_loaded) { |
|||
is_disqus_loaded = true; |
|||
|
|||
var d = document, |
|||
s = d.createElement('script'); |
|||
s.src = 'https://<%= theme.disqus_shortname %>.disqus.com/embed.js'; |
|||
s.setAttribute('data-timestamp', +new Date()); |
|||
(d.head || d.body).appendChild(s); |
|||
} |
|||
} |
|||
|
|||
</script> |
|||
<noscript>Please enable JavaScript to view the <a href="https://disqus.com/?ref_noscript">comments powered by Disqus.</a></noscript> |
|||
</section> |
|||
<% } %> |
@ -0,0 +1,41 @@ |
|||
<div class="row mt-2"> |
|||
<% if (theme.footer) { %> |
|||
<div class="eight columns"> |
|||
<p id="madewith">Made with โค and |
|||
<a class="footer-link icon" href="https://hexo.io" target="_blank" style="text-decoration: none;" rel="noreferrer" aria-label="Hexo.io"> |
|||
<svg class="hexo svg-hov" width="14" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><title>Hexo.js</title><path d="M12 .007L1.57 6.056V18.05L12 23.995l10.43-6.049V5.952L12 .007zm4.798 17.105l-.939.521-.939-.521V12.94H9.08v4.172l-.94.521-.938-.521V6.89l.939-.521.939.521v4.172h5.84V6.89l.94-.521.938.521v10.222z"/></svg> |
|||
</a> |
|||
<% if (theme.placename && theme.placelink) { %> |
|||
at <a href="<%- theme.placelink %>" target="_blank" rel="noreferrer"><%- theme.placename %></a>.</p> |
|||
<% } %> |
|||
</div> |
|||
|
|||
<!-- Sepcial thanks to https://simpleicons.org/ for the icons --> |
|||
<div class="four columns mb-3 posisi" > |
|||
<% if (theme.github) { %> |
|||
<a class="ml-0 footer-link icon" href="<%- theme.github %>" target="_blank" style="text-decoration: none" rel="noreferrer" aria-label="GitHub"> |
|||
<svg class="github svg-hov" width="18" role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>GitHub</title><path d="M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12"/></svg> |
|||
</a> |
|||
<% } %> |
|||
|
|||
<% if (theme.linkedin) { %> |
|||
<a class="ml-0 footer-link icon" href="<%- theme.linkedin %>" target="_blank" style="text-decoration: none" rel="noreferrer" aria-label="LinkedIn"> |
|||
<svg class="linkedin svg-hov" width="18" role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>LinkedIn</title><path d="M20.447 20.452h-3.554v-5.569c0-1.328-.027-3.037-1.852-3.037-1.853 0-2.136 1.445-2.136 2.939v5.667H9.351V9h3.414v1.561h.046c.477-.9 1.637-1.85 3.37-1.85 3.601 0 4.267 2.37 4.267 5.455v6.286zM5.337 7.433c-1.144 0-2.063-.926-2.063-2.065 0-1.138.92-2.063 2.063-2.063 1.14 0 2.064.925 2.064 2.063 0 1.139-.925 2.065-2.064 2.065zm1.782 13.019H3.555V9h3.564v11.452zM22.225 0H1.771C.792 0 0 .774 0 1.729v20.542C0 23.227.792 24 1.771 24h20.451C23.2 24 24 23.227 24 22.271V1.729C24 .774 23.2 0 22.222 0h.003z"/></svg> |
|||
</a> |
|||
<% } %> |
|||
|
|||
<% if (theme.twitter) { %> |
|||
<a class="ml-0 footer-link icon" href="<%- theme.twitter %>" target="_blank" style="text-decoration: none" rel="noreferrer" aria-label="Twitter"> |
|||
<svg class="twitter svg-hov" width="18" role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>Twitter</title><path d="M23.954 4.569c-.885.389-1.83.654-2.825.775 1.014-.611 1.794-1.574 2.163-2.723-.951.555-2.005.959-3.127 1.184-.896-.959-2.173-1.559-3.591-1.559-2.717 0-4.92 2.203-4.92 4.917 0 .39.045.765.127 1.124C7.691 8.094 4.066 6.13 1.64 3.161c-.427.722-.666 1.561-.666 2.475 0 1.71.87 3.213 2.188 4.096-.807-.026-1.566-.248-2.228-.616v.061c0 2.385 1.693 4.374 3.946 4.827-.413.111-.849.171-1.296.171-.314 0-.615-.03-.916-.086.631 1.953 2.445 3.377 4.604 3.417-1.68 1.319-3.809 2.105-6.102 2.105-.39 0-.779-.023-1.17-.067 2.189 1.394 4.768 2.209 7.557 2.209 9.054 0 13.999-7.496 13.999-13.986 0-.209 0-.42-.015-.63.961-.689 1.8-1.56 2.46-2.548l-.047-.02z"/></svg> |
|||
</a> |
|||
<% } %> |
|||
|
|||
<% if (theme.instagram) { %> |
|||
<a class="ml-0 footer-link icon" href="<%- theme.instagram %>" target="_blank" style="text-decoration: none" rel="noreferrer" aria-label="Instagram"> |
|||
<svg class="instagram svg-hov" width="18" role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>Instagram</title><path d="M12 0C8.74 0 8.333.015 7.053.072 5.775.132 4.905.333 4.14.63c-.789.306-1.459.717-2.126 1.384S.935 3.35.63 4.14C.333 4.905.131 5.775.072 7.053.012 8.333 0 8.74 0 12s.015 3.667.072 4.947c.06 1.277.261 2.148.558 2.913.306.788.717 1.459 1.384 2.126.667.666 1.336 1.079 2.126 1.384.766.296 1.636.499 2.913.558C8.333 23.988 8.74 24 12 24s3.667-.015 4.947-.072c1.277-.06 2.148-.262 2.913-.558.788-.306 1.459-.718 2.126-1.384.666-.667 1.079-1.335 1.384-2.126.296-.765.499-1.636.558-2.913.06-1.28.072-1.687.072-4.947s-.015-3.667-.072-4.947c-.06-1.277-.262-2.149-.558-2.913-.306-.789-.718-1.459-1.384-2.126C21.319 1.347 20.651.935 19.86.63c-.765-.297-1.636-.499-2.913-.558C15.667.012 15.26 0 12 0zm0 2.16c3.203 0 3.585.016 4.85.071 1.17.055 1.805.249 2.227.415.562.217.96.477 1.382.896.419.42.679.819.896 1.381.164.422.36 1.057.413 2.227.057 1.266.07 1.646.07 4.85s-.015 3.585-.074 4.85c-.061 1.17-.256 1.805-.421 2.227-.224.562-.479.96-.899 1.382-.419.419-.824.679-1.38.896-.42.164-1.065.36-2.235.413-1.274.057-1.649.07-4.859.07-3.211 0-3.586-.015-4.859-.074-1.171-.061-1.816-.256-2.236-.421-.569-.224-.96-.479-1.379-.899-.421-.419-.69-.824-.9-1.38-.165-.42-.359-1.065-.42-2.235-.045-1.26-.061-1.649-.061-4.844 0-3.196.016-3.586.061-4.861.061-1.17.255-1.814.42-2.234.21-.57.479-.96.9-1.381.419-.419.81-.689 1.379-.898.42-.166 1.051-.361 2.221-.421 1.275-.045 1.65-.06 4.859-.06l.045.03zm0 3.678c-3.405 0-6.162 2.76-6.162 6.162 0 3.405 2.76 6.162 6.162 6.162 3.405 0 6.162-2.76 6.162-6.162 0-3.405-2.76-6.162-6.162-6.162zM12 16c-2.21 0-4-1.79-4-4s1.79-4 4-4 4 1.79 4 4-1.79 4-4 4zm7.846-10.405c0 .795-.646 1.44-1.44 1.44-.795 0-1.44-.646-1.44-1.44 0-.794.646-1.439 1.44-1.439.793-.001 1.44.645 1.44 1.439z"/></svg> |
|||
</a> |
|||
<% } %> |
|||
|
|||
</div> |
|||
<% } %> |
|||
</div> |
@ -0,0 +1,16 @@ |
|||
<% if (theme.google_analytics) { %> |
|||
<script> |
|||
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){ |
|||
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o), |
|||
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m) |
|||
})(window,document,'script','//www.google-analytics.com/analytics.js','ga'); |
|||
/* Prepare GA Session, disable cookies to protect privacy */ |
|||
ga("create", "<%= theme.google_analytics %>", {storage: "none",}); |
|||
/* Privacy settings - not tracking anything personal */ |
|||
ga("set", "allowAdFeatures", false); |
|||
ga("set", "anonymizeIp", true); |
|||
ga("set", "forceSSL", true); |
|||
/* Send simple anonymized pageview */ |
|||
ga("send", "pageview"); |
|||
</script> |
|||
<% } %> |
@ -0,0 +1,54 @@ |
|||
<div class="row"> |
|||
<div class="two columns" style="max-width: 50px"> |
|||
<h1 class="mt-2 mode"> |
|||
<div onclick=setDarkMode(true) id="darkBtn"><%= theme.switch_dark %></div> |
|||
<div onclick=setDarkMode(false) id="lightBtn" class=hidden><%= theme.switch_light %></div> |
|||
<script > |
|||
if (localStorage.getItem('preferredTheme') == 'dark') { |
|||
setDarkMode(true) |
|||
} |
|||
function setDarkMode(isDark) { |
|||
var darkBtn = document.getElementById('darkBtn') |
|||
var lightBtn = document.getElementById('lightBtn') |
|||
if (isDark) { |
|||
lightBtn.style.display = "block" |
|||
darkBtn.style.display = "none" |
|||
localStorage.setItem('preferredTheme', 'dark'); |
|||
} else { |
|||
lightBtn.style.display = "none" |
|||
darkBtn.style.display = "block" |
|||
localStorage.removeItem('preferredTheme'); |
|||
} |
|||
document.body.classList.toggle("darkmode"); |
|||
} |
|||
</script> |
|||
</h1> |
|||
</div> |
|||
|
|||
<div class="six columns ml-1"> |
|||
<h1 class="mt-2"> |
|||
<%= theme.title %> |
|||
</h1> |
|||
</div> |
|||
|
|||
<div class="twelve columns"> |
|||
<div class="row"> |
|||
<div class="nine columns left"> |
|||
<a href="<%= config.root %>">Home</a> |
|||
<% for (name in theme.menu) { %> |
|||
<% if (theme.menu[name]) { %> |
|||
<a href="<%- url_for(theme.menu[name]) %>" class="ml"><%- name %></a> |
|||
<% } %> |
|||
<% } %> |
|||
<% if (theme.email) { %> |
|||
<% if (typeof obfuscate === "function") { %> |
|||
<a href="mailto:<%- obfuscate(theme.email) %>" target="_blank" class="ml">Email</a> |
|||
<% } else { %> |
|||
<a href="mailto:<%= theme.email %>" target="_blank" class="ml">Email</a> |
|||
<% } %> |
|||
<% } %> |
|||
</div> |
|||
</div> |
|||
<hr style="margin-bottom: 2.6rem"> |
|||
</div> |
|||
</div> |
@ -0,0 +1,26 @@ |
|||
<div class="pagination-bar"> |
|||
<ul class="pagination"> |
|||
<% if (page.prev) { %> |
|||
|
|||
<a class="mr" href="<%- url_for(page.prev_link) %>"> |
|||
<svg width="1em" height="1em" viewBox="0 0 16 16" class="bi bi-arrow-left-circle" fill="currentColor" xmlns="http://www.w3.org/2000/svg"> |
|||
<path fill-rule="evenodd" d="M8 15A7 7 0 1 0 8 1a7 7 0 0 0 0 14zm0 1A8 8 0 1 0 8 0a8 8 0 0 0 0 16z" /> |
|||
<path fill-rule="evenodd" d="M12 8a.5.5 0 0 1-.5.5H5.707l2.147 2.146a.5.5 0 0 1-.708.708l-3-3a.5.5 0 0 1 0-.708l3-3a.5.5 0 1 1 .708.708L5.707 7.5H11.5a.5.5 0 0 1 .5.5z" /> |
|||
</svg> |
|||
<span>Recent</span> |
|||
</a> |
|||
|
|||
<% } %> |
|||
<% if (page.next) { %> |
|||
|
|||
<a class="" href="<%- url_for(page.next_link) %>"> |
|||
<span>Older</span> |
|||
<svg width="1em" height="1em" viewBox="0 0 16 16" class="bi bi-arrow-right-circle" fill="currentColor" xmlns="http://www.w3.org/2000/svg"> |
|||
<path fill-rule="evenodd" d="M8 15A7 7 0 1 0 8 1a7 7 0 0 0 0 14zm0 1A8 8 0 1 0 8 0a8 8 0 0 0 0 16z" /> |
|||
<path fill-rule="evenodd" d="M4 8a.5.5 0 0 0 .5.5h5.793l-2.147 2.146a.5.5 0 0 0 .708.708l3-3a.5.5 0 0 0 0-.708l-3-3a.5.5 0 1 0-.708.708L10.293 7.5H4.5A.5.5 0 0 0 4 8z" /> |
|||
</svg> |
|||
</a> |
|||
|
|||
<% } %> |
|||
</ul> |
|||
</div> |
@ -0,0 +1,40 @@ |
|||
<style> |
|||
a:not(.icon) { |
|||
text-decoration-color: #<%= theme.tcolor %>; |
|||
background-image: linear-gradient( |
|||
to bottom, |
|||
rgba(0, 0, 0, 0) 50%, |
|||
#<%= theme.tcolor %> 50% |
|||
); |
|||
} |
|||
blockquote { |
|||
border-left: 8px solid #<%= theme.tcolor %>; |
|||
} |
|||
.nanobar .bar { |
|||
background: #<%= theme.tcolor %>; |
|||
} |
|||
.button.button-primary:hover, |
|||
button.button-primary:hover, |
|||
input[type="submit"].button-primary:hover, |
|||
input[type="reset"].button-primary:hover, |
|||
input[type="button"].button-primary:hover, |
|||
.button.button-primary:focus, |
|||
button.button-primary:focus, |
|||
input[type="submit"].button-primary:focus, |
|||
input[type="reset"].button-primary:focus, |
|||
input[type="button"].button-primary:focus { |
|||
background-color: #<%= theme.tcolor %>; |
|||
border-color: #<%= theme.tcolor %>; |
|||
} |
|||
input[type="email"]:focus, |
|||
input[type="number"]:focus, |
|||
input[type="search"]:focus, |
|||
input[type="text"]:focus, |
|||
input[type="tel"]:focus, |
|||
input[type="url"]:focus, |
|||
input[type="password"]:focus, |
|||
textarea:focus, |
|||
select:focus { |
|||
border: 1px solid #<%= theme.tcolor %>; |
|||
} |
|||
</style> |
@ -0,0 +1,5 @@ |
|||
<h2><%- page.title %></h2> |
|||
|
|||
<%- page.content%> |
|||
<p><%- list_tags(page.tags, {class: 'classtest', show_count: false, style: false}) %> โ <%- full_date(page.date, 'll') %></p> |
|||
<%- partial('partial/comments') %> |
@ -0,0 +1,35 @@ |
|||
|
|||
<% |
|||
var title = ''; |
|||
if (page.category) title = page.category; |
|||
if (page.tag) title = page.tag; |
|||
if (page.archive){ |
|||
if (page.year) title = page.year + (page.month ? '/' + page.month : ''); |
|||
else title = "Archives"; |
|||
} |
|||
%> |
|||
<% if(title) { %> |
|||
<h3>Posts Related to โ <%- title %></h3> |
|||
<% } %> |
|||
<% page.posts.each(function(item){ %> |
|||
|
|||
<article> |
|||
<div class="row"> |
|||
|
|||
<div class="three columns left lit"> |
|||
<p class="bottom"><%- full_date(item.date, 'll') %></p> |
|||
</div> |
|||
<div class="nine columns left mb-3"> |
|||
<a href="<%- url_for(item.path) %>"> |
|||
<% if (item.title == "") { %> |
|||
no title |
|||
<% } else { %> |
|||
<%- item.title %> |
|||
<% } %> |
|||
</a> |
|||
</div> |
|||
</div> |
|||
</article> |
|||
|
|||
<% }); %> |
|||
<%- partial('partial/pagination') %> |
@ -0,0 +1,319 @@ |
|||
/* dm-serif-display-regular - latin */ |
|||
@font-face { |
|||
font-family: 'DM Serif Display'; |
|||
font-style: normal; |
|||
font-weight: 400; |
|||
src: url('../fonts/dm-serif-display-v4-latin-regular.eot'); /* IE9 Compat Modes */ |
|||
src: local('DM Serif Display Regular'), local('DMSerifDisplay-Regular'), |
|||
url('../fonts/dm-serif-display-v4-latin-regular.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */ |
|||
url('../fonts/dm-serif-display-v4-latin-regular.woff2') format('woff2'), /* Super Modern Browsers */ |
|||
url('../fonts/dm-serif-display-v4-latin-regular.woff') format('woff'), /* Modern Browsers */ |
|||
url('../fonts/dm-serif-display-v4-latin-regular.ttf') format('truetype'), /* Safari, Android, iOS */ |
|||
url('../fonts/dm-serif-display-v4-latin-regular.svg#DMSerifDisplay') format('svg'); /* Legacy iOS */ |
|||
} |
|||
|
|||
/* inter-regular - latin */ |
|||
@font-face { |
|||
font-family: 'Inter'; |
|||
font-style: normal; |
|||
font-weight: 400; |
|||
src: url('../fonts/inter-v2-latin-regular.eot'); /* IE9 Compat Modes */ |
|||
src: local(''), |
|||
url('../fonts/inter-v2-latin-regular.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */ |
|||
url('../fonts/inter-v2-latin-regular.woff2') format('woff2'), /* Super Modern Browsers */ |
|||
url('../fonts/inter-v2-latin-regular.woff') format('woff'), /* Modern Browsers */ |
|||
url('../fonts/inter-v2-latin-regular.ttf') format('truetype'), /* Safari, Android, iOS */ |
|||
url('../fonts/inter-v2-latin-regular.svg#Inter') format('svg'); /* Legacy iOS */ |
|||
} |
|||
|
|||
html { |
|||
overflow: auto; |
|||
} |
|||
|
|||
img { |
|||
max-width: 100%; |
|||
-webkit-box-shadow: 0 0 5px rgba(0, 0, 0, 0.6); |
|||
-moz-box-shadow: 0 0 5px rgba(0, 0, 0, 0.6); |
|||
box-shadow: 0 0 5px rgba(0, 0, 0, 0.6); |
|||
margin-bottom: 1%; |
|||
} |
|||
|
|||
@media (min-width: 550px) { |
|||
/* |
|||
Side by side gallery |
|||
use with </> alignment |
|||
e.g. |
|||
[_gallery >](imgages/test.jpg) |
|||
*/ |
|||
img[alt~="_gallery"] { |
|||
max-width: 49.5%; |
|||
} |
|||
|
|||
/* Aligned to the right */ |
|||
img[alt$=">"] { |
|||
float: right; |
|||
} |
|||
|
|||
/* Aligned to the left */ |
|||
img[alt$="<"] { |
|||
float: left; |
|||
} |
|||
|
|||
/* Centered image */ |
|||
img[alt$="><"] { |
|||
display: block; |
|||
margin: auto; |
|||
float: none !important; |
|||
} |
|||
} |
|||
|
|||
.center { |
|||
text-align: center; |
|||
} |
|||
|
|||
.left { |
|||
margin-left: 0; |
|||
} |
|||
|
|||
.lit { |
|||
font-size: 1.5rem; |
|||
font-weight: 300; |
|||
} |
|||
|
|||
.little-svg { |
|||
fill: #fff; |
|||
} |
|||
|
|||
.ml-0 { |
|||
margin-left: 0.7rem; |
|||
} |
|||
|
|||
.ml { |
|||
margin-left: 2rem; |
|||
} |
|||
|
|||
.ml-1 { |
|||
margin-left: 5rem; |
|||
} |
|||
|
|||
.bottom { |
|||
margin-block-start: 0px; |
|||
margin-block-end: 0px; |
|||
margin-bottom: 0px; |
|||
} |
|||
|
|||
.mb-1 { |
|||
margin-bottom: 0px; |
|||
} |
|||
|
|||
.mb-2 { |
|||
margin-bottom: 5px; |
|||
} |
|||
|
|||
.mb-3 { |
|||
margin-bottom: 20px; |
|||
} |
|||
|
|||
.mr { |
|||
margin-right: 32px; |
|||
} |
|||
|
|||
.mt-0 { |
|||
margin-top: 0px; |
|||
} |
|||
|
|||
.mt-2 { |
|||
margin-top: 3rem; |
|||
} |
|||
|
|||
.mt-3 { |
|||
margin-top: 4rem; |
|||
} |
|||
|
|||
.mx-auto { |
|||
margin: auto; |
|||
} |
|||
|
|||
.mode { |
|||
position: absolute; |
|||
display: block; |
|||
cursor: pointer; |
|||
-webkit-touch-callout: none; /* iOS Safari */ |
|||
-webkit-user-select: none; /* Safari */ |
|||
-khtml-user-select: none; /* Konqueror HTML */ |
|||
-moz-user-select: none; /* Old versions of Firefox */ |
|||
-ms-user-select: none; /* Internet Explorer/Edge */ |
|||
user-select: none; /* Non-prefixed version, currently |
|||
supported by Chrome, Edge, Opera and Firefox */ |
|||
} |
|||
|
|||
.text-center { |
|||
text-align: center; |
|||
} |
|||
|
|||
.text-right { |
|||
text-align: right; |
|||
} |
|||
|
|||
.tag-link { |
|||
margin-right: 10px; |
|||
} |
|||
|
|||
.about { |
|||
width: 150px; |
|||
height: 150px; |
|||
border-radius: 50%; |
|||
} |
|||
|
|||
li p code { |
|||
background-color: rgb(230, 230, 230); |
|||
border-radius: 5px; |
|||
padding: 0px 2px; |
|||
font-size: 85%; |
|||
} |
|||
|
|||
body.darkmode li p code { |
|||
background-color: rgb(65, 65, 65); |
|||
} |
|||
|
|||
/* blockquote */ |
|||
blockquote { |
|||
font-family: 'Inter'; |
|||
background-color: rgba(148, 148, 149, 0.08) ; |
|||
margin: 1.5em 0px; |
|||
padding: 1.1em 20px 1px 20px; |
|||
font-style: italic; |
|||
} |
|||
|
|||
blockquote footer { |
|||
font-family: 'Inter'; |
|||
font-size: 16px; |
|||
padding-bottom: 10px; |
|||
margin-top: -10px; |
|||
} |
|||
|
|||
blockquote footer cite:before { |
|||
content: "โ"; |
|||
padding: 0 0.5em; |
|||
} |
|||
|
|||
/* Scroll bar */ |
|||
::-webkit-scrollbar { |
|||
width: 8px; |
|||
height: 8px; |
|||
} |
|||
|
|||
::-webkit-scrollbar-thumb { |
|||
background: rgb(128 128 128 / 70%); |
|||
} |
|||
::-webkit-scrollbar-thumb:window-inactive { |
|||
background: rgb(128 128 128 / 20%); |
|||
} |
|||
|
|||
::-webkit-scrollbar-thumb:active { |
|||
background-color: rgb(128 128 128 / 100%); |
|||
} |
|||
|
|||
/* Footer */ |
|||
a.footer-link:hover, |
|||
a.footer-link:focus { |
|||
cursor: pointer; |
|||
} |
|||
|
|||
.svg-hov { |
|||
transition: all .2s ease-in-out; |
|||
} |
|||
.svg-hov:hover { |
|||
transform: translateY(-3px); |
|||
transition: all .2s ease-in-out; |
|||
|
|||
} |
|||
|
|||
.hexo { |
|||
fill: #03adfc; |
|||
vertical-align: middle; |
|||
padding-bottom: 4px; |
|||
} |
|||
|
|||
.github { |
|||
fill: #63636F; |
|||
} |
|||
.linkedin { |
|||
fill: #0073b1; |
|||
} |
|||
.twitter { |
|||
fill: #1DA1F2; |
|||
} |
|||
.instagram { |
|||
fill: #E4405F |
|||
} |
|||
|
|||
.nanobar { |
|||
left: 0; |
|||
} |
|||
|
|||
body { |
|||
position: absolute; |
|||
top: 10px; |
|||
left: 10px; |
|||
bottom: 10px; |
|||
right: 10px; |
|||
padding: 5px; |
|||
overflow-y: scroll; |
|||
overflow-x: hidden; |
|||
transition: all 0.3s ease-in-out; |
|||
} |
|||
|
|||
body.darkmode { |
|||
background: rgb(34, 34, 38); |
|||
color: rgb(230, 230, 230); |
|||
} |
|||
|
|||
.trans { |
|||
animation: transitionPlay 0.7s; |
|||
} |
|||
|
|||
@keyframes transitionPlay { |
|||
from { |
|||
opacity: 0; |
|||
transform: translateY(20px); |
|||
} |
|||
|
|||
to { |
|||
opacity: 1; |
|||
transform: none; |
|||
} |
|||
} |
|||
|
|||
.hidden { |
|||
display: none; |
|||
} |
|||
|
|||
#comments { |
|||
text-align: center; |
|||
} |
|||
|
|||
#madewith { |
|||
text-align: center; |
|||
} |
|||
|
|||
.posisi { |
|||
text-align: center; |
|||
} |
|||
|
|||
|
|||
|
|||
@media (min-width: 550px) { |
|||
.posisi { |
|||
text-align: right; |
|||
} |
|||
|
|||
#comments { |
|||
text-align: left; |
|||
} |
|||
|
|||
#madewith { |
|||
text-align: left; |
|||
} |
|||
|
|||
} |
@ -0,0 +1,351 @@ |
|||
/* normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */ |
|||
|
|||
/* Document |
|||
========================================================================== */ |
|||
|
|||
/** |
|||
* 1. Correct the line height in all browsers. |
|||
* 2. Prevent adjustments of font size after orientation changes in iOS. |
|||
*/ |
|||
|
|||
html { |
|||
line-height: 1.15; /* 1 */ |
|||
-webkit-text-size-adjust: 100%; /* 2 */ |
|||
} |
|||
|
|||
/* Sections |
|||
========================================================================== */ |
|||
|
|||
/** |
|||
* Remove the margin in all browsers. |
|||
*/ |
|||
|
|||
body { |
|||
margin: 0; |
|||
} |
|||
|
|||
/** |
|||
* Render the `main` element consistently in IE. |
|||
*/ |
|||
|
|||
main { |
|||
display: block; |
|||
} |
|||
|
|||
/** |
|||
* Correct the font size and margin on `h1` elements within `section` and |
|||
* `article` contexts in Chrome, Firefox, and Safari. |
|||
*/ |
|||
|
|||
h1 { |
|||
font-size: 2em; |
|||
margin: 0.67em 0; |
|||
} |
|||
|
|||
/* Grouping content |
|||
========================================================================== */ |
|||
|
|||
/** |
|||
* 1. Add the correct box sizing in Firefox. |
|||
* 2. Show the overflow in Edge and IE. |
|||
*/ |
|||
|
|||
hr { |
|||
box-sizing: content-box; /* 1 */ |
|||
height: 0; /* 1 */ |
|||
overflow: visible; /* 2 */ |
|||
} |
|||
|
|||
/** |
|||
* 1. Correct the inheritance and scaling of font size in all browsers. |
|||
* 2. Correct the odd `em` font sizing in all browsers. |
|||
*/ |
|||
|
|||
pre { |
|||
font-family: monospace, monospace; /* 1 */ |
|||
font-size: 1em; /* 2 */ |
|||
} |
|||
|
|||
/* Text-level semantics |
|||
========================================================================== */ |
|||
|
|||
/** |
|||
* Remove the gray background on active links in IE 10. |
|||
*/ |
|||
|
|||
a { |
|||
background-color: transparent; |
|||
} |
|||
|
|||
/** |
|||
* 1. Remove the bottom border in Chrome 57- |
|||
* 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari. |
|||
*/ |
|||
|
|||
abbr[title] { |
|||
border-bottom: none; /* 1 */ |
|||
text-decoration: underline; /* 2 */ |
|||
text-decoration: underline dotted; /* 2 */ |
|||
} |
|||
|
|||
/** |
|||
* Add the correct font weight in Chrome, Edge, and Safari. |
|||
*/ |
|||
|
|||
b, |
|||
strong { |
|||
font-weight: bolder; |
|||
} |
|||
|
|||
/** |
|||
* 1. Correct the inheritance and scaling of font size in all browsers. |
|||
* 2. Correct the odd `em` font sizing in all browsers. |
|||
*/ |
|||
|
|||
code, |
|||
kbd, |
|||
samp { |
|||
font-family: monospace, monospace; /* 1 */ |
|||
font-size: 1em; /* 2 */ |
|||
} |
|||
|
|||
/** |
|||
* Add the correct font size in all browsers. |
|||
*/ |
|||
|
|||
small { |
|||
font-size: 80%; |
|||
} |
|||
|
|||
/** |
|||
* Prevent `sub` and `sup` elements from affecting the line height in |
|||
* all browsers. |
|||
*/ |
|||
|
|||
sub, |
|||
sup { |
|||
font-size: 75%; |
|||
line-height: 0; |
|||
position: relative; |
|||
vertical-align: baseline; |
|||
} |
|||
|
|||
sub { |
|||
bottom: -0.25em; |
|||
} |
|||
|
|||
sup { |
|||
top: -0.5em; |
|||
} |
|||
|
|||
/* Embedded content |
|||
========================================================================== */ |
|||
|
|||
/** |
|||
* Remove the border on images inside links in IE 10. |
|||
*/ |
|||
|
|||
img { |
|||
border-style: none; |
|||
} |
|||
|
|||
/* Forms |
|||
========================================================================== */ |
|||
|
|||
/** |
|||
* 1. Change the font styles in all browsers. |
|||
* 2. Remove the margin in Firefox and Safari. |
|||
*/ |
|||
|
|||
button, |
|||
input, |
|||
optgroup, |
|||
select, |
|||
textarea { |
|||
font-family: inherit; /* 1 */ |
|||
font-size: 100%; /* 1 */ |
|||
line-height: 1.15; /* 1 */ |
|||
margin: 0; /* 2 */ |
|||
} |
|||
|
|||
/** |
|||
* Show the overflow in IE. |
|||
* 1. Show the overflow in Edge. |
|||
*/ |
|||
|
|||
button, |
|||
input { |
|||
/* 1 */ |
|||
overflow: visible; |
|||
} |
|||
|
|||
/** |
|||
* Remove the inheritance of text transform in Edge, Firefox, and IE. |
|||
* 1. Remove the inheritance of text transform in Firefox. |
|||
*/ |
|||
|
|||
button, |
|||
select { |
|||
/* 1 */ |
|||
text-transform: none; |
|||
} |
|||
|
|||
/** |
|||
* Correct the inability to style clickable types in iOS and Safari. |
|||
*/ |
|||
|
|||
button, |
|||
[type="button"], |
|||
[type="reset"], |
|||
[type="submit"] { |
|||
-webkit-appearance: button; |
|||
} |
|||
|
|||
/** |
|||
* Remove the inner border and padding in Firefox. |
|||
*/ |
|||
|
|||
button::-moz-focus-inner, |
|||
[type="button"]::-moz-focus-inner, |
|||
[type="reset"]::-moz-focus-inner, |
|||
[type="submit"]::-moz-focus-inner { |
|||
border-style: none; |
|||
padding: 0; |
|||
} |
|||
|
|||
/** |
|||
* Restore the focus styles unset by the previous rule. |
|||
*/ |
|||
|
|||
button:-moz-focusring, |
|||
[type="button"]:-moz-focusring, |
|||
[type="reset"]:-moz-focusring, |
|||
[type="submit"]:-moz-focusring { |
|||
outline: 1px dotted ButtonText; |
|||
} |
|||
|
|||
/** |
|||
* Correct the padding in Firefox. |
|||
*/ |
|||
|
|||
fieldset { |
|||
padding: 0.35em 0.75em 0.625em; |
|||
} |
|||
|
|||
/** |
|||
* 1. Correct the text wrapping in Edge and IE. |
|||
* 2. Correct the color inheritance from `fieldset` elements in IE. |
|||
* 3. Remove the padding so developers are not caught out when they zero out |
|||
* `fieldset` elements in all browsers. |
|||
*/ |
|||
|
|||
legend { |
|||
box-sizing: border-box; /* 1 */ |
|||
color: inherit; /* 2 */ |
|||
display: table; /* 1 */ |
|||
max-width: 100%; /* 1 */ |
|||
padding: 0; /* 3 */ |
|||
white-space: normal; /* 1 */ |
|||
} |
|||
|
|||
/** |
|||
* Add the correct vertical alignment in Chrome, Firefox, and Opera. |
|||
*/ |
|||
|
|||
progress { |
|||
vertical-align: baseline; |
|||
} |
|||
|
|||
/** |
|||
* Remove the default vertical scrollbar in IE 10+. |
|||
*/ |
|||
|
|||
textarea { |
|||
overflow: auto; |
|||
} |
|||
|
|||
/** |
|||
* 1. Add the correct box sizing in IE 10. |
|||
* 2. Remove the padding in IE 10. |
|||
*/ |
|||
|
|||
[type="checkbox"], |
|||
[type="radio"] { |
|||
box-sizing: border-box; /* 1 */ |
|||
padding: 0; /* 2 */ |
|||
} |
|||
|
|||
/** |
|||
* Correct the cursor style of increment and decrement buttons in Chrome. |
|||
*/ |
|||
|
|||
[type="number"]::-webkit-inner-spin-button, |
|||
[type="number"]::-webkit-outer-spin-button { |
|||
height: auto; |
|||
} |
|||
|
|||
/** |
|||
* 1. Correct the odd appearance in Chrome and Safari. |
|||
* 2. Correct the outline style in Safari. |
|||
*/ |
|||
|
|||
[type="search"] { |
|||
-webkit-appearance: textfield; /* 1 */ |
|||
outline-offset: -2px; /* 2 */ |
|||
} |
|||
|
|||
/** |
|||
* Remove the inner padding in Chrome and Safari on macOS. |
|||
*/ |
|||
|
|||
[type="search"]::-webkit-search-decoration { |
|||
-webkit-appearance: none; |
|||
} |
|||
|
|||
/** |
|||
* 1. Correct the inability to style clickable types in iOS and Safari. |
|||
* 2. Change font properties to `inherit` in Safari. |
|||
*/ |
|||
|
|||
::-webkit-file-upload-button { |
|||
-webkit-appearance: button; /* 1 */ |
|||
font: inherit; /* 2 */ |
|||
} |
|||
|
|||
/* Interactive |
|||
========================================================================== */ |
|||
|
|||
/* |
|||
* Add the correct display in Edge, IE 10+, and Firefox. |
|||
*/ |
|||
|
|||
details { |
|||
display: block; |
|||
} |
|||
|
|||
/* |
|||
* Add the correct display in all browsers. |
|||
*/ |
|||
|
|||
summary { |
|||
display: list-item; |
|||
} |
|||
|
|||
/* Misc |
|||
========================================================================== */ |
|||
|
|||
/** |
|||
* Add the correct display in IE 10+. |
|||
*/ |
|||
|
|||
template { |
|||
display: none; |
|||
} |
|||
|
|||
/** |
|||
* Add the correct display in IE 10. |
|||
*/ |
|||
|
|||
[hidden] { |
|||
display: none; |
|||
} |
@ -0,0 +1,289 @@ |
|||
/* https://github.com/PrismJS/prism-themes/blob/master/themes/prism-vsc-dark-plus.css */ |
|||
pre[class*="language-"], |
|||
code[class*="language-"] { |
|||
color: #d4d4d4; |
|||
font-size: 13px; |
|||
text-shadow: none; |
|||
font-family: Menlo, Monaco, Consolas, "Andale Mono", "Ubuntu Mono", |
|||
"Courier New", monospace; |
|||
direction: ltr; |
|||
text-align: left; |
|||
white-space: pre; |
|||
word-spacing: normal; |
|||
word-break: normal; |
|||
line-height: 1.5; |
|||
-moz-tab-size: 4; |
|||
-o-tab-size: 4; |
|||
tab-size: 4; |
|||
-webkit-hyphens: none; |
|||
-moz-hyphens: none; |
|||
-ms-hyphens: none; |
|||
hyphens: none; |
|||
} |
|||
|
|||
pre[class*="language-"]::selection, |
|||
code[class*="language-"]::selection, |
|||
pre[class*="language-"] *::selection, |
|||
code[class*="language-"] *::selection { |
|||
text-shadow: none; |
|||
background: #75a7ca; |
|||
} |
|||
|
|||
@media print { |
|||
pre[class*="language-"], |
|||
code[class*="language-"] { |
|||
text-shadow: none; |
|||
} |
|||
} |
|||
|
|||
pre[class*="language-"] { |
|||
padding: 1em; |
|||
margin: 0.5em 0; |
|||
overflow: auto; |
|||
background: #292929; |
|||
} |
|||
|
|||
:not(pre) > code[class*="language-"] { |
|||
padding: 0.1em 0.3em; |
|||
border-radius: 0.3em; |
|||
color: #db4c69; |
|||
background: #f9f2f4; |
|||
} |
|||
/********************************************************* |
|||
* Tokens |
|||
*/ |
|||
.namespace { |
|||
opacity: 0.7; |
|||
} |
|||
|
|||
.token.doctype .token.doctype-tag { |
|||
color: #569cd6; |
|||
} |
|||
|
|||
.token.doctype .token.name { |
|||
color: #9cdcfe; |
|||
} |
|||
|
|||
.token.comment, |
|||
.token.prolog { |
|||
color: #6a9955; |
|||
} |
|||
|
|||
.token.punctuation, |
|||
.language-html .language-css .token.punctuation, |
|||
.language-html .language-javascript .token.punctuation { |
|||
color: #d4d4d4; |
|||
} |
|||
|
|||
.token.property, |
|||
.token.tag, |
|||
.token.boolean, |
|||
.token.number, |
|||
.token.constant, |
|||
.token.symbol, |
|||
.token.inserted, |
|||
.token.unit { |
|||
color: #b5cea8; |
|||
} |
|||
|
|||
.token.selector, |
|||
.token.attr-name, |
|||
.token.string, |
|||
.token.char, |
|||
.token.builtin, |
|||
.token.deleted { |
|||
color: #ce9178; |
|||
} |
|||
|
|||
.language-css .token.string.url { |
|||
text-decoration: underline; |
|||
} |
|||
|
|||
.token.operator, |
|||
.token.entity { |
|||
color: #d4d4d4; |
|||
} |
|||
|
|||
.token.operator.arrow { |
|||
color: #569cd6; |
|||
} |
|||
|
|||
.token.atrule { |
|||
color: #ce9178; |
|||
} |
|||
|
|||
.token.atrule .token.rule { |
|||
color: #c586c0; |
|||
} |
|||
|
|||
.token.atrule .token.url { |
|||
color: #9cdcfe; |
|||
} |
|||
|
|||
.token.atrule .token.url .token.function { |
|||
color: #dcdcaa; |
|||
} |
|||
|
|||
.token.atrule .token.url .token.punctuation { |
|||
color: #d4d4d4; |
|||
} |