site/latest.11ty.tsx (44 lines of code) (raw):

import { LayoutContext } from "../src/models"; import { ReferenceLayout, ReferenceLayoutProps, } from "../_includes/layouts/ReferenceLayout.11y"; import { Resource } from "../src/ResourceModels"; import ResourceCard from "../_includes/resourcecard/ResourceCard.11ty"; export default class LatestLayout { data() { return { eleventyExcludeFromCollections: true, layout: "", title: "Latest", subtitle: " All the resources in the Guide, starting with most recent.", pagination: { data: "collections.all", size: 12, reverse: true, before: function (paginationData: any[], fullData: any) { const results: Resource[] = []; const { resourceMap } = fullData.collections; let thisItem: any; paginationData.forEach((item: any) => { thisItem = resourceMap.get(item.url); if (thisItem) { results.push(thisItem); } }); return results; }, }, }; } render(this: LayoutContext, data: ReferenceLayoutProps): JSX.Element { const { content, pagination } = data; const listing = ( <> {pagination && pagination.items.map((tip) => { return <ResourceCard resource={tip}></ResourceCard>; })} </> ); return <ReferenceLayout {...data} listing={listing} content={content} />; } }