0.3.0 • Published 3 years ago

penjing v0.3.0

Weekly downloads
6
License
MIT
Repository
-
Last release
3 years ago

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.

Install

npm install penjing
# or
yarn add penjing

Usage

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"

API

SitemapTree

Create a tree of resources.

SitemapTree.resource

Resource | null

The attached resource.

SitemapTree.parent

SitemapTree | null

The parent of the sitemap tree.

SitemapTree.children

SitemapTree[]

The children of the sitemap tree.

SitemapTree.url

string | null

The URL of the sitemap tree.

SitemapTree.urlPart

string | null

The URL part of the sitemap tree.

SitemapTree.siblings

SitemapTree[]

The siblings of the sitemap tree, including itself.

SitemapTree.allUrls

Record<string, SitemapTree>

All URLs in the sitemap tree.

SitemapTree.add(resource)

(resource: Resource): void

Add a resource to the sitemap tree.

SitemapTree.fromUrl(url)

(url: string): SitemapTree

Retrieve a sub-tree in a sitemap tree from a URL.

SitemapTree.fromResource(resource)

(resource: Resource): SitemapTree

Retrieve a sub-tree in a sitemap tree from a resource.

Resource

Create a resource from a file path.