@chrjl/jsonresume-express-handlebars
v1.0.1
Published
jsonresume-express-handlebars =============================
Readme
jsonresume-express-handlebars
Express server-side rendering of JSON Resume, plus extra utilities for development powered by express-handlebars.
It is required to include a JSON Resume theme module and specify its path.
For use with extra features exposed in @chrjl/jsonresume-theme-elementary.
Features
Express APIs
Server-side rendering
/render/: Retrieves HTML from jsonresume-theme module
/render/publish/render/developmentRequests the development context from
jsonresume-thememodule (if supported).
Handlebars partials
/sections: Uses features exposed by express-handlebars module.
/sections/Parses
resume.jsonto return a list of all keys, cross-referencingExpressHandlebars.getPartials()to describe which fields are supported by the theme./sections/:sectionIdReturns rendered resume section with templates and layouts, using
ExpressHandlebars.renderView. Falls back to returning JSON data if no usable template exists.
CSS
Paper-size formatting
Provides the following CSS (requires JSON Resume theme/layout link these files):
stylesheets/page.cssFormats the rendered HTML resume to specified paper width and margins (default US Letter with 0.25" margins), such that the webpage is wysiwyg ready to print or export to PDF. If exported in browser, set scale to
100%and margins tonone.stylesheets/development.cssAdd a transparent overlaying HTML
<div>in development mode to represent the first printed page.
Paper size and margins are set (and modifiable) using CSS variables in the :root pseudo-class.
Basic usage
Ths package reads and parses environment variables using dotenv-expand and starts an Express server on $PORT (default 3000).
The included reference docker compose file uses the node:slim image and starts the dev server using nodemon. Variables used in the compose file can be defined in a .env file
- This package mounted to the working directory (
/home/node/app) $HOST_JSONRESUME_SOURCEdirectory mounted to the default resume source path ($workdir/source/)$HOST_JSONRESUME_THEMEdirectory mounted to the view directory ($JSONRESUME_THEME_DIR)
Requirements
JSONRESUME_SOURCEresume.jsonfile (defaultsource/resume.json).Throws
404error if file is not found, throws500error if there is something wrong with the file (i.e. invalid JSON).JSONRESUME_THEME_DIRJSON Resume theme module. As per JSON Resume initiative,
That module needs to export a function called
renderthat takes aresume.jsonand returns a plain HTML string.
