
Security News
The Hidden Blast Radius of the Axios Compromise
The Axios compromise shows how time-dependent dependency resolution makes exposure harder to detect and contain.
cv-web-template
Advanced tools
Package that creates a static webpage where you can show a personal resume using PrismJS or a rendered version
With this package you can create a Curriculum/Resume as a web page and display it in two flavours, one that uses Prismjs (a syntax higlighter) and the other one that is the HTML rendered.
| Prism version | Rendered version |
|---|---|
![]() | ![]() |
You can see it running here
How to use this repo, you can either clone it or install it from the npm registry.
# clone the repo
> git clone https://github.com/byverdu/curriculum-web-template.git
> cd curriculum-web-template
# By default the "postinstall" script will run "yarn build" after all the packages are installled,
# you might want to edit all the config files before "yarn install"
# if you want to build yourself and skip this step, set the `skip_postinstall` to true
> skip_postinstall='yes' yarn install
# install dependencies
> yarn install
# or with npm
> npm install
# for brevity I will skip the npm flavour
# build the files
> yarn build
# development without changing webpack config files
> yarn dev
# visit http://localhost:8080
#development can be done in a different port by just setting thar var
> PORT=9090 yarn dev
# visit http://localhost:9090
# development changing webpack config files
> yarn dev:webpack
You can find this package on the npm registry, so you can install it with npm install cv-web-template or yarn add cv-web-template;
Afterwards the process to have it all running will be the same that if you were cloning it.
## Set up
This repo uses webpack to bundle all the files and you can find them under the ./dist folder. All the js and css files are added inline in the html file and essentially you will only need the index.html and favicon.*;
The js entry point can be found at ./src/index.js, here is where the content is appended to the DOM, the styles are imported and some event listeners are added to the DOM too.
For simplicity you will not get any webserver with this repo so you need to find your way in order to serve the page.
You must edit the ./src/config/index.js file in order to feed the bundle with the data that you want.
In the config file you will find the required sections that you need to change:
<head> tag.<footer> tagKeep the format of the data because the templates functions are expecting thodse formats.
The entry point for the index.html file and favicon are specified at ./webpack/plugins.js at line 53. By default the path is ./src/toCopy
You can choose for any theme specified at the PrismJs website or the defualt one (dracula) that has been done for this repo or create your custom one. Just modify the prismTheme var in the config file.
If you decide to create your own theme, you must edit a couple of scss files too. First ./src/sass/reusable/prism-custom.scss in order to create a theme for Prism and also the key custom in the $prism-themes map at ./src/sass/reusable/vars.scss to provide values for the rendered version.
In the config file you have the ability to change the main CSS class name used for the styles and markup rootCssClass, which defaults to resume;
prismTheme and rootCssClass, are passed as a SCSS variables before the CSS is compiled by webpack. They are defined in ./webpack/rules.js at line 27.
CSS selectors for the rendered theme are tightly coupled with the class names used in the markup, have it mind if you plan to change them
Each section of the page has it's own template that basically returns a string with the data interpolated. They can be find at ./src/templates/templates.js and they are documented at ./src/docs/docs.md.
In ./src/templates/index.js you will find that is the file where all the html structure is build as a string, this is the excatly place where you can add or delete some markup to suit your needs. Also, in this file is important to mention that there is two exports:
The main difference is that when using the PrismJS version the <head> tag is shown as per how a real html markup in a website is but that is not needed for the rendered version because the <head> tag is already provided by the main index.html compiled by webpack.
Yes, some variables are passed to webpack to populate the values for the
It is very important that you have in mind that for the PrismJs version you are using a
<pre>and<code>tags where the SPACES and TABS are crucial in order to keep a nice indentation. HTML does not need to be ugly or unreadable :)
Some utils methods can be find at ./src/utils/index.js and they are documented at ./src/docs/docs.md
Because of the importance of spaces and tabs, there are a few utils methods that can help you with that:
newLineAndTabsBuildernewLineAndSpacesBuilderwhiteSpaceBuilderAlso you can find some utils to help you with the creation of:
htmlCommentBuilderdividerBuilderhtmlTagBuilderFAQs
Package that creates a static webpage where you can show a personal resume using PrismJS or a rendered version
We found that cv-web-template demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer 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 Axios compromise shows how time-dependent dependency resolution makes exposure harder to detect and contain.

Research
A supply chain attack on Axios introduced a malicious dependency, plain-crypto-js@4.2.1, published minutes earlier and absent from the project’s GitHub releases.

Research
Malicious versions of the Telnyx Python SDK on PyPI delivered credential-stealing malware via a multi-stage supply chain attack.