npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

markugen

v1.0.0

Published

Markdown to HTML static site generation tool

Downloads

251

Readme

Markugen

Markdown to HTML static site generation tool

Welcome to Markugen! You have been Marked!! 😜

Installation

npm install markugen
# or
yarn add markugen
# or
pnpm add markugen

Inspiration

Before developing this package, I used many other packages to try and accomplish developing a set of HTML documentation from markdown files. Some of the packages I first used were the following:

Nextra and VuePress both generate beautiful documentation, but depend on a server to serve the resulting website. Remark and rehype were great options for generating static HTML pages from markdown files; however, they are ESM only modules and that causes problems with packagers like pkg and nexe. Therefore, I chose to begin using marked for its CommonJS support and found this and the many extensions to it to be the perfect starting point.

Marked does a great job of parsing markdown into HTML, but it is designed to handle a single markdown string as input. Therefore, I have developed this package to generate an entire website with navigation from a set of markdown files. The resulting website does not require a server to host the pages and Markugen gives you the option to embed all required scripts and styles into each page that is generated to allow each page to be viewed independently. Some of the major features are listed below:

Major Features

  • Markdown to HTML
  • Website generation
  • Static HTML generation (no need for a server)
  • Reactive website sitemap and Table of Contents
  • Markdown components:
    • Tabs
    • Admonitions/Callouts (GitHub flavored)
  • Dark and light themes

Documentation and Demo

The full documentation can be found in the docs directory. The docs are generated using Markugen; therefore, this is also a great place to see a demo of what Markugen produces as output. You can download the docs directory and view the HTML files within it, or you can view the docs directly at the following website: falkorclark.com/markugen.

Usage

The following code will generate the docs located in the Markugen package under docs-md to a folder called demo and clear the demo directory before generation:

import Markugen from 'markugen';

const mark = new Markugen({
  input: 'docs-md',
  output: 'demo',
  clearOutput: true,
});
mark.generate();

Related

  • marked - Markdown parser used by Markugen
  • remark - ESM only markdown parser
  • rehype - ESM only HTML generator

Credit

Thanks to Trevor Buckner for mastering Marked!

Thanks to Christopher Jeffrey for starting Marked!

Much of this development and inspiration came from the Unified collective and all of the plugins developed for remark and rehype. These modules were used first, but due to limitations with packagers like pkg and nexe and not supporting ESM modules, I chose to switch to marked for the CommonJS support.