GitHub

Doc-e-mate, your document's best friend

This repository holds the core library of the ReScript version of Doc-e-mate, a tool that allows you to generate and print documents written in Markdown, styled in CSS, with business data injected from JSON or YAML files.

> Text     + Data  + Style  ->  Beautiful Business Documents
> HTML     + Json  + CSS    ->  Beautiful Business Documents
> Markdown + YAML  + SASS   ->  Beautiful Maintainable Business Document

This is a split of the https://github.com/enspirit/dem-rescript project, in order to remove unwanted dependencies between the modules of the tool.

This is a ReScript library. Its main interface is hold in https://github.com/enspirit/dem-core-rescript/blob/main/src/app.resi .

Use the compile function to generate an html string from markdown, css and json string inputs.

All parameters are optional. Default values can be found in https://github.com/enspirit/dem-core-rescript/blob/main/src/app.res .

Find examples of use in the tests file https://github.com/enspirit/dem-core-rescript/blob/main/__tests__/app_spec.res .

Use the dem-fsi-rescript library (https://github.com/enspirit/dem-fsi-rescript) to generate your document and convert it into a pdf document.

Mustache partials

Doc-e-mate supports mustache partials. Please take a look at Mustache partials documentation first: https://mustache.github.io/mustache.5.html.

TL;DR: you may include text from some separated markdown dependencies and identified using the following syntax in your main text: {{> white_hat}}. In this case, the library will load the white_hat partial from the given partials dictionnary.

Also do not hesitate to use several levels of inclusion: white_hat may refer to another markdown partial called powers/shield_of_light. Use the partials_dependencies function to scan the given markdown string in order to create the dictionnary to use in the compile function.

Build your data with javascript

Doc-e-mate supports data file written in CommonJS. Use the dem-fsi-rescript library (https://github.com/enspirit/dem-fsi-rescript) for that purpose.

Hacking

Doc-e-mate is written in ReScript, with great help from the following libraries:

Getting started with the source code

Clone the repository, then run the following command to initialize your dev environment:

npm install

Building the tool

You can build the program with

npm run re:build

or in watch mode with

npm run re:start

Running tests

You can run the tests in watch mode using:

npm run testw

Next dev steps

  • Add "angular filters" like in the dem input language.
  • ...

Publishing

All the releases were published using np so far. Cf. https://github.com/sindresorhus/np

Read the original on github.com ↗