Skip to main content

A tool for quick and easy Markdown project documentation.

Project description

DocServe

A tool for quick and easy Markdown project documentation.

DocServe renders an adapted Markdown to provide:

  • Images, Video, YouTube links, CSV tables.
  • Code highlighting.
  • File download blocks.
  • Lists and Tables.
  • Document defined template selection.
  • Document Meta-data.
  • Auto-generated index sidebar.

DocServe can be used as a server to:

  • Output documents as insecure HTML on a localhost.
  • Output documents as PDF files via the HTML server.

DocServe can also:

  • Create a static set of HTML files that contain the documentation and related resources.

Basic usage with the default template:

python -m pip install docserve
mkdir docs
vim docs/home.md # then add some documentation
docserve

Basic usage with a custom template:

python -m pip install docserve
docserve --new # copies sample style and docs into working directory
docserve # run the server

Roadmap

We are requesting pull-requests for the following features:

  • Find orphans href, embed, img, video, audio
  • Test cases and CI steps
  • Add write-good CI step.
  • Clearer heading CSS. H1 and H2 are confusing.
  • PDF Rendering Plugin using iFrame / embed.
  • Table CSS to include Images.
  • Table CSS to include background and smaller text.
  • Image in li to display:block.
  • Multiple nav entries.
  • Rebuild index as first action to avoid reloading.
  • Checkbox list CSS.
  • V-scroll in nav.
  • Lightbox for images.
  • Reload on new files.
  • Better support for missing or no metadata (determine it from the directory structure).
  • Windows EXE bundle for non-developer use.
  • Responsive design in default template.
  • Add support for changing the default Flask host and port.
  • Generate a large PDF file made from multiple documents (including table of contents with page numbers).
  • Gravatar print CSS / absent internet in the default theme.
  • Examples of Python extensions and SCSS extensions.
  • New template themes.

Getting Started

If you are running from the script:

python docserve.py                  # start a server on localhost:5000

python docserve.py --html           # freeze the server into a static site as a set of HTML files
                                    # this will exit with -1 if there was a problem parsing any file

python docserve.py --pdf            # generate a set of pdf files for each .md file - won't pull through
                                    # static resource files like with the --html command

python docserve.py --new            # copy default templates and sample docs into the working directory
                                    # and update the config too, only if they don't already exist

python docserve.py --new-force      # copy default templates and sample docs into the working directory
                                    # and update the config too, this will overwrite any existing docs or
                                    # configs.


python docserve.py --dirs           # display all the different directories docserve will use to generate
                                    # the documentation

python docserve.py --find-orphans   # display unreferenced media assets in the documentation

Writing Documentation

Documents are managed using meta-data at the top of each document. Documents can select which template they present themselves with. Documents must end in lowercase .md. For example: mydocument.md.

Environment variables

  • DS_FLASK_DEBUG flag for enabling or disabling flask debug. Defaults to TRUE.
  • DS_FLASK_CHANGERELOAD flag for reloading the server when a file changes. Defaults to TRUE. If set, this forces DS_FLASK_DEBUG to TRUE.
  • DS_WKHTMLTOPDF the path to the WkHTMLtoPDF binary. Defaults to wkhtmltopdf_0.12.5.exe.
  • DS_DOCS_DIR the path to the directory that contains the documents. Defaults to docs.
  • DS_STYLE_DIR the path to the directory that contains the style templates and resources. Defaults to style.
  • DS_PROJECT_LOGO the path to the project logo PNG file. Defaults to logo.png in the current working directory.

Development

Virtual Environment

python -m virtualenv env
env/Scripts/activate.bat # or the bash equivalent
pip install -r requirements.txt
python docserve.py # with options
pip install flake8
flake8 docserve.py --max-line-length=120

WkHTMLtoPDF

To enable PDF output, WkHTMLtoPDF must be set in the config DS_WKHTMLTOPDF or wkhtmltopdf_0.12.5.exe placed in working directory.

This build uses version 0.12.5. Get it from here: https://wkhtmltopdf.org/downloads.html

SCSS

The default theme is built using SCSS.

The SASSC compiler can be found here: http://libsass.ocbnet.ch/installer/ Usage: sassc style/static/default.scss style/static/default.css

If you want it to auto-watch, run as admin from this directory, and remember to disable your browser cache:

pip install watchdog
watchmedo shell-command --patterns="*.scss" --recursive --command='echo "${watch_src_path}" && sassc style/static/default.scss style/static/default.css' .

Style

We use flake8 docserve.py --max-line-length=110 to static check the code.

Rebuilding the Package

python -m pip install --user --upgrade setuptools wheel twine
python setup.py sdist bdist_wheel

python -m twine upload dist/*

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

docserve-0.9.4.tar.gz (8.5 MB view details)

Uploaded Source

Built Distribution

docserve-0.9.4-py3-none-any.whl (8.5 MB view details)

Uploaded Python 3

File details

Details for the file docserve-0.9.4.tar.gz.

File metadata

  • Download URL: docserve-0.9.4.tar.gz
  • Upload date:
  • Size: 8.5 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.11.0 pkginfo/1.4.2 requests/2.9.1 setuptools/40.0.0 requests-toolbelt/0.8.0 tqdm/4.24.0 CPython/3.6.2

File hashes

Hashes for docserve-0.9.4.tar.gz
Algorithm Hash digest
SHA256 eaa5af40d8f428c051ed1b47e364822b3ba9f8879457f646c788bbf7fa51dbc9
MD5 8eb48ea41a32a4b504a1b4a98489b772
BLAKE2b-256 8fa2d9da4a7b52f463e3984318ce8ac4b6f7783a995b3d35d8aeaa82bc002d45

See more details on using hashes here.

File details

Details for the file docserve-0.9.4-py3-none-any.whl.

File metadata

  • Download URL: docserve-0.9.4-py3-none-any.whl
  • Upload date:
  • Size: 8.5 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.11.0 pkginfo/1.4.2 requests/2.9.1 setuptools/40.0.0 requests-toolbelt/0.8.0 tqdm/4.24.0 CPython/3.6.2

File hashes

Hashes for docserve-0.9.4-py3-none-any.whl
Algorithm Hash digest
SHA256 576f7f42275f43fa30e1b669a1f22eabc83e48e43b50e311a704de4b36699c56
MD5 6bf1a42f88e5bb581891ecae9cdab012
BLAKE2b-256 2f03d47023110bc53733c401ef722e8ff58d43b02581ad8b6c4bbeb65062bde9

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page