Skip to content

Instantly share code, notes, and snippets.

@rogersguedes
Forked from albertodebortoli/generate_toc.rb
Created August 2, 2019 11:24
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save rogersguedes/efb0d88fe7c125a987f7d479ff2eeeae to your computer and use it in GitHub Desktop.
Save rogersguedes/efb0d88fe7c125a987f7d479ff2eeeae to your computer and use it in GitHub Desktop.
Generate Markdown TOC
#!/usr/bin/env ruby
File.open("your_file.md", 'r') do |f|
f.each_line do |line|
forbidden_words = ['Table of contents', 'define', 'pragma']
next if !line.start_with?("#") || forbidden_words.any? { |w| line =~ /#{w}/ }
title = line.gsub("#", "").strip
href = title.gsub(" ", "-").downcase
puts " " * (line.count("#")-1) + "* [#{title}](\##{href})"
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment