diff --git a/.github/workflows/deploy-web.yaml b/.github/workflows/deploy-web.yaml
new file mode 100644
index 0000000..9c43054
--- /dev/null
+++ b/.github/workflows/deploy-web.yaml
@@ -0,0 +1,23 @@
+name: Build and deploy docs to GitHub Pages
+on:
+ push:
+ branches:
+ - master
+ - main
+permissions:
+ contents: write
+jobs:
+ deploy:
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v3
+ - uses: actions/setup-python@v4
+ with:
+ python-version: 3.x
+ - uses: actions/cache@v2
+ with:
+ key: ${{ github.ref }}
+ path: .cache
+ - run: pip install 'mkdocs-resize-images[dev]'
+ - run: make fixRelativeLinkDocs
+ - run: mkdocs gh-deploy --force
\ No newline at end of file
diff --git a/.github/workflows/mkdoxy-build-test.yaml b/.github/workflows/mkdoxy-build-test.yaml
new file mode 100644
index 0000000..6899a79
--- /dev/null
+++ b/.github/workflows/mkdoxy-build-test.yaml
@@ -0,0 +1,28 @@
+name: MkDoxy build all supported Python versions
+
+on: [push]
+
+jobs:
+ build:
+
+ runs-on: ubuntu-latest
+ strategy:
+ # You can use PyPy versions in python-version.
+ matrix:
+ python-version: ["3.7", "3.8", "3.9", "3.10", "3.11"]
+
+ steps:
+ - uses: actions/checkout@v3
+ - name: Set up Python ${{ matrix.python-version }}
+ uses: actions/setup-python@v4
+ with:
+ python-version: ${{ matrix.python-version }}
+ # You can test your matrix by printing the current Python version
+ - name: Display Python version
+ run: python -c "import sys; print(sys.version)"
+ - name: Install dependencies
+ run: |
+ python -m pip install --upgrade pip
+ pip install 'mkdocs-resize-images[dev]'
+ - name: Build docs
+ run: mkdocs build --clean --strict --verbose
\ No newline at end of file
diff --git a/.gitignore b/.gitignore
index 68bc17f..a0f0c68 100644
--- a/.gitignore
+++ b/.gitignore
@@ -158,3 +158,5 @@ cython_debug/
# and can be added to the global gitignore or merged into this file. For a more nuclear
# option (not recommended) you can uncomment the following to ignore the entire idea folder.
#.idea/
+
+.resize-hash
diff --git a/.idea/.gitignore b/.idea/.gitignore
new file mode 100644
index 0000000..13566b8
--- /dev/null
+++ b/.idea/.gitignore
@@ -0,0 +1,8 @@
+# Default ignored files
+/shelf/
+/workspace.xml
+# Editor-based HTTP Client requests
+/httpRequests/
+# Datasource local storage ignored files
+/dataSources/
+/dataSources.local.xml
diff --git a/.idea/inspectionProfiles/Project_Default.xml b/.idea/inspectionProfiles/Project_Default.xml
new file mode 100644
index 0000000..31216a1
--- /dev/null
+++ b/.idea/inspectionProfiles/Project_Default.xml
@@ -0,0 +1,22 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/inspectionProfiles/profiles_settings.xml b/.idea/inspectionProfiles/profiles_settings.xml
new file mode 100644
index 0000000..105ce2d
--- /dev/null
+++ b/.idea/inspectionProfiles/profiles_settings.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/misc.xml b/.idea/misc.xml
new file mode 100644
index 0000000..a971a2c
--- /dev/null
+++ b/.idea/misc.xml
@@ -0,0 +1,4 @@
+
+
+
+
\ No newline at end of file
diff --git a/.idea/mkdocs-resize-images.iml b/.idea/mkdocs-resize-images.iml
new file mode 100644
index 0000000..909438d
--- /dev/null
+++ b/.idea/mkdocs-resize-images.iml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/modules.xml b/.idea/modules.xml
new file mode 100644
index 0000000..4176176
--- /dev/null
+++ b/.idea/modules.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/vcs.xml b/.idea/vcs.xml
new file mode 100644
index 0000000..35eb1dd
--- /dev/null
+++ b/.idea/vcs.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Makefile b/Makefile
new file mode 100755
index 0000000..b97f815
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,40 @@
+.PHONY: package release release-test clean reviewCode docs-serve docs-build
+
+# Packaging
+package:
+ rm -f dist/*
+ python3 setup.py sdist bdist_wheel
+
+install: package
+ python3 -m pip install --no-deps --force dist/*.whl
+
+install-dev: package
+ python3 -m pip install --force --editable .
+
+release: package
+ twine upload --repository pypi dist/*
+
+release-test: package
+ twine upload --repository testpypi dist/*
+
+clean:
+ rm -rf dist build
+
+
+fixRelativeLinkDocs:
+ # change ./docs/ to ./
+ sed 's/\.\/docs\//\.\//g' README.md > docs/README.md
+
+# Testing
+reviewCode:
+ sourcery review mkdoxy --in-place
+
+install-dev:
+ python3 -m pip install --force --editable .
+
+# Documentation
+docs-serve: fixRelativeLinkDocs
+ mkdocs serve
+
+docs-build: fixRelativeLinkDocs
+ mkdocs build
\ No newline at end of file
diff --git a/README.md b/README.md
index c7e9c11..bdfdcb3 100644
--- a/README.md
+++ b/README.md
@@ -1 +1,67 @@
-# mkdocs-resize-images
\ No newline at end of file
+# MkDocs Resize Images Plugin
+
+
+
+
+
+
+
+
+
+
+
+This MkDocs plugin finds all folders with a certain name, by default `assets-large`, resizes all images in those folders according to the plugin configuration.
+Then saves the resized images in a different folder, by default `assets`.
+The plugin also supports caching: if a file has not changed since the last time the plugin ran, it won't be processed again.
+
+## Installation
+
+Install the plugin using pip from [PyPI](https://pypi.org/project/mkdocs-resize-images/):
+
+```bash
+pip install mkdocs-resize-images
+```
+
+Activate the plugin in `mkdocs.yml`:
+
+```yaml
+plugins:
+ - search
+ - resize-images
+```
+
+Create `.gitignore` file in your project root directory and add the following line to it:
+
+```bash
+assets-large # or whatever you have set as source-dir
+
+.resize-hash # if you have enabled caching
+```
+
+
+## Usage
+
+By default, the plugin will look for images in all directories named assets-large, resize them to 800x600 pixels, and then save the resized images in assets directories in the same parent directories as the assets-large directories.
+
+You can configure the plugin in your mkdocs.yml:
+
+```yaml
+plugins:
+ - search
+ - resize-images:
+ source-dir: assets-large
+ target-dir: assets
+ enable_cache: True
+ size: [800, 600]
+ extensions: ['.jpg', '.jpeg', '.png', '.gif', '.svg']
+```
+
+`source-dir`: The name of the directories to search for images to resize. Default is `assets-large`.
+
+`target-dir`: The name of the directories to save the resized images in. Default is `assets`.
+
+`size`: The size to resize the images to, specified as [width, height]. Default is `[800, 600]`.
+
+`extensions`: List of image file extensions to consider for resizing. The plugin will look for images with these extensions in both lower and upper case. Default is `['.jpg', '.jpeg', '.png', '.gif', '.svg']`.
+
+`enable_cache`: Whether to enable caching. If enabled, the plugin will check if a file has changed since the last time the plugin ran, and if not, it won't process the file again. Default is `True`.
\ No newline at end of file
diff --git a/docs/CNAME b/docs/CNAME
new file mode 100644
index 0000000..7fe3f8a
--- /dev/null
+++ b/docs/CNAME
@@ -0,0 +1 @@
+resize.kubaandrysek.cz
\ No newline at end of file
diff --git a/docs/README.md b/docs/README.md
new file mode 100644
index 0000000..bdfdcb3
--- /dev/null
+++ b/docs/README.md
@@ -0,0 +1,67 @@
+# MkDocs Resize Images Plugin
+
+