New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

htmlmark

Package Overview
Dependencies
Maintainers
1
Versions
9
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

htmlmark

Lightweight markdown parser

0.2.2
latest
Source
npm
Version published
Weekly downloads
0
Maintainers
1
Weekly downloads
 
Created
Source

HtmlMark

HtmlMark Logo

A very lightweight Markdown Parser powered by Regex

🔑 Why HtmlMark?

  • no use of external dependencies
  • lexer: to produce markdown tokens
  • parser: to produce the HTML code from the lexer
  • code highlighting support
  • support for front matter

🌐 Demo

Checkout the features of the parser from this Live Demo.

🎠 Installation

npm i htmlmark

💠 Usage

import HtmlMark from 'htmlmark';

const opts = {
	indent: 4,
	highlightFn: (code, lang) => {
		// return the highlighted code
	},
	useLinkRefs: true
};

const htmlmark = new HtmlMark(opts);

htmlmark.tokenize("## Hello World"); // returns the tokens
htmlmark.parse("## Hello World"); // returns the HTML code

🎡 Options

OptionTypeDefaultDescription
indentnumber4Number of spaces (or tabs) to use for indentation
tabSizenumber4Equivalent spaces for a single tab used
highlightFnfunctionundefinedFunction to highlight the code
useLinkRefsbooleantrueWhether to use link references or not

🎢 APIs

  • tokenize(markdown: string): Token[]: Returns the lexer from the markdown string
  • parse(markdown: string): string: Returns the HTML code from the markdown string
  • getFrontMatter(markdown: string): FrontMatter{}: Returns the front matter from the markdown string

Lexer

The provided markdown string is scanned line by line and checked against various regex patterns to produce the accurate markdown tokens. A general token structure is as:

{
	"indent": 0,
	"level": 1,
	"raw": "# Heading One Text",
	"setext": false,
	"type": "heading",
	"value": "Heading One Text",
	"tokens": [{
		"raw": "Heading One Text",
		"type": "text",
		"value": "Heading One Text"
	}]
}

Front Matter

The front matter is the metadata of the markdown file. It is written in the YAML format and is separated from the markdown content by a line containing three hyphens ---. It must be placed at the top of the markdown file.

Example:
---
title: Hello World
date: 2021-01-01
author: John Doe
---

## Hello World
Lorem ipsum dollar sit amet

The above markdown file will produce the following front matter:

{
	"title": "Hello World",
	"date": "2021-01-01",
	"author": "John Doe"
}

💁 Contributing to HtmlMark

Contributions are always welcome, no matter how large or small. Before contributing, please read the code of conduct. You can also find the development guide here.

📝 License

GNU GENERAL PUBLIC LICENSE v3.0 © Kiran Parajuli

Keywords

nodejs

FAQs

Package last updated on 14 Nov 2023

Did you know?

Socket

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.

Install

Related posts