Compare commits
21 Commits
b56ac908f6
...
98ee4bd8f3
| Author | SHA1 | Date | |
|---|---|---|---|
| 98ee4bd8f3 | |||
| f56465c5ec | |||
| 66d5125b88 | |||
|
|
667440d2e3 | ||
|
|
2a0f0cad49 | ||
|
|
fb7910c0a2 | ||
| b5e2821918 | |||
| 869f9d12c8 | |||
| c5a28bf7ef | |||
| 5869d99db1 | |||
| 3858441c89 | |||
| 1ee75d9431 | |||
| c48995310b | |||
| 5484e084a4 | |||
| 620c269d91 | |||
| 77ea2900bc | |||
| 8f3b0b967b | |||
| c9044bd3c3 | |||
| f4d4f4e5d7 | |||
| 9b0c70ac05 | |||
| fadf72c180 |
@@ -77,7 +77,7 @@ input.stork-input {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.stork-title, .stork-excerpt {
|
.stork-title p, .stork-excerpt p {
|
||||||
margin: 0;
|
margin: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -21,6 +21,11 @@ h1, h2, h3, h4, h5, h6 {
|
|||||||
font-weight: normal;
|
font-weight: normal;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
|
|
||||||
|
&:target {
|
||||||
|
background-color: lighten(yellow, 30%);
|
||||||
|
border-radius: 1rem;
|
||||||
|
}
|
||||||
|
|
||||||
a {
|
a {
|
||||||
border-bottom: none;
|
border-bottom: none;
|
||||||
|
|
||||||
@@ -144,18 +149,24 @@ table {
|
|||||||
padding: 0.5rem;
|
padding: 0.5rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.fold-table + table {
|
||||||
tr {
|
tr {
|
||||||
@include below-container-width {
|
@include below-container-width {
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
td {
|
td {
|
||||||
@include below-container-width {
|
@include below-container-width {
|
||||||
overflow-x: auto;
|
overflow-x: auto;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
td, th {
|
||||||
padding: 0.5rem;
|
padding: 0.5rem;
|
||||||
|
vertical-align: top;
|
||||||
}
|
}
|
||||||
|
|
||||||
div.highlight tr {
|
div.highlight tr {
|
||||||
@@ -229,6 +240,10 @@ figure {
|
|||||||
text-align: center;
|
text-align: center;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
&.fullwide img {
|
||||||
|
max-width: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
&.tiny img {
|
&.tiny img {
|
||||||
max-height: 15rem;
|
max-height: 15rem;
|
||||||
}
|
}
|
||||||
@@ -246,7 +261,7 @@ figure {
|
|||||||
margin: auto;
|
margin: auto;
|
||||||
}
|
}
|
||||||
|
|
||||||
.draft-warning {
|
.warning {
|
||||||
@include bordered-block;
|
@include bordered-block;
|
||||||
padding: 0.5rem;
|
padding: 0.5rem;
|
||||||
background-color: #ffee99;
|
background-color: #ffee99;
|
||||||
@@ -262,3 +277,44 @@ figure {
|
|||||||
stroke-linejoin: round;
|
stroke-linejoin: round;
|
||||||
fill: currentColor;
|
fill: currentColor;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.katex * {
|
||||||
|
font-family: unset;
|
||||||
|
}
|
||||||
|
|
||||||
|
.block {
|
||||||
|
@include bordered-block;
|
||||||
|
margin: auto;
|
||||||
|
padding: 0.5rem;
|
||||||
|
width: fit-content;
|
||||||
|
}
|
||||||
|
|
||||||
|
.dialog {
|
||||||
|
.message {
|
||||||
|
max-width: 0.8*$container-width;
|
||||||
|
margin-top: 0.5rem;
|
||||||
|
display: flex;
|
||||||
|
flex-direction: row;
|
||||||
|
|
||||||
|
.message-sender {
|
||||||
|
width: 4rem;
|
||||||
|
margin: 0.75rem;
|
||||||
|
|
||||||
|
.feather {
|
||||||
|
width: 2rem;
|
||||||
|
height: 1.6rem;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.message-text {
|
||||||
|
@include bordered-block;
|
||||||
|
display: block;
|
||||||
|
padding: 0.75rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
&.side-answer {
|
||||||
|
margin-left: auto;
|
||||||
|
flex-direction: row-reverse;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|||||||
52
i18n/en.toml
Normal file
52
i18n/en.toml
Normal file
@@ -0,0 +1,52 @@
|
|||||||
|
[home]
|
||||||
|
other = "Home"
|
||||||
|
|
||||||
|
[about]
|
||||||
|
other = "About"
|
||||||
|
|
||||||
|
[resume]
|
||||||
|
other = "Resume"
|
||||||
|
|
||||||
|
[tags]
|
||||||
|
other = "Tags"
|
||||||
|
|
||||||
|
[favorites]
|
||||||
|
other = "Favorites"
|
||||||
|
|
||||||
|
[search]
|
||||||
|
other = "Search"
|
||||||
|
|
||||||
|
[allPosts]
|
||||||
|
other = "All Posts"
|
||||||
|
|
||||||
|
[nWords]
|
||||||
|
one = "one word"
|
||||||
|
other = "{{ .Count }} words"
|
||||||
|
|
||||||
|
[nMinutesToRead]
|
||||||
|
one = "about one minute to read"
|
||||||
|
other = "about {{ .Count }} minutes to read"
|
||||||
|
|
||||||
|
[recentPosts]
|
||||||
|
other = "Recent posts"
|
||||||
|
|
||||||
|
[tagged]
|
||||||
|
other = "Tagged \"{{ . }}\""
|
||||||
|
|
||||||
|
[postedOn]
|
||||||
|
other = "Posted on {{ . }}"
|
||||||
|
|
||||||
|
[tableOfContents]
|
||||||
|
other = "Table of Contents"
|
||||||
|
|
||||||
|
[warning]
|
||||||
|
other = "Warning!"
|
||||||
|
|
||||||
|
[postDraft]
|
||||||
|
other = "This post is a draft. At best, it may contain grammar mistakes; at worst, it can include significant errors and bugs. Please use your best judgement!"
|
||||||
|
|
||||||
|
[contactFooter]
|
||||||
|
other = "Liked this article? Have any questions or comments? Please don't hesitate to reach out to me at <a href=\"mailto:danila.fedorin@gmail.com\">danila.fedorin@gmail.com</a>! I love receiving emails from readers, and I'm always happy to provide any additional clarification or assistance."
|
||||||
|
|
||||||
|
[note]
|
||||||
|
other = "note"
|
||||||
@@ -1,5 +1,6 @@
|
|||||||
{{ define "main" }}
|
{{ define "main" }}
|
||||||
<h2>{{ .Title }}</h2>
|
<h2>{{ .Title }}</h2>
|
||||||
|
{{ .Content }}
|
||||||
|
|
||||||
<ul class="post-list">
|
<ul class="post-list">
|
||||||
{{ range .Pages.ByDate.Reverse }}
|
{{ range .Pages.ByDate.Reverse }}
|
||||||
|
|||||||
@@ -6,25 +6,21 @@
|
|||||||
<a class="button" href="{{ $.Site.BaseURL }}/tags/{{ . | urlize }}">{{ . }}</a>
|
<a class="button" href="{{ $.Site.BaseURL }}/tags/{{ . | urlize }}">{{ . }}</a>
|
||||||
{{ end }}
|
{{ end }}
|
||||||
</p>
|
</p>
|
||||||
<p>Posted on {{ .Date.Format "January 2, 2006" }}.</p>
|
<p>{{ i18n "postedOn" (.Date.Format "January 2, 2006") }}.</p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="post-content">
|
<div class="post-content">
|
||||||
{{ if not (eq .TableOfContents "<nav id=\"TableOfContents\"></nav>") }}
|
{{ if not (eq .TableOfContents "<nav id=\"TableOfContents\"></nav>") }}
|
||||||
<div class="table-of-contents">
|
<div class="table-of-contents">
|
||||||
<div class="wrapper">
|
<div class="wrapper">
|
||||||
<em>Table of Contents</em>
|
<em>{{ i18n "tableOfContents" }}</em>
|
||||||
{{ .TableOfContents }}
|
{{ .TableOfContents }}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
{{ end }}
|
{{ end }}
|
||||||
|
|
||||||
{{ if .Draft }}
|
{{ if .Draft }}
|
||||||
<div class="draft-warning">
|
{{ partial "warning.html" (i18n "postDraft") }}
|
||||||
<em>Warning!</em> This post is a draft. At best, it may contain grammar mistakes;
|
|
||||||
at worst, it can include significant errors and bugs. Please
|
|
||||||
use your best judgement!
|
|
||||||
</div>
|
|
||||||
{{ end }}
|
{{ end }}
|
||||||
|
|
||||||
{{ .Content }}
|
{{ .Content }}
|
||||||
@@ -33,10 +29,7 @@
|
|||||||
{{ define "after" }}
|
{{ define "after" }}
|
||||||
<hr class="container footer-divider">
|
<hr class="container footer-divider">
|
||||||
<footer class="container">
|
<footer class="container">
|
||||||
<p>Liked this article? Have any questions or comments?
|
<p>{{ i18n "contactFooter" | safeHTML }}</p>
|
||||||
Please don't hesitate to reach out to me at <a href="mailto:danila.fedorin@gmail.com">
|
|
||||||
danila.fedorin@gmail.com</a>! I love receiving emails from readers, and I'm always happy
|
|
||||||
to provide any additional clarification or assistance.</p>
|
|
||||||
<!--
|
<!--
|
||||||
<p>I'm also currently looking for Computer Science internships for the summer
|
<p>I'm also currently looking for Computer Science internships for the summer
|
||||||
of 2021. Take a look at my <a href="/Resume-Danila-Fedorin.pdf">resume</a>,
|
of 2021. Take a look at my <a href="/Resume-Danila-Fedorin.pdf">resume</a>,
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
{{ define "main" }}
|
{{ define "main" }}
|
||||||
{{ .Content }}
|
{{ .Content }}
|
||||||
|
|
||||||
Recent posts:
|
{{ i18n "recentPosts" }}:
|
||||||
<ul class="post-list">
|
<ul class="post-list">
|
||||||
{{ range first 10 (where (where .Site.Pages.ByDate.Reverse "Section" "blog") ".Kind" "!=" "section") }}
|
{{ range first 10 (where (where .Site.Pages.ByDate.Reverse "Section" "blog") ".Kind" "!=" "section") }}
|
||||||
{{ partial "post.html" . }}
|
{{ partial "post.html" . }}
|
||||||
|
|||||||
@@ -8,6 +8,10 @@
|
|||||||
|
|
||||||
<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inconsolata:wght@400;700&family=Raleway&family=Lora&display=block" media="screen">
|
<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inconsolata:wght@400;700&family=Raleway&family=Lora&display=block" media="screen">
|
||||||
<link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/normalize/5.0.0/normalize.min.css" media="screen">
|
<link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/normalize/5.0.0/normalize.min.css" media="screen">
|
||||||
|
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/katex@0.16.2/dist/katex.min.css" integrity="sha384-bYdxxUwYipFNohQlHt0bjN/LCpueqWz13HufFEV1SUatKs1cm4L6fFgCi1jT643X" crossorigin="anonymous">
|
||||||
|
{{ range .AlternativeOutputFormats -}}
|
||||||
|
<link rel="{{ .Rel }}" type="{{ .MediaType.Type | html }}" href="{{ .Permalink | safeURL }}">
|
||||||
|
{{ end -}}
|
||||||
{{ $style := resources.Get "scss/style.scss" | resources.ToCSS | resources.Minify }}
|
{{ $style := resources.Get "scss/style.scss" | resources.ToCSS | resources.Minify }}
|
||||||
{{ $sidenotes := resources.Get "scss/sidenotes.scss" | resources.ToCSS | resources.Minify }}
|
{{ $sidenotes := resources.Get "scss/sidenotes.scss" | resources.ToCSS | resources.Minify }}
|
||||||
{{ $code := resources.Get "scss/code.scss" | resources.ToCSS | resources.Minify }}
|
{{ $code := resources.Get "scss/code.scss" | resources.ToCSS | resources.Minify }}
|
||||||
@@ -17,8 +21,15 @@
|
|||||||
<link rel="stylesheet" href="{{ $style.Permalink }}" media="screen">
|
<link rel="stylesheet" href="{{ $style.Permalink }}" media="screen">
|
||||||
<link rel="stylesheet" href="{{ $sidenotes.Permalink }}" media="screen">
|
<link rel="stylesheet" href="{{ $sidenotes.Permalink }}" media="screen">
|
||||||
<link rel="stylesheet" href="{{ $code.Permalink }}" media="screen">
|
<link rel="stylesheet" href="{{ $code.Permalink }}" media="screen">
|
||||||
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/katex@0.11.1/dist/katex.min.css" integrity="sha384-zB1R0rpPzHqg7Kpt0Aljp8JPLqbXI3bhnPWROx27a9N0Ll6ZP/+DiW/UqRcLbRjq" crossorigin="anonymous" media="screen">
|
|
||||||
<link rel="icon" type="image/png" href="{{ $icon.Permalink }}">
|
<link rel="icon" type="image/png" href="{{ $icon.Permalink }}">
|
||||||
|
|
||||||
|
{{ if .Site.IsServer }}
|
||||||
|
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/katex@0.16.0/dist/katex.min.css" integrity="sha384-Xi8rHCmBmhbuyyhbI88391ZKP2dmfnOl4rT9ZfRI7mLTdk1wblIUnrIq35nqwEvC" crossorigin="anonymous">
|
||||||
|
<script defer src="https://cdn.jsdelivr.net/npm/katex@0.16.0/dist/katex.min.js" integrity="sha384-X/XCfMm41VSsqRNQgDerQczD69XqmjOOOwYQvr/uuC+j4OPoNhVgjdGFwhvN02Ja" crossorigin="anonymous"></script>
|
||||||
|
<script defer src="https://cdn.jsdelivr.net/npm/katex@0.16.0/dist/contrib/auto-render.min.js" integrity="sha384-+XBljXPPiv+OzfbB3cVmLHf4hdUFHlWNZN5spNQ7rmHTXpd7WvJum6fIACpNNfIR" crossorigin="anonymous"
|
||||||
|
onload="renderMathInElement(document.body);"></script>
|
||||||
|
{{ end }}
|
||||||
|
|
||||||
|
|
||||||
<title>{{ .Title }}</title>
|
<title>{{ .Title }}</title>
|
||||||
</head>
|
</head>
|
||||||
|
|||||||
@@ -1,15 +1,15 @@
|
|||||||
<div class="container">
|
<div class="container">
|
||||||
<h1>Daniel's Blog</h1>
|
<h1>{{ .Site.Title }}</h1>
|
||||||
</div>
|
</div>
|
||||||
<nav>
|
<nav>
|
||||||
<div class="container">
|
<div class="container">
|
||||||
<a href="/">Home</a>
|
<a href="{{ .Site.BaseURL }}">{{ i18n "home" }}</a>
|
||||||
<a href="/about">About</a>
|
<a href="{{ relref . "about" }}">{{ i18n "about" }}</a>
|
||||||
<a href="https://github.com/DanilaFe">GitHub</a>
|
<a href="https://github.com/DanilaFe">GitHub</a>
|
||||||
<a href="/Resume-Danila-Fedorin.pdf">Resume</a>
|
<a href="{{ .Site.BaseURL }}/Resume-Danila-Fedorin.pdf">{{ i18n "resume" }}</a>
|
||||||
<a href="/tags">Tags</a>
|
<a href="{{ .Site.BaseURL }}/tags">{{ i18n "tags" }}</a>
|
||||||
<a href="/favorites">Favorites</a>
|
<a href="{{ .Site.BaseURL }}/favorites">{{ i18n "favorites" }}</a>
|
||||||
<a href="/search">Search</a>
|
<a href="{{ .Site.BaseURL }}/search">{{ i18n "search" }}</a>
|
||||||
<a href="/blog">All Posts</a>
|
<a href="{{ relref . "blog" }}">{{ i18n "allPosts" }}</a>
|
||||||
</div>
|
</div>
|
||||||
</nav>
|
</nav>
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
<li>
|
<li>
|
||||||
<a href="{{ .Permalink }}" class="post-title">{{ if .Params.favorite }}{{ partial "icon.html" "star" }}{{ end }} {{ .Title }}</a>
|
<a href="{{ .Permalink }}" class="post-title">{{ if .Params.favorite }}{{ partial "icon.html" "star" }}{{ end }} {{ .Title }}</a>
|
||||||
<p class="post-wordcount">{{ .WordCount }} words, about {{ .ReadingTime }} minutes to read.</p>
|
<p class="post-wordcount">{{ i18n "nWords" .WordCount }}, {{ i18n "nMinutesToRead" .ReadingTime }}.</p>
|
||||||
<p class="post-preview">{{ .Summary }} . . .</p>
|
<p class="post-preview">{{ .Summary }} {{ if .Truncated }}. . .{{ end }}</p>
|
||||||
</li>
|
</li>
|
||||||
|
|||||||
3
layouts/partials/warning.html
Normal file
3
layouts/partials/warning.html
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
<div class="warning">
|
||||||
|
<em>{{ i18n "warning" }}</em> {{ . }}
|
||||||
|
</div>
|
||||||
3
layouts/shortcodes/block.html
Normal file
3
layouts/shortcodes/block.html
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
<div class="block">
|
||||||
|
{{ .Inner }}
|
||||||
|
</div>
|
||||||
3
layouts/shortcodes/dialog.html
Normal file
3
layouts/shortcodes/dialog.html
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
<p class="dialog">
|
||||||
|
{{ .Inner }}
|
||||||
|
</p>
|
||||||
1
layouts/shortcodes/foldtable.html
Normal file
1
layouts/shortcodes/foldtable.html
Normal file
@@ -0,0 +1 @@
|
|||||||
|
<span class="fold-table"></span>
|
||||||
@@ -1,3 +1,3 @@
|
|||||||
$$
|
$$
|
||||||
{{ .Inner }}
|
{{ htmlEscape .Inner }}
|
||||||
$$
|
$$
|
||||||
|
|||||||
10
layouts/shortcodes/message.html
Normal file
10
layouts/shortcodes/message.html
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
<span class="message side-{{ .Get 0 }}">
|
||||||
|
<span class="message-sender">
|
||||||
|
{{ if (eq (.Get 1) "reader") }}
|
||||||
|
{{ partial "icon.html" "moon" }}
|
||||||
|
{{ else }}
|
||||||
|
{{ partial "icon.html" "sun" }}
|
||||||
|
{{ end }}
|
||||||
|
</span>
|
||||||
|
<span class="message-text">{{ .Inner }}</span>
|
||||||
|
</span>
|
||||||
@@ -1,11 +0,0 @@
|
|||||||
{{ .Page.Scratch.Add "numbernote-id" 1 }}
|
|
||||||
{{ $id := .Page.Scratch.Get "numbernote-id" }}
|
|
||||||
<span class="sidenote">
|
|
||||||
<label class="sidenote-label" for="numbernote-{{ $id }}">({{ $id }})</label>
|
|
||||||
<input class="sidenote-checkbox" type="checkbox" id="numbernote-{{ $id }}"></input>
|
|
||||||
<span class="sidenote-content sidenote-{{ .Get 0 }}">
|
|
||||||
<span class="sidenote-delimiter">[note:</span>
|
|
||||||
{{ .Inner }}
|
|
||||||
<span class="sidenote-delimiter">]</span>
|
|
||||||
</span>
|
|
||||||
</span>
|
|
||||||
@@ -1,2 +1,2 @@
|
|||||||
{{ partial "geturl.html" (dict "scratch" .Scratch "path" (.Get 0) "submoduleLinks" .Site.Params.submoduleLinks) }}
|
{{ partial "geturl.html" (dict "scratch" .Scratch "path" (.Get 0) "submoduleLinks" .Site.Params.submoduleLinks) }}
|
||||||
{{ partial "group.html" (dict "url" (.Scratch.Get "bestUrl") "path" (.Get 0) "comment" ", entire file" "content" (safeHTML (printf "<pre><code>%s</code></pre>" (readFile (printf "code/%s" (.Get 0)))))) }}
|
{{ partial "group.html" (dict "url" (.Scratch.Get "bestUrl") "path" (.Get 0) "comment" ", entire file" "content" (safeHTML (printf "<pre><code>%s</code></pre>" (htmlEscape (readFile (printf "code/%s" (.Get 0))))))) }}
|
||||||
|
|||||||
@@ -1,8 +1,12 @@
|
|||||||
<span class="sidenote">
|
<span class="sidenote">
|
||||||
<label class="sidenote-label" for="{{ .Get 1 }}">{{ .Get 2 }}</label>
|
<label class="sidenote-label" for="{{ .Get 1 }}">{{ .Get 2 }}</label>
|
||||||
<input class="sidenote-checkbox" type="checkbox" id="{{ .Get 1 }}"></input>
|
<input class="sidenote-checkbox" type="checkbox" id="{{ .Get 1 }}"></input>
|
||||||
|
{{ if $offset := .Get 3 }}
|
||||||
|
<span class="sidenote-content sidenote-{{ .Get 0 }}" style="margin-top: {{ $offset }}rem">
|
||||||
|
{{ else }}
|
||||||
<span class="sidenote-content sidenote-{{ .Get 0 }}">
|
<span class="sidenote-content sidenote-{{ .Get 0 }}">
|
||||||
<span class="sidenote-delimiter">[note:</span>
|
{{ end }}
|
||||||
|
<span class="sidenote-delimiter">[{{ i18n "note" }}:</span>
|
||||||
{{ .Inner }}
|
{{ .Inner }}
|
||||||
<span class="sidenote-delimiter">]</span>
|
<span class="sidenote-delimiter">]</span>
|
||||||
</span>
|
</span>
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
{{ define "main" }}
|
{{ define "main" }}
|
||||||
<h2>Tagged "{{ .Title }}"</h2>
|
<h2>{{ i18n "tagged" .Title }}"</h2>
|
||||||
|
|
||||||
<ul class="post-list">
|
<ul class="post-list">
|
||||||
{{ range .Pages.ByDate.Reverse }}
|
{{ range .Pages.ByDate.Reverse }}
|
||||||
|
|||||||
Reference in New Issue
Block a user