feat(folder): add intermediate folders pages (#1295)
Co-authored-by: Aaron Pham <Aaronpham0103@gmail.com> Co-authored-by: Aaron Pham <contact@aarnphm.xyz>
This commit is contained in:
		@@ -76,12 +76,11 @@ export const FolderPage: QuartzEmitterPlugin<Partial<FolderPageOptions>> = (user
 | 
			
		||||
 | 
			
		||||
      const folders: Set<SimpleSlug> = new Set(
 | 
			
		||||
        allFiles.flatMap((data) => {
 | 
			
		||||
          const slug = data.slug
 | 
			
		||||
          const folderName = path.dirname(slug ?? "") as SimpleSlug
 | 
			
		||||
          if (slug && folderName !== "." && folderName !== "tags") {
 | 
			
		||||
            return [folderName]
 | 
			
		||||
          }
 | 
			
		||||
          return []
 | 
			
		||||
          return data.slug
 | 
			
		||||
            ? _getFolders(data.slug).filter(
 | 
			
		||||
                (folderName) => folderName !== "." && folderName !== "tags",
 | 
			
		||||
              )
 | 
			
		||||
            : []
 | 
			
		||||
        }),
 | 
			
		||||
      )
 | 
			
		||||
 | 
			
		||||
@@ -133,3 +132,14 @@ export const FolderPage: QuartzEmitterPlugin<Partial<FolderPageOptions>> = (user
 | 
			
		||||
    },
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
function _getFolders(slug: FullSlug): SimpleSlug[] {
 | 
			
		||||
  var folderName = path.dirname(slug ?? "") as SimpleSlug
 | 
			
		||||
  const parentFolderNames = [folderName]
 | 
			
		||||
 | 
			
		||||
  while (folderName !== ".") {
 | 
			
		||||
    folderName = path.dirname(folderName ?? "") as SimpleSlug
 | 
			
		||||
    parentFolderNames.push(folderName)
 | 
			
		||||
  }
 | 
			
		||||
  return parentFolderNames
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user