Compare commits

8 Commits

Author SHA1 Message Date
yuriy 47d0c3518d fix: un-ignore content/ so build globby discovers it (gitignore=true behavior)
Build and Test / build-and-test (macos-latest) (push) Has been cancelled
Build and Test / build-and-test (ubuntu-latest) (push) Has been cancelled
Build and Test / build-and-test (windows-latest) (push) Has been cancelled
Build and Test / publish-tag (push) Has been cancelled
Docker build & push image / build (push) Has been cancelled
2026-08-31 00:58:33 -04:00
yuriy 7a95030086 merge upstream/v4 (resolves package-lock conflict) 2026-08-31 00:57:04 -04:00
yuriy 36d1925580 tweak: dark mode light/lightgray colors 2026-08-31 00:56:55 -04:00
Luiz Cláudio Silveira Duarte d25a6eabf9 fix(citations): correct URL for CSL locales (#2377)
Co-authored-by: Luiz Claudio Silveira Duarte <lcduarte@lcduarte.com>
2026-04-20 05:37:30 -04:00
wasita 59b5807601 🐛 fix(cli): use 'gray' instead of 'grey' in styleText calls (#2321)
Node.js util.styleText does not accept 'grey' as a format name.
While util.inspect.colors defines 'grey' as a non-enumerable alias
for 'gray', styleText validates against Object.keys(inspect.colors)
which only includes enumerable properties — so 'grey' has never
been a valid styleText format and throws ERR_INVALID_ARG_VALUE.
2026-03-04 16:42:49 +01:00
Andrew G. Dunn 9576701d85 fix: await micromorph() to prevent race condition with nav event handlers (#2323)
micromorph() returns Promise<void> because its internal patch() function
is async and uses Promise.all for recursive child patching. Without
await, the DOM morph may still be in progress when the nav event fires
and downstream handlers attempt to rebuild dynamic content.

Fixes #2322
2026-03-02 08:31:53 -08:00
yuriy 16ac065be5 changes
Build and Test / build-and-test (macos-latest) (push) Has been cancelled
Build and Test / build-and-test (ubuntu-latest) (push) Has been cancelled
Build and Test / build-and-test (windows-latest) (push) Has been cancelled
Build and Test / publish-tag (push) Has been cancelled
Docker build & push image / build (push) Has been cancelled
2025-10-25 21:07:18 -04:00
master 7f268bb227 initial
Build and Test / build-and-test (macos-latest) (push) Has been cancelled
Build and Test / build-and-test (ubuntu-latest) (push) Has been cancelled
Build and Test / build-and-test (windows-latest) (push) Has been cancelled
Build and Test / publish-tag (push) Has been cancelled
Docker build & push image / build (push) Has been cancelled
2025-10-25 21:05:16 -04:00
8 changed files with 58 additions and 13 deletions
+1
View File
@@ -9,3 +9,4 @@ tsconfig.tsbuildinfo
private/
.replit
replit.nix
public/
View File
Executable
+46
View File
@@ -0,0 +1,46 @@
#!/bin/bash
# Define the directory to search in
BUILD_DIR="$HOME/quartz/"
CONTENT_DIR="$HOME/quartz/content"
# Find all .md files in the directory and remove all instances of `Blog/` to fix pathing
# Needed since all my articles are in the /Blog folder and it's subolfers in Obsidian instread of the base directory
find "$CONTENT_DIR" -type f -name "*.md" -print0 | while IFS= read -r -d $'\0' file; do
# Replace 'Blog/' with nothing in each file
sed -i 's|Blog/||g' "$file"
echo "Processed: $file"
done
# Find all markdown files in the content directory
find "$CONTENT_DIR" -name "*.md" -type f | while read -r file; do
echo "Processing: $file"
# Check if the file contains the Private section
if grep -q "^# Private$" "$file"; then
# Create a temporary file for processing
temp_file=$(mktemp)
# Use sed to remove content between # Private and # /Private inclusive
sed '/^# Private$/,/^# \/Private$/d' "$file" > "$temp_file"
# Replace original file with processed content
mv "$temp_file" "$file"
echo "Removed Private section from: $file"
else
echo "No Private section found in: $file"
fi
done
# echo "Processing complete!"
echo "All .md files have been processed."
cd "${BUILD_DIR}"
# build the html files
npx quartz build
# copy the files to the apache serve directory using a script
sudo /usr/local/bin/sync-quartz-site
+5 -5
View File
@@ -8,7 +8,7 @@ import * as Plugin from "./quartz/plugins"
*/
const config: QuartzConfig = {
configuration: {
pageTitle: "Quartz 4",
pageTitle: "Yuriy's Notes",
pageTitleSuffix: "",
enableSPA: true,
enablePopovers: true,
@@ -16,12 +16,12 @@ const config: QuartzConfig = {
provider: "plausible",
},
locale: "en-US",
baseUrl: "quartz.jzhao.xyz",
baseUrl: "zinchuk.xyz",
ignorePatterns: ["private", "templates", ".obsidian"],
defaultDateType: "modified",
theme: {
fontOrigin: "googleFonts",
cdnCaching: true,
cdnCaching: false,
typography: {
header: "Schibsted Grotesk",
body: "Source Sans Pro",
@@ -40,8 +40,8 @@ const config: QuartzConfig = {
textHighlight: "#fff23688",
},
darkMode: {
light: "#161618",
lightgray: "#393639",
light: "#141618",
lightgray: "#43515f",
gray: "#646464",
darkgray: "#d4d4d4",
dark: "#ebebec",
-2
View File
@@ -8,8 +8,6 @@ export const sharedPageComponents: SharedLayout = {
afterBody: [],
footer: Component.Footer({
links: {
GitHub: "https://github.com/jackyzha0/quartz",
"Discord Community": "https://discord.gg/cRFFHYye7t",
},
}),
}
+4 -4
View File
@@ -318,7 +318,7 @@ export async function handleBuild(argv) {
const result = await ctx.rebuild().catch((err) => {
console.error(`${styleText("red", "Couldn't parse Quartz configuration:")} ${fp}`)
console.log(`Reason: ${styleText("grey", err)}`)
console.log(`Reason: ${styleText("gray", err)}`)
process.exit(1)
})
release()
@@ -395,7 +395,7 @@ export async function handleBuild(argv) {
status >= 200 && status < 300
? styleText("green", `[${status}]`)
: styleText("red", `[${status}]`)
console.log(statusString + styleText("grey", ` ${argv.baseDir}${req.url}`))
console.log(statusString + styleText("gray", ` ${argv.baseDir}${req.url}`))
release()
}
@@ -406,7 +406,7 @@ export async function handleBuild(argv) {
})
console.log(
styleText("yellow", "[302]") +
styleText("grey", ` ${argv.baseDir}${req.url} -> ${newFp}`),
styleText("gray", ` ${argv.baseDir}${req.url} -> ${newFp}`),
)
res.end()
}
@@ -482,7 +482,7 @@ export async function handleBuild(argv) {
.on("change", () => build(clientRefresh))
.on("unlink", () => build(clientRefresh))
console.log(styleText("grey", "hint: exit with ctrl+c"))
console.log(styleText("gray", "hint: exit with ctrl+c"))
}
}
+1 -1
View File
@@ -102,7 +102,7 @@ async function _navigate(url: URL, isBack: boolean = false) {
html.body.appendChild(announcer)
// morph body
micromorph(document.body, html.body)
await micromorph(document.body, html.body)
// scroll into place and add history
if (!isBack) {
+1 -1
View File
@@ -31,7 +31,7 @@ export const Citations: QuartzTransformerPlugin<Partial<Options>> = (userOpts) =
// locale available and simply create the lang url-string
let lang: string = "en-US"
if (ctx.cfg.configuration.locale !== "en-US") {
lang = `https://raw.githubusercontent.com/citation-stylelanguage/locales/refs/heads/master/locales-${ctx.cfg.configuration.locale}.xml`
lang = `https://raw.githubusercontent.com/citation-style-language/locales/refs/heads/master/locales-${ctx.cfg.configuration.locale}.xml`
}
// Add rehype-citation to the list of plugins
plugins.push([