CLEANUP
This commit is contained in:
		
							parent
							
								
									ac450938b3
								
							
						
					
					
						commit
						6fb53d3170
					
				
							
								
								
									
										82
									
								
								config.yml
								
								
								
								
							
							
						
						
									
										82
									
								
								config.yml
								
								
								
								
							| 
						 | 
					@ -27,87 +27,5 @@ params:
 | 
				
			||||||
    iconHeight: 24
 | 
					    iconHeight: 24
 | 
				
			||||||
  buildDate: 03150229
 | 
					  buildDate: 03150229
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#######################################
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  defaultTheme: dark 
 | 
					 | 
				
			||||||
  disableThemeToggle: false
 | 
					 | 
				
			||||||
  ShowReadingTime: false
 | 
					 | 
				
			||||||
  ShowShareButtons: true
 | 
					 | 
				
			||||||
  ShowPostNavLinks: true
 | 
					 | 
				
			||||||
  ShowBreadCrumbs: false
 | 
					 | 
				
			||||||
  ShowCodeCopyButtons: true
 | 
					 | 
				
			||||||
  ShowWordCount: false
 | 
					 | 
				
			||||||
  ShowRssButtonInSectionTermList: false
 | 
					 | 
				
			||||||
  UseHugoToc: true
 | 
					 | 
				
			||||||
  disableSpecial1stPost: false
 | 
					 | 
				
			||||||
  disableScrollToTop: false
 | 
					 | 
				
			||||||
  comments: false
 | 
					 | 
				
			||||||
  hidemeta: false
 | 
					 | 
				
			||||||
  hideSummary: false
 | 
					 | 
				
			||||||
  showtoc: false
 | 
					 | 
				
			||||||
  tocopen: false
 | 
					 | 
				
			||||||
  #disableSpecial1stPost: true
 | 
					 | 
				
			||||||
  homeInfoParams:
 | 
					 | 
				
			||||||
      Title: Hi, I'm Morgan.
 | 
					 | 
				
			||||||
      Content: Student Developer
 | 
					 | 
				
			||||||
  homeInfoParamSimple: true
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  socialIcons:
 | 
					 | 
				
			||||||
      - name: github
 | 
					 | 
				
			||||||
        url: "https://github.com/morgan9e"
 | 
					 | 
				
			||||||
      - name: email
 | 
					 | 
				
			||||||
        url: "mailto:me@morgan.kr"
 | 
					 | 
				
			||||||
      - name: git
 | 
					 | 
				
			||||||
        url: "https://git.morgan.kr"
 | 
					 | 
				
			||||||
#      - name: twitter
 | 
					 | 
				
			||||||
#        url: "https://twitter.com/morgan8w"
 | 
					 | 
				
			||||||
      - name: telegram
 | 
					 | 
				
			||||||
        url: "https://t.me/morgan9e"
 | 
					 | 
				
			||||||
  cover:
 | 
					 | 
				
			||||||
    hidden: true
 | 
					 | 
				
			||||||
    hiddenInList: true
 | 
					 | 
				
			||||||
    hiddenInSingle: true
 | 
					 | 
				
			||||||
  fuseOpts:
 | 
					 | 
				
			||||||
    isCaseSensitive: false
 | 
					 | 
				
			||||||
    shouldSort: true
 | 
					 | 
				
			||||||
    location: 0
 | 
					 | 
				
			||||||
    distance: 1000
 | 
					 | 
				
			||||||
    threshold: 0.4
 | 
					 | 
				
			||||||
    minMatchCharLength: 0
 | 
					 | 
				
			||||||
    keys: ["title", "permalink", "summary", "content"]
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
paginate: 100
 | 
					 | 
				
			||||||
menus:
 | 
					 | 
				
			||||||
  main:
 | 
					 | 
				
			||||||
    - identifier: posts
 | 
					 | 
				
			||||||
      name: Posts
 | 
					 | 
				
			||||||
      url: /posts/
 | 
					 | 
				
			||||||
      weight: 30
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
pygmentsUseClasses: true
 | 
					 | 
				
			||||||
markup:
 | 
					 | 
				
			||||||
  highlight:
 | 
					 | 
				
			||||||
    noClasses: false
 | 
					 | 
				
			||||||
    codeFences: true
 | 
					 | 
				
			||||||
    guessSyntax: true
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#############################
 | 
					 | 
				
			||||||
  
 | 
					 | 
				
			||||||
permalinks:
 | 
					permalinks:
 | 
				
			||||||
  posts: /:year/:month/:title/
 | 
					  posts: /:year/:month/:title/
 | 
				
			||||||
 | 
					 | 
				
			||||||
# markup:
 | 
					 | 
				
			||||||
#   highlight:
 | 
					 | 
				
			||||||
#     anchorLineNos: false
 | 
					 | 
				
			||||||
#     codeFences: true
 | 
					 | 
				
			||||||
#     guessSyntax: false
 | 
					 | 
				
			||||||
#     hl_Lines: ""
 | 
					 | 
				
			||||||
#     hl_inline: false
 | 
					 | 
				
			||||||
#     lineAnchors: ""
 | 
					 | 
				
			||||||
#     lineNoStart: 1
 | 
					 | 
				
			||||||
#     lineNos: false
 | 
					 | 
				
			||||||
#     lineNumbersInTable: true
 | 
					 | 
				
			||||||
#     noClasses: true
 | 
					 | 
				
			||||||
#     noHl: false
 | 
					 | 
				
			||||||
#     style: monokai
 | 
					 | 
				
			||||||
#     tabWidth: 4
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,11 +0,0 @@
 | 
				
			||||||
