44#
55# * The order of rules is important: for each item, only the first matching
66# rule is applied.
7- #
8- # * Item identifiers start and end with a slash (e.g. “/about/” for the file
9- # “content/about.html”). To select all children, grandchildren, … of an
10- # item, use the pattern “/about/*/”; “/about/*” will also select the parent,
11- # because “*” matches zero or more characters.
127
138# Reset search-index by deleting it every time
149preprocess do
1510 File . delete ( "output/search-index.json" ) if File . exists? ( "output/search-index.json" )
1611 generate_redirects ( config [ :redirects ] )
1712end
1813
19- compile '/static/*' do
14+ compile '/static/**/* ' do
2015end
2116
22- compile '/CNAME/' do
23- end
17+ passthrough '/CNAME'
2418
25- compile '/feed/ ' do
19+ compile '/feed.* ' do
2620 filter :erb
2721 filter :kramdown , :toc_levels => [ 2 ]
2822end
@@ -33,10 +27,10 @@ compile '/integrations-directory/*' do
3327 filter :tip_filter
3428 filter :colorize_syntax ,
3529 :colorizers => { :javascript => :rouge }
36- layout item [ :layout ] || 'integrations-directory'
30+ layout item [ :layout ] || '/ integrations-directory.* '
3731end
3832
39- compile '/v3/* ' do
33+ compile '/v3{.*,/**/*} ' do
4034 filter :search
4135 filter :erb
4236 filter :kramdown , :toc_levels => [ 2 ]
@@ -45,58 +39,56 @@ compile '/v3/*' do
4539 filter :tip_filter
4640 filter :colorize_syntax ,
4741 :colorizers => { :javascript => :rouge }
48- layout item [ :layout ] || ' api'
42+ layout ( item [ :layout ] ? "/ #{ item [ :layout ] } .*" : '/ api.*' )
4943end
5044
51- %w( v3 */ ) . each do |version |
52- compile "/changes/#{ version } " do
53- filter :erb
54- filter :kramdown , :toc_levels => [ 2 ]
55- filter :colorize_syntax ,
56- :colorizers => { :javascript => :rouge }
57- layout 'changes' if version [ 0 ] == '*'
58- layout item [ :layout ] || 'blog'
59- end
45+ compile "/changes/20*" do
46+ filter :erb
47+ filter :kramdown , :toc_levels => [ 2 ]
48+ filter :colorize_syntax ,
49+ :colorizers => { :javascript => :rouge }
50+ layout '/changes.*'
51+ layout ( item [ :layout ] ? "/#{ item [ :layout ] } .*" : '/blog.*' )
6052end
6153
62- compile '/guides/*' do
54+ compile '/guides/**/* ' do
6355 filter :kramdown , :toc_levels => [ 2 ]
6456 filter :tip_filter
6557 filter :erb
6658 filter :colorize_syntax , :default_colorizer => :rouge
67- layout item [ :layout ] || ' guides'
59+ layout ( item [ :layout ] ? "/ #{ item [ :layout ] } .*" : '/ guides.*' )
6860end
6961
70- compile '/webhooks/*' do
62+ compile '/webhooks/**/* ' do
7163 filter :kramdown , :toc_levels => [ 2 ]
7264 filter :tip_filter
7365 filter :erb
7466 filter :colorize_syntax , :default_colorizer => :rouge
75- layout item [ :layout ] || ' webhooks'
67+ layout ( item [ :layout ] ? "/ #{ item [ :layout ] } .*" : '/ webhooks.*' )
7668end
7769
78- compile '*' do
70+ compile '/**/ *' do
7971 filter :erb
8072 filter :kramdown , :toc_levels => [ 2 ]
8173 filter :colorize_syntax ,
8274 :colorizers => { :javascript => :rouge }
83- layout item [ :layout ] || ' default'
75+ layout ( item [ :layout ] ? "/ #{ item [ :layout ] } .*" : '/ default.*' )
8476end
8577
86- route '/static/*' do
87- item . identifier [ 7 ..- 2 ]
78+ route '/static/**/* ' do
79+ item . identifier . to_s . sub ( / \A \/ static/ , '' )
8880end
8981
90- route '/CNAME/ ' do
91- '/CNAME '
82+ route '/feed.* ' do
83+ '/changes.atom '
9284end
9385
94- route '/feed ' do
95- '/changes.atom '
86+ route '/**/index.* ' do
87+ item . identifier . without_ext + '.html '
9688end
9789
98- route '*' do
99- item . identifier + 'index.html'
90+ route '/**/ *' do
91+ item . identifier . without_ext + '/ index.html'
10092end
10193
102- layout '*' , :erb
94+ layout '/**/ *' , :erb
0 commit comments