bump to v4
This commit is contained in:
		@@ -14,27 +14,25 @@ import { QuartzLogger } from "../util/log"
 | 
			
		||||
import { trace } from "../util/trace"
 | 
			
		||||
import { BuildCtx } from "../util/ctx"
 | 
			
		||||
 | 
			
		||||
export type QuartzProcessor = Processor<MDRoot, HTMLRoot, void>
 | 
			
		||||
export type QuartzProcessor = Processor<MDRoot, MDRoot, HTMLRoot>
 | 
			
		||||
export function createProcessor(ctx: BuildCtx): QuartzProcessor {
 | 
			
		||||
  const transformers = ctx.cfg.plugins.transformers
 | 
			
		||||
 | 
			
		||||
  // base Markdown -> MD AST
 | 
			
		||||
  let processor = unified().use(remarkParse)
 | 
			
		||||
 | 
			
		||||
  // MD AST -> MD AST transforms
 | 
			
		||||
  for (const plugin of transformers.filter((p) => p.markdownPlugins)) {
 | 
			
		||||
    processor = processor.use(plugin.markdownPlugins!(ctx))
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  // MD AST -> HTML AST
 | 
			
		||||
  processor = processor.use(remarkRehype, { allowDangerousHtml: true })
 | 
			
		||||
 | 
			
		||||
  // HTML AST -> HTML AST transforms
 | 
			
		||||
  for (const plugin of transformers.filter((p) => p.htmlPlugins)) {
 | 
			
		||||
    processor = processor.use(plugin.htmlPlugins!(ctx))
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  return processor
 | 
			
		||||
  return (
 | 
			
		||||
    unified()
 | 
			
		||||
      // base Markdown -> MD AST
 | 
			
		||||
      .use(remarkParse)
 | 
			
		||||
      // MD AST -> MD AST transforms
 | 
			
		||||
      .use(
 | 
			
		||||
        transformers
 | 
			
		||||
          .filter((p) => p.markdownPlugins)
 | 
			
		||||
          .flatMap((plugin) => plugin.markdownPlugins!(ctx)),
 | 
			
		||||
      )
 | 
			
		||||
      // MD AST -> HTML AST
 | 
			
		||||
      .use(remarkRehype, { allowDangerousHtml: true })
 | 
			
		||||
      // HTML AST -> HTML AST transforms
 | 
			
		||||
      .use(transformers.filter((p) => p.htmlPlugins).flatMap((plugin) => plugin.htmlPlugins!(ctx)))
 | 
			
		||||
  )
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
function* chunks<T>(arr: T[], n: number) {
 | 
			
		||||
@@ -89,12 +87,13 @@ export function createFileParser(ctx: BuildCtx, fps: FilePath[]) {
 | 
			
		||||
 | 
			
		||||
        // Text -> Text transforms
 | 
			
		||||
        for (const plugin of cfg.plugins.transformers.filter((p) => p.textTransform)) {
 | 
			
		||||
          file.value = plugin.textTransform!(ctx, file.value)
 | 
			
		||||
          file.value = plugin.textTransform!(ctx, file.value.toString())
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        // base data properties that plugins may use
 | 
			
		||||
        file.data.slug = slugifyFilePath(path.posix.relative(argv.directory, file.path) as FilePath)
 | 
			
		||||
        file.data.filePath = fp
 | 
			
		||||
        file.data.filePath = file.path as FilePath
 | 
			
		||||
        file.data.relativePath = path.posix.relative(argv.directory, file.path) as FilePath
 | 
			
		||||
        file.data.slug = slugifyFilePath(file.data.relativePath)
 | 
			
		||||
 | 
			
		||||
        const ast = processor.parse(file)
 | 
			
		||||
        const newAst = await processor.run(ast, file)
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user