ngx-markdown-pages

March 8, 2026 ยท View on GitHub

An Angular library for rendering markdown files as routable pages. Built on top of ngx-markdown.

Install

npm install ngx-markdown-pages ngx-markdown marked

Setup

Call provideMarkdownPages() in your application providers:

import { provideMarkdownPages } from 'ngx-markdown-pages';

bootstrapApplication(AppComponent, {
  providers: [
    provideMarkdownPages(),
  ],
});

Options

provideMarkdownPages() accepts a MarkdownPagesOptions object:

OptionTypeDescription
clipboardbooleanEnable the clipboard copy button on code blocks
headerComponentType<unknown>A standalone component rendered above the markdown content on every page
footerComponentType<unknown>A standalone component rendered below the markdown content on every page
import { provideMarkdownPages } from 'ngx-markdown-pages';
import { SiteHeaderComponent } from './site-header.component';
import { SiteFooterComponent } from './site-footer.component';

provideMarkdownPages({
  clipboard: true,
  headerComponent: SiteHeaderComponent,
  footerComponent: SiteFooterComponent,
})

Routing

Define your markdown pages with markdownPageRoutes():

import { markdownPageRoutes } from 'ngx-markdown-pages';

const routes: Routes = [
  ...markdownPageRoutes([
    { path: 'getting-started', markdownFile: 'assets/docs/getting-started.md' },
    { path: 'api-reference', markdownFile: 'assets/docs/api-reference.md' },
  ]),
];

Each route renders a MarkdownPageComponent that loads and displays the specified markdown file. Heading anchor links with smooth scrolling are handled automatically.