Skip to Content
  • Website
Codsen
  • Home
  • Open Source
  • Articles
  • About

prevOpen Source→remark-conventional-commit-changelog-timelinenext

remark-conventional-commit-changelog-timeline4.0.0

Render Codsen Conventional Commits changelogs as timeline HTML.

Downloads per monthChangelogMIT Licenselibera manifesto
  • the top
  • Installation
  • Quick Take
  • Examples
  • PURPOSE
  • API
  • TIMELINE FORM…
  • MIGRATE TO VE…
  • Changelog

No dependencies whatsoever. This package declares no dependencies or devDependencies.

Permalink to InstallationInstallation

Permalink to Quick TakeQuick Take

Permalink to ExamplesExamples

  • Convert a linked release heading into timeline markup
  • Add the conventional emoji for each recognised change section

Purpose

Convert a Codsen CHANGELOG.md into the HTML used by this website’s release timeline. The renderer reads the predictable changelog format directly and has no runtime dependencies.

It removes the changelog title and introductory text, renders release versions as h2 headings, and places each date in a separate div. Recognised change categories receive an emoji.

API

The default export, changelogTimeline, takes a Markdown string and returns an HTML string synchronously:

changelogTimeline(markdown: string): string;
import changelogTimeline from "remark-conventional-commit-changelog-timeline";

const html = changelogTimeline(`
# Change Log

All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.

# 3.1.0 (2022-08-12)

### Features

- abc
- xyz
`);

The result contains this markup:

<h2>3.1.0</h2>
<div class="release-date">12 Aug <span>2022</span></div>
<h3><span class="emoji">✨</span> Features</h3>
<ul>
  <li>abc</li>
  <li>xyz</li>
</ul>

The renderer supports the Markdown used in Codsen’s release histories. Raw HTML in the input is escaped. Use a general Markdown renderer for documents outside this changelog format.

Timeline formatting

Dates use a fixed British English format: day, abbreviated month, and year. For example, 2022-08-12 becomes 12 Aug <span>2022</span>.

The release-date class lets your stylesheet position the date beside the release heading. The year has its own span so it can wrap onto another line on narrow screens. The package produces the HTML; your stylesheet controls the layout.

Migrate to version 4

Version 4 replaces the Unified plugin with a standalone renderer. Pass the original Markdown directly to changelogTimeline:

const html = changelogTimeline(markdown);

Remove the parsing, AST conversion, and HTML stringification stages that existed only to render the changelog. The result is already a string, so remove any .value access.

Remove the dateDivLocale and dateDivMarkup options. Dates now use the fixed format shown above. Version 4 also removes the defaults export and the Opts and DateParamsObj types.

The default import name and timeline CSS classes remain the same. Existing styles for release headings, .release-date, and .emoji still apply.

Permalink to changelogChangelog

Open Changelog
↑ back to top
prev next

Copyright

All rights reserved © Roy Revelt 2026
All our open source packages are under MIT licenceopens in a new tab

Activities

🐛 See a bug? Raise an issueopens in a new tab
💘 Check out the Indiewebopens in a new tab and Libera manifestoopens in a new tab