abow


Nameabow JSON
Version 0.5.1 PyPI version JSON
download
home_page
SummaryA Bottle of Wiki — personal wiki
upload_time2023-08-18 20:23:08
maintainer
docs_urlNone
author
requires_python>=3.8
licenseAGPL-3.0-or-later
keywords bottle markdown wiki
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # A Bottle of Wiki

A Bottle of Wiki (abbreviated _abow_) is a personal wiki. Use it for viewing and
editing pages written in markdown directly in your browser. It is made to be
usable both on mobile and desktop.

While you won't be hosting Wikipedia on a Bottle of Wiki, it is easy to deploy
and does not require a database: pages are saved as text files. It has no notion
of users, access rights, page history, comments, discussion or even edit
conflict. It is meant to be used by one person.

A Bottle of Wiki is a wiki built with [bottle](https://bottlepy.org/).

## Installation

To run a Bottle of Wiki, you will need python3 installed on a unix-like machine.

### Test (_a quick sip_)

The easiest way to test a Bottle of Wiki is to install it in a virtual
environment. You can do so with the following commands:
```sh
python3 -m venv abow
source abow/bin/activate
```
Or use your favorite virtualenv management tool.

Then install a Bottle of Wiki and its dependencies with pip:
```sh
pip install abow
```

_Optional_: If you want syntax highlighting when displaying code in your page,
install the extra:
```sh
pip install abow[extra]
```

Finally start the application with:
```sh
bottle.py abow:application
```
If all went well, you can point your browser to <http://127.0.0.1:8080/> and
start editing. The pages will be saved in the current directory. If you are
looking for inspiration, a few markdown pages (including this README) are part
of the [source distribution][sdist].

[sdist]:https://files.pythonhosted.org/packages/source/a/abow/abow-0.5.1.tar.gz

### Deployment (_the whole bottle_)

A Bottle of Wiki is a WSGI application, as such it can be hosted by any
WSGI-capable web server. The documentation of bottle has a page dedicated to the
[deployment](https://bottlepy.org/docs/stable/deployment.html) that can be used
as inspiration. Detailing how to host a WSGI application is beyond the scope of
this README as there are many options to choose from, but here is the most
important piece of advice:

**Make sure the access is restricted.** A Bottle of Wiki has no concept of login
or user, so anyone with access can edit the pages. You can limit the access by
setting up HTTP authentication and encryption on your web server. You can also
serve only on a local network and access it via a VPN.

### Configuration

A Bottle of Wiki can be customized with a .ini configuration file. A example is
provided in the source distribution, or you can generate it with the following
command:
```sh
python -c "import abow.config;abow.config.print_file()"
```

The example configuration is heavily commented and should be self-explanatory.
It enable you to change where a Bottle of Wiki stores the pages and the locale
used. You can also host the static assets (css, js, ...) outside of the
application and serve them directly from a web server.

The configuration is read from the following locations:

* `/etc/abow/config`
* `$XDG_CONFIG_HOME/abow/config`, defaulting to `~/.config/abow/config`
* `$ABOW_CONFIG`, if defined

Paths are tried one after one and each configuration file can override the
settings of the previous ones.

## Built With

A Bottle of Wiki depends on the following python packages:

* [Bottle](https://bottlepy.org/) -- The WSGI micro-framework used
* [Python-Markdown](https://python-markdown.github.io/)
  -- The markdown interpreter
* [PyMdown Extensions](https://facelessuser.github.io/pymdown-extensions/)
  -- Extensions for Python Markdown
* [Pygments](https://pygments.org/) -- Syntax highlighter (_optional_)

The following css and javascript packages are included:

* [Bootstrap](https://getbootstrap.com) version 5.3.0 -- CSS Toolkit
* [Autosize](http://www.jacklmoore.com/autosize/) version 5.0.0
  -- Script to automatically adjust textarea height

## Things to do

### Detection of edit conflict

Right now if you edit a page from two browsers you can lose some modifications.
Detecting that the page has been changed on the server while being edited would
be nice if you want to use a Bottle of Wiki with more than one user.

### Page history

While you can avoid losing changes by setting up a backup on the server (and you
should anyway), integrating the page history in the wiki would make is easier to
review the page modifications. Look into [dulwich](https://www.dulwich.io/) for
that?

## License

This project is licensed under the Affero General Public License version 3 or later.

            

Raw data

            {
    "_id": null,
    "home_page": "",
    "name": "abow",
    "maintainer": "",
    "docs_url": null,
    "requires_python": ">=3.8",
    "maintainer_email": "",
    "keywords": "bottle,markdown,wiki",
    "author": "",
    "author_email": "Beno\u00eet Monin <benoit.monin@gmx.fr>",
    "download_url": "https://files.pythonhosted.org/packages/29/24/78715f8e78bffedd2d88e8367f090fdc7d90854f4cd284c24361eabb7094/abow-0.5.1.tar.gz",
    "platform": null,
    "description": "# A Bottle of Wiki\n\nA Bottle of Wiki (abbreviated _abow_) is a personal wiki. Use it for viewing and\nediting pages written in markdown directly in your browser. It is made to be\nusable both on mobile and desktop.\n\nWhile you won't be hosting Wikipedia on a Bottle of Wiki, it is easy to deploy\nand does not require a database: pages are saved as text files. It has no notion\nof users, access rights, page history, comments, discussion or even edit\nconflict. It is meant to be used by one person.\n\nA Bottle of Wiki is a wiki built with [bottle](https://bottlepy.org/).\n\n## Installation\n\nTo run a Bottle of Wiki, you will need python3 installed on a unix-like machine.\n\n### Test (_a quick sip_)\n\nThe easiest way to test a Bottle of Wiki is to install it in a virtual\nenvironment. You can do so with the following commands:\n```sh\npython3 -m venv abow\nsource abow/bin/activate\n```\nOr use your favorite virtualenv management tool.\n\nThen install a Bottle of Wiki and its dependencies with pip:\n```sh\npip install abow\n```\n\n_Optional_: If you want syntax highlighting when displaying code in your page,\ninstall the extra:\n```sh\npip install abow[extra]\n```\n\nFinally start the application with:\n```sh\nbottle.py abow:application\n```\nIf all went well, you can point your browser to <http://127.0.0.1:8080/> and\nstart editing. The pages will be saved in the current directory. If you are\nlooking for inspiration, a few markdown pages (including this README) are part\nof the [source distribution][sdist].\n\n[sdist]:https://files.pythonhosted.org/packages/source/a/abow/abow-0.5.1.tar.gz\n\n### Deployment (_the whole bottle_)\n\nA Bottle of Wiki is a WSGI application, as such it can be hosted by any\nWSGI-capable web server. The documentation of bottle has a page dedicated to the\n[deployment](https://bottlepy.org/docs/stable/deployment.html) that can be used\nas inspiration. Detailing how to host a WSGI application is beyond the scope of\nthis README as there are many options to choose from, but here is the most\nimportant piece of advice:\n\n**Make sure the access is restricted.** A Bottle of Wiki has no concept of login\nor user, so anyone with access can edit the pages. You can limit the access by\nsetting up HTTP authentication and encryption on your web server. You can also\nserve only on a local network and access it via a VPN.\n\n### Configuration\n\nA Bottle of Wiki can be customized with a .ini configuration file. A example is\nprovided in the source distribution, or you can generate it with the following\ncommand:\n```sh\npython -c \"import abow.config;abow.config.print_file()\"\n```\n\nThe example configuration is heavily commented and should be self-explanatory.\nIt enable you to change where a Bottle of Wiki stores the pages and the locale\nused. You can also host the static assets (css, js, ...) outside of the\napplication and serve them directly from a web server.\n\nThe configuration is read from the following locations:\n\n* `/etc/abow/config`\n* `$XDG_CONFIG_HOME/abow/config`, defaulting to `~/.config/abow/config`\n* `$ABOW_CONFIG`, if defined\n\nPaths are tried one after one and each configuration file can override the\nsettings of the previous ones.\n\n## Built With\n\nA Bottle of Wiki depends on the following python packages:\n\n* [Bottle](https://bottlepy.org/) -- The WSGI micro-framework used\n* [Python-Markdown](https://python-markdown.github.io/)\n  -- The markdown interpreter\n* [PyMdown Extensions](https://facelessuser.github.io/pymdown-extensions/)\n  -- Extensions for Python Markdown\n* [Pygments](https://pygments.org/) -- Syntax highlighter (_optional_)\n\nThe following css and javascript packages are included:\n\n* [Bootstrap](https://getbootstrap.com) version 5.3.0 -- CSS Toolkit\n* [Autosize](http://www.jacklmoore.com/autosize/) version 5.0.0\n  -- Script to automatically adjust textarea height\n\n## Things to do\n\n### Detection of edit conflict\n\nRight now if you edit a page from two browsers you can lose some modifications.\nDetecting that the page has been changed on the server while being edited would\nbe nice if you want to use a Bottle of Wiki with more than one user.\n\n### Page history\n\nWhile you can avoid losing changes by setting up a backup on the server (and you\nshould anyway), integrating the page history in the wiki would make is easier to\nreview the page modifications. Look into [dulwich](https://www.dulwich.io/) for\nthat?\n\n## License\n\nThis project is licensed under the Affero General Public License version 3 or later.\n",
    "bugtrack_url": null,
    "license": "AGPL-3.0-or-later",
    "summary": "A Bottle of Wiki \u2014 personal wiki",
    "version": "0.5.1",
    "project_urls": {
        "Homepage": "https://pypi.org/project/abow/"
    },
    "split_keywords": [
        "bottle",
        "markdown",
        "wiki"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "61856895a80b205bc467e6f10259188b754c83b062d749434aa4e0bd3d7c0ea0",
                "md5": "cb15e4f9d3b66ea1eda639c3af89c4e2",
                "sha256": "fa080d7a8fab213f90790445ac3088056c9a8db2a39c391aa92d02eb2c52f96f"
            },
            "downloads": -1,
            "filename": "abow-0.5.1-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "cb15e4f9d3b66ea1eda639c3af89c4e2",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.8",
            "size": 112770,
            "upload_time": "2023-08-18T20:23:06",
            "upload_time_iso_8601": "2023-08-18T20:23:06.750472Z",
            "url": "https://files.pythonhosted.org/packages/61/85/6895a80b205bc467e6f10259188b754c83b062d749434aa4e0bd3d7c0ea0/abow-0.5.1-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "292478715f8e78bffedd2d88e8367f090fdc7d90854f4cd284c24361eabb7094",
                "md5": "c7932b66cc3ff6be000b991d4c438851",
                "sha256": "1d82f9ca705ce85355aa3b30d114b6302dee3faa8ba54f7d3222b8c4d491641a"
            },
            "downloads": -1,
            "filename": "abow-0.5.1.tar.gz",
            "has_sig": false,
            "md5_digest": "c7932b66cc3ff6be000b991d4c438851",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.8",
            "size": 107925,
            "upload_time": "2023-08-18T20:23:08",
            "upload_time_iso_8601": "2023-08-18T20:23:08.282021Z",
            "url": "https://files.pythonhosted.org/packages/29/24/78715f8e78bffedd2d88e8367f090fdc7d90854f4cd284c24361eabb7094/abow-0.5.1.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2023-08-18 20:23:08",
    "github": false,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "lcname": "abow"
}
        
Elapsed time: 0.11002s