In GitHub, Markdown headers are automatically linked. To achieve the same effect with the marked node module, you need to override part of the lexer.

// Modify marked's tokenizer to wrap header text in an `<a>` var _tok = marked.Parser.prototype.tok; marked.Parser.prototype.tok = function () { // If this is a heading, use our custom parser // https://github.com/chjj/marked/blob/v0.2.10/lib/marked.js#L845-L855 // NOTE: This is for marked@0.2.10 if (this.token.type === 'heading') { var slug = this.token.text.toLowerCase().replace(/[^\w]+/g, '-'); return '<h' + this.token.depth + ' id="' + slug + '">' + '<a href="#' + slug + '">' + this.inline.output(this.token.text) + '</a>' + '</h' + this.token.depth + '>

'; } // Otherwise, run the normal function return _tok.apply(this, arguments); };

The end result is: