1
0
mirror of https://github.com/prometheus/docs.git synced 2026-02-07 03:44:55 +01:00
Files
docs/Rules
Tobias Schmidt f9bca64885 Create links to placeholder definitions in config
This will create local links of all placeholders in config blocks to
their respective definitions.
2017-03-04 18:58:28 -04:00

101 lines
2.8 KiB
Ruby
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#!/usr/bin/env ruby
# A few helpful tips about the Rules file:
#
# * The string given to #compile and #route are matching patterns for
# identifiers--not for paths. Therefore, you cant match on extension.
#
# * The order of rules is important: for each item, only the first matching
# rule is applied.
#
# * Item identifiers start and end with a slash (e.g. “/about/” for the file
# “content/about.html”). To select all children, grandchildren, … of an
# item, use the pattern “/about/*/”; “/about/*” will also select the parent,
# because “*” matches zero or more characters.
compile '/assets/*' do
end
route '/assets/*' do
# Cachebuster currently doesn't fingerprint all needed files (SVG and font
# extensions are missing), so we need to differentiate here.
if Nanoc::Cachebuster::FILETYPES_TO_FINGERPRINT.include?(item[:extension])
item.identifier[0..-(3 + item[:extension].length)] + fingerprint(item[:filename]) + '.' + item[:extension]
else
item.identifier[0..-2]
end
end
route '/README/' do
'/README.md'
end
# RSS Feed
compile '/blog/feed/' do
filter :erb
end
route '/blog/feed/' do
'/blog/feed.xml'
end
compile '*' do
filter :erb
if item[:title] == 'README.md'
# Don't filter; this should propagate verbatim to the output GitHub repository.
elsif item[:extension] == 'md'
filter :redcarpet, options: {filter_html: true, autolink: true, no_intraemphasis: true, fenced_code_blocks: true, gh_blockcode: true, tables: true}, renderer_options: {with_toc_data: true}
filter :add_anchors
filter :bootstrappify
filter :admonition
filter :colorize_syntax, :default_colorizer => :pygmentsrb
filter :config_linker if item[:title] == 'Configuration'
filter :toc, style: item[:toc]
if item[:kind] == 'article'
layout 'blog'
else
layout 'docs'
end
elsif item[:extension] == 'css'
# dont filter stylesheets
elsif item.binary?
# dont filter binary items
elsif item[:layout]
layout item[:layout]
else
layout 'default'
end
filter :cache_buster
end
route '/blog/' do
'/blog/index.html'
end
# Transform /blog/<YYYY>-<MM>-<DD>-<post title> to
# /blog/<YYYY>/<MM>/<DD>/<post title>.
route '/blog/*' do
y, m, d, slug = /([0-9]+)\-([0-9]+)\-([0-9]+)\-([^\/]+)/.match(item.identifier).captures
"/blog/#{y}/#{m}/#{d}/#{slug}/index.html"
end
route '*' do
if item[:extension] == 'css'
# Write item with identifier /foo/ to /foo.css
item.identifier.chop + fingerprint(item[:filename]) + '.css'
elsif item.binary?
# Write item with identifier /foo/ to /foo.ext
item.identifier.chop + '.' + item[:extension]
else
# Write item with identifier /foo/ to /foo/index.html
item.identifier + 'index.html'
end
end
#passthrough '/assets/*'
layout '*', :erb