Security News
Introducing the Socket Python SDK
The initial version of the Socket Python SDK is now on PyPI, enabling developers to more easily interact with the Socket REST API in Python projects.
Disseminate is a document processing system and static site generator for textbooks, books, novels, articles, reports and essays.
Disseminate is a markup language, like Markdown or reStructuredText,
written in disseminate text format (.dm
) that aims to have a simple and
consistent syntax, to produce clean and simple project structure and to contain
useful functionality for academic and non-academics. Projects may contain a
single document or a tree of interconnected documents comprising chapters,
raw data, figures and images in a source controlled repository. The Disseminate
software is coded in Python 3 and disseminate projects can be converted to a
static website with .html
, .txt
, .tex
, .pdf
and .epub
targets.
This is @b{my} sentence.
or @img[width=40%]{src/figure-1.png}
..html
), .pdf
, .epub
, .txt
or .tex
.This equation, @eq{y = mx + b}, is inline
@img[width=80% width.html=40%]{figures/fig1.png}
Sphinx specializes in code documentation whereas Disseminate focuses on the general writing of books, articles, essays and reports.
Disseminate is current available for MacOS and Linux operating systems.
Disseminate can be installed with pip, Homebrew or as a github
clone (Step 1). The base Disseminate installation can render documents
in html
, txt
and epub
formats.
Optional, additional dependencies may be installed (Step 2) to render
documents in pdf
format and to include converters (builders) in
different formats (Step 2).
The following installation options require an open terminal in MacOS or Linux.
brew install dissemia/dissemia/disseminate
pip install disseminate
(Optional) To render in pdf
format, install either MacTeX, TeXLive
or some other distribution. These and other dependencies can be installed with
a package manager like Homebrew or apt get install
.
The github repository can be installed in a python virtual environment. The
base Disseminate project can be used to render documents in html
and
epub
formats.
mkvirtualenv -p python3.7 disseminate
git clone https://github.com/dissemia/disseminate.git
cd disseminate/
make install ## or python setup.py install
Homebrew can be used to install a basic LaTeX distribution of TeXLive.
brew install --cask basictex
bash --login
After install basictex
, additional LaTeX packages are install with
TeX Live.
sudo tlmgr update --self
sudo tlmgr install easylist enumitem tufte-latex
Alternatively, TeXLive can be installed from the TeXLive website. Once installed, additional packages are installed as follows:
sudo tlmgr update --self
sudo tlmgr install easylist enumitem tufte-latex
Disseminate uses a variety of external tools to convert files and render documents. If these tools are available, the corresponding converter (Builder) will be available as well. To view which external dependencies were found by Disseminate, type the following command.
dm setup --check
The output should be similar to the following:
Checking required dependencies for 'python' [ PASS ]
Checking alternative dependencies for 'executables' [ PASS ]
Checking dependency 'python3.6' [MISSING ]
Checking dependency 'python3.7' [ PASS ]
Checking dependency 'python3.8' [ PASS ]
Checking dependency 'python3.9' [ PASS ]
Checking required dependencies for 'packages' [ PASS ]
Checking dependency 'regex>=2018.11.22' [ PASS ]
Checking dependency 'jinja2>=2.11' [ PASS ]
Checking dependency 'lxml>=4.3.0' [ PASS ]
Checking dependency 'python-slugify>=2.0.1' [ PASS ]
Checking dependency 'pdfCropMargins>=0.1.4' [ PASS ]
Checking dependency 'click>=7.0' [ PASS ]
Checking dependency 'tornado>=6.1' [ PASS ]
Checking dependency 'pygments >=2.6' [ PASS ]
Checking dependency 'diskcache>=4.1' [ PASS ]
Checking dependency 'pathvalidate>=2.2' [ PASS ]
Checking required dependencies for 'image external deps' [ PASS ]
Checking alternative dependencies for 'executables' [ PASS ]
Checking dependency 'asy' [ PASS ]
Checking dependency 'convert' [ PASS ]
Checking dependency 'pdf2svg' [ PASS ]
Checking dependency 'pdf-crop-margins' [ PASS ]
Checking dependency 'rsvg-convert' [ PASS ]
Checking required dependencies for 'pdf' [ PASS ]
Checking required dependencies for 'executables' [ PASS ]
Checking alternative dependencies for 'compilers' [ PASS ]
Checking dependency 'pdflatex' [ PASS ]
Checking dependency 'xelatex' [ PASS ]
Checking dependency 'lualatex' [ PASS ]
Checking alternative dependencies for 'package_managers' [ PASS ]
Checking dependency 'kpsewhich' [ PASS ]
Checking required dependencies for 'packages' [ PASS ]
Checking dependency 'graphicx' [ PASS ]
Checking dependency 'caption' [ PASS ]
Checking dependency 'amsmath' [ PASS ]
Checking dependency 'mathtools' [ PASS ]
Checking dependency 'bm' [ PASS ]
Checking dependency 'easylist' [ PASS ]
Checking dependency 'fancyvrb' [ PASS ]
Checking dependency 'hyperref' [ PASS ]
Checking dependency 'enumitem' [ PASS ]
Checking dependency 'geometry' [ PASS ]
Checking dependency 'xcolor' [ PASS ]
Checking alternative dependencies for 'fonts' [ PASS ]
Checking dependency 'ecrm1200' [ PASS ]
Checking dependency 'tcrm1200' [ PASS ]
Checking alternative dependencies for 'classes' [ PASS ]
Checking dependency 'article' [ PASS ]
Checking dependency 'report' [ PASS ]
Checking dependency 'tufte-book' [ PASS ]
An entry with PASS
indicates that the dependency was found. If a
dependency is missing, we recommend installing it with Homebrew or
apt install
.
Create a project directory
mkdir -p ~/Documents/Disseminate/test-project/src
cd ~/Documents/Disseminate/test-project
Create a root document
echo "@chapter{My First Chapter}" > src/index.dm
Start the internal webserver
dm preview
[2020-04-22 13:36:08 -0500] [58827] [INFO] Goin' Fast @ http://127.0.0.1:8899
[2020-04-22 13:36:08 -0500] [58827] [INFO] Starting worker [58827]
Go to http://localhost:8899
FAQs
A document processor and generation engine
We found that disseminate demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 2 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
The initial version of the Socket Python SDK is now on PyPI, enabling developers to more easily interact with the Socket REST API in Python projects.
Security News
Floating dependency ranges in npm can introduce instability and security risks into your project by allowing unverified or incompatible versions to be installed automatically, leading to unpredictable behavior and potential conflicts.
Security News
A new Rust RFC proposes "Trusted Publishing" for Crates.io, introducing short-lived access tokens via OIDC to improve security and reduce risks associated with long-lived API tokens.