-
Notifications
You must be signed in to change notification settings - Fork 70
/
config.rb
157 lines (123 loc) · 3.22 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
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
require 'lib/event-handler.rb'
require 'lib/build_cleaner'
## We have to blow away the /build folder before deploys
configure :build do
activate :build_cleaner
end
###
# Blog settings
###
Time.zone = "UTC"
activate :blog do |blog|
blog.permalink = "{year}/{category}/{title}.html"
blog.layout = "article"
blog.tag_template = "tag.html"
blog.calendar_template = "calendar.html"
# Enable pagination
blog.paginate = true
blog.per_page = 10
blog.page_link = "page/{num}"
# Create Category Archive pages
blog.custom_collections = {
category: {
link: '/categories/{category}.html',
template: '/category.html'
}
}
end
page "/feed.xml", layout: false
page '/pwlconf2017/*', layout: 'pwlconf'
###
# OpenGraph Settings
###
activate :ogp do |ogp|
#
# register namespace with default options
#
ogp.namespaces = {
fb: data.ogp.fb,
# from data/ogp/fb.yml
og: data.ogp.og
# from data/ogp/og.yml
}
ogp.base_url = 'http://paperswelove.org/'
ogp.blog = true
end
###
# Build up Category listing data
###
ready do
@category_list = []
sitemap.resources.group_by {|p| p.data["category"] }.each do |category, pages|
@category_list << { :category => category, :pages => pages }
end
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
# Load Chapters YAML
@chapters = YAML.load_file('source/chapters.yml')
# Chapter pages
data.chapters.keys.reject { |i| i.nil? }.each do |chapter|
proxy "/chapter/#{chapter}.html", "/chapter.html", :locals => { :chapter => chapter, :events => data[chapter] }, :ignore => true
end
# Chapter index
proxy "/chapter/index.html", "/chapter_index.html", :locals => { :chapters => @chapters }, :ignore => true
# Proxy pages (http://middlemanapp.com/basics/dynamic-pages/)
# proxy "/this-page-has-no-template.html", "/template-file.html", locals: {
# which_fake_page: "Rendering a fake page with a local variable" }
###
# Helpers
###
# Directory indexes
activate :directory_indexes
# Automatic image dimensions on image_tag helper
activate :automatic_image_sizes
# Reload the browser automatically whenever files change
# activate :livereload
# Methods defined in the helpers block are available in templates
# helpers do
# def some_helper
# "Helping"
# end
# end
#set :markdown, :parse_block_html => true
set :css_dir, 'stylesheets'
set :js_dir, 'javascripts'
set :images_dir, 'images'
configure :development do
#activate :livereload
end
# 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 :asset_hash
# Use relative URLs
# activate :relative_assets
# Or use a different image path
# set :http_prefix, "/Content/images/"
end
###
# Git deploy
###
activate :deploy do |deploy|
deploy.build_before = true # default: false
deploy.method = :git
deploy.branch = "main" # default: gh-pages
end