Package: cyberaide-bookmanager
BookmanagerBookmanager is a tool to create a publication from a number of sources on the
internet. It is especially useful to create customized books, lecture notes, or
handouts. Content is best integrated in markdown format as it is very fast to
produce the output. At present we only produce ePubs, but it will be easy to
also create pdf, html, work, odt and others. As we use pandoc we can support the
formats supported by it.Implemented Features:Table of contents with indentation levels can be specified via yamlSpecial variable substitution of elements defined in the yaml fileDocuments are fetched from githubThe documents will be inspected and the images found in them are fetched
(we assume the images are relative to the document, http links will not be modified)Automatic generation of a cover pageOutput is generated in a dest directoryintegration of references via pandoc citerefintegration of Section, Table, Image references via pandoc crossrefIf you like to help improving it get in contact with Gregor von Laszewskilaszewski@gmail.com$pipinstallcyberaide-bookmanagerUsagebookmanager -- a helper to create books from mardown files in a yaml TOC.

Usage:
  bookmanager version
  bookmanager YAML cover
  bookmanager YAML get [--format=FORMAT] [--force]
  bookmanager YAML download
  bookmanager YAML level
  bookmanager YAML epub [--force]
  bookmanager YAML pdf [--force]
  bookmanager YAML html
  bookmanager YAML md
  bookmanager YAML tex
  bookmanager YAML docx
  bookmanager YAML check [--format=FORMAT]
  bookmanager YAML urls [--format=FORMAT]
  bookmanager YAML list [--format=FORMAT] [--details]
  bookmanager YAML pdfget [--force]

Arguments:
  YAML   the yaml file

Options:
  -h --help
  -f, --format=FORMAT     [default: markdown]
  -d, --details           [default: False]

Description:

    In principal you only need one command at this time. All other commands are
    available for test purposes.

    You can create an epub with

      bookmanager YAML get [--format=FORMAT]

        The command searches for all documents within the markdown document and
        fetches them so the document can be created locally. We assume all
        images in the md document are for now not specified via http locations
        but via relative locations. E.g. the images must be in an images folder
        next to the document.

        To view the document use your favourite ePub Reader

    Other commands include:

      bookmanager YAML download [--format=FORMAT]

        downloads the urls into the ./dest directory for local processing

      bookmanager YAML check [--format=FORMAT]

        checks if the urls in the yaml file exist

      bookmanager YAML urls  [--format=FORMAT]

        lists all urls of the yaml file

      bookmanager YAML list [--format=FORMAT] [--details]

        lists the yaml file

        If you specify as format list, you get presented with a list of dicts
        that can be used for further processing

        The list contains the attributes

          basename - the name of the md file without path
          counter - the counter in which the entry appears in the yaml file
          destination - the destination to which the file is copied
          dirname - the path without the basename
          format - the format (md for markdown)
          indent - a default indent that is used for easy printing in hierarchical format
          kind - section or header (a section is a document)
          level - the level this entry occurs
          name - if its a section it defines the section name
          path - the parent path
          prefix - the file prefix (http* or file*)
          title - this is tha basename (we need to add a new mdtitle)
          topic - not used so far
          uri - the location wheer to find the file


    Not implemented are the following features:

    bookmanager YAML pdfget [--force]

        The command searches for all documents within the markdown document and
        fetches them so the document can be created locally. In contrast to the
        get command this command only takes PDF documents as input. The output
        will be a PDF document only.

    YAML Table of Contents format:

      The table of contents for the book can be controlled with a simple yaml
      file that has some specific contextual enhancements. THis include the
      creation of a BOOK section that has the sections outlined in hierarchical
      form, and contains chapter and section headers without links that are
      automatically generated.

    Here is an example of a simple TOC yaml file:

    * https://github.com/cyberaide/bookmanager/blob/master/tests/python.yml

    Bugs and enhancement suggestions:

    * https://github.com/cyberaide/bookmanager/issuesCover PageBook manager can create a simple cover page for you. An example is given athttps://github.com/cyberaide/bookmanager/blob/master/tests/exmaple/cover.pngExample creation$gitclonehttps://github.com/cyberaide/bookmanager.git
$cdbookmanager
$pipinstall-e.
$bookmanagertests/python.yamlget
$opendest/book.epubReferencesExample YAML file:https://github.com/cyberaide/bookmanager/blob/master/tests/python.ymlHome page:https://github.com/cyberaide/bookmanagerRequirementsWe requirepandoc (2.18)pandoc-citeproc (installed from source via stack install)LaTeX such as texlive fullan epub reader such as calibre on Windows or LinuxTo se how to install it, look in our Dockerfile and adapt for your local installBookmanager ServiceA graphical user interface for selecting chapters and changing their order is available athttps://github.com/cyberaide/bookmanager-service/blob/master/README.mdHowever this has not been updated for a while and may likely not work.Example YAML fileThe following is an example for a table of contents yaml file that can be used
to pull together content from different repositories.---
metadata:
  image: "cover.png"
  title: "Introduction to Python"
  subtitle: "for Cloud Computing"
  author: 'Gregor von Laszewski'
  subauthor: "Editor"
  email: "laszewski@gmail.com"
  url: "https://github.com/cyberaide/bookmanager"
  description: "Book creator"
  abstract: "my abstract"
  keywords: "pandoc"
  stylesheet: "epub.css"
  dest: "./dest/book"
  filename: "vonLaszewski-python.epub"
  rights: (c) Gregor von Laszewski, 2018, 2019
