Metadata-Version: 2.4
Name: bookmarks-parser
Version: 0.2.0
Summary: netscape bookmarks parser
Author: Andriy Orehov
Author-email: Andriy Orehov <andriyorehov@gmail.com>
License-Expression: MIT
Requires-Dist: beautifulsoup4>=4.5.0
Requires-Dist: html5lib>=1.0
Requires-Python: >=3.10
Project-URL: Homepage, https://github.com/andriyor/bookmarks-parser
Description-Content-Type: text/markdown

# bookmarks-parser
[![test](https://github.com/andriyor/bookmarks-parser/actions/workflows/test.yml/badge.svg)](https://github.com/andriyor/bookmarks-parser/actions/workflows/test.yml)
[![image](https://img.shields.io/pypi/v/bookmarks-parser.svg)](https://pypi.org/project/bookmarks-parser/)
[![image](https://img.shields.io/pypi/l/bookmarks-parser.svg)](https://pypi.org/project/bookmarks-parser/)
[![image](https://img.shields.io/pypi/pyversions/bookmarks-parser.svg)](https://pypi.org/project/bookmarks-parser/)

Parsing Netscape bookmark (Google Chrome, Firefox, ... export files) .

## Installation
```
$ pip install bookmarks-parser
```

## Usage
### `parse` Usage
The function `parse` returns a list of nested dicts representing the directory structure of your bookmarks file. 
```python
import pprint
import bookmarks_parser

bookmarks = bookmarks_parser.parse("bookmarks.html")
pprint.pprint(bookmarks)
```
### `parse` Output Examples
+ [Firefox](/tests/tests_data/firefox_bookmarks.json)
+ [Chrome](/tests/tests_data/chrome_bookmarks.json)

### `parse_flat` Usage
The function `parse_flat` returns all bookmarks in a single, non-nested list.
```python
import pprint
import bookmarks_parser

bookmarks = bookmarks_parser.parse_flat("bookmarks.html")
pprint.pprint(bookmarks)
```
### `parse_flat` Output Examples
+ [Firefox](/tests/tests_data/firefox_bookmarks_flat.json)
+ [Chrome](/tests/tests_data/chrome_bookmarks_flat.json)

## Development
Install [uv](https://docs.astral.sh/uv/)
```
$ uv sync
```
run tests
```
$ uv run pytest --cov=bookmarks_parser
```

## License
[MIT](https://choosealicense.com/licenses/mit/)
