fix(folder): use memoized trie instead of handrolled path solution (closes #1767)
This commit is contained in:
		@@ -1,4 +1,4 @@
 | 
			
		||||
import { FullSlug, resolveRelative } from "../util/path"
 | 
			
		||||
import { FullSlug, isFolderPath, resolveRelative } from "../util/path"
 | 
			
		||||
import { QuartzPluginData } from "../plugins/vfile"
 | 
			
		||||
import { Date, getDate } from "./Date"
 | 
			
		||||
import { QuartzComponent, QuartzComponentProps } from "./types"
 | 
			
		||||
@@ -8,6 +8,13 @@ export type SortFn = (f1: QuartzPluginData, f2: QuartzPluginData) => number
 | 
			
		||||
 | 
			
		||||
export function byDateAndAlphabetical(cfg: GlobalConfiguration): SortFn {
 | 
			
		||||
  return (f1, f2) => {
 | 
			
		||||
    // Sort folders first
 | 
			
		||||
    const f1IsFolder = isFolderPath(f1.slug ?? "")
 | 
			
		||||
    const f2IsFolder = isFolderPath(f2.slug ?? "")
 | 
			
		||||
    if (f1IsFolder && !f2IsFolder) return -1
 | 
			
		||||
    if (!f1IsFolder && f2IsFolder) return 1
 | 
			
		||||
 | 
			
		||||
    // If both are folders or both are files, sort by date/alphabetical
 | 
			
		||||
    if (f1.dates && f2.dates) {
 | 
			
		||||
      // sort descending
 | 
			
		||||
      return getDate(cfg, f2)!.getTime() - getDate(cfg, f1)!.getTime()
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user