function ConvertToMarkdown() { var numChildren = DocumentApp.getActiveDocument().getActiveSection().getNumChildren(); var text = ""; var inSrc = false; var inClass = false; var globalImageCounter = 0; var globalListCounters = {}; var attachments = []; for (var i=0; i\n"; } else if (result.inClass==="end" && inClass) { inClass=false; text+="\n\n"; } else if (inClass) { text+=result.text+"\n\n"; } else if (inSrc) { text+=(" "+escapeHTML(result.text)+"\n"); } else if (result.text && result.text.length>0) { text+=result.text+"\n\n"; } if (result.images && result.images.length>0) { for (var j=0; j/g, '>'); } function processParagraph(index, element, inSrc, imageCounter, listCounters) { if (element.getNumChildren()==0) { return null; } if (element.getType() === DocumentApp.ElementType.TABLE_OF_CONTENTS) { return {"text": "[[TOC]]"}; } var result = {}; var pOut = ""; var textElements = []; var imagePrefix = "image_"; for (var i=0; i'; } else { prefix = findPrefix(inSrc, element, listCounters); var pOut = ""; for (var i=0; i=0; i--) { var off=attrs[i]; var url=txt.getLinkUrl(off); var font=txt.getFontFamily(off); if (url) { // start of link if (i>=1 && attrs[i-1]==off-1 && txt.getLinkUrl(attrs[i-1])===url) { // detect links that are in multiple pieces because of errors on formatting: i-=1; off=attrs[i]; url=txt.getLinkUrl(off); } pOut=pOut.substring(0, off)+'['+pOut.substring(off, lastOff)+']('+url+')'+pOut.substring(lastOff); } else if (font) { if (!inSrc && font===font.COURIER_NEW) { while (i>=1 && txt.getFontFamily(attrs[i-1]) && txt.getFontFamily(attrs[i-1])===font.COURIER_NEW) { // detect fonts that are in multiple pieces because of errors on formatting: i-=1; off=attrs[i]; } pOut=pOut.substring(0, off)+'`'+pOut.substring(off, lastOff)+'`'+pOut.substring(lastOff); } } if (txt.isBold(off)) { var d1 = d2 = "**"; if (txt.isItalic(off)) { d1 = "** *"; d2 = "* **"; } pOut=pOut.substring(0, off)+d1+pOut.substring(off, lastOff)+d2+pOut.substring(lastOff); } else if (txt.isItalic(off)) { pOut=pOut.substring(0, off)+'*'+pOut.substring(off, lastOff)+'*'+pOut.substring(lastOff); } lastOff=off; } return pOut; }