13 Commits

Author SHA1 Message Date
732d32b97b Remove Jost 2023-01-22 20:42:21 -06:00
4d1a0d6be2 Jost 2023-01-22 20:01:33 -06:00
ac580e1995 WIP 2023-01-22 18:57:52 -06:00
cee1cd3a82 WIP 2023-01-22 18:57:52 -06:00
3fae019148 Finish support for list page subtitle
Fixes #27 (as long as I didn't miss anything)
2023-01-22 16:43:09 -06:00
8ef1e3840a Change color when hovering over share buttons 2023-01-22 16:31:08 -06:00
629b3758b9 Change print button to an <a> to match the rest of the buttons
Also makes it have pointer cursor
2023-01-22 16:28:24 -06:00
9412906b4f Make the left bar of blockquote lined up with rest of text 2023-01-22 16:26:43 -06:00
f8cfad647f Fix contrast of code block Copy button 2023-01-22 16:23:03 -06:00
b200623dca Fix keyboard accessibility of code block copy button 2023-01-22 16:22:51 -06:00
80f5994d96 Improve code block copy text
- Use JS to get it directly from the code block instead of needing a
  separate `pre.code-raw` to get it from. That makes it possible to:
- bashsession: Don't copy prompt or command output
2023-01-22 00:09:34 -06:00
342710a755 Reduce gap between elements in subsections list 2023-01-21 23:34:34 -06:00
8eb642dbc8 Remove <hr> separator before footer 2023-01-21 23:32:32 -06:00
16 changed files with 163 additions and 114 deletions

View File

