* Fix(RecentNotes): Prevent folder pages from always appearing first Pass prioritizeFolders=false to byDateAndAlphabetical in RecentNotes to sort strictly by date/alphabetical order, fixing issue #1901. * refactor: split sorting functions for clarity - Split byDateAndAlphabetical into two separate functions\n- byDateAndAlphabetical: sorts strictly by date and alphabetically\n- byDateAndAlphabeticalFolderFirst: sorts with folders first\n- Updated RecentNotes to use date-only sorting * Fix(PageList): keep byDateAndAlphabeticalFolderFirst as the default sorting order for PageList
This commit is contained in:
		@@ -7,6 +7,26 @@ import { GlobalConfiguration } from "../cfg"
 | 
			
		||||
export type SortFn = (f1: QuartzPluginData, f2: QuartzPluginData) => number
 | 
			
		||||
 | 
			
		||||
export function byDateAndAlphabetical(cfg: GlobalConfiguration): SortFn {
 | 
			
		||||
  return (f1, f2) => {
 | 
			
		||||
    // Sort by date/alphabetical
 | 
			
		||||
    if (f1.dates && f2.dates) {
 | 
			
		||||
      // sort descending
 | 
			
		||||
      return getDate(cfg, f2)!.getTime() - getDate(cfg, f1)!.getTime()
 | 
			
		||||
    } else if (f1.dates && !f2.dates) {
 | 
			
		||||
      // prioritize files with dates
 | 
			
		||||
      return -1
 | 
			
		||||
    } else if (!f1.dates && f2.dates) {
 | 
			
		||||
      return 1
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    // otherwise, sort lexographically by title
 | 
			
		||||
    const f1Title = f1.frontmatter?.title.toLowerCase() ?? ""
 | 
			
		||||
    const f2Title = f2.frontmatter?.title.toLowerCase() ?? ""
 | 
			
		||||
    return f1Title.localeCompare(f2Title)
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export function byDateAndAlphabeticalFolderFirst(cfg: GlobalConfiguration): SortFn {
 | 
			
		||||
  return (f1, f2) => {
 | 
			
		||||
    // Sort folders first
 | 
			
		||||
    const f1IsFolder = isFolderPath(f1.slug ?? "")
 | 
			
		||||
@@ -38,7 +58,7 @@ type Props = {
 | 
			
		||||
} & QuartzComponentProps
 | 
			
		||||
 | 
			
		||||
export const PageList: QuartzComponent = ({ cfg, fileData, allFiles, limit, sort }: Props) => {
 | 
			
		||||
  const sorter = sort ?? byDateAndAlphabetical(cfg)
 | 
			
		||||
  const sorter = sort ?? byDateAndAlphabeticalFolderFirst(cfg)
 | 
			
		||||
  let list = allFiles.sort(sorter)
 | 
			
		||||
  if (limit) {
 | 
			
		||||
    list = list.slice(0, limit)
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user