SYMBOL INDEX (378 symbols across 92 files) FILE: globals.d.ts type Document (line 2) | interface Document { type Window (line 13) | interface Window { FILE: index.d.ts type CustomEventMap (line 7) | interface CustomEventMap { type ContentIndex (line 14) | type ContentIndex = Record FILE: quartz/build.ts type ContentMap (line 25) | type ContentMap = Map< type BuildData (line 36) | type BuildData = { function buildQuartz (line 45) | async function buildQuartz(argv: Argv, mut: Mutex, clientRefresh: () => ... function startWatching (line 100) | async function startWatching( function rebuild (line 178) | async function rebuild(changes: ChangeEvent[], clientRefresh: () => void... FILE: quartz/cfg.ts type Analytics (line 7) | type Analytics = type GlobalConfiguration (line 59) | interface GlobalConfiguration { type QuartzConfig (line 88) | interface QuartzConfig { type FullPageLayout (line 93) | interface FullPageLayout { type PageLayout (line 104) | type PageLayout = Pick type SharedLayout (line 105) | type SharedLayout = Pick["dates"] function getDate (line 12) | function getDate(cfg: GlobalConfiguration, data: QuartzPluginData): Date... function formatDate (line 21) | function formatDate(d: Date, locale: ValidLocale = "en-US"): string { function Date (line 29) | function Date({ date, locale }: Props) { FILE: quartz/components/Explorer.tsx type OrderEntries (line 12) | type OrderEntries = "sort" | "filter" | "map" type Options (line 14) | interface Options { type FolderState (line 53) | type FolderState = { FILE: quartz/components/Flex.tsx type FlexConfig (line 5) | type FlexConfig = { FILE: quartz/components/Footer.tsx type Options (line 6) | interface Options { FILE: quartz/components/Graph.tsx type D3Config (line 8) | interface D3Config { type GraphOptions (line 24) | interface GraphOptions { FILE: quartz/components/PageList.tsx type SortFn (line 7) | type SortFn = (f1: QuartzPluginData, f2: QuartzPluginData) => number function byDateAndAlphabetical (line 9) | function byDateAndAlphabetical(cfg: GlobalConfiguration): SortFn { function byDateAndAlphabeticalFolderFirst (line 29) | function byDateAndAlphabeticalFolderFirst(cfg: GlobalConfiguration): Sor... type Props (line 55) | type Props = { FILE: quartz/components/RecentNotes.tsx type Options (line 11) | interface Options { FILE: quartz/components/Search.tsx type SearchOptions (line 8) | interface SearchOptions { FILE: quartz/components/Spacer.tsx function Spacer (line 4) | function Spacer({ displayClass }: QuartzComponentProps) { FILE: quartz/components/TableOfContents.tsx type Options (line 12) | interface Options { FILE: quartz/components/pages/FolderContent.tsx type FolderContentOptions (line 13) | interface FolderContentOptions { FILE: quartz/components/pages/TagContent.tsx type TagContentOptions (line 12) | interface TagContentOptions { FILE: quartz/components/renderPage.tsx type RenderComponents (line 14) | interface RenderComponents { function pageResources (line 26) | function pageResources( function renderTranscludes (line 67) | function renderTranscludes( function renderPage (line 215) | function renderPage( FILE: quartz/components/scripts/callout.inline.ts function toggleCallout (line 1) | function toggleCallout(this: HTMLElement) { function setupCallout (line 10) | function setupCallout() { FILE: quartz/components/scripts/clipboard.inline.ts function onClick (line 19) | function onClick() { FILE: quartz/components/scripts/comments.inline.ts type GiscusElement (line 45) | type GiscusElement = Omit & { FILE: quartz/components/scripts/explorer.inline.ts type MaybeHTMLElement (line 5) | type MaybeHTMLElement = HTMLElement | undefined type ParsedOptions (line 7) | interface ParsedOptions { type FolderState (line 17) | type FolderState = { function toggleExplorer (line 23) | function toggleExplorer(this: HTMLElement) { function toggleFolder (line 40) | function toggleFolder(evt: MouseEvent) { function createFileNode (line 82) | function createFileNode(currentSlug: FullSlug, node: FileTrieNode): HTML... function createFolderNode (line 98) | function createFolderNode( function setupExplorer (line 157) | async function setupExplorer(currentSlug: FullSlug) { function setFolderState (line 303) | function setFolderState(folderElement: HTMLElement, collapsed: boolean) { FILE: quartz/components/scripts/graph.inline.ts type GraphicsInfo (line 23) | type GraphicsInfo = { type NodeData (line 30) | type NodeData = { type SimpleLinkData (line 36) | type SimpleLinkData = { type LinkData (line 41) | type LinkData = { type LinkRenderData (line 46) | type LinkRenderData = GraphicsInfo & { type NodeRenderData (line 50) | type NodeRenderData = GraphicsInfo & { function getVisited (line 56) | function getVisited(): Set { function addToVisited (line 60) | function addToVisited(slug: SimpleSlug) { type TweenNode (line 66) | type TweenNode = { function renderGraph (line 71) | async function renderGraph(graph: HTMLElement, fullSlug: FullSlug) { function cleanupLocalGraphs (line 562) | function cleanupLocalGraphs() { function cleanupGlobalGraphs (line 569) | function cleanupGlobalGraphs() { function renderLocalGraph (line 580) | async function renderLocalGraph() { function renderGlobalGraph (line 599) | async function renderGlobalGraph() { function hideGlobalGraph (line 616) | function hideGlobalGraph() { function shortcutHandler (line 627) | async function shortcutHandler(e: HTMLElementEventMap["keydown"]) { FILE: quartz/components/scripts/mermaid.inline.ts type Position (line 3) | interface Position { class DiagramPanZoom (line 8) | class DiagramPanZoom { method constructor (line 18) | constructor( method setupEventListeners (line 27) | private setupEventListeners() { method cleanup (line 61) | cleanup() { method setupNavigationControls (line 67) | private setupNavigationControls() { method createButton (line 83) | private createButton(text: string, onClick: () => void): HTMLButtonEle... method onMouseDown (line 92) | private onMouseDown(e: MouseEvent) { method onMouseMove (line 99) | private onMouseMove(e: MouseEvent) { method onMouseUp (line 111) | private onMouseUp() { method onTouchStart (line 116) | private onTouchStart(e: TouchEvent) { method onTouchMove (line 123) | private onTouchMove(e: TouchEvent) { method onTouchEnd (line 136) | private onTouchEnd() { method zoom (line 140) | private zoom(delta: number) { method updateTransform (line 156) | private updateTransform() { method resetTransform (line 160) | private resetTransform() { function renderMermaid (line 204) | async function renderMermaid() { function showMermaid (line 268) | function showMermaid() { function hideMermaid (line 286) | function hideMermaid() { FILE: quartz/components/scripts/popover.inline.ts function mouseEnterHandler (line 8) | async function mouseEnterHandler( function clearActivePopover (line 117) | function clearActivePopover() { FILE: quartz/components/scripts/search.inline.ts type Item (line 6) | interface Item { type SearchType (line 16) | type SearchType = "basic" | "tags" function highlight (line 104) | function highlight(searchTerm: string, text: string, trim?: boolean) { function highlightHTML (line 149) | function highlightHTML(searchTerm: string, el: HTMLElement) { function setupSearch (line 190) | async function setupSearch(searchElement: Element, currentSlug: FullSlug... function fillDocument (line 513) | async function fillDocument(data: ContentIndex) { FILE: quartz/components/scripts/spa.inline.ts constant NODE_TYPE_ELEMENT (line 7) | const NODE_TYPE_ELEMENT = 1 function notifyNav (line 38) | function notifyNav(url: FullSlug) { function startLoading (line 46) | function startLoading() { function _navigate (line 61) | async function _navigate(url: URL, isBack: boolean = false) { function navigate (line 133) | async function navigate(url: URL, isBack: boolean = false) { function createRouter (line 148) | function createRouter() { method constructor (line 204) | constructor() { method connectedCallback (line 207) | connectedCallback() { FILE: quartz/components/scripts/toc.inline.ts function toggleToc (line 16) | function toggleToc(this: HTMLElement) { function setupToc (line 27) | function setupToc() { FILE: quartz/components/scripts/util.ts function registerEscapeHandler (line 1) | function registerEscapeHandler(outsideContainer: HTMLElement | null, cb:... function removeAllChildren (line 22) | function removeAllChildren(node: HTMLElement) { function fetchCanonical (line 35) | async function fetchCanonical(url: URL): Promise { FILE: quartz/components/types.ts type QuartzComponentProps (line 8) | type QuartzComponentProps = { type QuartzComponent (line 21) | type QuartzComponent = ComponentType & { type QuartzComponentConstructor (line 27) | type QuartzComponentConstructor { function addGlobalPageResources (line 79) | function addGlobalPageResources(ctx: BuildCtx, componentResources: Compo... method emit (line 273) | async *emit(ctx, _content, _resources) { method partialEmit (line 371) | async *partialEmit() {} FILE: quartz/plugins/emitters/contentIndex.tsx type ContentIndexMap (line 11) | type ContentIndexMap = Map type ContentDetails (line 12) | type ContentDetails = { type Options (line 24) | interface Options { function generateSiteMap (line 42) | function generateSiteMap(cfg: GlobalConfiguration, idx: ContentIndexMap)... function generateRSSFeed (line 54) | function generateRSSFeed(cfg: GlobalConfiguration, idx: ContentIndexMap,... method emit (line 99) | async *emit(ctx, content) { FILE: quartz/plugins/emitters/contentPage.tsx function processContent (line 18) | async function processContent( method getQuartzComponents (line 62) | getQuartzComponents() { method emit (line 76) | async *emit(ctx, content, resources) { method partialEmit (line 100) | async *partialEmit(ctx, content, resources, changeEvents) { FILE: quartz/plugins/emitters/favicon.ts method emit (line 9) | async *emit({ argv }) { method partialEmit (line 21) | async *partialEmit() {} FILE: quartz/plugins/emitters/folderPage.tsx type FolderPageOptions (line 23) | interface FolderPageOptions extends FullPageLayout { function computeFolderInfo (line 62) | function computeFolderInfo( function _getFolders (line 92) | function _getFolders(slug: FullSlug): SimpleSlug[] { method getQuartzComponents (line 117) | getQuartzComponents() { method emit (line 131) | async *emit(ctx, content, resources) { method partialEmit (line 148) | async *partialEmit(ctx, content, resources, changeEvents) { FILE: quartz/plugins/emitters/helpers.ts type WriteOptions (line 7) | type WriteOptions = { FILE: quartz/plugins/emitters/ogImage.tsx function generateSocialImage (line 28) | async function generateSocialImage( function processOgImage (line 68) | async function processOgImage( method getQuartzComponents (line 109) | getQuartzComponents() { method emit (line 112) | async *emit(ctx, content, _resources) { method partialEmit (line 123) | async *partialEmit(ctx, _content, _resources, changeEvents) { FILE: quartz/plugins/emitters/static.ts method emit (line 9) | async *emit({ argv, cfg }) { method partialEmit (line 22) | async *partialEmit() {} FILE: quartz/plugins/emitters/tagPage.tsx type TagPageOptions (line 16) | interface TagPageOptions extends FullPageLayout { function computeTagInfo (line 20) | function computeTagInfo( function processTagPage (line 65) | async function processTagPage( method getQuartzComponents (line 110) | getQuartzComponents() { method emit (line 124) | async *emit(ctx, content, resources) { method partialEmit (line 133) | async *partialEmit(ctx, content, resources, changeEvents) { FILE: quartz/plugins/filters/draft.ts method shouldPublish (line 5) | shouldPublish(_ctx, [_tree, vfile]) { FILE: quartz/plugins/filters/explicit.ts method shouldPublish (line 5) | shouldPublish(_ctx, [_tree, vfile]) { FILE: quartz/plugins/index.ts function getStaticResourcesFromPlugins (line 5) | function getStaticResourcesFromPlugins(ctx: BuildCtx) { type DataMap (line 51) | interface DataMap { FILE: quartz/plugins/transformers/citations.ts type Options (line 6) | interface Options { method htmlPlugins (line 24) | htmlPlugins(ctx) { FILE: quartz/plugins/transformers/description.ts type Options (line 6) | interface Options { method htmlPlugins (line 27) | htmlPlugins() { type DataMap (line 86) | interface DataMap { FILE: quartz/plugins/transformers/frontmatter.ts type Options (line 10) | interface Options { function coalesceAliases (line 20) | function coalesceAliases(data: { [key: string]: any }, aliases: string[]) { function coerceToArray (line 26) | function coerceToArray(input: string | string[]): string[] | undefined { function getAliasSlugs (line 43) | function getAliasSlugs(aliases: string[]): FullSlug[] { method markdownPlugins (line 59) | markdownPlugins(ctx) { type DataMap (line 136) | interface DataMap { FILE: quartz/plugins/transformers/gfm.ts type Options (line 7) | interface Options { method markdownPlugins (line 21) | markdownPlugins() { method htmlPlugins (line 24) | htmlPlugins() { FILE: quartz/plugins/transformers/lastmod.ts type Options (line 7) | interface Options { function coerceDate (line 18) | function coerceDate(fp: string, d: any): Date { type MaybeDate (line 40) | type MaybeDate = undefined | string | number method markdownPlugins (line 45) | markdownPlugins(ctx) { type DataMap (line 108) | interface DataMap { FILE: quartz/plugins/transformers/latex.ts type Options (line 12) | interface Options { type Args (line 21) | type Args = boolean | number | string | null type MacroType (line 22) | interface MacroType { method markdownPlugins (line 31) | markdownPlugins() { method htmlPlugins (line 34) | htmlPlugins() { method externalResources (line 59) | externalResources() { FILE: quartz/plugins/transformers/linebreaks.ts method markdownPlugins (line 7) | markdownPlugins() { FILE: quartz/plugins/transformers/links.ts type Options (line 17) | interface Options { method htmlPlugins (line 39) | htmlPlugins(ctx) { type DataMap (line 171) | interface DataMap { FILE: quartz/plugins/transformers/ofm.ts type Options (line 31) | interface Options { function canonicalizeCallout (line 104) | function canonicalizeCallout(calloutName: string): keyof typeof calloutM... method textTransform (line 161) | textTransform(_ctx, src) { method markdownPlugins (line 211) | markdownPlugins(ctx) { method htmlPlugins (line 543) | htmlPlugins() { method externalResources (line 748) | externalResources() { type DataMap (line 788) | interface DataMap { FILE: quartz/plugins/transformers/oxhugofm.ts type Options (line 5) | interface Options { method textTransform (line 56) | textTransform(_ctx, src) { method htmlPlugins (line 107) | htmlPlugins() { FILE: quartz/plugins/transformers/roam.ts type Options (line 8) | interface Options { function isSpecialEmbed (line 40) | function isSpecialEmbed(node: Paragraph): boolean { function transformSpecialEmbed (line 53) | function transformSpecialEmbed(node: Paragraph, opts: Options): Html | n... method markdownPlugins (line 121) | markdownPlugins() { FILE: quartz/plugins/transformers/syntax.ts type Theme (line 4) | interface Theme extends Record { type Options (line 9) | interface Options { method htmlPlugins (line 27) | htmlPlugins() { FILE: quartz/plugins/transformers/toc.ts type Options (line 7) | interface Options { type TocEntry (line 21) | interface TocEntry { method markdownPlugins (line 32) | markdownPlugins() { type DataMap (line 69) | interface DataMap { FILE: quartz/plugins/types.ts type PluginTypes (line 9) | interface PluginTypes { type OptionType (line 15) | type OptionType = object | undefined type ExternalResourcesFn (line 16) | type ExternalResourcesFn = (ctx: BuildCtx) => Partial |... type QuartzTransformerPlugin (line 17) | type QuartzTransformerPlugin = ( type QuartzTransformerPluginInstance (line 20) | type QuartzTransformerPluginInstance = { type QuartzFilterPlugin (line 28) | type QuartzFilterPlugin = ( type QuartzFilterPluginInstance (line 31) | type QuartzFilterPluginInstance = { type ChangeEvent (line 36) | type ChangeEvent = { type QuartzEmitterPlugin (line 42) | type QuartzEmitterPlugin = ( type QuartzEmitterPluginInstance (line 45) | type QuartzEmitterPluginInstance = { FILE: quartz/plugins/vfile.ts type QuartzPluginData (line 5) | type QuartzPluginData = Data type MarkdownContent (line 6) | type MarkdownContent = [MdRoot, VFile] type ProcessedContent (line 7) | type ProcessedContent = [HtmlRoot, VFile] function defaultProcessedContent (line 9) | function defaultProcessedContent(vfileData: Partial): ... FILE: quartz/processors/emit.ts function emitContent (line 9) | async function emitContent(ctx: BuildCtx, content: ProcessedContent[]) { FILE: quartz/processors/filter.ts function filterContent (line 5) | function filterContent(ctx: BuildCtx, content: ProcessedContent[]): Proc... FILE: quartz/processors/parse.ts type QuartzMdProcessor (line 18) | type QuartzMdProcessor = Processor type QuartzHtmlProcessor (line 19) | type QuartzHtmlProcessor = Processor function createMdProcessor (line 21) | function createMdProcessor(ctx: BuildCtx): QuartzMdProcessor { function createHtmlProcessor (line 36) | function createHtmlProcessor(ctx: BuildCtx): QuartzHtmlProcessor { function transpileWorkerScript (line 53) | async function transpileWorkerScript() { function createFileParser (line 85) | function createFileParser(ctx: BuildCtx, fps: FilePath[]) { function createMarkdownParser (line 123) | function createMarkdownParser(ctx: BuildCtx, mdContent: MarkdownContent[... function parseMarkdown (line 148) | async function parseMarkdown(ctx: BuildCtx, fps: FilePath[]): Promise FILE: quartz/util/emoji.ts constant U200D (line 1) | const U200D = String.fromCharCode(8205) function getIconCode (line 4) | function getIconCode(char: string) { function toCodePoint (line 8) | function toCodePoint(unicodeSurrogates: string) { type EmojiMap (line 28) | type EmojiMap = { function loadEmoji (line 34) | async function loadEmoji(code: string) { FILE: quartz/util/fileTrie.test.ts type TestData (line 6) | interface TestData { FILE: quartz/util/fileTrie.ts type FileTrieData (line 4) | interface FileTrieData { class FileTrieNode (line 10) | class FileTrieNode { method constructor (line 22) | constructor(segments: string[], data?: T) { method displayName (line 30) | get displayName(): string { method displayName (line 37) | set displayName(name: string) { method slug (line 41) | get slug(): FullSlug { method slugSegment (line 50) | get slugSegment(): string { method makeChild (line 54) | private makeChild(path: string[], file?: T) { method insert (line 61) | private insert(path: string[], file: T) { method add (line 88) | add(file: T) { method findNode (line 92) | findNode(path: string[]): FileTrieNode | undefined { method ancestryChain (line 100) | ancestryChain(path: string[]): Array> | undefined { method filter (line 121) | filter(filterFn: (node: FileTrieNode) => boolean) { method map (line 129) | map(mapFn: (node: FileTrieNode) => void) { method sort (line 137) | sort(sortFn: (a: FileTrieNode, b: FileTrieNode) => number) { method fromEntries (line 142) | static fromEntries(entries: [FullSlug, T][]) { method entries (line 152) | entries(): [FullSlug, FileTrieNode][] { method getFolderPaths (line 165) | getFolderPaths() { FILE: quartz/util/glob.ts function toPosixPath (line 5) | function toPosixPath(fp: string): string { function glob (line 9) | async function glob( FILE: quartz/util/jsx.tsx function htmlToJsx (line 15) | function htmlToJsx(fp: FilePath, tree: Node) { FILE: quartz/util/lang.ts function capitalize (line 1) | function capitalize(s: string): string { function classNames (line 5) | function classNames( FILE: quartz/util/log.ts class QuartzLogger (line 4) | class QuartzLogger { method constructor (line 12) | constructor(verbose: boolean) { method start (line 18) | start(text: string) { method updateText (line 42) | updateText(text: string) { method end (line 46) | end(text?: string) { FILE: quartz/util/og.tsx function getSatoriFonts (line 17) | async function getSatoriFonts(headerFont: FontSpecification, bodyFont: F... function fetchTtf (line 74) | async function fetchTtf( type SocialImageOptions (line 120) | type SocialImageOptions = { type UserOpts (line 148) | type UserOpts = Omit type ImageOptions (line 150) | type ImageOptions = { FILE: quartz/util/path.test.ts function asserts (line 76) | function asserts( FILE: quartz/util/path.ts constant QUARTZ (line 7) | const QUARTZ = "quartz" type SlugLike (line 10) | type SlugLike = string & { __brand: T } type FilePath (line 13) | type FilePath = SlugLike<"filepath"> function isFilePath (line 14) | function isFilePath(s: string): s is FilePath { type FullSlug (line 20) | type FullSlug = SlugLike<"full"> function isFullSlug (line 21) | function isFullSlug(s: string): s is FullSlug { type SimpleSlug (line 28) | type SimpleSlug = SlugLike<"simple"> function isSimpleSlug (line 29) | function isSimpleSlug(s: string): s is SimpleSlug { type RelativeURL (line 36) | type RelativeURL = SlugLike<"relative"> function isRelativeURL (line 37) | function isRelativeURL(s: string): s is RelativeURL { function isAbsoluteURL (line 43) | function isAbsoluteURL(s: string): boolean { function getFullSlug (line 52) | function getFullSlug(window: Window): FullSlug { function sluggify (line 57) | function sluggify(s: string): string { function slugifyFilePath (line 72) | function slugifyFilePath(fp: FilePath, excludeExt?: boolean): FullSlug { function simplifySlug (line 90) | function simplifySlug(fp: FullSlug): SimpleSlug { function transformInternalLink (line 95) | function transformInternalLink(link: string): RelativeURL { function normalizeRelativeURLs (line 117) | function normalizeRelativeURLs(el: Element | Document, destination: stri... function normalizeHastElement (line 142) | function normalizeHastElement(rawEl: HastElement, curBase: FullSlug, new... function pathToRoot (line 156) | function pathToRoot(slug: FullSlug): RelativeURL { function resolveRelative (line 171) | function resolveRelative(current: FullSlug, target: FullSlug | SimpleSlu... function splitAnchor (line 176) | function splitAnchor(link: string): [string, string] { function slugTag (line 185) | function slugTag(tag: string) { function joinSegments (line 192) | function joinSegments(...args: string[]): string { function getAllSegmentPrefixes (line 215) | function getAllSegmentPrefixes(tags: string): string[] { type TransformOptions (line 224) | interface TransformOptions { function transformLink (line 229) | function transformLink(src: FullSlug, target: string, opts: TransformOpt... function isFolderPath (line 260) | function isFolderPath(fplike: string): boolean { function endsWith (line 269) | function endsWith(s: string, suffix: string): boolean { function trimSuffix (line 273) | function trimSuffix(s: string, suffix: string): string { function containsForbiddenCharacters (line 280) | function containsForbiddenCharacters(s: string): boolean { function _hasFileExtension (line 284) | function _hasFileExtension(s: string): boolean { function getFileExtension (line 288) | function getFileExtension(s: string): string | undefined { function isRelativeSegment (line 292) | function isRelativeSegment(s: string): boolean { function stripSlashes (line 296) | function stripSlashes(s: string, onlyStripPrefix?: boolean): string { function _addRelativeToStart (line 308) | function _addRelativeToStart(s: string): string { FILE: quartz/util/perf.ts class PerfTimer (line 4) | class PerfTimer { method constructor (line 7) | constructor() { method addEvent (line 12) | addEvent(evtName: string) { method timeSince (line 16) | timeSince(evtName?: string): string { FILE: quartz/util/random.ts function randomIdNonSecure (line 1) | function randomIdNonSecure() { FILE: quartz/util/resources.tsx type JSResource (line 5) | type JSResource = { type CSSResource (line 20) | type CSSResource = { function JSResourceToScriptElement (line 26) | function JSResourceToScriptElement(resource: JSResource, preserve?: bool... function CSSResourceToStyleElement (line 47) | function CSSResourceToStyleElement(resource: CSSResource, preserve?: boo... type StaticResources (line 64) | interface StaticResources { type StringResource (line 70) | type StringResource = string | string[] | undefined function concatenateResources (line 71) | function concatenateResources(...resources: StringResource[]): StringRes... FILE: quartz/util/sourcemap.ts method retrieveSourceMap (line 8) | retrieveSourceMap(source) { FILE: quartz/util/theme.ts type ColorScheme (line 1) | interface ColorScheme { type Colors (line 13) | interface Colors { type FontSpecification (line 18) | type FontSpecification = type Theme (line 26) | interface Theme { type ThemeKey (line 38) | type ThemeKey = keyof Colors constant DEFAULT_SANS_SERIF (line 40) | const DEFAULT_SANS_SERIF = constant DEFAULT_MONO (line 42) | const DEFAULT_MONO = "ui-monospace, SFMono-Regular, SF Mono, Menlo, mono... function getFontSpecificationName (line 44) | function getFontSpecificationName(spec: FontSpecification): string { function formatFontSpecification (line 52) | function formatFontSpecification( function googleFontHref (line 88) | function googleFontHref(theme: Theme) { function googleFontSubsetHref (line 97) | function googleFontSubsetHref(theme: Theme, text: string) { type GoogleFontFile (line 104) | interface GoogleFontFile { function processGoogleFonts (line 117) | async function processGoogleFonts( function joinStyles (line 143) | function joinStyles(theme: Theme, ...stylesheet: string[]) { FILE: quartz/util/trace.ts function trace (line 6) | function trace(msg: string, err: Error) { FILE: quartz/worker.ts function parseMarkdown (line 16) | async function parseMarkdown( function processHtml (line 28) | function processHtml(