-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathconfig.rb
157 lines (136 loc) · 3.81 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
# Custom MD parser
class ExtraSpecialParser < Redcarpet::Render::HTML
# def preprocess(document)
# puts document
# document
# end
# def normal_text(text)
# puts text
# text
# end
def table(head, body)
"<div class='table-wrap'><table>#{ head }#{ body }</table></div>"
end
# def paragraph(text)
# "<p>
# #{ text.gsub('--', '—') }
# </p>"
# end
def header(text, header_level)
if header_level == 2
slug = text.downcase.strip.gsub(' ', '-').gsub(/[^\w-]/, '')
"<h2 class='section-title' id=#{ slug }><a href='##{slug}' class='section-inner'>#{ text }</a></h2>"
else
"<h#{ header_level } tabIndex=0>#{ text }</h#{ header_level }>"
end
end
def block_quote(text)
parts = text.split(' --');
quote = parts[0];
quoteSource = parts[1];
"
<blockquote>
#{quote}
<cite>
#{quoteSource}
</cite>
</blockquote>
"
end
def block_code(code, language)
Middleman::Syntax::Highlighter.highlight(code, language, css_class: 'code', line_numbers: false)
end
#
# def list(contents, list_type)
# @tag = list_type[0] == 'o' ? 'ol' : 'ul'
# "<span class='article-p-inner'>
# <#{@tag} class='article-list'>
# #{contents}
# </#{@tag}>
# </span>"
# end
end
###
# Page options, layouts, aliases and proxies
###
# Per-page layout changes:
#
# With no layout
page '/*.xml', layout: false
page '/*.json', layout: false
page '/*.txt', layout: false
page '/404.html', layout: false, :directory_index => false
# With alternative layout
# page "/path/to/file.html", layout: :otherlayout
page '/info.html', layout: "article", locals: {not_article: 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
###
activate :blog do |blog|
ignore '*.ignore*'
# This will add a prefix to all links, template references and source paths
# blog.prefix = "blog"
blog.permalink = "{title}.html"
# Matcher for blog source files
blog.sources = "articles/{year}-{month}-{day}-{title}.html"
# blog.taglink = "tags/{tag}.html"
blog.layout = "article"
blog.new_article_template = File.expand_path('../source/sample-article.tt', __FILE__)
# blog.summary_separator = /(READMORE)/
# blog.summary_length = 250
# blog.year_link = "{year}.html"
# blog.month_link = "{year}/{month}.html"
# blog.day_link = "{year}/{month}/{day}.html"
blog.default_extension = ".md.erb"
# blog.tag_template = "tag.html"
# blog.calendar_template = "calendar.html"
activate :livereload
activate :directory_indexes
config[:js_dir] = 'js'
config[:css_dir] = 'styles'
config[:images_dir] = 'images'
activate :syntax
set :markdown_engine, :redcarpet
set(
:markdown,
:fenced_code_blocks => true,
:smartypants => true,
:disable_indented_code_blocks => true,
:strikethrough => true,
:highlight => true,
:tables => true,
:renderer => ExtraSpecialParser.new(with_toc_data: true)
)
activate :minify_html
# Enable pagination
# blog.paginate = true
# blog.per_page = 10
# blog.page_link = "page/{num}"
end
require 'tzinfo'
Time.zone = 'America/Los_Angeles'
page "/feed.xml", layout: false
# Reload the browser automatically whenever files change
# configure :development do
# activate :livereload
# activate :directory_indexes
# config[:js_dir] = 'js'
# # config[:css_dir] = 'styles'
# end
# Methods defined in the helpers block are available in templates
# helpers do
# def some_helper
# "Helping"
# end
# end
# Build-specific configuration
configure :build do
# Minify CSS on build
activate :minify_css
activate :gzip
# Minify Javascript on build
activate :minify_javascript
end