kekkoudesu / Booktype-py3

Booktype rewrite in Python 3 for the modern world.
https://booktype.org
GNU Affero General Public License v3.0
0 stars 0 forks source link

Booktype

Booktype makes it easier and quicker for authors, companies and organisations to edit and publish books. It imports DOCX or EPUB files, converts them into single-source HTML for online editing and proofreading, and uses CSS Paged Media to produce good-looking output for print, the open web, and almost any ebook reader, in seconds. Booktype facilitates collaborative, agile production across time zones and borders.

Booktype is built on the Django web framework and many great Python libraries.

The Booktype user interface is being translated into many languages by our community of contributors. Your help with development or translation is always welcome!

Installation

Installation instructions for Booktype on GNU/Linux and OS X can be found in the Booktype user manual.

Files for installation using Docker can be found in the Booktype-docker repository.

More information

How to contribute

  1. Fork the booktype/Booktype repository. Please see GitHub help on forking or use this direct link to fork.
  2. Clone your fork to your local machine.
  3. Create a new local branch.
  4. Run tests and make sure your contribution works correctly.
  5. Create a pull request with details of your new feature, bugfix or other contribution.
  6. Sign and return the contributor agreement paperwork, either for an individual, or an entity such as a company, university or other organisation. This paperwork gives us the right to use your work in Booktype, and makes it clear that you retain ownership of the copyright in your contribution.

Testing

Booktype uses the py.test testing framework with the pytest-django plugin. It makes the testing process easier, and also provides the ability to run ready-made django (unittest) tests.

To run tests:

  1. Open a terminal and activate the virtual environment (Booktype must be installed).
  2. Go to (cd command) instance root (folder with manage.py and pytest.ini file).
  3. Run the py.test command.
  4. If you want pytest to print test coverage information, you should run py.test --cov-report term-missing --cov=path/to/Booktype. You can read more about coverage here: pytest-cov

License

Booktype is licensed under the GNU AGPL license.

Python 3 update

Why?

I saw booktype a few years ago and was intrigued. I tried to follow directions but just didn't have an easy time of it. Being that the main repo is no longer maintained, options were limited. So I learned enough python 2 and 3 to make corrections to get it running.

What?

The docker files should be enough to get a running production environment. The image is already large with the additions (I had some issues using python:3-slim) so I did not include calibre for mobi support. It has been depracated and epub is recommended by Amazon since 2022 anyway.

I did use most of the files from https://github.com/booktype/booktype-docker.git in addition to this forked repo. I have also updated most of the dependencies to be as up to date as pip-compile allows.

What else?

There are still some issues in import/export that I want to sort out, mostly toc and styling. All of the tests currently pass without error or warning. I altered some string comparisons in favor of dict values.