# Unique header generation
require './lib/nesting_unique_head.rb'

# Markdown
set :markdown_engine, :redcarpet
set :markdown,
    fenced_code_blocks: true,
    smartypants: true,
    disable_indented_code_blocks: true,
    prettify: true,
    strikethrough: true,
    tables: true,
    with_toc_data: true,
    no_intra_emphasis: true,
    renderer: NestingUniqueHeadCounter

# Assets
set :css_dir, 'docs/api/stylesheets'
set :js_dir, 'docs/api/javascripts'
set :images_dir, 'docs/api/images'
set :fonts_dir, 'docs/api/fonts'

# Activate the syntax highlighter
activate :syntax
ready do
  require './lib/multilang.rb'
end

activate :sprockets

activate :autoprefixer do |config|
  config.browsers = ['last 2 version', 'Firefox ESR']
  config.cascade  = false
  config.inline   = true
end

config[:api_endpoint] = "https://api.tito.io/v3"
config[:api_token] = "YOUR-API-TOKEN"
config[:checkin_api_endpoint] = "https://checkin.tito.io"
config[:checkout_api_endpoint] = "https://checkout.tito.io"
config[:url_substitutions] = {
}

# Build Configuration
configure :build do
  # If you're having trouble with Middleman hanging, commenting
  # out the following two lines has been known to help
  activate :minify_css
  activate :minify_javascript
  # activate :relative_assets
  # activate :asset_hash
  # activate :gzip
end

# Deploy Configuration
# If you want Middleman to listen on a different port, you can set that below
set :port, 4567

helpers do
  require './lib/toc_data.rb'

  def apply_api_subsititions(url)
    config[:url_substitutions].reduce(url) { |url, (name, value)| url.gsub(":#{name}", value) }
  end
end
