| | |
| | | import { sassPlugin } from "esbuild-sass-plugin" |
| | | import fs from "fs" |
| | | import { intro, outro, select, text } from "@clack/prompts" |
| | | import { rimraf } from "rimraf" |
| | | import chokidar from "chokidar" |
| | | import prettyBytes from "pretty-bytes" |
| | | import { execSync, spawnSync } from "child_process" |
| | |
| | | gitPull, |
| | | popContentFolder, |
| | | stashContentFolder, |
| | | rmrf, |
| | | } from "./helpers.js" |
| | | import { |
| | | UPSTREAM_NAME, |
| | |
| | | if (contentStat.isSymbolicLink()) { |
| | | await fs.promises.unlink(contentFolder) |
| | | } else { |
| | | await rmrf(contentFolder) |
| | | await rimraf(contentFolder) |
| | | } |
| | | } |
| | | |
| | |
| | | // get a preferred link resolution strategy |
| | | linkResolutionStrategy = exitIfCancel( |
| | | await select({ |
| | | message: `Choose how Quartz should resolve links in your content. You can change this later in \`quartz.config.ts\`.`, |
| | | message: `Choose how Quartz should resolve links in your content. This should match Obsidian's link format. You can change this later in \`quartz.config.ts\`.`, |
| | | options: [ |
| | | { |
| | | value: "absolute", |
| | | label: "Treat links as absolute path", |
| | | hint: "for content made for Quartz 3 and Hugo", |
| | | }, |
| | | { |
| | | value: "shortest", |
| | | label: "Treat links as shortest path", |
| | | hint: "for most Obsidian vaults", |
| | | hint: "(default)", |
| | | }, |
| | | { |
| | | value: "absolute", |
| | | label: "Treat links as absolute path", |
| | | }, |
| | | { |
| | | value: "relative", |
| | | label: "Treat links as relative paths", |
| | | hint: "for just normal Markdown files", |
| | | }, |
| | | ], |
| | | }), |
| | |
| | | // setup remote |
| | | execSync( |
| | | `git remote show upstream || git remote add upstream https://github.com/jackyzha0/quartz.git`, |
| | | { stdio: "ignore" }, |
| | | ) |
| | | |
| | | outro(`You're all set! Not sure what to do next? Try: |
| | |
| | | }, |
| | | write: false, |
| | | bundle: true, |
| | | minify: true, |
| | | platform: "browser", |
| | | format: "esm", |
| | | }) |
| | |
| | | directoryListing: false, |
| | | headers: [ |
| | | { |
| | | source: "**/*.html", |
| | | source: "**/*.*", |
| | | headers: [{ key: "Content-Disposition", value: "inline" }], |
| | | }, |
| | | ], |