@ -46,6 +46,7 @@
--text-gray-1: #919191; /* lch(60, 0, X) */ --text-gray-1: #919191; /* lch(60, 0, X) */
--link-0: #3a94fb; /* lch(60, 60, 270) */ --link-0: #3a94fb; /* lch(60, 60, 270) */
--link-1: #4ea1ff; /* lch(65, 60, 270) -- out of sRGB */
--figure-border: #1f5593; /* lch(35, 40, 270) */ --figure-border: #1f5593; /* lch(35, 40, 270) */
@ -118,17 +119,31 @@
/* Fonts */ /* Fonts */
@font-face { @font-face {
/*font-family: Jost;*/ font-family: "Open Sans";
font-family: sans-serif;
font-display: swap; font-display: swap;
font-style: normal; font-style: normal;
src: url("/font/jost/Jost-VariableFont_wght.woff2") format("woff2"); src: url("/font/opensans/OpenSans-VariableFont_wdth,wght-9f637b868d10819aa0085e6cf7f70953411c8905c4055c069adbe8acc708feef.woff2") format("woff2");
} }
@font-face { @font-face {
/*font-family: JetBrainsMono;*/ font-family: JetBrainsMono;
font-family: monospace;
font-display: swap; font-display: swap;
src: url("/font/jetbrainsmono/JetBrainsMono_wght.woff2") format("woff2"); src: url("/font/jetbrainsmono/JetBrainsMono_wght-e190ee6595a3b9bd25278613a6f5d3766ee1a708f300ed44fa63dbe84051498f.woff2") format("woff2");
}
:root {
--font-sans: "Open Sans", "Noto Sans", sans-serif;
--font-mono: JetBrainsMono, monospace;
}
html {
font-family: var(--font-sans);
}
pre, code, kbd, samp, textarea {
font-family: var(--font-mono);
font-size: 0.75em;
}
pre > code {
/* otherwise it ends up being 0.75^2 em */
font-size: unset;
} }
@ -289,7 +304,7 @@
.sections { .sections {
display: flex; display: flex;
flex-direction: column; flex-direction: column;
gap: 40px; gap: 10px;
} }
.section { .section {
@ -440,16 +455,15 @@
justify-content: center; justify-content: center;
} }
.share-buttons button,
.share-buttons a { .share-buttons a {
background-color: var(--background-2); background-color: var(--background-2);
color: var(--text-2); color: var(--text-2);
padding: 4px; padding: 4px;
border-radius: 8px; border-radius: 8px;
} }
.share-buttons a:hover {
.share-buttons button { background-color: var(--background-3);
border: none; color: var(--text-3);
} }
.share-buttons svg { .share-buttons svg {
@ -587,9 +601,6 @@ html {
body { body {
background-color: var(--background-0); background-color: var(--background-0);
color: var(--text-0); color: var(--text-0);
/*font-family: "Jost", "Open Sans", "Noto Sans", sans-serif;*/
font-family: sans-serif;
font-size: 16px;
margin: 20px; margin: 20px;
max-width: 720px; max-width: 720px;
overflow-wrap: break-word; overflow-wrap: break-word;
@ -602,6 +613,7 @@ body {
} }
footer { footer {
margin-top: 20px;
text-align: center; text-align: center;
} }
@ -649,6 +661,7 @@ a:hover {
blockquote { blockquote {
border-left: 5px solid var(--background-2); border-left: 5px solid var(--background-2);
padding-left: 15px; padding-left: 15px;
margin-left: 0;
} }
hr { hr {
@ -722,6 +735,9 @@ table.markdown {
margin: auto 0; margin: auto 0;
} }
/* TODO: make the code copy button prettier */ /* TODO: make the code copy button prettier */
.code-block > .code-header > .code-copy-button {
color: var(--link-1);
}
.code-block > .code-header > .code-copy-button:hover { .code-block > .code-header > .code-copy-button:hover {
cursor: pointer; cursor: pointer;
} }
@ -757,11 +773,6 @@ table.markdown {
} }
.code-block > .code-header > .code-type, .code-block > .code-header > .code-type,
pre,
code {
/*font-family: JetBrainsMono;*/
font-size: 12px;
}
code { code {
border-radius: 5px; border-radius: 5px;
} }

View File

@ -12,14 +12,19 @@ window.onscroll = function() {
window.onload = () => { window.onload = () => {
document.querySelectorAll(".code-block").forEach(codeBlock => { document.querySelectorAll(".code-block").forEach(codeBlock => {
const button = codeBlock.querySelector(".code-header > .code-copy-button"); const button = codeBlock.querySelector(".code-header > .code-copy-button");
// TODO: maybe get this from HTMLElement.innerText on the actual code block content element
// but it's hard to select it; `data-lang` attribute might not always be there (if lang is unset) // lang will not be unset because we default it to text
const rawCode = codeBlock.querySelector("pre.code-raw").innerText; // clone it so it doesn't change the actual DOM element
const codeElem = codeBlock.querySelector("code[data-lang]").cloneNode(true);
// bashsession: remove command output lines
codeElem.querySelectorAll(".go").forEach(e => e.parentNode.removeChild(e));
// bashsession: remove prompt symbol
codeElem.querySelectorAll(".gp").forEach(e => e.parentNode.removeChild(e));
const rawCode = codeElem.innerText;
const originalCopyText = button.innerHTML; const originalCopyText = button.innerHTML;
button.onclick = event => { button.onclick = event => {
navigator.clipboard.writeText(rawCode); navigator.clipboard.writeText(rawCode);
console.log(rawCode);
// TODO: maybe we could add a fancier indicator, like a flash or something // TODO: maybe we could add a fancier indicator, like a flash or something
event.target.innerHTML = "Copied!"; event.target.innerHTML = "Copied!";
setTimeout(() => { setTimeout(() => {

View File

@ -1,13 +1,15 @@
{{ $type := "text" }}
{{ with .Type }}
{{ $type = . }}
{{ end }}
<div class="code-block"> <div class="code-block">
<div class="code-header"> <div class="code-header">
<span class="code-type">{{ .Type }}</span> <pre class="code-type">{{ $type }}</pre>
<a class="code-copy-button"> <a href="javascript:void(0)" class="code-copy-button">
{{ i18n "copy_to_clipboard" }} {{ i18n "copy_to_clipboard" }}
</a> </a>
</div> </div>
{{/* a div.highlight is already created by highlight function */}}
{{ highlight .Inner .Type }}
{{/* for copy to clipboard */}} {{/* a div.highlight is already created by highlight function */}}
<pre class="code-raw" style="display: none;">{{ .Inner }}</pre> {{ highlight .Inner $type }}
</div> </div>

View File

@ -21,7 +21,6 @@
</main> </main>
{{ if or .Site.Copyright .Site.Params.footer }} {{ if or .Site.Copyright .Site.Params.footer }}
<hr>
<footer> <footer>
<small> <small>
{{ with .Site.Copyright }} {{ with .Site.Copyright }}

View File

@ -5,6 +5,10 @@
{{ partial "rss-link.html" . }} {{ partial "rss-link.html" . }}
</h1> </h1>
{{ with .Content }}
{{ . }}
{{ end }}
<div class="list-page-content"> <div class="list-page-content">
{{ with .Sections }} {{ with .Sections }}
<div class="sections"> <div class="sections">

View File

@ -4,6 +4,10 @@
{{ .Title | markdownify }} {{ .Title | markdownify }}
</h1> </h1>
{{ with .Content }}
{{ . }}
{{ end }}
<div class="page-list"> <div class="page-list">
{{ with .Paginator.Pages }} {{ with .Paginator.Pages }}
{{ range . }} {{ range . }}

View File

@ -54,9 +54,10 @@
*/}} */}}
{{ if .Site.Params.shareButtons.print }} {{ if .Site.Params.shareButtons.print }}
<button class="print-share" <a class="print-share"
href="javascript:void(0)"
onclick="window.print(); share_event('Print');"> onclick="window.print(); share_event('Print');">
{{- partial "icon.html" "printer" -}} {{- partial "icon.html" "printer" -}}
</button> </a>
{{ end }} {{ end }}
</div> </div>

View File

@ -4,6 +4,10 @@
{{ .Title | markdownify }} {{ .Title | markdownify }}
</h1> </h1>
{{ with .Content }}
{{ . }}
{{ end }}
<div class="series-taxonomy-list"> <div class="series-taxonomy-list">
{{ with .Pages }} {{ with .Pages }}
{{ range . }} {{ range . }}

View File

@ -1,81 +0,0 @@
Jost Variable Font
==================
This download contains Jost as both variable fonts and static fonts.
Jost is a variable font with this axis:
wght
This means all the styles are contained in these files:
Jost-VariableFont_wght.ttf
Jost-Italic-VariableFont_wght.ttf
If your app fully supports variable fonts, you can now pick intermediate styles
that arent available as static fonts. Not all apps support variable fonts, and
in those cases you can use the static font files for Jost:
static/Jost-Thin.ttf
static/Jost-ExtraLight.ttf
static/Jost-Light.ttf
static/Jost-Regular.ttf
static/Jost-Medium.ttf
static/Jost-SemiBold.ttf
static/Jost-Bold.ttf
static/Jost-ExtraBold.ttf
static/Jost-Black.ttf
static/Jost-ThinItalic.ttf
static/Jost-ExtraLightItalic.ttf
static/Jost-LightItalic.ttf
static/Jost-Italic.ttf
static/Jost-MediumItalic.ttf
static/Jost-SemiBoldItalic.ttf
static/Jost-BoldItalic.ttf
static/Jost-ExtraBoldItalic.ttf
static/Jost-BlackItalic.ttf
Get started
-----------
1. Install the font files you want to use
2. Use your app's font picker to view the font family and all the
available styles
Learn more about variable fonts
-------------------------------
https://developers.google.com/web/fundamentals/design-and-ux/typography/variable-fonts
https://variablefonts.typenetwork.com
https://medium.com/variable-fonts
In desktop apps
https://theblog.adobe.com/can-variable-fonts-illustrator-cc
https://helpx.adobe.com/nz/photoshop/using/fonts.html#variable_fonts
Online
https://developers.google.com/fonts/docs/getting_started
https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Fonts/Variable_Fonts_Guide
https://developer.microsoft.com/en-us/microsoft-edge/testdrive/demos/variable-fonts
Installing fonts
MacOS: https://support.apple.com/en-us/HT201749
Linux: https://www.google.com/search?q=how+to+install+a+font+on+gnu%2Blinux
Windows: https://support.microsoft.com/en-us/help/314960/how-to-install-or-remove-a-font-in-windows
Android Apps
https://developers.google.com/fonts/docs/android
https://developer.android.com/guide/topics/ui/look-and-feel/downloadable-fonts
License
-------
Please read the full license text (OFL.txt) to understand the permissions,
restrictions and requirements for usage, redistribution, and modification.
You can use them in your products & projects print or digital,
commercial or otherwise.
This isn't legal advice, please consider consulting a lawyer and see the full
license for all details.

View File

@ -1,4 +1,4 @@
Copyright 2020 The Jost Project Authors (https://github.com/indestructible-type) Copyright 2020 The Open Sans Project Authors (https://github.com/googlefonts/opensans)
This Font Software is licensed under the SIL Open Font License, Version 1.1. This Font Software is licensed under the SIL Open Font License, Version 1.1.
This license is copied below, and is also available with a FAQ at: This license is copied below, and is also available with a FAQ at:

View File

@ -0,0 +1,100 @@
Open Sans Variable Font
=======================
This download contains Open Sans as both variable fonts and static fonts.
Open Sans is a variable font with these axes:
wdth
wght
This means all the styles are contained in these files:
OpenSans-VariableFont_wdth,wght.ttf
OpenSans-Italic-VariableFont_wdth,wght.ttf
If your app fully supports variable fonts, you can now pick intermediate styles
that arent available as static fonts. Not all apps support variable fonts, and
in those cases you can use the static font files for Open Sans:
static/OpenSans_Condensed/OpenSans_Condensed-Light.ttf
static/OpenSans_Condensed/OpenSans_Condensed-Regular.ttf
static/OpenSans_Condensed/OpenSans_Condensed-Medium.ttf
static/OpenSans_Condensed/OpenSans_Condensed-SemiBold.ttf
static/OpenSans_Condensed/OpenSans_Condensed-Bold.ttf
static/OpenSans_Condensed/OpenSans_Condensed-ExtraBold.ttf
static/OpenSans_SemiCondensed/OpenSans_SemiCondensed-Light.ttf
static/OpenSans_SemiCondensed/OpenSans_SemiCondensed-Regular.ttf
static/OpenSans_SemiCondensed/OpenSans_SemiCondensed-Medium.ttf
static/OpenSans_SemiCondensed/OpenSans_SemiCondensed-SemiBold.ttf
static/OpenSans_SemiCondensed/OpenSans_SemiCondensed-Bold.ttf
static/OpenSans_SemiCondensed/OpenSans_SemiCondensed-ExtraBold.ttf
static/OpenSans/OpenSans-Light.ttf
static/OpenSans/OpenSans-Regular.ttf
static/OpenSans/OpenSans-Medium.ttf
static/OpenSans/OpenSans-SemiBold.ttf
static/OpenSans/OpenSans-Bold.ttf
static/OpenSans/OpenSans-ExtraBold.ttf
static/OpenSans_Condensed/OpenSans_Condensed-LightItalic.ttf
static/OpenSans_Condensed/OpenSans_Condensed-Italic.ttf
static/OpenSans_Condensed/OpenSans_Condensed-MediumItalic.ttf
static/OpenSans_Condensed/OpenSans_Condensed-SemiBoldItalic.ttf
static/OpenSans_Condensed/OpenSans_Condensed-BoldItalic.ttf
static/OpenSans_Condensed/OpenSans_Condensed-ExtraBoldItalic.ttf
static/OpenSans_SemiCondensed/OpenSans_SemiCondensed-LightItalic.ttf
static/OpenSans_SemiCondensed/OpenSans_SemiCondensed-Italic.ttf
static/OpenSans_SemiCondensed/OpenSans_SemiCondensed-MediumItalic.ttf
static/OpenSans_SemiCondensed/OpenSans_SemiCondensed-SemiBoldItalic.ttf
static/OpenSans_SemiCondensed/OpenSans_SemiCondensed-BoldItalic.ttf
static/OpenSans_SemiCondensed/OpenSans_SemiCondensed-ExtraBoldItalic.ttf
static/OpenSans/OpenSans-LightItalic.ttf
static/OpenSans/OpenSans-Italic.ttf
static/OpenSans/OpenSans-MediumItalic.ttf
static/OpenSans/OpenSans-SemiBoldItalic.ttf
static/OpenSans/OpenSans-BoldItalic.ttf
static/OpenSans/OpenSans-ExtraBoldItalic.ttf
Get started
-----------
1. Install the font files you want to use
2. Use your app's font picker to view the font family and all the
available styles
Learn more about variable fonts
-------------------------------
https://developers.google.com/web/fundamentals/design-and-ux/typography/variable-fonts
https://variablefonts.typenetwork.com
https://medium.com/variable-fonts
In desktop apps
https://theblog.adobe.com/can-variable-fonts-illustrator-cc
https://helpx.adobe.com/nz/photoshop/using/fonts.html#variable_fonts
Online
https://developers.google.com/fonts/docs/getting_started
https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Fonts/Variable_Fonts_Guide
https://developer.microsoft.com/en-us/microsoft-edge/testdrive/demos/variable-fonts
Installing fonts
MacOS: https://support.apple.com/en-us/HT201749
Linux: https://www.google.com/search?q=how+to+install+a+font+on+gnu%2Blinux
Windows: https://support.microsoft.com/en-us/help/314960/how-to-install-or-remove-a-font-in-windows
Android Apps
https://developers.google.com/fonts/docs/android
https://developer.android.com/guide/topics/ui/look-and-feel/downloadable-fonts
License
-------
Please read the full license text (OFL.txt) to understand the permissions,
restrictions and requirements for usage, redistribution, and modification.
You can use them in your products & projects print or digital,
commercial or otherwise.
This isn't legal advice, please consider consulting a lawyer and see the full
license for all details.