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

serve-markdown

v1.1.0

Published

A connect middleware, parsed markdown files to html

Downloads

71

Readme

serve-markdown

Build Status NPM Version NPM Downloads

A connect middleware, parses markdown files to html.

Install

$ npm i serve-markdown

API

var serveMarkdown = require('serve-markdown')

serveMarkdown(root, options)

Create a new middleware function to serve markdown files from within a given root directory. The file to serve will be determined by combining req.url with the provided root directory. When a file is not found, instead of sending a 404 response, this module will instead call next() to move on to the next middleware, allowing for stacking and fall-backs.

options

Accept below properties in the options object.

template

Optional path to an HTML template. Defaults to a built-in template.

The following tokens are replaced in templates:

  • {{title}} the title of the page
  • {{style}} the specified styleSheet
  • {{content}} html contents compiled from the markdown file
  • {{classes}} the specified classes for the wrapper of the {{content}}
title

{Function | String} Optional, the return-value/value will be used for replacing the title token in the template. Default to the name of the served file.

  • {Function} the return value of the function will be used for replacing the {{title}} token in the template. The function will be called with one argument: name - the name(basename, like demo.md) of the served file.
  • {String} Used as the replacement of the {{title}} token of the template
style

Optional

path to a css stylesheet file Or a stylesheet string. Default to a built-in stylesheet.

classes

Optional

string OR array, which will be used as the class of the wapper div of the {{content}} token. Default to sm-content. The default stylesheet is also written based on this class.

Examples

var connect = require('connect');
var serveMarkdown = require('serve-markdown');

var app = connect();
// serve markdown file
app.use(serveMarkdown('/Users/lizhiye/weekly', {
    title: function (title) {
        // file: /Users/lizhiye/weekly/weekly-report.md
        // title: weekly-report.md
        return title + ' -zhiye'
    },
    classes: 'md mdcontent'
}));

app.listen(8765);