From 39aaa0fca567f56724b387fd109a37c8dfb7b59b Mon Sep 17 00:00:00 2001 From: Alyss Noland Date: Thu, 6 Apr 2017 15:33:46 -0700 Subject: [PATCH] Adds unique header creation (#743) --- config.rb | 6 +++++- lib/unique_head.rb | 14 ++++++++++++++ 2 files changed, 19 insertions(+), 1 deletion(-) create mode 100644 lib/unique_head.rb diff --git a/config.rb b/config.rb index 937f1cf..e0f2479 100644 --- a/config.rb +++ b/config.rb @@ -1,3 +1,6 @@ +# Unique header generation +require './lib/unique_head.rb' + # Markdown set :markdown_engine, :redcarpet set :markdown, @@ -7,7 +10,8 @@ set :markdown, prettify: true, tables: true, with_toc_data: true, - no_intra_emphasis: true + no_intra_emphasis: true, + renderer: UniqueHeadCounter # Assets set :css_dir, 'stylesheets' diff --git a/lib/unique_head.rb b/lib/unique_head.rb new file mode 100644 index 0000000..6103bbf --- /dev/null +++ b/lib/unique_head.rb @@ -0,0 +1,14 @@ +# Unique header generation +require 'middleman-core/renderers/redcarpet' +class UniqueHeadCounter < Middleman::Renderers::MiddlemanRedcarpetHTML + @@head_count = {} + def header(text, header_level) + friendly_text = text.parameterize + @@head_count[friendly_text] ||= 0 + @@head_count[friendly_text] += 1 + if @@head_count[friendly_text] > 1 + friendly_text += "-#{@@head_count[friendly_text]}" + end + return "#{text}" + end +end