.not-found {
 | 
					 | 
				
			||||||
    position: absolute;
 | 
					 | 
				
			||||||
    left: 0;
 | 
					 | 
				
			||||||
    right: 0;
 | 
					 | 
				
			||||||
    display: flex;
 | 
					 | 
				
			||||||
    align-items: center;
 | 
					 | 
				
			||||||
    justify-content: center;
 | 
					 | 
				
			||||||
    height: 80%;
 | 
					 | 
				
			||||||
    font-size: 160px;
 | 
					 | 
				
			||||||
    font-weight: 700;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,44 +0,0 @@
 | 
				
			||||||
.archive-posts {
 | 
					 | 
				
			||||||
    width: 100%;
 | 
					 | 
				
			||||||
    font-size: 16px;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.archive-year {
 | 
					 | 
				
			||||||
    margin-top: 40px;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.archive-year:not(:last-of-type) {
 | 
					 | 
				
			||||||
    border-bottom: 2px solid var(--border);
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.archive-month {
 | 
					 | 
				
			||||||
    display: flex;
 | 
					 | 
				
			||||||
    align-items: flex-start;
 | 
					 | 
				
			||||||
    padding: 10px 0;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.archive-month-header {
 | 
					 | 
				
			||||||
    margin: 25px 0;
 | 
					 | 
				
			||||||
    width: 200px;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.archive-month:not(:last-of-type) {
 | 
					 | 
				
			||||||
    border-bottom: 1px solid var(--border);
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.archive-entry {
 | 
					 | 
				
			||||||
    position: relative;
 | 
					 | 
				
			||||||
    padding: 5px;
 | 
					 | 
				
			||||||
    margin: 10px 0;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.archive-entry-title {
 | 
					 | 
				
			||||||
    margin: 5px 0;
 | 
					 | 
				
			||||||
    font-weight: 400;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.archive-count,
 | 
					 | 
				
			||||||
.archive-meta {
 | 
					 | 
				
			||||||
    color: var(--secondary);
 | 
					 | 
				
			||||||
    font-size: 14px;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,58 +0,0 @@
 | 
				
			||||||
.footer,
 | 
					 | 
				
			||||||
.top-link {
 | 
					 | 
				
			||||||
    font-size: 10px;
 | 
					 | 
				
			||||||
    color: var(--secondary);
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.footer {
 | 
					 | 
				
			||||||
    max-width: calc(var(--main-width) + var(--gap) * 2);
 | 
					 | 
				
			||||||
    margin: auto;
 | 
					 | 
				
			||||||
    padding: calc((var(--footer-height) - var(--gap)) / 2) var(--gap);
 | 
					 | 
				
			||||||
    text-align: center;
 | 
					 | 
				
			||||||
    line-height: 18px;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.footer span {
 | 
					 | 
				
			||||||
    margin-inline-start: 1px;
 | 
					 | 
				
			||||||
    margin-inline-end: 1px;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.footer span:last-child {
 | 
					 | 
				
			||||||
    white-space: nowrap;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.footer a {
 | 
					 | 
				
			||||||
    color: var(--primary);
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.footer a:hover {
 | 
					 | 
				
			||||||
    text-decoration: underline;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.top-link {
 | 
					 | 
				
			||||||
  visibility: hidden;
 | 
					 | 
				
			||||||
  position: fixed; 
 | 
					 | 
				
			||||||
  bottom: 30px; 
 | 
					 | 
				
			||||||
  right: 30px; 
 | 
					 | 
				
			||||||
  z-index: 99; 
 | 
					 | 
				
			||||||
  width: 32px;
 | 
					 | 
				
			||||||
  height: 32px;
 | 
					 | 
				
			||||||
  border: none; 
 | 
					 | 
				
			||||||
  outline: none; 
 | 
					 | 
				
			||||||
  background-color: var(--tertiary); 
 | 
					 | 
				
			||||||
  color: black; 
 | 
					 | 
				
			||||||
  cursor: pointer; 
 | 
					 | 
				
			||||||
  padding: 8px; 
 | 
					 | 
				
			||||||
  border-radius: 5px; 
 | 
					 | 
				
			||||||
  transition: visibility 0.5s, opacity 0.8s linear;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.footer a:hover,
 | 
					 | 
				
			||||||
.top-link:hover {
 | 
					 | 
				
			||||||
    color: var(--primary);
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.top-link:focus,
 | 
					 | 
				
			||||||
#theme-toggle:focus {
 | 
					 | 
				
			||||||
    outline: 0;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,103 +0,0 @@
 | 
				
			||||||
.nav {
 | 
					 | 
				
			||||||
    display: flex;
 | 
					 | 
				
			||||||
    flex-wrap: wrap;
 | 
					 | 
				
			||||||
    justify-content: space-between;
 | 
					 | 
				
			||||||
    max-width: calc(var(--nav-width) + var(--gap) * 2);
 | 
					 | 
				
			||||||
    margin-inline-start: auto;
 | 
					 | 
				
			||||||
    margin-inline-end: auto;
 | 
					 | 
				
			||||||
    line-height: var(--header-height);
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.nav-home {
 | 
					 | 
				
			||||||
    max-width: calc(var(--nav-width) - var(--gap));
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
.nav-nonpost {
 | 
					 | 
				
			||||||
    max-width: calc(var(--nav-width));
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.nav-post {
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.nav a {
 | 
					 | 
				
			||||||
    display: block;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.logo,
 | 
					 | 
				
			||||||
#menu {
 | 
					 | 
				
			||||||
    display: flex;
 | 
					 | 
				
			||||||
    margin: auto var(--gap);
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.logo {
 | 
					 | 
				
			||||||
    flex-wrap: inherit;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.logo a {
 | 
					 | 
				
			||||||
    font-size: 18px;
 | 
					 | 
				
			||||||
    font-weight: 600;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.logo a img, .logo a svg {
 | 
					 | 
				
			||||||
    display: inline;
 | 
					 | 
				
			||||||
    vertical-align: middle;
 | 
					 | 
				
			||||||
    pointer-events: none;
 | 
					 | 
				
			||||||
    transform: translate(0, -10%);
 | 
					 | 
				
			||||||
    border-radius: 6px;
 | 
					 | 
				
			||||||
    margin-inline-end: 8px;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
button#theme-toggle {
 | 
					 | 
				
			||||||
    font-size: 26px;
 | 
					 | 
				
			||||||
    margin: auto 4px;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
body.dark #moon {
 | 
					 | 
				
			||||||
    vertical-align: middle;
 | 
					 | 
				
			||||||
    display: none;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
body:not(.dark) #sun {
 | 
					 | 
				
			||||||
    display: none;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#menu {
 | 
					 | 
				
			||||||
    list-style: none;
 | 
					 | 
				
			||||||
    word-break: keep-all;
 | 
					 | 
				
			||||||
    overflow-x: auto;
 | 
					 | 
				
			||||||
    white-space: nowrap;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#menu li + li {
 | 
					 | 
				
			||||||
    margin-inline-start: var(--gap);
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#menu a {
 | 
					 | 
				
			||||||
    font-size: 16px;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#menu .active {
 | 
					 | 
				
			||||||
    font-weight: 500;
 | 
					 | 
				
			||||||
    border-bottom: 2px solid currentColor;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.lang-switch li,
 | 
					 | 
				
			||||||
.lang-switch ul,
 | 
					 | 
				
			||||||
.logo-switches {
 | 
					 | 
				
			||||||
    display: inline-flex;
 | 
					 | 
				
			||||||
    margin: auto 4px;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.lang-switch {
 | 
					 | 
				
			||||||
    display: flex;
 | 
					 | 
				
			||||||
    flex-wrap: inherit;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.lang-switch a {
 | 
					 | 
				
			||||||
    margin: auto 3px;
 | 
					 | 
				
			||||||
    font-size: 16px;
 | 
					 | 
				
			||||||
    font-weight: 500;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.logo-switches {
 | 
					 | 
				
			||||||
    flex-wrap: inherit;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,82 +0,0 @@
 | 
				
			||||||
.main {
 | 
					 | 
				
			||||||
    position: relative;
 | 
					 | 
				
			||||||
    min-height: calc(100vh - var(--header-height) - var(--footer-height));
 | 
					 | 
				
			||||||
    max-width: calc(var(--main-width) + var(--gap) * 2);
 | 
					 | 
				
			||||||
    margin: auto;
 | 
					 | 
				
			||||||
    padding: var(--gap);
 | 
					 | 
				
			||||||
    overflow: hidden;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.page-header h1 {
 | 
					 | 
				
			||||||
    font-size: 32px;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.post-title-header {
 | 
					 | 
				
			||||||
    margin: 48px auto var(--content-gap) 12px;
 | 
					 | 
				
			||||||
    margin-left: var(--gap);
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.pagination {
 | 
					 | 
				
			||||||
    display: flex;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.pagination a {
 | 
					 | 
				
			||||||
    color: var(--theme);
 | 
					 | 
				
			||||||
    font-size: 13px;
 | 
					 | 
				
			||||||
    line-height: 36px;
 | 
					 | 
				
			||||||
    background: var(--primary);
 | 
					 | 
				
			||||||
    border-radius: calc(36px / 2);
 | 
					 | 
				
			||||||
    padding: 0 16px;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.pagination .next {
 | 
					 | 
				
			||||||
    margin-inline-start: auto;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.social-icons {
 | 
					 | 
				
			||||||
    padding: 12px 0;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.social-icons a:not(:last-of-type) {
 | 
					 | 
				
			||||||
    margin-inline-end: 12px;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.social-icons a svg {
 | 
					 | 
				
			||||||
    height: 26px;
 | 
					 | 
				
			||||||
    width: 26px;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
code {
 | 
					 | 
				
			||||||
    direction: ltr;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
div.highlight,
 | 
					 | 
				
			||||||
pre {
 | 
					 | 
				
			||||||
    position: relative;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.copy-code {
 | 
					 | 
				
			||||||
    display: none;
 | 
					 | 
				
			||||||
    position: absolute;
 | 
					 | 
				
			||||||
    top: 4px;
 | 
					 | 
				
			||||||
    right: 4px;
 | 
					 | 
				
			||||||
    color: rgba(255, 255, 255, 0.8);
 | 
					 | 
				
			||||||
    background: rgba(78, 78, 78, 0.8);
 | 
					 | 
				
			||||||
    border-radius: var(--radius);
 | 
					 | 
				
			||||||
    padding: 0 5px;
 | 
					 | 
				
			||||||
    font-size: 14px;
 | 
					 | 
				
			||||||
    user-select: none;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
div.highlight:hover .copy-code,
 | 
					 | 
				
			||||||
pre:hover .copy-code {
 | 
					 | 
				
			||||||
    display: block;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.simpletitle {
 | 
					 | 
				
			||||||
    padding: var(--gap);
 | 
					 | 
				
			||||||
    font-size: 28px;
 | 
					 | 
				
			||||||
    font-weight: bold;
 | 
					 | 
				
			||||||
    margin: 32px 4px 36px 4px;
 | 
					 | 
				
			||||||
    text-align: center;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,125 +0,0 @@
 | 
				
			||||||
.first-entry {
 | 
					 | 
				
			||||||
    position: relative;
 | 
					 | 
				
			||||||
    display: flex;
 | 
					 | 
				
			||||||
    flex-direction: column;
 | 
					 | 
				
			||||||
    justify-content: center;
 | 
					 | 
				
			||||||
    align-items: center;
 | 
					 | 
				
			||||||
    min-height: 320px;
 | 
					 | 
				
			||||||
    height: calc(100vh - var(--header-height) * 2 - var(--gap) * 1);
 | 
					 | 
				
			||||||
    margin: 0 0 calc(var(--header-height) + var(--gap) * 2) 0;
 | 
					 | 
				
			||||||
    border-bottom: solid 2px var(--entry);
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
/* @media (max-width: 768px) { */
 | 
					 | 
				
			||||||
.first-entry {
 | 
					 | 
				
			||||||
    height: calc(var(--vh, 1vh) * 100 - var(--header-height) * 2 - var(--gap) * 1);
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.first-entry .entry-header {
 | 
					 | 
				
			||||||
    overflow: hidden;
 | 
					 | 
				
			||||||
    display: -webkit-box;
 | 
					 | 
				
			||||||
    -webkit-box-orient: vertical;
 | 
					 | 
				
			||||||
    -webkit-line-clamp: 3;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.first-entry .entry-header h1 {
 | 
					 | 
				
			||||||
    font-size: 32px;
 | 
					 | 
				
			||||||
    line-height: 1.3;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.first-entry .entry-content {
 | 
					 | 
				
			||||||
    margin: 24px 0;
 | 
					 | 
				
			||||||
    font-size: 16px;
 | 
					 | 
				
			||||||
    -webkit-line-clamp: 3;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.first-entry .entry-footer {
 | 
					 | 
				
			||||||
    position: absolute;
 | 
					 | 
				
			||||||
    width: 80%;
 | 
					 | 
				
			||||||
    padding: 4px 0;
 | 
					 | 
				
			||||||
    margin: 0 auto;
 | 
					 | 
				
			||||||
    display: flex;
 | 
					 | 
				
			||||||
    justify-content: center;
 | 
					 | 
				
			||||||
    bottom: var(--gap);
 | 
					 | 
				
			||||||
    font-size: 14px;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.post-entry-title {
 | 
					 | 
				
			||||||
    padding: var(--gap);
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.home-info .entry-content {
 | 
					 | 
				
			||||||
    -webkit-line-clamp: unset;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.post-entry {
 | 
					 | 
				
			||||||
    position: relative;
 | 
					 | 
				
			||||||
    padding: calc(var(--gap)*1.5);
 | 
					 | 
				
			||||||
    border-radius: var(--radius);
 | 
					 | 
				
			||||||
    transition: transform 0.1s;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.post-entry:hover {
 | 
					 | 
				
			||||||
/*    transform: scale(1.01);*/
 | 
					 | 
				
			||||||
    background-color: var(--entry-hover);
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.tag-entry .entry-cover {
 | 
					 | 
				
			||||||
    display: none;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.entry-header h2 {
 | 
					 | 
				
			||||||
    font-weight: 550;
 | 
					 | 
				
			||||||
    font-size: 18px;
 | 
					 | 
				
			||||||
    line-height: 1.5;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.entry-content {
 | 
					 | 
				
			||||||
    color: var(--secondary);
 | 
					 | 
				
			||||||
    font-size: 15px;
 | 
					 | 
				
			||||||
    line-height: 1.6;
 | 
					 | 
				
			||||||
    overflow: hidden;
 | 
					 | 
				
			||||||
    display: -webkit-box;
 | 
					 | 
				
			||||||
    -webkit-box-orient: vertical;
 | 
					 | 
				
			||||||
    -webkit-line-clamp: 2;
 | 
					 | 
				
			||||||
/*    display: none;*/
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.entry-footer {
 | 
					 | 
				
			||||||
    margin: 4px 0;
 | 
					 | 
				
			||||||
    color: var(--primary);
 | 
					 | 
				
			||||||
    font-size: 15px;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.entry-link {
 | 
					 | 
				
			||||||
    position: absolute;
 | 
					 | 
				
			||||||
    left: 0;
 | 
					 | 
				
			||||||
    right: 0;
 | 
					 | 
				
			||||||
    top: 0;
 | 
					 | 
				
			||||||
    bottom: 0;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.entry-cover,
 | 
					 | 
				
			||||||
.entry-isdraft {
 | 
					 | 
				
			||||||
    font-size: 14px;
 | 
					 | 
				
			||||||
    color: var(--secondary);
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.entry-cover {
 | 
					 | 
				
			||||||
    margin-bottom: var(--gap);
 | 
					 | 
				
			||||||
    text-align: center;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.entry-cover img {
 | 
					 | 
				
			||||||
    border-radius: var(--radius);
 | 
					 | 
				
			||||||
    pointer-events: none;
 | 
					 | 
				
			||||||
    width: 100%;
 | 
					 | 
				
			||||||
    height: auto;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.entry-cover a {
 | 
					 | 
				
			||||||
    color: var(--secondary);
 | 
					 | 
				
			||||||
    box-shadow: 0 1px 0 var(--primary);
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,437 +0,0 @@
 | 
				
			||||||
.post-single {
 | 
					 | 
				
			||||||
/*    padding-top: calc(var(--gap)); */
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.post-header {
 | 
					 | 
				
			||||||
    margin: calc(var(--content-gap) * 3) auto calc(var(--content-gap) * 2) auto;
 | 
					 | 
				
			||||||
    text-align: center;
 | 
					 | 
				
			||||||
    position: relative;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.post-title {
 | 
					 | 
				
			||||||
    margin-bottom: 12px;
 | 
					 | 
				
			||||||
    font-size: 24px;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.post-description {
 | 
					 | 
				
			||||||
    margin-top: 10px;
 | 
					 | 
				
			||||||
    margin-bottom: 5px;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.post-meta {
 | 
					 | 
				
			||||||
    color: var(--secondary);
 | 
					 | 
				
			||||||
    font-size: 14px;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.post-meta .i18n_list li {
 | 
					 | 
				
			||||||
    display: inline-flex;
 | 
					 | 
				
			||||||
    list-style: none;
 | 
					 | 
				
			||||||
    margin: auto 3px;
 | 
					 | 
				
			||||||
    box-shadow: 0 1px 0 var(--secondary);
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.post-divider {
 | 
					 | 
				
			||||||
    border-bottom: solid black 1px;
 | 
					 | 
				
			||||||
    margin-bottom: var(--content-gap);
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.breadcrumbs a {
 | 
					 | 
				
			||||||
    font-size: 16px;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.post-content {   
 | 
					 | 
				
			||||||
    padding-top: var(--gap);
 | 
					 | 
				
			||||||
    font-size: 17px;
 | 
					 | 
				
			||||||
    font-family: inherit;
 | 
					 | 
				
			||||||
    color: var(--content);
 | 
					 | 
				
			||||||
    line-height: 2;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.post-content h3,
 | 
					 | 
				
			||||||
.post-content h4,
 | 
					 | 
				
			||||||
.post-content h5,a
 | 
					 | 
				
			||||||
.post-content h6 {
 | 
					 | 
				
			||||||
    margin: 24px 0 16px;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.post-content h1 {
 | 
					 | 
				
			||||||
    margin: 40px auto 32px;
 | 
					 | 
				
			||||||
    font-size: 22px;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.post-content h2 {
 | 
					 | 
				
			||||||
    margin: 32px auto 24px;
 | 
					 | 
				
			||||||
    font-size: 20px;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.post-content h3 {
 | 
					 | 
				
			||||||
    font-size: 18px;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.post-content h4 {
 | 
					 | 
				
			||||||
    font-size: 16px;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.post-content h5 {
 | 
					 | 
				
			||||||
    font-size: 14px;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.post-content h6 {
 | 
					 | 
				
			||||||
    font-size: 12px;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.post-content a,
 | 
					 | 
				
			||||||
.toc a:hover {
 | 
					 | 
				
			||||||
    box-shadow: 0 1px 0;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.post-content a code {
 | 
					 | 
				
			||||||
    margin: auto 0;
 | 
					 | 
				
			||||||
    border-radius: 0;
 | 
					 | 
				
			||||||
    box-shadow: 0 -1px 0 var(--primary) inset;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.post-content del {
 | 
					 | 
				
			||||||
    text-decoration: none;
 | 
					 | 
				
			||||||
    background: linear-gradient(to right, var(--primary) 100%, transparent 0) 0 50%/1px 1px repeat-x;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.post-content dl,
 | 
					 | 
				
			||||||
.post-content ol,
 | 
					 | 
				
			||||||
.post-content p,
 | 
					 | 
				
			||||||
.post-content figure,
 | 
					 | 
				
			||||||
.post-content ul {
 | 
					 | 
				
			||||||
    margin-bottom: var(--content-gap);
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.post-content ol,
 | 
					 | 
				
			||||||
.post-content ul {
 | 
					 | 
				
			||||||
    padding-inline-start: 20px;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.post-content li {
 | 
					 | 
				
			||||||
    margin-top: 5px;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.post-content li p {
 | 
					 | 
				
			||||||
    margin-bottom: 0;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.post-content dl {
 | 
					 | 
				
			||||||
    display: flex;
 | 
					 | 
				
			||||||
    flex-wrap: wrap;
 | 
					 | 
				
			||||||
    margin: 0;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.post-content dt {
 | 
					 | 
				
			||||||
    width: 25%;
 | 
					 | 
				
			||||||
    font-weight: 700;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.post-content dd {
 | 
					 | 
				
			||||||
    width: 75%;
 | 
					 | 
				
			||||||
    margin-inline-start: 0;
 | 
					 | 
				
			||||||
    padding-inline-start: 10px;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.post-content dd ~ dd,
 | 
					 | 
				
			||||||
.post-content dt ~ dt {
 | 
					 | 
				
			||||||
    margin-top: 10px;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.post-content table {
 | 
					 | 
				
			||||||
    margin-bottom: 32px;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.post-content table th,
 | 
					 | 
				
			||||||
.post-content table:not(.highlighttable, .highlight table, .gist .highlight) td {
 | 
					 | 
				
			||||||
    min-width: 80px;
 | 
					 | 
				
			||||||
    padding: 12px 8px;
 | 
					 | 
				
			||||||
    line-height: 1.5;
 | 
					 | 
				
			||||||
    border-bottom: 1px solid var(--border);
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.post-content table th {
 | 
					 | 
				
			||||||
    font-size: 14px;
 | 
					 | 
				
			||||||
    text-align: start;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.post-content table:not(.highlighttable) td code:only-child {
 | 
					 | 
				
			||||||
    margin: auto 0;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.post-content .highlight table {
 | 
					 | 
				
			||||||
    border-radius: var(--radius);
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.post-content .highlight:not(table) {
 | 
					 | 
				
			||||||
    margin: 10px auto;
 | 
					 | 
				
			||||||
    background: var(--hljs-bg) !important;
 | 
					 | 
				
			||||||
    border-radius: var(--radius);
 | 
					 | 
				
			||||||
    direction: ltr;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.post-content li > .highlight {
 | 
					 | 
				
			||||||
    margin-inline-end: 0;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.post-content ul pre {
 | 
					 | 
				
			||||||
    margin-inline-start: calc(var(--gap) * -2);
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.post-content .highlight pre {
 | 
					 | 
				
			||||||
    margin: 0;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.post-content .highlighttable {
 | 
					 | 
				
			||||||
    table-layout: fixed;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.post-content .highlighttable td:first-child {
 | 
					 | 
				
			||||||
    width: 40px;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.post-content .highlighttable td .linenodiv {
 | 
					 | 
				
			||||||
    padding-inline-end: 0 !important;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.post-content .highlighttable td .highlight,
 | 
					 | 
				
			||||||
.post-content .highlighttable td .linenodiv pre {
 | 
					 | 
				
			||||||
    margin-bottom: 0;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.post-content code {
 | 
					 | 
				
			||||||
    margin: auto 4px;
 | 
					 | 
				
			||||||
    padding: 4px 6px;
 | 
					 | 
				
			||||||
    font-size: 0.9em;
 | 
					 | 
				
			||||||
    line-height: 1.5;
 | 
					 | 
				
			||||||
    background: var(--code-bg);
 | 
					 | 
				
			||||||
    border-radius: 2px;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.post-content pre code {
 | 
					 | 
				
			||||||
    display: block;
 | 
					 | 
				
			||||||
    margin: auto 0;
 | 
					 | 
				
			||||||
    padding: 10px;
 | 
					 | 
				
			||||||
    color: rgb(213, 213, 214);
 | 
					 | 
				
			||||||
    background: var(--hljs-bg) !important;
 | 
					 | 
				
			||||||
    border-radius: var(--radius);
 | 
					 | 
				
			||||||
    overflow-x: auto;
 | 
					 | 
				
			||||||
    word-break: break-all;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.post-content blockquote {
 | 
					 | 
				
			||||||
    margin: 20px 0;
 | 
					 | 
				
			||||||
    padding: 0 14px;
 | 
					 | 
				
			||||||
    border-inline-start: 3px solid var(--primary);
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.post-content hr {
 | 
					 | 
				
			||||||
    margin: 30px 0;
 | 
					 | 
				
			||||||
    height: 2px;
 | 
					 | 
				
			||||||
    background: var(--tertiary);
 | 
					 | 
				
			||||||
    border: 0;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.post-content iframe {
 | 
					 | 
				
			||||||
    max-width: 100%;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.post-content img {
 | 
					 | 
				
			||||||
    border-radius: 4px;
 | 
					 | 
				
			||||||
    margin: 1rem 0;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.post-content img[src*="#center"] {
 | 
					 | 
				
			||||||
    margin: 1rem auto;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.post-content figure.align-center {
 | 
					 | 
				
			||||||
    text-align: center;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.post-content figure > figcaption {
 | 
					 | 
				
			||||||
    color: var(--primary);
 | 
					 | 
				
			||||||
    font-size: 16px;
 | 
					 | 
				
			||||||
    font-weight: bold;
 | 
					 | 
				
			||||||
    margin: 8px 0 16px;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.post-content figure > figcaption > p {
 | 
					 | 
				
			||||||
    color: var(--secondary);
 | 
					 | 
				
			||||||
    font-size: 14px;
 | 
					 | 
				
			||||||
    font-weight: normal;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.toc {
 | 
					 | 
				
			||||||
    margin: 0 2px 40px 2px;
 | 
					 | 
				
			||||||
    border: 1px solid var(--border);
 | 
					 | 
				
			||||||
    background: var(--code-bg);
 | 
					 | 
				
			||||||
    border-radius: var(--radius);
 | 
					 | 
				
			||||||
    padding: 0.4em;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.dark .toc {
 | 
					 | 
				
			||||||
    background: var(--entry);
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.toc details summary {
 | 
					 | 
				
			||||||
    cursor: zoom-in;
 | 
					 | 
				
			||||||
    margin-inline-start: 20px;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.toc details[open] summary {
 | 
					 | 
				
			||||||
    cursor: zoom-out;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.toc .details {
 | 
					 | 
				
			||||||
    display: inline;
 | 
					 | 
				
			||||||
    font-weight: 500;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.toc .inner {
 | 
					 | 
				
			||||||
    margin: 0 20px;
 | 
					 | 
				
			||||||
    padding: 10px 20px;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.toc li ul {
 | 
					 | 
				
			||||||
    margin-inline-start: var(--gap);
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.toc summary:focus {
 | 
					 | 
				
			||||||
    outline: 0;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.post-footer {
 | 
					 | 
				
			||||||
    margin-top: 48px;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.post-tags li {
 | 
					 | 
				
			||||||
    display: inline-block;
 | 
					 | 
				
			||||||
    margin-inline-end: 3px;
 | 
					 | 
				
			||||||
    margin-bottom: 5px;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.post-tags a,
 | 
					 | 
				
			||||||
.share-buttons,
 | 
					 | 
				
			||||||
.paginav {
 | 
					 | 
				
			||||||
    border-radius: var(--radius);
 | 
					 | 
				
			||||||
/*    background: var(--code-bg);
 | 
					 | 
				
			||||||
    border: 1px solid var(--code-bg); */
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.post-tags a {
 | 
					 | 
				
			||||||
    display: block;
 | 
					 | 
				
			||||||
    padding-inline-start: 14px;
 | 
					 | 
				
			||||||
    padding-inline-end: 14px;
 | 
					 | 
				
			||||||
    color: var(--secondary);
 | 
					 | 
				
			||||||
    font-size: 14px;
 | 
					 | 
				
			||||||
    line-height: 34px;
 | 
					 | 
				
			||||||
    background: var(--code-bg);
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
/**
 | 
					 | 
				
			||||||
.post-tags a:hover,
 | 
					 | 
				
			||||||
.paginav a:hover {
 | 
					 | 
				
			||||||
    background: var(--border);
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
**/
 | 
					 | 
				
			||||||
.share-buttons {
 | 
					 | 
				
			||||||
    margin: 14px 0;
 | 
					 | 
				
			||||||
    padding-inline-start: var(--radius);
 | 
					 | 
				
			||||||
    display: flex;
 | 
					 | 
				
			||||||
    justify-content: center;
 | 
					 | 
				
			||||||
    overflow-x: auto;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.share-buttons a {
 | 
					 | 
				
			||||||
    margin-top: 10px;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.share-buttons a:not(:last-of-type) {
 | 
					 | 
				
			||||||
    margin-inline-end: 12px;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
h1:hover .anchor,
 | 
					 | 
				
			||||||
h2:hover .anchor,
 | 
					 | 
				
			||||||
h3:hover .anchor,
 | 
					 | 
				
			||||||
h4:hover .anchor,
 | 
					 | 
				
			||||||
h5:hover .anchor,
 | 
					 | 
				
			||||||
h6:hover .anchor {
 | 
					 | 
				
			||||||
    display: inline-flex;
 | 
					 | 
				
			||||||
    color: var(--secondary);
 | 
					 | 
				
			||||||
    margin-inline-start: 8px;
 | 
					 | 
				
			||||||
    font-weight: 500;
 | 
					 | 
				
			||||||
    user-select: none;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.paginav {
 | 
					 | 
				
			||||||
    margin: 10px 0;
 | 
					 | 
				
			||||||
    display: flex;
 | 
					 | 
				
			||||||
    line-height: 30px;
 | 
					 | 
				
			||||||
    border-radius: var(--radius);
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.paginav a {
 | 
					 | 
				
			||||||
    padding-inline-start: 14px;
 | 
					 | 
				
			||||||
    padding-inline-end: 14px;
 | 
					 | 
				
			||||||
    border-radius: var(--radius);
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.pag-back {
 | 
					 | 
				
			||||||
    height: 20px;
 | 
					 | 
				
			||||||
    width: 20px;
 | 
					 | 
				
			||||||
    color: var(--secondary);
 | 
					 | 
				
			||||||
    position: absolute;
 | 
					 | 
				
			||||||
    top: 10px;
 | 
					 | 
				
			||||||
    left: 10px;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.pag-back:hover {
 | 
					 | 
				
			||||||
    transform: scale(1.1);
 | 
					 | 
				
			||||||
    transition-duration: 0.1s;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.paginav .title {
 | 
					 | 
				
			||||||
    letter-spacing: 1px;
 | 
					 | 
				
			||||||
    text-transform: uppercase;
 | 
					 | 
				
			||||||
    font-size: small;
 | 
					 | 
				
			||||||
    color: var(--secondary);
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.paginav .prev,
 | 
					 | 
				
			||||||
.paginav .next {
 | 
					 | 
				
			||||||
    width: 50%;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.paginav span:hover:not(.title) {
 | 
					 | 
				
			||||||
    box-shadow: 0 0px 0;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.paginav .next {
 | 
					 | 
				
			||||||
    margin-inline-start: auto;
 | 
					 | 
				
			||||||
    text-align: right;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
[dir="rtl"] .paginav .next {
 | 
					 | 
				
			||||||
    text-align: left;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
h1>a>svg {
 | 
					 | 
				
			||||||
    display: inline;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
img.in-text {
 | 
					 | 
				
			||||||
    display: inline;
 | 
					 | 
				
			||||||
    margin: auto;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
@media (max-width: 768px) {
 | 
					 | 
				
			||||||
    .post-content {   
 | 
					 | 
				
			||||||
        font-size: 15.5px;
 | 
					 | 
				
			||||||
        word-break: break-word;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
    .pag-back {
 | 
					 | 
				
			||||||
        position: relative;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,42 +0,0 @@
 | 
				
			||||||
.buttons,
 | 
					 | 
				
			||||||
.main .profile {
 | 
					 | 
				
			||||||
    display: flex;
 | 
					 | 
				
			||||||
    justify-content: center;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.main .profile {
 | 
					 | 
				
			||||||
    align-items: center;
 | 
					 | 
				
			||||||
    min-height: calc(100vh - var(--header-height) - var(--footer-height) - (var(--gap) * 2));
 | 
					 | 
				
			||||||
    text-align: center;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.profile .profile_inner h1 {
 | 
					 | 
				
			||||||
    padding: 12px 0;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.profile img {
 | 
					 | 
				
			||||||
    display: inline-table;
 | 
					 | 
				
			||||||
    border-radius: 50%;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.buttons {
 | 
					 | 
				
			||||||
    flex-wrap: wrap;
 | 
					 | 
				
			||||||
    max-width: 400px;
 | 
					 | 
				
			||||||
    margin: 0 auto;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.button {
 | 
					 | 
				
			||||||
    background: var(--tertiary);
 | 
					 | 
				
			||||||
    border-radius: var(--radius);
 | 
					 | 
				
			||||||
    margin: 8px;
 | 
					 | 
				
			||||||
    padding: 6px;
 | 
					 | 
				
			||||||
    transition: transform 0.1s;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.button-inner {
 | 
					 | 
				
			||||||
    padding: 0 8px;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.button:active {
 | 
					 | 
				
			||||||
    transform: scale(0.96);
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,45 +0,0 @@
 | 
				
			||||||
#searchbox input {
 | 
					 | 
				
			||||||
    padding: 4px 10px;
 | 
					 | 
				
			||||||
    width: 100%;
 | 
					 | 
				
			||||||
    color: var(--primary);
 | 
					 | 
				
			||||||
    font-weight: bold;
 | 
					 | 
				
			||||||
    border: 2px solid var(--tertiary);
 | 
					 | 
				
			||||||
    border-radius: var(--radius);
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#searchbox input:focus {
 | 
					 | 
				
			||||||
    border-color: var(--secondary);
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#searchResults li {
 | 
					 | 
				
			||||||
    list-style: none;
 | 
					 | 
				
			||||||
    border-radius: var(--radius);
 | 
					 | 
				
			||||||
    padding: 10px;
 | 
					 | 
				
			||||||
    margin: 10px 0;
 | 
					 | 
				
			||||||
    position: relative;
 | 
					 | 
				
			||||||
    font-weight: 500;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#searchResults {
 | 
					 | 
				
			||||||
    margin: 10px 0;
 | 
					 | 
				
			||||||
    width: 100%;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#searchResults li:active {
 | 
					 | 
				
			||||||
    transition: transform 0.1s;
 | 
					 | 
				
			||||||
    transform: scale(0.98);
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#searchResults a {
 | 
					 | 
				
			||||||
    position: absolute;
 | 
					 | 
				
			||||||
    width: 100%;
 | 
					 | 
				
			||||||
    height: 100%;
 | 
					 | 
				
			||||||
    top: 0px;
 | 
					 | 
				
			||||||
    left: 0px;
 | 
					 | 
				
			||||||
    outline: none;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#searchResults .focus {
 | 
					 | 
				
			||||||
    transform: scale(0.98);
 | 
					 | 
				
			||||||
    border: 2px solid var(--tertiary);
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,18 +0,0 @@
 | 
				
			||||||
.terms-tags li {
 | 
					 | 
				
			||||||
    display: inline-block;
 | 
					 | 
				
			||||||
    margin: 10px;
 | 
					 | 
				
			||||||
    font-weight: 500;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.terms-tags a {
 | 
					 | 
				
			||||||
    display: block;
 | 
					 | 
				
			||||||
    padding: 3px 10px;
 | 
					 | 
				
			||||||
    background: var(--tertiary);
 | 
					 | 
				
			||||||
    border-radius: 6px;
 | 
					 | 
				
			||||||
    transition: transform 0.1s;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.terms-tags a:active {
 | 
					 | 
				
			||||||
    background: var(--tertiary);
 | 
					 | 
				
			||||||
    transform: scale(0.96);
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,6 +0,0 @@
 | 
				
			||||||
/*
 | 
					 | 
				
			||||||
  PaperMod v6
 | 
					 | 
				
			||||||
  License: MIT https://github.com/adityatelange/hugo-PaperMod/blob/master/LICENSE
 | 
					 | 
				
			||||||
  Copyright (c) 2020 nanxiaobei and adityatelange
 | 
					 | 
				
			||||||
  Copyright (c) 2021-2022 adityatelange
 | 
					 | 
				
			||||||
*/
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,127 +0,0 @@
 | 
				
			||||||
@import url("https://cdn.jsdelivr.net/gh/orioncactus/pretendard@v1.3.8/dist/web/static/pretendard.css");
 | 
					 | 
				
			||||||
@import url('https://fonts.googleapis.com/css2?family=JetBrains+Mono:ital,wght@0,300;0,400;1,300;1,400&family=Lato:ital,wght@0,300;0,400;0,700;1,300;1,400;1,700&family=Noto+Sans:wght@200;300;400;500;600;700&family=Open+Sans:wght@200;300;400;500;600;700&display=swap');
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
*,
 | 
					 | 
				
			||||||
::after,
 | 
					 | 
				
			||||||
::before {
 | 
					 | 
				
			||||||
    box-sizing: border-box;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
html {
 | 
					 | 
				
			||||||
    -webkit-tap-highlight-color: transparent;
 | 
					 | 
				
			||||||
    overflow-y: scroll;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
a,
 | 
					 | 
				
			||||||
button,
 | 
					 | 
				
			||||||
body,
 | 
					 | 
				
			||||||
h1,
 | 
					 | 
				
			||||||
h2,
 | 
					 | 
				
			||||||
h3,
 | 
					 | 
				
			||||||
h4,
 | 
					 | 
				
			||||||
h5,
 | 
					 | 
				
			||||||
h6 {
 | 
					 | 
				
			||||||
    color: var(--primary);
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
h1 { font-size: 24px; }
 | 
					 | 
				
			||||||
h2 { font-size: 18px; }
 | 
					 | 
				
			||||||
h3 { font-size: 16px; }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
body {
 | 
					 | 
				
			||||||
    font-family: "Noto Sans", "Lato", "Pretendard", sans-serif !important;
 | 
					 | 
				
			||||||
    font-size: 14px;
 | 
					 | 
				
			||||||
    line-height: 1.8;
 | 
					 | 
				
			||||||
    word-break: break-word;
 | 
					 | 
				
			||||||
    background: var(--theme);
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
code {
 | 
					 | 
				
			||||||
    font-family: "Jetbrains Mono", monospace !important;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
article,
 | 
					 | 
				
			||||||
aside,
 | 
					 | 
				
			||||||
figcaption,
 | 
					 | 
				
			||||||
figure,
 | 
					 | 
				
			||||||
footer,
 | 
					 | 
				
			||||||
header,
 | 
					 | 
				
			||||||
hgroup,
 | 
					 | 
				
			||||||
main,
 | 
					 | 
				
			||||||
nav,
 | 
					 | 
				
			||||||
section,
 | 
					 | 
				
			||||||
table {
 | 
					 | 
				
			||||||
    display: block;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
h1,
 | 
					 | 
				
			||||||
h2,
 | 
					 | 
				
			||||||
h3,
 | 
					 | 
				
			||||||
h4,
 | 
					 | 
				
			||||||
h5,
 | 
					 | 
				
			||||||
h6 {
 | 
					 | 
				
			||||||
    line-height: 1.2;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
h1,
 | 
					 | 
				
			||||||
h2,
 | 
					 | 
				
			||||||
h3,
 | 
					 | 
				
			||||||
h4,
 | 
					 | 
				
			||||||
h5,
 | 
					 | 
				
			||||||
h6,
 | 
					 | 
				
			||||||
p {
 | 
					 | 
				
			||||||
    margin-top: 0;
 | 
					 | 
				
			||||||
    margin-bottom: 0;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
ul {
 | 
					 | 
				
			||||||
    padding: 0;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
a {
 | 
					 | 
				
			||||||
    text-decoration: none;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
body,
 | 
					 | 
				
			||||||
figure,
 | 
					 | 
				
			||||||
ul {
 | 
					 | 
				
			||||||
    margin: 0;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
table {
 | 
					 | 
				
			||||||
    width: 100%;
 | 
					 | 
				
			||||||
    border-collapse: collapse;
 | 
					 | 
				
			||||||
    border-spacing: 0;
 | 
					 | 
				
			||||||
    overflow-x: auto;
 | 
					 | 
				
			||||||
    word-break: keep-all;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
button,
 | 
					 | 
				
			||||||
input,
 | 
					 | 
				
			||||||
textarea {
 | 
					 | 
				
			||||||
    padding: 0;
 | 
					 | 
				
			||||||
    font: inherit;
 | 
					 | 
				
			||||||
    background: 0 0;
 | 
					 | 
				
			||||||
    border: 0;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
input,
 | 
					 | 
				
			||||||
textarea {
 | 
					 | 
				
			||||||
    outline: 0;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
button,
 | 
					 | 
				
			||||||
input[type=button],
 | 
					 | 
				
			||||||
input[type=submit] {
 | 
					 | 
				
			||||||
    cursor: pointer;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
input:-webkit-autofill,
 | 
					 | 
				
			||||||
textarea:-webkit-autofill {
 | 
					 | 
				
			||||||
    box-shadow: 0 0 0 50px var(--theme) inset;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
img {
 | 
					 | 
				
			||||||
    display: block;
 | 
					 | 
				
			||||||
    max-width: 100%;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,40 +0,0 @@
 | 
				
			||||||
:root {
 | 
					 | 
				
			||||||
    --gap: 20px;
 | 
					 | 
				
			||||||
    --content-gap: 20px;
 | 
					 | 
				
			||||||
    --nav-width: 800px;
 | 
					 | 
				
			||||||
    --main-width: 800px;
 | 
					 | 
				
			||||||
    --header-height: 0px;
 | 
					 | 
				
			||||||
    --footer-height: 60px;
 | 
					 | 
				
			||||||
    --radius: 8px;
 | 
					 | 
				
			||||||
    --theme: white;
 | 
					 | 
				
			||||||
    --entry: #EEE;
 | 
					 | 
				
			||||||
    --primary: #242424;
 | 
					 | 
				
			||||||
    --secondary: rgb(108, 108, 108);
 | 
					 | 
				
			||||||
    --tertiary: rgb(214, 214, 214);
 | 
					 | 
				
			||||||
    --content: #181818;
 | 
					 | 
				
			||||||
    --hljs-bg: #353535;
 | 
					 | 
				
			||||||
    --code-bg: rgb(245, 245, 245);
 | 
					 | 
				
			||||||
    --border: rgb(238, 238, 238);
 | 
					 | 
				
			||||||
    --entry-hover: #F6F6FF;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.dark {
 | 
					 | 
				
			||||||
    --theme: #1f2224;
 | 
					 | 
				
			||||||
    --entry: rgb(46, 46, 51);
 | 
					 | 
				
			||||||
    --primary: rgb(218, 218, 219);
 | 
					 | 
				
			||||||
    --secondary: rgb(155, 156, 157);
 | 
					 | 
				
			||||||
    --tertiary: rgb(65, 66, 68);
 | 
					 | 
				
			||||||
    --content: white;
 | 
					 | 
				
			||||||
    --hljs-bg: rgb(46, 46, 51);
 | 
					 | 
				
			||||||
    --code-bg: rgb(55, 56, 62);
 | 
					 | 
				
			||||||
    --border: rgb(51, 51, 51);
 | 
					 | 
				
			||||||
    --entry-hover: #323237;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.list {
 | 
					 | 
				
			||||||
    background: var(--theme);
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.dark.list {
 | 
					 | 
				
			||||||
    background: var(--theme);
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,49 +0,0 @@
 | 
				
			||||||
@media screen and (max-width: 768px) {
 | 
					 | 
				
			||||||
    /* theme-vars */
 | 
					 | 
				
			||||||
    :root {
 | 
					 | 
				
			||||||
        --gap: 14px;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    /* profile-mode */
 | 
					 | 
				
			||||||
    .profile img {
 | 
					 | 
				
			||||||
        transform: scale(0.85);
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    /* post-entry */
 | 
					 | 
				
			||||||
    .first-entry {
 | 
					 | 
				
			||||||
        min-height: 260px;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    /* archive */
 | 
					 | 
				
			||||||
    .archive-month {
 | 
					 | 
				
			||||||
        flex-direction: column;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    .archive-year {
 | 
					 | 
				
			||||||
        margin-top: 20px;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    /* footer */
 | 
					 | 
				
			||||||
    .footer {
 | 
					 | 
				
			||||||
        padding: calc((var(--footer-height) - var(--gap) - 10px) / 2) var(--gap);
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
/* footer */
 | 
					 | 
				
			||||||
@media screen and (max-width: 900px) {
 | 
					 | 
				
			||||||
    .list .top-link {
 | 
					 | 
				
			||||||
        transform: translateY(-5rem);
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
@media (prefers-reduced-motion) {
 | 
					 | 
				
			||||||
    /* terms; profile-mode; post-single; post-entry; post-entry; search; search */
 | 
					 | 
				
			||||||
    .terms-tags a:active,
 | 
					 | 
				
			||||||
    .button:active,
 | 
					 | 
				
			||||||
    .post-entry:active,
 | 
					 | 
				
			||||||
    .top-link,
 | 
					 | 
				
			||||||
    #searchResults .focus,
 | 
					 | 
				
			||||||
    #searchResults li:active {
 | 
					 | 
				
			||||||
        transform: none;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,5 +0,0 @@
 | 
				
			||||||
/*
 | 
					 | 
				
			||||||
This is just a placeholder blank stylesheet so as to support adding custom styles budled with theme's default styles
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Read https://github.com/adityatelange/hugo-PaperMod/wiki/FAQs#bundling-custom-css-with-themes-assets for more info
 | 
					 | 
				
			||||||
*/
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,63 +0,0 @@
 | 
				
			||||||
.hljs-comment,
 | 
					 | 
				
			||||||
.hljs-quote {
 | 
					 | 
				
			||||||
    color: #b6b18b;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.hljs-deletion,
 | 
					 | 
				
			||||||
.hljs-name,
 | 
					 | 
				
			||||||
.hljs-regexp,
 | 
					 | 
				
			||||||
.hljs-selector-class,
 | 
					 | 
				
			||||||
.hljs-selector-id,
 | 
					 | 
				
			||||||
.hljs-tag,
 | 
					 | 
				
			||||||
.hljs-template-variable,
 | 
					 | 
				
			||||||
.hljs-variable {
 | 
					 | 
				
			||||||
    color: #eb3c54;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.hljs-built_in,
 | 
					 | 
				
			||||||
.hljs-builtin-name,
 | 
					 | 
				
			||||||
.hljs-link,
 | 
					 | 
				
			||||||
.hljs-literal,
 | 
					 | 
				
			||||||
.hljs-meta,
 | 
					 | 
				
			||||||
.hljs-number,
 | 
					 | 
				
			||||||
.hljs-params,
 | 
					 | 
				
			||||||
.hljs-type {
 | 
					 | 
				
			||||||
    color: #e7ce56;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.hljs-attribute {
 | 
					 | 
				
			||||||
    color: #ee7c2b;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.hljs-addition,
 | 
					 | 
				
			||||||
.hljs-bullet,
 | 
					 | 
				
			||||||
.hljs-string,
 | 
					 | 
				
			||||||
.hljs-symbol {
 | 
					 | 
				
			||||||
    color: #4fb4d7;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.hljs-section,
 | 
					 | 
				
			||||||
.hljs-title {
 | 
					 | 
				
			||||||
    color: #78bb65;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.hljs-keyword,
 | 
					 | 
				
			||||||
.hljs-selector-tag {
 | 
					 | 
				
			||||||
    color: #b45ea4;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.hljs {
 | 
					 | 
				
			||||||
    display: block;
 | 
					 | 
				
			||||||
    overflow-x: auto;
 | 
					 | 
				
			||||||
    background: #1c1d21;
 | 
					 | 
				
			||||||
    color: #c0c5ce;
 | 
					 | 
				
			||||||
    padding: .5em;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.hljs-emphasis {
 | 
					 | 
				
			||||||
    font-style: italic;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.hljs-strong {
 | 
					 | 
				
			||||||
    font-weight: 700;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,63 +0,0 @@
 | 
				
			||||||
/* from reset */
 | 
					 | 
				
			||||||
::-webkit-scrollbar-track {
 | 
					 | 
				
			||||||
    background: 0 0;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.list:not(.dark)::-webkit-scrollbar-track {
 | 
					 | 
				
			||||||
    background: var(--code-bg);
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
::-webkit-scrollbar-thumb {
 | 
					 | 
				
			||||||
    background: var(--tertiary);
 | 
					 | 
				
			||||||
    border: 5px solid var(--theme);
 | 
					 | 
				
			||||||
    border-radius: var(--radius);
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.list:not(.dark)::-webkit-scrollbar-thumb {
 | 
					 | 
				
			||||||
    border: 5px solid var(--code-bg);
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
::-webkit-scrollbar-thumb:hover {
 | 
					 | 
				
			||||||
    background: var(--secondary);
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
::-webkit-scrollbar:not(.highlighttable, .highlight table, .gist .highlight) {
 | 
					 | 
				
			||||||
    background: var(--theme);
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
/* from post-single */
 | 
					 | 
				
			||||||
.post-content .highlighttable td .highlight pre code::-webkit-scrollbar {
 | 
					 | 
				
			||||||
    display: none;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.post-content :not(table) ::-webkit-scrollbar-thumb {
 | 
					 | 
				
			||||||
    border: 2px solid var(--hljs-bg);
 | 
					 | 
				
			||||||
    background: rgb(113, 113, 117);
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.post-content :not(table) ::-webkit-scrollbar-thumb:hover {
 | 
					 | 
				
			||||||
    background: rgb(163, 163, 165);
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.gist table::-webkit-scrollbar-thumb {
 | 
					 | 
				
			||||||
    border: 2px solid rgb(255, 255, 255);
 | 
					 | 
				
			||||||
    background: rgb(173, 173, 173);
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.gist table::-webkit-scrollbar-thumb:hover {
 | 
					 | 
				
			||||||
    background: rgb(112, 112, 112);
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.post-content table::-webkit-scrollbar-thumb {
 | 
					 | 
				
			||||||
    border-width: 2px;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
/* from zmedia */
 | 
					 | 
				
			||||||
@media screen and (min-width: 768px) {
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    /* reset */
 | 
					 | 
				
			||||||
    ::-webkit-scrollbar {
 | 
					 | 
				
			||||||
        width: 19px;
 | 
					 | 
				
			||||||
        height: 11px;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,147 +0,0 @@
 | 
				
			||||||
import * as params from '@params';
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
let fuse; // holds our search engine
 | 
					 | 
				
			||||||
let resList = document.getElementById('searchResults');
 | 
					 | 
				
			||||||
let sInput = document.getElementById('searchInput');
 | 
					 | 
				
			||||||
let first, last, current_elem = null
 | 
					 | 
				
			||||||
let resultsAvailable = false;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// load our search index
 | 
					 | 
				
			||||||
window.onload = function () {
 | 
					 | 
				
			||||||
    let xhr = new XMLHttpRequest();
 | 
					 | 
				
			||||||
    xhr.onreadystatechange = function () {
 | 
					 | 
				
			||||||
        if (xhr.readyState === 4) {
 | 
					 | 
				
			||||||
            if (xhr.status === 200) {
 | 
					 | 
				
			||||||
                let data = JSON.parse(xhr.responseText);
 | 
					 | 
				
			||||||
                if (data) {
 | 
					 | 
				
			||||||
                    // fuse.js options; check fuse.js website for details
 | 
					 | 
				
			||||||
                    let options = {
 | 
					 | 
				
			||||||
                        distance: 100,
 | 
					 | 
				
			||||||
                        threshold: 0.4,
 | 
					 | 
				
			||||||
                        ignoreLocation: true,
 | 
					 | 
				
			||||||
                        keys: [
 | 
					 | 
				
			||||||
                            'title',
 | 
					 | 
				
			||||||
                            'permalink',
 | 
					 | 
				
			||||||
                            'summary',
 | 
					 | 
				
			||||||
                            'content'
 | 
					 | 
				
			||||||
                        ]
 | 
					 | 
				
			||||||
                    };
 | 
					 | 
				
			||||||
                    if (params.fuseOpts) {
 | 
					 | 
				
			||||||
                        options = {
 | 
					 | 
				
			||||||
                            isCaseSensitive: params.fuseOpts.iscasesensitive ?? false,
 | 
					 | 
				
			||||||
                            includeScore: params.fuseOpts.includescore ?? false,
 | 
					 | 
				
			||||||
                            includeMatches: params.fuseOpts.includematches ?? false,
 | 
					 | 
				
			||||||
                            minMatchCharLength: params.fuseOpts.minmatchcharlength ?? 1,
 | 
					 | 
				
			||||||
                            shouldSort: params.fuseOpts.shouldsort ?? true,
 | 
					 | 
				
			||||||
                            findAllMatches: params.fuseOpts.findallmatches ?? false,
 | 
					 | 
				
			||||||
                            keys: params.fuseOpts.keys ?? ['title', 'permalink', 'summary', 'content'],
 | 
					 | 
				
			||||||
                            location: params.fuseOpts.location ?? 0,
 | 
					 | 
				
			||||||
                            threshold: params.fuseOpts.threshold ?? 0.4,
 | 
					 | 
				
			||||||
                            distance: params.fuseOpts.distance ?? 100,
 | 
					 | 
				
			||||||
                            ignoreLocation: params.fuseOpts.ignorelocation ?? true
 | 
					 | 
				
			||||||
                        }
 | 
					 | 
				
			||||||
                    }
 | 
					 | 
				
			||||||
                    fuse = new Fuse(data, options); // build the index from the json file
 | 
					 | 
				
			||||||
                }
 | 
					 | 
				
			||||||
            } else {
 | 
					 | 
				
			||||||
                console.log(xhr.responseText);
 | 
					 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
    };
 | 
					 | 
				
			||||||
    xhr.open('GET', "../index.json");
 | 
					 | 
				
			||||||
    xhr.send();
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
function activeToggle(ae) {
 | 
					 | 
				
			||||||
    document.querySelectorAll('.focus').forEach(function (element) {
 | 
					 | 
				
			||||||
        // rm focus class
 | 
					 | 
				
			||||||
        element.classList.remove("focus")
 | 
					 | 
				
			||||||
    });
 | 
					 | 
				
			||||||
    if (ae) {
 | 
					 | 
				
			||||||
        ae.focus()
 | 
					 | 
				
			||||||
        document.activeElement = current_elem = ae;
 | 
					 | 
				
			||||||
        ae.parentElement.classList.add("focus")
 | 
					 | 
				
			||||||
    } else {
 | 
					 | 
				
			||||||
        document.activeElement.parentElement.classList.add("focus")
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
function reset() {
 | 
					 | 
				
			||||||
    resultsAvailable = false;
 | 
					 | 
				
			||||||
    resList.innerHTML = sInput.value = ''; // clear inputbox and searchResults
 | 
					 | 
				
			||||||
    sInput.focus(); // shift focus to input box
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// execute search as each character is typed
 | 
					 | 
				
			||||||
sInput.onkeyup = function (e) {
 | 
					 | 
				
			||||||
    // run a search query (for "term") every time a letter is typed
 | 
					 | 
				
			||||||
    // in the search box
 | 
					 | 
				
			||||||
    if (fuse) {
 | 
					 | 
				
			||||||
        const results = fuse.search(this.value.trim()); // the actual query being run using fuse.js
 | 
					 | 
				
			||||||
        if (results.length !== 0) {
 | 
					 | 
				
			||||||
            // build our html if result exists
 | 
					 | 
				
			||||||
            let resultSet = ''; // our results bucket
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            for (let item in results) {
 | 
					 | 
				
			||||||
                resultSet += `<li class="post-entry"><header class="entry-header">${results[item].item.title} »</header>` +
 | 
					 | 
				
			||||||
                    `<a href="${results[item].item.permalink}" aria-label="${results[item].item.title}"></a></li>`
 | 
					 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            resList.innerHTML = resultSet;
 | 
					 | 
				
			||||||
            resultsAvailable = true;
 | 
					 | 
				
			||||||
            first = resList.firstChild;
 | 
					 | 
				
			||||||
            last = resList.lastChild;
 | 
					 | 
				
			||||||
        } else {
 | 
					 | 
				
			||||||
            resultsAvailable = false;
 | 
					 | 
				
			||||||
            resList.innerHTML = '';
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
sInput.addEventListener('search', function (e) {
 | 
					 | 
				
			||||||
    // clicked on x
 | 
					 | 
				
			||||||
    if (!this.value) reset()
 | 
					 | 
				
			||||||
})
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// kb bindings
 | 
					 | 
				
			||||||
document.onkeydown = function (e) {
 | 
					 | 
				
			||||||
    let key = e.key;
 | 
					 | 
				
			||||||
    let ae = document.activeElement;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    let inbox = document.getElementById("searchbox").contains(ae)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    if (ae === sInput) {
 | 
					 | 
				
			||||||
        let elements = document.getElementsByClassName('focus');
 | 
					 | 
				
			||||||
        while (elements.length > 0) {
 | 
					 | 
				
			||||||
            elements[0].classList.remove('focus');
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
    } else if (current_elem) ae = current_elem;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    if (key === "Escape") {
 | 
					 | 
				
			||||||
        reset()
 | 
					 | 
				
			||||||
    } else if (!resultsAvailable || !inbox) {
 | 
					 | 
				
			||||||
        return
 | 
					 | 
				
			||||||
    } else if (key === "ArrowDown") {
 | 
					 | 
				
			||||||
        e.preventDefault();
 | 
					 | 
				
			||||||
        if (ae == sInput) {
 | 
					 | 
				
			||||||
            // if the currently focused element is the search input, focus the <a> of first <li>
 | 
					 | 
				
			||||||
            activeToggle(resList.firstChild.lastChild);
 | 
					 | 
				
			||||||
        } else if (ae.parentElement != last) {
 | 
					 | 
				
			||||||
            // if the currently focused element's parent is last, do nothing
 | 
					 | 
				
			||||||
            // otherwise select the next search result
 | 
					 | 
				
			||||||
            activeToggle(ae.parentElement.nextSibling.lastChild);
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
    } else if (key === "ArrowUp") {
 | 
					 | 
				
			||||||
        e.preventDefault();
 | 
					 | 
				
			||||||
        if (ae.parentElement == first) {
 | 
					 | 
				
			||||||
            // if the currently focused element is first item, go to input box
 | 
					 | 
				
			||||||
            activeToggle(sInput);
 | 
					 | 
				
			||||||
        } else if (ae != sInput) {
 | 
					 | 
				
			||||||
            // if the currently focused element is input box, do nothing
 | 
					 | 
				
			||||||
            // otherwise select the previous search result
 | 
					 | 
				
			||||||
            activeToggle(ae.parentElement.previousSibling.lastChild);
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
    } else if (key === "ArrowRight") {
 | 
					 | 
				
			||||||
        ae.click(); // click on active link
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							| 
						 | 
					@ -1,6 +0,0 @@
 | 
				
			||||||
/*
 | 
					 | 
				
			||||||
  PaperMod v6
 | 
					 | 
				
			||||||
  License: MIT https://github.com/adityatelange/hugo-PaperMod/blob/master/LICENSE
 | 
					 | 
				
			||||||
  Copyright (c) 2020 nanxiaobei and adityatelange
 | 
					 | 
				
			||||||
  Copyright (c) 2021-2022 adityatelange
 | 
					 | 
				
			||||||
*/
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1 +0,0 @@
 | 
				
			||||||
<img loading="lazy" src="{{ .Destination | safeURL }}" alt="{{ .Text }}" {{ with .Title}} title="{{ . }}" {{ end }} />
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,49 +0,0 @@
 | 
				
			||||||
{{- define "main" }}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<header class="page-header">
 | 
					 | 
				
			||||||
  <h1>{{ .Title }}</h1>
 | 
					 | 
				
			||||||
  {{- if .Description }}
 | 
					 | 
				
			||||||
  <div class="post-description">
 | 
					 | 
				
			||||||
    {{ .Description }}
 | 
					 | 
				
			||||||
  </div>
 | 
					 | 
				
			||||||
  {{- end }}
 | 
					 | 
				
			||||||
</header>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
{{- $pages := where site.RegularPages "Type" "in" site.Params.mainSections }}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
{{- if site.Params.ShowAllPagesInArchive }}
 | 
					 | 
				
			||||||
{{- $pages = site.RegularPages }}
 | 
					 | 
				
			||||||
{{- end }}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
{{- range $pages.GroupByPublishDate "2006" }}
 | 
					 | 
				
			||||||
{{- if ne .Key "0001" }}
 | 
					 | 
				
			||||||
<div class="archive-year">
 | 
					 | 
				
			||||||
  <h2 class="archive-year-header">
 | 
					 | 
				
			||||||
    {{- replace .Key "0001" "" }}<sup class="archive-count">  {{ len .Pages }}</sup>
 | 
					 | 
				
			||||||
  </h2>
 | 
					 | 
				
			||||||
  {{- range .Pages.GroupByDate "January" }}
 | 
					 | 
				
			||||||
  <div class="archive-month">
 | 
					 | 
				
			||||||
    <h3 class="archive-month-header">{{- .Key }}<sup class="archive-count">  {{ len .Pages }}</sup></h3>
 | 
					 | 
				
			||||||
    <div class="archive-posts">
 | 
					 | 
				
			||||||
      {{- range .Pages }}
 | 
					 | 
				
			||||||
      {{- if eq .Kind "page" }}
 | 
					 | 
				
			||||||
      <div class="archive-entry">
 | 
					 | 
				
			||||||
        <h3 class="archive-entry-title">
 | 
					 | 
				
			||||||
          {{- .Title | markdownify }}
 | 
					 | 
				
			||||||
          {{- if .Draft }}<sup><span class="entry-isdraft">  [draft]</span></sup>{{- end }}
 | 
					 | 
				
			||||||
        </h3>
 | 
					 | 
				
			||||||
        <div class="archive-meta">
 | 
					 | 
				
			||||||
          {{- partial "post_meta.html" . -}}
 | 
					 | 
				
			||||||
        </div>
 | 
					 | 
				
			||||||
        <a class="entry-link" aria-label="post link to {{ .Title | plainify }}" href="{{ .Permalink }}"></a>
 | 
					 | 
				
			||||||
      </div>
 | 
					 | 
				
			||||||
      {{- end }}
 | 
					 | 
				
			||||||
      {{- end }}
 | 
					 | 
				
			||||||
    </div>
 | 
					 | 
				
			||||||
  </div>
 | 
					 | 
				
			||||||
  {{- end }}
 | 
					 | 
				
			||||||
</div>
 | 
					 | 
				
			||||||
{{- end }}
 | 
					 | 
				
			||||||
{{- end }}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
{{- end }}{{/* end main */}}
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,23 +0,0 @@
 | 
				
			||||||
<!DOCTYPE html>
 | 
					 | 
				
			||||||
<html lang="{{ site.Language }}" dir="{{ .Language.LanguageDirection | default "auto" }}">
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<head>
 | 
					 | 
				
			||||||
    {{- partial "head.html" . }}
 | 
					 | 
				
			||||||
</head>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<body class="
 | 
					 | 
				
			||||||
{{- if (or (ne .Kind `page` ) (eq .Layout `archives`) (eq .Layout `search`)) -}}
 | 
					 | 
				
			||||||
{{- print "list" -}}
 | 
					 | 
				
			||||||
{{- end -}}
 | 
					 | 
				
			||||||
{{- if eq site.Params.defaultTheme `dark` -}}
 | 
					 | 
				
			||||||
{{- print " dark" }}
 | 
					 | 
				
			||||||
{{- end -}}
 | 
					 | 
				
			||||||
" id="top">
 | 
					 | 
				
			||||||
    {{- partialCached "header.html" . .Page -}}
 | 
					 | 
				
			||||||
    <main class="main">
 | 
					 | 
				
			||||||
        {{- block "main" . }}{{ end }}
 | 
					 | 
				
			||||||
    </main>
 | 
					 | 
				
			||||||
    {{ partialCached "footer.html" . .Layout .Kind (.Param "hideFooter") (.Param "ShowCodeCopyButtons") -}}
 | 
					 | 
				
			||||||
</body>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
</html>
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,7 +0,0 @@
 | 
				
			||||||
{{- $.Scratch.Add "index" slice -}}
 | 
					 | 
				
			||||||
{{- range site.RegularPages -}}
 | 
					 | 
				
			||||||
    {{- if and (not .Params.searchHidden) (ne .Layout `archives`) (ne .Layout `search`) }}
 | 
					 | 
				
			||||||
    {{- $.Scratch.Add "index" (dict "title" .Title "content" .Plain "permalink" .Permalink "summary" .Summary) -}}
 | 
					 | 
				
			||||||
    {{- end }}
 | 
					 | 
				
			||||||
{{- end -}}
 | 
					 | 
				
			||||||
{{- $.Scratch.Get "index" | jsonify -}}
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,114 +0,0 @@
 | 
				
			||||||
{{- define "main" }}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
{{- if (and site.Params.profileMode.enabled .IsHome) }}
 | 
					 | 
				
			||||||
{{- partial "index_profile.html" . }}
 | 
					 | 
				
			||||||
{{- else }} {{/* if not profileMode */}}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
{{- if not .IsHome | and .Title }}
 | 
					 | 
				
			||||||
<header class="page-header post-title-header">
 | 
					 | 
				
			||||||
  {{- partial "breadcrumbs.html" . }}
 | 
					 | 
				
			||||||
  <h1>
 | 
					 | 
				
			||||||
    {{ .Title }}
 | 
					 | 
				
			||||||
    {{- if and (or (eq .Kind `term`) (eq .Kind `section`)) (.Param "ShowRssButtonInSectionTermList") }}
 | 
					 | 
				
			||||||
    <a href="index.xml" title="RSS" aria-label="RSS">
 | 
					 | 
				
			||||||
      <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"
 | 
					 | 
				
			||||||
        stroke-linecap="round" stroke-linejoin="round" height="23">
 | 
					 | 
				
			||||||
        <path d="M4 11a9 9 0 0 1 9 9" />
 | 
					 | 
				
			||||||
        <path d="M4 4a16 16 0 0 1 16 16" />
 | 
					 | 
				
			||||||
        <circle cx="5" cy="19" r="1" />
 | 
					 | 
				
			||||||
      </svg>
 | 
					 | 
				
			||||||
    </a>
 | 
					 | 
				
			||||||
    {{- end }}
 | 
					 | 
				
			||||||
  </h1>
 | 
					 | 
				
			||||||
  {{- if .Description }}
 | 
					 | 
				
			||||||
  <div class="post-description">
 | 
					 | 
				
			||||||
    {{ .Description | markdownify }}
 | 
					 | 
				
			||||||
  </div>
 | 
					 | 
				
			||||||
  {{- end }}
 | 
					 | 
				
			||||||
</header>
 | 
					 | 
				
			||||||
{{- end }}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
{{- if .Content }}
 | 
					 | 
				
			||||||
<div class="post-content">
 | 
					 | 
				
			||||||
  {{- if not (.Param "disableAnchoredHeadings") }}
 | 
					 | 
				
			||||||
  {{- partial "anchored_headings.html" .Content -}}
 | 
					 | 
				
			||||||
  {{- else }}{{ .Content }}{{ end }}
 | 
					 | 
				
			||||||
</div>
 | 
					 | 
				
			||||||
{{- end }}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
{{- $pages := union .RegularPages .Sections }}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
{{- if .IsHome }}
 | 
					 | 
				
			||||||
{{- $pages = where site.RegularPages "Type" "in" site.Params.mainSections }}
 | 
					 | 
				
			||||||
{{- $pages = where $pages "Params.hiddenInHomeList" "!=" "true"  }}
 | 
					 | 
				
			||||||
{{- end }}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
{{- $paginator := .Paginate $pages }}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
{{- if and .IsHome site.Params.homeInfoParams (eq $paginator.PageNumber 1) }}
 | 
					 | 
				
			||||||
{{- partial "home_info.html" . }}
 | 
					 | 
				
			||||||
{{- end }}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<div class="posts-entry-div">
 | 
					 | 
				
			||||||
{{- $term := .Data.Term }}
 | 
					 | 
				
			||||||
{{- range $index, $page := $paginator.Pages }}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
{{- $class := "post-entry" }}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
{{- $user_preferred := or site.Params.disableSpecial1stPost site.Params.homeInfoParams }}
 | 
					 | 
				
			||||||
{{- if (and $.IsHome (eq $paginator.PageNumber 1) (eq $index 0) (not $user_preferred)) }}
 | 
					 | 
				
			||||||
{{- $class = "first-entry" }}
 | 
					 | 
				
			||||||
{{- else if $term }}
 | 
					 | 
				
			||||||
{{- $class = "post-entry tag-entry" }}
 | 
					 | 
				
			||||||
{{- end }}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<article class="{{ $class }}">
 | 
					 | 
				
			||||||
  {{- $isHidden := (site.Params.cover.hidden | default site.Params.cover.hiddenInList) }}
 | 
					 | 
				
			||||||
  {{- partial "cover.html" (dict "cxt" . "IsHome" true "isHidden" $isHidden) }}
 | 
					 | 
				
			||||||
  <header class="entry-header">
 | 
					 | 
				
			||||||
    <h2>
 | 
					 | 
				
			||||||
      {{- .Title }}
 | 
					 | 
				
			||||||
      {{- if .Draft }}<sup><span class="entry-isdraft">  [draft]</span></sup>{{- end }}
 | 
					 | 
				
			||||||
    </h2>
 | 
					 | 
				
			||||||
  </header>
 | 
					 | 
				
			||||||
  {{- if not (.Param "hideMeta") }}
 | 
					 | 
				
			||||||
  <footer class="entry-footer">
 | 
					 | 
				
			||||||
    {{- partial "post_meta.html" . -}}
 | 
					 | 
				
			||||||
  </footer>
 | 
					 | 
				
			||||||
  {{- end }}
 | 
					 | 
				
			||||||
  {{- if (ne (.Param "hideSummary") true) }}
 | 
					 | 
				
			||||||
  <div class="entry-content">
 | 
					 | 
				
			||||||
    <p>{{ .Summary | plainify | htmlUnescape }}{{ if .Truncated }}...{{ end }}</p>
 | 
					 | 
				
			||||||
  </div>
 | 
					 | 
				
			||||||
  {{- end }}
 | 
					 | 
				
			||||||
  <a class="entry-link" aria-label="post link to {{ .Title | plainify }}" href="{{ .Permalink }}"></a>
 | 
					 | 
				
			||||||
</article>
 | 
					 | 
				
			||||||
{{- end }}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
{{- if gt $paginator.TotalPages 1 }}
 | 
					 | 
				
			||||||
<footer class="page-footer">
 | 
					 | 
				
			||||||
  <nav class="pagination">
 | 
					 | 
				
			||||||
    {{- if $paginator.HasPrev }}
 | 
					 | 
				
			||||||
    <a class="prev" href="{{ $paginator.Prev.URL | absURL }}">
 | 
					 | 
				
			||||||
      « {{ i18n "prev_page" }} 
 | 
					 | 
				
			||||||
      {{- if (.Param "ShowPageNums") }}
 | 
					 | 
				
			||||||
      {{- sub $paginator.PageNumber 1 }}/{{ $paginator.TotalPages }}
 | 
					 | 
				
			||||||
      {{- end }}
 | 
					 | 
				
			||||||
    </a>
 | 
					 | 
				
			||||||
    {{- end }}
 | 
					 | 
				
			||||||
    {{- if $paginator.HasNext }}
 | 
					 | 
				
			||||||
    <a class="next" href="{{ $paginator.Next.URL | absURL }}">
 | 
					 | 
				
			||||||
      {{- i18n "next_page" }} 
 | 
					 | 
				
			||||||
      {{- if (.Param "ShowPageNums") }}
 | 
					 | 
				
			||||||
      {{- add 1 $paginator.PageNumber }}/{{ $paginator.TotalPages }}
 | 
					 | 
				
			||||||
      {{- end }} »
 | 
					 | 
				
			||||||
    </a>
 | 
					 | 
				
			||||||
    {{- end }}
 | 
					 | 
				
			||||||
  </nav>
 | 
					 | 
				
			||||||
</footer>
 | 
					 | 
				
			||||||
{{- end }}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
{{- end }}{{/* end profileMode */}}
 | 
					 | 
				
			||||||
</div>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
{{- end }}{{- /* end main */ -}}
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,50 +0,0 @@
 | 
				
			||||||
{{- $pctx := . -}}
 | 
					 | 
				
			||||||
{{- if .IsHome -}}{{ $pctx = site }}{{- end -}}
 | 
					 | 
				
			||||||
{{- $pages := slice -}}
 | 
					 | 
				
			||||||
{{- if or $.IsHome $.IsSection -}}
 | 
					 | 
				
			||||||
{{- $pages = $pctx.RegularPages -}}
 | 
					 | 
				
			||||||
{{- else -}}
 | 
					 | 
				
			||||||
{{- $pages = $pctx.Pages -}}
 | 
					 | 
				
			||||||
{{- end -}}
 | 
					 | 
				
			||||||
{{- $limit := site.Config.Services.RSS.Limit -}}
 | 
					 | 
				
			||||||
{{- if ge $limit 1 -}}
 | 
					 | 
				
			||||||
{{- $pages = $pages | first $limit -}}
 | 
					 | 
				
			||||||
{{- end -}}
 | 
					 | 
				
			||||||
{{- printf "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?>" | safeHTML }}
 | 
					 | 
				
			||||||
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
 | 
					 | 
				
			||||||
  <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>
 | 
					 | 
				
			||||||
    {{- with site.Params.images }}
 | 
					 | 
				
			||||||
    <image>
 | 
					 | 
				
			||||||
      <url>{{ index . 0 | absURL }}</url>
 | 
					 | 
				
			||||||
      <link>{{ index . 0 | absURL }}</link>
 | 
					 | 
				
			||||||
    </image>
 | 
					 | 
				
			||||||
    {{- end }}
 | 
					 | 
				
			||||||
    <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 $pages }}
 | 
					 | 
				
			||||||
    {{- if and (ne .Layout `search`) (ne .Layout `archives`) }}
 | 
					 | 
				
			||||||
    <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>{{ with .Description | html }}{{ . }}{{ else }}{{ .Summary | html }}{{ end -}}</description>
 | 
					 | 
				
			||||||
      {{- if site.Params.ShowFullTextinRSS }}
 | 
					 | 
				
			||||||
      <content:encoded>{{ (printf "<![CDATA[%s]]>" .Content) | safeHTML }}</content:encoded>
 | 
					 | 
				
			||||||
      {{- end }}
 | 
					 | 
				
			||||||
    </item>
 | 
					 | 
				
			||||||
    {{- end }}
 | 
					 | 
				
			||||||
    {{ end }}
 | 
					 | 
				
			||||||
  </channel>
 | 
					 | 
				
			||||||
</rss>
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,29 +0,0 @@
 | 
				
			||||||
{{- define "main" }}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<header class="page-header">
 | 
					 | 
				
			||||||
    <h1>{{- (printf "%s " .Title ) | htmlUnescape -}}
 | 
					 | 
				
			||||||
        <svg xmlns="http://www.w3.org/2000/svg" width="28" height="28" viewBox="0 0 24 24" fill="none"
 | 
					 | 
				
			||||||
            stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
 | 
					 | 
				
			||||||
            <circle cx="11" cy="11" r="8"></circle>
 | 
					 | 
				
			||||||
            <line x1="21" y1="21" x2="16.65" y2="16.65"></line>
 | 
					 | 
				
			||||||
        </svg>
 | 
					 | 
				
			||||||
    </h1>
 | 
					 | 
				
			||||||
    {{- if .Description }}
 | 
					 | 
				
			||||||
    <div class="post-description">
 | 
					 | 
				
			||||||
        {{ .Description }}
 | 
					 | 
				
			||||||
    </div>
 | 
					 | 
				
			||||||
    {{- end }}
 | 
					 | 
				
			||||||
    {{- if not (.Param "hideMeta") }}
 | 
					 | 
				
			||||||
    <div class="post-meta">
 | 
					 | 
				
			||||||
        {{- partial "translation_list.html" . -}}
 | 
					 | 
				
			||||||
    </div>
 | 
					 | 
				
			||||||
    {{- end }}
 | 
					 | 
				
			||||||
</header>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<div id="searchbox">
 | 
					 | 
				
			||||||
    <input id="searchInput" autofocus placeholder="{{ .Params.placeholder | default (printf "%s ↵" .Title) }}"
 | 
					 | 
				
			||||||
        aria-label="search" type="search" autocomplete="off">
 | 
					 | 
				
			||||||
    <ul id="searchResults" aria-label="search results"></ul>
 | 
					 | 
				
			||||||
</div>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
{{- end }}{{/* end main */}}
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,57 +0,0 @@
 | 
				
			||||||
{{- define "main" }}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<article class="post-single">
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  <header class="post-header">
 | 
					 | 
				
			||||||
 <!--       <nav class="pag-back">
 | 
					 | 
				
			||||||
      <a href="#back" onclick="window.history.back()">
 | 
					 | 
				
			||||||
      <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" focusable="false" style="pointer-events: none; display: block; width: 100%; height: 100%;fill: var(--primary);stroke: var(--primary);" stroke-width="1"><polygon points="11.65,3.50 3.80,11.35 11.65,19.20 12.36,18.50 5.71,11.85 20.15,11.85 20.15,10.85 5.71,10.85 12.36,4.20"></polygon></svg>
 | 
					 | 
				
			||||||
      </a>
 | 
					 | 
				
			||||||
    </nav> -->
 | 
					 | 
				
			||||||
    <h1 class="post-title">
 | 
					 | 
				
			||||||
      {{ .Title }}
 | 
					 | 
				
			||||||
    </h1>
 | 
					 | 
				
			||||||
    {{- if .Description }}
 | 
					 | 
				
			||||||
    <div class="post-description">
 | 
					 | 
				
			||||||
      {{ .Description }}
 | 
					 | 
				
			||||||
    </div>
 | 
					 | 
				
			||||||
    {{- end }}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    <div class="post-meta">
 | 
					 | 
				
			||||||
      {{- if not .Date.IsZero -}}
 | 
					 | 
				
			||||||
      <span title='{{ .Date }}'>
 | 
					 | 
				
			||||||
        {{.Date | time.Format (default "January 2, 2006" site.Params.DateFormat) }}
 | 
					 | 
				
			||||||
      </span>
 | 
					 | 
				
			||||||
      {{- end }}
 | 
					 | 
				
			||||||
    </div>
 | 
					 | 
				
			||||||
  </header>
 | 
					 | 
				
			||||||
  <div class="post-divider"></div>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  {{- if .Content }}
 | 
					 | 
				
			||||||
  <div class="post-content">
 | 
					 | 
				
			||||||
    {{- if not (.Param "disableAnchoredHeadings") }}
 | 
					 | 
				
			||||||
    {{- partial "anchored_headings.html" .Content -}}
 | 
					 | 
				
			||||||
    {{- else }}{{ .Content }}{{ end }}
 | 
					 | 
				
			||||||
  </div>
 | 
					 | 
				
			||||||
  {{- end }}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  <footer class="post-footer">
 | 
					 | 
				
			||||||
    {{- $tags := .Language.Params.Taxonomies.tag | default "tags" }}
 | 
					 | 
				
			||||||
    <ul class="post-tags">
 | 
					 | 
				
			||||||
      {{- range ($.GetTerms $tags) }}
 | 
					 | 
				
			||||||
      <li><a href="{{ .Permalink }}">{{ .LinkTitle }}</a></li>
 | 
					 | 
				
			||||||
      {{- end }}
 | 
					 | 
				
			||||||
    </ul>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    <br/>
 | 
					 | 
				
			||||||
    {{- if (and (and site.Params.ShowShareButtons (ne .Params.disableShare true)) false) }}
 | 
					 | 
				
			||||||
    {{- partial "share_icons.html" . -}}
 | 
					 | 
				
			||||||
    {{- end }}
 | 
					 | 
				
			||||||
  </footer>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  {{- if (.Param "comments") }}
 | 
					 | 
				
			||||||
  {{- partial "comments.html" . }}
 | 
					 | 
				
			||||||
  {{- end }}
 | 
					 | 
				
			||||||
</article>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
{{- end }}{{/* end main */}}
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,27 +0,0 @@
 | 
				
			||||||
{{- define "main" }}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
{{- if .Title }}
 | 
					 | 
				
			||||||
<header class="page-header">
 | 
					 | 
				
			||||||
    <h1>{{ .Title }}</h1>
 | 
					 | 
				
			||||||
    {{- if .Description }}
 | 
					 | 
				
			||||||
    <div class="post-description">
 | 
					 | 
				
			||||||
        {{ .Description }}
 | 
					 | 
				
			||||||
    </div>
 | 
					 | 
				
			||||||
    {{- end }}
 | 
					 | 
				
			||||||
</header>
 | 
					 | 
				
			||||||
{{- end }}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<ul class="terms-tags">
 | 
					 | 
				
			||||||
    {{- $type := .Type }}
 | 
					 | 
				
			||||||
    {{- range $key, $value := .Data.Terms.Alphabetical }}
 | 
					 | 
				
			||||||
    {{- $name := .Name }}
 | 
					 | 
				
			||||||
    {{- $count := .Count }}
 | 
					 | 
				
			||||||
    {{- with site.GetPage (printf "/%s/%s" $type $name) }}
 | 
					 | 
				
			||||||
    <li>
 | 
					 | 
				
			||||||
        <a href="{{ .Permalink }}">{{ .Name }} <sup><strong><sup>{{ $count }}</sup></strong></sup> </a>
 | 
					 | 
				
			||||||
    </li>
 | 
					 | 
				
			||||||
    {{- end }}
 | 
					 | 
				
			||||||
    {{- end }}
 | 
					 | 
				
			||||||
</ul>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
{{- end }}{{/* end main */ -}}
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,2 +0,0 @@
 | 
				
			||||||
{{- /* formats .Content headings by adding an anchor */ -}}
 | 
					 | 
				
			||||||
{{ . | replaceRE "(<h[1-6] id=\"([^\"]+)\".+)(</h[1-6]+>)" "${1}<a hidden class=\"anchor\" aria-hidden=\"true\" href=\"#${2}\">#</a>${3}" | safeHTML }}
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,9 +0,0 @@
 | 
				
			||||||
{{- if or .Params.author site.Params.author }}
 | 
					 | 
				
			||||||
{{- $author := (.Params.author | default site.Params.author) }}
 | 
					 | 
				
			||||||
{{- $author_type := (printf "%T" $author) }}
 | 
					 | 
				
			||||||
{{- if (or (eq $author_type "[]string") (eq $author_type "[]interface {}")) }}
 | 
					 | 
				
			||||||
{{- (delimit $author ", " ) }}
 | 
					 | 
				
			||||||
{{- else }}
 | 
					 | 
				
			||||||
{{- $author }}
 | 
					 | 
				
			||||||
{{- end }}
 | 
					 | 
				
			||||||
{{- end -}}
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,19 +0,0 @@
 | 
				
			||||||
{{- if (.Param "ShowBreadCrumbs") -}}
 | 
					 | 
				
			||||||
<div class="breadcrumbs">
 | 
					 | 
				
			||||||
    {{- $url := replace .Parent.Permalink (printf "%s" site.BaseURL) "" }}
 | 
					 | 
				
			||||||
    {{- $lang_url := strings.TrimPrefix (printf "%s/" .Lang) $url -}}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    <a href="{{ "" | absLangURL }}">{{ i18n "home" | default "Home" }}</a>
 | 
					 | 
				
			||||||
    {{- $scratch := newScratch }}
 | 
					 | 
				
			||||||
    {{- range $index, $element := split $lang_url "/" }}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    {{- $scratch.Add "path" (printf "%s/" $element )}}
 | 
					 | 
				
			||||||
    {{- $bc_pg := site.GetPage ($scratch.Get "path") -}}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    {{- if (and ($bc_pg) (gt (len . ) 0))}}
 | 
					 | 
				
			||||||
    {{- print " » " | safeHTML -}}<a href="{{ $bc_pg.Permalink }}">{{ $bc_pg.Name }}</a>
 | 
					 | 
				
			||||||
    {{- end }}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    {{- end -}}
 | 
					 | 
				
			||||||
</div>
 | 
					 | 
				
			||||||
{{- end -}}
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,14 +0,0 @@
 | 
				
			||||||
<!-- <script type="text/javascript" src="https://latest.cactus.chat/cactus.js"></script>
 | 
					 | 
				
			||||||
<link rel="stylesheet" href="https://latest.cactus.chat/style.css" type="text/css">
 | 
					 | 
				
			||||||
<div id="comment-section"></div>
 | 
					 | 
				
			||||||
<script>
 | 
					 | 
				
			||||||
initComments({
 | 
					 | 
				
			||||||
  node: document.getElementById("comment-section"),
 | 
					 | 
				
			||||||
  defaultHomeserverUrl: "https://matrix.cactus.chat:8448",
 | 
					 | 
				
			||||||
  serverName: "cactus.chat",
 | 
					 | 
				
			||||||
  siteName: "morgan.blog",
 | 
					 | 
				
			||||||
  commentSectionId: "{{ .Params.slug }}
 | 
					 | 
				
			||||||
})
 | 
					 | 
				
			||||||
</script>
 | 
					 | 
				
			||||||
-->
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,40 +0,0 @@
 | 
				
			||||||
{{- with .cxt}} {{/* Apply proper context from dict */}}
 | 
					 | 
				
			||||||
{{- if (and .Params.cover.image (not $.isHidden)) }}
 | 
					 | 
				
			||||||
{{- $alt := (.Params.cover.alt | default .Params.cover.caption | plainify) }}
 | 
					 | 
				
			||||||
<figure class="entry-cover">
 | 
					 | 
				
			||||||
    {{- $responsiveImages := (.Params.cover.responsiveImages | default site.Params.cover.responsiveImages) | default true }}
 | 
					 | 
				
			||||||
    {{- $addLink := (and site.Params.cover.linkFullImages (not $.IsHome)) }}
 | 
					 | 
				
			||||||
    {{- $cover := (.Resources.ByType "image").GetMatch (printf "*%s*" (.Params.cover.image)) }}
 | 
					 | 
				
			||||||
    {{- if $cover -}}{{/* i.e it is present in page bundle */}}
 | 
					 | 
				
			||||||
        {{- if $addLink }}<a href="{{ (path.Join .RelPermalink .Params.cover.image) | absURL }}" target="_blank"
 | 
					 | 
				
			||||||
            rel="noopener noreferrer">{{ end -}}
 | 
					 | 
				
			||||||
        {{- $sizes := (slice "360" "480" "720" "1080" "1500") }}
 | 
					 | 
				
			||||||
        {{- $processableFormats := (slice "jpg" "jpeg" "png" "tif" "bmp" "gif") -}}
 | 
					 | 
				
			||||||
        {{- if hugo.IsExtended -}}
 | 
					 | 
				
			||||||
            {{- $processableFormats = $processableFormats | append "webp" -}}
 | 
					 | 
				
			||||||
        {{- end -}}
 | 
					 | 
				
			||||||
        {{- $prod := (hugo.IsProduction | or (eq site.Params.env "production")) }}
 | 
					 | 
				
			||||||
        {{- if (and (in $processableFormats $cover.MediaType.SubType) ($responsiveImages) (eq $prod true)) }}
 | 
					 | 
				
			||||||
        <img loading="lazy" srcset="{{- range $size := $sizes -}}
 | 
					 | 
				
			||||||
                        {{- if (ge $cover.Width $size) -}}
 | 
					 | 
				
			||||||
                        {{ printf "%s %s" (($cover.Resize (printf "%sx" $size)).Permalink) (printf "%sw ," $size) -}}
 | 
					 | 
				
			||||||
                        {{ end }}
 | 
					 | 
				
			||||||
                    {{- end -}}{{$cover.Permalink }} {{printf "%dw" ($cover.Width)}}" 
 | 
					 | 
				
			||||||
            sizes="(min-width: 768px) 720px, 100vw" src="{{ $cover.Permalink }}" alt="{{ $alt }}" 
 | 
					 | 
				
			||||||
            width="{{ $cover.Width }}" height="{{ $cover.Height }}">
 | 
					 | 
				
			||||||
        {{- else }}{{/* Unprocessable image or responsive images disabled */}}
 | 
					 | 
				
			||||||
        <img loading="lazy" src="{{ (path.Join .RelPermalink .Params.cover.image) | absURL }}" alt="{{ $alt }}">
 | 
					 | 
				
			||||||
        {{- end }}
 | 
					 | 
				
			||||||
    {{- else }}{{/* For absolute urls and external links, no img processing here */}}
 | 
					 | 
				
			||||||
        {{- if $addLink }}<a href="{{ (.Params.cover.image) | absURL }}" target="_blank"
 | 
					 | 
				
			||||||
            rel="noopener noreferrer">{{ end -}}
 | 
					 | 
				
			||||||
            <img loading="lazy" src="{{ (.Params.cover.image) | absURL }}" alt="{{ $alt }}">
 | 
					 | 
				
			||||||
    {{- end }}
 | 
					 | 
				
			||||||
    {{- if $addLink }}</a>{{ end -}}
 | 
					 | 
				
			||||||
    {{/*  Display Caption  */}}
 | 
					 | 
				
			||||||
    {{- if not $.IsHome }}
 | 
					 | 
				
			||||||
        {{ with .Params.cover.caption }}<p>{{ . | markdownify }}</p>{{- end }}
 | 
					 | 
				
			||||||
    {{- end }}
 | 
					 | 
				
			||||||
</figure>
 | 
					 | 
				
			||||||
{{- end }}{{/* End image */}}
 | 
					 | 
				
			||||||
{{- end -}}{{/* End context */ -}}
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,8 +0,0 @@
 | 
				
			||||||
{{- if or .Params.editPost.URL site.Params.editPost.URL -}}
 | 
					 | 
				
			||||||
{{- $fileUrlPath := path.Join .File.Path }}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
{{- if or .Params.author site.Params.author (.Param "ShowReadingTime") (not .Date.IsZero) .IsTranslated }} | {{- end -}}
 | 
					 | 
				
			||||||
<a href="{{ .Params.editPost.URL | default site.Params.editPost.URL }}{{ if .Params.editPost.appendFilePath | default ( site.Params.editPost.appendFilePath | default false ) }}/{{ $fileUrlPath }}{{ end }}" rel="noopener noreferrer" target="_blank">
 | 
					 | 
				
			||||||
    {{- .Params.editPost.Text | default (site.Params.editPost.Text | default (i18n "edit_post" | default "Edit")) -}}
 | 
					 | 
				
			||||||
</a>
 | 
					 | 
				
			||||||
{{- end }}
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,3 +0,0 @@
 | 
				
			||||||
{{- /* Footer custom content area start */ -}}
 | 
					 | 
				
			||||||
{{- /*     Insert any custom code web-analytics, resources, etc. here */ -}}
 | 
					 | 
				
			||||||
{{- /* Footer custom content area end */ -}}
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,4 +0,0 @@
 | 
				
			||||||
{{- /* Head custom content area start */ -}}
 | 
					 | 
				
			||||||
{{- /*     Insert any custom code (web-analytics, resources, etc.) - it will appear in the <head></head> section of every page. */ -}}
 | 
					 | 
				
			||||||
{{- /*     Can be overwritten by partial with the same name in the global layouts. */ -}}
 | 
					 | 
				
			||||||
{{- /* Head custom content area end */ -}}
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,139 +0,0 @@
 | 
				
			||||||
{{- if not (and .IsPage 0) }}
 | 
					 | 
				
			||||||
<footer class="footer">
 | 
					 | 
				
			||||||
    {{- if site.Copyright }}
 | 
					 | 
				
			||||||
    <span>{{ site.Copyright | markdownify }}</span>
 | 
					 | 
				
			||||||
    {{- else }}
 | 
					 | 
				
			||||||
    <a href="/admin/" style="text-decoration: none;">©</a> <span><a href="{{ "" | absLangURL }}">Morgan</a> · PaperMod</span>
 | 
					 | 
				
			||||||
    <br/>
 | 
					 | 
				
			||||||
    <span style="">Ver.{{ site.Params.buildDate }} </span>
 | 
					 | 
				
			||||||
    <a href="#" id="theme-toggle">Toggle Dark Mode</a>
 | 
					 | 
				
			||||||
    {{- end }}
 | 
					 | 
				
			||||||
</footer>
 | 
					 | 
				
			||||||
{{- end }}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
{{- if (not site.Params.disableScrollToTop) }}
 | 
					 | 
				
			||||||
<button id="top-link" class="top-link" onclick="window.scrollTo({top: 0, behavior: 'smooth'})">
 | 
					 | 
				
			||||||
    <svg xmlns="http://www.w3.org/2000/svg" height="24" viewBox="0 0 24 24" width="24" focusable="false" style="pointer-events: none; display: block; width: 100%; height: 100%;" fill="currentColor" stroke="white" stroke-width="1"><polygon points="19.35,11.5 11.5,3.65 3.65,11.5 4.35,12.21 11,5.56 11,20 12,20 12,5.56 18.65,12.21"></polygon></svg>
 | 
					 | 
				
			||||||
</button>
 | 
					 | 
				
			||||||
{{- end }}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
{{- partial "extend_footer.html" . }}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<script>
 | 
					 | 
				
			||||||
    let menu = document.getElementById('menu')
 | 
					 | 
				
			||||||
    if (menu) {
 | 
					 | 
				
			||||||
        menu.scrollLeft = localStorage.getItem("menu-scroll-position");
 | 
					 | 
				
			||||||
        menu.onscroll = function () {
 | 
					 | 
				
			||||||
            localStorage.setItem("menu-scroll-position", menu.scrollLeft);
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    document.querySelectorAll('a[href^="#"]').forEach(anchor => {
 | 
					 | 
				
			||||||
        anchor.addEventListener("click", function (e) {
 | 
					 | 
				
			||||||
            e.preventDefault();
 | 
					 | 
				
			||||||
            var id = this.getAttribute("href").substr(1);
 | 
					 | 
				
			||||||
            if (!window.matchMedia('(prefers-reduced-motion: reduce)').matches) {
 | 
					 | 
				
			||||||
                document.querySelector(`[id='${decodeURIComponent(id)}']`).scrollIntoView({
 | 
					 | 
				
			||||||
                    behavior: "smooth"
 | 
					 | 
				
			||||||
                });
 | 
					 | 
				
			||||||
            } else {
 | 
					 | 
				
			||||||
                document.querySelector(`[id='${decodeURIComponent(id)}']`).scrollIntoView();
 | 
					 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
            if (id === "top") {
 | 
					 | 
				
			||||||
                history.replaceState(null, null, " ");
 | 
					 | 
				
			||||||
            } else {
 | 
					 | 
				
			||||||
                history.pushState(null, null, `#${id}`);
 | 
					 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
        });
 | 
					 | 
				
			||||||
    });
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
</script>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
{{- if (not site.Params.disableScrollToTop) }}
 | 
					 | 
				
			||||||
<script>
 | 
					 | 
				
			||||||
    var mybutton = document.getElementById("top-link");
 | 
					 | 
				
			||||||
    window.onscroll = function () {
 | 
					 | 
				
			||||||
        if (document.body.scrollTop > 800 || document.documentElement.scrollTop > 800) {
 | 
					 | 
				
			||||||
            mybutton.style.visibility = "visible";
 | 
					 | 
				
			||||||
            mybutton.style.opacity = "1";
 | 
					 | 
				
			||||||
        } else {
 | 
					 | 
				
			||||||
            mybutton.style.visibility = "hidden";
 | 
					 | 
				
			||||||
            mybutton.style.opacity = "0";
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
    };
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
</script>
 | 
					 | 
				
			||||||
{{- end }}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
{{- if (not site.Params.disableThemeToggle) }}
 | 
					 | 
				
			||||||
<script>
 | 
					 | 
				
			||||||
    document.getElementById("theme-toggle").addEventListener("click", () => {
 | 
					 | 
				
			||||||
        if (document.body.className.includes("dark")) {
 | 
					 | 
				
			||||||
            document.body.classList.remove('dark');
 | 
					 | 
				
			||||||
            localStorage.setItem("pref-theme", 'light');
 | 
					 | 
				
			||||||
            {{- if site.Params.label.icon_inv }}
 | 
					 | 
				
			||||||
                document.getElementById('main-logo').src = "{{site.Params.label.icon_inv}}";
 | 
					 | 
				
			||||||
            {{- end }}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        } else {
 | 
					 | 
				
			||||||
            document.body.classList.add('dark');
 | 
					 | 
				
			||||||
            localStorage.setItem("pref-theme", 'dark');
 | 
					 | 
				
			||||||
            {{- if site.Params.label.icon_inv }}
 | 
					 | 
				
			||||||
                document.getElementById('main-logo').src = "{{site.Params.label.icon}}";
 | 
					 | 
				
			||||||
            {{- end }}
 | 
					 | 
				
			||||||
            
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
    })
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
</script>
 | 
					 | 
				
			||||||
{{- end }}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
{{- if (and (eq .Kind "page") (ne .Layout "archives") (ne .Layout "search") (.Param "ShowCodeCopyButtons")) }}
 | 
					 | 
				
			||||||
<script>
 | 
					 | 
				
			||||||
    document.querySelectorAll('pre > code').forEach((codeblock) => {
 | 
					 | 
				
			||||||
        const container = codeblock.parentNode.parentNode;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        const copybutton = document.createElement('button');
 | 
					 | 
				
			||||||
        copybutton.classList.add('copy-code');
 | 
					 | 
				
			||||||
        copybutton.innerHTML = '{{- i18n "code_copy" | default "copy" }}';
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        function copyingDone() {
 | 
					 | 
				
			||||||
            copybutton.innerHTML = '{{- i18n "code_copied" | default "copied!" }}';
 | 
					 | 
				
			||||||
            setTimeout(() => {
 | 
					 | 
				
			||||||
                copybutton.innerHTML = '{{- i18n "code_copy" | default "copy" }}';
 | 
					 | 
				
			||||||
            }, 2000);
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        copybutton.addEventListener('click', (cb) => {
 | 
					 | 
				
			||||||
            if ('clipboard' in navigator) {
 | 
					 | 
				
			||||||
                navigator.clipboard.writeText(codeblock.textContent);
 | 
					 | 
				
			||||||
                copyingDone();
 | 
					 | 
				
			||||||
                return;
 | 
					 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            const range = document.createRange();
 | 
					 | 
				
			||||||
            range.selectNodeContents(codeblock);
 | 
					 | 
				
			||||||
            const selection = window.getSelection();
 | 
					 | 
				
			||||||
            selection.removeAllRanges();
 | 
					 | 
				
			||||||
            selection.addRange(range);
 | 
					 | 
				
			||||||
            try {
 | 
					 | 
				
			||||||
                document.execCommand('copy');
 | 
					 | 
				
			||||||
                copyingDone();
 | 
					 | 
				
			||||||
            } catch (e) { };
 | 
					 | 
				
			||||||
            selection.removeRange(range);
 | 
					 | 
				
			||||||
        });
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        if (container.classList.contains("highlight")) {
 | 
					 | 
				
			||||||
            container.appendChild(copybutton);
 | 
					 | 
				
			||||||
        } else if (container.parentNode.firstChild == container) {
 | 
					 | 
				
			||||||
            // td containing LineNos
 | 
					 | 
				
			||||||
        } else if (codeblock.parentNode.parentNode.parentNode.parentNode.parentNode.nodeName == "TABLE") {
 | 
					 | 
				
			||||||
            // table containing LineNos and code
 | 
					 | 
				
			||||||
            codeblock.parentNode.parentNode.parentNode.parentNode.parentNode.appendChild(copybutton);
 | 
					 | 
				
			||||||
        } else {
 | 
					 | 
				
			||||||
            // code blocks not having highlight as parent class
 | 
					 | 
				
			||||||
            codeblock.parentNode.appendChild(copybutton);
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
    });
 | 
					 | 
				
			||||||
</script>
 | 
					 | 
				
			||||||
{{- end }}
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,201 +0,0 @@
 | 
				
			||||||
<meta charset="utf-8">
 | 
					 | 
				
			||||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
 | 
					 | 
				
			||||||
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
 | 
					 | 
				
			||||||
{{- if hugo.IsProduction | or (eq site.Params.env "production") | and (ne .Params.robotsNoIndex true) }}
 | 
					 | 
				
			||||||
<meta name="robots" content="index, follow">
 | 
					 | 
				
			||||||
{{- else }}
 | 
					 | 
				
			||||||
<meta name="robots" content="noindex, nofollow">
 | 
					 | 
				
			||||||
{{- end }}
 | 
					 | 
				
			||||||
<meta name="apple-mobile-web-app-capable" content="yes">
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
{{- /* Title */}}
 | 
					 | 
				
			||||||
<title>{{ if .IsHome }}{{ else }}{{ if .Title }}{{ .Title }} | {{ end }}{{ end }}{{ site.Title }}</title>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
{{- /* Meta */}}
 | 
					 | 
				
			||||||
{{- if .IsHome }}
 | 
					 | 
				
			||||||
{{ with site.Params.keywords -}}<meta name="keywords" content="{{- range $i, $e := . }}{{ if $i }}, {{ end }}{{ $e }}{{ end }}">{{ end }}
 | 
					 | 
				
			||||||
{{- else }}
 | 
					 | 
				
			||||||
<meta name="keywords" content="{{ if .Params.keywords -}}
 | 
					 | 
				
			||||||
    {{- range $i, $e := .Params.keywords }}{{ if $i }}, {{ end }}{{ $e }}{{ end }} {{- else }}
 | 
					 | 
				
			||||||
    {{- range $i, $e := .Params.tags }}{{ if $i }}, {{ end }}{{ $e }}{{ end }} {{- end -}}">
 | 
					 | 
				
			||||||
{{- end }}
 | 
					 | 
				
			||||||
<meta name="description" content="{{- with .Description }}{{ . }}{{- else }}{{- if or .IsPage .IsSection}}
 | 
					 | 
				
			||||||
    {{- .Summary | default (printf "%s - %s" .Title  site.Title) }}{{- else }}
 | 
					 | 
				
			||||||
    {{- with site.Params.description }}{{ . }}{{- end }}{{- end }}{{- end -}}">
 | 
					 | 
				
			||||||
<meta name="author" content="{{ (partial "author.html" . ) }}">
 | 
					 | 
				
			||||||
<link rel="canonical" href="{{ if .Params.canonicalURL -}} {{ trim .Params.canonicalURL " " }} {{- else -}} {{ .Permalink }} {{- end }}">
 | 
					 | 
				
			||||||
{{- if site.Params.analytics.google.SiteVerificationTag }}
 | 
					 | 
				
			||||||
<meta name="google-site-verification" content="{{ site.Params.analytics.google.SiteVerificationTag }}">
 | 
					 | 
				
			||||||
{{- end }}
 | 
					 | 
				
			||||||
{{- if site.Params.analytics.yandex.SiteVerificationTag }}
 | 
					 | 
				
			||||||
<meta name="yandex-verification" content="{{ site.Params.analytics.yandex.SiteVerificationTag }}">
 | 
					 | 
				
			||||||
{{- end }}
 | 
					 | 
				
			||||||
{{- if site.Params.analytics.bing.SiteVerificationTag }}
 | 
					 | 
				
			||||||
<meta name="msvalidate.01" content="{{ site.Params.analytics.bing.SiteVerificationTag }}">
 | 
					 | 
				
			||||||
{{- end }}
 | 
					 | 
				
			||||||
{{- if site.Params.analytics.naver.SiteVerificationTag }}
 | 
					 | 
				
			||||||
<meta name="naver-site-verification" content="{{ site.Params.analytics.naver.SiteVerificationTag }}">
 | 
					 | 
				
			||||||
{{- end }}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<script type="text/javascript">
 | 
					 | 
				
			||||||
    let vh = window.innerHeight * 0.01;
 | 
					 | 
				
			||||||
    document.documentElement.style.setProperty('--vh', `${vh}px`);
 | 
					 | 
				
			||||||
</script>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
{{- /* Styles */}}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
{{- /* includes */}}
 | 
					 | 
				
			||||||
{{- $includes := slice }}
 | 
					 | 
				
			||||||
{{- $includes = $includes | append (" " | resources.FromString "assets/css/includes-blank.css")}}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
{{- if not (eq site.Params.assets.disableScrollBarStyle true) }}
 | 
					 | 
				
			||||||
    {{- $ScrollStyle := (resources.Get "css/includes/scroll-bar.css") }}
 | 
					 | 
				
			||||||
    {{- $includes = (append $ScrollStyle $includes) }}
 | 
					 | 
				
			||||||
{{- end }}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
{{- $includes_all := $includes | resources.Concat "assets/css/includes.css" }}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
{{- $theme_vars := (resources.Get "css/core/theme-vars.css") }}
 | 
					 | 
				
			||||||
{{- $reset := (resources.Get "css/core/reset.css") }}
 | 
					 | 
				
			||||||
{{- $media := (resources.Get "css/core/zmedia.css") }}
 | 
					 | 
				
			||||||
{{- $license_css := (resources.Get "css/core/license.css") }}
 | 
					 | 
				
			||||||
{{- $common := (resources.Match "css/common/*.css") | resources.Concat "assets/css/common.css" }}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
{{- /* include `an-old-hope` if hljs is on */}}
 | 
					 | 
				
			||||||
{{- $isHLJSdisabled := (site.Params.assets.disableHLJS | default false) }}
 | 
					 | 
				
			||||||
{{- $hljs := (cond ($isHLJSdisabled) (".chroma { background-color: unset !important;}" | resources.FromString "assets/css/hljs-blank.css") (resources.Get "css/hljs/an-old-hope.min.css")) }}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
{{- /* order is important */}}
 | 
					 | 
				
			||||||
{{- $core := (slice $theme_vars $reset $common $hljs $includes_all $media) | resources.Concat "assets/css/core.css" | resources.Minify }}
 | 
					 | 
				
			||||||
{{- $extended := (resources.Match "css/extended/*.css") | resources.Concat "assets/css/extended.css" | resources.Minify }}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
{{- /* bundle all required css */}}
 | 
					 | 
				
			||||||
{{- /* Add extended css after theme style */ -}}
 | 
					 | 
				
			||||||
{{- $stylesheet := (slice $license_css $core $extended) | resources.Concat "assets/css/stylesheet.css"  }}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
{{- if not site.Params.assets.disableFingerprinting }}
 | 
					 | 
				
			||||||
{{- $stylesheet := $stylesheet | fingerprint }}
 | 
					 | 
				
			||||||
<link crossorigin="anonymous" href="{{ $stylesheet.RelPermalink }}" integrity="{{ $stylesheet.Data.Integrity }}" rel="preload stylesheet" as="style">
 | 
					 | 
				
			||||||
{{- else }}
 | 
					 | 
				
			||||||
<link crossorigin="anonymous" href="{{ $stylesheet.RelPermalink }}" rel="preload stylesheet" as="style">
 | 
					 | 
				
			||||||
{{- end }}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
{{- /* Search */}}
 | 
					 | 
				
			||||||
{{- if (eq .Layout `search`) -}}
 | 
					 | 
				
			||||||
<link crossorigin="anonymous" rel="preload" as="fetch" href="../index.json">
 | 
					 | 
				
			||||||
{{- $fastsearch := resources.Get "js/fastsearch.js" | js.Build (dict "params" (dict "fuseOpts" site.Params.fuseOpts)) | resources.Minify }}
 | 
					 | 
				
			||||||
{{- $fusejs := resources.Get "js/fuse.basic.min.js" }}
 | 
					 | 
				
			||||||
{{- $license_js := resources.Get "js/license.js" }}
 | 
					 | 
				
			||||||
{{- if not site.Params.assets.disableFingerprinting }}
 | 
					 | 
				
			||||||
{{- $search := (slice $fusejs $license_js $fastsearch ) | resources.Concat "assets/js/search.js" | fingerprint }}
 | 
					 | 
				
			||||||
<script defer crossorigin="anonymous" src="{{ $search.RelPermalink }}" integrity="{{ $search.Data.Integrity }}"></script>
 | 
					 | 
				
			||||||
{{- else }}
 | 
					 | 
				
			||||||
{{- $search := (slice $fusejs $fastsearch ) | resources.Concat "assets/js/search.js" }}
 | 
					 | 
				
			||||||
<script defer crossorigin="anonymous" src="{{ $search.RelPermalink }}"></script>
 | 
					 | 
				
			||||||
{{- end }}
 | 
					 | 
				
			||||||
{{- end -}}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
{{- /* Highlight.js */}}
 | 
					 | 
				
			||||||
{{- $isHLJSdisabled := (site.Params.assets.disableHLJS | default .Params.disableHLJS ) }}
 | 
					 | 
				
			||||||
{{- if (and (eq .Kind "page") (ne .Layout "archives") (ne .Layout "search") (not $isHLJSdisabled)) }}
 | 
					 | 
				
			||||||
{{- if not site.Params.assets.disableFingerprinting }}
 | 
					 | 
				
			||||||
{{- $highlight := slice (resources.Get "js/highlight.min.js") | resources.Concat "assets/js/highlight.js" | fingerprint }}
 | 
					 | 
				
			||||||
<script defer crossorigin="anonymous" src="{{ $highlight.RelPermalink }}" integrity="{{ $highlight.Data.Integrity }}"
 | 
					 | 
				
			||||||
    onload="hljs.initHighlightingOnLoad();"></script>
 | 
					 | 
				
			||||||
{{- else }}
 | 
					 | 
				
			||||||
{{- $highlight := slice (resources.Get "js/highlight.min.js") | resources.Concat "assets/js/highlight.js" }}
 | 
					 | 
				
			||||||
<script defer crossorigin="anonymous" src="{{ $highlight.RelPermalink }}" onload="hljs.initHighlightingOnLoad();"></script>
 | 
					 | 
				
			||||||
{{- end }}
 | 
					 | 
				
			||||||
{{- end }}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
{{- /* KaTeX */}}
 | 
					 | 
				
			||||||
{{ if or .Params.math .IsPage}}
 | 
					 | 
				
			||||||
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/katex@0.16.9/dist/katex.min.css">
 | 
					 | 
				
			||||||
<script defer src="https://cdn.jsdelivr.net/npm/katex@0.16.9/dist/katex.min.js"></script>
 | 
					 | 
				
			||||||
<script defer src="https://cdn.jsdelivr.net/npm/katex@0.16.9/dist/contrib/auto-render.min.js" onload="renderMathInElement(document.body);"></script>
 | 
					 | 
				
			||||||
<script>
 | 
					 | 
				
			||||||
    document.addEventListener("DOMContentLoaded", function() {
 | 
					 | 
				
			||||||
        renderMathInElement(document.body, {
 | 
					 | 
				
			||||||
            delimiters: [
 | 
					 | 
				
			||||||
                {left: "$$", right: "$$", display: true},
 | 
					 | 
				
			||||||
                {left: "$", right: "$", display: false}
 | 
					 | 
				
			||||||
            ]
 | 
					 | 
				
			||||||
        });
 | 
					 | 
				
			||||||
    });
 | 
					 | 
				
			||||||
</script>
 | 
					 | 
				
			||||||
{{ end }}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
{{- /* Favicons */}}
 | 
					 | 
				
			||||||
<link rel="icon" href="{{ site.Params.assets.favicon | default "favicon.ico" | absURL }}">
 | 
					 | 
				
			||||||
<!-- <link rel="icon" type="image/png" sizes="16x16" href="{{ site.Params.assets.favicon16x16 | default "favicon-16x16.png" | absURL }}">
 | 
					 | 
				
			||||||
<link rel="icon" type="image/png" sizes="32x32" href="{{ site.Params.assets.favicon32x32 | default "favicon-32x32.png" | absURL }}">
 | 
					 | 
				
			||||||
<link rel="apple-touch-icon" href="{{ site.Params.assets.apple_touch_icon | default "apple-touch-icon.png" | absURL }}">
 | 
					 | 
				
			||||||
<link rel="mask-icon" href="{{ site.Params.assets.safari_pinned_tab | default "safari-pinned-tab.svg" | absURL }}"> -->
 | 
					 | 
				
			||||||
<meta name="theme-color" content="{{ site.Params.assets.theme_color | default "#2e2e33" }}">
 | 
					 | 
				
			||||||
<meta name="msapplication-TileColor" content="{{ site.Params.assets.msapplication_TileColor | default "#2e2e33" }}">
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
{{- /* RSS */}}
 | 
					 | 
				
			||||||
{{ range .AlternativeOutputFormats -}}
 | 
					 | 
				
			||||||
<link rel="{{ .Rel }}" type="{{ .MediaType.Type | html }}" href="{{ .Permalink | safeURL }}">
 | 
					 | 
				
			||||||
{{ end -}}
 | 
					 | 
				
			||||||
{{- range .AllTranslations -}}
 | 
					 | 
				
			||||||
<link rel="alternate" hreflang="{{ .Lang }}" href="{{ .Permalink }}">
 | 
					 | 
				
			||||||
{{ end -}}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<noscript>
 | 
					 | 
				
			||||||
    <style>
 | 
					 | 
				
			||||||
        #theme-toggle,
 | 
					 | 
				
			||||||
        .top-link {
 | 
					 | 
				
			||||||
            display: none;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    </style>
 | 
					 | 
				
			||||||
    {{- if (and (ne site.Params.defaultTheme "light") (ne site.Params.defaultTheme "dark")) }}
 | 
					 | 
				
			||||||
    <style>
 | 
					 | 
				
			||||||
        @media (prefers-color-scheme: dark) {
 | 
					 | 
				
			||||||
            :root {
 | 
					 | 
				
			||||||
                --theme: rgb(29, 30, 32);
 | 
					 | 
				
			||||||
                --entry: rgb(46, 46, 51);
 | 
					 | 
				
			||||||
                --primary: rgb(218, 218, 219);
 | 
					 | 
				
			||||||
                --secondary: rgb(155, 156, 157);
 | 
					 | 
				
			||||||
                --tertiary: rgb(65, 66, 68);
 | 
					 | 
				
			||||||
                --content: rgb(196, 196, 197);
 | 
					 | 
				
			||||||
                --hljs-bg: rgb(46, 46, 51);
 | 
					 | 
				
			||||||
                --code-bg: rgb(55, 56, 62);
 | 
					 | 
				
			||||||
                --border: rgb(51, 51, 51);
 | 
					 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            .list {
 | 
					 | 
				
			||||||
                background: var(--theme);
 | 
					 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            .list:not(.dark)::-webkit-scrollbar-track {
 | 
					 | 
				
			||||||
                background: 0 0;
 | 
					 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            .list:not(.dark)::-webkit-scrollbar-thumb {
 | 
					 | 
				
			||||||
                border-color: var(--theme);
 | 
					 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    </style>
 | 
					 | 
				
			||||||
    {{- end }}
 | 
					 | 
				
			||||||
</noscript>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
{{- partial "extend_head.html" . -}}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
{{- /* Misc */}}
 | 
					 | 
				
			||||||
{{- if hugo.IsProduction | or (eq site.Params.env "production") }}
 | 
					 | 
				
			||||||
{{- template "_internal/google_analytics.html" . }}
 | 
					 | 
				
			||||||
{{- template "partials/templates/opengraph.html" . }}
 | 
					 | 
				
			||||||
{{- template "partials/templates/twitter_cards.html" . }}
 | 
					 | 
				
			||||||
{{- template "partials/templates/schema_json.html" . }}
 | 
					 | 
				
			||||||
{{- end -}}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<link rel="preconnect" href="https://fonts.googleapis.com">
 | 
					 | 
				
			||||||
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
 | 
					 | 
				
			||||||
<link href="https://fonts.googleapis.com/css2?family=JetBrains+Mono:ital,wght@0,300;0,400;1,300;1,400&family=Lato:ital,wght@0,300;0,400;0,700;1,300;1,400;1,700&family=Noto+Sans+KR:wght@200;300;400;500;600;700&display=swap" rel="stylesheet">
 | 
					 | 
				
			||||||
<link rel="stylesheet" as="style" crossorigin href="https://cdn.jsdelivr.net/gh/orioncactus/pretendard@v1.3.9/dist/web/static/pretendard.min.css" />
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,150 +0,0 @@
 | 
				
			||||||
<header class="header">
 | 
					 | 
				
			||||||
    {{- if false }}
 | 
					 | 
				
			||||||
    <nav class="nav{{- if .IsHome }} nav-home{{- else if (not .IsPage) }} nav-nonpost{{- else if .IsPage }} nav-post{{- end }}">
 | 
					 | 
				
			||||||
        <div class="logo">
 | 
					 | 
				
			||||||
            {{- $label_text := (site.Params.label.text | default site.Title) }}
 | 
					 | 
				
			||||||
            {{- if site.Title }}
 | 
					 | 
				
			||||||
            <a href="{{ "" | absLangURL }}" accesskey="h" title="{{ $label_text }}">
 | 
					 | 
				
			||||||
                {{- if site.Params.label.icon }}
 | 
					 | 
				
			||||||
                <img id="main-logo" src="{{- site.Params.label.icon | absURL -}}" alt="" aria-label="logo"
 | 
					 | 
				
			||||||
                    height="{{- site.Params.label.iconHeight | default "24" -}}">
 | 
					 | 
				
			||||||
                {{- end -}}
 | 
					 | 
				
			||||||
                {{- else  }}
 | 
					 | 
				
			||||||
                    {{- $label_text -}}
 | 
					 | 
				
			||||||
                {{- end -}}
 | 
					 | 
				
			||||||
            </a>
 | 
					 | 
				
			||||||
            <div class="logo-switches">
 | 
					 | 
				
			||||||
                {{- if (not site.Params.disableThemeToggle) }}
 | 
					 | 
				
			||||||
                <button id="theme-toggle" accesskey="t"  aria-label="Toggle Darkmode">
 | 
					 | 
				
			||||||
                    <svg id="moon" xmlns="http://www.w3.org/2000/svg" width="24" height="18" viewBox="0 0 24 24"
 | 
					 | 
				
			||||||
                        fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"
 | 
					 | 
				
			||||||
                        stroke-linejoin="round">
 | 
					 | 
				
			||||||
                        <path d="M21 12.79A9 9 0 1 1 11.21 3 7 7 0 0 0 21 12.79z"></path>
 | 
					 | 
				
			||||||
                    </svg>
 | 
					 | 
				
			||||||
                    <svg id="sun" xmlns="http://www.w3.org/2000/svg" width="24" height="18" viewBox="0 0 24 24"
 | 
					 | 
				
			||||||
                        fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"
 | 
					 | 
				
			||||||
                        stroke-linejoin="round">
 | 
					 | 
				
			||||||
                        <circle cx="12" cy="12" r="5"></circle>
 | 
					 | 
				
			||||||
                        <line x1="12" y1="1" x2="12" y2="3"></line>
 | 
					 | 
				
			||||||
                        <line x1="12" y1="21" x2="12" y2="23"></line>
 | 
					 | 
				
			||||||
                        <line x1="4.22" y1="4.22" x2="5.64" y2="5.64"></line>
 | 
					 | 
				
			||||||
                        <line x1="18.36" y1="18.36" x2="19.78" y2="19.78"></line>
 | 
					 | 
				
			||||||
                        <line x1="1" y1="12" x2="3" y2="12"></line>
 | 
					 | 
				
			||||||
                        <line x1="21" y1="12" x2="23" y2="12"></line>
 | 
					 | 
				
			||||||
                        <line x1="4.22" y1="19.78" x2="5.64" y2="18.36"></line>
 | 
					 | 
				
			||||||
                        <line x1="18.36" y1="5.64" x2="19.78" y2="4.22"></line>
 | 
					 | 
				
			||||||
                    </svg>
 | 
					 | 
				
			||||||
                </button>
 | 
					 | 
				
			||||||
                {{- end }}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                {{- $lang := .Lang}}
 | 
					 | 
				
			||||||
                {{- $separator := or $label_text (not site.Params.disableThemeToggle)}}
 | 
					 | 
				
			||||||
                {{- with site.Home.AllTranslations }}
 | 
					 | 
				
			||||||
                <ul class="lang-switch">
 | 
					 | 
				
			||||||
                    {{- if $separator }}<li>|</li>{{ end }}
 | 
					 | 
				
			||||||
                    {{- range . -}}
 | 
					 | 
				
			||||||
                    {{- if ne $lang .Lang }}
 | 
					 | 
				
			||||||
                    <li>
 | 
					 | 
				
			||||||
                        <a href="{{- .Permalink -}}" title="{{ .Language.Params.languageAltTitle | default (.Language.LanguageName | emojify) | default (.Lang | title) }}"
 | 
					 | 
				
			||||||
                            aria-label="{{ .Language.LanguageName | default (.Lang | title) }}">
 | 
					 | 
				
			||||||
                            {{- if (and site.Params.displayFullLangName (.Language.LanguageName)) }}
 | 
					 | 
				
			||||||
                            {{- .Language.LanguageName | emojify -}}
 | 
					 | 
				
			||||||
                            {{- else }}
 | 
					 | 
				
			||||||
                            {{- .Lang | title -}}
 | 
					 | 
				
			||||||
                            {{- end -}}
 | 
					 | 
				
			||||||
                        </a>
 | 
					 | 
				
			||||||
                    </li>
 | 
					 | 
				
			||||||
                    {{- end -}}
 | 
					 | 
				
			||||||
                    {{- end}}
 | 
					 | 
				
			||||||
                </ul>
 | 
					 | 
				
			||||||
                {{- end }}
 | 
					 | 
				
			||||||
            </div>
 | 
					 | 
				
			||||||
        </div>
 | 
					 | 
				
			||||||
        {{- $currentPage := . }}
 | 
					 | 
				
			||||||
        <ul id="menu">
 | 
					 | 
				
			||||||
            {{- range site.Menus.main }}
 | 
					 | 
				
			||||||
            {{- $menu_item_url := (cond (strings.HasSuffix .URL "/") .URL (printf "%s/" .URL) ) | absLangURL }}
 | 
					 | 
				
			||||||
            {{- $page_url:= $currentPage.Permalink | absLangURL }}
 | 
					 | 
				
			||||||
            {{- $is_search := eq (site.GetPage .KeyName).Layout `search` }}
 | 
					 | 
				
			||||||
            <li>
 | 
					 | 
				
			||||||
                <a href="{{ .URL | absLangURL }}" title="{{ .Title | default .Name }} {{- cond $is_search (" (Alt + /)" | safeHTMLAttr) ("" | safeHTMLAttr ) }}"
 | 
					 | 
				
			||||||
                {{- cond $is_search (" accesskey=/" | safeHTMLAttr) ("" | safeHTMLAttr ) }}>
 | 
					 | 
				
			||||||
                    <span {{- if eq $menu_item_url $page_url }} class="active" {{- end }}>
 | 
					 | 
				
			||||||
                        {{- .Pre }}
 | 
					 | 
				
			||||||
                        {{- .Name -}}
 | 
					 | 
				
			||||||
                        {{ .Post -}}
 | 
					 | 
				
			||||||
                    </span>
 | 
					 | 
				
			||||||
                    {{- if (findRE "://" .URL) }} 
 | 
					 | 
				
			||||||
                    <svg fill="none" shape-rendering="geometricPrecision" stroke="currentColor" stroke-linecap="round"
 | 
					 | 
				
			||||||
                        stroke-linejoin="round" stroke-width="2.5" viewBox="0 0 24 24" height="12" width="12">
 | 
					 | 
				
			||||||
                        <path d="M18 13v6a2 2 0 01-2 2H5a2 2 0 01-2-2V8a2 2 0 012-2h6"></path>
 | 
					 | 
				
			||||||
                        <path d="M15 3h6v6"></path>
 | 
					 | 
				
			||||||
                        <path d="M10 14L21 3"></path>
 | 
					 | 
				
			||||||
                    </svg>
 | 
					 | 
				
			||||||
                    {{- end }}
 | 
					 | 
				
			||||||
                </a>
 | 
					 | 
				
			||||||
            </li>
 | 
					 | 
				
			||||||
            {{- end }}
 | 
					 | 
				
			||||||
        </ul>
 | 
					 | 
				
			||||||
    </nav>
 | 
					 | 
				
			||||||
    {{- end }}
 | 
					 | 
				
			||||||
</header>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
{{- /* theme-toggle is enabled */}}
 | 
					 | 
				
			||||||
{{- if (not site.Params.disableThemeToggle) }}
 | 
					 | 
				
			||||||
{{- /* theme is light */}}
 | 
					 | 
				
			||||||
{{- if (eq site.Params.defaultTheme "light") }}
 | 
					 | 
				
			||||||
<script>
 | 
					 | 
				
			||||||
    if (localStorage.getItem("pref-theme") === "dark") {
 | 
					 | 
				
			||||||
        document.body.classList.add('dark');
 | 
					 | 
				
			||||||
        {{- if site.Params.label.icon_inv }}
 | 
					 | 
				
			||||||
            document.getElementById('main-logo').src = "{{site.Params.label.icon}}";
 | 
					 | 
				
			||||||
        {{- end }}
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
</script>
 | 
					 | 
				
			||||||
{{- /* theme is dark */}}
 | 
					 | 
				
			||||||
{{- else if (eq site.Params.defaultTheme "dark") }}
 | 
					 | 
				
			||||||
<script>
 | 
					 | 
				
			||||||
    if (localStorage.getItem("pref-theme") === "light") {
 | 
					 | 
				
			||||||
        document.body.classList.remove('dark')
 | 
					 | 
				
			||||||
        {{- if site.Params.label.icon_inv }}
 | 
					 | 
				
			||||||
            document.getElementById('main-logo').src = "{{site.Params.label.icon_inv}}";
 | 
					 | 
				
			||||||
        {{- end }}
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
</script>
 | 
					 | 
				
			||||||
{{- else }}
 | 
					 | 
				
			||||||
{{- /* theme is auto */}}
 | 
					 | 
				
			||||||
<script>
 | 
					 | 
				
			||||||
    if (localStorage.getItem("pref-theme") === "dark") {
 | 
					 | 
				
			||||||
        document.body.classList.add('dark');
 | 
					 | 
				
			||||||
        {{- if site.Params.label.icon_inv }}
 | 
					 | 
				
			||||||
            document.getElementById('main-logo').src = "{{site.Params.label.icon}}";
 | 
					 | 
				
			||||||
        {{- end }}
 | 
					 | 
				
			||||||
    } else if (localStorage.getItem("pref-theme") === "light") {
 | 
					 | 
				
			||||||
        document.body.classList.remove('dark')
 | 
					 | 
				
			||||||
        {{- if site.Params.label.icon_inv }}
 | 
					 | 
				
			||||||
            document.getElementById('main-logo').src = "{{site.Params.label.icon_inv}}";
 | 
					 | 
				
			||||||
        {{- end }}
 | 
					 | 
				
			||||||
    } else if (window.matchMedia('(prefers-color-scheme: dark)').matches) {
 | 
					 | 
				
			||||||
        document.body.classList.add('dark');
 | 
					 | 
				
			||||||
        {{- if site.Params.label.icon_inv }}
 | 
					 | 
				
			||||||
            document.getElementById('main-logo').src = "{{site.Params.label.icon}}";
 | 
					 | 
				
			||||||
        {{- end }}
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
</script>
 | 
					 | 
				
			||||||
{{- end }}
 | 
					 | 
				
			||||||
{{- /* theme-toggle is disabled and theme is auto */}}
 | 
					 | 
				
			||||||
{{- else if (and (ne site.Params.defaultTheme "light") (ne site.Params.defaultTheme "dark"))}}
 | 
					 | 
				
			||||||
<script>
 | 
					 | 
				
			||||||
    if (window.matchMedia('(prefers-color-scheme: dark)').matches) {
 | 
					 | 
				
			||||||
        document.body.classList.add('dark');
 | 
					 | 
				
			||||||
        {{- if site.Params.label.icon_inv }}
 | 
					 | 
				
			||||||
            document.getElementById('main-logo').src = "{{site.Params.label.icon}}";
 | 
					 | 
				
			||||||
        {{- end }}
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
</script>
 | 
					 | 
				
			||||||
{{- end }}
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,17 +0,0 @@
 | 
				
			||||||
{{- if site.Params.homeInfoParamSimple }}
 | 
					 | 
				
			||||||
    <div class="simpletitle">{{ .Title | markdownify }}</div>
 | 
					 | 
				
			||||||
{{- else }}
 | 
					 | 
				
			||||||
    {{- with site.Params.homeInfoParams }}
 | 
					 | 
				
			||||||
    <article class="first-entry home-info">
 | 
					 | 
				
			||||||
        <header class="entry-header">
 | 
					 | 
				
			||||||
            <h1>{{ .Title | markdownify }}</h1>
 | 
					 | 
				
			||||||
        </header>
 | 
					 | 
				
			||||||
        <div class="entry-content">
 | 
					 | 
				
			||||||
            {{ .Content | markdownify }}
 | 
					 | 
				
			||||||
        </div>
 | 
					 | 
				
			||||||
        <footer class="entry-footer">
 | 
					 | 
				
			||||||
            {{ partial "social_icons.html" site.Params.socialIcons }}
 | 
					 | 
				
			||||||
        </footer>
 | 
					 | 
				
			||||||
    </article>
 | 
					 | 
				
			||||||
    {{- end -}}
 | 
					 | 
				
			||||||
{{- end }}
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,59 +0,0 @@
 | 
				
			||||||
<div class="profile">
 | 
					 | 
				
			||||||
    {{- with site.Params.profileMode }}
 | 
					 | 
				
			||||||
    <div class="profile_inner">
 | 
					 | 
				
			||||||
        {{- if .imageUrl -}}
 | 
					 | 
				
			||||||
        {{- $img := "" }}
 | 
					 | 
				
			||||||
        {{- if not (urls.Parse .imageUrl).IsAbs }}
 | 
					 | 
				
			||||||
            {{- $img = resources.Get .imageUrl }}
 | 
					 | 
				
			||||||
        {{- end }}
 | 
					 | 
				
			||||||
        {{- if $img }}
 | 
					 | 
				
			||||||
            {{- $processableFormats := (slice "jpg" "jpeg" "png" "tif" "bmp" "gif") -}}
 | 
					 | 
				
			||||||
            {{- if hugo.IsExtended -}}
 | 
					 | 
				
			||||||
                {{- $processableFormats = $processableFormats | append "webp" -}}
 | 
					 | 
				
			||||||
            {{- end -}}
 | 
					 | 
				
			||||||
            {{- $prod := (hugo.IsProduction | or (eq site.Params.env "production")) }}
 | 
					 | 
				
			||||||
            {{- if and (in $processableFormats $img.MediaType.SubType) (eq $prod true)}}
 | 
					 | 
				
			||||||
                {{- if (not (and (not .imageHeight) (not .imageWidth))) }}
 | 
					 | 
				
			||||||
                    {{- $img = $img.Resize (printf "%dx%d" .imageWidth .imageHeight) }}
 | 
					 | 
				
			||||||
                {{- else if .imageHeight }}
 | 
					 | 
				
			||||||
                    {{- $img = $img.Resize (printf "x%d" .imageHeight) }}
 | 
					 | 
				
			||||||
                {{ else if .imageWidth }}
 | 
					 | 
				
			||||||
                    {{- $img = $img.Resize (printf "%dx" .imageWidth) }}
 | 
					 | 
				
			||||||
                {{ else }}
 | 
					 | 
				
			||||||
                    {{- $img = $img.Resize "150x150" }}
 | 
					 | 
				
			||||||
                {{- end }}
 | 
					 | 
				
			||||||
            {{- end }}
 | 
					 | 
				
			||||||
            <img draggable="false" src="{{ $img.Permalink }}" alt="{{ .imageTitle | default "profile image" }}" title="{{ .imageTitle }}"
 | 
					 | 
				
			||||||
                height="{{ .imageHeight | default 150 }}" width="{{ .imageWidth | default 150 }}" />
 | 
					 | 
				
			||||||
        {{- else }}
 | 
					 | 
				
			||||||
        <img draggable="false" src="{{ .imageUrl | absURL }}" alt="{{ .imageTitle | default "profile image" }}" title="{{ .imageTitle }}"
 | 
					 | 
				
			||||||
            height="{{ .imageHeight | default 150 }}" width="{{ .imageWidth | default 150 }}" />
 | 
					 | 
				
			||||||
        {{- end }}
 | 
					 | 
				
			||||||
        {{- end }}
 | 
					 | 
				
			||||||
        <h1>{{ .title | default site.Title | markdownify }}</h1>
 | 
					 | 
				
			||||||
	<br/>
 | 
					 | 
				
			||||||
	<span>{{ .subtitle | markdownify }}</span>
 | 
					 | 
				
			||||||
        {{- partial "social_icons.html" site.Params.socialIcons -}}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        {{- with .buttons }}
 | 
					 | 
				
			||||||
	<div class="buttons">
 | 
					 | 
				
			||||||
            {{- range . }}
 | 
					 | 
				
			||||||
            <a class="button" href="{{ trim .url " " }}" rel="noopener" title="{{ .name }}">
 | 
					 | 
				
			||||||
                <span class="button-inner">
 | 
					 | 
				
			||||||
                    {{ .name }}
 | 
					 | 
				
			||||||
                    {{- if (findRE "://" .url) }} 
 | 
					 | 
				
			||||||
                    <svg fill="none" shape-rendering="geometricPrecision" stroke="currentColor" stroke-linecap="round"
 | 
					 | 
				
			||||||
                        stroke-linejoin="round" stroke-width="2.5" viewBox="0 0 24 24" height="14" width="14">
 | 
					 | 
				
			||||||
                        <path d="M18 13v6a2 2 0 01-2 2H5a2 2 0 01-2-2V8a2 2 0 012-2h6"></path>
 | 
					 | 
				
			||||||
                        <path d="M15 3h6v6"></path>
 | 
					 | 
				
			||||||
                        <path d="M10 14L21 3"></path>
 | 
					 | 
				
			||||||
                    </svg>
 | 
					 | 
				
			||||||
                    {{- end }}
 | 
					 | 
				
			||||||
                </span>
 | 
					 | 
				
			||||||
            </a>
 | 
					 | 
				
			||||||
            {{- end }}
 | 
					 | 
				
			||||||
        </div>
 | 
					 | 
				
			||||||
        {{- end }}
 | 
					 | 
				
			||||||
    </div>
 | 
					 | 
				
			||||||
    {{- end}}
 | 
					 | 
				
			||||||
</div>
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,9 +0,0 @@
 | 
				
			||||||
{{ if and (.Params.canonicalURL) (.Params.ShowCanonicalLink ) -}}
 | 
					 | 
				
			||||||
{{ $url := urls.Parse .Params.canonicalURL }}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
{{- if or .Params.author site.Params.author (.Param "ShowReadingTime") (not .Date.IsZero) .IsTranslated (or .Params.editPost.URL site.Params.editPost.URL) }} | {{- end -}}
 | 
					 | 
				
			||||||
<span>
 | 
					 | 
				
			||||||
    {{- (site.Params.CanonicalLinkText | default .Params.CanonicalLinkText) | default "Originally published at" -}}
 | 
					 | 
				
			||||||
     <a href="{{ trim .Params.canonicalURL " " }}" title="{{ trim .Params.canonicalURL " " }}" target="_blank" rel="noopener noreferrer">{{ $url.Host }}</a>
 | 
					 | 
				
			||||||
</span>
 | 
					 | 
				
			||||||
{{- end }}
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,17 +0,0 @@
 | 
				
			||||||
{{- $scratch := newScratch }}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
{{- if not .Date.IsZero -}}
 | 
					 | 
				
			||||||
{{- $scratch.Add "meta" (slice (printf "%s" (.Date | time.Format (default "January 2, 2006" site.Params.DateFormat)))) }}
 | 
					 | 
				
			||||||
{{- end }}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
{{- if (.Param "ShowReadingTime") -}}
 | 
					 | 
				
			||||||
{{- $scratch.Add "meta" (slice (i18n "read_time" .ReadingTime | default (printf "%d min" .ReadingTime))) }}
 | 
					 | 
				
			||||||
{{- end }}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
{{- if (.Param "ShowWordCount") -}}
 | 
					 | 
				
			||||||
{{- $scratch.Add "meta" (slice (i18n "words" .WordCount | default (printf "%d words" .WordCount))) }}
 | 
					 | 
				
			||||||
{{- end }}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
{{- with ($scratch.Get "meta") }}
 | 
					 | 
				
			||||||
{{- delimit . " · " -}}
 | 
					 | 
				
			||||||
{{- end -}}
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,19 +0,0 @@
 | 
				
			||||||
{{- $pages := where site.RegularPages "Type" "in" site.Params.mainSections }}
 | 
					 | 
				
			||||||
{{- if and (gt (len $pages) 1) (in $pages . ) }}
 | 
					 | 
				
			||||||
<nav class="paginav">
 | 
					 | 
				
			||||||
  {{- with $pages.Next . }}
 | 
					 | 
				
			||||||
  <a class="prev" href="{{ .Permalink }}">
 | 
					 | 
				
			||||||
    <span class="title">« {{ i18n "prev_page" }}</span>
 | 
					 | 
				
			||||||
    <br>
 | 
					 | 
				
			||||||
    <span>{{- .Name -}}</span>
 | 
					 | 
				
			||||||
  </a>
 | 
					 | 
				
			||||||
  {{- end }}
 | 
					 | 
				
			||||||
  {{- with $pages.Prev . }}
 | 
					 | 
				
			||||||
  <a class="next" href="{{ .Permalink }}">
 | 
					 | 
				
			||||||
    <span class="title">{{ i18n "next_page" }} »</span>
 | 
					 | 
				
			||||||
    <br>
 | 
					 | 
				
			||||||
    <span>{{- .Name -}}</span>
 | 
					 | 
				
			||||||
  </a>
 | 
					 | 
				
			||||||
  {{- end }}
 | 
					 | 
				
			||||||
</nav>
 | 
					 | 
				
			||||||
{{- end }}
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,71 +0,0 @@
 | 
				
			||||||
{{- $pageurl := .Permalink }}
 | 
					 | 
				
			||||||
{{- $title := .Title }}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
{{- $.Scratch.Set "tags" ""}}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
{{- with .Params.Tags }}
 | 
					 | 
				
			||||||
{{- $hashtags := newScratch}}
 | 
					 | 
				
			||||||
{{- range . }}{{ $hashtags.Add "tags" (slice (replaceRE "(\\s)" "" . ))}}{{end}}
 | 
					 | 
				
			||||||
{{- $.Scratch.Set "tags" (delimit ($hashtags.Get "tags") ",") }}
 | 
					 | 
				
			||||||
{{- end -}}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
{{- $custom := false }}
 | 
					 | 
				
			||||||
{{- $ShareButtons := (.Param "ShareButtons")}}
 | 
					 | 
				
			||||||
{{- with $ShareButtons }}{{ $custom = true }}{{ end }}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<div class="share-buttons">
 | 
					 | 
				
			||||||
    {{- if (cond ($custom) (in $ShareButtons "twitter") (true)) }}
 | 
					 | 
				
			||||||
    <a target="_blank" rel="noopener noreferrer" aria-label="share {{ $title | plainify }} on twitter"
 | 
					 | 
				
			||||||
        href="https://twitter.com/intent/tweet/?text={{ $title }}&url={{ $pageurl }}&hashtags={{- $.Scratch.Get "tags" -}}">
 | 
					 | 
				
			||||||
        <svg version="1.1" viewBox="0 0 512 512" xml:space="preserve" height="30px" width="30px" fill="currentColor">
 | 
					 | 
				
			||||||
            <path
 | 
					 | 
				
			||||||
                d="M449.446,0c34.525,0 62.554,28.03 62.554,62.554l0,386.892c0,34.524 -28.03,62.554 -62.554,62.554l-386.892,0c-34.524,0 -62.554,-28.03 -62.554,-62.554l0,-386.892c0,-34.524 28.029,-62.554 62.554,-62.554l386.892,0Zm-253.927,424.544c135.939,0 210.268,-112.643 210.268,-210.268c0,-3.218 0,-6.437 -0.153,-9.502c14.406,-10.421 26.973,-23.448 36.935,-38.314c-13.18,5.824 -27.433,9.809 -42.452,11.648c15.326,-9.196 26.973,-23.602 32.49,-40.92c-14.252,8.429 -30.038,14.56 -46.896,17.931c-13.487,-14.406 -32.644,-23.295 -53.946,-23.295c-40.767,0 -73.87,33.104 -73.87,73.87c0,5.824 0.613,11.494 1.992,16.858c-61.456,-3.065 -115.862,-32.49 -152.337,-77.241c-6.284,10.881 -9.962,23.601 -9.962,37.088c0,25.594 13.027,48.276 32.95,61.456c-12.107,-0.307 -23.448,-3.678 -33.41,-9.196l0,0.92c0,35.862 25.441,65.594 59.311,72.49c-6.13,1.686 -12.72,2.606 -19.464,2.606c-4.751,0 -9.348,-0.46 -13.946,-1.38c9.349,29.426 36.628,50.728 68.965,51.341c-25.287,19.771 -57.164,31.571 -91.8,31.571c-5.977,0 -11.801,-0.306 -17.625,-1.073c32.337,21.15 71.264,33.41 112.95,33.41Z" />
 | 
					 | 
				
			||||||
        </svg>
 | 
					 | 
				
			||||||
    </a>
 | 
					 | 
				
			||||||
    {{- end }}
 | 
					 | 
				
			||||||
    {{- if (cond ($custom) (in $ShareButtons "linkedin") (true)) }}
 | 
					 | 
				
			||||||
    <a target="_blank" rel="noopener noreferrer" aria-label="share {{ $title | plainify }} on linkedin"
 | 
					 | 
				
			||||||
        href="https://www.linkedin.com/shareArticle?mini=true&url={{ $pageurl }}&title={{ $title }}&summary={{ $title }}&source={{ $pageurl }}">
 | 
					 | 
				
			||||||
        <svg version="1.1" viewBox="0 0 512 512" xml:space="preserve" height="30px" width="30px" fill="currentColor">
 | 
					 | 
				
			||||||
            <path
 | 
					 | 
				
			||||||
                d="M449.446,0c34.525,0 62.554,28.03 62.554,62.554l0,386.892c0,34.524 -28.03,62.554 -62.554,62.554l-386.892,0c-34.524,0 -62.554,-28.03 -62.554,-62.554l0,-386.892c0,-34.524 28.029,-62.554 62.554,-62.554l386.892,0Zm-288.985,423.278l0,-225.717l-75.04,0l0,225.717l75.04,0Zm270.539,0l0,-129.439c0,-69.333 -37.018,-101.586 -86.381,-101.586c-39.804,0 -57.634,21.891 -67.617,37.266l0,-31.958l-75.021,0c0.995,21.181 0,225.717 0,225.717l75.02,0l0,-126.056c0,-6.748 0.486,-13.492 2.474,-18.315c5.414,-13.475 17.767,-27.434 38.494,-27.434c27.135,0 38.007,20.707 38.007,51.037l0,120.768l75.024,0Zm-307.552,-334.556c-25.674,0 -42.448,16.879 -42.448,39.002c0,21.658 16.264,39.002 41.455,39.002l0.484,0c26.165,0 42.452,-17.344 42.452,-39.002c-0.485,-22.092 -16.241,-38.954 -41.943,-39.002Z" />
 | 
					 | 
				
			||||||
        </svg>
 | 
					 | 
				
			||||||
    </a>
 | 
					 | 
				
			||||||
    {{- end }}
 | 
					 | 
				
			||||||
    {{- if (cond ($custom) (in $ShareButtons "reddit") (true)) }}
 | 
					 | 
				
			||||||
    <a target="_blank" rel="noopener noreferrer" aria-label="share {{ $title | plainify }} on reddit"
 | 
					 | 
				
			||||||
        href="https://reddit.com/submit?url={{ $pageurl }}&title={{ $title }}">
 | 
					 | 
				
			||||||
        <svg version="1.1" viewBox="0 0 512 512" xml:space="preserve" height="30px" width="30px" fill="currentColor">
 | 
					 | 
				
			||||||
            <path
 | 
					 | 
				
			||||||
                d="M449.446,0c34.525,0 62.554,28.03 62.554,62.554l0,386.892c0,34.524 -28.03,62.554 -62.554,62.554l-386.892,0c-34.524,0 -62.554,-28.03 -62.554,-62.554l0,-386.892c0,-34.524 28.029,-62.554 62.554,-62.554l386.892,0Zm-3.446,265.638c0,-22.964 -18.616,-41.58 -41.58,-41.58c-11.211,0 -21.361,4.457 -28.841,11.666c-28.424,-20.508 -67.586,-33.757 -111.204,-35.278l18.941,-89.121l61.884,13.157c0.756,15.734 13.642,28.29 29.56,28.29c16.407,0 29.706,-13.299 29.706,-29.701c0,-16.403 -13.299,-29.702 -29.706,-29.702c-11.666,0 -21.657,6.792 -26.515,16.578l-69.105,-14.69c-1.922,-0.418 -3.939,-0.042 -5.585,1.036c-1.658,1.073 -2.811,2.761 -3.224,4.686l-21.152,99.438c-44.258,1.228 -84.046,14.494 -112.837,35.232c-7.468,-7.164 -17.589,-11.591 -28.757,-11.591c-22.965,0 -41.585,18.616 -41.585,41.58c0,16.896 10.095,31.41 24.568,37.918c-0.639,4.135 -0.99,8.328 -0.99,12.576c0,63.977 74.469,115.836 166.33,115.836c91.861,0 166.334,-51.859 166.334,-115.836c0,-4.218 -0.347,-8.387 -0.977,-12.493c14.564,-6.47 24.735,-21.034 24.735,-38.001Zm-119.474,108.193c-20.27,20.241 -59.115,21.816 -70.534,21.816c-11.428,0 -50.277,-1.575 -70.522,-21.82c-3.007,-3.008 -3.007,-7.882 0,-10.889c3.003,-2.999 7.882,-3.003 10.885,0c12.777,12.781 40.11,17.317 59.637,17.317c19.522,0 46.86,-4.536 59.657,-17.321c3.016,-2.999 7.886,-2.995 10.885,0.008c3.008,3.011 3.003,7.882 -0.008,10.889Zm-5.23,-48.781c-16.373,0 -29.701,-13.324 -29.701,-29.698c0,-16.381 13.328,-29.714 29.701,-29.714c16.378,0 29.706,13.333 29.706,29.714c0,16.374 -13.328,29.698 -29.706,29.698Zm-160.386,-29.702c0,-16.381 13.328,-29.71 29.714,-29.71c16.369,0 29.689,13.329 29.689,29.71c0,16.373 -13.32,29.693 -29.689,29.693c-16.386,0 -29.714,-13.32 -29.714,-29.693Z" />
 | 
					 | 
				
			||||||
        </svg>
 | 
					 | 
				
			||||||
    </a>
 | 
					 | 
				
			||||||
    {{- end }}
 | 
					 | 
				
			||||||
    {{- if (cond ($custom) (in $ShareButtons "facebook") (true)) }}
 | 
					 | 
				
			||||||
    <a target="_blank" rel="noopener noreferrer" aria-label="share {{ $title | plainify }} on facebook"
 | 
					 | 
				
			||||||
        href="https://facebook.com/sharer/sharer.php?u={{ $pageurl }}">
 | 
					 | 
				
			||||||
        <svg version="1.1" viewBox="0 0 512 512" xml:space="preserve" height="30px" width="30px" fill="currentColor">
 | 
					 | 
				
			||||||
            <path
 | 
					 | 
				
			||||||
                d="M449.446,0c34.525,0 62.554,28.03 62.554,62.554l0,386.892c0,34.524 -28.03,62.554 -62.554,62.554l-106.468,0l0,-192.915l66.6,0l12.672,-82.621l-79.272,0l0,-53.617c0,-22.603 11.073,-44.636 46.58,-44.636l36.042,0l0,-70.34c0,0 -32.71,-5.582 -63.982,-5.582c-65.288,0 -107.96,39.569 -107.96,111.204l0,62.971l-72.573,0l0,82.621l72.573,0l0,192.915l-191.104,0c-34.524,0 -62.554,-28.03 -62.554,-62.554l0,-386.892c0,-34.524 28.029,-62.554 62.554,-62.554l386.892,0Z" />
 | 
					 | 
				
			||||||
        </svg>
 | 
					 | 
				
			||||||
    </a>
 | 
					 | 
				
			||||||
    {{- end }}
 | 
					 | 
				
			||||||
    {{- if (cond ($custom) (in $ShareButtons "whatsapp") (true)) }}
 | 
					 | 
				
			||||||
    <a target="_blank" rel="noopener noreferrer" aria-label="share {{ $title | plainify }} on whatsapp"
 | 
					 | 
				
			||||||
        href="https://api.whatsapp.com/send?text={{ $title }}%20-%20{{ $pageurl }}">
 | 
					 | 
				
			||||||
        <svg version="1.1" viewBox="0 0 512 512" xml:space="preserve" height="30px" width="30px" fill="currentColor">
 | 
					 | 
				
			||||||
            <path
 | 
					 | 
				
			||||||
                d="M449.446,0c34.525,0 62.554,28.03 62.554,62.554l0,386.892c0,34.524 -28.03,62.554 -62.554,62.554l-386.892,0c-34.524,0 -62.554,-28.03 -62.554,-62.554l0,-386.892c0,-34.524 28.029,-62.554 62.554,-62.554l386.892,0Zm-58.673,127.703c-33.842,-33.881 -78.847,-52.548 -126.798,-52.568c-98.799,0 -179.21,80.405 -179.249,179.234c-0.013,31.593 8.241,62.428 23.927,89.612l-25.429,92.884l95.021,-24.925c26.181,14.28 55.659,21.807 85.658,21.816l0.074,0c98.789,0 179.206,-80.413 179.247,-179.243c0.018,-47.895 -18.61,-92.93 -52.451,-126.81Zm-126.797,275.782l-0.06,0c-26.734,-0.01 -52.954,-7.193 -75.828,-20.767l-5.441,-3.229l-56.386,14.792l15.05,-54.977l-3.542,-5.637c-14.913,-23.72 -22.791,-51.136 -22.779,-79.287c0.033,-82.142 66.867,-148.971 149.046,-148.971c39.793,0.014 77.199,15.531 105.329,43.692c28.128,28.16 43.609,65.592 43.594,105.4c-0.034,82.149 -66.866,148.983 -148.983,148.984Zm81.721,-111.581c-4.479,-2.242 -26.499,-13.075 -30.604,-14.571c-4.105,-1.495 -7.091,-2.241 -10.077,2.241c-2.986,4.483 -11.569,14.572 -14.182,17.562c-2.612,2.988 -5.225,3.364 -9.703,1.12c-4.479,-2.241 -18.91,-6.97 -36.017,-22.23c-13.314,-11.876 -22.304,-26.542 -24.916,-31.026c-2.612,-4.484 -0.279,-6.908 1.963,-9.14c2.016,-2.007 4.48,-5.232 6.719,-7.847c2.24,-2.615 2.986,-4.484 4.479,-7.472c1.493,-2.99 0.747,-5.604 -0.374,-7.846c-1.119,-2.241 -10.077,-24.288 -13.809,-33.256c-3.635,-8.733 -7.327,-7.55 -10.077,-7.688c-2.609,-0.13 -5.598,-0.158 -8.583,-0.158c-2.986,0 -7.839,1.121 -11.944,5.604c-4.105,4.484 -15.675,15.32 -15.675,37.364c0,22.046 16.048,43.342 18.287,46.332c2.24,2.99 31.582,48.227 76.511,67.627c10.685,4.615 19.028,7.371 25.533,9.434c10.728,3.41 20.492,2.929 28.209,1.775c8.605,-1.285 26.499,-10.833 30.231,-21.295c3.732,-10.464 3.732,-19.431 2.612,-21.298c-1.119,-1.869 -4.105,-2.99 -8.583,-5.232Z" />
 | 
					 | 
				
			||||||
        </svg>
 | 
					 | 
				
			||||||
    </a>
 | 
					 | 
				
			||||||
    {{- end }}
 | 
					 | 
				
			||||||
    {{- if (cond ($custom) (in $ShareButtons "telegram") (true)) }}
 | 
					 | 
				
			||||||
    <a target="_blank" rel="noopener noreferrer" aria-label="share {{ $title | plainify }} on telegram"
 | 
					 | 
				
			||||||
        href="https://telegram.me/share/url?text={{ $title }}&url={{ $pageurl }}">
 | 
					 | 
				
			||||||
        <svg version="1.1" xml:space="preserve" viewBox="2 2 28 28" height="30px" width="30px" fill="currentColor">
 | 
					 | 
				
			||||||
            <path
 | 
					 | 
				
			||||||
                d="M26.49,29.86H5.5a3.37,3.37,0,0,1-2.47-1,3.35,3.35,0,0,1-1-2.47V5.48A3.36,3.36,0,0,1,3,3,3.37,3.37,0,0,1,5.5,2h21A3.38,3.38,0,0,1,29,3a3.36,3.36,0,0,1,1,2.46V26.37a3.35,3.35,0,0,1-1,2.47A3.38,3.38,0,0,1,26.49,29.86Zm-5.38-6.71a.79.79,0,0,0,.85-.66L24.73,9.24a.55.55,0,0,0-.18-.46.62.62,0,0,0-.41-.17q-.08,0-16.53,6.11a.59.59,0,0,0-.41.59.57.57,0,0,0,.43.52l4,1.24,1.61,4.83a.62.62,0,0,0,.63.43.56.56,0,0,0,.4-.17L16.54,20l4.09,3A.9.9,0,0,0,21.11,23.15ZM13.8,20.71l-1.21-4q8.72-5.55,8.78-5.55c.15,0,.23,0,.23.16a.18.18,0,0,1,0,.06s-2.51,2.3-7.52,6.8Z" />
 | 
					 | 
				
			||||||
        </svg>
 | 
					 | 
				
			||||||
    </a>
 | 
					 | 
				
			||||||
    {{- end }}
 | 
					 | 
				
			||||||
</div>
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,7 +0,0 @@
 | 
				
			||||||
<div class="social-icons">
 | 
					 | 
				
			||||||
    {{- range . }}
 | 
					 | 
				
			||||||
    <a href="{{ trim .url " " }}" target="_blank" rel="noopener noreferrer me" title="{{ (.title | default .name) | title }}">
 | 
					 | 
				
			||||||
        {{ partial "svg.html" . }}
 | 
					 | 
				
			||||||
    </a>
 | 
					 | 
				
			||||||
    {{- end }}
 | 
					 | 
				
			||||||
</div>
 | 
					 | 
				
			||||||
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							| 
						 | 
					@ -1,52 +0,0 @@
 | 
				
			||||||
<meta property="og:title" content="{{ .Title }}" />
 | 
					 | 
				
			||||||
<meta property="og:description" content="{{ with .Description }}{{ . }}{{ else }}{{if .IsPage}}{{ .Summary }}{{ else }}{{ with site.Params.description }}{{ . }}{{ end }}{{ end }}{{ end }}" />
 | 
					 | 
				
			||||||
<meta property="og:type" content="{{ if .IsPage }}article{{ else }}website{{ end }}" />
 | 
					 | 
				
			||||||
<meta property="og:url" content="{{ .Permalink }}" />
 | 
					 | 
				
			||||||
{{- if .Params.cover.image -}}
 | 
					 | 
				
			||||||
{{- if (ne .Params.cover.relative true) }}
 | 
					 | 
				
			||||||
<meta property="og:image" content="{{ .Params.cover.image | absURL }}" />
 | 
					 | 
				
			||||||
{{- else}}
 | 
					 | 
				
			||||||
<meta property="og:image" content="{{ (path.Join .RelPermalink .Params.cover.image ) | absURL }}" />
 | 
					 | 
				
			||||||
{{- end}}
 | 
					 | 
				
			||||||
{{- else }}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
{{- with $.Params.images -}}
 | 
					 | 
				
			||||||
{{- range first 6 . }}<meta property="og:image" content="{{ . | absURL }}" />{{ end -}}
 | 
					 | 
				
			||||||
{{- else -}}
 | 
					 | 
				
			||||||
{{- $images := $.Resources.ByType "image" -}}
 | 
					 | 
				
			||||||
{{- $featured := $images.GetMatch "*feature*" -}}
 | 
					 | 
				
			||||||
{{- if not $featured }}{{ $featured = $images.GetMatch "{*cover*,*thumbnail*}" }}{{ end -}}
 | 
					 | 
				
			||||||
{{- with $featured -}}
 | 
					 | 
				
			||||||
<meta property="og:image" content="{{ $featured.Permalink }}"/>
 | 
					 | 
				
			||||||
{{- else -}}
 | 
					 | 
				
			||||||
{{- with site.Params.images }}<meta property="og:image" content="{{ index . 0 | absURL }}"/>{{ end -}}
 | 
					 | 
				
			||||||
{{- end -}}
 | 
					 | 
				
			||||||
{{- end -}}
 | 
					 | 
				
			||||||
{{- end }}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
{{- if .IsPage }}
 | 
					 | 
				
			||||||
{{- $iso8601 := "2006-01-02T15:04:05-07:00" -}}
 | 
					 | 
				
			||||||
<meta property="article:section" content="{{ .Section }}" />
 | 
					 | 
				
			||||||
{{ with .PublishDate }}<meta property="article:published_time" {{ .Format $iso8601 | printf "content=%q" | safeHTMLAttr }} />{{ end }}
 | 
					 | 
				
			||||||
{{ with .Lastmod }}<meta property="article:modified_time" {{ .Format $iso8601 | printf "content=%q" | safeHTMLAttr }} />{{ end }}
 | 
					 | 
				
			||||||
{{- end -}}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
{{- with .Params.audio }}<meta property="og:audio" content="{{ . }}" />{{ end }}
 | 
					 | 
				
			||||||
{{- with .Params.locale }}<meta property="og:locale" content="{{ . }}" />{{ end }}
 | 
					 | 
				
			||||||
{{- with site.Params.title }}<meta property="og:site_name" content="{{ . }}" />{{ end }}
 | 
					 | 
				
			||||||
{{- with .Params.videos }}{{- range . }}
 | 
					 | 
				
			||||||
<meta property="og:video" content="{{ . | absURL }}" />
 | 
					 | 
				
			||||||
{{ end }}{{ end }}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
{{- /* If it is part of a series, link to related articles */}}
 | 
					 | 
				
			||||||
{{- $permalink := .Permalink }}
 | 
					 | 
				
			||||||
{{- $siteSeries := site.Taxonomies.series }}
 | 
					 | 
				
			||||||
{{ with .Params.series }}{{- range $name := . }}
 | 
					 | 
				
			||||||
  {{- $series := index $siteSeries ($name | urlize) }}
 | 
					 | 
				
			||||||
  {{- range $page := first 6 $series.Pages }}
 | 
					 | 
				
			||||||
    {{- if ne $page.Permalink $permalink }}<meta property="og:see_also" content="{{ $page.Permalink }}" />{{ end }}
 | 
					 | 
				
			||||||
  {{- end }}
 | 
					 | 
				
			||||||
{{ end }}{{ end }}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
{{- /* Facebook Page Admin ID for Domain Insights */}}
 | 
					 | 
				
			||||||
{{- with site.Social.facebook_admin }}<meta property="fb:admins" content="{{ . }}" />{{ end }}
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,119 +0,0 @@
 | 
				
			||||||
{{ if .IsHome }}
 | 
					 | 
				
			||||||
<script type="application/ld+json">
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
  "@context": "https://schema.org",
 | 
					 | 
				
			||||||
  "@type": "{{- ( site.Params.schema.publisherType | default "Organization") | title -}}",
 | 
					 | 
				
			||||||
  "name": {{ site.Title }},
 | 
					 | 
				
			||||||
  "url": {{ site.BaseURL }},
 | 
					 | 
				
			||||||
  "description": {{ site.Params.description | plainify | truncate 180 | safeHTML }},
 | 
					 | 
				
			||||||
  "thumbnailUrl": {{ site.Params.assets.favicon | default "favicon.ico" | absURL }},
 | 
					 | 
				
			||||||
  "sameAs": [
 | 
					 | 
				
			||||||
    {{- if site.Params.schema.sameAs }}
 | 
					 | 
				
			||||||
      {{ range $i, $e := site.Params.schema.sameAs }}{{ if $i }}, {{ end }}{{ trim $e " " }}{{ end }}
 | 
					 | 
				
			||||||
    {{- else}}
 | 
					 | 
				
			||||||
      {{ range $i, $e := site.Params.SocialIcons }}{{ if $i }}, {{ end }}{{ trim $e.url " " }}{{ end }}
 | 
					 | 
				
			||||||
    {{- end}}
 | 
					 | 
				
			||||||
  ]
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
</script>
 | 
					 | 
				
			||||||
{{- else if (or .IsPage .IsSection) }}
 | 
					 | 
				
			||||||
{{/* BreadcrumbList */}}
 | 
					 | 
				
			||||||
{{- $url := replace .Parent.Permalink ( printf "%s" site.BaseURL) "" }}
 | 
					 | 
				
			||||||
{{- $lang_url := strings.TrimPrefix ( printf "%s/" .Lang) $url }}
 | 
					 | 
				
			||||||
{{- $bc_list := (split $lang_url "/")}}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
{{- $scratch := newScratch }}
 | 
					 | 
				
			||||||
<script type="application/ld+json">
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
  "@context": "https://schema.org",
 | 
					 | 
				
			||||||
  "@type": "BreadcrumbList",
 | 
					 | 
				
			||||||
  "itemListElement": [
 | 
					 | 
				
			||||||
  {{- range $index, $element := $bc_list }}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    {{- $scratch.Add "path" (printf "%s/" $element ) | safeJS }}
 | 
					 | 
				
			||||||
    {{- $bc_pg := site.GetPage ($scratch.Get "path") -}}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    {{- if (and ($bc_pg) (gt (len . ) 0))}}
 | 
					 | 
				
			||||||
    {{- if (and $index)}}, {{end }}
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
      "@type": "ListItem",
 | 
					 | 
				
			||||||
      "position": {{ add 1 $index  }},
 | 
					 | 
				
			||||||
      "name": {{ $bc_pg.Name }},
 | 
					 | 
				
			||||||
      "item": {{ $bc_pg.Permalink | safeHTML }}
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
    {{- end }}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  {{- end }}
 | 
					 | 
				
			||||||
  {{- /*  self-page addition  */ -}}
 | 
					 | 
				
			||||||
  {{- if (ge (len $bc_list) 2) }}, {{end }}
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
      "@type": "ListItem",
 | 
					 | 
				
			||||||
      "position": {{len $bc_list}},
 | 
					 | 
				
			||||||
      "name": {{ .Name }},
 | 
					 | 
				
			||||||
      "item": {{ .Permalink | safeHTML }}
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
  ]
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
</script>
 | 
					 | 
				
			||||||
{{- if .IsPage }}
 | 
					 | 
				
			||||||
<script type="application/ld+json">
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
  "@context": "https://schema.org",
 | 
					 | 
				
			||||||
  "@type": "BlogPosting",
 | 
					 | 
				
			||||||
  "headline": {{ .Title | plainify}},
 | 
					 | 
				
			||||||
  "name": "{{ .Title | plainify }}",
 | 
					 | 
				
			||||||
  "description": {{ with .Description | plainify }}{{ . }}{{ else }}{{ .Summary | plainify  }}{{ end -}},
 | 
					 | 
				
			||||||
  "keywords": [
 | 
					 | 
				
			||||||
    {{- if .Params.keywords }}
 | 
					 | 
				
			||||||
    {{ range $i, $e := .Params.keywords }}{{ if $i }}, {{ end }}{{ $e }}{{ end }}
 | 
					 | 
				
			||||||
    {{- else }}
 | 
					 | 
				
			||||||
    {{ range $i, $e := .Params.tags }}{{ if $i }}, {{ end }}{{ $e }}{{ end }}
 | 
					 | 
				
			||||||
    {{- end }}
 | 
					 | 
				
			||||||
  ],
 | 
					 | 
				
			||||||
  "articleBody": {{ .Content | safeJS | htmlUnescape | plainify }},
 | 
					 | 
				
			||||||
  "wordCount" : "{{ .WordCount }}",
 | 
					 | 
				
			||||||
  "inLanguage": {{ .Language.Lang | default "en-us" }},
 | 
					 | 
				
			||||||
  {{ if .Params.cover.image -}}
 | 
					 | 
				
			||||||
  "image":
 | 
					 | 
				
			||||||
    {{- if (ne .Params.cover.relative true) -}}
 | 
					 | 
				
			||||||
    {{ .Params.cover.image | absURL }},
 | 
					 | 
				
			||||||
    {{- else -}}
 | 
					 | 
				
			||||||
    {{ (path.Join .RelPermalink .Params.cover.image ) | absURL }},
 | 
					 | 
				
			||||||
    {{- end}}
 | 
					 | 
				
			||||||
  {{- end -}}
 | 
					 | 
				
			||||||
  "datePublished": {{ .PublishDate }},
 | 
					 | 
				
			||||||
  "dateModified": {{ .Lastmod }},
 | 
					 | 
				
			||||||
  {{- with (.Params.author | default site.Params.author) }}
 | 
					 | 
				
			||||||
  "author":
 | 
					 | 
				
			||||||
    {{- if (or (eq (printf "%T" .) "[]string") (eq (printf "%T" .) "[]interface {}")) -}}
 | 
					 | 
				
			||||||
  [{{- range $i, $v := . -}}
 | 
					 | 
				
			||||||
  {{- if $i }}, {{end -}}
 | 
					 | 
				
			||||||
  {
 | 
					 | 
				
			||||||
    "@type": "Person",
 | 
					 | 
				
			||||||
    "name": {{ $v }}
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
  {{- end }}],
 | 
					 | 
				
			||||||
    {{- else -}}
 | 
					 | 
				
			||||||
  {
 | 
					 | 
				
			||||||
    "@type": "Person",
 | 
					 | 
				
			||||||
    "name": {{ . }}
 | 
					 | 
				
			||||||
  },
 | 
					 | 
				
			||||||
    {{- end -}}
 | 
					 | 
				
			||||||
  {{- end }}
 | 
					 | 
				
			||||||
  "mainEntityOfPage": {
 | 
					 | 
				
			||||||
    "@type": "WebPage",
 | 
					 | 
				
			||||||
    "@id": {{ .Permalink | safeHTML }}
 | 
					 | 
				
			||||||
  },
 | 
					 | 
				
			||||||
  "publisher": {
 | 
					 | 
				
			||||||
    "@type": "{{- ( site.Params.schema.publisherType | default "Organization") | title -}}",
 | 
					 | 
				
			||||||
    "name": {{ site.Title }},
 | 
					 | 
				
			||||||
    "logo": {
 | 
					 | 
				
			||||||
      "@type": "ImageObject",
 | 
					 | 
				
			||||||
      "url": {{ site.Params.assets.favicon | default "favicon.ico" | absURL }}
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
</script>
 | 
					 | 
				
			||||||
{{- end }}{{/* .IsPage end */}}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
{{- end -}}
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,33 +0,0 @@
 | 
				
			||||||
{{- if .Params.cover.image -}}
 | 
					 | 
				
			||||||
<meta name="twitter:card" content="summary_large_image" />
 | 
					 | 
				
			||||||
{{- if (ne $.Params.cover.relative true) }}
 | 
					 | 
				
			||||||
<meta name="twitter:image" content="{{ .Params.cover.image | absURL }}" />
 | 
					 | 
				
			||||||
{{- else }}
 | 
					 | 
				
			||||||
<meta name="twitter:image" content="{{ (path.Join .RelPermalink .Params.cover.image ) | absURL }}" />
 | 
					 | 
				
			||||||
{{- end}}
 | 
					 | 
				
			||||||
{{- else }}
 | 
					 | 
				
			||||||
{{- with $.Params.images -}}
 | 
					 | 
				
			||||||
<meta name="twitter:card" content="summary_large_image"/>
 | 
					 | 
				
			||||||
<meta name="twitter:image" content="{{ index . 0 | absURL }}"/>
 | 
					 | 
				
			||||||
{{ else -}}
 | 
					 | 
				
			||||||
{{- $images := $.Resources.ByType "image" -}}
 | 
					 | 
				
			||||||
{{- $featured := $images.GetMatch "*feature*" -}}
 | 
					 | 
				
			||||||
{{- if not $featured }}{{ $featured = $images.GetMatch "{*cover*,*thumbnail*}" }}{{ end -}}
 | 
					 | 
				
			||||||
{{- with $featured -}}
 | 
					 | 
				
			||||||
<meta name="twitter:card" content="summary_large_image"/>
 | 
					 | 
				
			||||||
<meta name="twitter:image" content="{{ $featured.Permalink }}"/>
 | 
					 | 
				
			||||||
{{- else -}}
 | 
					 | 
				
			||||||
{{- with site.Params.images -}}
 | 
					 | 
				
			||||||
<meta name="twitter:card" content="summary_large_image"/>
 | 
					 | 
				
			||||||
<meta name="twitter:image" content="{{ index . 0 | absURL }}"/>
 | 
					 | 
				
			||||||
{{ else -}}
 | 
					 | 
				
			||||||
<meta name="twitter:card" content="summary"/>
 | 
					 | 
				
			||||||
{{- end -}}
 | 
					 | 
				
			||||||
{{- end -}}
 | 
					 | 
				
			||||||
{{- end }}
 | 
					 | 
				
			||||||
{{- end }}
 | 
					 | 
				
			||||||
<meta name="twitter:title" content="{{ .Title }}"/>
 | 
					 | 
				
			||||||
<meta name="twitter:description" content="{{ with .Description }}{{ . }}{{ else }}{{if .IsPage}}{{ .Summary }}{{ else }}{{ with site.Params.description }}{{ . }}{{ end }}{{ end }}{{ end -}}"/>
 | 
					 | 
				
			||||||
{{ with site.Social.twitter -}}
 | 
					 | 
				
			||||||
<meta name="twitter:site" content="@{{ . }}"/>
 | 
					 | 
				
			||||||
{{ end -}}
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,97 +0,0 @@
 | 
				
			||||||
{{- $headers := findRE "<h[1-6].*?>(.|\n])+?</h[1-6]>" .Content -}}
 | 
					 | 
				
			||||||
{{- $has_headers := ge (len $headers) 1 -}}
 | 
					 | 
				
			||||||
{{- if $has_headers -}}
 | 
					 | 
				
			||||||
<div class="toc">
 | 
					 | 
				
			||||||
    <details {{if (.Param "TocOpen") }} open{{ end }}>
 | 
					 | 
				
			||||||
        <summary accesskey="c" title="(Alt + C)">
 | 
					 | 
				
			||||||
            <span class="details">{{- i18n "toc" | default "Table of Contents" }}</span>
 | 
					 | 
				
			||||||
        </summary>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        <div class="inner">
 | 
					 | 
				
			||||||
            {{- if (.Param "UseHugoToc") }}
 | 
					 | 
				
			||||||
            {{- .TableOfContents -}}
 | 
					 | 
				
			||||||
            {{- else }}
 | 
					 | 
				
			||||||
            {{- $largest := 6 -}}
 | 
					 | 
				
			||||||
            {{- range $headers -}}
 | 
					 | 
				
			||||||
            {{- $headerLevel := index (findRE "[1-6]" . 1) 0 -}}
 | 
					 | 
				
			||||||
            {{- $headerLevel := len (seq $headerLevel) -}}
 | 
					 | 
				
			||||||
            {{- if lt $headerLevel $largest -}}
 | 
					 | 
				
			||||||
            {{- $largest = $headerLevel -}}
 | 
					 | 
				
			||||||
            {{- end -}}
 | 
					 | 
				
			||||||
            {{- end -}}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            {{- $firstHeaderLevel := len (seq (index (findRE "[1-6]" (index $headers 0) 1) 0)) -}}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            {{- $.Scratch.Set "bareul" slice -}}
 | 
					 | 
				
			||||||
            <ul>
 | 
					 | 
				
			||||||
                {{- range seq (sub $firstHeaderLevel $largest) -}}
 | 
					 | 
				
			||||||
                <ul>
 | 
					 | 
				
			||||||
                    {{- $.Scratch.Add "bareul" (sub (add $largest .) 1) -}}
 | 
					 | 
				
			||||||
                    {{- end -}}
 | 
					 | 
				
			||||||
                    {{- range $i, $header := $headers -}}
 | 
					 | 
				
			||||||
                    {{- $headerLevel := index (findRE "[1-6]" . 1) 0 -}}
 | 
					 | 
				
			||||||
                    {{- $headerLevel := len (seq $headerLevel) -}}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                    {{/* get id="xyz" */}}
 | 
					 | 
				
			||||||
                    {{- $id := index (findRE "(id=\"(.*?)\")" $header 9) 0 }}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                    {{- /* strip id="" to leave xyz, no way to get regex capturing groups in hugo */ -}}
 | 
					 | 
				
			||||||
                    {{- $cleanedID := replace (replace $id "id=\"" "") "\"" "" }}
 | 
					 | 
				
			||||||
                    {{- $header := replaceRE "<h[1-6].*?>((.|\n])+?)</h[1-6]>" "$1" $header -}}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                    {{- if ne $i 0 -}}
 | 
					 | 
				
			||||||
                    {{- $prevHeaderLevel := index (findRE "[1-6]" (index $headers (sub $i 1)) 1) 0 -}}
 | 
					 | 
				
			||||||
                    {{- $prevHeaderLevel := len (seq $prevHeaderLevel) -}}
 | 
					 | 
				
			||||||
                    {{- if gt $headerLevel $prevHeaderLevel -}}
 | 
					 | 
				
			||||||
                    {{- range seq $prevHeaderLevel (sub $headerLevel 1) -}}
 | 
					 | 
				
			||||||
                    <ul>
 | 
					 | 
				
			||||||
                        {{/* the first should not be recorded */}}
 | 
					 | 
				
			||||||
                        {{- if ne $prevHeaderLevel . -}}
 | 
					 | 
				
			||||||
                        {{- $.Scratch.Add "bareul" . -}}
 | 
					 | 
				
			||||||
                        {{- end -}}
 | 
					 | 
				
			||||||
                        {{- end -}}
 | 
					 | 
				
			||||||
                        {{- else -}}
 | 
					 | 
				
			||||||
                        </li>
 | 
					 | 
				
			||||||
                        {{- if lt $headerLevel $prevHeaderLevel -}}
 | 
					 | 
				
			||||||
                        {{- range seq (sub $prevHeaderLevel 1) -1 $headerLevel -}}
 | 
					 | 
				
			||||||
                        {{- if in ($.Scratch.Get "bareul") . -}}
 | 
					 | 
				
			||||||
                    </ul>
 | 
					 | 
				
			||||||
                    {{/* manually do pop item */}}
 | 
					 | 
				
			||||||
                    {{- $tmp := $.Scratch.Get "bareul" -}}
 | 
					 | 
				
			||||||
                    {{- $.Scratch.Delete "bareul" -}}
 | 
					 | 
				
			||||||
                    {{- $.Scratch.Set "bareul" slice}}
 | 
					 | 
				
			||||||
                    {{- range seq (sub (len $tmp) 1) -}}
 | 
					 | 
				
			||||||
                    {{- $.Scratch.Add "bareul" (index $tmp (sub . 1)) -}}
 | 
					 | 
				
			||||||
                    {{- end -}}
 | 
					 | 
				
			||||||
                    {{- else -}}
 | 
					 | 
				
			||||||
                </ul>
 | 
					 | 
				
			||||||
                </li>
 | 
					 | 
				
			||||||
                {{- end -}}
 | 
					 | 
				
			||||||
                {{- end -}}
 | 
					 | 
				
			||||||
                {{- end -}}
 | 
					 | 
				
			||||||
                {{- end }}
 | 
					 | 
				
			||||||
                <li>
 | 
					 | 
				
			||||||
                    <a href="#{{- $cleanedID -}}" aria-label="{{- $header | plainify -}}">{{- $header | safeHTML -}}</a>
 | 
					 | 
				
			||||||
                    {{- else }}
 | 
					 | 
				
			||||||
                <li>
 | 
					 | 
				
			||||||
                    <a href="#{{- $cleanedID -}}" aria-label="{{- $header | plainify -}}">{{- $header | safeHTML -}}</a>
 | 
					 | 
				
			||||||
                    {{- end -}}
 | 
					 | 
				
			||||||
                    {{- end -}}
 | 
					 | 
				
			||||||
                    <!-- {{- $firstHeaderLevel := len (seq (index (findRE "[1-6]" (index $headers 0) 1) 0)) -}} -->
 | 
					 | 
				
			||||||
                    {{- $firstHeaderLevel := $largest }}
 | 
					 | 
				
			||||||
                    {{- $lastHeaderLevel := len (seq (index (findRE "[1-6]" (index $headers (sub (len $headers) 1)) 1) 0)) }}
 | 
					 | 
				
			||||||
                </li>
 | 
					 | 
				
			||||||
                {{- range seq (sub $lastHeaderLevel $firstHeaderLevel) -}}
 | 
					 | 
				
			||||||
                {{- if in ($.Scratch.Get "bareul") (add . $firstHeaderLevel) }}
 | 
					 | 
				
			||||||
            </ul>
 | 
					 | 
				
			||||||
            {{- else }}
 | 
					 | 
				
			||||||
            </ul>
 | 
					 | 
				
			||||||
            </li>
 | 
					 | 
				
			||||||
            {{- end -}}
 | 
					 | 
				
			||||||
            {{- end }}
 | 
					 | 
				
			||||||
            </ul>
 | 
					 | 
				
			||||||
            {{- end }}
 | 
					 | 
				
			||||||
        </div>
 | 
					 | 
				
			||||||
    </details>
 | 
					 | 
				
			||||||
</div>
 | 
					 | 
				
			||||||
{{- end }}
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,19 +0,0 @@
 | 
				
			||||||
{{- if .IsTranslated -}}
 | 
					 | 
				
			||||||
{{- if (ne .Layout "search") }}
 | 
					 | 
				
			||||||
{{- if or .Params.author site.Params.author (.Param "ShowReadingTime") (not .Date.IsZero) }} | {{- end -}}
 | 
					 | 
				
			||||||
{{- end }}
 | 
					 | 
				
			||||||
{{- i18n "translations" | default "Translations" }}:
 | 
					 | 
				
			||||||
<ul class="i18n_list">
 | 
					 | 
				
			||||||
    {{- range .Translations }}
 | 
					 | 
				
			||||||
    <li>
 | 
					 | 
				
			||||||
        <a href="{{ .Permalink }}">
 | 
					 | 
				
			||||||
            {{- if (and site.Params.displayFullLangName (.Language.LanguageName)) }}
 | 
					 | 
				
			||||||
            {{- .Language.LanguageName | emojify -}}
 | 
					 | 
				
			||||||
            {{- else }}
 | 
					 | 
				
			||||||
            {{- .Lang | title -}}
 | 
					 | 
				
			||||||
            {{- end -}}
 | 
					 | 
				
			||||||
        </a>
 | 
					 | 
				
			||||||
    </li>
 | 
					 | 
				
			||||||
    {{- end }}
 | 
					 | 
				
			||||||
</ul>
 | 
					 | 
				
			||||||
{{- end -}}
 | 
					 | 
				
			||||||
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							| 
						 | 
					@ -1 +0,0 @@
 | 
				
			||||||
name: mytheme
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,9 +1,22 @@
 | 
				
			||||||
{{ define "main" }}
 | 
					{{ define "main" }}
 | 
				
			||||||
  <content>
 | 
					    {{ $pages := slice }}
 | 
				
			||||||
    {{- $pages := union .RegularPages .Sections }}
 | 
					    {{ if eq .Page.Path "blog" }}
 | 
				
			||||||
    {{- $pages = where site.RegularPages "Type" "in" site.Params.mainSections }}
 | 
					      {{ $pages = .Site.Pages }}
 | 
				
			||||||
    {{- $pages = where $pages "Params.hiddenInHomeList" "!=" "true"  }}
 | 
					      {{ $pages = where $pages "IsSection" "!=" true }}
 | 
				
			||||||
 | 
					      {{ $pages = where $pages "Params.hiddenInHomeList" "!=" "true"  }}
 | 
				
			||||||
 | 
					      {{ $filteredPages := slice }}
 | 
				
			||||||
 | 
					      {{ range $index, $page := $pages }}
 | 
				
			||||||
 | 
					        {{ $baseDir := path.Base $page.File.Dir }}
 | 
				
			||||||
 | 
					        {{ if in site.Params.mainSections $baseDir }}
 | 
				
			||||||
 | 
					          {{ $filteredPages = $filteredPages | append $page }}
 | 
				
			||||||
 | 
					        {{ end }}
 | 
				
			||||||
 | 
					      {{ end }}
 | 
				
			||||||
 | 
					      {{ $pages = $filteredPages }}
 | 
				
			||||||
 | 
					    {{ else }}
 | 
				
			||||||
 | 
					      {{ $pages = union .RegularPages .Sections }}
 | 
				
			||||||
 | 
					    {{ end }}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  <content>
 | 
				
			||||||
    <ul class="blog-posts">
 | 
					    <ul class="blog-posts">
 | 
				
			||||||
      {{ range $pages }}
 | 
					      {{ range $pages }}
 | 
				
			||||||
      <li>
 | 
					      <li>
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -13,6 +13,7 @@
 | 
				
			||||||
  :root[color-mode="light"] {
 | 
					  :root[color-mode="light"] {
 | 
				
			||||||
      --primary-bg-color: white;
 | 
					      --primary-bg-color: white;
 | 
				
			||||||
      --primary-text-color: black;
 | 
					      --primary-text-color: black;
 | 
				
			||||||
 | 
					      --secondary-text-color: #099;
 | 
				
			||||||
      --link-color: #3273dc;
 | 
					      --link-color: #3273dc;
 | 
				
			||||||
      --blockquote-border-color: #999;
 | 
					      --blockquote-border-color: #999;
 | 
				
			||||||
      --blockquote-text-color: #222;
 | 
					      --blockquote-text-color: #222;
 | 
				
			||||||
| 
						 | 
					@ -28,6 +29,7 @@
 | 
				
			||||||
  :root[color-mode="dark"] {
 | 
					  :root[color-mode="dark"] {
 | 
				
			||||||
      --primary-bg-color: #181816;
 | 
					      --primary-bg-color: #181816;
 | 
				
			||||||
      --primary-text-color: white;
 | 
					      --primary-text-color: white;
 | 
				
			||||||
 | 
					      --secondary-text-color: #8FF;
 | 
				
			||||||
      --link-color: #8cc2dd;
 | 
					      --link-color: #8cc2dd;
 | 
				
			||||||
      --blockquote-text-color: #ccc;
 | 
					      --blockquote-text-color: #ccc;
 | 
				
			||||||
      --code-bg-color: #555;
 | 
					      --code-bg-color: #555;
 | 
				
			||||||
| 
						 | 
					@ -97,14 +99,22 @@
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  ul.blog-posts {
 | 
					  ul.blog-posts {
 | 
				
			||||||
      font-size: 16px;
 | 
					      font-size: 17px;
 | 
				
			||||||
      color: #0;
 | 
					 | 
				
			||||||
      list-style-type: none;
 | 
					      list-style-type: none;
 | 
				
			||||||
      padding: unset;
 | 
					      padding: unset;
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  ul.blog-posts li a:visited {
 | 
					  ul.blog-posts li a:visited {
 | 
				
			||||||
      color: #8b6fcb;
 | 
					      color: var(--secondary-text-color);
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  ul.blog-posts li a {
 | 
				
			||||||
 | 
					      color: var(--primary-text-color);
 | 
				
			||||||
 | 
					    text-decoration: none;
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  ul.blog-posts li {
 | 
				
			||||||
 | 
					    margin: 5px 0;
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  .post-header {
 | 
					  .post-header {
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue