# Mindtouch scraper
This scraper transform content on a Mindtouch / Nice CXone Expert instance into a in ZIM file, a clean and user friendly format for storing content for offline usage.
While meant to be generic for any Mindtouch instance, it has so far been tested only on libretexts.org instance, so it is highly expectable some rough edges might need to be polished until it works on all Mindtouch instance.
[![CodeFactor](https://www.codefactor.io/repository/github/openzim/mindtouch/badge)](https://www.codefactor.io/repository/github/openzim/mindtouch)
[![License: GPL v3](https://img.shields.io/badge/License-GPLv3-blue.svg)](https://www.gnu.org/licenses/gpl-3.0)
[![codecov](https://codecov.io/gh/openzim/mindtouch/branch/main/graph/badge.svg)](https://codecov.io/gh/openzim/mindtouch)
[![PyPI version shields.io](https://img.shields.io/pypi/v/mindtouch2zim.svg)](https://pypi.org/project/mindtouch2zim/)
[![PyPI - Python Version](https://img.shields.io/pypi/pyversions/mindtouch2zim.svg)](https://pypi.org/project/mindtouch2zim)
[![Docker](https://ghcr-badge.egpl.dev/openzim/mindtouch/latest_tag?label=docker)](https://ghcr.io/openzim/mindtouch)
## Installation
There are three main ways to install and use `mindtouch2zim` from most recommended to least:
<details>
<summary>Install using a pre-built container</summary>
1. Download the image using `docker`:
```sh
docker pull ghcr.io/openzim/mindtouch
```
</details>
<details>
<summary>Build your own container</summary>
1. Clone the repository locally:
```sh
git clone https://github.com/openzim/mindtouch.git && cd mindtouch
```
1. Build the image:
```sh
docker build -t ghcr.io/openzim/mindtouch .
```
</details>
<details>
<summary>Run the software locally using Hatch</summary>
1. Clone the repository locally:
```sh
git clone https://github.com/openzim/mindtouch.git && cd mindtouch
```
1. Install [Hatch](https://hatch.pypa.io/):
```sh
pip3 install hatch
```
1. Start a hatch shell to install software and dependencies in an isolated virtual environment.
```sh
hatch shell
```
1. Run the `mindtouch2zim` command:
```sh
mindtouch2zim --help
```
</details>
## Usage
```sh
# Get help
docker run -v output:/output ghcr.io/openzim/mindtouch mindtouch2zim --help
```
```sh
# Create a ZIM for https://geo.libretexts.org
docker run -v output:/output ghcr.io/openzim/mindtouch mindtouch2zim --library-url https://geo.libretexts.org --name libretexts.org_en_geo --creator LibreTexts --title "LibreTexts Geosciences" --description "Geosciences courses from libretexts.org"
```
## Developing
Use the commands below to set up the project once:
```sh
# Install hatch if it isn't installed already.
❯ pip install hatch
# Local install (in default env) / re-sync packages
❯ hatch run pip list
# Set-up pre-commit
❯ pre-commit install
```
The following commands can be used to build and test the scraper:
```sh
# Show scripts
❯ hatch env show
# linting, testing, coverage, checking
❯ hatch run lint:all
❯ hatch run lint:fixall
# run tests on all matrixed' envs
❯ hatch run test:run
# run tests in a single matrixed' env
❯ hatch env run -e test -i py=3.12 coverage
# run static type checks
❯ hatch env run check:all
# building packages
❯ hatch build
```
### Contributing
This project adheres to openZIM's [Contribution Guidelines](https://github.com/openzim/overview/wiki/Contributing).
This project has implemented openZIM's [Python bootstrap, conventions and policies](https://github.com/openzim/_python-bootstrap/blob/main/docs/Policy.md) **v1.0.3**.
See details for contributions in [CONTRIBUTING.md](CONTRIBUTING.md).
Raw data
{
"_id": null,
"home_page": null,
"name": "mindtouch2zim",
"maintainer": null,
"docs_url": null,
"requires_python": "<3.13,>=3.12",
"maintainer_email": null,
"keywords": "cxone, expert, mindouch, nice, offline, openzim, zim",
"author": null,
"author_email": "openZIM <dev@openzim.org>",
"download_url": "https://files.pythonhosted.org/packages/c6/52/8e694ae00972c04349c8acc904619515ebeb19d2741b104c4bd52bd55a3f/mindtouch2zim-0.1.1.tar.gz",
"platform": null,
"description": "# Mindtouch scraper\n\nThis scraper transform content on a Mindtouch / Nice CXone Expert instance into a in ZIM file, a clean and user friendly format for storing content for offline usage.\n\nWhile meant to be generic for any Mindtouch instance, it has so far been tested only on libretexts.org instance, so it is highly expectable some rough edges might need to be polished until it works on all Mindtouch instance.\n\n[![CodeFactor](https://www.codefactor.io/repository/github/openzim/mindtouch/badge)](https://www.codefactor.io/repository/github/openzim/mindtouch)\n[![License: GPL v3](https://img.shields.io/badge/License-GPLv3-blue.svg)](https://www.gnu.org/licenses/gpl-3.0)\n[![codecov](https://codecov.io/gh/openzim/mindtouch/branch/main/graph/badge.svg)](https://codecov.io/gh/openzim/mindtouch)\n[![PyPI version shields.io](https://img.shields.io/pypi/v/mindtouch2zim.svg)](https://pypi.org/project/mindtouch2zim/)\n[![PyPI - Python Version](https://img.shields.io/pypi/pyversions/mindtouch2zim.svg)](https://pypi.org/project/mindtouch2zim)\n[![Docker](https://ghcr-badge.egpl.dev/openzim/mindtouch/latest_tag?label=docker)](https://ghcr.io/openzim/mindtouch)\n\n## Installation\n\nThere are three main ways to install and use `mindtouch2zim` from most recommended to least:\n\n<details>\n<summary>Install using a pre-built container</summary>\n\n1. Download the image using `docker`:\n\n ```sh\n docker pull ghcr.io/openzim/mindtouch\n ```\n\n</details>\n<details>\n<summary>Build your own container</summary>\n\n1. Clone the repository locally:\n\n ```sh\n git clone https://github.com/openzim/mindtouch.git && cd mindtouch\n ```\n\n1. Build the image:\n\n ```sh\n docker build -t ghcr.io/openzim/mindtouch .\n ```\n\n</details>\n<details>\n<summary>Run the software locally using Hatch</summary>\n\n1. Clone the repository locally:\n\n ```sh\n git clone https://github.com/openzim/mindtouch.git && cd mindtouch\n ```\n\n1. Install [Hatch](https://hatch.pypa.io/):\n\n ```sh\n pip3 install hatch\n ```\n\n1. Start a hatch shell to install software and dependencies in an isolated virtual environment.\n\n ```sh\n hatch shell\n ```\n\n1. Run the `mindtouch2zim` command:\n\n ```sh\n mindtouch2zim --help\n ```\n\n</details>\n\n## Usage\n\n```sh\n# Get help\ndocker run -v output:/output ghcr.io/openzim/mindtouch mindtouch2zim --help\n```\n\n```sh\n# Create a ZIM for https://geo.libretexts.org\ndocker run -v output:/output ghcr.io/openzim/mindtouch mindtouch2zim --library-url https://geo.libretexts.org --name libretexts.org_en_geo --creator LibreTexts --title \"LibreTexts Geosciences\" --description \"Geosciences courses from libretexts.org\"\n```\n\n## Developing\n\nUse the commands below to set up the project once:\n\n```sh\n# Install hatch if it isn't installed already.\n\u276f pip install hatch\n\n# Local install (in default env) / re-sync packages\n\u276f hatch run pip list\n\n# Set-up pre-commit\n\u276f pre-commit install\n```\n\nThe following commands can be used to build and test the scraper:\n\n```sh\n# Show scripts\n\u276f hatch env show\n\n# linting, testing, coverage, checking\n\u276f hatch run lint:all\n\u276f hatch run lint:fixall\n\n# run tests on all matrixed' envs\n\u276f hatch run test:run\n\n# run tests in a single matrixed' env\n\u276f hatch env run -e test -i py=3.12 coverage\n\n# run static type checks\n\u276f hatch env run check:all\n\n# building packages\n\u276f hatch build\n```\n\n### Contributing\n\nThis project adheres to openZIM's [Contribution Guidelines](https://github.com/openzim/overview/wiki/Contributing).\n\nThis project has implemented openZIM's [Python bootstrap, conventions and policies](https://github.com/openzim/_python-bootstrap/blob/main/docs/Policy.md) **v1.0.3**.\n\nSee details for contributions in [CONTRIBUTING.md](CONTRIBUTING.md).\n",
"bugtrack_url": null,
"license": "GPL-3.0-or-later",
"summary": "Make ZIM file from Mindtouch / Nice CXone Expert libraries",
"version": "0.1.1",
"project_urls": {
"Donate": "https://www.kiwix.org/en/support-us/",
"Homepage": "https://www.kiwix.org"
},
"split_keywords": [
"cxone",
" expert",
" mindouch",
" nice",
" offline",
" openzim",
" zim"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "2463706b5a6efc145b455928313a835c531170ec1a714c0bce57e1e2ca65ba3e",
"md5": "5add77cd23a46bbff2e4994241b79aab",
"sha256": "586e9cfb2bd1a55e17c0ecd7bab3dd5ffc0c51de649e5091131ddebbd790fd34"
},
"downloads": -1,
"filename": "mindtouch2zim-0.1.1-py3-none-any.whl",
"has_sig": false,
"md5_digest": "5add77cd23a46bbff2e4994241b79aab",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": "<3.13,>=3.12",
"size": 5367646,
"upload_time": "2025-01-14T16:53:36",
"upload_time_iso_8601": "2025-01-14T16:53:36.121674Z",
"url": "https://files.pythonhosted.org/packages/24/63/706b5a6efc145b455928313a835c531170ec1a714c0bce57e1e2ca65ba3e/mindtouch2zim-0.1.1-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "c6528e694ae00972c04349c8acc904619515ebeb19d2741b104c4bd52bd55a3f",
"md5": "0cceb39d6b80c486347d5ef3b7528a98",
"sha256": "ad3499e634da4ac4fd27d564fb1c939548cc3f074a2c11767e47504cda94b600"
},
"downloads": -1,
"filename": "mindtouch2zim-0.1.1.tar.gz",
"has_sig": false,
"md5_digest": "0cceb39d6b80c486347d5ef3b7528a98",
"packagetype": "sdist",
"python_version": "source",
"requires_python": "<3.13,>=3.12",
"size": 5275059,
"upload_time": "2025-01-14T16:53:39",
"upload_time_iso_8601": "2025-01-14T16:53:39.670607Z",
"url": "https://files.pythonhosted.org/packages/c6/52/8e694ae00972c04349c8acc904619515ebeb19d2741b104c4bd52bd55a3f/mindtouch2zim-0.1.1.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-01-14 16:53:39",
"github": false,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"lcname": "mindtouch2zim"
}