bookmarks-document

Bookmarks data structure inspired by the DOM.

😠 Motivations

  • There are not that many bookmarks data structures out there even less with a straight-forward API

✨ Features

Simple, straight-forward and familiar API before anything.

  • βœ… ESM and bloat-free
  • βœ… Create, read, delete and update both bookmark links and folders
  • βœ… Supports well known formats such as Netscape Bookmark File Format
  • βœ… Can be serialized to a JSON representation

While this is not strictly a feature, this software is free, self-hosted and unhosted.

πŸ’‘ Missing a feature? Checkout the TODO file to see what work is in progress.

Usage

Prerequisites:

  • Node.js >=18.0.0
  • npm >=8.0.0

πŸš€ How to use

Please refer to the user manual.

πŸ”¨ Development

It is recommended to read the developer manual.

πŸ§ͺ Testing

Lint:

  • npm run test:lint

Lint individually:

  • Spoiler

    Files (Knip):

    • npm run test:lint:files

    Javascript files (eslint):

    • npm run test:lint:ecmascript

Run test with ava:

  • npm test

Use the NODE_DEBUG=bookmarks-document env to enable debug logs while testing. npm run test:watch is also available if you want to enable ava's watch mode.

Coverage:

  • npm run build:coverage

The coverage report files are available under dist/coverage

πŸ§’ Contributions

Contributions are more than welcome.

πŸ‘Ύ Bug report

❗Please search the existing issues and make sure the bug has not already been reported before making a new one.

To report a bug please use this link.

πŸ’‘ Feature request

❗Make sure your suggestion is not already on the TODO.md and hasn't already been requested.

To suggest an idea please use this link.