A port of Frontman's SitemapTree
in TypeScript.
Penjing is a data structure to represent pages from a static site. It lets you retrieve any resource from the tree with constant time complexity.
npm install penjing
# or
yarn add penjing
import { SitemapTree, Resource } from 'penjing'
const tree = SitemapTree.create()
tree.add(Resource.createFromPath('path/to/first.md'))
tree.add(Resource.createFromPath('path/to/second.md'))
tree.children[0].children[0].children[0].resource.source // "path/to/first.md"
tree.fromUrl('path/to/second').children[0].resource.source // "path/to/second.md"
Create a tree of resources.
Resource | null
The attached resource.
SitemapTree | null
The parent of the sitemap tree.
SitemapTree[]
The children of the sitemap tree.
string | null
The URL of the sitemap tree.
string | null
The URL part of the sitemap tree.
SitemapTree[]
The siblings of the sitemap tree, including itself.
Record<string, SitemapTree>
All URLs in the sitemap tree.
(resource: Resource): void
Add a resource to the sitemap tree.
(url: string): SitemapTree
Retrieve a sub-tree in a sitemap tree from a URL.
(resource: Resource): SitemapTree
Retrieve a sub-tree in a sitemap tree from a resource.
Create a resource from a file path.