text: showdown.subParser('makeMarkdown.txt', function (node) {
    'use strict';
  
    var txt = node.nodeValue;
  
    // escape backslashes
    txt = txt.replace(/\\/g, '\\\\');
  
    // multiple spaces are collapsed
    txt = txt.replace(/ +/g, ' ');
  
    // replace the custom ¨NBSP; with a space
    txt = txt.replace(/¨NBSP;/g, ' ');
  
    // escape markdown magic characters
    // emphasis, strong and strikethrough - can appear everywhere
    // we also escape pipe (|) because of tables
    // and escape ` because of code blocks and spans
    txt = txt.replace(/([*_~|`])/g, '\\$1');
  
    // escape <> because of blockquotes and html
    txt = txt.replace(/<(\S)/g, '\\<$1');
    txt = txt.replace(/(^|\S)>/g, '$1\\>');
  
    // hash character, only troublesome at the beginning of a line because of headers
    txt = txt.replace(/^#/gm, '\\#');
  
    // horizontal rules
    txt = txt.replace(/^(\s*)([-=]{3,})(\s*)$/, '$1\\$2$3');
  
    // dot, because of ordered lists, only troublesome at the beginning of a line when preceded by an integer
    txt = txt.replace(/^( {0,3}\d+)\./gm, '$1\\.');
  
    // +, * and -, at the beginning of a line becomes a list, so we need to escape them also (asterisk was already escaped)
    txt = txt.replace(/^( {0,3})([+-])/gm, '$1\\$2');
  
    // images and links, ] followed by ( is problematic, so we escape it
    txt = txt.replace(/]([\s]*)\(/g, '\\]$1\\(');
  
    // reference URIs must also be escaped
    txt = txt.replace(/^ {0,3}\[([\S \t]*?)]:/gm, '\\[$1]:');
  
    return txt;
  });
  