aboutsummaryrefslogtreecommitdiff
path: root/templates/base.html
diff options
context:
space:
mode:
Diffstat (limited to 'templates/base.html')
-rw-r--r--templates/base.html171
1 files changed, 63 insertions, 108 deletions
diff --git a/templates/base.html b/templates/base.html
index d449492..ccbf4f4 100644
--- a/templates/base.html
+++ b/templates/base.html
@@ -11,150 +11,105 @@
11 <link href="data:image/x-icon;base64,AAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAL69vf8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv76+/8LBwQkAAAAAAAAAAAAAAAC+vb3/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAL+9vf/Bv78JAAAAAAAAAAAAAAAAu7q6/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC7ubr/vr29CAAAAAAAAAAAy8nJAZ6foP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAnqGj/6GipAoAAAAAHLjU/xcXHf/BwsL/I8XY/yPK3v8XGiD/IbjL/yPF2f8XGiD/Fxkf/yLF2f8gnK3/Fxog/62ztv8fwNf/FRcd/x271v8mz93/GRsi/xkXHf8p097/GiIp/xobIv8p0t3/KdPe/xocIv8fYmr/KNPe/xoZH/8aHCL/J87c/xy81/8VFxz/IsPZ/8zS0/8XGiD/Ir/R/yPH2/8XGiD/Fxkf/yPH2/8dd4T/GBog/yPJ3f8jyNr/uru9/xcUGv8cudb/EhITDKi5vRKlvMP/RUpOERwcHRAdOj4QHTk8EBwdHRAdNTgQHTo/EBwcHRAcHB0QSGduEKW4vf+koqQfHzg+EBqz0ewSFRv7EyMr/xq51vsTERb7ExUb+xq41fsau9j7ExUb+xiPp/sZudb7ExUb+xMVG/sZuNX/GKvI/BIUGfMdvdn/IrfL/xcaIP8n1eb/J9Dh/xkcIf8ZGR7/J8/f/xxCSv8ZGyH/J9Dg/ybQ4P8ZHCL/FSQs/yPK3/8UExj/GE1b/ybS5P8ZGB7/Ghwj/ynW5P8p2Ob/Ghwi/yWrtv8p1eH/Ghwi/xocIv8p1uT/J8XT/xkcIv8m1un/Hb7d/xUYH/8hzOr/HtHu/xcaIf8XGB//I8vi/xgxOv8XGSD/I8rg/yPK4P8XGiD/GUFL/yPP6f8SERj/Fhkh/x3A4f8AAAAAJ2f9/ydr//8mZPH/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAlYu38J2v//ydo/f8AAAAAAAAAAAd8/fkFqf//Iob8sAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMY39awWr//8FfP3/AAAAAAAAAAAFm/7/SfD//wR+/f8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOB/f9B7v//BaX+/wAAAAAAAAAAQ878SAyZ/v9n1v4KAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADu9v8DDJb+/z3N/XgAAAAA3/sAAN/7AADf+wAA3/sAAAAAAAAAAAAAAAAAAN/7AAAAAAAAAAAAAAAAAAAAAAAAj/EAAI/5AACP8QAA3/sAAA==" rel="icon" type="image/x-icon" /> 11 <link href="data:image/x-icon;base64,AAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAL69vf8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv76+/8LBwQkAAAAAAAAAAAAAAAC+vb3/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAL+9vf/Bv78JAAAAAAAAAAAAAAAAu7q6/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC7ubr/vr29CAAAAAAAAAAAy8nJAZ6foP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAnqGj/6GipAoAAAAAHLjU/xcXHf/BwsL/I8XY/yPK3v8XGiD/IbjL/yPF2f8XGiD/Fxkf/yLF2f8gnK3/Fxog/62ztv8fwNf/FRcd/x271v8mz93/GRsi/xkXHf8p097/GiIp/xobIv8p0t3/KdPe/xocIv8fYmr/KNPe/xoZH/8aHCL/J87c/xy81/8VFxz/IsPZ/8zS0/8XGiD/Ir/R/yPH2/8XGiD/Fxkf/yPH2/8dd4T/GBog/yPJ3f8jyNr/uru9/xcUGv8cudb/EhITDKi5vRKlvMP/RUpOERwcHRAdOj4QHTk8EBwdHRAdNTgQHTo/EBwcHRAcHB0QSGduEKW4vf+koqQfHzg+EBqz0ewSFRv7EyMr/xq51vsTERb7ExUb+xq41fsau9j7ExUb+xiPp/sZudb7ExUb+xMVG/sZuNX/GKvI/BIUGfMdvdn/IrfL/xcaIP8n1eb/J9Dh/xkcIf8ZGR7/J8/f/xxCSv8ZGyH/J9Dg/ybQ4P8ZHCL/FSQs/yPK3/8UExj/GE1b/ybS5P8ZGB7/Ghwj/ynW5P8p2Ob/Ghwi/yWrtv8p1eH/Ghwi/xocIv8p1uT/J8XT/xkcIv8m1un/Hb7d/xUYH/8hzOr/HtHu/xcaIf8XGB//I8vi/xgxOv8XGSD/I8rg/yPK4P8XGiD/GUFL/yPP6f8SERj/Fhkh/x3A4f8AAAAAJ2f9/ydr//8mZPH/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAlYu38J2v//ydo/f8AAAAAAAAAAAd8/fkFqf//Iob8sAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMY39awWr//8FfP3/AAAAAAAAAAAFm/7/SfD//wR+/f8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOB/f9B7v//BaX+/wAAAAAAAAAAQ878SAyZ/v9n1v4KAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADu9v8DDJb+/z3N/XgAAAAA3/sAAN/7AADf+wAA3/sAAAAAAAAAAAAAAAAAAN/7AAAAAAAAAAAAAAAAAAAAAAAAj/EAAI/5AACP8QAA3/sAAA==" rel="icon" type="image/x-icon" />
12 12
13 <style> 13 <style>
14 * { box-sizing: border-box; }
15
14 :root { 16 :root {
15 --base-background: white; 17 --border-color: gainsboro;
16 --base-color: black;
17 --link-color: blue;
18 --first-child-width: 150px;
19 --primary-color: gainsboro;
20 --secondary-color: black;
21 --tertiary-color: #eee;
22 --code-color: #f9f9f9;
23 --border-width: 1px;
24 --header-color: black;
25 --header-border-width: 2px;
26 --content-width: 840px; 18 --content-width: 840px;
19 --primary-color: blue;
27 } 20 }
28 21
29 * { box-sizing: border-box; } 22 ::selection {
23 background: var(--primary-color);
24 color: #ffffff;
25 }
30 26
31 html { scroll-padding-top: 1.5em; } 27 body { font-family: sans-serif; max-width: var(--content-width); margin: 0 auto; line-height: 160%; }
32 body { font-family: sans-serif; padding: 0 1em; line-height: 160%; display: flex; flex-direction: column; gap: 4em; background: var(--base-background); color: var(--base-color); } 28
33 table { width: 100%; border: var(--border-width) solid var(--primary-color); border-collapse: collapse; } 29 header { margin-block-start: 1em; margin-block-end: 4em; }
34 table thead { background: var(--primary-color); border: var(--border-width) solid var(--secondary-color); color: var(--header-color); } 30 header nav { display: flex; gap: 1em; align-items: center; padding: 0.5em 0; border-bottom: 2px solid black; }
35 table td, table th { text-align: left; padding: 0.3em 0.5em; } 31 header nav a { color: black; }
36 table tbody tr { border-bottom: var(--border-width) solid var(--primary-color); vertical-align: middle; } 32 header nav span.title { font-weight: bold; }
37 table tr td:first-child { width: var(--first-child-width); }
38 table.normal tr td:first-child { width: auto; }
39 table td.tags { display: flex; gap: 0.5em; justify-content: flex-end; align-items: center; }
40 table td.tags mark { padding: 0 0.4em; background: var(--primary-color); font-size: small; }
41
42 a { color: var(--link-color); text-decoration: none; }
43 a:hover { text-decoration: underline; }
44 33
45 header { border-bottom: var(--header-border-width) solid var(--secondary-color); padding: 0.5em 0; } 34 section { margin-block-start: 3em; margin-block-end: 3em; }
46 header div { min-width: var(--content-width); max-width: var(--content-width); display: flex; }
47 header div nav:first-child { display: flex; width: var(--first-child-width); }
48 header div nav:nth-child(2) { display: flex; gap: 1.5em; }
49 header div nav:nth-child(2) a { color: var(--base-color); }
50 header div nav:last-child { text-align: right; margin-left: auto; display: flex; }
51 35
52 footer { color: gray; } 36 footer { font-size: small; }
53 footer div { min-width: var(--content-width); max-width: var(--content-width); } 37
54 footer a { color: gray; text-decoration: underline; } 38 ul.post-list { padding: 0em; }
39 ul.post-list li { display: flex; gap: 1em; align-items: center; padding: 0.25em 0; }
40 ul.post-list li time { min-width: 50px; }
41
42 a { color: var(--primary-color); text-decoration: none; }
43 a:hover { text-decoration: underline; }
55 44
56 main { min-width: var(--content-width); max-width: var(--content-width); display: flex; gap: 2em; flex-direction: column; }
57 h1, h2, h3, h4 { font-size: initial; } 45 h1, h2, h3, h4 { font-size: initial; }
58 article h2, article h3, article h4 { margin-block-start: 2.5em; } 46 article h2, article h3, article h4 { margin-block-start: 2.5em; }
59 article h1 { font-size: 130%; line-height: 110%; } 47 article h1 { font-size: 130%; line-height: 110%; }
48 article code { background: yellow; padding: 0 0.2em; }
49 article pre { border: 1px solid var(--border-color); padding: 1em; line-height: 140%; text-wrap: nowrap; overflow-x: auto; }
50 article pre > code { background: initial; }
60 51
61 img, video, audio { max-width: 100%; } 52 img, video, audio { max-width: 100%; }
62 figure { display: flex; justify-content: center; margin: 2.5em 0; } 53 figure { display: flex; justify-content: center; margin: 1.5em 0; }
63 img, video { border: var(--border-width) solid var(--primary-color); padding: 0.5em; }
64 img.no-border, video.no-border, img[src$="?no-border"] { border: 0; padding: 0; }
65 54
66 pre { background: var(--code-color)!important; border: var(--border-width) solid var(--primary-color); text-wrap: wrap; padding: 1.0em; line-height: 170%; text-wrap: nowrap; overflow-x: auto; } 55 table { width: 100%; border: 1px solid var(--border-color); border-collapse: collapse; }
67 code { background: var(--code-color); padding: 0 0.2em; } 56 table thead { background: var(--border-color); border: 1px solid black; }
68 pre code { padding: 0; } 57 table td, table th { text-align: left; padding: 0.4em 0.6em; }
58 table tbody tr { border-bottom: 1px solid var(--border-color); }
69 59
70 .capitalize { text-transform: capitalize; } 60 .tags mark { font-family: monospace; padding: 0 0.2em; }
71 61 .static-prefix { width: 7em; }
72 .text-left { text-align: left; }
73 .text-center { text-align: center; }
74 .text-right { text-align: right; }
75 62
76 .content-center { margin: 0 auto; } 63 .multicolumn-list { column-count: 3; column-gap: 3em; }
64 .multicolumn-list a { display: block; margin-bottom: 0.5rem; break-inside: avoid; }
77 65
78 #content_align_button { display: none; } 66 .project-release table tr td:last-child { text-align: right; }
67 .project-release table tr th:last-child { text-align: right; }
68 .project-list ul { column-count: 3; column-gap: 3em; }
69 .github-link p { display: flex; align-items: center; gap: 0.3em; }
70 .github-link p img { border: 0; padding: 0; height: 15px; }
79 71
80 /* Hotfixes for strange behaviour. */ 72 /* Hotfixes for strange behaviour. */
81 article iframe { margin: 0!important; } 73 article iframe { margin: 0!important; }
82 pre code span { display: initial !important; } 74 pre code span { display: initial !important; }
83 75
76 @media only screen and (max-width: 860px) {
77 body { margin: auto; padding: 1em; }
78 ul.post-list li time { display: none; }
79 .multicolumn-list { column-count: 2; }
80 .project-list ul { column-count: 2; }
81 .hide-on-mobile { display: none; }
82 }
83
84 @media print { 84 @media print {
85 header, footer { display: none; } 85 header, footer { display: none; }
86 } 86 }
87 </style> 87 </style>
88 <script defer src="https://app.tinyanalytics.io/pixel/isfRNEahfHiS2Ttp"></script> 88
89 <!-- <script defer src="https://app.tinyanalytics.io/pixel/isfRNEahfHiS2Ttp"></script> -->
89 </head> 90 </head>
90 91
91 <body> 92 <body>
92 <header> 93 <header>
93 <div class="content"> 94 <nav>
94 <nav> 95 <span class="title hide-on-mobile static-prefix">Navigation</span>
95 <span><strong>Navigation</strong></span> 96 <a href="/">Home</a>
96 </nav> 97 <a href="/projects.html">Projects</a>
97 <nav> 98 <a href="https://github.com/mitjafelicijan/probe" target="_blank">Probe</a>
98 <span><a href="/">Home</a></span> 99 <a href="https://github.com/mitjafelicijan" target="_blank">Code</a>
99 <span><a href="/projects.html">Projects</a></span> 100 <a href="https://github.com/mitjafelicijan/dotfiles" target="_blank" class="hide-on-mobile">Dotfiles</a>
100 <span><a href="https://github.com/mitjafelicijan/probe" target="_blank">Probe</a></span> 101 <a href="/curriculum-vitae.html">CV</a>
101 <span><a href="https://github.com/mitjafelicijan" target="_blank">Code</a></span> 102 <a href="/feed.xml" class="hide-on-mobile">RSS</a>
102 <span><a href="https://github.com/mitjafelicijan/dotfiles" target="_blank">Dotfiles</a></span> 103 </nav>
103 <span><a href="/curriculum-vitae.html">CV</a></span>
104 <span><a href="/feed.xml">RSS</a></span>
105 </nav>
106 <nav>
107 <button id="content_align_button">center</button>
108 <script>content_align_button.style.display = "block";</script>
109 </nav>
110 </div>
111 </header> 104 </header>
112 105
113 <main class="content"> 106 <main>
114 {{ block "content" . }}{{ end }} 107 {{ block "content" . }}{{ end }}
115 </main> 108 </main>
116 109
117 <footer> 110 <footer>
118 <div class="content"> 111 <p>You can write me an email at <a href="mailto:mitja.felicijan@gmail.com">mitja.felicijan@gmail.com</a> or catch up with me <a href="https://telegram.me/mitjafelicijan" target="_blank">on Telegram</a>.</p>
119 <p>You can write me an email at <a href="mailto:mitja.felicijan@gmail.com">mitja.felicijan@gmail.com</a> or catch up with me <a href="https://telegram.me/mitjafelicijan" target="_blank">on Telegram</a>.</p> 112 <p>This page's is also available as <a href="/feed.xml" target="_blank">RSS feed</a>. Page was built with <a href="https://github.com/mitjafelicijan/jbmafp" target="_blank">jbmafp</a>.</p>
120 <p>This page's is also available as <a href="/feed.xml" target="_blank">RSS feed</a>. Page was built with <a href="https://github.com/mitjafelicijan/jbmafp" target="_blank">jbmafp</a>.</p>
121 </div>
122 </footer> 113 </footer>
123
124 <script>
125 function align_content_left() {
126 document.querySelectorAll(".content").forEach(el => {
127 el.classList.remove("content-center");
128 });
129 content_align_button.innerText = "center";
130 localStorage.setItem("content-align", "left");
131 }
132
133 function align_content_center() {
134 document.querySelectorAll(".content").forEach(el => {
135 el.classList.add("content-center");
136 });
137 content_align_button.innerText = "left";
138 localStorage.setItem("content-align", "center");
139 }
140
141 {
142 let initial_align = localStorage.getItem("content-align");
143 if (!initial_align) {
144 localStorage.setItem("content-align", "left");
145 initial_align = localStorage.getItem("content-align");
146 }
147
148 if (initial_align == "center") {
149 align_content_center();
150 }
151 }
152
153 content_align_button.onclick = function(e) {
154 const align = localStorage.getItem("content-align");
155 if (align == "center") { align_content_left(); }
156 if (align == "left") { align_content_center(); }
157 }
158 </script>
159 </body> 114 </body>
160</html> 115</html>