Theme cleanup

This commit is contained in:
Don Harper 2021-07-30 23:12:29 -05:00
parent 006594c456
commit a145c3563a
92 changed files with 0 additions and 7022 deletions

View file

@ -1,21 +0,0 @@
MIT License
Copyright (c) 2019 Jonathan Janssens
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.

View file

@ -1,36 +0,0 @@
## Demo
A demo with feature images is available in the repository [jonathanjanssens/hugo-casper3-demo](https://github.com/jonathanjanssens/hugo-casper3-demo).
## Installation
```$ mkdir themes
$ cd themes
$ git clone git@github.com:jonathanjanssens/hugo-casper3.git
```
Either set the theme in your config to `casper3` or build with the `-t casper3` flag.
## Using the theme
This theme is very image heavy so it is recommended to set a `feature_image` parameter in the front matter of any content.
Content types you wish to appear on the homepage should be set in your [mainSections](https://gohugo.io/functions/where/#mainsections).
## Development Roadmap
[ ] Use SCSS from original theme instead of compiled CSS - also needs Hugo Pipes setting up
[ ] Multi author support and author taxonomy
## Support
It would be nice if you leave the credit to me in the footer, unless you make a donation to show support. I can't really police this though, it's MIT licensed anyway so you can do whatever you want with the theme...
If you would like to show your appreciation to me for working on this theme you can <a href="https://paypal.me/JonathanJanssens">donate with Paypal</a> here.
BTC: 1812FGaAJ19hokDoUFP6kK22dzT6zttkw5
LTC: MQh5n9BzXAVzdreMo9ff3DxF7gqqmZkUNJ
ETH: 0x6c6DCa4cA98816Bb319A4B923b159991C97368B7

View file

@ -1,3 +0,0 @@
+++
featured_image = ""
+++

View file

@ -1,5 +0,0 @@
.post-content > div {
width: 100%;
}
post-content:a {text-decoration: line; background-color:transparent; text-underline-position: under;color:green; background-color:blue}
a:active,a:hover {outline:1; text-underline-position: above; color:hotpink;}

View file

@ -1 +0,0 @@
a,abbr,acronym,address,applet,article,aside,audio,big,blockquote,body,canvas,caption,cite,code,dd,del,details,dfn,div,dl,dt,em,embed,fieldset,figcaption,figure,footer,form,h1,h2,h3,h4,h5,h6,header,hgroup,html,iframe,img,ins,kbd,label,legend,li,mark,menu,nav,object,ol,output,p,pre,q,ruby,s,samp,section,small,span,strike,strong,sub,summary,sup,table,tbody,td,tfoot,th,thead,time,tr,tt,ul,var,video{margin:0;padding:0;border:0;font:inherit;font-size:100%;vertical-align:baseline}body{line-height:1}ol,ul{list-style:none}blockquote,q{quotes:none}blockquote:after,blockquote:before,q:after,q:before{content:"";content:none}img{max-width:100%}html{box-sizing:border-box;font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}*,:after,:before{box-sizing:inherit}a{background-color:transparent}a:active,a:hover{outline:0}b,strong{font-weight:700}dfn,em,i{font-style:italic}h1{margin:.67em 0;font-size:2em}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}img{border:0}svg:not(:root){overflow:hidden}mark{background-color:#fdffb6}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}button,input,optgroup,select,textarea{margin:0;color:inherit;font:inherit}button{overflow:visible;border:none}button,select{text-transform:none}button,html input[type=button],input[type=reset],input[type=submit]{cursor:pointer;-webkit-appearance:button}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{padding:0;border:0}input{line-height:normal}input:focus{outline:none}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{height:auto}input[type=search]{box-sizing:content-box;-webkit-appearance:textfield}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}legend{padding:0;border:0}textarea{overflow:auto}table{border-spacing:0;border-collapse:collapse}td,th{padding:0}html{overflow-y:scroll;font-size:62.5%;-webkit-tap-highlight-color:rgba(0,0,0,0)}body,html{overflow-x:hidden}body{color:#313b3f;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Open Sans,Helvetica Neue,sans-serif;font-size:1.6rem;line-height:1.6em;font-weight:400;font-style:normal;letter-spacing:0;text-rendering:optimizeLegibility;background:#fff;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-moz-font-feature-settings:"liga" on}::-moz-selection{text-shadow:none;background:#cbeafb}::selection{text-shadow:none;background:#cbeafb}hr{position:relative;display:block;width:100%;margin:2.5em 0 3.5em;padding:0;height:1px;border:0;border-top:1px solid #e3e9ed}audio,canvas,iframe,img,svg,video{vertical-align:middle}fieldset{margin:0;padding:0;border:0}textarea{resize:vertical}blockquote,dl,ol,p,ul{margin:0 0 1.5em}ol,ul{padding-left:1.3em;padding-right:1.5em}ol ol,ol ul,ul ol,ul ul{margin:.5em 0 1em}ul{list-style:disc}ol{list-style:decimal}ol,ul{max-width:100%}li{margin:.5em 0;padding-left:.3em;line-height:1.6em}dt{float:left;margin:0 20px 0 0;width:120px;color:#15171a;font-weight:500;text-align:right}dd{margin:0 0 5px;text-align:left}blockquote{margin:1.5em 0;padding:0 1.6em;border-left:.5em solid #e5eff5}blockquote p{margin:.8em 0;font-size:1.2em;font-weight:300}blockquote small{display:inline-block;margin:.8em 0 .8em 1.5em;font-size:.9em;opacity:.8}blockquote small:before{content:"\2014 \00A0"}blockquote cite{font-weight:700}blockquote cite a{font-weight:400}a{color:#26a8ed;text-decoration:none}a:hover{text-decoration:underline}h1,h2,h3,h4,h5,h6{margin-top:0;line-height:1.15;font-weight:600;text-rendering:optimizeLegibility}h1{margin:0 0 .5em;font-size:5.5rem;font-weight:600}@media (max-width:500px){h1{font-size:2.2rem}}h2{margin:1.5em 0 .5em;font-size:2.2rem}@media (max-width:500px){h2{font-size:1.8rem}}h3{margin:1.5em 0 .5em;font-size:1.8rem;font-weight:500}@media (max-width:500px){h3{font-size:1.7rem}}h4{margin:1.5em 0 .5em;font-size:1.6rem;font-weight:500}h5,h6{margin:1.5em 0 .5em;font-size:1.4rem;font-weight:500}

File diff suppressed because one or more lines are too long

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 760 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 290 KiB

View file

@ -1,40 +0,0 @@
<!DOCTYPE html>
<html lang="{{ .Site.LanguageCode }}">
<head>
<meta charset="utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
{{ $title := print .Title " · " .Site.Title }}
{{ if .IsHome }}{{ $title = .Site.Title }}{{ end }}
<title>{{ $title }}</title>
<meta name="HandheldFriendly" content="True" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
{{ $styles := resources.Get "scss/main.scss" | resources.ExecuteAsTemplate "style.main.scss" . | toCSS | minify | fingerprint }}
<link rel="stylesheet" href="{{ $styles.Permalink }}" />
</head>
<body class="{{ block "body_class" . }} {{ end }}">
<div class="site-wrapper">
{{- block "main" . }}{{- end }}
<footer class="site-footer outer">
<div class="site-footer-content inner">
<section class="copyright"><a href="{{ .Site.BaseURL }}">{{ .Site.Title }}</a> &copy; {{ .Date.Format "2006" }}</section>
<nav class="site-footer-nav">
<a href="{{ .Site.BaseURL }}">Latest Posts</a>
{{ if .Site.Params.facebook }}<a href="{{ .Site.Params.facebook }}" target="_blank" rel="noopener">Facebook</a>{{ end }}
{{ if .Site.Params.twitter }}<a href="{{ .Site.Params.twitter }}" target="_blank" rel="noopener">Twitter</a>{{ end }}
{{ if .Site.Params.github }}<a href="{{ .Site.Params.github }}" target="_blank" rel="noopener">Github</a>{{ end }}
<a href="https://jonathanjanssens.com" target="_blank" rel="noopener" style="opacity: 0.5;">Hugo Casper3 by Jonathan Janssens</a>
</nav>
</div>
</footer>
</div>
</body>
</html>

View file

@ -1,32 +0,0 @@
{{ define "body_class" }} tag-template {{ end }}
{{ define "main" }}
<header class="site-header">
{{- partial "site-header.html" $ -}}
{{- partial "header-background.html" $ -}}
<div class="inner site-header-content">
<h1 class="site-title">{{ .Title }}</h1>
<h2 class="site-description">
{{ if .Param "description" }}
{{ .Param "description" }}
{{ else }}
A collection of {{ len .Pages }} post{{ if gt (len .Pages) 1 }}s{{ end }}
{{ end }}
</h2>
</div>
</div>
</header>
<main id="site-main" class="site-main outer">
<div class="inner posts">
<div class="post-feed">
{{ range $index, $element := .Pages }}
{{- partial "post-card.html" (dict "context" . "index" $index "home" $.IsHome) -}}
{{ end }}
</div>
</div>
</main>
{{ end }}

View file

@ -1,71 +0,0 @@
{{ define "body_class" }} post-template {{ end }}
{{ define "main" }}
<header class="site-header">
{{- partial "site-header.html" $ -}}
</header>
<main id="site-main" class="site-main outer">
<div class="inner">
<article class="post-full post {{ if not (.Param "featured_image") }} no-image {{ end }}">
<header class="post-full-header">
{{ with .Params.tags }}
{{ $primaryTag := (index . 0) }}
<section class="post-full-tags">
<a href="{{ "/tags/" | relLangURL }}{{ $primaryTag | urlize }}">{{ $primaryTag }}</a>
</section>
{{ end }}
<h1 class="post-full-title">{{ .Title }}</h1>
{{ if .Param "summary" }}
<p class="post-full-custom-excerpt">{{ .Summary }}</p>
{{ end }}
<div class="post-full-byline">
<section class="post-full-byline-content">
{{ if .Param "author" }}
{{- partial "post-author.html" . -}}
{{ end }}
<section class="post-full-byline-meta">
{{ if .Param "author" }}
<h4 class="author-name">{{ .Param "author" }}</h4>
{{ end }}
<div class="byline-meta-content">
<time class="byline-meta-date" datetime="{{.Date.Format "2006-31-01"}}">{{.Date.Format "2 January 2006"}}</time>
<span class="byline-reading-time"><span class="bull">&bull;</span> {{ .ReadingTime }} min read</span>
</div>
</section>
</section>
</div>
</header>
{{ if .Param "featured_image" }}
<figure class="post-full-image">
<img src="{{ .Param "featured_image" }}" alt="{{ .Title }}" />
</figure>
{{ end }}
<section class="post-full-content">
<div class="post-content">
{{ .Content }}
</div>
</section>
</article>
</div>
</main>
{{- partial "post-navigation.html" . -}}
{{ end }}

View file

@ -1,36 +0,0 @@
{{ define "body_class" }} home-template {{ end }}
{{ define "main" }}
<header class="site-home-header">
{{ .Scratch.Set "background" .Params.featured_image }}
{{- partial "header-background.html" . -}}
<div class="inner">
{{- partial "site-nav.html" . -}}
<div class="site-header-content">
<h1 class="site-title">
{{ if $.Site.Params.logo }}
<img class="site-logo" src="{{ $.Site.Params.logo }}" alt="{{ .Site.Title }}" />
{{ else }}
{{ $.Site.Title }}
{{ end }}
</h1>
<h2 class="site-description">{{ $.Site.Params.description }}</h2>
</div>
</div>
</div>
</header>
<main id="site-main" class="site-main outer">
<div class="inner posts">
<div class="post-feed">
{{ $pages := where site.RegularPages "Type" "in" site.Params.mainSections }}
{{ range $index, $element := $pages }}
{{- partial "post-card.html" (dict "context" . "index" $index "home" $.IsHome) -}}
{{ end }}
</div>
</div>
</main>
{{ end }}

View file

@ -1,10 +0,0 @@
{{ if .Scratch.Get "background" }}
<style type="text/css">
.responsive-header-img {
background-image: url('{{ .Scratch.Get "background" }}');
}
</style>
<div class="outer site-header-background responsive-header-img">
{{ else }}
<div class="outer site-header-background no-image">
{{ end }}

View file

@ -1 +0,0 @@
<svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><g fill="none" fill-rule="evenodd"><path d="M3.513 18.998C4.749 15.504 8.082 13 12 13s7.251 2.504 8.487 5.998C18.47 21.442 15.417 23 12 23s-6.47-1.558-8.487-4.002zM12 12c2.21 0 4-2.79 4-5s-1.79-4-4-4-4 1.79-4 4 1.79 5 4 5z" fill="#FFF"/></g></svg>

Before

Width:  |  Height:  |  Size: 307 B

View file

@ -1 +0,0 @@
<svg viewBox="0 0 32 32" xmlns="http://www.w3.org/2000/svg"><path d="M16 0c8.837 0 16 7.163 16 16s-7.163 16-16 16S0 24.837 0 16 7.163 0 16 0zm5.204 4.911h-3.546c-2.103 0-4.443.885-4.443 3.934.01 1.062 0 2.08 0 3.225h-2.433v3.872h2.509v11.147h4.61v-11.22h3.042l.275-3.81h-3.397s.007-1.695 0-2.187c0-1.205 1.253-1.136 1.329-1.136h2.054V4.911z" /></svg>

Before

Width:  |  Height:  |  Size: 350 B

View file

@ -1,11 +0,0 @@
<svg version="1.1" id="loader-1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px"
y="0px" width="40px" height="40px" viewBox="0 0 40 40" enable-background="new 0 0 40 40" xml:space="preserve">
<path opacity="0.2" fill="#000" d="M20.201,5.169c-8.254,0-14.946,6.692-14.946,14.946c0,8.255,6.692,14.946,14.946,14.946
s14.946-6.691,14.946-14.946C35.146,11.861,28.455,5.169,20.201,5.169z M20.201,31.749c-6.425,0-11.634-5.208-11.634-11.634
c0-6.425,5.209-11.634,11.634-11.634c6.425,0,11.633,5.209,11.633,11.634C31.834,26.541,26.626,31.749,20.201,31.749z" />
<path fill="#000" d="M26.013,10.047l1.654-2.866c-2.198-1.272-4.743-2.012-7.466-2.012h0v3.312h0
C22.32,8.481,24.301,9.057,26.013,10.047z">
<animateTransform attributeType="xml" attributeName="transform" type="rotate" from="0 20 20" to="360 20 20"
dur="0.5s" repeatCount="indefinite" />
</path>
</svg>

Before

Width:  |  Height:  |  Size: 923 B

View file

@ -1 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><circle cx="6.18" cy="17.82" r="2.18"/><path d="M4 4.44v2.83c7.03 0 12.73 5.7 12.73 12.73h2.83c0-8.59-6.97-15.56-15.56-15.56zm0 5.66v2.83c3.9 0 7.07 3.17 7.07 7.07h2.83c0-5.47-4.43-9.9-9.9-9.9z"/></svg>

Before

Width:  |  Height:  |  Size: 262 B

View file

@ -1 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32"><path d="M30.063 7.313c-.813 1.125-1.75 2.125-2.875 2.938v.75c0 1.563-.188 3.125-.688 4.625a15.088 15.088 0 0 1-2.063 4.438c-.875 1.438-2 2.688-3.25 3.813a15.015 15.015 0 0 1-4.625 2.563c-1.813.688-3.75 1-5.75 1-3.25 0-6.188-.875-8.875-2.625.438.063.875.125 1.375.125 2.688 0 5.063-.875 7.188-2.5-1.25 0-2.375-.375-3.375-1.125s-1.688-1.688-2.063-2.875c.438.063.813.125 1.125.125.5 0 1-.063 1.5-.25-1.313-.25-2.438-.938-3.313-1.938a5.673 5.673 0 0 1-1.313-3.688v-.063c.813.438 1.688.688 2.625.688a5.228 5.228 0 0 1-1.875-2c-.5-.875-.688-1.813-.688-2.75 0-1.063.25-2.063.75-2.938 1.438 1.75 3.188 3.188 5.25 4.25s4.313 1.688 6.688 1.813a5.579 5.579 0 0 1 1.5-5.438c1.125-1.125 2.5-1.688 4.125-1.688s3.063.625 4.188 1.813a11.48 11.48 0 0 0 3.688-1.375c-.438 1.375-1.313 2.438-2.563 3.188 1.125-.125 2.188-.438 3.313-.875z"/></svg>

Before

Width:  |  Height:  |  Size: 888 B

View file

@ -1,13 +0,0 @@
<ul class="author-list">
<li class="author-list-item">
<div class="author-card">
<div class="author-profile-image">{{- partial "icons/avatar.html" -}}</div>
<div class="author-info">
<div class="author-info">
<h2>{{ .Param "author" }}</h2>
</div>
</div>
</div>
<a href="#" class="author-avatar author-profile-image">{{- partial "icons/avatar.html" -}}</a>
</li>
</ul>

View file

@ -1,49 +0,0 @@
<article class="post-card post
{{ if not (.context.Param "featured_image") }} no-image
{{ else }}
{{ if (eq (mod .index 6) 0) }} post-card-large {{ end }}
{{ end }} ">
{{ if .context.Param "featured_image" }}
<a class="post-card-image-link" href="{{ .context.Permalink }}">
<img class="post-card-image"src="{{ .context.Param "featured_image" }}" alt="{{ .context.Title }}"/>
</a>
{{ end }}
<div class="post-card-content">
<a class="post-card-content-link" href="{{ .context.Permalink }}">
<header class="post-card-header">
{{ with .context.Params.tags }}
{{ $primaryTag := (index . 0) }}
<div class="post-card-primary-tag">{{ $primaryTag }}</div>
{{ end }}
<h2 class="post-card-title">{{ .context.Title }}</h2>
</header>
<section class="post-card-excerpt">
<p>{{ .context.Summary }}</p>
</section>
</a>
<footer class="post-card-meta">
<ul class="author-list">
<li class="author-list-item">
<div class="author-name-tooltip">{{ .context.Param "author" }}</div>
<a href="#" class="static-avatar author-profile-image">{{- partial "icons/avatar.html" -}}</a>
</li>
</ul>
<div class="post-card-byline-content">
<span>{{ .context.Param "author" }}</span>
<span class="post-card-byline-date"><time datetime="{{ .context.Date.Format "2006-31-01" }}">{{ .context.Date.Format "2 January 2006" }}</time>
<span class="bull">&bull;</span> {{ .context.ReadingTime }} min read</span>
</div>
</footer>
</div>
</article>

View file

@ -1,17 +0,0 @@
<aside class="read-next outer">
<div class="inner">
<div class="read-next-feed">
{{- partial "read-next.html" . -}}
{{ with .PrevInSection}}
{{- partial "post-card.html" (dict "context" . "index" 1) -}}
{{end}}
{{ with .NextInSection}}
{{- partial "post-card.html" (dict "context" . "index" 1) -}}
{{end}}
</div>
</div>
</aside>

View file

@ -1,22 +0,0 @@
{{ with .Params.tags }}
{{ $primaryTag := (index . 0) }}
<article class="read-next-card">
<header class="read-next-card-header">
<h3><span>More in</span> <a href="{{ "/tags/" | relLangURL }}{{ $primaryTag | urlize }}">{{ $primaryTag }}</a></h3>
</header>
<div class="read-next-card-content">
<ul>
{{ range first 3 (where (index $.Site.Taxonomies.tags $primaryTag).Pages "Section" "post") }}
<li>
<h4><a href="{{ .Permalink }}">{{ .Title }}</a></h4>
<div class="read-next-card-meta">
<p><time datetime="{{.Date.Format "2006-31-01"}}">{{.Date.Format "01 Jan 2006"}}</time>
{{ if .Params.reading_time }} {{ .Params.reading_time }} {{ end }}
</p>
</div>
</li>
{{ end }}
</ul>
</div>
</article>
{{ end }}

View file

@ -1,6 +0,0 @@
<div class="outer site-nav-main">
<div class="inner">
{{- partial "site-nav.html" . -}}
{{ partial "victorhugo.html" . }}
</div>
</div>

View file

@ -1,19 +0,0 @@
<nav class="site-nav">
<div class="site-nav-left">
{{ if eq $.Site.Params.logo "thisshouldfail" }}
<a class="site-nav-logo" href="{{ $.Site.BaseURL }}"><img src="{{ $.Site.Params.logo }}" alt="{{ $.Site.Title }}" /></a>
{{ else }}
<a class="site-nav-logo" href="{{ $.Site.BaseURL }}">{{ $.Site.Title }}</a>
{{ end }}
<div class="site-nav-content">
<ul class="nav" role="menu">
{{ range $.Site.Menus.main }}
<li class="nav-home" role="menuitem"><a href="{{ .URL }}">{{- .Name -}}</a></li>
{{ end }}
</ul>
</div>
</div>
</nav>

File diff suppressed because it is too large Load diff

View file

@ -1,19 +0,0 @@
name = "casper3"
license = "MIT"
licenselink = "https://github.com/jonathanjanssens/hugo-casper3/blob/master/LICENSE"
description = "The default Casper version 3 theme from Ghost CMS ported over to Hugo"
tags = ["blog", "dark", "light"]
features = ["darkmode"]
min_version = "0.54.0"
[author]
name = "Jonathan Janssens"
homepage = "https://jonathanjanssens.com"
repo = "https://github.com/jonathanjanssens/projects/hugo-casper3"
[original]
name = "Ghost"
homepage = "https://ghost.org"
repo = "https://github.com/TryGhost/Casper"

View file

@ -1,21 +0,0 @@
MIT License
Copyright (c) 2019 Rise
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.

View file

@ -1,126 +0,0 @@
# hugo-theme-diary
![](https://img.shields.io/badge/license-MIT-blue.svg)
隻言片語・於此匯聚
Moments piled up.
A Hugo theme ported from [SumiMakito/hexo-theme-Journal](https://github.com/SumiMakito/hexo-theme-Journal/).
## Links
**Some useful links here:**
[Live Demo](https://amazingrise.net/)
[Intro Video](https://www.bilibili.com/video/av84273002)
[Changelog (Progress and TODO List)](https://github.com/AmazingRise/hugo-theme-diary/projects/)
[Project Wiki](https://github.com/amazingrise/hugo-theme-diary/wiki)
Original Author: [SumiMakito](https://github.com/SumiMakito)
## Features
Features in the ori.:
- Simple and easy to customize
- Concentrated on reading <del>and writing (find a Markdown editor then)</del> experience
- Mobile-friendly & widescreen-friendly
- Flexible commenting control
Features in this ported version:
- Add Gitalk and Valine intergration.
- Customizable color scheme. (Some bug in original version, fixed.)
- Firefox-friendly. (CSS issue in original version, fixed.)
- `featured_image` url bug is fixed.
- Table of Contents with scroll spy and auto collapse.
- Dark mode.
- MathJax support. (Needs to be enabled manually, see [the project wiki](https://github.com/amazingrise/hugo-theme-diary/wiki) for details.)
- Google Custom Search Engine support.
- Internationalization(i18n) support, with English, French and Chinese(Simplified and Traditional).
- Inserting figures more easily, see [wiki](https://github.com/AmazingRise/hugo-theme-diary/wiki/Inserting-Figures) for details.
## Quick Start
If your website is using Git as version control, please do as follows:
1. Fetch the theme dir.
From the root of your Hugo site, open the terminal and execute:
```bash
git submodule add https://github.com/AmazingRise/hugo-theme-diary.git themes/diary
```
2. Update git repository.
Then update the git repository from the root of your site:
```bash
git submodule update --remote --merge
```
3. Run example site.
From the root of themes/diary/exampleSite:
```bash
hugo server --themesDir ../..
```
## Personalization
### Example config
See [/exampleSite/config.toml](https://github.com/AmazingRise/hugo-theme-diary/blob/master/exampleSite/config.toml)
### Customization
Please visit [the project wiki](https://github.com/amazingrise/hugo-theme-diary/wiki) for more details.
[Settings of Table of Contents](https://github.com/AmazingRise/hugo-theme-diary/wiki/Table-Of-Contents)
[Disable Dark Mode](https://github.com/AmazingRise/hugo-theme-diary/wiki/Dark-Mode)
[Enable MathJax](https://github.com/AmazingRise/hugo-theme-diary/wiki/MathJax)
[Add or disable comment area](https://github.com/AmazingRise/hugo-theme-diary/wiki/Comment-Area)
[Add Google Search Box on your site](https://github.com/AmazingRise/hugo-theme-diary/wiki/Customization#add-google-search-box-on-your-site)
[Customizations](https://github.com/AmazingRise/hugo-theme-diary/wiki/Customization)
[Taxonomies and Sections (Archive, Categories and Tags)](https://github.com/AmazingRise/hugo-theme-diary/wiki/Taxonomies-and-Sections-(Archive,-Categories-and-Tags))
[RSS Feed](https://github.com/AmazingRise/hugo-theme-diary/wiki/RSS-Feed)
[Meta Data of posts](https://github.com/AmazingRise/hugo-theme-diary/wiki/Post's-meta-data)
[Enable Reading Time](https://github.com/AmazingRise/hugo-theme-diary/wiki/Reading-Time)
[Internationalization](https://github.com/AmazingRise/hugo-theme-diary/wiki/Internationalization)
## Comparison
For details about the difference lies in the new version, please click [here.](https://github.com/AmazingRise/hugo-theme-diary/wiki/Comparison)
## Screenshots
Site Main Page
![](https://raw.githubusercontent.com/AmazingRise/hugo-theme-diary/master/images/tn.png)
An essay with picture.
![](https://raw.githubusercontent.com/AmazingRise/hugo-theme-diary/master/images/essay.png)
Table of Contents with scroll spy.
![](https://raw.githubusercontent.com/AmazingRise/hugo-theme-diary/master/images/essay2.png)
Mobile View: Main Page
![](https://raw.githubusercontent.com/AmazingRise/hugo-theme-diary/master/images/m_main.png)
Mobile View: Drawer
![](https://raw.githubusercontent.com/AmazingRise/hugo-theme-diary/master/images/m_drawer.png)

View file

@ -1,12 +0,0 @@
---
title: ""
date:
description: ""
tags: []
featured_image: ""
# images is optional, but needed for showing Twitter Card
images: []
categories:
comment : true
draft: true
---

View file

@ -1,252 +0,0 @@
@import "journal";
$light-accent: lighten($color-accent, 10%);
$deep-light-accent: lighten($color-accent, 30%);
$dark-mode-text: darken(#FFF, 10%);
$dark-mode-back-container-background: #212121;
$dark-mode-front-container-background: #282828;
body.night {
background: $dark-mode-back-container-background;
:root{
--color_555: #ccc;
--color_ededed: #000;
}
img {
opacity: .8;
}
blockquote {
* {
color: $deep-light-accent !important;
}
}
a {
color: $light-accent;
&:hover {
color: $deep-light-accent !important;
}
@media screen and (max-width: $single-column-max-width) {
&:hover {
text-decoration: none !important;
}
}
}
code:not([data-lang]) {
color: $deep-light-accent !important;
}
pre {
code:not([data-lang]) {
background: none !important;
color: $dark-mode-text !important;
}
}
table * {
color: $dark-mode-text;
}
.side-container {
$nav-item-hover-background-alpha: 0.02;
$nav-item-hover-indicator-alpha: 0.6;
$nav-item-hover-color-darken: 30%;
$nav-item-active-background-alpha: 0.03;
$nav-item-active-color-darken: 20%;
* {
color: $dark-mode-text;
}
.nav-head {
//border-right: 4px solid $color-accent;
&:hover {
border-right: 2px solid
rgba($color-accent, $nav-item-hover-indicator-alpha);
background: rgba($color-accent, $nav-item-hover-background-alpha);
color: lighten($color-accent, $nav-item-hover-color-darken);
}
&.active {
border-right: 2px solid $color-accent;
background: rgba($color-accent, $nav-item-active-background-alpha);
color: lighten($color-accent, $nav-item-active-color-darken);
}
}
.nav-link-list {
$nav-item-hover-indicator-alpha: 0.6;
$nav-item-hover-color-lighten: 30%;
$nav-item-active-background-alpha: 0.1;
$nav-item-active-color-lighten: 20%;
flex-grow: 1;
.nav-link-item {
color: $dark-mode-text !important;
//border-right: 4px solid transparent;
&:hover {
border-right: 2px solid
rgba($color-accent, $nav-item-hover-indicator-alpha);
color: lighten($color-accent, $nav-item-hover-color-lighten) !important;
}
&.active {
border-right: 2px solid $color-accent;
background: rgba($color-accent, $nav-item-active-background-alpha);
color: lighten($color-accent, $nav-item-active-color-lighten) !important;
}
}
}
}
.stream-container {
.post-head-wrapper-text-only *{
color: $dark-mode-text;
}
.post{
background: $dark-mode-front-container-background;
@media screen and (max-width: $single-column-max-width) {
background: $dark-mode-back-container-background;
}
.post-pagination a:not([href]){
color: $dark-mode-text;
}
.post-comment-wrapper * {
color: $dark-mode-text;
}
}
.post-list-container {
-webkit-transition: all 0.5s ease;
-moz-transition: all 0.5s ease;
-o-transition: all 0.5s ease;
transition: all 0.5s ease;
background: $dark-mode-front-container-background;
@media screen and (max-width: $single-column-max-width) {
background: $dark-mode-back-container-background;
}
&,
> * {
.post-item-wrapper {
* {
color: $dark-mode-text;
}
.post-item-info-wrapper{
@media screen and (max-width: $single-column-max-width) {
box-shadow: 0 0 8px rgba(0, 0, 0, 0.1);
background: $dark-mode-front-container-background;
}
}
@media screen and (max-width: $single-column-max-width) {
box-shadow: 0 0 8px rgba(0, 0, 0, 0.1);
background: $dark-mode-front-container-background;
}
&:not(.post-item-wrapper-no-hover):hover {
background: rgba(255,255,255, 0.03);
* {
color: $deep-light-accent !important;
}
}
}
}
}
}
.single-column-nav-container {
* {
color: $dark-mode-text;
}
@media screen and (max-width: $single-column-max-width) {
.nav-dropdown-toggle {
&:hover {
color: #3f587d !important;
}
}
.navbar-brand {
color: $dark-mode-text;
&:hover {
color: $dark-mode-text;
}
}
.nav-background {
background: $dark-mode-front-container-background;
box-shadow: 0 2px 2px rgba(0, 0, 0, 0.2);
}
}
}
.single-column-header-container {
@media screen and (max-width: $single-column-max-width) {
* {
font-family: $sans-preferred-font-list;
color: $deep-light-accent;
}
.single-column-header-title {
color: $dark-mode-text;
}
.single-column-header-subtitle {
color: $dark-mode-text;
}
}
}
.single-column-drawer-container {
@media screen and (max-width: $single-column-max-width) {
.drawer-content {
background: $dark-mode-front-container-background;
.toc{
background-color: lighten($dark-mode-front-container-background,10%);
}
.drawer-menu {
.drawer-menu-item {
color: $dark-mode-text;
&.active {
border-right: 2px solid $color-accent;
color: $light-accent;
}
}
}
}
}
}
#single-column-footer {
color: $dark-mode-text;
}
.toc{
background-color: $dark-mode-front-container-background;
*{
color: $dark-mode-text;
}
a {
color: $dark-mode-text;
}
.toc-active{
color: $light-accent !important;
}
}
.post-body p,h1,h2,h3,h4,h5,h6,li {
color: $dark-mode-text;
*:not(a){
color: $dark-mode-text;
}
}
.pagination * {
color: $dark-mode-text;
}
.vwrap * {
color: $dark-mode-text !important;
}
.vcontent p {
color: $dark-mode-text !important;
}
.gsc-control-searchbox-only table *{
color: black !important;
}
}

File diff suppressed because it is too large Load diff

View file

@ -1,55 +0,0 @@
baseURL = "http://example.org/"
DefaultContentLanguage = "en" # Theme's display language, supports: en, fr, zh, zh-hant
languageCode = "en-us"
title = "A Hugo Site"
copyright = "This is a customized copyright."
theme = "diary"
# googleAnalytics = "UA-123-45"
[markup]
[markup.highlight]
codeFences = true
guessSyntax = false
hl_Lines = ""
lineNoStart = 1
lineNos = false
lineNumbersInTable = true
noClasses = true
style = "perldoc"
tabWidth = 4
[params]
subtitle = "Themed by Diary."
enableGitalk = true
# Twitter Card and Open Graph settings
enableOpenGraph = true
enableTwitterCards = true
title = "My Blog" # will set 'og:site_name'
description = "My HomePage Description" # will set 'og:description'
[params.gitalk]
owner = "user"
repo = "repo name"
client_id = "your client id"
client_secret = "your client secret"
[taxonomies]
tag = "tags"
category = "categories"
[[menu.main]]
url = "/categories"
name = "Categories"
weight = 2
[[menu.main]]
url = "/tags"
name = "Tags"
weight = 3
[[menu.main]]
url = "/posts"
name = "Archive"
weight = 1
[[menu.main]]
url = "/index.xml"
name = "RSS Feed"
weight = 4

View file

@ -1,83 +0,0 @@
---
date: 2017-04-09T10:58:08-04:00
description: "The Grand Hall"
featured_image: "/images/Pope-Edouard-de-Beaumont-1844.jpg"
images: ["/images/Pope-Edouard-de-Beaumont-1844.jpg"]
tags: ["scene"]
categories: "Story"
title: "Chapter I: The Grand Hall"
---
Three hundred and forty-eight years, six months, and nineteen days ago
to-day, the Parisians awoke to the sound of all the bells in the triple
circuit of the city, the university, and the town ringing a full peal.
The sixth of January, 1482, is not, however, a day of which history has
preserved the memory. There was nothing notable in the event which thus
set the bells and the bourgeois of Paris in a ferment from early morning.
It was neither an assault by the Picards nor the Burgundians, nor a hunt
led along in procession, nor a revolt of scholars in the town of Laas, nor
an entry of “our much dread lord, monsieur the king,” nor even a pretty
hanging of male and female thieves by the courts of Paris. Neither was it
the arrival, so frequent in the fifteenth century, of some plumed and
bedizened embassy. It was barely two days since the last cavalcade of that
nature, that of the Flemish ambassadors charged with concluding the
marriage between the dauphin and Marguerite of Flanders, had made its
entry into Paris, to the great annoyance of M. le Cardinal de Bourbon,
who, for the sake of pleasing the king, had been obliged to assume an
amiable mien towards this whole rustic rabble of Flemish burgomasters, and
to regale them at his Hôtel de Bourbon, with a very “pretty morality,
allegorical satire, and farce,” while a driving rain drenched the
magnificent tapestries at his door.
What put the “whole population of Paris in commotion,” as Jehan de Troyes
expresses it, on the sixth of January, was the double solemnity, united
from time immemorial, of the Epiphany and the Feast of Fools.
On that day, there was to be a bonfire on the Place de Grève, a maypole at
the Chapelle de Braque, and a mystery at the Palais de Justice. It had
been cried, to the sound of the trumpet, the preceding evening at all the
cross roads, by the provosts men, clad in handsome, short, sleeveless
coats of violet camelot, with large white crosses upon their breasts.
So the crowd of citizens, male and female, having closed their houses and
shops, thronged from every direction, at early morn, towards some one of
the three spots designated.
Each had made his choice; one, the bonfire; another, the maypole; another,
the mystery play. It must be stated, in honor of the good sense of the
loungers of Paris, that the greater part of this crowd directed their
steps towards the bonfire, which was quite in season, or towards the
mystery play, which was to be presented in the grand hall of the Palais de
Justice (the courts of law), which was well roofed and walled; and that
the curious left the poor, scantily flowered maypole to shiver all alone
beneath the sky of January, in the cemetery of the Chapel of Braque.
The populace thronged the avenues of the law courts in particular, because
they knew that the Flemish ambassadors, who had arrived two days
previously, intended to be present at the representation of the mystery,
and at the election of the Pope of the Fools, which was also to take place
in the grand hall.
It was no easy matter on that day, to force ones way into that grand
hall, although it was then reputed to be the largest covered enclosure in
the world (it is true that Sauval had not yet measured the grand hall of
the Château of Montargis). The palace place, encumbered with people,
offered to the curious gazers at the windows the aspect of a sea; into
which five or six streets, like so many mouths of rivers, discharged every
moment fresh floods of heads. The waves of this crowd, augmented
incessantly, dashed against the angles of the houses which projected here
and there, like so many promontories, into the irregular basin of the
place. In the centre of the lofty Gothic* façade of the palace, the grand
staircase, incessantly ascended and descended by a double current, which,
after parting on the intermediate landing-place, flowed in broad waves
along its lateral slopes,—the grand staircase, I say, trickled
incessantly into the place, like a cascade into a lake. The cries, the
laughter, the trampling of those thousands of feet, produced a great noise
and a great clamor. From time to time, this noise and clamor redoubled;
the current which drove the crowd towards the grand staircase flowed
backwards, became troubled, formed whirlpools. This was produced by the
buffet of an archer, or the horse of one of the provosts sergeants, which
kicked to restore order; an admirable tradition which the provostship has
bequeathed to the constablery, the constablery to the _maréchaussée_,
the _maréchaussée_ to our _gendarmeri_ of Paris.

View file

@ -1,99 +0,0 @@
---
date: 2017-04-14T11:25:05-04:00
description: "Esmeralda"
featured_image: "/images/esmeralda.jpg"
tags: []
title: "Chapter VI: Esmeralda"
categories: Story
---
We are delighted to be able to inform the reader, that during the whole of
this scene, Gringoire and his piece had stood firm. His actors, spurred on
by him, had not ceased to spout his comedy, and he had not ceased to
listen to it. He had made up his mind about the tumult, and was determined
to proceed to the end, not giving up the hope of a return of attention on
the part of the public. This gleam of hope acquired fresh life, when he
saw Quasimodo, Coppenole, and the deafening escort of the pope of the
procession of fools quit the hall amid great uproar. The throng rushed
eagerly after them. “Good,” he said to himself, “there go all the
mischief-makers.” Unfortunately, all the mischief-makers constituted the
entire audience. In the twinkling of an eye, the grand hall was empty.
To tell the truth, a few spectators still remained, some scattered, others
in groups around the pillars, women, old men, or children, who had had
enough of the uproar and tumult. Some scholars were still perched astride
of the window-sills, engaged in gazing into the Place.
“Well,” thought Gringoire, “here are still as many as are required to hear
the end of my mystery. They are few in number, but it is a choice
audience, a lettered audience.”
An instant later, a symphony which had been intended to produce the
greatest effect on the arrival of the Virgin, was lacking. Gringoire
perceived that his music had been carried off by the procession of the
Pope of the Fools. “Skip it,” said he, stoically.
He approached a group of bourgeois, who seemed to him to be discussing his
piece. This is the fragment of conversation which he caught,—
“You know, Master Cheneteau, the Hôtel de Navarre, which belonged to
Monsieur de Nemours?”
“Yes, opposite the Chapelle de Braque.”
“Well, the treasury has just let it to Guillaume Alixandre, historian, for
six hivres, eight sols, parisian, a year.”
“How rents are going up!”
“Come,” said Gringoire to himself, with a sigh, “the others are
listening.”
“Comrades,” suddenly shouted one of the young scamps from the window, “La
Esmeralda! La Esmeralda in the Place!”
This word produced a magical effect. Every one who was left in the hall
flew to the windows, climbing the walls in order to see, and repeating,
“La Esmeralda! La Esmeralda?” At the same time, a great sound of applause
was heard from without.
“Whats the meaning of this, of the Esmeralda?” said Gringoire, wringing
his hands in despair. “Ah, good heavens! it seems to be the turn of the
windows now.”
He returned towards the marble table, and saw that the representation had
been interrupted. It was precisely at the instant when Jupiter should have
appeared with his thunder. But Jupiter was standing motionless at the foot
of the stage.
“Michel Giborne!” cried the irritated poet, “what are you doing there? Is
that your part? Come up!”
“Alas!” said Jupiter, “a scholar has just seized the ladder.”
Gringoire looked. It was but too true. All communication between his plot
and its solution was intercepted.
“The rascal,” he murmured. “And why did he take that ladder?”
“In order to go and see the Esmeralda,” replied Jupiter piteously. “He
said, Come, heres a ladder thats of no use! and he took it.”
This was the last blow. Gringoire received it with resignation.
“May the devil fly away with you!” he said to the comedian, “and if I get
my pay, you shall receive yours.”
Then he beat a retreat, with drooping head, but the last in the field,
like a general who has fought well.
And as he descended the winding stairs of the courts: “A fine rabble of
asses and dolts these Parisians!” he muttered between his teeth; “they
come to hear a mystery and dont listen to it at all! They are engrossed
by every one, by Chopin Trouillefou, by the cardinal, by Coppenole, by
Quasimodo, by the devil! but by Madame the Virgin Mary, not at all. If I
had known, Id have given you Virgin Mary; you ninnies! And I! to come to
see faces and behold only backs! to be a poet, and to reap the success of
an apothecary! It is true that Homerus begged through the Greek towns, and
that Naso died in exile among the Muscovites. But may the devil flay me if
I understand what they mean with their Esmeralda! What is that word, in
the first place?—tis Egyptian!”

View file

@ -1,16 +0,0 @@
---
date: 2019-11-14T11:25:05-04:00
description: 本文章采用狗屁不通文章生成器生成,无任何实际含义.
featured_image: "/images/chinese.jpg"
tags: [Chinese,text]
title: "中文文本测试"
categories: Chinese
---
  这样看来, 邓拓在不经意间这样说过,越是没有本领的就越加自命不凡。这不禁令我深思。 我们不得不面对一个非常尴尬的事实,那就是, 一般来说, 所谓中午吃什么,关键是中午吃什么需要如何写。 伏尔泰说过一句富有哲理的话,坚持意志伟大的事业需要始终不渝的精神。这启发了我, 那么, 对我个人而言,中午吃什么不仅仅是一个重大的事件,还可能会改变我的人生。 这样看来, 我们一般认为,抓住了问题的关键,其他一切则会迎刃而解。 一般来讲,我们都必须务必慎重的考虑考虑。 黑格尔说过一句富有哲理的话,只有永远躺在泥坑里的人,才不会再掉进坑里。这启发了我, 我们不得不面对一个非常尴尬的事实,那就是, 既然如何, 在这种困难的抉择下,本人思来想去,寝食难安。
  我认为, 而这些并不是完全重要,更加重要的问题是, 了解清楚中午吃什么到底是一种怎么样的存在,是解决一切问题的关键。 中午吃什么因何而发生? 而这些并不是完全重要,更加重要的问题是, 卢梭在不经意间这样说过,浪费时间是一桩大罪过。这启发了我, 既然如此, 从这个角度来看, 歌德在不经意间这样说过,意志坚强的人能把世界放在手中像泥块一样任意揉捏。我希望诸位也能好好地体会这句话。 我认为, 我们一般认为,抓住了问题的关键,其他一切则会迎刃而解。 本人也是经过了深思熟虑,在每个日日夜夜思考这个问题。 这种事实对本人来说意义重大,相信对这个世界也是有一定意义的。 莎士比亚在不经意间这样说过,人的一生是短的,但如果卑劣地过这一生,就太长了。带着这句话,我们还要更加慎重的审视这个问题: 带着这些问题,我们来审视一下中午吃什么。 中午吃什么因何而发生? 我们一般认为,抓住了问题的关键,其他一切则会迎刃而解。 布尔沃曾经说过,要掌握书,莫被书掌握;要为生而读,莫为读而生。这似乎解答了我的疑惑。 而这些并不是完全重要,更加重要的问题是, 生活中,若中午吃什么出现了,我们就不得不考虑它出现了的事实。 本人也是经过了深思熟虑,在每个日日夜夜思考这个问题。 带着这些问题,我们来审视一下中午吃什么。 生活中,若中午吃什么出现了,我们就不得不考虑它出现了的事实。 我认为, 一般来说, 中午吃什么,到底应该如何实现。 我们不得不面对一个非常尴尬的事实,那就是, 所谓中午吃什么,关键是中午吃什么需要如何写。 我们一般认为,抓住了问题的关键,其他一切则会迎刃而解。 现在,解决中午吃什么的问题,是非常非常重要的。
  我们一般认为,抓住了问题的关键,其他一切则会迎刃而解。 可是,即使是这样,中午吃什么的出现仍然代表了一定的意义。 带着这些问题,我们来审视一下中午吃什么。 本人也是经过了深思熟虑,在每个日日夜夜思考这个问题。 我认为, 问题的关键究竟为何? 非洲曾经提到过,最灵繁的人也看不见自己的背脊。这启发了我, 易卜生说过一句富有哲理的话,伟大的事业,需要决心,能力,组织和责任感。这似乎解答了我的疑惑。 一般来说, 在这种困难的抉择下,本人思来想去,寝食难安。 中午吃什么,到底应该如何实现。 经过上述讨论, 我们一般认为,抓住了问题的关键,其他一切则会迎刃而解。 中午吃什么因何而发生?
带着这些问题,我们来审视一下中午吃什么。 对我个人而言,中午吃什么不仅仅是一个重大的事件,还可能会改变我的人生。

View file

@ -1,65 +0,0 @@
---
title: "(No comment) When You Have Too Much to Do"
date: 2018-03-18T02:01:58+05:30
description: "You have a to-do list that scrolls on for days. You are managing multiple projects, getting lots of email and messages on different messaging systems, managing finances and personal health habits and so much more."
tags: [Primer, todo]
featured_image: "/images/notebook.jpg"
categories: Todo
comment : false
---
You have a to-do list that scrolls on for days. You are managing multiple projects, getting lots of email and messages on different messaging systems, managing finances and personal health habits and so much more.
It all keeps piling up, and it can feel overwhelming.
How do you keep up with it all? How do you find focus and peace and get stuff accomplished when you have too much on your plate?
In this primer, Ill look at some key strategies and tactics for taking on an overloaded life with an open heart, lots of energy, and a smile on your face.
## The First Step: Triage
Whether youre just starting your day, or youre in the middle of the chaos and just need to find some sanity … the first step is to get into triage mode.
Triage, as you probably know, is sorting through the chaos to prioritize: what needs to be done now, what needs to be done today, what needs to be done this week, and what can wait? Youre looking at urgency, but also whats meaningful and important.
Heres what you might do:
* Pick out the things that need to be done today. Start a Short List for things youre going to do today. That might be important tasks for big projects, urgent tasks that could result in damage if you dont act, smaller admin tasks that you really should take care of today, and responding to important messages. I would recommend being ruthless and cutting out as much as you can, having just 5 things on your plate if thats at all possible. Not everything needs to be done today, and not every email needs to be responded to.
* Push some things to tomorrow and the rest of the week. If you have deadlines that can be pushed back (or renegotiated), do that. Spread the work out over the week, even into next week. What needs to be done tomorrow? What can wait a day or two longer?
* Eliminate what you can. That might mean just not replying to some messages that arent that important and dont really require a reply. It might mean telling some people that you cant take on this project after all, or that you need to get out of the commitment that you said youd do. Yes, this is uncomfortable. For now, just put them on a list called, “To Not Do,” and plan to figure out how to get out of them later.
OK, you have some breathing room and a manageable list now! Lets shrink that down even further and just pick one thing.
## Next: Focus on One Thing
With a lot on your plate, its hard to pick one thing to focus on. But thats exactly what Im going to ask you to do.
Pick one thing, and give it your focus. Yes, there are a lot of other things you can focus on. Yes, theyre stressing you out and making it hard to focus. But think about it this way: if you allow it all to be in your head all the time, that will always be your mode of being. Youll always be thinking about everything, stressing out about it all, with a frazzled mind … unless you start shifting.
The shift:
* Pick something to focus on. Look at the triaged list from the first section … if you have 5-6 things on this Short List, you can assess whether theres any super urgent, time-sensitive things you need to take care of. If there are, pick one of them. If not, pick the most important one — probably the one you have been putting off doing.
* Clear everything else away. Just for a little bit. Close all browser tabs, turn off notifications, close open applications, put your phone away.
* Put that one task before you, and allow yourself to be with it completely. Pour yourself into it. Think of it as a practice, of letting go (of everything else), of focus, of radical simplicity.
When youre done (or after 15-20 minutes have gone by at least), you can switch to something else. But dont allow yourself to switch until then.
By closing off all exits, by choosing one thing, by giving yourself completely to that thing … youre now in a different mode that isnt so stressful or spread thin. Youve started a shift that will lead to focus and sanity.
## Third: Schedule Time to Simplify
Remember the To Not Do list above? Schedule some time this week to start reducing your projects, saying no to people, getting out of commitments, crossing stuff off your task list … so that you can have some sanity back.
There are lots of little things that youve said “yes” to that you probably shouldnt have. Thats why youre overloaded. Protect your more important work, and your time off, and your peace of mind, by saying “no” to things that arent as important.
Schedule the time to simplify — you dont have to do it today, but sometime soon — and you can then not have to worry about the things on your To Not Do list until then.
## Fourth: Practice Mindful Focus
Go through the rest of the day with an attitude of “mindful focus.” That means that you are doing one thing at a time, being as present as you can, switching as little as you can.
Think of it as a settling of the mind. A new mode of being. A mindfulness practice (which means you wont be perfect at it).
As you practice mindful focus, youll learn to practice doing things with an open heart, with curiosity and gratitude, and even joy. Try these one at a time as you get to do each task on your Short List.
Youll find that youre not so overloaded, but that each task is just perfect for that moment. And thats a completely new relationship with the work that you do, and a new relationship with life.

View file

@ -1,77 +0,0 @@
---
title: "Typography - Test for features"
date: 2018-03-18T12:13:38+05:30
description: Lid est laborum et dolorum fuga. Et harum quidem rerum facilis est et expeditasi distinctio. Nam libero tempore, cum soluta nobis est eligendi optio cumque nihilse impedit quo minus id quod amets untra dolor amet sad.
tags: typography
---
Lid est laborum et dolorum fuga. Et harum quidem rerum facilis est et expeditasi distinctio. Nam libero tempore, cum soluta nobis est eligendi optio cumque nihilse impedit quo minus id quod amets untra dolor amet sad. Sed ut perspser iciatis unde omnis iste natus error sit voluptatem accusantium doloremque laste. Dolores sadips ipsums sits.
# Heading 1
Lid est laborum et dolorum fuga. Et harum quidem rerum facilis est et expeditasi distinctio. Nam libero tempore, cum soluta nobis est eligendi optio cumque nihilse impedit quo minus id quod amets untra dolor amet sad. Sed ut perspser iciatis unde omnis iste natus error sit voluptatem accusantium doloremque laste. Dolores sadips ipsums sits.
## Heading 2
Lid est laborum et dolorum fuga. Et harum quidem rerum facilis est et expeditasi distinctio. Nam libero tempore, cum soluta nobis est eligendi optio cumque nihilse impedit quo minus id quod amets untra dolor amet sad. Sed ut perspser iciatis unde omnis iste natus error sit voluptatem accusantium doloremque laste. Dolores sadips ipsums sits.
### Heading 3
Lid est laborum et dolorum fuga. Et harum quidem rerum facilis est et expeditasi distinctio. Nam libero tempore, cum soluta nobis est eligendi optio cumque nihilse impedit quo minus id quod amets untra dolor amet sad. Sed ut perspser iciatis unde omnis iste natus error sit voluptatem accusantium doloremque laste. Dolores sadips ipsums sits.
#### Heading 4
Lid est laborum et dolorum fuga. Et harum quidem rerum facilis est et expeditasi distinctio. Nam libero tempore, cum soluta nobis est eligendi optio cumque nihilse impedit quo minus id quod amets untra dolor amet sad. Sed ut perspser iciatis unde omnis iste natus error sit voluptatem accusantium doloremque laste. Dolores sadips ipsums sits.
##### Heading 5
Lid est laborum et dolorum fuga. Et harum quidem rerum facilis est et expeditasi distinctio. Nam libero tempore, cum soluta nobis est eligendi optio cumque nihilse impedit quo minus id quod amets untra dolor amet sad. Sed ut perspser iciatis unde omnis iste natus error sit voluptatem accusantium doloremque laste. Dolores sadips ipsums sits.
###### Heading 6
Lid est laborum et dolorum fuga. Et harum quidem rerum facilis est et expeditasi distinctio. Nam libero tempore, cum soluta nobis est eligendi optio cumque nihilse impedit quo minus id quod amets untra dolor amet sad. Sed ut perspser iciatis unde omnis iste natus error sit voluptatem accusantium doloremque laste. Dolores sadips ipsums sits.
## Typography
Lid est laborum et dolorum fuga, This is [an example](http://example.com/ "Title") inline link. Et harum quidem rerum facilis, **This is bold** and *emphasis* cumque nihilse impedit quo minus id quod amets untra dolor amet sad. While this is `code block()` and following is a `pre` tag
print 'this is pre tag'
Following is the syntax highlighted code block
```go
func getCookie(name string, r interface{}) (*http.Cookie, error) {
rd := r.(*http.Request)
cookie, err := rd.Cookie(name)
if err != nil {
return nil, err
}
return cookie, nil
}
func setCookie(cookie *http.Cookie, w interface{}) error {
// Get write interface registered using `Acquire` method in handlers.
wr := w.(http.ResponseWriter)
http.SetCookie(wr, cookie)
return nil
}
```
This is blockquote, Will make it *better now*
> 'I want to do with you what spring does with the cherry trees.' <cite>cited ~Pablo Neruda</cite>*
> Et harum quidem *rerum facilis* est et expeditasi distinctio. Nam libero tempore, cum soluta nobis est eligendi optio cumque nihilse impedit
Unordered list
* Red
* Green
* Blue
Ordered list
1. Red
2. Green
3. Blue

View file

@ -1,28 +0,0 @@
- id: last_mod_on
translation: Zuletzt bearbeitet am {{ .Format "02.01.2006" }}
- id: format_date
translation: '{{ .Format "02.01.2006" }}'
- id: format_date_tosec
translation: '{{ .Format "02.01.2006 15:04" }}'
- id: next_link
translation: Nächste
- id: prev_link
translation: Vorherige
- id: no_newer_posts
translation: Keine neueren Beiträge.
- id: no_older_posts
translation: Keine älteren Beiträge.
- id: comments_disabled
translation: Kommentare deaktiviert.
- id: comments_activate_js
translation: Bitte aktiviere JavaScript um Kommentare zu sehen.
- id: hugo_theme
translation: Hugo Theme
- id: ported_from
translation: Adaptiert von
- id: by
translation: von
- id: draft
translation: ENTWURF
- id: toc_title
translation: INHALTE

View file

@ -1,28 +0,0 @@
- id: last_mod_on
translation: Last modified on {{ .Format "2006-01-02" }}
- id: format_date
translation: '{{ .Format "2006-01-02" }}'
- id: format_date_tosec
translation: '{{ .Format "2006-01-02 15:04" }}'
- id: next_link
translation: Next
- id: prev_link
translation: Previous
- id: no_newer_posts
translation: No newer posts.
- id: no_older_posts
translation: No older posts.
- id: comments_disabled
translation: Comments Disabled.
- id: comments_activate_js
translation: Please activate JavaScript to view comments.
- id: hugo_theme
translation: Hugo Theme
- id: ported_from
translation: Ported from
- id: by
translation: by
- id: draft
translation: DRAFT
- id: toc_title
translation: CATALOG

View file

@ -1,28 +0,0 @@
- id: last_mod_on
translation: Dernière modification le {{ .Format "02/01/2006" }}
- id: format_date
translation: '{{ .Format "02/01/2006" }}'
- id: format_date_tosec
translation: '{{ .Format "02/01/2006 15h04" }}'
- id: next_link
translation: Suivant
- id: prev_link
translation: Précédent
- id: no_newer_posts
translation: Pas de post plus récent.
- id: no_older_posts
translation: Pas de post plus ancien.
- id: comments_disabled
translation: Commentaires Désactivés.
- id: comments_activate_js
translation: Veuillez activer JavaScript pour utiliser le système de commentaires.
- id: hugo_theme
translation: Theme Hugo
- id: ported_from
translation: Adapté de
- id: by
translation: par
- id: draft
translation: BROUILLON
- id: toc_title
translation: TABLE

View file

@ -1,28 +0,0 @@
- id: last_mod_on
translation: 上次修改於 {{ .Format "2006-01-02" }}
- id: format_date
translation: '{{ .Format "2006-01-02" }}'
- id: format_date_tosec
translation: '{{ .Format "2006-01-02 15:04" }}'
- id: next_link
translation: 下回
- id: prev_link
translation: 上回
- id: no_newer_posts
translation: 已經到底啦。
- id: no_older_posts
translation: 這是最舊的文章了。
- id: comments_disabled
translation: 此篇文章的評論功能已經停用。
- id: comments_activate_js
translation: 請開啓 JavaScript 以便使用評論服務。
- id: hugo_theme
translation: Hugo Theme
- id: ported_from
translation: 移植自
- id: by
translation: by
- id: draft
translation: 草稿
- id: toc_title
translation: 目錄

View file

@ -1,28 +0,0 @@
- id: last_mod_on
translation: 最后修改于 {{ .Format "2006-01-02" }}
- id: format_date
translation: '{{ .Format "2006-01-02" }}'
- id: format_date_tosec
translation: '{{ .Format "2006-01-02 15:04" }}'
- id: next_link
translation: '下回'
- id: prev_link
translation: '上回'
- id: no_newer_posts
translation: 已经到头啦。
- id: no_older_posts
translation: 这是最旧的文章了。
- id: comments_disabled
translation: 此篇文章的评论功能已经停用。
- id: comments_activate_js
translation: 请开启 JavaScript 以便使用评论服务。
- id: hugo_theme
translation: Hugo Theme
- id: ported_from
translation: 移植自
- id: by
translation: by
- id: draft
translation: 草稿
- id: toc_title
translation: 目录

Binary file not shown.

Before

Width:  |  Height:  |  Size: 391 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 165 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 47 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 121 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 285 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 156 KiB

View file

@ -1,21 +0,0 @@
<!DOCTYPE html>
<html>
{{- partial "head.html" . -}}
<body>
<div id="app">
{{- partial "sidebar.html" . -}}
{{- partial "extrabar.html" . -}}
<!-- PC view -->
{{- partial "mobile-header.html" . -}}
<!-- mobile header -->
<div id="content">
{{- block "main" . }}{{- end }}
</div>
{{- partial "mobile-footer.html" . -}}
<!-- mobile footer -->
</div>
{{ partial "journal.html" .}}
</body>
</html>

View file

@ -1,34 +0,0 @@
{{ define "main" }}
<div ref="streamContainer" class="stream-container">
<div class="post-list-container post-list-container-shadow">
{{ range .Paginator.Pages.GroupByDate "2006" }}
<a class="a-block">
<div class="post-item-wrapper post-item-wrapper-no-hover">
<div class="post-item post-item-no-gaps">
<div class="post-item-info-wrapper">
<div class="post-item-title post-item-title-small year">
{{ .Key }}
</div>
</div>
</div>
</div>
</a>
{{ range .Pages }}
<a href="{{ .RelPermalink }}" class="a-block">
<div class="post-item-wrapper">
<div class="post-item post-item-no-gaps">
<div class="post-item-info-wrapper">
<div class="post-item-title">
{{.Title}}
</div>
{{ partial "post-item-meta.html" . }}
</div>
</div>
</div>
</a>
{{ end }}
{{ end }}
</div>
</div>
{{ end }}

View file

@ -1,113 +0,0 @@
{{ define "main" }}
<div ref="streamContainer" class="stream-container">
<div class="post-list-container post-list-container-shadow">
<div class="post">
{{ $post_class := "post-head-wrapper-text-only"}}
{{ $featured_image := .Params.featured_image }}
{{ if $featured_image }}
{{ $post_class = "post-head-wrapper"}}
{{ end }}
<div class="{{$post_class}}"
{{ if $featured_image }}
{{ $image := .Resources.GetMatch (.Params.featured_image) }}
{{ if $image }}
style="background-image: url('{{$image.Permalink }}')"
{{ else }}
style="background-image: url('{{ $featured_image | absURL}}')"
{{ end }}
{{ end }}
>
<div class="post-title">
{{ .Title }}
{{ if .Params.description }}
<div class="post-subtitle">
{{ .Params.description }}
</div>
{{ end }}
<div class="post-meta">
{{ if .Params.date}}
<time itemprop="datePublished">
{{ i18n "format_date_tosec" .PublishDate }}
</time>
{{ end }}
{{ if .Params.categories }}
<i class="material-icons" style="">folder</i>
<a href="{{ "/categories/" | relLangURL }}{{ .Params.categories | urlize }}">{{ .Params.categories }}</a>
&nbsp;
{{ end }}
{{ if gt .Params.tags 0 }}
<i class="material-icons" style="">label</i>
{{ range .Params.tags }}
<a href="{{ "/tags/" | relLangURL }}{{ . | urlize }}">{{ . }}</a>
&nbsp;
{{ end }}
{{ end }}
{{ if .Site.Params.enableReadingTime }}
<i class="material-icons" style="">schedule</i>
{{ $readTime := mul (div (countwords .Content) 220.0) 60 }}
{{ $minutes := math.Floor (div $readTime 60) }}
{{ $seconds := mod $readTime 60 }}
{{ if gt $minutes 0}}
{{ $minutes }} {{ cond (eq $minutes 1) "minute" "min" }}
{{ end }}
{{ $seconds }} {{ cond (eq $seconds 1) "second" "s" }}.
{{ end }}
</div>
</div>
</div>
<div class="post-body-wrapper">
{{ if .Params.enableVue }}
<div class="post-body">
{{ else }}
<div class="post-body" v-pre>
{{ end }}
{{.Content}}
{{ if not .Lastmod.IsZero }}
<HR width="100%" id="EOF">
<p style="color:#777;">{{ i18n "last_mod_on" .Page.Lastmod }}</p>
{{ end }}
</div>
</div>
<nav class="post-pagination">
{{if .Next}}
<a class="newer-posts" href="{{.Next.Permalink}}">
{{ i18n "next_link" }}<br>{{.Next.Title}}
</a>
{{else}}
<a class="newer-posts">
{{ i18n "next_link" }}<br>{{ i18n "no_newer_posts"}}
</a>
{{end}}
{{if .Prev}}
<a class="older-posts" href="{{.Prev.Permalink}}">
{{ i18n "prev_link" }}<br>{{.Prev.Title}}
</a>
{{else}}
<a class="older-posts">
{{ i18n "prev_link" }}<br>{{ i18n "no_older_posts" }}
</a>
{{end}}
</nav>
<div class="post-comment-wrapper">
{{ if eq .Params.comment false }}
<p style="opacity: 0.6" align="center">
<small>{{ i18n "comments_disabled" }}</small>
</p>
{{ else }}
{{- partial "comment.html" . -}}
{{ end }}
</div>
</div>
</div>
</div>
{{ end }}

View file

@ -1,29 +0,0 @@
{{ define "main" }}
<div ref="streamContainer" class="stream-container">
<div class="post-list-container post-list-container-shadow">
<div class="post-item-wrapper post-item-wrapper-no-hover">
<div class="post-item post-item-no-gaps">
<div class="post-item-info-wrapper">
<div class="post-item-title post-item-title-small">
<a href="{{.FirstSection.Permalink}}">{{.FirstSection.Title}}</a> / {{ .Title }}
</div>
</div>
</div>
</div>
{{- range .Paginator.Pages -}}
<a href="{{ .RelPermalink }}" class="a-block">
<div class="post-item-wrapper">
<div class="post-item post-item-no-gaps">
<div class="post-item-info-wrapper">
<div class="post-item-title">
{{.Title}}
</div>
{{ partial "post-item-meta.html" . }}
</div>
</div>
</div>
</a>
{{- end -}}
</div>
</div>
{{ end }}

View file

@ -1,32 +0,0 @@
{{ define "main" }}
<div ref="streamContainer" class="stream-container">
<div class="post-list-container post-list-container-shadow">
<a class="a-block">
<div class="post-item-wrapper post-item-wrapper-no-hover">
<div class="post-item post-item-no-gaps">
<div class="post-item-info-wrapper">
<div class="post-item-title post-item-title-small">
{{.Title}}
</div>
</div>
</div>
</div>
</a>
{{ range .Paginator.Pages }}
<a href="{{.Permalink}}" class="a-block">
<div class="post-item-wrapper">
<div class="post-item post-item-no-gaps">
<div class="post-item-info-wrapper">
<div class="post-item-title">
{{.Title}}
</div>
</div>
</div>
</div>
</a>
{{ end }}
</div>
</div>
{{ end }}

View file

@ -1,40 +0,0 @@
{{ define "main" }}
<div ref="streamContainer" class="stream-container">
<div class="post-list-container post-list-container-no-background">
{{range .Paginator.Pages}}
{{if and (.IsPage) (.Params.date)}}
<a href="{{.Permalink}}" class="a-block">
<div class="post-item-wrapper">
<div class="post-item post-item-no-divider">
<div class="post-item-info-wrapper">
<div class="post-item-title">
{{.Title}}
</div>
<div class="post-item-summary">
{{.Description}}
</div>
{{ partial "post-item-meta.html" . }}
</div>
{{ $featured_image := .Params.featured_image }}
{{ if $featured_image }}
{{ $image := .Resources.GetMatch (.Params.featured_image) }}
<div class="post-item-image-wrapper">
<div class="post-item-image"
{{ if $image }}
style="background-image: url('{{ $image.Permalink }}')"
{{ else }}
style="background-image: url('{{ $featured_image | absURL}}')"
{{ end }}
></div>
</div>
{{ end }}
</div>
</div>
{{ end }}
{{ end }}
</a>
</div>
</div>
{{ end }}

View file

@ -1,28 +0,0 @@
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
<title>{{ if eq .Title .Site.Title }}{{ .Site.Title }}{{ else }}{{ with .Title }}{{.}} on {{ end }}{{ .Site.Title }}{{ end }}</title>
<link>{{ .Permalink }}</link>
<description>Recent content {{ if ne .Title .Site.Title }}{{ with .Title }}in {{.}} {{ end }}{{ end }}on {{ .Site.Title }}</description>
<generator>Hugo -- gohugo.io</generator>{{ with .Site.LanguageCode }}
<language>{{.}}</language>{{end}}{{ with .Site.Author.email }}
<managingEditor>{{.}}{{ with $.Site.Author.name }} ({{.}}){{end}}</managingEditor>{{end}}{{ with .Site.Author.email }}
<webMaster>{{.}}{{ with $.Site.Author.name }} ({{.}}){{end}}</webMaster>{{end}}{{ with .Site.Copyright }}
<copyright>{{.}}</copyright>{{end}}{{ if not .Date.IsZero }}
<lastBuildDate>{{ .Date.Format "Mon, 02 Jan 2006 15:04:05 -0700" | safeHTML }}</lastBuildDate>{{ end }}
{{ with .OutputFormats.Get "RSS" }}
{{ printf "<atom:link href=%q rel=\"self\" type=%q />" .Permalink .MediaType | safeHTML }}
{{ end }}
{{ range .Paginator.Pages }}
{{ if and (.IsPage) (.Params.date) }}
<item>
<title>{{ .Title }}</title>
<link>{{ .Permalink }}</link>
<pubDate>{{ .Date.Format "Mon, 02 Jan 2006 15:04:05 -0700" | safeHTML }}</pubDate>
{{ with .Site.Author.email }}<author>{{.}}{{ with $.Site.Author.name }} ({{.}}){{end}}</author>{{end}}
<guid>{{ .Permalink }}</guid>
<description>{{ .Site.Title }} {{ .Permalink }} - {{- .Content | html -}} - {{ .Permalink }} - {{.Site.Copyright}}</description>
</item>
{{ end }}
{{ end }}
</channel>
</rss>

View file

@ -1,22 +0,0 @@
{{ if .Site.Params.disqusShortname }}
<div class="comments">
<vue-disqus shortname="{{.Site.Params.disqusShortname}}"></vue-disqus>
</div>
<noscript><noscript>{{ i18n "comments_activate_js" }}</noscript></noscript>
<a href="https://disqus.com/" class="dsq-brlink">Comments powered by <span class="logo-disqus">Disqus</span></a>
{{ end }}
{{ if .Site.Params.enableGitalk }}
<div id="gitalk-container"></div>
{{ end }}
{{ if .Site.Params.enableValine }}
<div id="vcomments"></div>
<!-- Script moved to journal.html -->
{{ end }}
{{ if .Site.Params.livereId }}
<div id="lv-container" data-id="city" data-uid={{.Site.Params.livereId}}>
<noscript>{{ i18n "comments_activate_js" }}</noscript>
</div>
{{ end }}

View file

@ -1,12 +0,0 @@
<!-- Please don't remove the information of theme makers. -->
{{ i18n "hugo_theme" }} <a href="https://github.com/amazingrise/hugo-theme-diary">Diary</a> {{ i18n "by" }} <a href="https://amazingrise.net">Rise</a>
<br>
{{ i18n "ported_from" }} <a href="https://mak1t0.cc/" target="_blank" rel="noreferrer noopener">Makito</a>'s <a href="https://github.com/SumiMakito/hexo-theme-journal/" target="_blank" rel="noreferrer noopener">Journal.</a> <br>
<br>
<!-- Because this project is under MIT licence. -->
&copy;
{{ if .Site.Copyright }}
{{ .Site.Copyright }}
{{ else }}
{{.Site.Home.Date.Year}} {{.Site.Title}}
{{ end }}

View file

@ -1,55 +0,0 @@
<div ref="extraContainer" class="extra-container">
{{ if and (isset .Site.Params "googlesearchcode") (.IsHome) }}
<!--
<script async src="https://cse.google.com/cse.js?cx={{.Site.Params.googleSearchCode}}"></script>
-->
<div class="gcse-searchbox-only" mobileLayout="true"></div>
{{ end }}
{{ if and (not (.Site.Params.disableToC) ) (.IsPage) }}
<div class="toc animated-visibility" :class="{ invisible: scrollY <= 140 }">
{{- partial "toc.html" . -}}
</div>
{{ end }}
<div class="pagination">
<a id="globalBackToTop" class="pagination-action animated-visibility" href="#top" :class="{ invisible: scrollY == 0 }">
<i class="material-icons pagination-action-icon">
keyboard_arrow_up
</i>
</a>
{{ if not .Site.Params.disableDarkMode }}
<a class="pagination-action" v-on:click="toggleDarkMode">
<i class="material-icons pagination-action-icon" v-if="isDarkMode">
brightness_4
</i>
<i class="material-icons pagination-action-icon" v-else="isDarkMode">
brightness_7
</i>
</a>
{{ end }}
{{ if .Paginator }}
{{ if gt .Paginator.TotalPages 1 }}
<div class="pagination-indicator">
<span style="text-align: center">
{{.Paginator.PageNumber}}<br><div style="display: inline-block; transform: rotate(-28deg)">-</div><br>{{.Paginator.TotalPages}}
</span>
</div>
{{ if .Paginator.HasPrev }}
<a class="pagination-action" href="{{.Paginator.Prev.URL}}">
<i class="material-icons pagination-action-icon">
chevron_left
</i>
</a>
{{ end }}
{{ if .Paginator.HasNext }}
<a class="pagination-action" href="{{.Paginator.Next.URL}}">
<i class="material-icons pagination-action-icon">
chevron_right
</i>
</a>
{{ end }}
{{ end }}
{{ end }}
</div>
</div>

View file

@ -1,123 +0,0 @@
<head>
<title>{{.Title}}</title>
{{ $description := .Params.description}}
{{if .IsHome}}
{{ $description = .Site.Params.description}}
{{end}}
<meta charset="utf-8">
<meta name="X-UA-Compatible" content="IE=edge">
<meta name="google-site-verification" content="{{ .Site.Params.googleSiteVerification }}">
<meta content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0" name="viewport">
<meta content="telephone=no" name="format-detection">
<meta name="description" content="{{ $description }}">
<meta name="renderer" content="webkit">
<meta name="theme-color" content="#ffffff">
<!-- open-graph -->
{{if .Site.Params.enableOpenGraph}}
{{ template "_internal/opengraph.html" . }}
{{end}}
<!-- twitter-cards -->
{{if .Site.Params.enableTwitterCards}}
{{ template "_internal/twitter_cards.html" . }}
{{end}}
<!-- metadata -->
{{ if .Site.GoogleAnalytics }}
{{ template "_internal/google_analytics.html" . }}
{{ end }}
<script src="{{"/vendor/js/jquery.min.js" | relURL}}" ></script>
<script src="{{"/vendor/js/popper.min.js" | relURL}}" ></script>
<script src="{{"/vendor/js/bootstrap.min.js" | relURL}}" ></script>
<script src="{{"/vendor/js/smooth-scroll.polyfills.min.js" | relURL}}" ></script>
<link type="text/css" rel="stylesheet" href="{{"/vendor/css/bootstrap.min.css" | relURL}}">
<script src="{{"/vendor/js/vue.min.js" | relURL}}" ></script>
{{if .Site.Params.manifest}}
<link rel="manifest" href="{{.Site.Params.manifest}}">
{{end}}
{{ if .Site.Params.favicon }}
<link rel="icon" href="{{ .Site.Params.favicon | absURL }}">
<!-- favicon -->
{{ end }}
{{ $styles := resources.Get "scss/journal.scss" | toCSS | minify | fingerprint }}
<link rel="stylesheet" href="{{ $styles.Permalink }}" integrity="{{ $styles.Data.Integrity }}" media="screen">
{{ if not .Site.Params.disableDarkmode }}
{{ $darkmode := resources.Get "scss/dark-mode.scss" | toCSS | minify | fingerprint }}
<link rel="stylesheet" href="{{ $darkmode.Permalink }}" integrity="{{ $darkmode.Data.Integrity }}" media="screen">
{{ end }}
<script src="{{.Site.BaseURL}}/js/loadCSS.js"></script>
<!--
<script>
loadCSS("https://fonts.googleapis.com/css?family=Lora|Montserrat|Fira+Mono|Noto+Serif+SC|Material+Icons");
</script>
-->
{{ if .Params.enableMathJax }}
{{ partial "mathjax.html" . }}
{{ end }}
{{ if and (not (.Params.disableToC) ) (.IsPage) }}
{{ if .Site.Params.disableAutoCollapse }}
<script src="{{.Site.BaseURL}}/js/toc.js"></script>
{{ else }}
<script src="{{.Site.BaseURL}}/js/toc-collapse.js"></script>
{{ end }}
{{ end }}
{{ if and (.Site.Params.enableGitalk) (.IsPage) }}
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/gitalk@1/dist/gitalk.css">
<script src="https://cdn.jsdelivr.net/npm/gitalk@1/dist/gitalk.min.js"></script>
<script src="{{"/vendor/js/md5.min.js" | relURL}}"></script>
<script>
var gitalk = new Gitalk({
clientID: '{{ .Site.Params.Gitalk.client_id }}',
clientSecret: '{{ .Site.Params.Gitalk.client_secret }}',
repo: '{{ .Site.Params.Gitalk.repo }}',
owner: '{{ .Site.Params.Gitalk.owner }}',
admin: ['{{ .Site.Params.Gitalk.owner }}'],
id: md5(location.pathname),
distractionFreeMode: 'false'
});
window.onload = function () {
gitalk.render('gitalk-container')
}
</script>
{{ end }}
{{ if and (.Site.Params.livereId) (.IsPage) }}
<script type="text/javascript">
$(
(function(d, s) {
var j, e = d.getElementsByTagName(s)[0];
if (typeof LivereTower === 'function') { return; }
j = d.createElement(s);
j.src = 'https://cdn-city.livere.com/js/embed.dist.js';
j.async = true;
e.parentNode.insertBefore(j, e);
})(document, 'script'));
</script>
{{ end }}
{{ if and (.Site.Params.enableValine) (.IsPage) }}
<script src='https://unpkg.com/valine@1.4.14/dist/Valine.min.js'></script>
{{ end }}
{{ if .Site.Params.disqusShortname }}
<script src="https://cdn.jsdelivr.net/npm/vue-disqus@3/dist/vue-disqus.js"></script>
{{ end }}
{{ partial "victorhugo.html" . }}
</head>

View file

@ -1,112 +0,0 @@
<script>
let app;
app = new Vue({
el: '#app',
data: {
scrollY: 0,
navOpacity: 0,
isDrawerOpen: false,
mounted: false,
isDarkMode: false
},
methods: {
sgn(t, x) {
let k = 1. / (1. - 2 * t);
if (x <= t) return 0;
else if (x >= 1 - t) return 1;
else {
return k * (x - t);
}
},
handleScroll() {
this.scrollY = window.scrollY;
this.navOpacity = this.sgn(.0, Math.min(1, Math.max(0, window.scrollY / (this.pageHeadHeight() - this.navBarHeight() * 0.8))));
const {navBar, navBackground, navTitle, extraContainer, streamContainer} = this.$refs;
if (this.navOpacity >= 1) {
navBackground.style.opacity = 1;
navTitle.style.opacity = 1;
} else {
navBackground.style.opacity = 0;
navTitle.style.opacity = 0;
}
},
handleResize() {
const {navBar, navBackground, navTitle, extraContainer, streamContainer} = this.$refs;
extraContainer.style.left = (streamContainer.offsetWidth - extraContainer.offsetWidth) + 'px';
},
navBarHeight() {
return this.$refs.navBar.offsetHeight;
},
pageHeadHeight() {
return this.$refs.pageHead.offsetHeight;
},
toggleDrawer() {
this.isDrawerOpen = !this.isDrawerOpen;
document.getElementsByTagName('html')[0].style.overflow = this.isDrawerOpen ? 'hidden' : 'unset';
},
closeDrawer() {
this.isDrawerOpen = false;
document.getElementsByTagName('html')[0].style.overflow = this.isDrawerOpen ? 'hidden' : 'unset';
},
toggleDarkMode() {
this.isDarkMode = !this.isDarkMode;
if (this.isDarkMode==true){
document.cookie = "night=1;path=/";
document.body.classList.add("night");
} else {
document.cookie = "night=0;path=/";
document.body.classList.remove("night");
}
}
},
created() {
window.addEventListener('scroll', this.handleScroll);
window.addEventListener('resize', this.handleResize);
window._nonDesktop = function () {
let check = false;
(function (a) {
if (/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino|android|ipad|playbook|silk/i.test(a) || /1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(a.substr(0, 4))) check = true;
})(navigator.userAgent || navigator.vendor || window.opera);
return check;
};
// From https://www.jdeal.cn/archives/Dark.html
var night = document.cookie.replace(/(?:(?:^|.*;\s*)night\s*\=\s*([^;]*).*$)|^.*$/, "$1");
if (night==""){
if (window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches) {
{{ if .Site.Params.enableAutoDarkMode }}
this.toggleDarkMode();
{{ end }}
}
}else{
// If night is not empty
if (night=="1") {
this.toggleDarkMode();
}
}
},
mounted() {
this.handleScroll();
this.handleResize();
this.mounted = true;
{{ if and (.Site.Params.enableValine) (.IsPage) }}
new Valine({
el: '#vcomments',
appId: {{.Site.Params.valine.appId}},
appKey: {{.Site.Params.valine.appKey}},
requiredFields: ['nick','mail'],
enableQQ: true,
recordIP: true,
})
{{ end }}
},
destroyed() {
window.removeEventListener('scroll', this.handleScroll);
window.removeEventListener('resize', this.handleResize);
}
});
</script>
<script src="{{.Site.BaseURL}}/js/journal.js"></script>

View file

@ -1,36 +0,0 @@
<!-- From https://note.qidong.name/2018/03/hugo-mathjax/ -->
<script src="https://polyfill.io/v3/polyfill.min.js?features=es6"></script>
<script>
MathJax = {
tex: {
inlineMath: [['$', '$'], ['\\(', '\\)']]
},
svg: {
fontCache: 'global'
}
};
</script>
<script type="text/javascript" id="MathJax-script"
async
src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js">
MathJax.Hub.Queue(function() {
// Fix <code> tags after MathJax finishes running. This is a
// hack to overcome a shortcoming of Markdown. Discussion at
// https://github.com/mojombo/jekyll/issues/199
var all = MathJax.Hub.getAllJax(), i;
for(i = 0; i < all.length; i += 1) {
all[i].SourceElement().parentNode.className += ' has-jax';
}
});
</script>
<style>
code.has-jax {
font: inherit;
font-size: 100%;
background: inherit;
border: inherit;
color: #515151;
}
</style>

View file

@ -1,4 +0,0 @@
{{- partial "mobile-paginator.html" . -}}
<div id="single-column-footer">
{{- partial "copyright.html" . -}}
</div>

View file

@ -1,72 +0,0 @@
<div class="single-column-drawer-container" ref="drawer"
v-bind:class="{ 'single-column-drawer-container-active': isDrawerOpen }">
<div class="drawer-content">
<div class="drawer-menu">
{{ if and (isset .Site.Params "googlesearchcode") (.IsHome) }}
<script async src="https://cse.google.com/cse.js?cx={{.Site.Params.googleSearchCode}}"></script>
<div class="gcse-searchbox-only" mobileLayout="true"></div>
{{ end }}
{{ $current := .Permalink | absLangURL }}
{{ range .Site.Menus.main }}
{{$actived := "false"}}
<!-- A problem caused by slash: if you use "eq" directly, you will get a result of "/tags/" and "/tags" -->
{{if hasPrefix $current (.URL|absLangURL)}}
{{$actived = "active"}}
{{end}}
{{ if .HasChildren }}
<parent name="{{ .Name }}" type="drawer-menu-item {{$actived}}">
{{ range .Children }}
<li><a href="{{ .URL }}"> {{ .Name }}</a></li>
{{ end }}
</parent>
{{ else }}
<!--<a class="a-block nav-link-item {{$actived}}" href="{{ .URL }}">-->
<a class="a-block drawer-menu-item {{ $actived }}" href="{{ .URL }}">
{{ .Name }}
</a>
{{ end }}
{{ end }}
{{ if and (not (.Site.Params.disableToC) ) (.IsPage) }}
<div class="toc">
{{- partial "toc.html" . -}}
</div>
{{ end }}
</div>
</div>
</div>
<transition name="fade">
<div v-bind:class="{ 'single-column-drawer-mask': mounted }" v-if="isDrawerOpen" v-on:click="toggleDrawer"></div>
</transition>
<nav ref="navBar" class="navbar sticky-top navbar-light single-column-nav-container">
<div ref="navBackground" class="nav-background"></div>
<div class="container container-narrow nav-content">
<button id="nav_dropdown_btn" class="nav-dropdown-toggle" type="button" v-on:click="toggleDrawer">
<i class="material-icons">
menu
</i>
</button>
<a ref="navTitle" class="navbar-brand" href="{{.Site.BaseURL}}">
{{.Site.Title}}
</a>
{{ if not .Site.Params.disableDarkMode }}
<button type="button" class="nav-darkmode-toggle" v-on:click="toggleDarkMode">
<i class="material-icons" v-if="isDarkMode">
brightness_4
</i>
<i class="material-icons" v-else="isDarkMode">
brightness_7
</i>
</button>
{{ end }}
</div>
</nav>
<div class="single-column-header-container" ref="pageHead"
v-bind:style="{ transform: 'translateZ(0px) translateY('+.3*scrollY+'px)', opacity: 1-navOpacity }">
<a href="{{.Site.BaseURL}}">
<div class="single-column-header-title">{{.Site.Title}}</div>
{{ with .Site.Params.subtitle }}
<div class="single-column-header-subtitle">{{.}}</div>
{{ end }}
</a>
</div>

View file

@ -1,31 +0,0 @@
{{ if .Paginator }}
{{ if gt .Paginator.TotalPages 1 }}
<div class="pagination">
{{ if .Paginator.HasPrev }}
<a class="pagination-action" href="{{.Paginator.Prev.URL}}" style="opacity:1">
{{ else }}
<a class="pagination-action" style="opacity:0">
{{ end }}
<i class="material-icons pagination-action-icon">
chevron_left
</i>
</a>
<div class="pagination-indicator">
<span>{{.Paginator.PageNumber}}/{{.Paginator.TotalPages}}</span>
</div>
{{ if .Paginator.HasNext }}
<a class="pagination-action" href="{{.Paginator.Next.URL}}"
style="opacity:1">
{{ else }}
<a class="pagination-action" style="opacity:0">
{{ end }}
<i class="material-icons pagination-action-icon">
chevron_right
</i>
</a>
</div>
{{ end }}
{{ end }}

View file

@ -1,22 +0,0 @@
<div class="post-item-meta">
{{ i18n "format_date" .PublishDate }}
&emsp;
<!-- Reading Time Start -->
{{ if .Site.Params.enableReadingTime }}
<i class="material-icons" style="font-size:10px">schedule</i>
{{ $readTime := mul (div (countwords .Content) 220.0) 60 }}
{{ $minutes := math.Floor (div $readTime 60) }}
{{ $seconds := mod $readTime 60 }}
{{ if gt $minutes 0}}
{{ $minutes }} {{ cond (eq $minutes 1) "minute" "min" }}
{{ end }}
{{ $seconds }} {{ cond (eq $seconds 1) "second" "s" }}
{{ end }}
<!-- Reading Time End -->
&emsp;
{{ if .Draft }}
<span class="draft-label">{{ i18n "draft" }}</span>
{{ end }}
</div>

View file

@ -1,46 +0,0 @@
<div ref="sideContainer" class="side-container">
{{ if eq .Title .Site.Title}}
<a class="a-block nav-head active" href="{{.Site.BaseURL}}">
{{ else }}
<a class="a-block nav-head false" href="{{.Site.BaseURL}}">
{{ end }}
<div class="nav-title">
{{.Site.Title}}
</div>
{{ with .Site.Params.subtitle }}
<div class="nav-subtitle">
{{.}}
</div>
{{ end }}
</a>
<div class="nav-link-list">
{{ $current := .Permalink | absLangURL }}
{{ range .Site.Menus.main }}
{{$actived := "false"}}
<!-- A problem caused by slash: if you use "eq" directly, you will get a result of "/tags/" and "/tags" -->
{{if hasPrefix $current (.URL|absLangURL)}}
{{$actived = "active"}}
{{end}}
{{ if .HasChildren }}
<parent name="{{ .Name }}" type="nav-link-item {{$actived}}">
{{ range .Children }}
<li><a href="{{ .URL }}"> {{ .Name }}</a></li>
{{ end }}
</parent>
{{ else }}
<!--<a class="a-block nav-link-item {{$actived}}" href="{{ .URL }}">-->
<a class="a-block nav-link-item {{ $actived }}" href="{{ .URL }}">
{{ .Name }}
</a>
{{ end }}
{{ end }}
</div>
<div class="nav-footer">
{{partial "copyright.html" .}}
</div>
</div>

View file

@ -1,42 +0,0 @@
{{ $headers := findRE "<h[1-4].*?>(.|\n])+?</h[1-4]>" .Content }}
<!-- at least one header to link to -->
{{ if ge (len $headers) 1 }}
<div class="toc-content">
<!-- ignore empty links with + -->
{{ $h1_n := len (findRE "(.|\n])+?" .Content) }}
{{ $re := (cond (eq $h1_n 0) "<h[2-4]" "<h[1-4]") }}
{{ $renum := (cond (eq $h1_n 0) "[2-4]" "[1-4]") }}
<center>- {{ i18n "toc_title" }} -</center>
{{ $scratch := newScratch }}
{{ $scratch.Set "prev_heading" 1 }}
<ul>
{{ range $headers }}
{{ $header := . }}
{{ range first 1 (findRE $re $header 1) }}
{{ range findRE $renum . 1 }}
{{ $next_heading := (cond (eq $h1_n 0) (sub (int .) 1 ) (int . ) ) }}
{{ $prev_heading := $scratch.Get "prev_heading"}}
{{ if lt $next_heading $prev_heading }}
{{ range seq (sub $prev_heading $next_heading) }}
</ul>
{{ end }}
{{ end }}
{{ if gt $next_heading $prev_heading }}
{{ range seq (sub $next_heading $prev_heading) }}
<ul class="collapse" data-toggle="collapse">
{{ end }}
{{ end }}
{{ $anchorId := (replaceRE ".* id=\"(.*?)\".*" "$1" $header ) }}
<li>
<a href="#{{ $anchorId }}" onclick="onNavClick(`#{{ $anchorId | safeJS}}-nav`)" id="{{ $anchorId }}-nav">
{{ $header | plainify | htmlUnescape }}
</a>
</li>
{{ $scratch.Set "prev_heading" $next_heading }}
{{ end }}
{{ end }}
{{ end }}
</ul>
</div>
{{ end }}

File diff suppressed because it is too large Load diff

View file

@ -1,34 +0,0 @@
<!--
From "cupper-hugo-theme" by zwbetz-gh
https://github.com/zwbetz-gh/cupper-hugo-theme/blob/master/layouts/shortcodes/figureCupper.html
Under MIT License
-->
{{ $img := .Get "img" }}
{{ $caption := .Get "caption" }}
{{ $command := .Get "command" }}
{{ $options := .Get "options" }}
{{ $align := .Get "align" }}
{{ $original := .Page.Resources.GetMatch (printf "*%s*" $img) }}
{{ $new := "" }}
{{ if eq $command "Fit" }}
{{ $new = $original.Fit $options }}
{{ else if eq $command "Fill" }}
{{ $new = $original.Fill $options }}
{{ else if eq $command "Resize" }}
{{ $new = $original.Resize $options }}
{{ else if eq $command "Original" }}
{{ $new = $original }}
{{ else }}
{{ errorf "Invalid image processing command: Must be one of Fit, Fill, Resize, Original." }}
{{ end }}
<figure align="{{$align}}" role="group" aria-describedby="caption-{{ $caption | md5 }}">
<a href="{{ $original.Permalink }}" class="img-link">
<img src="{{ $new.Permalink }}">
</a>
<figcaption id="caption-{{ $caption | md5 }}">
{{ $caption | markdownify }}
</figcaption>
</figure>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 66 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 109 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 947 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 54 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 MiB

View file

@ -1,28 +0,0 @@
new SmoothScroll('a#globalBackToTop');
Vue.component('parent',{
props:['name','type'],
data: function () {
return {
isHidden: true
}
},
template: `
<div class="a-block" :class="type" v-on:click="isHidden = !isHidden">
{{ name }}
<div class="nav-link-subitem" v-if="!isHidden">
<slot></slot>
</div>
</div>
`
});
$().ready(function(){
var elems = $("table");
elems.each(function(idx){
$(this).addClass('table-striped');
$(this).addClass('table');
$(this).addClass('table-responsive');
$(this).addClass('table-hover');
});
});

View file

@ -1,79 +0,0 @@
/*! loadCSS. [c]2017 Filament Group, Inc. MIT License */
(function(w){
"use strict";
/* exported loadCSS */
var loadCSS = function( href, before, media ){
// Arguments explained:
// `href` [REQUIRED] is the URL for your CSS file.
// `before` [OPTIONAL] is the element the script should use as a reference for injecting our stylesheet <link> before
// By default, loadCSS attempts to inject the link after the last stylesheet or script in the DOM. However, you might desire a more specific location in your document.
// `media` [OPTIONAL] is the media type or query of the stylesheet. By default it will be 'all'
var doc = w.document;
var ss = doc.createElement( "link" );
var ref;
if( before ){
ref = before;
}
else {
var refs = ( doc.body || doc.getElementsByTagName( "head" )[ 0 ] ).childNodes;
ref = refs[ refs.length - 1];
}
var sheets = doc.styleSheets;
ss.rel = "stylesheet";
ss.href = href;
// temporarily set media to something inapplicable to ensure it'll fetch without blocking render
ss.media = "only x";
// wait until body is defined before injecting link. This ensures a non-blocking load in IE11.
function ready( cb ){
if( doc.body ){
return cb();
}
setTimeout(function(){
ready( cb );
});
}
// Inject link
// Note: the ternary preserves the existing behavior of "before" argument, but we could choose to change the argument to "after" in a later release and standardize on ref.nextSibling for all refs
// Note: `insertBefore` is used instead of `appendChild`, for safety re: http://www.paulirish.com/2011/surefire-dom-element-insertion/
ready( function(){
ref.parentNode.insertBefore( ss, ( before ? ref : ref.nextSibling ) );
});
// A method (exposed on return object for external use) that mimics onload by polling document.styleSheets until it includes the new sheet.
var onloadcssdefined = function( cb ){
var resolvedHref = ss.href;
var i = sheets.length;
while( i-- ){
if( sheets[ i ].href === resolvedHref ){
return cb();
}
}
setTimeout(function() {
onloadcssdefined( cb );
});
};
function loadCB(){
if( ss.addEventListener ){
ss.removeEventListener( "load", loadCB );
}
ss.media = media || "all";
}
// once loaded, set link's media back to `all` so that the stylesheet applies once it loads
if( ss.addEventListener ){
ss.addEventListener( "load", loadCB);
}
ss.onloadcssdefined = onloadcssdefined;
onloadcssdefined( loadCB );
return ss;
};
// commonjs
if( typeof exports !== "undefined" ){
exports.loadCSS = loadCSS;
}
else {
w.loadCSS = loadCSS;
}
}( typeof global !== "undefined" ? global : this ));

View file

@ -1,224 +0,0 @@
var spy = function () {
var elems = $(":header");
if (elems.length == 0) {
return;
}
var currentTop = $(window).scrollTop();
var currentBottom = $(window).scrollTop() + $(window).height();
var pageBottom = $('#EOF').offset().top;
var meetUnread = false
var currentIndex = elems.length - 1
elems.each(function (idx) {
var elemTop = $(this).offset().top;
var id = $(this).attr('id');
var navElem = $('#' + id + '-nav');
if (currentTop + $(this).height() >= elemTop) {
navElem.addClass('toc-active');
} else {
if (meetUnread == false) {
meetUnread = true
currentIndex = idx - 1
}
navElem.removeClass('toc-active');
}
})
if (currentBottom >= pageBottom) {
currentIndex = -1
}
//console.log(currentIndex);
//Collapse them
collapseOthers(currentIndex);
}
var onNavClick = function (name) {
var elems = $(":header");
elems.each(function (idx) {
var id = $(this).attr('id');
if (name == '#' + id + '-nav'){
collapseOthers(idx);
return;
}
});
}
var collapseOthers = function (currentIndex) {
if (currentIndex == -1) {
$(".collapse").each(function (idx) {
$(this).collapse("hide");
});
return;
}
var elems = $(":header");
//console.log(currentIndex);
currentId = "#" + elems[currentIndex].id + "-nav";
$(currentId).parents(".collapse").each(function (idx) {
$(this).collapse("show");
});
$(currentId).parent().next().filter(".collapse").collapse("show");
$(".collapse").not($(currentId).parents()).not($(currentId).parent().next()).each(function (idx) {
$(this).collapse("hide");
});
}
$().ready(function () {
spy();
$(window).bind('scroll', debounce(spy, 250, { 'maxWait': 1000 }));
});
//From https://github.com/lodash/lodash/blob/master/debounce.js
// and https://github.com/lodash/lodash/blob/master/isObject.js
function debounce(func, wait, options) {
let lastArgs,
lastThis,
maxWait,
result,
timerId,
lastCallTime
let lastInvokeTime = 0
let leading = false
let maxing = false
let trailing = true
// Bypass `requestAnimationFrame` by explicitly setting `wait=0`.
const useRAF = (!wait && wait !== 0 && typeof root.requestAnimationFrame === 'function')
if (typeof func !== 'function') {
throw new TypeError('Expected a function')
}
function isObject(value) {
const type = typeof value
return value != null && (type === 'object' || type === 'function')
}
wait = +wait || 0
if (isObject(options)) {
leading = !!options.leading
maxing = 'maxWait' in options
maxWait = maxing ? Math.max(+options.maxWait || 0, wait) : maxWait
trailing = 'trailing' in options ? !!options.trailing : trailing
}
function invokeFunc(time) {
const args = lastArgs
const thisArg = lastThis
lastArgs = lastThis = undefined
lastInvokeTime = time
result = func.apply(thisArg, args)
return result
}
function startTimer(pendingFunc, wait) {
if (useRAF) {
root.cancelAnimationFrame(timerId)
return root.requestAnimationFrame(pendingFunc)
}
return setTimeout(pendingFunc, wait)
}
function cancelTimer(id) {
if (useRAF) {
return root.cancelAnimationFrame(id)
}
clearTimeout(id)
}
function leadingEdge(time) {
// Reset any `maxWait` timer.
lastInvokeTime = time
// Start the timer for the trailing edge.
timerId = startTimer(timerExpired, wait)
// Invoke the leading edge.
return leading ? invokeFunc(time) : result
}
function remainingWait(time) {
const timeSinceLastCall = time - lastCallTime
const timeSinceLastInvoke = time - lastInvokeTime
const timeWaiting = wait - timeSinceLastCall
return maxing
? Math.min(timeWaiting, maxWait - timeSinceLastInvoke)
: timeWaiting
}
function shouldInvoke(time) {
const timeSinceLastCall = time - lastCallTime
const timeSinceLastInvoke = time - lastInvokeTime
// Either this is the first call, activity has stopped and we're at the
// trailing edge, the system time has gone backwards and we're treating
// it as the trailing edge, or we've hit the `maxWait` limit.
return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||
(timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait))
}
function timerExpired() {
const time = Date.now()
if (shouldInvoke(time)) {
return trailingEdge(time)
}
// Restart the timer.
timerId = startTimer(timerExpired, remainingWait(time))
}
function trailingEdge(time) {
timerId = undefined
// Only invoke if we have `lastArgs` which means `func` has been
// debounced at least once.
if (trailing && lastArgs) {
return invokeFunc(time)
}
lastArgs = lastThis = undefined
return result
}
function cancel() {
if (timerId !== undefined) {
cancelTimer(timerId)
}
lastInvokeTime = 0
lastArgs = lastCallTime = lastThis = timerId = undefined
}
function flush() {
return timerId === undefined ? result : trailingEdge(Date.now())
}
function pending() {
return timerId !== undefined
}
function debounced(...args) {
const time = Date.now()
const isInvoking = shouldInvoke(time)
lastArgs = args
lastThis = this
lastCallTime = time
if (isInvoking) {
if (timerId === undefined) {
return leadingEdge(lastCallTime)
}
if (maxing) {
// Handle invocations in a tight loop.
timerId = startTimer(timerExpired, wait)
return invokeFunc(lastCallTime)
}
}
if (timerId === undefined) {
timerId = startTimer(timerExpired, wait)
}
return result
}
debounced.cancel = cancel
debounced.flush = flush
debounced.pending = pending
return debounced
}

View file

@ -1,55 +0,0 @@
var spy = function () {
var elems = $(":header");
if (elems.length == 0) {
return;
}
var currentTop = $(window).scrollTop();
var currentBottom = $(window).scrollTop() + $(window).height();
var pageBottom = $('#EOF').offset().top;
var meetUnread = false
var currentIndex = -1
elems.each(function (idx) {
var elemTop = $(this).offset().top;
var id = $(this).attr('id');
var navElem = $('#' + id + '-nav');
if (currentTop + $(this).height() >= elemTop || currentBottom >= pageBottom) {
navElem.addClass('toc-active');
} else {
if (meetUnread == false) {
meetUnread = true
currentIndex = idx - 1
}
navElem.removeClass('toc-active');
}
})
}
$().ready(function () {
$(".collapse").each(function (idx) {
$(this).collapse("show");
});
spy();
$(window).bind('scroll', throttle(spy));
});
function throttle(func, timeout = 250) {
let last;
let timer;
return function () {
const context = this;
const args = arguments;
const now = +new Date();
if (last && now < last + timeout) {
clearTimeout(timer)
timer = setTimeout(function () {
last = now
func.apply(context, args)
}, timeout)
} else {
last = now
func.apply(context, args)
}
}
}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View file

@ -1,79 +0,0 @@
/*! loadCSS. [c]2017 Filament Group, Inc. MIT License */
(function(w){
"use strict";
/* exported loadCSS */
var loadCSS = function( href, before, media ){
// Arguments explained:
// `href` [REQUIRED] is the URL for your CSS file.
// `before` [OPTIONAL] is the element the script should use as a reference for injecting our stylesheet <link> before
// By default, loadCSS attempts to inject the link after the last stylesheet or script in the DOM. However, you might desire a more specific location in your document.
// `media` [OPTIONAL] is the media type or query of the stylesheet. By default it will be 'all'
var doc = w.document;
var ss = doc.createElement( "link" );
var ref;
if( before ){
ref = before;
}
else {
var refs = ( doc.body || doc.getElementsByTagName( "head" )[ 0 ] ).childNodes;
ref = refs[ refs.length - 1];
}
var sheets = doc.styleSheets;
ss.rel = "stylesheet";
ss.href = href;
// temporarily set media to something inapplicable to ensure it'll fetch without blocking render
ss.media = "only x";
// wait until body is defined before injecting link. This ensures a non-blocking load in IE11.
function ready( cb ){
if( doc.body ){
return cb();
}
setTimeout(function(){
ready( cb );
});
}
// Inject link
// Note: the ternary preserves the existing behavior of "before" argument, but we could choose to change the argument to "after" in a later release and standardize on ref.nextSibling for all refs
// Note: `insertBefore` is used instead of `appendChild`, for safety re: http://www.paulirish.com/2011/surefire-dom-element-insertion/
ready( function(){
ref.parentNode.insertBefore( ss, ( before ? ref : ref.nextSibling ) );
});
// A method (exposed on return object for external use) that mimics onload by polling document.styleSheets until it includes the new sheet.
var onloadcssdefined = function( cb ){
var resolvedHref = ss.href;
var i = sheets.length;
while( i-- ){
if( sheets[ i ].href === resolvedHref ){
return cb();
}
}
setTimeout(function() {
onloadcssdefined( cb );
});
};
function loadCB(){
if( ss.addEventListener ){
ss.removeEventListener( "load", loadCB );
}
ss.media = media || "all";
}
// once loaded, set link's media back to `all` so that the stylesheet applies once it loads
if( ss.addEventListener ){
ss.addEventListener( "load", loadCB);
}
ss.onloadcssdefined = onloadcssdefined;
onloadcssdefined( loadCB );
return ss;
};
// commonjs
if( typeof exports !== "undefined" ){
exports.loadCSS = loadCSS;
}
else {
w.loadCSS = loadCSS;
}
}( typeof global !== "undefined" ? global : this ));

View file

@ -1,2 +0,0 @@
!function(n){"use strict";function d(n,t){var r=(65535&n)+(65535&t);return(n>>16)+(t>>16)+(r>>16)<<16|65535&r}function f(n,t,r,e,o,u){return d(function(n,t){return n<<t|n>>>32-t}(d(d(t,n),d(e,u)),o),r)}function l(n,t,r,e,o,u,c){return f(t&r|~t&e,n,t,o,u,c)}function g(n,t,r,e,o,u,c){return f(t&e|r&~e,n,t,o,u,c)}function v(n,t,r,e,o,u,c){return f(t^r^e,n,t,o,u,c)}function m(n,t,r,e,o,u,c){return f(r^(t|~e),n,t,o,u,c)}function i(n,t){var r,e,o,u,c;n[t>>5]|=128<<t%32,n[14+(t+64>>>9<<4)]=t;var f=1732584193,i=-271733879,a=-1732584194,h=271733878;for(r=0;r<n.length;r+=16)i=m(i=m(i=m(i=m(i=v(i=v(i=v(i=v(i=g(i=g(i=g(i=g(i=l(i=l(i=l(i=l(o=i,a=l(u=a,h=l(c=h,f=l(e=f,i,a,h,n[r],7,-680876936),i,a,n[r+1],12,-389564586),f,i,n[r+2],17,606105819),h,f,n[r+3],22,-1044525330),a=l(a,h=l(h,f=l(f,i,a,h,n[r+4],7,-176418897),i,a,n[r+5],12,1200080426),f,i,n[r+6],17,-1473231341),h,f,n[r+7],22,-45705983),a=l(a,h=l(h,f=l(f,i,a,h,n[r+8],7,1770035416),i,a,n[r+9],12,-1958414417),f,i,n[r+10],17,-42063),h,f,n[r+11],22,-1990404162),a=l(a,h=l(h,f=l(f,i,a,h,n[r+12],7,1804603682),i,a,n[r+13],12,-40341101),f,i,n[r+14],17,-1502002290),h,f,n[r+15],22,1236535329),a=g(a,h=g(h,f=g(f,i,a,h,n[r+1],5,-165796510),i,a,n[r+6],9,-1069501632),f,i,n[r+11],14,643717713),h,f,n[r],20,-373897302),a=g(a,h=g(h,f=g(f,i,a,h,n[r+5],5,-701558691),i,a,n[r+10],9,38016083),f,i,n[r+15],14,-660478335),h,f,n[r+4],20,-405537848),a=g(a,h=g(h,f=g(f,i,a,h,n[r+9],5,568446438),i,a,n[r+14],9,-1019803690),f,i,n[r+3],14,-187363961),h,f,n[r+8],20,1163531501),a=g(a,h=g(h,f=g(f,i,a,h,n[r+13],5,-1444681467),i,a,n[r+2],9,-51403784),f,i,n[r+7],14,1735328473),h,f,n[r+12],20,-1926607734),a=v(a,h=v(h,f=v(f,i,a,h,n[r+5],4,-378558),i,a,n[r+8],11,-2022574463),f,i,n[r+11],16,1839030562),h,f,n[r+14],23,-35309556),a=v(a,h=v(h,f=v(f,i,a,h,n[r+1],4,-1530992060),i,a,n[r+4],11,1272893353),f,i,n[r+7],16,-155497632),h,f,n[r+10],23,-1094730640),a=v(a,h=v(h,f=v(f,i,a,h,n[r+13],4,681279174),i,a,n[r],11,-358537222),f,i,n[r+3],16,-722521979),h,f,n[r+6],23,76029189),a=v(a,h=v(h,f=v(f,i,a,h,n[r+9],4,-640364487),i,a,n[r+12],11,-421815835),f,i,n[r+15],16,530742520),h,f,n[r+2],23,-995338651),a=m(a,h=m(h,f=m(f,i,a,h,n[r],6,-198630844),i,a,n[r+7],10,1126891415),f,i,n[r+14],15,-1416354905),h,f,n[r+5],21,-57434055),a=m(a,h=m(h,f=m(f,i,a,h,n[r+12],6,1700485571),i,a,n[r+3],10,-1894986606),f,i,n[r+10],15,-1051523),h,f,n[r+1],21,-2054922799),a=m(a,h=m(h,f=m(f,i,a,h,n[r+8],6,1873313359),i,a,n[r+15],10,-30611744),f,i,n[r+6],15,-1560198380),h,f,n[r+13],21,1309151649),a=m(a,h=m(h,f=m(f,i,a,h,n[r+4],6,-145523070),i,a,n[r+11],10,-1120210379),f,i,n[r+2],15,718787259),h,f,n[r+9],21,-343485551),f=d(f,e),i=d(i,o),a=d(a,u),h=d(h,c);return[f,i,a,h]}function a(n){var t,r="",e=32*n.length;for(t=0;t<e;t+=8)r+=String.fromCharCode(n[t>>5]>>>t%32&255);return r}function h(n){var t,r=[];for(r[(n.length>>2)-1]=void 0,t=0;t<r.length;t+=1)r[t]=0;var e=8*n.length;for(t=0;t<e;t+=8)r[t>>5]|=(255&n.charCodeAt(t/8))<<t%32;return r}function e(n){var t,r,e="0123456789abcdef",o="";for(r=0;r<n.length;r+=1)t=n.charCodeAt(r),o+=e.charAt(t>>>4&15)+e.charAt(15&t);return o}function r(n){return unescape(encodeURIComponent(n))}function o(n){return function(n){return a(i(h(n),8*n.length))}(r(n))}function u(n,t){return function(n,t){var r,e,o=h(n),u=[],c=[];for(u[15]=c[15]=void 0,16<o.length&&(o=i(o,8*n.length)),r=0;r<16;r+=1)u[r]=909522486^o[r],c[r]=1549556828^o[r];return e=i(u.concat(h(t)),512+8*t.length),a(i(c.concat(e),640))}(r(n),r(t))}function t(n,t,r){return t?r?u(t,n):function(n,t){return e(u(n,t))}(t,n):r?o(n):function(n){return e(o(n))}(n)}"function"==typeof define&&define.amd?define(function(){return t}):"object"==typeof module&&module.exports?module.exports=t:n.md5=t}(this);
//# sourceMappingURL=md5.min.js.map

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View file

@ -1,19 +0,0 @@
name = "Diary"
license = "MIT"
licenselink = "https://github.com/amazingrise/hugo-theme-diary/blob/master/LICENSE"
description = "Moments piled up. A simple, elegant blog theme."
homepage = "https://amazingrise.net/"
tags = ["blog"]
features = ["mobile","elegant"]
min_version = "0.59.0"
[author]
name = "amazingrise"
homepage = "https://amazingrise.net/"
# If porting an existing theme
[original]
name = "SumiMakito"
homepage = "https://mak1t0.cc"
repo = "https://github.com/SumiMakito/hexo-theme-Journal/"