* 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:
		
							parent
							
								
									3ae89a1d16
								
							
						
					
					
						commit
						685c06ce2e
					
				| @ -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) | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user