mirror of
https://github.com/jackyzha0/quartz.git
synced 2025-12-31 00:34:05 -06:00
Quartz sync: Sep 2, 2023, 1:35 PM
This commit is contained in:
parent
4d3485dfee
commit
8ce87778a6
18
content/Essays/template.md
Normal file
18
content/Essays/template.md
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
---
|
||||||
|
draft: true
|
||||||
|
title: An Essay
|
||||||
|
tags:
|
||||||
|
- essay
|
||||||
|
- incomplete
|
||||||
|
---
|
||||||
|
<script>
|
||||||
|
Var remark_config = {
|
||||||
|
Host: ' https://be-far.com/comments ', site_id: 'remark',
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
<script>!function(e,n){for(var o=0;o<e.length;o++){var r=n.createElement("script"),c=".js",d=n.head||n.body;"noModule"in r?(r.type="module",c=".mjs"):r.async=!0,r.defer=!0,r.src=remark_config.host+"/web/"+e[o]+c,d.appendChild(r)}}(remark_config.components||["embed"],document);</script>
|
||||||
|
|
||||||
|
This is tan essay.
|
||||||
|
|
||||||
|
Comment with [[Projects/quartz-comments|Remark42]] down below!
|
||||||
|
<div id="remark42"></div>
|
||||||
BIN
oquonie_save.bin
BIN
oquonie_save.bin
Binary file not shown.
@ -1,10 +1,18 @@
|
|||||||
import { QuartzConfig } from "./quartz/cfg"
|
import { QuartzConfig } from "./quartz/cfg"
|
||||||
import * as Plugin from "./quartz/plugins"
|
import * as Plugin from "./quartz/plugins"
|
||||||
|
import { OptionType } from "./quartz/plugins/types"
|
||||||
|
|
||||||
|
var remark = Plugin.Remark42({ host: "https://be-far.com/comments", site_id: "remark", theme: "dark", no_footer: true })
|
||||||
|
declare global {
|
||||||
|
var remark_config: OptionType
|
||||||
|
}
|
||||||
|
|
||||||
|
globalThis.remark_config = remark.options
|
||||||
|
|
||||||
const config: QuartzConfig = {
|
const config: QuartzConfig = {
|
||||||
configuration: {
|
configuration: {
|
||||||
pageTitle: "🌱 be-far",
|
pageTitle: "🌱 be-far",
|
||||||
enableSPA: true,
|
enableSPA: false,
|
||||||
enablePopovers: true,
|
enablePopovers: true,
|
||||||
analytics: null,
|
analytics: null,
|
||||||
baseUrl: "be-far.com",
|
baseUrl: "be-far.com",
|
||||||
@ -52,6 +60,7 @@ const config: QuartzConfig = {
|
|||||||
Plugin.CrawlLinks({ markdownLinkResolution: "shortest" }),
|
Plugin.CrawlLinks({ markdownLinkResolution: "shortest" }),
|
||||||
Plugin.Latex({ renderEngine: "katex" }),
|
Plugin.Latex({ renderEngine: "katex" }),
|
||||||
Plugin.Description(),
|
Plugin.Description(),
|
||||||
|
remark
|
||||||
],
|
],
|
||||||
filters: [Plugin.RemoveDrafts()],
|
filters: [Plugin.RemoveDrafts()],
|
||||||
emitters: [
|
emitters: [
|
||||||
|
|||||||
@ -10,6 +10,7 @@ export const sharedPageComponents: SharedLayout = {
|
|||||||
"Source code": "https://github.com/bfahrenfort/quartz",
|
"Source code": "https://github.com/bfahrenfort/quartz",
|
||||||
"RSS": "https://be-far.com/index.xml"
|
"RSS": "https://be-far.com/index.xml"
|
||||||
},
|
},
|
||||||
|
//remark_config: config.plugins.transformers.find((e) => {e.name === "Remark42"})?.options
|
||||||
}),
|
}),
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -1,17 +1,25 @@
|
|||||||
import { QuartzComponentConstructor } from "./types"
|
import { QuartzComponentConstructor } from "./types"
|
||||||
|
import { OptionType } from "../plugins/types"
|
||||||
import style from "./styles/footer.scss"
|
import style from "./styles/footer.scss"
|
||||||
import { version } from "../../package.json"
|
import { version } from "../../package.json"
|
||||||
|
|
||||||
interface Options {
|
interface Optionss {
|
||||||
links: Record<string, string>
|
links: Record<string, string>
|
||||||
}
|
}
|
||||||
|
|
||||||
export default ((opts?: Options) => {
|
console.log(globalThis.remark_config)
|
||||||
|
|
||||||
|
export default ((opts?: Optionss) => {
|
||||||
function Footer() {
|
function Footer() {
|
||||||
const year = new Date().getFullYear()
|
const year = new Date().getFullYear()
|
||||||
const links = opts?.links ?? []
|
const links = opts?.links ?? []
|
||||||
return (
|
return (
|
||||||
<footer>
|
<footer>
|
||||||
|
<hr />
|
||||||
|
<p style="margin-bottom:4px;font-weight:bold;font-size:2em;">
|
||||||
|
Share your thoughts with <a class="internal" href="./Projects/Obsidian/quartz-comments">Remark42</a>
|
||||||
|
</p>
|
||||||
|
<div id="remark42"></div>
|
||||||
<hr />
|
<hr />
|
||||||
<p>
|
<p>
|
||||||
© be-far {year}. Powered by <a href="https://quartz.jzhao.xyz/">Quartz</a>.
|
© be-far {year}. Powered by <a href="https://quartz.jzhao.xyz/">Quartz</a>.
|
||||||
|
|||||||
@ -7,3 +7,4 @@ export { CrawlLinks } from "./links"
|
|||||||
export { ObsidianFlavoredMarkdown } from "./ofm"
|
export { ObsidianFlavoredMarkdown } from "./ofm"
|
||||||
export { SyntaxHighlighting } from "./syntax"
|
export { SyntaxHighlighting } from "./syntax"
|
||||||
export { TableOfContents } from "./toc"
|
export { TableOfContents } from "./toc"
|
||||||
|
export { Remark42 } from "./remark42"
|
||||||
|
|||||||
54
quartz/plugins/transformers/remark42.ts
Normal file
54
quartz/plugins/transformers/remark42.ts
Normal file
@ -0,0 +1,54 @@
|
|||||||
|
import { QuartzTransformerPlugin } from "../types"
|
||||||
|
|
||||||
|
// Configuration documented at https://remark42.com/docs/configuration/frontend/
|
||||||
|
interface Options {
|
||||||
|
host: string
|
||||||
|
site_id: string
|
||||||
|
components?: Array<String>
|
||||||
|
max_shown_comments?: number
|
||||||
|
max_last_comments?: number
|
||||||
|
theme?: 'light' | 'dark'
|
||||||
|
page_title?: string // Don't use this, it'll break your comment database. It's included for the sake of completeness.
|
||||||
|
locale?: string // Technically an enum, full list at https://remark42.com/docs/configuration/frontend/#locales
|
||||||
|
show_email_subscription?: boolean
|
||||||
|
show_rss_subscription?: boolean
|
||||||
|
simple_view?: boolean
|
||||||
|
no_footer?: boolean
|
||||||
|
}
|
||||||
|
|
||||||
|
export const Remark42: QuartzTransformerPlugin<Options> = (opts?: Options) => {
|
||||||
|
var scripts = new Array<any>()
|
||||||
|
|
||||||
|
// Put the config into window scope
|
||||||
|
var configAsString : string = "var remark_config={"
|
||||||
|
for(const key in opts)
|
||||||
|
{
|
||||||
|
let value = opts[key as keyof Options] // Fucked
|
||||||
|
configAsString += key + ":" + "'" + value + "'," // Turbo fucked
|
||||||
|
}
|
||||||
|
configAsString += "}"
|
||||||
|
scripts.push({script:configAsString, loadTime: "afterDOMReady", contentType: "inline"})
|
||||||
|
|
||||||
|
// Put the embeddable components into window scope
|
||||||
|
function getComment(e : Array<String>) {
|
||||||
|
for (var o = 0; o < e.length; o++)
|
||||||
|
{
|
||||||
|
var src = opts?.host + '/web/' + e[o] + '.js'
|
||||||
|
scripts.push({src: src, loadTime: "afterDOMReady", contentType: "external",})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
getComment(opts?.components || ["embed"])
|
||||||
|
return {
|
||||||
|
name: "Remark42",
|
||||||
|
options: opts,
|
||||||
|
externalResources() {
|
||||||
|
return {
|
||||||
|
css: [
|
||||||
|
// base css
|
||||||
|
],
|
||||||
|
js: scripts
|
||||||
|
}
|
||||||
|
},
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@ -4,6 +4,8 @@ import { ProcessedContent } from "./vfile"
|
|||||||
import { QuartzComponent } from "../components/types"
|
import { QuartzComponent } from "../components/types"
|
||||||
import { FilePath, FullSlug } from "../util/path"
|
import { FilePath, FullSlug } from "../util/path"
|
||||||
import { BuildCtx } from "../util/ctx"
|
import { BuildCtx } from "../util/ctx"
|
||||||
|
import { Options } from "vfile"
|
||||||
|
import { IOptions } from "reading-time"
|
||||||
|
|
||||||
export interface PluginTypes {
|
export interface PluginTypes {
|
||||||
transformers: QuartzTransformerPluginInstance[]
|
transformers: QuartzTransformerPluginInstance[]
|
||||||
@ -11,12 +13,13 @@ export interface PluginTypes {
|
|||||||
emitters: QuartzEmitterPluginInstance[]
|
emitters: QuartzEmitterPluginInstance[]
|
||||||
}
|
}
|
||||||
|
|
||||||
type OptionType = object | undefined
|
export type OptionType = object | undefined
|
||||||
export type QuartzTransformerPlugin<Options extends OptionType = undefined> = (
|
export type QuartzTransformerPlugin<Options extends OptionType = undefined> = (
|
||||||
opts?: Options,
|
opts?: Options,
|
||||||
) => QuartzTransformerPluginInstance
|
) => QuartzTransformerPluginInstance
|
||||||
export type QuartzTransformerPluginInstance = {
|
export type QuartzTransformerPluginInstance = {
|
||||||
name: string
|
name: string
|
||||||
|
options?: OptionType
|
||||||
textTransform?: (ctx: BuildCtx, src: string | Buffer) => string | Buffer
|
textTransform?: (ctx: BuildCtx, src: string | Buffer) => string | Buffer
|
||||||
markdownPlugins?: (ctx: BuildCtx) => PluggableList
|
markdownPlugins?: (ctx: BuildCtx) => PluggableList
|
||||||
htmlPlugins?: (ctx: BuildCtx) => PluggableList
|
htmlPlugins?: (ctx: BuildCtx) => PluggableList
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user