################### # Page options, layouts, aliases and proxies ###################
# With alternative layout page ‘/**’, layout: ‘glyptotheque’ # With no layout page “/glyptotheque/*”, layout: false, directory_index: false page ‘*.css’, layout: false page ‘*.js’, layout: false page ‘*.json’, layout: false
set :site_title, ‘Styleguide’
ready do
# Proxy default site index to Glyptotheque index template unless sitemap.find_resource_by_path '/index.html' proxy 'index.html', 'glyptotheque/site-index.html' end proxy 'sitemap.json', 'glyptotheque/sitemap.json' last_dir = nil # Prerender resources to populate models resources = resources_for('/', exclude_indexes: true, allow_hidden: true).each do |r| r.render end # Create mappings for isolated component pages (iframe embeddable) resources.each do |r| # Create virtual index files dir = File.dirname(r.path) index_exists = !!sitemap.find_resource_by_path("#{dir}/index.html") if last_dir != dir && !index_exists proxy "#{dir}/index.html", 'glyptotheque/directory-index.html', locals: { section: get_section_of_resource(r) } last_dir = dir end if r.metadata[:models] dir = File.dirname(r.path) r.metadata.models.each do |id, model| proxy "#{r.path.sub(r.ext, '')}-#{id}-isolated.html", r.path, layout: 'isolated', iframe: model.iframe, id: id, locals: { section: get_section_of_resource(r) } end end end
end
activate :sculptor activate :syntax, css_class: ‘codehilite’ activate :autoprefixer
################### # Helpers ###################
# helpers do # end
set :css_dir, ‘assets/styles’ set :js_dir, ‘assets/scripts’ set :images_dir, ‘assets/images’
set :relative_links, true
Slim::Engine.disable_option_validator! Slim::Engine.set_options pretty: true Slim::Engine.set_options attr_list_delims: { ‘(’ => ‘)’, ‘[’ => ‘]’ }
# Development-secific configuration configure :development do
activate :livereload, no_swf: true
end
# Build-specific configuration configure :build do
compass_config do |config| config.sass_options = { :line_comments => false } end # 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
################### # Additional tasks ###################
# Simple launcher for local evaluation build # Double click ‘build/launch.command` (Mac) after_build do |builder|
file = "#{build_dir}/launch.command" open(file, 'w') do |f| f << "#!/bin/bash\n" f << 'cd `dirname $0` && open "http://localhost:8000" && python -m SimpleHTTPServer' end File.chmod(0555, file)
end
# Middleman
Deploy activate :deploy do |deploy|
deploy.method = :git # Optional Settings # deploy.remote = 'custom-remote' # remote name or git url, default: origin # deploy.branch = 'custom-branch' # default: gh-pages # deploy.strategy = :submodule # commit strategy: can be :force_push or :submodule, default: :force_push # deploy.commit_message = 'custom-message' # commit message (can be empty), default: Automated commit at `timestamp` by middleman-deploy `version`
end