         result, "original", "beautified")
       addInfo('Original vs. Beautified Diff', "\n```#{codeBlockSyntax}\n#{diff}\n```")
 
-      addInfo('Logs', "\n```\n#{logs}\n```")
+      addHeader(3, "Logs")
+      addInfo(null, "```\n#{logs}\n```")
+
+      # Build Table of Contents
+      toc = "## Table Of Contents\n"
+      for header in headers
+        ###
+        - Heading 1
+          - Heading 1.1
+        ###
+        indent = "  " # 2 spaces
+        bullet = "-"
+        indentNum = header.level - 2
+        if indentNum >= 0
+          toc += ("#{Array(indentNum+1).join(indent)}#{bullet} [#{header.title}](\##{linkifyTitle(header.title)})\n")
+      # Replace TABLEOFCONTENTS
+      debugInfo = debugInfo.replace(tocEl, toc)
 
       # Save to clipboard
       atom.clipboard.write(debugInfo)

    "```json\n#{JSON.stringify(preTransformedOptions, undefined, 4)}\n```")
    if selectedBeautifier
      addHeader(3, 'Final Options')
      addInfo('Final Options', "\n" +
      "Final combined and transformed options that are used\n" +
      "```json\n#{JSON.stringify(finalOptions, undefined, 4)}\n```")

    #
    logs = ""

  return unless confirm('Are you ready to debug Atom Beautify?\n\n' +
  'Warning: This will change your current clipboard contents.')
  debugInfo = ""
  headers = []
  tocEl = "<TABLEOFCONTENTS/>"
  addInfo = (key, val) ->
    if key?
      debugInfo += "**#{key}**: #{val}\n\n"
    else
      debugInfo += "#{val}\n\n"
  addHeader = (level, title) ->
    debugInfo += "#{Array(level+1).join('#')} #{title}\n\n"
    headers.push({
      level, title
      })
  addHeader(1, "Atom Beautify - Debugging information")
  debugInfo += "The following debugging information was " +
  "generated by `Atom Beautify` on `#{new Date()}`." +
  "\n\n---\n\n" +
  tocEl +
  "\n\n---\n\n"

  # Platform