git:
  "book": "https://raw.githubusercontent.com/cloudmesh-community/book/master/chapters"
  "bookmanager": "https://raw.githubusercontent.com/cyberaide/bookmanager/master/bookmanager/template"
BOOK:
  - PREFACE:
      - "{git.bookmanager}/disclaimer.md"
  - INTRODUCTION:
    - "{git.book}/prg/python/python-intro.md"
  - INSTALATION:
      - "{git.book}/prg/python/python-install.md"
      - "{git.book}/prg/python/python-install-pyenv.md"
  - FIRST_STEPS:
      - "{git.book}/prg/python/python-interactive.md"
      - "{git.book}/prg/python/python-editor.md"
  - LANGUAGE:
      - "{git.book}/prg/python/python.md"
  - CLOUDMESH_COMMON:
      - "{git.book}/prg/python/cloudmesh/console.md"
      - "{git.book}/prg/python/cloudmesh/dict.md"
      - "{git.book}/prg/python/cloudmesh/shell.md"
      - "{git.book}/prg/python/cloudmesh/stopwatch.md"
  - LIBRARIES:
    - "{git.book}/prg/python/python-libraries.md"
    - "{git.book}/prg/python/python-data.md"
    - "{git.book}/prg/python/python-matplotlib.md"
    - "{git.book}/prg/python/python-docopts.md"
    - "{git.book}/prg/python/cloudmesh/python-cmd5.md"
    - "{git.book}/prg/python/python-cmd.md"
    - "{git.book}/prg/python/opencv/opencv.md"
    - "{git.book}/prg/python/opencv/secchi.md"
  - DATA:
    - "{git.book}/data/formats.md"
  - MONGO:
    - "{git.book}/data/mongodb.md"
    - "{git.book}/data/mongoengine.md"
  - OTHER:
    - "{git.book}/prg/python/python-wordcount.md"
    - "{git.book}/prg/python/numpy/numpy.md"
    - "{git.book}/prg/python/scipy/scipy.md"
    - "{git.book}/prg/python/scikit-learn/scikit-learn.md"
    - "{git.book}/prg/python/random-forest/random-forest.md"
    - "{git.book}/prg/python/python-parallel.md"
    - "{git.book}/prg/python/dask/dask.md"
  - APPLICATIONS:
    - "{git.book}/prg/python/fingerprint/fingerprint.md"
    - "{git.book}/prg/python/facedetection/facedetection.md"
  - REFERENCES:
    - "{git.bookmanager}/empty.md"Alternative InstalationsThe pip install requires that you have pandoc and pandoc-citeref
installed. A NAtive install with pip has the advantage that it may be
much faster than for example an instalation in a virtual machine via
vagrant or a container.However, these instalation methods may be much easier as you do not have
toinstall that dependencies yourself.Instalation in a ContainerThe image for bookmanager is available athttps://hub.docker.com/repository/docker/cloudmesh/bookmanagerTo pull the premade image please usedocker pull cloudmesh/bookmanager:latestNow you can list the images withdocker image listto run a shell in a container that includes bookmanager, please usedockerrun-v`pwd`:/cm-w/cm--rm-itcloudmesh/bookmanager/bin/bashIn that shell you can callbookmanagerInstallation for Developers on macOS and LinuxSee the next section and execute the commands we give in the Makefile
targets while completing the variables accordingly. You can also install
make via choco and use the Makefile.We ar looking a Windows user that can contribute a bat file or a
packaged .exe, or give us the example command for dockerInstalation for Developers on macOS and LinuxHere the preparation steps:mkdircmcdcm
gitclonehttps://github.com/cyberaide/bookmanager.gitcdbookmanager
makeimageNow you can use that image to create books. We will explain here a more advanced exampleTODO: give an example here while compiling our cloud computing bookhttps://github.com/cloudmesh-community/book.gitmakecmThis will log you into the container that alsoo has the cm volume
mounted in /cm now you can use the bookmanager in cm while using the
content that you have in your native OS.In the container you need to do the following:/cm#cdbook
/cm/book#cdbooks/cd516-sp20/
:/cm/book/books/516-sp20#timemakeproceedingsThe output is in/cm/pub/docsin teh container or thepubfolder on
your native OS that you previously created.To show you the performance differences on this more complex example I
copied some information from my computer:Modetime on Gregor's macOSNative34.948sContainer with mount of cm in host system48.782sContainer with locally checked out book folder40.372s