Dokumentasjonen for Quartz finnes her.
Les gjennom forsiden og følg stegene for å klone og installere Quartz.
Viktig!
Før Quartz klones og settes opp for første gang bør du ta stilling til om du ønsker å ha Obsidian-hvelvet sammen med Quartz-koden, eller i en egen mappestruktur utenfor repoet.
Selv med symbolske lenker vil hvelvet ditt bli lastet inn i GitHub-repoet når du kjører
npx quartz sync, så hvelvets lokasjon vil kun ha noe å si for oppsettet på denne spesifikke maskinen.
Sette opp et repo på GitHub
- Følg stegene som vist her, slik at du ender med et klonet Quartz-repo
- Videre steg antar at du har
cd-et inn i klonet repo
- Videre steg antar at du har
git conf user.name "Navnet Ditt"git conf user.email "din-epost@adresse.domene- Åpne GitHub i nettleseren din, logg inn og opprett et nytt repo
- Dette er hvor din kopi av Quartz vil bo
- IKKE lag Readme, lisensfil eller en
.gitignore-fil; repoet skal være helt tomt - Bestem deg for om du ønsker offentlig eller privat repo
- Dersom du ønsker gratis GitHub Pages må repo være offentlig
- Kopier URL-en til ditt nye repo
- I terminalen, kjør
git remote -v- Dersom origin ikke stemmer med ditt eget repo, kjør
git remote set-url REMOTE-URLhvorREMOTE-URLer URL-en til ditt nye repo - Dersom upstream ikke er satt, kjør
git remote add upstream https://github.com/jackyzha0/quartz.git
- Dersom origin ikke stemmer med ditt eget repo, kjør
- Kjør
npx quartz sync --no-pullfor å gjøre første synkronisering mot ditt nye GitHub-repo
Litt diverse konfigurasjon
- Åpne
quartz.config.ts- Endre tittel / prosjektnavn
configuration.pageTitle
- Endre fonter
configuration.theme.typography
- Endre bakgrunnsfarge:
configuration.theme.colors.lightMode.light
- Utvide hvilke filer og mapper som skal ignoreres
configuration.ignorePatterns- Her har jeg lagt til
"maler/**", "assets/private/**",
- Her har jeg lagt til
- Deaktivere site map og RSS (jeg har iallfall ikke bruk for det)
plugins.emitters[Plugin.ContentIndex]enableSiteMapenableRSS
- Endre tittel / prosjektnavn
- Åpne
quartz.layout.ts- Fjerne mørk modus
- Kommentere ut alle tilfeller av
Component.Darkmode()
- Kommentere ut alle tilfeller av
- Endre “Home” til “Hjem” for brødsmuler
- Legge til
{"rootName": "Hjem"}i konstruktøren for alle tilfeller avComponent.Breadcrumbs()
- Legge til
- Fjerne mørk modus
- Åpne
quartz/components/styles/popover.scss- Gjøre “innblikk” litt bredere
& > .popover-inner {width
- Gjøre “innblikk” litt bredere
Egendefinert sortering
Kilde
To typer sortering er endret:
- Tillegget
FolderPagestyrer innholdsvisningen for mappesider, og er nå endret til å sortere basert påsortAs,titleeller filnavn, i den prioriterte rekkefølgen; - Komponenten
Explorerviser filtreet på venstre side av nettsiden (ikke på mobil), og sorter mapper basert på deres originale mappenavn dersom mappenavnet starter med tall, og sorterer filer basert påsortAs.
sortAs og title kan begge defineres i en fils frontmatter-blokk.
quartz.config.tsconfig.plugins.emittersPlugin.FolderPage({ sort: folderPageSort })
quartz.layout.tsdefaultContentPageLayout.leftComponent.Explorer({ sortFn: explorerComponentSort })
Nye filer med egne sorteringsfunksjoner er lagt under quartz/quartzmodifiers/.
Norsk I18N
- Opprett en ny fil i repo:
quartz/i18n/locales/nb-NO.ts; åpne filen- Kopier innholdet fra eksempelet under og lim inn
- Åpne
quartz/i18n/index.ts- Legg til
import no from "./locales/nb-NO"sammen med resten avimport-linjene - Legg til
"nb-NO": no,underexport const TRANSLATIONS = {
- Legg til
- Åpne
quartz.config.ts- Endre
localetil"nb-NO"
- Endre
- Lagre, og kjør
npx quartz sync
Eksempeloversettelse
import { Translation } from "./definition"
export default {
propertyDefaults: {
title: "Uten navn",
description: "Tom beskrivelse",
},
components: {
callout: {
note: "Notat",
abstract: "Abstrakt",
info: "Info",
todo: "To-Do",
tip: "Tips",
success: "Suksess",
question: "Spørsmål",
warning: "Advarsel",
failure: "Feil",
danger: "Fare",
bug: "Bug",
example: "Eksempel",
quote: "Sitat",
},
backlinks: {
title: "Eksterne lenker",
noBacklinksFound: "Ingen eksterne lenker ble funnet",
},
themeToggle: {
lightMode: "Lys modus",
darkMode: "Mørk modus",
},
explorer: {
title: "Utforsker",
},
footer: {
createdWith: "Laget med",
},
graph: {
title: "Grafvisning",
},
recentNotes: {
title: "Nylige notater",
seeRemainingMore: ({ remaining }) => `Se ${remaining} mer →`,
},
transcludes: {
transcludeOf: ({ targetSlug }) => `Transklusjon av ${targetSlug}`,
linkToOriginal: "Lenke til original",
},
search: {
title: "Søk",
searchBarPlaceholder: "Søker etter noe",
},
tableOfContents: {
title: "Innholdsfortegnelse",
},
contentMeta: {
readingTime: ({ minutes }) =>
minutes === 1 ? "1 minutt lesetid" : `${minutes} minutter lesetid`,
},
},
pages: {
rss: {
recentNotes: "Nylige notater",
lastFewNotes: ({ count }) => `Siste ${count} notater`,
},
error: {
title: "Ikke funnet",
notFound: "Denne siden er privat, eller så eksisterer den ikke.",
home: "Tilbake til hjemmesiden",
},
folderContent: {
folder: "Mappe",
itemsUnderFolder: ({ count }) =>
count === 1 ? "1 fil i denne mappen." : `${count} filer i denne mappen.`,
},
tagContent: {
tag: "Etikett",
tagIndex: "Etikettliste",
itemsUnderTag: ({ count }) =>
count === 1 ? "1 fil med denne etiketten." : `${count} filer med denne etiketten.`,
showingFirst: ({ count }) => `Viser de ${count} første etikettene.`,
totalTags: ({ count }) => `Viser totalt ${count} etiketter.`,
},
},
} as const satisfies TranslationKjente problemer
Oppgradere Quartz
Wæ
Dependabot kan ikke automatisk oppdatere pakker
En gang i uken kjører Dependabot en analyse og oppdatering av npm-pakker i kodeprosjektet. Dersom dette fører til versjonskonflikter kan følgende være en mulig løsning:
{
// ...
"overrides": {
"esbuild-sass-plugin": {
"esbuild": "$esbuild"
}
}
}Eksempel: Dependabot får ikke til å kjøre npm install etter en pakkeoppdatering fordi det er versjonskonflikt mellom en definert pakke P og en annen pakkes avhengighet PA.
Et av tilfellene i mitt prosjekt var med esbuild, som er en definert pakke, hvor pakken esbuild-sass-plugin også hadde esbuild som en avhengighet, men med en lavere versjon.
Løsningen var da som over, å definere blokken overrides, hvor jeg setter at for pakken esbuild-sass-plugin så skal avhengigheten esbuild følge samme versjon som eksplisitt definert esbuild.
($esbuild blir da en referanse til versjonen som er satt for esbuild under devDependencies.)