Metadata-Version: 2.4
Name: offliner
Version: 0.0.1
Summary: Fetch website dependencies locally for offline HTTP serving
Author: Andrea Giammarchi
License-Expression: MIT
Project-URL: Homepage, https://github.com/WebReflection/offliner
Project-URL: Repository, https://github.com/WebReflection/offliner
Project-URL: Issues, https://github.com/WebReflection/offliner/issues
Keywords: offline,mirror,static,playwright,importmap
Classifier: Development Status :: 4 - Beta
Classifier: Environment :: Console
Classifier: Intended Audience :: Developers
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Internet :: WWW/HTTP
Requires-Python: >=3.10
Description-Content-Type: text/markdown
Requires-Dist: httpx>=0.27
Requires-Dist: playwright>=1.40

# offliner

Fetch a page’s assets into a folder so you can serve it offline with any static HTTP server.

## Install

```bash
pip install offliner
python -m playwright install chromium
```

## Usage

```bash
offliner --verbose https://example.com/
offliner -d ./my-offline https://example.com/
python -m offliner -h
```

## Publish to PyPI (maintainers)

From this directory (`python/`):

1. **Account & token** — Create an account on [PyPI](https://pypi.org) and an [API token](https://pypi.org/manage/account/token/) (scope: whole account or project `offliner`).

2. **Build** (use a clean env or `pip install --upgrade build twine`):

   ```bash
   cd python
   python -m build
   ```

   This produces `dist/offliner-<version>-py3-none-any.whl` and `dist/offliner-<version>.tar.gz`.

3. **Upload** (TestPyPI first is optional but recommended):

   ```bash
   # TestPyPI
   twine upload --repository testpypi dist/*

   # Production PyPI
   twine upload dist/*
   ```

   When prompted, username is `__token__` and password is your API token (`pypi-...`).

4. **Bump version** in `pyproject.toml` before each new release; PyPI rejects re-uploading the same version.

Optional: configure `~/.pypirc` with `[pypi]` and `username = __token__` / `password = pypi-...` to skip typing the token each time.
