-
Notifications
You must be signed in to change notification settings - Fork 75
/
config.rb
136 lines (105 loc) · 3.27 KB
/
config.rb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
###
# Middleman settings
###
# Time.zone = "UTC"
set :markdown_engine, :redcarpet
set :markdown, :fenced_code_blocks => true, :smartypants => true
activate :syntax #https://github.com/middleman/middleman-syntax
#Activate sync extension
activate :s3_sync do |s3_sync|
s3_sync.bucket = data.credentials.aws.bucket
s3_sync.aws_access_key_id = data.credentials.aws.access_key_id
s3_sync.aws_secret_access_key = data.credentials.aws.secret_access_key
s3_sync.delete = false # We delete stray files by default.
s3_sync.after_build = false # We chain after the build step by default. This may not be your desired behavior...
end
###
# Page options, layouts, aliases and proxies
###
# Per-page layout changes:
#
# With no layout
# page "/path/to/file.html", :layout => false
#
# With alternative layout
# page "/path/to/file.html", :layout => :otherlayout
#
# A path which all have the same layout
# with_layout :admin do
# page "/admin/*"
# end
# Proxy (fake) files
# page "/this-page-has-no-template.html", :proxy => "/template-file.html" do
# @which_fake_page = "Rendering a fake page with a variable"
# end
set :css_dir, 'assets/css'
set :js_dir, 'assets/js'
set :images_dir, 'assets/images'
# Build-specific configuration
configure :build do
# For example, change the Compass output style for deployment
# activate :minify_css
# Minify Javascript on build
# activate :minify_javascript
# Enable cache buster
# activate :cache_buster
# Use relative URLs
# activate :relative_assets
# Compress PNGs after build
# First: gem install middleman-smusher
# require "middleman-smusher"
# activate :smusher
# Or use a different image path
# set :http_path, "/Content/images/"
end
helpers do
def host_with_port
[host, optional_port].compact.join(':')
end
def optional_port
port unless port.to_i == 80
end
def image_url(source)
protocol + host_with_port + image_path(source)
end
def sort_pages(pages)
pages.sort_by {|p| p.data.title}
end
def categories
categories_hash = sitemap.resources.reject{ |p| p.data["category"].nil? }.group_by {|p| p.data["category"] }
ordered_articles = data.categories.order.map { |index| categories_hash[index] }.flatten.compact
ordered_articles.group_by {|p| p.data["category"] }
end
def category_link(category)
link_to category, category_url(category)
end
def category_url(category)
"/docs/#{category.parameterize}.html"
end
def link_to_file_on_github(current_page)
path = current_page.source_file.split("/semaphore-docs-new/").last
link_to "Edit this article on GitHub", "https://github.com/renderedtext/semaphore-docs-new/blob/master/#{path}"
end
end
configure :development do
if defined? Middleman::PreviewServer # false when doing s3_sync, no idea
set :protocol, "http://"
set :host, Middleman::PreviewServer.host
set :port, Middleman::PreviewServer.port
else
set :protocol, "https://"
set :host, "semaphoreapp.com"
set :port, 80
end
end
configure :build do
set :protocol, "https://"
set :host, "semaphoreapp.com"
set :port, 80
end
ready do
categories.each do |category, pages|
proxy category_url(category), "category.html",
:locals => { :category => category, :pages => pages }
end
end