The Razroo Markdown Engine is Razroo's attempt towards making markdown something that is more automated and has more sophisticated features available by type setting languages such as LaTeX. We wanted it to be written in Markdown, and-also compile to Markdown. This makes it, so it can be used on multiple platforms. In addition, the Markdown Engine is sophisticated enough to where we can pull in data, similar to how data is pulled in using an API. This allows us to have a very sophisticated, pseudo-autonomous content engine.
First and foremost, we worked with LaTeX for the, at the time, standalone Angular: The Full Gamut book.
- What we found is that LaTeX had an issue compiling at times.
- For certain technical folk who never used LaTeX before, we found that there was a tremendous learning curve.
- Adding LaTeX didn't allow us to modify anything. For Razroo which as an organization is very content heavy, it is important that we can modify the content ourselves. LaTeX uses C++, and we wanted to be able to use Typescript/Node.
- LaTeX to web formats seemed like a real challenge, there had to be an easier way to do this.
Allows Markdown to pull in github links from both internal and external repos. The Github links are then built into the
build
folder.
For instance:
Sample content before.
!()[https://github.com/facebook/react/blob/ad6f3d5c55a79e8a44798aad36118e73de3a64f8/packages/create-subscription/index.ts#L10-L12]
Sample content after.
turns into:
Sample content before.
'use strict';
export * from './src/createSubscription';
Sample content after.
In this {{format}}
will be
In this chapter
For book builds, and
In this article
for article builds.
Razroo uses Github Packages for internal NPM packages. In order to use Razroo's Github Packages/internal NPm repos you will have to run npm login
and generate a personal access token. This will hook up your github username to the Razroo npm repo. If you have access to the respective npm repo, you