diff --git a/.gitignore b/.gitignore index f4b4e3e6..2d100006 100644 --- a/.gitignore +++ b/.gitignore @@ -5,6 +5,6 @@ output.diff crash.log *.autosave *.bak -items/assets/components/ +items/static/assets/components/ tmp/ .bundle diff --git a/.gitmodules b/.gitmodules index 2bde4349..087ef664 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,6 +1,6 @@ [submodule "specifications"] path = specifications url = git@github.com:pentandra/specifications.git -[submodule "items/company/benefit-reports"] - path = items/company/benefit-reports +[submodule "benefit-reports"] + path = items/static/company/benefit-reports url = git@github.com:pentandra/benefit-reports.git diff --git a/Checks b/Checks index 4a20313c..800eabae 100644 --- a/Checks +++ b/Checks @@ -27,10 +27,26 @@ check :no_unprocessed_markdown do end end +check :no_static_build_paths do + filenames = @output_filenames.select { |f| File.extname(f) == '.html' } + hrefs_with_filenames = ::Nanoc::Extra::LinkCollector.new(filenames, :internal).filenames_per_href + resource_uris_with_filenames = ::Nanoc::Extra::LinkCollector.new(filenames, :internal).filenames_per_resource_uri + + uris = hrefs_with_filenames.merge(resource_uris_with_filenames) + uris.each_pair do |href, fns| + fns.each do |filename| + if href.start_with?(@config[:static_root]) + add_issue("private build path present in #{href}", subject: filename) + end + end + end +end + deploy_check :internal_links deploy_check :mixed_content deploy_check :stale deploy_check :no_unprocessed_erb deploy_check :no_unprocessed_markdown +deploy_check :no_static_build_paths # vi: ft=ruby diff --git a/Gemfile b/Gemfile index df43c352..ab44d2eb 100644 --- a/Gemfile +++ b/Gemfile @@ -24,6 +24,7 @@ gem 'rouge' gem 'haml' gem 'pandoc-ruby' # for benefit reports in ConTeXt gem 'git' # for version history and tagging info +gem 'builder' # for XML stuff, such as sitemap and atom feeds group :development, optional: true do gem 'guard' diff --git a/Gemfile.lock b/Gemfile.lock index 08c812bb..f1ec9847 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -25,7 +25,7 @@ GIT GIT remote: https://github.com/ruby-rdf/rdf.git - revision: e1ff91841066369b8917dd21be9564452a6ea18a + revision: 4740b4a52bf358656d01d93adc5174d5fe07aec8 branch: develop specs: rdf (2.1.0) @@ -40,7 +40,8 @@ GEM i18n (~> 0.7) minitest (~> 5.1) tzinfo (~> 1.1) - addressable (2.4.0) + addressable (2.5.0) + public_suffix (~> 2.0, >= 2.0.2) adsf (1.2.1) rack (>= 1.0.0) bcp47 (0.3.3) @@ -191,11 +192,12 @@ GEM pandoc-ruby (2.0.1) parallel (1.9.0) pipe-run (0.3.0) - posix-spawn (0.3.11) + posix-spawn (0.3.12) pry (0.10.4) coderay (~> 1.1.0) method_source (~> 0.8.1) slop (~> 3.4) + public_suffix (2.0.4) pygments.rb (0.6.3) posix-spawn (~> 0.3.6) yajl-ruby (~> 1.2.0) @@ -330,6 +332,7 @@ PLATFORMS DEPENDENCIES activesupport adsf + builder chunky_png compass ghi diff --git a/README.md b/README.md index 6d33e125..3ddb8be3 100644 --- a/README.md +++ b/README.md @@ -23,6 +23,7 @@ in scope before compiling: #### Optional dependencies * [optipng] for optimizing PNG images * A Java 8 runtime for running the [Nu HTML] checker. +* [OpenResty] for running the dynamic parts of the site via `nanoc server`. ### Then clone this repo (including submodules), install bower components and Ruby gems… @@ -58,7 +59,8 @@ $ nanoc view # if you are only dealing with statically generated pages $ nanoc server # if you are dealing with both the static and dynamic aspects of the site ``` -And view the page in your browser. +And view the page in your browser at [port 3000](http://localhost:3000/) for +`nanoc view` or [port 4125](https://localhost:4125/) for `nanoc server`. ## Contributing @@ -95,3 +97,4 @@ Also, please see [the colophon][colophon] for more raving attributions! [pygments]: [bundler]: [colophon]: +[OpenResty]: diff --git a/Rules.rb b/Rules.rb index 3bdb4ec7..643251d4 100644 --- a/Rules.rb +++ b/Rules.rb @@ -13,5 +13,7 @@ include_rules 'rules/company' include_rules 'rules/blog' +include_rules 'rules/dynamic' + # This should always be last include_rules 'rules/catch_all' diff --git a/commands/server.rb b/commands/server.rb new file mode 100644 index 00000000..7a88e0da --- /dev/null +++ b/commands/server.rb @@ -0,0 +1,98 @@ +usage 'server [options]' +summary 'start the dynamic web server (nginx/OpenResty)' +description <<-EOS +Start the dynamic web server. Running this web server requires OpenResty +to be installed and in scope. +EOS + +required :c, :conf, 'specify the configuration file to use (default: nginx.conf)' +required :g, :global, 'specify any global directives (default: daemon off;)' + +module LifePreserver + class Server < ::Nanoc::CLI::CommandRunner + NGINX_BIN = 'nginx' + NGINX_SEARCH_PATHS = [ + '/usr/local/openresty/nginx/sbin/', + '/usr/local/opt/openresty/bin/', + '/usr/local/bin/', + '/usr/sbin/', + '/opt/openresty/nginx/sbin/' + ] + + class Error < ::Nanoc::Int::Errors::Generic + def initialize(command, exit_code) + @command = command + @exit_code = exit_code + end + + def message + "command exited with a nonzero status code #{@exit_code} (command: #{@command.join(' ')})" + end + end + + def run + require 'open3' + + load_site + + conf = options[:conf] || 'nginx.conf' + directives = options[:global] || 'daemon off;' + + + nginx = find_nginx + output_dir = site.config[:output_dir] + cmd = [ nginx, '-p', output_dir, '-c', conf, '-g', directives ] + + Open3.popen3(*cmd) do |_stdin, stdout, stderr, wait_thr| + puts "Starting OpenResty (#{nginx}) in path (#{output_dir}) with config (#{conf}) and global directives (#{directives})" + + stdout_thread = Thread.new do + while (line = stdout.gets) + puts line + end + end + + stderr_thread = Thread.new do + while (line = stderr.gets) + puts line + end + end + + stdout_thread.join + stderr_thread.join + + exit_status = wait_thr.value + unless exit_status.success? + raise Error.new(cmd, exit_status.to_i) + end + end + end + + protected + + def find_nginx + NGINX_SEARCH_PATHS.each do |path| + to_check = path + NGINX_BIN + if File.file?(to_check) && openresty?(to_check) + return to_check + end + end + + # As a last resort, check the PATH + require 'mkmf' + to_check = find_executable0(NGINX_BIN) + if to_check && openresty?(to_check) + return to_check + end + + raise "Cannot find the OpenResty executable in any of the following places: #{NGINX_SEARCH_PATHS.join(':')} or in the current path: #{ENV['PATH']}" + end + + def openresty?(path_to_check) + output, _status = Open3.capture2e(path_to_check, '-v') + output && output['openresty'] + end + end +end + +runner LifePreserver::Server diff --git a/commands/view.rb b/commands/view.rb new file mode 100644 index 00000000..79994f0d --- /dev/null +++ b/commands/view.rb @@ -0,0 +1,91 @@ +usage 'view [options]' +summary 'start the web server that serves static files' +description <<-EOS +Start the static web server. Unless specified, the web server will run on port +3000 and listen on all IP addresses. Running this static web server requires +`adsf` (not `asdf`!). +EOS + +required :H, :handler, 'specify the handler to use (webrick/mongrel/...)' +required :o, :host, 'specify the host to listen on (default: 0.0.0.0)' +required :p, :port, 'specify the port to listen on (default: 3000)' + +module Nanoc::CLI::Commands + class View < ::Nanoc::CLI::CommandRunner + DEFAULT_HANDLER_NAME ||= :thin + + def run + load_adsf + require 'rack' + + load_site + + # Set options + options_for_rack = { + Port: (options[:port] || 3000).to_i, + Host: (options[:host] || '0.0.0.0'), + } + + # Get handler + if options.key?(:handler) + handler = Rack::Handler.get(options[:handler]) + else + begin + handler = Rack::Handler.get(DEFAULT_HANDLER_NAME) + rescue LoadError + handler = Rack::Handler::WEBrick + end + end + + # Build app + site = self.site + site_root = site.config[:output_dir] + view_config_root + + app = Rack::Builder.new do + use Rack::CommonLogger + use Rack::ShowExceptions + use Rack::Lint + use Rack::Head + use Adsf::Rack::IndexFileFinder, root: site_root + run Rack::File.new(site_root) + end.to_app + + # Run autocompiler + handler.run(app, options_for_rack) + end + + protected + + def view_config + site.config[:view] || {} + end + + def view_config_root + view_config[:static_root] + end + + def load_adsf + # Load adsf + begin + require 'adsf' + return + rescue LoadError + $stderr.puts "Could not find the required 'adsf' gem, " \ + 'which is necessary for the view command.' + end + + # Check asdf + begin + require 'asdf' + $stderr.puts "You appear to have 'asdf' installed, " \ + "but not 'adsf'. Please install 'adsf' (check the spelling)!" + rescue LoadError + end + + # Done + exit 1 + end + end +end + +runner Nanoc::CLI::Commands::View diff --git a/etc/compass/config.rb b/etc/compass/config.rb index 5e72370c..d757f36b 100644 --- a/etc/compass/config.rb +++ b/etc/compass/config.rb @@ -1,15 +1,15 @@ require 'compass/import-once/activate' # Require any additional compass plugins here. -add_import_path "items/assets/components/retina.js/src" +add_import_path "items/static/assets/components/retina.js/src" http_path = "/" project_path = File.expand_path(File.join(File.dirname(__FILE__), '../../')) -css_dir = "items/assets/stylesheets" -sass_dir = "items/assets/stylesheets" -images_dir = "items/assets/images" -javascripts_dir = "items/assets/scripts" -fonts_dir = "items/assets/fonts" +css_dir = "items/static/assets/stylesheets" +sass_dir = "items/static/assets/stylesheets" +images_dir = "items/static/assets/images" +javascripts_dir = "items/static/assets/scripts" +fonts_dir = "items/static/assets/fonts" http_javascripts_path = "js" http_stylesheets_path = "css" http_images_path = "images" diff --git a/items/assets/scripts/jsonld.js.erb b/items/assets/scripts/jsonld.js.erb deleted file mode 100644 index 4155e516..00000000 --- a/items/assets/scripts/jsonld.js.erb +++ /dev/null @@ -1 +0,0 @@ -<%= @items['/assets/components/jsonld/js/jsonld.js'].compiled_content(snapshot: :raw) %> diff --git a/items/company/benefit-reports b/items/company/benefit-reports deleted file mode 160000 index 88409e75..00000000 --- a/items/company/benefit-reports +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 88409e75da7ba6aef075a4adea0ef25949148e47 diff --git a/items/directives/cache-file-descriptors.conf b/items/directives/cache-file-descriptors.conf new file mode 100644 index 00000000..86ffe151 --- /dev/null +++ b/items/directives/cache-file-descriptors.conf @@ -0,0 +1,21 @@ +# This tells Nginx to cache open file handles, "not found" errors, metadata about files and their permissions, etc. +# +# The upside of this is that Nginx can immediately begin sending data when a popular file is requested, +# and will also know to immediately send a 404 if a file is missing on disk, and so on. +# +# However, it also means that the server won't react immediately to changes on disk, which may be undesirable. +# +# In the below configuration, inactive files are released from the cache after 20 seconds, whereas +# active (recently requested) files are re-validated every 30 seconds. +# +# Descriptors will not be cached unless they are used at least 2 times within 20 seconds (the inactive time). +# +# A maximum of the 1000 most recently used file descriptors can be cached at any time. +# +# Production servers with stable file collections will definitely want to enable the cache. +open_file_cache max=1000 inactive=20s; +open_file_cache_valid 30s; +open_file_cache_min_uses 2; +open_file_cache_errors on; + +# vi: ft=nginx diff --git a/items/directives/cross-domain-insecure.conf b/items/directives/cross-domain-insecure.conf new file mode 100644 index 00000000..01b20cb0 --- /dev/null +++ b/items/directives/cross-domain-insecure.conf @@ -0,0 +1,16 @@ +# Cross domain AJAX requests + +# http://www.w3.org/TR/cors/#access-control-allow-origin-response-header + +# **Security Warning** +# Do not use this without understanding the consequences. +# This will permit access from any other website. +# +add_header "Access-Control-Allow-Origin" "*"; + +# Instead of using this file, consider using a specific rule such as: +# +# Allow access based on [sub]domain: +# add_header "Access-Control-Allow-Origin" "subdomain.example.com"; + +# vi: ft=nginx diff --git a/items/directives/extra-security.conf b/items/directives/extra-security.conf new file mode 100644 index 00000000..6205b438 --- /dev/null +++ b/items/directives/extra-security.conf @@ -0,0 +1,19 @@ +# The X-Frame-Options header indicates whether a browser should be allowed +# to render a page within a frame or iframe. +add_header X-Frame-Options SAMEORIGIN; + +# MIME type sniffing security protection +# There are very few edge cases where you wouldn't want this enabled. +add_header X-Content-Type-Options nosniff; + +# The X-XSS-Protection header is used by Internet Explorer version 8+ +# The header instructs IE to enable its inbuilt anti-cross-site scripting filter. +add_header X-XSS-Protection "1; mode=block"; + +# with Content Security Policy (CSP) enabled (and a browser that supports it (http://caniuse.com/#feat=contentsecuritypolicy), +# you can tell the browser that it can only download content from the domains you explicitly allow +# CSP can be quite difficult to configure, and cause real issues if you get it wrong +# There is website that helps you generate a policy here http://cspisawesome.com/ +# add_header Content-Security-Policy "default-src 'self'; style-src 'self' 'unsafe-inline'; script-src 'self' https://www.google-analytics.com;"; + +# vi: ft=nginx diff --git a/items/directives/no-transform.conf b/items/directives/no-transform.conf new file mode 100644 index 00000000..61a1aeae --- /dev/null +++ b/items/directives/no-transform.conf @@ -0,0 +1,13 @@ +# Prevent mobile network providers from modifying your site +# +# (!) If you are using `ngx_pagespeed`, please note that setting +# the `Cache-Control: no-transform` response header will prevent +# `PageSpeed` from rewriting `HTML` files, and, if +# `pagespeed DisableRewriteOnNoTransform off` is not used, also +# from rewriting other resources. +# +# https://developers.google.com/speed/pagespeed/module/configuration#notransform + +add_header "Cache-Control" "no-transform"; + +# vi: ft=nginx diff --git a/items/directives/ssl-stapling.conf b/items/directives/ssl-stapling.conf new file mode 100644 index 00000000..288b7de9 --- /dev/null +++ b/items/directives/ssl-stapling.conf @@ -0,0 +1,11 @@ +# OCSP stapling... +ssl_stapling on; +ssl_stapling_verify on; + +#trusted cert must be made up of your intermediate certificate followed by root certificate +#ssl_trusted_certificate /path/to/ca.crt; + +resolver 8.8.8.8 8.8.4.4 216.146.35.35 216.146.36.36 valid=60s; +resolver_timeout 2s; + +# vi: ft=nginx diff --git a/items/directives/ssl.conf b/items/directives/ssl.conf new file mode 100644 index 00000000..99d7662d --- /dev/null +++ b/items/directives/ssl.conf @@ -0,0 +1,49 @@ +# Protect against the BEAST and POODLE attacks by not using SSLv3 at all. If you need to support older browsers (IE6) you may need to add +# SSLv3 to the list of protocols below. +ssl_protocols TLSv1 TLSv1.1 TLSv1.2; + +# Ciphers set to best allow protection from Beast, while providing forwarding secrecy, as defined by Mozilla (Intermediate Set) - https://wiki.mozilla.org/Security/Server_Side_TLS#Nginx +ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:ECDHE-RSA-DES-CBC3-SHA:ECDHE-ECDSA-DES-CBC3-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA; +ssl_prefer_server_ciphers on; + +# Optimize SSL by caching session parameters for 10 minutes. This cuts down on the number of expensive SSL handshakes. +# The handshake is the most CPU-intensive operation, and by default it is re-negotiated on every new/parallel connection. +# By enabling a cache (of type "shared between all Nginx workers"), we tell the client to re-use the already negotiated state. +# Further optimization can be achieved by raising keepalive_timeout, but that shouldn't be done unless you serve primarily HTTPS. +ssl_session_cache shared:SSL:10m; # a 1mb cache can hold about 4000 sessions, so we can hold 40000 sessions +ssl_session_timeout 24h; + +# SSL buffer size was added in 1.5.9 +#ssl_buffer_size 1400; # 1400 bytes to fit in one MTU + +# Session tickets appeared in version 1.5.9 +# +# nginx does not auto-rotate session ticket keys: only a HUP / restart will do so and +# when a restart is performed the previous key is lost, which resets all previous +# sessions. The fix for this is to setup a manual rotation mechanism: +# http://trac.nginx.org/nginx/changeset/1356a3b9692441e163b4e78be4e9f5a46c7479e9/nginx +# +# Note that you'll have to define and rotate the keys securely by yourself. In absence +# of such infrastructure, consider turning off session tickets: +#ssl_session_tickets off; + +# Use a higher keepalive timeout to reduce the need for repeated handshakes +keepalive_timeout 300s; # up from 75 secs default + +# HSTS (HTTP Strict Transport Security) +# This header tells browsers to cache the certificate for a year and to connect exclusively via HTTPS. +#add_header Strict-Transport-Security "max-age=31536000;"; +# This version tells browsers to treat all subdomains the same as this site and to load exclusively over HTTPS +#add_header Strict-Transport-Security "max-age=31536000; includeSubDomains;"; +# This version tells browsers to treat all subdomains the same as this site and to load exclusively over HTTPS, and consent to have the domain preloaded in the HSTS preload list +# Add each domain here: https://hstspreload.appspot.com/ +add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload"; + +# This default SSL certificate will be served whenever the client lacks support for SNI (Server Name Indication). +# Make it a symlink to the most important certificate you have, so that users of IE 8 and below on WinXP can see your main site without SSL errors. +#ssl_certificate /etc/nginx/default_ssl.crt; +#ssl_certificate_key /etc/nginx/default_ssl.key; + +# Consider using OCSP Stapling as shown in ssl-stapling.conf + +# vi: ft=nginx diff --git a/items/directives/x-ua-compatible.conf b/items/directives/x-ua-compatible.conf new file mode 100644 index 00000000..4e5e345b --- /dev/null +++ b/items/directives/x-ua-compatible.conf @@ -0,0 +1,4 @@ +# Force the latest IE version +add_header "X-UA-Compatible" "IE=Edge"; + +# vi: ft=nginx diff --git a/items/etc/certs/dhparams.pem b/items/etc/certs/dhparams.pem new file mode 100644 index 00000000..26fa74ba --- /dev/null +++ b/items/etc/certs/dhparams.pem @@ -0,0 +1,8 @@ +-----BEGIN DH PARAMETERS----- +MIIBCAKCAQEAh+ci+VZTYSMi7wkqeUQQlkHQHmp9XTxiwTFoSySMnuLitO5l6Lln +21bjWFxn4cDpZ9mucx3qwF9gcmO0DgJP8B1wrJzXt3LSYHocDd42BMbsNkRlvNuk +tEnhdbbZC1U/LOuy4o3rvQxnfBMzyBfegD6fnAGExfIaeKJ74I8se20eig1u8WJU +AExoUo99w3F2HmLHF8lkDZWNyalFNnefTdRJjHBrK59FmVpSDgbNST8/9T2Rxvif +HXfV3KF1VX9bzUCBVPszKvIl6q/9TnNz99HSY5UM6MAYXal0fdLgWgHe9gTl6a4b +cSzW/BNxBJ7Rg0jkWkkDH8G/sV1nPAqbEwIBAg== +-----END DH PARAMETERS----- diff --git a/items/etc/certs/server.crt b/items/etc/certs/server.crt new file mode 100644 index 00000000..e048a619 --- /dev/null +++ b/items/etc/certs/server.crt @@ -0,0 +1,17 @@ +-----BEGIN CERTIFICATE----- +MIICpDCCAYwCCQD6m5X1/oqOMTANBgkqhkiG9w0BAQsFADAUMRIwEAYDVQQDDAls +b2NhbGhvc3QwHhcNMTYxMTA4MTU0NDI3WhcNMjYxMTA2MTU0NDI3WjAUMRIwEAYD +VQQDDAlsb2NhbGhvc3QwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDi +d9FwdPeCipn0vvX3hbjQBxhK6K6Eoziu+V0b/nVbkfaD8BzvaLfqpShAkYcXT8Dq +O1ILMPn4VQzbooBV5z1M21yoEzUsnuN11XAcEBbONNeJqz2WepzerA79ca97W2A6 +Y24k+NoyAPgDDJJDx8SZrspR0D1JEmIzEp+e/PYOPaScM+UWdMi5GyCxQmuTdOpz +izJUTnK2lMPAHMP5EScf+QXqLT11elYVxEY2hQMzgsFzdbWcikgqghsoK9ByhmQP +2ok8YWH8kG3dXdNySBHmGKsrfuC2N9Gl3dPimD0uvb7fdxoknQpvz3G+hN9MkZSI +5yKb+/sD9Zhi3YQuRPsDAgMBAAEwDQYJKoZIhvcNAQELBQADggEBAF6XjqATvtJQ +EiFt4W9kqho0ilzFMP/pXn/0kpZrOUGC/CpPx7w8brhhsrUwGn7PP//WyWNIc2Yk +JUqzkcdT1xmjj9J/6Yuo4te/VSHOF5OQdeJ4PQCSwiEy5uFA0jsFpaM4yLb2cazy +aucfXP788OjLOXO5efh4Fs6xsTQiBMOcj0GCaWkt9djrpE8b+JzMxx9rB4MGqtEy +1U8+sPyEVfEx2beGGBzrZ4bA2uuicU2ZeGm8zbvd9QpwFBdfLixyjBUtag1HB0iU +ADY/ETvxssp8CGJMAfMVPyX3ACKp0mQ4QRRkvaQrovuDy0Js1EHI2YkZr/c1n0P2 +iRV9fM+29Tc= +-----END CERTIFICATE----- diff --git a/items/etc/certs/server.key b/items/etc/certs/server.key new file mode 100644 index 00000000..329dc51d --- /dev/null +++ b/items/etc/certs/server.key @@ -0,0 +1,27 @@ +-----BEGIN RSA PRIVATE KEY----- +MIIEpAIBAAKCAQEA4nfRcHT3goqZ9L7194W40AcYSuiuhKM4rvldG/51W5H2g/Ac +72i36qUoQJGHF0/A6jtSCzD5+FUM26KAVec9TNtcqBM1LJ7jddVwHBAWzjTXias9 +lnqc3qwO/XGve1tgOmNuJPjaMgD4AwySQ8fEma7KUdA9SRJiMxKfnvz2Dj2knDPl +FnTIuRsgsUJrk3Tqc4syVE5ytpTDwBzD+REnH/kF6i09dXpWFcRGNoUDM4LBc3W1 +nIpIKoIbKCvQcoZkD9qJPGFh/JBt3V3TckgR5hirK37gtjfRpd3T4pg9Lr2+33ca +JJ0Kb89xvoTfTJGUiOcim/v7A/WYYt2ELkT7AwIDAQABAoIBAEXB+I52SQM55EBi +TeuHkizp8o6oa5FJoZ0sDIUh9U5WgKOVY6RPEk/BvctdyEni9B5yVUxDMsxOjl5d +CMDtMJGrBDh1aiyraI8URqsuPYgY+MdcKuVeMVHZl+hzi0UpGVQC6puS18sNR1fR +GICuWR2pnIJk7WvDsOHge7CCZNxvhe8qcq0Ri4gRTsHThe0B5dppy/tjl3uHeJg2 +w4cC8B6OcIfWv9Smc3m+4wZUrzHEkLSbGKSHums51P72TYx9eEXXnf+1AIb+rcv1 +lOix3zpzGgfB6WgqeverJriUW3hXaMbgcXGPOZqealCGVD38upjEgcgzTu2C2TAj +6/2KTgECgYEA/QnoC/Lqz5fepESdHaec9u2EZ2VvZJ8e8MvM/abjmmGnNjSjzal+ +9328Pw2xhqXOK50t45o5pXfPoL2/hYrIAmsSq72o9O3gBrilxqOrwkEUWx3pX151 +BQDO2SK+0+opFnZiG4V2zT2EvXj3ySuxC0PZQV+V50OpVr1MVrICJQECgYEA5R5O +nWCcI1aqSLhzpaUIXufrPl6p26szEUMfRYGDBVzoDBG28R3wO85kXUa7jM4uS6/B +wwY6lUtaYKMRMgbjl3wtGmMZqgrbTovJ7rkkyiSjeKKq6M9CbHEJrHhp7Zo4TCmB +2RJqQpnI4p+BSHG/NvYCcmdpuk+zyps3uKICjAMCgYEAnqv/nr6ND/Aj5M5B176r +Zww54rxwxaAiPs0NlmF4h+6EdDE+JlELFRb7XG6xy8VdK2w8wmSLkX8364wQ9SS5 +lwqdgqRDtpMT0CMpkQ5BPmag5SI0nWEV8DU5gF+RWkGT0koZ6zgd70WMX2PjvXpw +YqgBLEVMMuDy5zl9DUBCqAECgYAmMagvSgSdS3w1hTIaIenEUGsByawNJ3vq28Kh +xpY91aAFKwrRJQmAHsbSWdE4BsLm8RSe2zH240ncpDJgoY9dGGE4bd7AXvDyJhFy +j0CXxgXOPWe6SZqsEyfmrWgTKMtLvvubYRt/oL1BMg/OMNAMbHQ5+A1C9rhlBP0D +9VXxWwKBgQDHuyck3vkqwAqHd2TPSCjiDaeKUxx4m8q7pSwviK00ULxnsen+ASIS +SIjQThDsok0IZ1mPFAVsJc4ffDlUqHx1gea6pajyYF3OuQ4UEq85UCh8N4qj89VZ +Nbl74shhi+ymmPv9m9z+8X/cTuOs6eKpTTv0e9I+ADxhApQeS7NlLA== +-----END RSA PRIVATE KEY----- diff --git a/items/logs/error.log b/items/logs/error.log new file mode 100644 index 00000000..2fb6f2e1 --- /dev/null +++ b/items/logs/error.log @@ -0,0 +1 @@ +# Error log diff --git a/items/mime.types b/items/mime.types new file mode 100644 index 00000000..2879dab5 --- /dev/null +++ b/items/mime.types @@ -0,0 +1,136 @@ +types { + + # Data interchange + + application/atom+xml atom; + application/json json map topojson; + application/ld+json jsonld; + application/rss+xml rss; + application/vnd.geo+json geojson; + application/xml xml; + application/rdf+xml rdf; + text/turtle ttl; + text/n3 n3; + + # JavaScript + + # Normalize to standard type. + # https://tools.ietf.org/html/rfc4329#section-7.2 + application/javascript js; + + # Manifest files + + application/manifest+json webmanifest; + application/x-web-app-manifest+json webapp; + text/cache-manifest appcache; + + # Media files + + audio/midi mid midi kar; + audio/mp4 aac f4a f4b m4a; + audio/mpeg mp3; + audio/ogg oga ogg opus; + audio/x-realaudio ra; + audio/x-wav wav; + + image/bmp bmp; + image/gif gif; + image/jpeg jpeg jpg; + image/png png; + image/svg+xml svg svgz; + image/tiff tif tiff; + image/vnd.wap.wbmp wbmp; + image/webp webp; + image/x-jng jng; + + video/3gpp 3gp 3gpp; + video/mp4 f4p f4v m4v mp4; + video/mpeg mpeg mpg; + video/ogg ogv; + video/quicktime mov; + video/webm webm; + video/x-flv flv; + video/x-mng mng; + video/x-ms-asf asf asx; + video/x-ms-wmv wmv; + video/x-msvideo avi; + + # Serving `.ico` image files with a different media type + # prevents Internet Explorer from displaying then as images: + # https://github.com/h5bp/html5-boilerplate/commit/37b5fec090d00f38de64b591bcddcb205aadf8ee + + image/x-icon cur ico; + + # Microsoft Office + + application/msword doc; + application/vnd.ms-excel xls; + application/vnd.ms-powerpoint ppt; + application/vnd.openxmlformats-officedocument.wordprocessingml.document docx; + application/vnd.openxmlformats-officedocument.spreadsheetml.sheet xlsx; + application/vnd.openxmlformats-officedocument.presentationml.presentation pptx; + + # Web fonts + + application/font-woff woff; + application/font-woff2 woff2; + application/vnd.ms-fontobject eot; + + # Browsers usually ignore the font media types and simply sniff + # the bytes to figure out the font type. + # https://mimesniff.spec.whatwg.org/#matching-a-font-type-pattern + # + # However, Blink and WebKit based browsers will show a warning + # in the console if the following font types are served with any + # other media types. + + application/x-font-ttf ttc ttf; + font/opentype otf; + + # Other + application/java-archive ear jar war; + application/mac-binhex40 hqx; + application/octet-stream bin deb dll dmg exe img iso msi msm msp safariextz; + application/pdf pdf; + application/postscript ai eps ps; + application/rtf rtf; + application/vnd.google-earth.kml+xml kml; + application/vnd.google-earth.kmz kmz; + application/vnd.wap.wmlc wmlc; + application/x-7z-compressed 7z; + application/x-bb-appworld bbaw; + application/x-bittorrent torrent; + application/x-chrome-extension crx; + application/x-cocoa cco; + application/x-java-archive-diff jardiff; + application/x-java-jnlp-file jnlp; + application/x-makeself run; + application/x-opera-extension oex; + application/x-perl pl pm; + application/x-pilot pdb prc; + application/x-rar-compressed rar; + application/x-redhat-package-manager rpm; + application/x-sea sea; + application/x-shockwave-flash swf; + application/x-stuffit sit; + application/x-tcl tcl tk; + application/x-x509-ca-cert crt der pem; + application/x-xpinstall xpi; + application/xhtml+xml xhtml; + application/xslt+xml xsl; + application/zip zip; + + text/css css; + text/html htm html shtml; + text/mathml mml; + text/plain txt; + text/vcard vcard vcf; + text/vnd.rim.location.xloc xloc; + text/vnd.sun.j2me.app-descriptor jad; + text/vnd.wap.wml wml; + text/vtt vtt; + text/x-component htc; + +} + +# vi: ft=nginx diff --git a/items/nginx.conf b/items/nginx.conf new file mode 100644 index 00000000..d5cf46cd --- /dev/null +++ b/items/nginx.conf @@ -0,0 +1,237 @@ +# Configuration File - Nginx Server Configs +# http://nginx.org/en/docs/dirindex.html + +<% if @config[:production] %> +# Run as a unique, less privileged user for security reasons. +user nginx; + +# Sets the worker threads to the number of CPU cores available in the system +# for best performance. +# Should be > the number of CPU cores. +# Maximum number of connections = worker_processes * worker_connections +worker_processes auto; + +# Maximum file descriptors that can be opened per process +# This should be > worker_connections +worker_rlimit_nofile 8192; + +events { + # If you need more connections than this, you start optimizing your OS. + # That's probably the point at which you hire people who are smarter than you + # as this is *a lot* of requests. Should be < worker_rlimit_nofile. + worker_connections 8000; +} +<% else %> +events { + worker_connections 1024; +} +<% end %> + +error_log <% if @config[:production] %>logs/error.log warn<% else %>stderr info<% end %>; + +# The file storing the process ID of the main process +pid <%= @config[:server][:pid_file] %>; + +http { + + # Hide nginx version information. + server_tokens off; + + # Specify MIME types for files. + include mime.types; + default_type application/octet-stream; + + # Update charset_types to match updated mime.types. + # text/html is always included by charset module. + charset_types + text/xml + text/css + text/plain + text/vnd.wap.wml + text/vcard + text/turtle + text/n3 + application/javascript + application/json + application/atom+xml + application/rss+xml + application/rdf+xml + application/ld+json; + + # Include $http_x_forwarded_for within default format used in log files + log_format main '$remote_addr - $remote_user [$time_local] "$request" ' + '$status $body_bytes_sent "$http_referer" ' + '"$http_user_agent" "$http_x_forwarded_for"'; + + # Log access to this file + # This is only used when you don't override it on a server{} level + access_log logs/access.log main; + + # How long to allow each connection to stay idle. + # Longer values are better for each individual client, particularly for SSL, + # but means that worker connections are tied up longer. + keepalive_timeout 20s; + + # Speed up file transfers by using sendfile() to copy directly + # between descriptors rather than using read()/write(). + # For performance reasons, on FreeBSD systems w/ ZFS + # this option should be disabled as ZFS's ARC caches + # frequently used files in RAM by default. + sendfile on; + + # Don't send out partial frames; this increases throughput + # since TCP frames are filled up before being sent out. + tcp_nopush on; + + # Enable gzip compression. + gzip on; + + # Compression level (1-9). + # 5 is a perfect compromise between size and CPU usage, offering about + # 75% reduction for most ASCII files (almost identical to level 9). + gzip_comp_level 5; + + # Don't compress anything that's already small and unlikely to shrink much + # if at all (the default is 20 bytes, which is bad as that usually leads to + # larger files after gzipping). + gzip_min_length 256; + + # Compress data even for clients that are connecting to us via proxies, + # identified by the "Via" header (required for CloudFront). + gzip_proxied any; + + # Tell proxies to cache both the gzipped and regular version of a resource + # whenever the client's Accept-Encoding capabilities header varies; + # Avoids the issue where a non-gzip capable client (which is extremely rare + # today) would display gibberish if their proxy gave them the gzipped version. + gzip_vary on; + + # Compress all output labeled with one of the following MIME-types. + gzip_types + application/atom+xml + application/javascript + application/json + application/ld+json + application/manifest+json + application/rss+xml + application/vnd.geo+json + application/vnd.ms-fontobject + application/x-font-ttf + application/x-web-app-manifest+json + application/xhtml+xml + application/xml + font/opentype + image/bmp + image/svg+xml + image/x-icon + text/cache-manifest + text/css + text/plain + text/vcard + text/vnd.rim.location.xloc + text/vtt + text/x-component + text/x-cross-domain-policy; + # text/html is always compressed by gzip module + + # This should be turned on if you are going to have pre-compressed copies (.gz) of + # static files available. If not it should be left off as it will cause extra I/O + # for the check. It would be better to enable this in a location {} block for + # a specific directory, or on an individual server{} level. + # gzip_static on; + + gzip_disable "msie6"; + + # Drop requests for unknown hosts + # + # If no default server is defined, nginx will use the first found server. + # To prevent host header attacks, or other potential problems when an unknown + # servername is used in a request, it's recommended to drop the request + # returning 444 "no response". + + server { + listen <%= @config[:server][:port] %> default_server; + return 444; + } + + # Choose between www and non-www, listen on the *wrong* one and redirect to + # the right one -- http://wiki.nginx.org/Pitfalls#Server_Name + # + server { + listen [::]:<%= @config[:server][:port] %>; + listen <%= @config[:server][:port] %>; + + # listen on both hosts + server_name <%= @config[:server][:name] %> www.<%= @config[:server][:name] %>; + + # and redirect to the https host (declared below) + # avoiding http://www -> https://www -> https:// chain. + return 301 https://<%= @config[:server][:name] %>$request_uri; + } + + server { + listen [::]:<%= @config[:server][:port_tls] %> ssl http2; + listen <%= @config[:server][:port_tls] %> ssl http2; + + # listen on the wrong host + server_name www.<%= @config[:server][:name] %>; + + include directives/ssl.conf; + + ssl_certificate <%= @config[:server][:tls_certificate] %>; + ssl_certificate_key <%= @config[:server][:tls_certificate_key] %>; + ssl_dhparam <%= @config[:server][:tls_dhparam] %>; + + # and redirect to the non-www host (declared below) + return 301 https://<%= @config[:server][:name] %>$request_uri; + } + + server { + + <% if RUBY_PLATFORM['freebsd'] %> + listen [::]:<%= @config[:server][:port_tls] %> ssl http2 accept_filter=dataready; + listen <%= @config[:server][:port_tls] %> ssl http2 accept_filter=dataready; + <% elsif RUBY_PLATFORM['linux'] %> + listen [::]:<%= @config[:server][:port_tls] %> ssl http2 deferred; + listen <%= @config[:server][:port_tls] %> ssl http2 deferred; + <% else %> + listen [::]:<%= @config[:server][:port_tls] %> ssl http2; + listen <%= @config[:server][:port_tls] %> ssl http2; + <% end %> + + # The host name to respond to + server_name <%= @config[:server][:name] %>; + + include directives/ssl.conf; + + ssl_certificate <%= @config[:server][:tls_certificate] %>; + ssl_certificate_key <%= @config[:server][:tls_certificate_key] %>; + ssl_dhparam <%= @config[:server][:tls_dhparam] %>; + + <% if @config[:production] %> + include directives/ssl-stapling.conf; + <% end %> + + include directives/extra-security.conf; + + #Specify a charset + charset utf-8; + + # Custom 404 page + error_page 404 /404.html; + + # Include the basic config set + include directives/x-ua-compatible.conf; + include routes/expires.conf; + include routes/protect-system-files.conf; + include routes/server-status.conf; + + lua_code_cache <%= @config[:server][:code_cache] %>; + + root <%= @config.fetch(:static_root).sub(/^\/+/, '') %>; + + try_files $uri $uri/index.html; + + include routes/redirections.conf; + } +} diff --git a/items/routes/expires.conf b/items/routes/expires.conf new file mode 100644 index 00000000..90bc4279 --- /dev/null +++ b/items/routes/expires.conf @@ -0,0 +1,45 @@ +# Expire rules for static content + +# No default expire rule. This config mirrors that of apache as outlined in the +# html5-boilerplate .htaccess file. However, nginx applies rules by location, +# the apache rules are defined by type. A consequence of this difference is that +# if you use no file extension in the url and serve html, with apache you get an +# expire time of 0s, with nginx you'd get an expire header of one month in the +# future (if the default expire rule is 1 month). Therefore, do not use a +# default expire rule with nginx unless your site is completely static + +# cache.appcache, your document html and data +location ~* \.(?:manifest|appcache|html?|xml|json)$ { + expires -1; + access_log logs/static.log; +} + +# Feed +location ~* \.(?:rss|atom)$ { + expires 1h; + add_header Cache-Control "public"; +} + +# Media: images, icons, video, audio, HTC +location ~* \.(?:jpg|jpeg|gif|png|ico|cur|gz|svg|svgz|mp4|ogg|ogv|webm|htc)$ { + expires 1M; + access_log off; + add_header Cache-Control "public"; +} + +# CSS and Javascript +location ~* \.(?:css|js)$ { + expires 1y; + access_log off; + add_header Cache-Control "public"; +} + +# WebFonts +# If you are NOT using cross-domain-fonts.conf, uncomment the following directive +location ~* \.(?:ttf|ttc|otf|eot|woff|woff2)$ { + expires 1M; + access_log off; + add_header Cache-Control "public"; +} + +# vi: ft=nginx diff --git a/items/routes/protect-system-files.conf b/items/routes/protect-system-files.conf new file mode 100644 index 00000000..3516901f --- /dev/null +++ b/items/routes/protect-system-files.conf @@ -0,0 +1,15 @@ +# Prevent clients from accessing hidden files (starting with a dot) +# This is particularly important if you store .htpasswd files in the site hierarchy +# Access to `/.well-known/` is allowed. +# https://www.mnot.net/blog/2010/04/07/well-known +# https://tools.ietf.org/html/rfc5785 +location ~* /\.(?!well-known\/) { + deny all; +} + +# Prevent clients from accessing to backup/config/source files +location ~* (?:\.(?:bak|conf|dist|fla|in[ci]|log|psd|sh|sql|sw[op])|~)$ { + deny all; +} + +# vi: ft=nginx diff --git a/items/routes/redirections.conf b/items/routes/redirections.conf new file mode 100644 index 00000000..de4c0463 --- /dev/null +++ b/items/routes/redirections.conf @@ -0,0 +1,18 @@ +# Specific locations that involve HTTP redirections + +# Redirect public feed to actual feed +location /blog/feed { + return 307 /blog/feed.atom; +} + +# Redirect products → solutions page +location /products { + return 301 /solutions/; +} + +# Redirect /company/funding/ → /company/funders/ page +location /company/funding { + return 301 /company/funders/; +} + +# vi: ft=nginx diff --git a/items/routes/server-status.conf b/items/routes/server-status.conf new file mode 100644 index 00000000..a233ccbd --- /dev/null +++ b/items/routes/server-status.conf @@ -0,0 +1,9 @@ +# Get stub status for monitoring. +location /nginx_status { + stub_status on; + access_log off; + allow 75.144.9.40/29; + deny all; +} + +# vi: ft=nginx diff --git a/items/404.erb b/items/static/404.erb similarity index 100% rename from items/404.erb rename to items/static/404.erb diff --git a/items/apple-touch-icon.png b/items/static/apple-touch-icon.png similarity index 100% rename from items/apple-touch-icon.png rename to items/static/apple-touch-icon.png diff --git a/items/assets/fonts/FunctionCaps-Book-webfont.eot b/items/static/assets/fonts/FunctionCaps-Book-webfont.eot similarity index 100% rename from items/assets/fonts/FunctionCaps-Book-webfont.eot rename to items/static/assets/fonts/FunctionCaps-Book-webfont.eot diff --git a/items/assets/fonts/FunctionCaps-Book-webfont.svg b/items/static/assets/fonts/FunctionCaps-Book-webfont.svg similarity index 100% rename from items/assets/fonts/FunctionCaps-Book-webfont.svg rename to items/static/assets/fonts/FunctionCaps-Book-webfont.svg diff --git a/items/assets/fonts/FunctionCaps-Book-webfont.ttf b/items/static/assets/fonts/FunctionCaps-Book-webfont.ttf similarity index 100% rename from items/assets/fonts/FunctionCaps-Book-webfont.ttf rename to items/static/assets/fonts/FunctionCaps-Book-webfont.ttf diff --git a/items/assets/fonts/FunctionCaps-Book-webfont.woff b/items/static/assets/fonts/FunctionCaps-Book-webfont.woff similarity index 100% rename from items/assets/fonts/FunctionCaps-Book-webfont.woff rename to items/static/assets/fonts/FunctionCaps-Book-webfont.woff diff --git a/items/assets/fonts/FunctionCaps-Medium-webfont.eot b/items/static/assets/fonts/FunctionCaps-Medium-webfont.eot similarity index 100% rename from items/assets/fonts/FunctionCaps-Medium-webfont.eot rename to items/static/assets/fonts/FunctionCaps-Medium-webfont.eot diff --git a/items/assets/fonts/FunctionCaps-Medium-webfont.svg b/items/static/assets/fonts/FunctionCaps-Medium-webfont.svg similarity index 100% rename from items/assets/fonts/FunctionCaps-Medium-webfont.svg rename to items/static/assets/fonts/FunctionCaps-Medium-webfont.svg diff --git a/items/assets/fonts/FunctionCaps-Medium-webfont.ttf b/items/static/assets/fonts/FunctionCaps-Medium-webfont.ttf similarity index 100% rename from items/assets/fonts/FunctionCaps-Medium-webfont.ttf rename to items/static/assets/fonts/FunctionCaps-Medium-webfont.ttf diff --git a/items/assets/fonts/FunctionCaps-Medium-webfont.woff b/items/static/assets/fonts/FunctionCaps-Medium-webfont.woff similarity index 100% rename from items/assets/fonts/FunctionCaps-Medium-webfont.woff rename to items/static/assets/fonts/FunctionCaps-Medium-webfont.woff diff --git a/items/assets/fonts/FunctionPro-Book.eot b/items/static/assets/fonts/FunctionPro-Book.eot similarity index 100% rename from items/assets/fonts/FunctionPro-Book.eot rename to items/static/assets/fonts/FunctionPro-Book.eot diff --git a/items/assets/fonts/FunctionPro-Book.svg b/items/static/assets/fonts/FunctionPro-Book.svg similarity index 100% rename from items/assets/fonts/FunctionPro-Book.svg rename to items/static/assets/fonts/FunctionPro-Book.svg diff --git a/items/assets/fonts/FunctionPro-Book.ttf b/items/static/assets/fonts/FunctionPro-Book.ttf similarity index 100% rename from items/assets/fonts/FunctionPro-Book.ttf rename to items/static/assets/fonts/FunctionPro-Book.ttf diff --git a/items/assets/fonts/FunctionPro-Book.woff b/items/static/assets/fonts/FunctionPro-Book.woff similarity index 100% rename from items/assets/fonts/FunctionPro-Book.woff rename to items/static/assets/fonts/FunctionPro-Book.woff diff --git a/items/assets/fonts/FunctionPro-BookOblique.eot b/items/static/assets/fonts/FunctionPro-BookOblique.eot similarity index 100% rename from items/assets/fonts/FunctionPro-BookOblique.eot rename to items/static/assets/fonts/FunctionPro-BookOblique.eot diff --git a/items/assets/fonts/FunctionPro-BookOblique.svg b/items/static/assets/fonts/FunctionPro-BookOblique.svg similarity index 100% rename from items/assets/fonts/FunctionPro-BookOblique.svg rename to items/static/assets/fonts/FunctionPro-BookOblique.svg diff --git a/items/assets/fonts/FunctionPro-BookOblique.ttf b/items/static/assets/fonts/FunctionPro-BookOblique.ttf similarity index 100% rename from items/assets/fonts/FunctionPro-BookOblique.ttf rename to items/static/assets/fonts/FunctionPro-BookOblique.ttf diff --git a/items/assets/fonts/FunctionPro-BookOblique.woff b/items/static/assets/fonts/FunctionPro-BookOblique.woff similarity index 100% rename from items/assets/fonts/FunctionPro-BookOblique.woff rename to items/static/assets/fonts/FunctionPro-BookOblique.woff diff --git a/items/assets/fonts/FunctionPro-Medium-webfont.eot b/items/static/assets/fonts/FunctionPro-Medium-webfont.eot similarity index 100% rename from items/assets/fonts/FunctionPro-Medium-webfont.eot rename to items/static/assets/fonts/FunctionPro-Medium-webfont.eot diff --git a/items/assets/fonts/FunctionPro-Medium-webfont.svg b/items/static/assets/fonts/FunctionPro-Medium-webfont.svg similarity index 100% rename from items/assets/fonts/FunctionPro-Medium-webfont.svg rename to items/static/assets/fonts/FunctionPro-Medium-webfont.svg diff --git a/items/assets/fonts/FunctionPro-Medium-webfont.ttf b/items/static/assets/fonts/FunctionPro-Medium-webfont.ttf similarity index 100% rename from items/assets/fonts/FunctionPro-Medium-webfont.ttf rename to items/static/assets/fonts/FunctionPro-Medium-webfont.ttf diff --git a/items/assets/fonts/FunctionPro-Medium-webfont.woff b/items/static/assets/fonts/FunctionPro-Medium-webfont.woff similarity index 100% rename from items/assets/fonts/FunctionPro-Medium-webfont.woff rename to items/static/assets/fonts/FunctionPro-Medium-webfont.woff diff --git a/items/assets/fonts/FunctionPro-MediumOblique-webfont.eot b/items/static/assets/fonts/FunctionPro-MediumOblique-webfont.eot similarity index 100% rename from items/assets/fonts/FunctionPro-MediumOblique-webfont.eot rename to items/static/assets/fonts/FunctionPro-MediumOblique-webfont.eot diff --git a/items/assets/fonts/FunctionPro-MediumOblique-webfont.svg b/items/static/assets/fonts/FunctionPro-MediumOblique-webfont.svg similarity index 100% rename from items/assets/fonts/FunctionPro-MediumOblique-webfont.svg rename to items/static/assets/fonts/FunctionPro-MediumOblique-webfont.svg diff --git a/items/assets/fonts/FunctionPro-MediumOblique-webfont.ttf b/items/static/assets/fonts/FunctionPro-MediumOblique-webfont.ttf similarity index 100% rename from items/assets/fonts/FunctionPro-MediumOblique-webfont.ttf rename to items/static/assets/fonts/FunctionPro-MediumOblique-webfont.ttf diff --git a/items/assets/fonts/FunctionPro-MediumOblique-webfont.woff b/items/static/assets/fonts/FunctionPro-MediumOblique-webfont.woff similarity index 100% rename from items/assets/fonts/FunctionPro-MediumOblique-webfont.woff rename to items/static/assets/fonts/FunctionPro-MediumOblique-webfont.woff diff --git a/items/assets/fonts/lifepreserver.eot b/items/static/assets/fonts/lifepreserver.eot similarity index 100% rename from items/assets/fonts/lifepreserver.eot rename to items/static/assets/fonts/lifepreserver.eot diff --git a/items/assets/fonts/lifepreserver.svg b/items/static/assets/fonts/lifepreserver.svg similarity index 100% rename from items/assets/fonts/lifepreserver.svg rename to items/static/assets/fonts/lifepreserver.svg diff --git a/items/assets/fonts/lifepreserver.ttf b/items/static/assets/fonts/lifepreserver.ttf similarity index 100% rename from items/assets/fonts/lifepreserver.ttf rename to items/static/assets/fonts/lifepreserver.ttf diff --git a/items/assets/fonts/lifepreserver.woff b/items/static/assets/fonts/lifepreserver.woff similarity index 100% rename from items/assets/fonts/lifepreserver.woff rename to items/static/assets/fonts/lifepreserver.woff diff --git a/items/assets/fonts/pt-sans/PTC55F_W.eot b/items/static/assets/fonts/pt-sans/PTC55F_W.eot similarity index 100% rename from items/assets/fonts/pt-sans/PTC55F_W.eot rename to items/static/assets/fonts/pt-sans/PTC55F_W.eot diff --git a/items/assets/fonts/pt-sans/PTC55F_W.svg b/items/static/assets/fonts/pt-sans/PTC55F_W.svg similarity index 100% rename from items/assets/fonts/pt-sans/PTC55F_W.svg rename to items/static/assets/fonts/pt-sans/PTC55F_W.svg diff --git a/items/assets/fonts/pt-sans/PTC55F_W.ttf b/items/static/assets/fonts/pt-sans/PTC55F_W.ttf similarity index 100% rename from items/assets/fonts/pt-sans/PTC55F_W.ttf rename to items/static/assets/fonts/pt-sans/PTC55F_W.ttf diff --git a/items/assets/fonts/pt-sans/PTC55F_W.woff b/items/static/assets/fonts/pt-sans/PTC55F_W.woff similarity index 100% rename from items/assets/fonts/pt-sans/PTC55F_W.woff rename to items/static/assets/fonts/pt-sans/PTC55F_W.woff diff --git a/items/assets/fonts/pt-sans/PTC75F_W.eot b/items/static/assets/fonts/pt-sans/PTC75F_W.eot similarity index 100% rename from items/assets/fonts/pt-sans/PTC75F_W.eot rename to items/static/assets/fonts/pt-sans/PTC75F_W.eot diff --git a/items/assets/fonts/pt-sans/PTC75F_W.svg b/items/static/assets/fonts/pt-sans/PTC75F_W.svg similarity index 100% rename from items/assets/fonts/pt-sans/PTC75F_W.svg rename to items/static/assets/fonts/pt-sans/PTC75F_W.svg diff --git a/items/assets/fonts/pt-sans/PTC75F_W.ttf b/items/static/assets/fonts/pt-sans/PTC75F_W.ttf similarity index 100% rename from items/assets/fonts/pt-sans/PTC75F_W.ttf rename to items/static/assets/fonts/pt-sans/PTC75F_W.ttf diff --git a/items/assets/fonts/pt-sans/PTC75F_W.woff b/items/static/assets/fonts/pt-sans/PTC75F_W.woff similarity index 100% rename from items/assets/fonts/pt-sans/PTC75F_W.woff rename to items/static/assets/fonts/pt-sans/PTC75F_W.woff diff --git a/items/assets/fonts/pt-sans/PTM55F_W.eot b/items/static/assets/fonts/pt-sans/PTM55F_W.eot similarity index 100% rename from items/assets/fonts/pt-sans/PTM55F_W.eot rename to items/static/assets/fonts/pt-sans/PTM55F_W.eot diff --git a/items/assets/fonts/pt-sans/PTM55F_W.svg b/items/static/assets/fonts/pt-sans/PTM55F_W.svg similarity index 100% rename from items/assets/fonts/pt-sans/PTM55F_W.svg rename to items/static/assets/fonts/pt-sans/PTM55F_W.svg diff --git a/items/assets/fonts/pt-sans/PTM55F_W.ttf b/items/static/assets/fonts/pt-sans/PTM55F_W.ttf similarity index 100% rename from items/assets/fonts/pt-sans/PTM55F_W.ttf rename to items/static/assets/fonts/pt-sans/PTM55F_W.ttf diff --git a/items/assets/fonts/pt-sans/PTM55F_W.woff b/items/static/assets/fonts/pt-sans/PTM55F_W.woff similarity index 100% rename from items/assets/fonts/pt-sans/PTM55F_W.woff rename to items/static/assets/fonts/pt-sans/PTM55F_W.woff diff --git a/items/assets/fonts/pt-sans/PTM75F_W.eot b/items/static/assets/fonts/pt-sans/PTM75F_W.eot similarity index 100% rename from items/assets/fonts/pt-sans/PTM75F_W.eot rename to items/static/assets/fonts/pt-sans/PTM75F_W.eot diff --git a/items/assets/fonts/pt-sans/PTM75F_W.svg b/items/static/assets/fonts/pt-sans/PTM75F_W.svg similarity index 100% rename from items/assets/fonts/pt-sans/PTM75F_W.svg rename to items/static/assets/fonts/pt-sans/PTM75F_W.svg diff --git a/items/assets/fonts/pt-sans/PTM75F_W.ttf b/items/static/assets/fonts/pt-sans/PTM75F_W.ttf similarity index 100% rename from items/assets/fonts/pt-sans/PTM75F_W.ttf rename to items/static/assets/fonts/pt-sans/PTM75F_W.ttf diff --git a/items/assets/fonts/pt-sans/PTM75F_W.woff b/items/static/assets/fonts/pt-sans/PTM75F_W.woff similarity index 100% rename from items/assets/fonts/pt-sans/PTM75F_W.woff rename to items/static/assets/fonts/pt-sans/PTM75F_W.woff diff --git a/items/assets/fonts/pt-sans/PTN57F_W.eot b/items/static/assets/fonts/pt-sans/PTN57F_W.eot similarity index 100% rename from items/assets/fonts/pt-sans/PTN57F_W.eot rename to items/static/assets/fonts/pt-sans/PTN57F_W.eot diff --git a/items/assets/fonts/pt-sans/PTN57F_W.svg b/items/static/assets/fonts/pt-sans/PTN57F_W.svg similarity index 100% rename from items/assets/fonts/pt-sans/PTN57F_W.svg rename to items/static/assets/fonts/pt-sans/PTN57F_W.svg diff --git a/items/assets/fonts/pt-sans/PTN57F_W.ttf b/items/static/assets/fonts/pt-sans/PTN57F_W.ttf similarity index 100% rename from items/assets/fonts/pt-sans/PTN57F_W.ttf rename to items/static/assets/fonts/pt-sans/PTN57F_W.ttf diff --git a/items/assets/fonts/pt-sans/PTN57F_W.woff b/items/static/assets/fonts/pt-sans/PTN57F_W.woff similarity index 100% rename from items/assets/fonts/pt-sans/PTN57F_W.woff rename to items/static/assets/fonts/pt-sans/PTN57F_W.woff diff --git a/items/assets/fonts/pt-sans/PTN77F_W.eot b/items/static/assets/fonts/pt-sans/PTN77F_W.eot similarity index 100% rename from items/assets/fonts/pt-sans/PTN77F_W.eot rename to items/static/assets/fonts/pt-sans/PTN77F_W.eot diff --git a/items/assets/fonts/pt-sans/PTN77F_W.svg b/items/static/assets/fonts/pt-sans/PTN77F_W.svg similarity index 100% rename from items/assets/fonts/pt-sans/PTN77F_W.svg rename to items/static/assets/fonts/pt-sans/PTN77F_W.svg diff --git a/items/assets/fonts/pt-sans/PTN77F_W.ttf b/items/static/assets/fonts/pt-sans/PTN77F_W.ttf similarity index 100% rename from items/assets/fonts/pt-sans/PTN77F_W.ttf rename to items/static/assets/fonts/pt-sans/PTN77F_W.ttf diff --git a/items/assets/fonts/pt-sans/PTN77F_W.woff b/items/static/assets/fonts/pt-sans/PTN77F_W.woff similarity index 100% rename from items/assets/fonts/pt-sans/PTN77F_W.woff rename to items/static/assets/fonts/pt-sans/PTN77F_W.woff diff --git a/items/assets/fonts/pt-sans/PTS55F_W.eot b/items/static/assets/fonts/pt-sans/PTS55F_W.eot similarity index 100% rename from items/assets/fonts/pt-sans/PTS55F_W.eot rename to items/static/assets/fonts/pt-sans/PTS55F_W.eot diff --git a/items/assets/fonts/pt-sans/PTS55F_W.svg b/items/static/assets/fonts/pt-sans/PTS55F_W.svg similarity index 100% rename from items/assets/fonts/pt-sans/PTS55F_W.svg rename to items/static/assets/fonts/pt-sans/PTS55F_W.svg diff --git a/items/assets/fonts/pt-sans/PTS55F_W.ttf b/items/static/assets/fonts/pt-sans/PTS55F_W.ttf similarity index 100% rename from items/assets/fonts/pt-sans/PTS55F_W.ttf rename to items/static/assets/fonts/pt-sans/PTS55F_W.ttf diff --git a/items/assets/fonts/pt-sans/PTS55F_W.woff b/items/static/assets/fonts/pt-sans/PTS55F_W.woff similarity index 100% rename from items/assets/fonts/pt-sans/PTS55F_W.woff rename to items/static/assets/fonts/pt-sans/PTS55F_W.woff diff --git a/items/assets/fonts/pt-sans/PTS56F_W.eot b/items/static/assets/fonts/pt-sans/PTS56F_W.eot similarity index 100% rename from items/assets/fonts/pt-sans/PTS56F_W.eot rename to items/static/assets/fonts/pt-sans/PTS56F_W.eot diff --git a/items/assets/fonts/pt-sans/PTS56F_W.svg b/items/static/assets/fonts/pt-sans/PTS56F_W.svg similarity index 100% rename from items/assets/fonts/pt-sans/PTS56F_W.svg rename to items/static/assets/fonts/pt-sans/PTS56F_W.svg diff --git a/items/assets/fonts/pt-sans/PTS56F_W.ttf b/items/static/assets/fonts/pt-sans/PTS56F_W.ttf similarity index 100% rename from items/assets/fonts/pt-sans/PTS56F_W.ttf rename to items/static/assets/fonts/pt-sans/PTS56F_W.ttf diff --git a/items/assets/fonts/pt-sans/PTS56F_W.woff b/items/static/assets/fonts/pt-sans/PTS56F_W.woff similarity index 100% rename from items/assets/fonts/pt-sans/PTS56F_W.woff rename to items/static/assets/fonts/pt-sans/PTS56F_W.woff diff --git a/items/assets/fonts/pt-sans/PTS75F_W.eot b/items/static/assets/fonts/pt-sans/PTS75F_W.eot similarity index 100% rename from items/assets/fonts/pt-sans/PTS75F_W.eot rename to items/static/assets/fonts/pt-sans/PTS75F_W.eot diff --git a/items/assets/fonts/pt-sans/PTS75F_W.svg b/items/static/assets/fonts/pt-sans/PTS75F_W.svg similarity index 100% rename from items/assets/fonts/pt-sans/PTS75F_W.svg rename to items/static/assets/fonts/pt-sans/PTS75F_W.svg diff --git a/items/assets/fonts/pt-sans/PTS75F_W.ttf b/items/static/assets/fonts/pt-sans/PTS75F_W.ttf similarity index 100% rename from items/assets/fonts/pt-sans/PTS75F_W.ttf rename to items/static/assets/fonts/pt-sans/PTS75F_W.ttf diff --git a/items/assets/fonts/pt-sans/PTS75F_W.woff b/items/static/assets/fonts/pt-sans/PTS75F_W.woff similarity index 100% rename from items/assets/fonts/pt-sans/PTS75F_W.woff rename to items/static/assets/fonts/pt-sans/PTS75F_W.woff diff --git a/items/assets/fonts/pt-sans/PTS76F_W.eot b/items/static/assets/fonts/pt-sans/PTS76F_W.eot similarity index 100% rename from items/assets/fonts/pt-sans/PTS76F_W.eot rename to items/static/assets/fonts/pt-sans/PTS76F_W.eot diff --git a/items/assets/fonts/pt-sans/PTS76F_W.svg b/items/static/assets/fonts/pt-sans/PTS76F_W.svg similarity index 100% rename from items/assets/fonts/pt-sans/PTS76F_W.svg rename to items/static/assets/fonts/pt-sans/PTS76F_W.svg diff --git a/items/assets/fonts/pt-sans/PTS76F_W.ttf b/items/static/assets/fonts/pt-sans/PTS76F_W.ttf similarity index 100% rename from items/assets/fonts/pt-sans/PTS76F_W.ttf rename to items/static/assets/fonts/pt-sans/PTS76F_W.ttf diff --git a/items/assets/fonts/pt-sans/PTS76F_W.woff b/items/static/assets/fonts/pt-sans/PTS76F_W.woff similarity index 100% rename from items/assets/fonts/pt-sans/PTS76F_W.woff rename to items/static/assets/fonts/pt-sans/PTS76F_W.woff diff --git a/items/assets/images/Futura_Specimen.png b/items/static/assets/images/Futura_Specimen.png similarity index 100% rename from items/assets/images/Futura_Specimen.png rename to items/static/assets/images/Futura_Specimen.png diff --git a/items/assets/images/Futura_Specimen@2x.png b/items/static/assets/images/Futura_Specimen@2x.png similarity index 100% rename from items/assets/images/Futura_Specimen@2x.png rename to items/static/assets/images/Futura_Specimen@2x.png diff --git a/items/assets/images/OA100.gif b/items/static/assets/images/OA100.gif similarity index 100% rename from items/assets/images/OA100.gif rename to items/static/assets/images/OA100.gif diff --git a/items/assets/images/OSI-logo-200x235.png b/items/static/assets/images/OSI-logo-200x235.png similarity index 100% rename from items/assets/images/OSI-logo-200x235.png rename to items/static/assets/images/OSI-logo-200x235.png diff --git a/items/assets/images/cc.logo.svg b/items/static/assets/images/cc.logo.svg similarity index 100% rename from items/assets/images/cc.logo.svg rename to items/static/assets/images/cc.logo.svg diff --git a/items/assets/images/chris-chapman-150x150.jpg b/items/static/assets/images/chris-chapman-150x150.jpg similarity index 100% rename from items/assets/images/chris-chapman-150x150.jpg rename to items/static/assets/images/chris-chapman-150x150.jpg diff --git a/items/assets/images/clarity.jpg b/items/static/assets/images/clarity.jpg similarity index 100% rename from items/assets/images/clarity.jpg rename to items/static/assets/images/clarity.jpg diff --git a/items/assets/images/clarity@2x.jpg b/items/static/assets/images/clarity@2x.jpg similarity index 100% rename from items/assets/images/clarity@2x.jpg rename to items/static/assets/images/clarity@2x.jpg diff --git a/items/assets/images/collaboration.jpg b/items/static/assets/images/collaboration.jpg similarity index 100% rename from items/assets/images/collaboration.jpg rename to items/static/assets/images/collaboration.jpg diff --git a/items/assets/images/collaboration@2x.jpg b/items/static/assets/images/collaboration@2x.jpg similarity index 100% rename from items/assets/images/collaboration@2x.jpg rename to items/static/assets/images/collaboration@2x.jpg diff --git a/items/assets/images/context.jpg b/items/static/assets/images/context.jpg similarity index 100% rename from items/assets/images/context.jpg rename to items/static/assets/images/context.jpg diff --git a/items/assets/images/context@2x.jpg b/items/static/assets/images/context@2x.jpg similarity index 100% rename from items/assets/images/context@2x.jpg rename to items/static/assets/images/context@2x.jpg diff --git a/items/assets/images/favicon-16.png b/items/static/assets/images/favicon-16.png similarity index 100% rename from items/assets/images/favicon-16.png rename to items/static/assets/images/favicon-16.png diff --git a/items/assets/images/favicon-32.png b/items/static/assets/images/favicon-32.png similarity index 100% rename from items/assets/images/favicon-32.png rename to items/static/assets/images/favicon-32.png diff --git a/items/assets/images/geungle-logo.png b/items/static/assets/images/geungle-logo.png similarity index 100% rename from items/assets/images/geungle-logo.png rename to items/static/assets/images/geungle-logo.png diff --git a/items/assets/images/geungle-logo@2x.png b/items/static/assets/images/geungle-logo@2x.png similarity index 100% rename from items/assets/images/geungle-logo@2x.png rename to items/static/assets/images/geungle-logo@2x.png diff --git a/items/assets/images/geungle-logo_3col.png b/items/static/assets/images/geungle-logo_3col.png similarity index 100% rename from items/assets/images/geungle-logo_3col.png rename to items/static/assets/images/geungle-logo_3col.png diff --git a/items/assets/images/geungle-logo_3col@2x.png b/items/static/assets/images/geungle-logo_3col@2x.png similarity index 100% rename from items/assets/images/geungle-logo_3col@2x.png rename to items/static/assets/images/geungle-logo_3col@2x.png diff --git a/items/assets/images/journey.png b/items/static/assets/images/journey.png similarity index 100% rename from items/assets/images/journey.png rename to items/static/assets/images/journey.png diff --git a/items/assets/images/journey@2x.png b/items/static/assets/images/journey@2x.png similarity index 100% rename from items/assets/images/journey@2x.png rename to items/static/assets/images/journey@2x.png diff --git a/items/assets/images/katie-chapman-150x150.jpg b/items/static/assets/images/katie-chapman-150x150.jpg similarity index 100% rename from items/assets/images/katie-chapman-150x150.jpg rename to items/static/assets/images/katie-chapman-150x150.jpg diff --git a/items/assets/images/katie-chapman-150x150.jpg.orig b/items/static/assets/images/katie-chapman-150x150.jpg.orig similarity index 100% rename from items/assets/images/katie-chapman-150x150.jpg.orig rename to items/static/assets/images/katie-chapman-150x150.jpg.orig diff --git a/items/assets/images/katie.jpg b/items/static/assets/images/katie.jpg similarity index 100% rename from items/assets/images/katie.jpg rename to items/static/assets/images/katie.jpg diff --git a/items/assets/images/open-pentandra.png b/items/static/assets/images/open-pentandra.png similarity index 100% rename from items/assets/images/open-pentandra.png rename to items/static/assets/images/open-pentandra.png diff --git a/items/assets/images/open-pentandra@2x.png b/items/static/assets/images/open-pentandra@2x.png similarity index 100% rename from items/assets/images/open-pentandra@2x.png rename to items/static/assets/images/open-pentandra@2x.png diff --git a/items/assets/images/outputs.png b/items/static/assets/images/outputs.png similarity index 100% rename from items/assets/images/outputs.png rename to items/static/assets/images/outputs.png diff --git a/items/assets/images/outputs@2x.png b/items/static/assets/images/outputs@2x.png similarity index 100% rename from items/assets/images/outputs@2x.png rename to items/static/assets/images/outputs@2x.png diff --git a/items/assets/images/pentandra-logo-reverse.png b/items/static/assets/images/pentandra-logo-reverse.png similarity index 100% rename from items/assets/images/pentandra-logo-reverse.png rename to items/static/assets/images/pentandra-logo-reverse.png diff --git a/items/assets/images/pentandra-logo-reverse@2x.png b/items/static/assets/images/pentandra-logo-reverse@2x.png similarity index 100% rename from items/assets/images/pentandra-logo-reverse@2x.png rename to items/static/assets/images/pentandra-logo-reverse@2x.png diff --git a/items/assets/images/pentandra-logo.png b/items/static/assets/images/pentandra-logo.png similarity index 100% rename from items/assets/images/pentandra-logo.png rename to items/static/assets/images/pentandra-logo.png diff --git a/items/assets/images/pentandra-logo@2x.png b/items/static/assets/images/pentandra-logo@2x.png similarity index 100% rename from items/assets/images/pentandra-logo@2x.png rename to items/static/assets/images/pentandra-logo@2x.png diff --git a/items/assets/images/pentandra-logotype-reverse.pdf b/items/static/assets/images/pentandra-logotype-reverse.pdf similarity index 100% rename from items/assets/images/pentandra-logotype-reverse.pdf rename to items/static/assets/images/pentandra-logotype-reverse.pdf diff --git a/items/assets/images/pentandra-logotype-reverse.png b/items/static/assets/images/pentandra-logotype-reverse.png similarity index 100% rename from items/assets/images/pentandra-logotype-reverse.png rename to items/static/assets/images/pentandra-logotype-reverse.png diff --git a/items/assets/images/pentandra-logotype-reverse@2x.png b/items/static/assets/images/pentandra-logotype-reverse@2x.png similarity index 100% rename from items/assets/images/pentandra-logotype-reverse@2x.png rename to items/static/assets/images/pentandra-logotype-reverse@2x.png diff --git a/items/assets/images/pentandra-logotype-reverse_252x33.png b/items/static/assets/images/pentandra-logotype-reverse_252x33.png similarity index 100% rename from items/assets/images/pentandra-logotype-reverse_252x33.png rename to items/static/assets/images/pentandra-logotype-reverse_252x33.png diff --git a/items/assets/images/pentandra-logotype-reverse_252x33@2x.png b/items/static/assets/images/pentandra-logotype-reverse_252x33@2x.png similarity index 100% rename from items/assets/images/pentandra-logotype-reverse_252x33@2x.png rename to items/static/assets/images/pentandra-logotype-reverse_252x33@2x.png diff --git a/items/assets/images/pentandra-logotype-reverse_436x58.png b/items/static/assets/images/pentandra-logotype-reverse_436x58.png similarity index 100% rename from items/assets/images/pentandra-logotype-reverse_436x58.png rename to items/static/assets/images/pentandra-logotype-reverse_436x58.png diff --git a/items/assets/images/pentandra-logotype-reverse_436x58@2x.png b/items/static/assets/images/pentandra-logotype-reverse_436x58@2x.png similarity index 100% rename from items/assets/images/pentandra-logotype-reverse_436x58@2x.png rename to items/static/assets/images/pentandra-logotype-reverse_436x58@2x.png diff --git a/items/assets/images/pentandra-logotype.pdf b/items/static/assets/images/pentandra-logotype.pdf similarity index 100% rename from items/assets/images/pentandra-logotype.pdf rename to items/static/assets/images/pentandra-logotype.pdf diff --git a/items/assets/images/pentandra-logotype.png b/items/static/assets/images/pentandra-logotype.png similarity index 100% rename from items/assets/images/pentandra-logotype.png rename to items/static/assets/images/pentandra-logotype.png diff --git a/items/assets/images/pentandra-logotype@2x.png b/items/static/assets/images/pentandra-logotype@2x.png similarity index 100% rename from items/assets/images/pentandra-logotype@2x.png rename to items/static/assets/images/pentandra-logotype@2x.png diff --git a/items/assets/images/pentandra-logotype_252x33.png b/items/static/assets/images/pentandra-logotype_252x33.png similarity index 100% rename from items/assets/images/pentandra-logotype_252x33.png rename to items/static/assets/images/pentandra-logotype_252x33.png diff --git a/items/assets/images/pentandra-logotype_252x33@2x.png b/items/static/assets/images/pentandra-logotype_252x33@2x.png similarity index 100% rename from items/assets/images/pentandra-logotype_252x33@2x.png rename to items/static/assets/images/pentandra-logotype_252x33@2x.png diff --git a/items/assets/images/pentandra-logotype_436x58.png b/items/static/assets/images/pentandra-logotype_436x58.png similarity index 100% rename from items/assets/images/pentandra-logotype_436x58.png rename to items/static/assets/images/pentandra-logotype_436x58.png diff --git a/items/assets/images/pentandra-logotype_436x58@2x.png b/items/static/assets/images/pentandra-logotype_436x58@2x.png similarity index 100% rename from items/assets/images/pentandra-logotype_436x58@2x.png rename to items/static/assets/images/pentandra-logotype_436x58@2x.png diff --git a/items/assets/images/pentandra_grid.png b/items/static/assets/images/pentandra_grid.png similarity index 100% rename from items/assets/images/pentandra_grid.png rename to items/static/assets/images/pentandra_grid.png diff --git a/items/assets/images/pentandra_grid@2x.png b/items/static/assets/images/pentandra_grid@2x.png similarity index 100% rename from items/assets/images/pentandra_grid@2x.png rename to items/static/assets/images/pentandra_grid@2x.png diff --git a/items/assets/images/phases.png b/items/static/assets/images/phases.png similarity index 100% rename from items/assets/images/phases.png rename to items/static/assets/images/phases.png diff --git a/items/assets/images/phases@2x.png b/items/static/assets/images/phases@2x.png similarity index 100% rename from items/assets/images/phases@2x.png rename to items/static/assets/images/phases@2x.png diff --git a/items/assets/images/pillars.png b/items/static/assets/images/pillars.png similarity index 100% rename from items/assets/images/pillars.png rename to items/static/assets/images/pillars.png diff --git a/items/assets/images/pillars@2x.png b/items/static/assets/images/pillars@2x.png similarity index 100% rename from items/assets/images/pillars@2x.png rename to items/static/assets/images/pillars@2x.png diff --git a/items/assets/images/process.png b/items/static/assets/images/process.png similarity index 100% rename from items/assets/images/process.png rename to items/static/assets/images/process.png diff --git a/items/assets/images/processtree.png b/items/static/assets/images/processtree.png similarity index 100% rename from items/assets/images/processtree.png rename to items/static/assets/images/processtree.png diff --git a/items/assets/images/processtree@2x.png b/items/static/assets/images/processtree@2x.png similarity index 100% rename from items/assets/images/processtree@2x.png rename to items/static/assets/images/processtree@2x.png diff --git a/items/assets/images/qi4j.png b/items/static/assets/images/qi4j.png similarity index 100% rename from items/assets/images/qi4j.png rename to items/static/assets/images/qi4j.png diff --git a/items/assets/images/research-process.png b/items/static/assets/images/research-process.png similarity index 100% rename from items/assets/images/research-process.png rename to items/static/assets/images/research-process.png diff --git a/items/assets/images/research-process@2x.png b/items/static/assets/images/research-process@2x.png similarity index 100% rename from items/assets/images/research-process@2x.png rename to items/static/assets/images/research-process@2x.png diff --git a/items/assets/images/research-process_3col.png b/items/static/assets/images/research-process_3col.png similarity index 100% rename from items/assets/images/research-process_3col.png rename to items/static/assets/images/research-process_3col.png diff --git a/items/assets/images/research-process_3col@2x.png b/items/static/assets/images/research-process_3col@2x.png similarity index 100% rename from items/assets/images/research-process_3col@2x.png rename to items/static/assets/images/research-process_3col@2x.png diff --git a/items/assets/images/team-252x336.jpg b/items/static/assets/images/team-252x336.jpg similarity index 100% rename from items/assets/images/team-252x336.jpg rename to items/static/assets/images/team-252x336.jpg diff --git a/items/assets/images/team-436x580.jpg b/items/static/assets/images/team-436x580.jpg similarity index 100% rename from items/assets/images/team-436x580.jpg rename to items/static/assets/images/team-436x580.jpg diff --git a/items/assets/images/uidan_logo.jpg b/items/static/assets/images/uidan_logo.jpg similarity index 100% rename from items/assets/images/uidan_logo.jpg rename to items/static/assets/images/uidan_logo.jpg diff --git a/items/assets/images/unit.png b/items/static/assets/images/unit.png similarity index 100% rename from items/assets/images/unit.png rename to items/static/assets/images/unit.png diff --git a/items/assets/images/unit@2x.png b/items/static/assets/images/unit@2x.png similarity index 100% rename from items/assets/images/unit@2x.png rename to items/static/assets/images/unit@2x.png diff --git a/items/assets/images/zeugma.jpg b/items/static/assets/images/zeugma.jpg similarity index 100% rename from items/assets/images/zeugma.jpg rename to items/static/assets/images/zeugma.jpg diff --git a/items/assets/images/zeugma@2x.jpg b/items/static/assets/images/zeugma@2x.jpg similarity index 100% rename from items/assets/images/zeugma@2x.jpg rename to items/static/assets/images/zeugma@2x.jpg diff --git a/items/assets/images/zeugma_3col.jpg b/items/static/assets/images/zeugma_3col.jpg similarity index 100% rename from items/assets/images/zeugma_3col.jpg rename to items/static/assets/images/zeugma_3col.jpg diff --git a/items/assets/scripts/all.js.erb b/items/static/assets/scripts/all.js.erb similarity index 85% rename from items/assets/scripts/all.js.erb rename to items/static/assets/scripts/all.js.erb index 3eca5195..adaa582d 100644 --- a/items/assets/scripts/all.js.erb +++ b/items/static/assets/scripts/all.js.erb @@ -22,15 +22,15 @@ }()); // Place any jQuery/helper plugins in here. -<%= @items['/assets/components/jquery/dist/jquery.js'].compiled_content(snapshot: :raw) %> -<%= @items['/assets/components/txtinput/txtinput.js'].compiled_content(snapshot: :raw) %> -<%= @items['/assets/components/js-url/url.js'].compiled_content(snapshot: :raw) %> -<%= @items['/assets/components/letteringjs/jquery.lettering.js'].compiled_content(snapshot: :raw) %> -<%= @items['/assets/components/jquery-smooth-scroll/jquery.smooth-scroll.js'].compiled_content(snapshot: :raw) %> -<%= @items['/assets/components/jquery-hashchange/jquery.ba-hashchange.js'].compiled_content(snapshot: :raw) %> -<%= @items['/assets/components/accessifyhtml5/accessifyhtml5.jquery.js'].compiled_content(snapshot: :raw) %> -<%= @items['/assets/components/Emphasis/js/emphasis-src.js'].compiled_content(snapshot: :raw) %> -<%= @items['/assets/components/retina.js/dist/retina.js'].compiled_content(snapshot: :raw) %> +<%= @items['/static/assets/components/jquery/dist/jquery.js'].compiled_content(snapshot: :raw) %> +<%= @items['/static/assets/components/txtinput/txtinput.js'].compiled_content(snapshot: :raw) %> +<%= @items['/static/assets/components/js-url/url.js'].compiled_content(snapshot: :raw) %> +<%= @items['/static/assets/components/letteringjs/jquery.lettering.js'].compiled_content(snapshot: :raw) %> +<%= @items['/static/assets/components/jquery-smooth-scroll/jquery.smooth-scroll.js'].compiled_content(snapshot: :raw) %> +<%= @items['/static/assets/components/jquery-hashchange/jquery.ba-hashchange.js'].compiled_content(snapshot: :raw) %> +<%= @items['/static/assets/components/accessifyhtml5/accessifyhtml5.jquery.js'].compiled_content(snapshot: :raw) %> +<%= @items['/static/assets/components/Emphasis/js/emphasis-src.js'].compiled_content(snapshot: :raw) %> +<%= @items['/static/assets/components/retina.js/dist/retina.js'].compiled_content(snapshot: :raw) %> var Pentandra = (function($) { diff --git a/items/assets/scripts/baseliner.js b/items/static/assets/scripts/baseliner.js similarity index 100% rename from items/assets/scripts/baseliner.js rename to items/static/assets/scripts/baseliner.js diff --git a/items/static/assets/scripts/jsonld.js.erb b/items/static/assets/scripts/jsonld.js.erb new file mode 100644 index 00000000..51a5f516 --- /dev/null +++ b/items/static/assets/scripts/jsonld.js.erb @@ -0,0 +1 @@ +<%= @items['/static/assets/components/jsonld/js/jsonld.js'].compiled_content(snapshot: :raw) %> diff --git a/items/assets/scripts/less-grid-4.js b/items/static/assets/scripts/less-grid-4.js similarity index 100% rename from items/assets/scripts/less-grid-4.js rename to items/static/assets/scripts/less-grid-4.js diff --git a/items/assets/scripts/modernizr.custom.40730.js b/items/static/assets/scripts/modernizr.custom.40730.js similarity index 100% rename from items/assets/scripts/modernizr.custom.40730.js rename to items/static/assets/scripts/modernizr.custom.40730.js diff --git a/items/assets/scripts/search-data.js.erb b/items/static/assets/scripts/search-data.js.erb similarity index 100% rename from items/assets/scripts/search-data.js.erb rename to items/static/assets/scripts/search-data.js.erb diff --git a/items/assets/stylesheets/PIE.htc b/items/static/assets/stylesheets/PIE.htc similarity index 100% rename from items/assets/stylesheets/PIE.htc rename to items/static/assets/stylesheets/PIE.htc diff --git a/items/assets/stylesheets/boxsizing.htc b/items/static/assets/stylesheets/boxsizing.htc similarity index 100% rename from items/assets/stylesheets/boxsizing.htc rename to items/static/assets/stylesheets/boxsizing.htc diff --git a/items/assets/stylesheets/main.scss b/items/static/assets/stylesheets/main.scss similarity index 100% rename from items/assets/stylesheets/main.scss rename to items/static/assets/stylesheets/main.scss diff --git a/items/assets/stylesheets/modules/_box-sizing.scss b/items/static/assets/stylesheets/modules/_box-sizing.scss similarity index 100% rename from items/assets/stylesheets/modules/_box-sizing.scss rename to items/static/assets/stylesheets/modules/_box-sizing.scss diff --git a/items/assets/stylesheets/modules/_less.scss b/items/static/assets/stylesheets/modules/_less.scss similarity index 100% rename from items/assets/stylesheets/modules/_less.scss rename to items/static/assets/stylesheets/modules/_less.scss diff --git a/items/assets/stylesheets/partials/_base.scss b/items/static/assets/stylesheets/partials/_base.scss similarity index 100% rename from items/assets/stylesheets/partials/_base.scss rename to items/static/assets/stylesheets/partials/_base.scss diff --git a/items/assets/stylesheets/partials/_default.scss b/items/static/assets/stylesheets/partials/_default.scss similarity index 100% rename from items/assets/stylesheets/partials/_default.scss rename to items/static/assets/stylesheets/partials/_default.scss diff --git a/items/assets/stylesheets/partials/_global.scss b/items/static/assets/stylesheets/partials/_global.scss similarity index 100% rename from items/assets/stylesheets/partials/_global.scss rename to items/static/assets/stylesheets/partials/_global.scss diff --git a/items/assets/stylesheets/partials/_high-px-ratio.scss b/items/static/assets/stylesheets/partials/_high-px-ratio.scss similarity index 100% rename from items/assets/stylesheets/partials/_high-px-ratio.scss rename to items/static/assets/stylesheets/partials/_high-px-ratio.scss diff --git a/items/assets/stylesheets/partials/_mobile.scss b/items/static/assets/stylesheets/partials/_mobile.scss similarity index 100% rename from items/assets/stylesheets/partials/_mobile.scss rename to items/static/assets/stylesheets/partials/_mobile.scss diff --git a/items/assets/stylesheets/partials/_nonsemantic.scss b/items/static/assets/stylesheets/partials/_nonsemantic.scss similarity index 100% rename from items/assets/stylesheets/partials/_nonsemantic.scss rename to items/static/assets/stylesheets/partials/_nonsemantic.scss diff --git a/items/assets/stylesheets/partials/_normalize.scss b/items/static/assets/stylesheets/partials/_normalize.scss similarity index 100% rename from items/assets/stylesheets/partials/_normalize.scss rename to items/static/assets/stylesheets/partials/_normalize.scss diff --git a/items/assets/stylesheets/partials/_print.scss b/items/static/assets/stylesheets/partials/_print.scss similarity index 100% rename from items/assets/stylesheets/partials/_print.scss rename to items/static/assets/stylesheets/partials/_print.scss diff --git a/items/assets/stylesheets/partials/_tablet.scss b/items/static/assets/stylesheets/partials/_tablet.scss similarity index 100% rename from items/assets/stylesheets/partials/_tablet.scss rename to items/static/assets/stylesheets/partials/_tablet.scss diff --git a/items/assets/stylesheets/partials/_typography.scss b/items/static/assets/stylesheets/partials/_typography.scss similarity index 100% rename from items/assets/stylesheets/partials/_typography.scss rename to items/static/assets/stylesheets/partials/_typography.scss diff --git a/items/assets/stylesheets/partials/_wide-mobile.scss b/items/static/assets/stylesheets/partials/_wide-mobile.scss similarity index 100% rename from items/assets/stylesheets/partials/_wide-mobile.scss rename to items/static/assets/stylesheets/partials/_wide-mobile.scss diff --git a/items/assets/stylesheets/partials/fonts/_functionpro.scss b/items/static/assets/stylesheets/partials/fonts/_functionpro.scss similarity index 100% rename from items/assets/stylesheets/partials/fonts/_functionpro.scss rename to items/static/assets/stylesheets/partials/fonts/_functionpro.scss diff --git a/items/assets/stylesheets/partials/fonts/_icons.scss b/items/static/assets/stylesheets/partials/fonts/_icons.scss similarity index 100% rename from items/assets/stylesheets/partials/fonts/_icons.scss rename to items/static/assets/stylesheets/partials/fonts/_icons.scss diff --git a/items/assets/stylesheets/partials/fonts/_pt-sans.scss b/items/static/assets/stylesheets/partials/fonts/_pt-sans.scss similarity index 100% rename from items/assets/stylesheets/partials/fonts/_pt-sans.scss rename to items/static/assets/stylesheets/partials/fonts/_pt-sans.scss diff --git a/items/assets/stylesheets/specifications.scss b/items/static/assets/stylesheets/specifications.scss similarity index 100% rename from items/assets/stylesheets/specifications.scss rename to items/static/assets/stylesheets/specifications.scss diff --git a/items/blog/a-more-focused-mission/index.md b/items/static/blog/a-more-focused-mission/index.md similarity index 100% rename from items/blog/a-more-focused-mission/index.md rename to items/static/blog/a-more-focused-mission/index.md diff --git a/items/blog/a-response-to-principles-for-open-scholarly-infrastructures/index.md b/items/static/blog/a-response-to-principles-for-open-scholarly-infrastructures/index.md similarity index 100% rename from items/blog/a-response-to-principles-for-open-scholarly-infrastructures/index.md rename to items/static/blog/a-response-to-principles-for-open-scholarly-infrastructures/index.md diff --git a/items/blog/a-social-business/a_perplexed_window_cleaner.jpg b/items/static/blog/a-social-business/a_perplexed_window_cleaner.jpg similarity index 100% rename from items/blog/a-social-business/a_perplexed_window_cleaner.jpg rename to items/static/blog/a-social-business/a_perplexed_window_cleaner.jpg diff --git a/items/blog/a-social-business/bthechangebadge.jpg b/items/static/blog/a-social-business/bthechangebadge.jpg similarity index 100% rename from items/blog/a-social-business/bthechangebadge.jpg rename to items/static/blog/a-social-business/bthechangebadge.jpg diff --git a/items/blog/a-social-business/index.md b/items/static/blog/a-social-business/index.md similarity index 100% rename from items/blog/a-social-business/index.md rename to items/static/blog/a-social-business/index.md diff --git a/items/blog/a-social-business/social-business.png b/items/static/blog/a-social-business/social-business.png similarity index 100% rename from items/blog/a-social-business/social-business.png rename to items/static/blog/a-social-business/social-business.png diff --git a/items/blog/a-social-business/social-business@2x.png b/items/static/blog/a-social-business/social-business@2x.png similarity index 100% rename from items/blog/a-social-business/social-business@2x.png rename to items/static/blog/a-social-business/social-business@2x.png diff --git a/items/blog/a-social-business/social-business_tagul.svg b/items/static/blog/a-social-business/social-business_tagul.svg similarity index 100% rename from items/blog/a-social-business/social-business_tagul.svg rename to items/static/blog/a-social-business/social-business_tagul.svg diff --git a/items/blog/anyone-can-research/index.md b/items/static/blog/anyone-can-research/index.md similarity index 100% rename from items/blog/anyone-can-research/index.md rename to items/static/blog/anyone-can-research/index.md diff --git a/items/blog/changing-the-reward-system-of-genealogical-research.md b/items/static/blog/changing-the-reward-system-of-genealogical-research.md similarity index 100% rename from items/blog/changing-the-reward-system-of-genealogical-research.md rename to items/static/blog/changing-the-reward-system-of-genealogical-research.md diff --git a/items/blog/designing-for-open-access/Metal_movable_type.jpg b/items/static/blog/designing-for-open-access/Metal_movable_type.jpg similarity index 100% rename from items/blog/designing-for-open-access/Metal_movable_type.jpg rename to items/static/blog/designing-for-open-access/Metal_movable_type.jpg diff --git a/items/blog/designing-for-open-access/SuberPodcast.mp3 b/items/static/blog/designing-for-open-access/SuberPodcast.mp3 similarity index 100% rename from items/blog/designing-for-open-access/SuberPodcast.mp3 rename to items/static/blog/designing-for-open-access/SuberPodcast.mp3 diff --git a/items/blog/designing-for-open-access/SuberPodcast.ogg b/items/static/blog/designing-for-open-access/SuberPodcast.ogg similarity index 100% rename from items/blog/designing-for-open-access/SuberPodcast.ogg rename to items/static/blog/designing-for-open-access/SuberPodcast.ogg diff --git a/items/blog/designing-for-open-access/index.md b/items/static/blog/designing-for-open-access/index.md similarity index 100% rename from items/blog/designing-for-open-access/index.md rename to items/static/blog/designing-for-open-access/index.md diff --git a/items/blog/designing-for-open-access/movable_type_in_typecase.jpg b/items/static/blog/designing-for-open-access/movable_type_in_typecase.jpg similarity index 100% rename from items/blog/designing-for-open-access/movable_type_in_typecase.jpg rename to items/static/blog/designing-for-open-access/movable_type_in_typecase.jpg diff --git a/items/blog/designing-for-open-access/movable_type_in_typecase_620x442.jpg b/items/static/blog/designing-for-open-access/movable_type_in_typecase_620x442.jpg similarity index 100% rename from items/blog/designing-for-open-access/movable_type_in_typecase_620x442.jpg rename to items/static/blog/designing-for-open-access/movable_type_in_typecase_620x442.jpg diff --git a/items/blog/designing-for-open-access/movable_type_in_typecase_620x442@2x.jpg b/items/static/blog/designing-for-open-access/movable_type_in_typecase_620x442@2x.jpg similarity index 100% rename from items/blog/designing-for-open-access/movable_type_in_typecase_620x442@2x.jpg rename to items/static/blog/designing-for-open-access/movable_type_in_typecase_620x442@2x.jpg diff --git a/items/blog/designing-for-open-access/open_access.jpg b/items/static/blog/designing-for-open-access/open_access.jpg similarity index 100% rename from items/blog/designing-for-open-access/open_access.jpg rename to items/static/blog/designing-for-open-access/open_access.jpg diff --git a/items/blog/dora-and-research-assessment/dora-logo-header.png b/items/static/blog/dora-and-research-assessment/dora-logo-header.png similarity index 100% rename from items/blog/dora-and-research-assessment/dora-logo-header.png rename to items/static/blog/dora-and-research-assessment/dora-logo-header.png diff --git a/items/blog/dora-and-research-assessment/index.md b/items/static/blog/dora-and-research-assessment/index.md similarity index 100% rename from items/blog/dora-and-research-assessment/index.md rename to items/static/blog/dora-and-research-assessment/index.md diff --git a/items/blog/feed.erb b/items/static/blog/feed.erb similarity index 63% rename from items/blog/feed.erb rename to items/static/blog/feed.erb index 0f128a71..439a9500 100644 --- a/items/blog/feed.erb +++ b/items/static/blog/feed.erb @@ -5,7 +5,7 @@ is_hidden_from_human_search: true author_name: @config[:blog][:author_name], author_uri: @config[:blog][:author_uri], articles: published_blog_posts, - content_proc: ->(post) { prepare_item_for_feed(post) }, - excerpt_proc: ->(post) { prepare_item_for_feed(post, summary: true) }, + content_proc: ->(post) { post.compiled_content(rep: :feed_entry) }, + excerpt_proc: ->(post) { post_summary(post.reps.fetch(:feed_entry)) }, limit: 10 %> diff --git a/items/blog/getting-ready-for-ngs/2012_NGS_Logo_Final.jpg b/items/static/blog/getting-ready-for-ngs/2012_NGS_Logo_Final.jpg similarity index 100% rename from items/blog/getting-ready-for-ngs/2012_NGS_Logo_Final.jpg rename to items/static/blog/getting-ready-for-ngs/2012_NGS_Logo_Final.jpg diff --git a/items/blog/getting-ready-for-ngs/booth.png b/items/static/blog/getting-ready-for-ngs/booth.png similarity index 100% rename from items/blog/getting-ready-for-ngs/booth.png rename to items/static/blog/getting-ready-for-ngs/booth.png diff --git a/items/blog/getting-ready-for-ngs/chairarrival.jpg b/items/static/blog/getting-ready-for-ngs/chairarrival.jpg similarity index 100% rename from items/blog/getting-ready-for-ngs/chairarrival.jpg rename to items/static/blog/getting-ready-for-ngs/chairarrival.jpg diff --git a/items/blog/getting-ready-for-ngs/index.md b/items/static/blog/getting-ready-for-ngs/index.md similarity index 100% rename from items/blog/getting-ready-for-ngs/index.md rename to items/static/blog/getting-ready-for-ngs/index.md diff --git a/items/blog/heading-to-oai8/OAI8_logo_2.jpg b/items/static/blog/heading-to-oai8/OAI8_logo_2.jpg similarity index 100% rename from items/blog/heading-to-oai8/OAI8_logo_2.jpg rename to items/static/blog/heading-to-oai8/OAI8_logo_2.jpg diff --git a/items/blog/heading-to-oai8/index.md b/items/static/blog/heading-to-oai8/index.md similarity index 100% rename from items/blog/heading-to-oai8/index.md rename to items/static/blog/heading-to-oai8/index.md diff --git a/items/blog/ill-take-door-number/index.md b/items/static/blog/ill-take-door-number/index.md similarity index 100% rename from items/blog/ill-take-door-number/index.md rename to items/static/blog/ill-take-door-number/index.md diff --git a/items/blog/index.erb b/items/static/blog/index.erb similarity index 100% rename from items/blog/index.erb rename to items/static/blog/index.erb diff --git a/items/blog/interdisciplinary-genealogy/index.md b/items/static/blog/interdisciplinary-genealogy/index.md similarity index 100% rename from items/blog/interdisciplinary-genealogy/index.md rename to items/static/blog/interdisciplinary-genealogy/index.md diff --git a/items/blog/introducing-research-cases/Jan_Verkolje_-_Antonie_van_Leeuwenhoek.jpg b/items/static/blog/introducing-research-cases/Jan_Verkolje_-_Antonie_van_Leeuwenhoek.jpg similarity index 100% rename from items/blog/introducing-research-cases/Jan_Verkolje_-_Antonie_van_Leeuwenhoek.jpg rename to items/static/blog/introducing-research-cases/Jan_Verkolje_-_Antonie_van_Leeuwenhoek.jpg diff --git a/items/blog/introducing-research-cases/index.md b/items/static/blog/introducing-research-cases/index.md similarity index 100% rename from items/blog/introducing-research-cases/index.md rename to items/static/blog/introducing-research-cases/index.md diff --git a/items/blog/introducing-research-cases/ivory_towers.jpg b/items/static/blog/introducing-research-cases/ivory_towers.jpg similarity index 100% rename from items/blog/introducing-research-cases/ivory_towers.jpg rename to items/static/blog/introducing-research-cases/ivory_towers.jpg diff --git a/items/blog/its-a-ux-problem/index.md b/items/static/blog/its-a-ux-problem/index.md similarity index 100% rename from items/blog/its-a-ux-problem/index.md rename to items/static/blog/its-a-ux-problem/index.md diff --git a/items/blog/open-business-open-booth/booth_chairs.jpg b/items/static/blog/open-business-open-booth/booth_chairs.jpg similarity index 100% rename from items/blog/open-business-open-booth/booth_chairs.jpg rename to items/static/blog/open-business-open-booth/booth_chairs.jpg diff --git a/items/blog/open-business-open-booth/index.md b/items/static/blog/open-business-open-booth/index.md similarity index 100% rename from items/blog/open-business-open-booth/index.md rename to items/static/blog/open-business-open-booth/index.md diff --git a/items/blog/opening-knowledge/4300141401_b4defa88ec_o.jpg b/items/static/blog/opening-knowledge/4300141401_b4defa88ec_o.jpg similarity index 100% rename from items/blog/opening-knowledge/4300141401_b4defa88ec_o.jpg rename to items/static/blog/opening-knowledge/4300141401_b4defa88ec_o.jpg diff --git a/items/blog/opening-knowledge/LHR_alice.jpg b/items/static/blog/opening-knowledge/LHR_alice.jpg similarity index 100% rename from items/blog/opening-knowledge/LHR_alice.jpg rename to items/static/blog/opening-knowledge/LHR_alice.jpg diff --git a/items/blog/opening-knowledge/LHR_alice@2x.jpg b/items/static/blog/opening-knowledge/LHR_alice@2x.jpg similarity index 100% rename from items/blog/opening-knowledge/LHR_alice@2x.jpg rename to items/static/blog/opening-knowledge/LHR_alice@2x.jpg diff --git a/items/blog/opening-knowledge/LRsaba_CERN_0212_00676.jpg b/items/static/blog/opening-knowledge/LRsaba_CERN_0212_00676.jpg similarity index 100% rename from items/blog/opening-knowledge/LRsaba_CERN_0212_00676.jpg rename to items/static/blog/opening-knowledge/LRsaba_CERN_0212_00676.jpg diff --git a/items/blog/opening-knowledge/bigstock-City-Of-Nice--Square-Head-73519714.jpg b/items/static/blog/opening-knowledge/bigstock-City-Of-Nice--Square-Head-73519714.jpg similarity index 100% rename from items/blog/opening-knowledge/bigstock-City-Of-Nice--Square-Head-73519714.jpg rename to items/static/blog/opening-knowledge/bigstock-City-Of-Nice--Square-Head-73519714.jpg diff --git a/items/blog/opening-knowledge/index.md b/items/static/blog/opening-knowledge/index.md similarity index 100% rename from items/blog/opening-knowledge/index.md rename to items/static/blog/opening-knowledge/index.md diff --git a/items/blog/opening-knowledge/square_head.jpg b/items/static/blog/opening-knowledge/square_head.jpg similarity index 100% rename from items/blog/opening-knowledge/square_head.jpg rename to items/static/blog/opening-knowledge/square_head.jpg diff --git a/items/blog/opening-knowledge/square_head@2x.jpg b/items/static/blog/opening-knowledge/square_head@2x.jpg similarity index 100% rename from items/blog/opening-knowledge/square_head@2x.jpg rename to items/static/blog/opening-knowledge/square_head@2x.jpg diff --git a/items/blog/our-business-is-our-product/index.md b/items/static/blog/our-business-is-our-product/index.md similarity index 100% rename from items/blog/our-business-is-our-product/index.md rename to items/static/blog/our-business-is-our-product/index.md diff --git a/items/blog/pentandra-joins-the-w3c-rosc/index.md b/items/static/blog/pentandra-joins-the-w3c-rosc/index.md similarity index 100% rename from items/blog/pentandra-joins-the-w3c-rosc/index.md rename to items/static/blog/pentandra-joins-the-w3c-rosc/index.md diff --git a/items/blog/perspectives-on-business-models/index.md b/items/static/blog/perspectives-on-business-models/index.md similarity index 100% rename from items/blog/perspectives-on-business-models/index.md rename to items/static/blog/perspectives-on-business-models/index.md diff --git a/items/blog/putting-the-pieces-together/Re-Imagine2.jpg b/items/static/blog/putting-the-pieces-together/Re-Imagine2.jpg similarity index 100% rename from items/blog/putting-the-pieces-together/Re-Imagine2.jpg rename to items/static/blog/putting-the-pieces-together/Re-Imagine2.jpg diff --git a/items/blog/putting-the-pieces-together/The_Mayflower_Compact.jpg b/items/static/blog/putting-the-pieces-together/The_Mayflower_Compact.jpg similarity index 100% rename from items/blog/putting-the-pieces-together/The_Mayflower_Compact.jpg rename to items/static/blog/putting-the-pieces-together/The_Mayflower_Compact.jpg diff --git a/items/blog/putting-the-pieces-together/The_Mayflower_Compact@2x.jpg b/items/static/blog/putting-the-pieces-together/The_Mayflower_Compact@2x.jpg similarity index 100% rename from items/blog/putting-the-pieces-together/The_Mayflower_Compact@2x.jpg rename to items/static/blog/putting-the-pieces-together/The_Mayflower_Compact@2x.jpg diff --git a/items/blog/putting-the-pieces-together/index.md b/items/static/blog/putting-the-pieces-together/index.md similarity index 100% rename from items/blog/putting-the-pieces-together/index.md rename to items/static/blog/putting-the-pieces-together/index.md diff --git a/items/blog/putting-the-pieces-together/journey_of_defining_the_scholarly_commons.jpg b/items/static/blog/putting-the-pieces-together/journey_of_defining_the_scholarly_commons.jpg similarity index 100% rename from items/blog/putting-the-pieces-together/journey_of_defining_the_scholarly_commons.jpg rename to items/static/blog/putting-the-pieces-together/journey_of_defining_the_scholarly_commons.jpg diff --git a/items/blog/putting-the-pieces-together/journey_of_defining_the_scholarly_commons.svg b/items/static/blog/putting-the-pieces-together/journey_of_defining_the_scholarly_commons.svg similarity index 100% rename from items/blog/putting-the-pieces-together/journey_of_defining_the_scholarly_commons.svg rename to items/static/blog/putting-the-pieces-together/journey_of_defining_the_scholarly_commons.svg diff --git a/items/blog/putting-the-pieces-together/journey_of_defining_the_scholarly_commons@2x.jpg b/items/static/blog/putting-the-pieces-together/journey_of_defining_the_scholarly_commons@2x.jpg similarity index 100% rename from items/blog/putting-the-pieces-together/journey_of_defining_the_scholarly_commons@2x.jpg rename to items/static/blog/putting-the-pieces-together/journey_of_defining_the_scholarly_commons@2x.jpg diff --git a/items/blog/putting-the-pieces-together/watercolor_HdLwglsB1l0.png b/items/static/blog/putting-the-pieces-together/watercolor_HdLwglsB1l0.png similarity index 100% rename from items/blog/putting-the-pieces-together/watercolor_HdLwglsB1l0.png rename to items/static/blog/putting-the-pieces-together/watercolor_HdLwglsB1l0.png diff --git a/items/blog/recent.erb b/items/static/blog/recent.erb similarity index 100% rename from items/blog/recent.erb rename to items/static/blog/recent.erb diff --git a/items/blog/reimagining-research-communications/Demographic breakdown SCWG workshop 1 620x364.png b/items/static/blog/reimagining-research-communications/Demographic breakdown SCWG workshop 1 620x364.png similarity index 100% rename from items/blog/reimagining-research-communications/Demographic breakdown SCWG workshop 1 620x364.png rename to items/static/blog/reimagining-research-communications/Demographic breakdown SCWG workshop 1 620x364.png diff --git a/items/blog/reimagining-research-communications/Demographic breakdown SCWG workshop 1 620x364@2x.png b/items/static/blog/reimagining-research-communications/Demographic breakdown SCWG workshop 1 620x364@2x.png similarity index 100% rename from items/blog/reimagining-research-communications/Demographic breakdown SCWG workshop 1 620x364@2x.png rename to items/static/blog/reimagining-research-communications/Demographic breakdown SCWG workshop 1 620x364@2x.png diff --git a/items/blog/reimagining-research-communications/Demographic breakdown SCWG workshop 1.png b/items/static/blog/reimagining-research-communications/Demographic breakdown SCWG workshop 1.png similarity index 100% rename from items/blog/reimagining-research-communications/Demographic breakdown SCWG workshop 1.png rename to items/static/blog/reimagining-research-communications/Demographic breakdown SCWG workshop 1.png diff --git a/items/blog/reimagining-research-communications/index.md b/items/static/blog/reimagining-research-communications/index.md similarity index 100% rename from items/blog/reimagining-research-communications/index.md rename to items/static/blog/reimagining-research-communications/index.md diff --git a/items/blog/reimagining-research-communications/reimagining_research_communications_force11_everyone.jpg b/items/static/blog/reimagining-research-communications/reimagining_research_communications_force11_everyone.jpg similarity index 100% rename from items/blog/reimagining-research-communications/reimagining_research_communications_force11_everyone.jpg rename to items/static/blog/reimagining-research-communications/reimagining_research_communications_force11_everyone.jpg diff --git a/items/blog/reimagining-research-communications/reimagining_research_communications_force11_everyone@2x.jpg b/items/static/blog/reimagining-research-communications/reimagining_research_communications_force11_everyone@2x.jpg similarity index 100% rename from items/blog/reimagining-research-communications/reimagining_research_communications_force11_everyone@2x.jpg rename to items/static/blog/reimagining-research-communications/reimagining_research_communications_force11_everyone@2x.jpg diff --git a/items/blog/reimagining-research-communications/reimagining_research_communications_force11_everyone@original.jpg b/items/static/blog/reimagining-research-communications/reimagining_research_communications_force11_everyone@original.jpg similarity index 100% rename from items/blog/reimagining-research-communications/reimagining_research_communications_force11_everyone@original.jpg rename to items/static/blog/reimagining-research-communications/reimagining_research_communications_force11_everyone@original.jpg diff --git a/items/blog/research-is-not-a-tree/index.md b/items/static/blog/research-is-not-a-tree/index.md similarity index 100% rename from items/blog/research-is-not-a-tree/index.md rename to items/static/blog/research-is-not-a-tree/index.md diff --git a/items/blog/success-in-failure/growam2012-chrisandothers.jpg b/items/static/blog/success-in-failure/growam2012-chrisandothers.jpg similarity index 100% rename from items/blog/success-in-failure/growam2012-chrisandothers.jpg rename to items/static/blog/success-in-failure/growam2012-chrisandothers.jpg diff --git a/items/blog/success-in-failure/growam2012-katie.jpg b/items/static/blog/success-in-failure/growam2012-katie.jpg similarity index 100% rename from items/blog/success-in-failure/growam2012-katie.jpg rename to items/static/blog/success-in-failure/growam2012-katie.jpg diff --git a/items/blog/success-in-failure/growam2012.jpg b/items/static/blog/success-in-failure/growam2012.jpg similarity index 100% rename from items/blog/success-in-failure/growam2012.jpg rename to items/static/blog/success-in-failure/growam2012.jpg diff --git a/items/blog/success-in-failure/growam2012.mp4 b/items/static/blog/success-in-failure/growam2012.mp4 similarity index 100% rename from items/blog/success-in-failure/growam2012.mp4 rename to items/static/blog/success-in-failure/growam2012.mp4 diff --git a/items/blog/success-in-failure/growam2012.ogv b/items/static/blog/success-in-failure/growam2012.ogv similarity index 100% rename from items/blog/success-in-failure/growam2012.ogv rename to items/static/blog/success-in-failure/growam2012.ogv diff --git a/items/blog/success-in-failure/growam2012.webm b/items/static/blog/success-in-failure/growam2012.webm similarity index 100% rename from items/blog/success-in-failure/growam2012.webm rename to items/static/blog/success-in-failure/growam2012.webm diff --git a/items/blog/success-in-failure/index.md b/items/static/blog/success-in-failure/index.md similarity index 100% rename from items/blog/success-in-failure/index.md rename to items/static/blog/success-in-failure/index.md diff --git a/items/blog/the-currency-of-research/index.md b/items/static/blog/the-currency-of-research/index.md similarity index 100% rename from items/blog/the-currency-of-research/index.md rename to items/static/blog/the-currency-of-research/index.md diff --git a/items/blog/the-hairdresser-and-the-archaeologist/Julia-domna.jpg b/items/static/blog/the-hairdresser-and-the-archaeologist/Julia-domna.jpg similarity index 100% rename from items/blog/the-hairdresser-and-the-archaeologist/Julia-domna.jpg rename to items/static/blog/the-hairdresser-and-the-archaeologist/Julia-domna.jpg diff --git a/items/blog/the-hairdresser-and-the-archaeologist/index.md b/items/static/blog/the-hairdresser-and-the-archaeologist/index.md similarity index 100% rename from items/blog/the-hairdresser-and-the-archaeologist/index.md rename to items/static/blog/the-hairdresser-and-the-archaeologist/index.md diff --git a/items/blog/the-hairdresser-and-the-archaeologist/v21.110_adj.pdf b/items/static/blog/the-hairdresser-and-the-archaeologist/v21.110_adj.pdf similarity index 100% rename from items/blog/the-hairdresser-and-the-archaeologist/v21.110_adj.pdf rename to items/static/blog/the-hairdresser-and-the-archaeologist/v21.110_adj.pdf diff --git a/items/blog/the-physics-of-research/index.md b/items/static/blog/the-physics-of-research/index.md similarity index 100% rename from items/blog/the-physics-of-research/index.md rename to items/static/blog/the-physics-of-research/index.md diff --git a/items/blog/thoughts-about-rootstech-2012/index.md b/items/static/blog/thoughts-about-rootstech-2012/index.md similarity index 100% rename from items/blog/thoughts-about-rootstech-2012/index.md rename to items/static/blog/thoughts-about-rootstech-2012/index.md diff --git a/items/blog/thoughts-about-rootstech-2012/rootstech.320x480-75.2012.jpg b/items/static/blog/thoughts-about-rootstech-2012/rootstech.320x480-75.2012.jpg similarity index 100% rename from items/blog/thoughts-about-rootstech-2012/rootstech.320x480-75.2012.jpg rename to items/static/blog/thoughts-about-rootstech-2012/rootstech.320x480-75.2012.jpg diff --git a/items/blog/unexpected-surprises/index.md b/items/static/blog/unexpected-surprises/index.md similarity index 100% rename from items/blog/unexpected-surprises/index.md rename to items/static/blog/unexpected-surprises/index.md diff --git a/items/blog/w3c-web-annotation-wg/annotation-architecture.svg b/items/static/blog/w3c-web-annotation-wg/annotation-architecture.svg similarity index 100% rename from items/blog/w3c-web-annotation-wg/annotation-architecture.svg rename to items/static/blog/w3c-web-annotation-wg/annotation-architecture.svg diff --git a/items/blog/w3c-web-annotation-wg/higgsboson.jpeg b/items/static/blog/w3c-web-annotation-wg/higgsboson.jpeg similarity index 100% rename from items/blog/w3c-web-annotation-wg/higgsboson.jpeg rename to items/static/blog/w3c-web-annotation-wg/higgsboson.jpeg diff --git a/items/blog/w3c-web-annotation-wg/index.md b/items/static/blog/w3c-web-annotation-wg/index.md similarity index 100% rename from items/blog/w3c-web-annotation-wg/index.md rename to items/static/blog/w3c-web-annotation-wg/index.md diff --git a/items/blog/were-back/index.md b/items/static/blog/were-back/index.md similarity index 100% rename from items/blog/were-back/index.md rename to items/static/blog/were-back/index.md diff --git a/items/blog/what-is-genealogy/Internet_map_4096.png b/items/static/blog/what-is-genealogy/Internet_map_4096.png similarity index 100% rename from items/blog/what-is-genealogy/Internet_map_4096.png rename to items/static/blog/what-is-genealogy/Internet_map_4096.png diff --git a/items/blog/what-is-genealogy/Internet_map_620.png b/items/static/blog/what-is-genealogy/Internet_map_620.png similarity index 100% rename from items/blog/what-is-genealogy/Internet_map_620.png rename to items/static/blog/what-is-genealogy/Internet_map_620.png diff --git a/items/blog/what-is-genealogy/Internet_map_620_complete.png b/items/static/blog/what-is-genealogy/Internet_map_620_complete.png similarity index 100% rename from items/blog/what-is-genealogy/Internet_map_620_complete.png rename to items/static/blog/what-is-genealogy/Internet_map_620_complete.png diff --git a/items/blog/what-is-genealogy/index.md b/items/static/blog/what-is-genealogy/index.md similarity index 100% rename from items/blog/what-is-genealogy/index.md rename to items/static/blog/what-is-genealogy/index.md diff --git a/items/blog/what-is-genealogy/opte-2010.png b/items/static/blog/what-is-genealogy/opte-2010.png similarity index 100% rename from items/blog/what-is-genealogy/opte-2010.png rename to items/static/blog/what-is-genealogy/opte-2010.png diff --git a/items/blog/what-is-genealogy/opte-2010_620.png b/items/static/blog/what-is-genealogy/opte-2010_620.png similarity index 100% rename from items/blog/what-is-genealogy/opte-2010_620.png rename to items/static/blog/what-is-genealogy/opte-2010_620.png diff --git a/items/blog/why-the-doi-is-a-bad-idea-for-research/index.md b/items/static/blog/why-the-doi-is-a-bad-idea-for-research/index.md similarity index 100% rename from items/blog/why-the-doi-is-a-bad-idea-for-research/index.md rename to items/static/blog/why-the-doi-is-a-bad-idea-for-research/index.md diff --git a/items/colophon.erb b/items/static/colophon.erb similarity index 100% rename from items/colophon.erb rename to items/static/colophon.erb diff --git a/items/static/company/benefit-reports b/items/static/company/benefit-reports new file mode 160000 index 00000000..873e4d05 --- /dev/null +++ b/items/static/company/benefit-reports @@ -0,0 +1 @@ +Subproject commit 873e4d053c6fc50ffd9b9166db75233a18990d9f diff --git a/items/company/benefit-reports.erb b/items/static/company/benefit-reports.erb similarity index 100% rename from items/company/benefit-reports.erb rename to items/static/company/benefit-reports.erb diff --git a/items/company/funders.erb b/items/static/company/funders.erb similarity index 100% rename from items/company/funders.erb rename to items/static/company/funders.erb diff --git a/items/company/index.erb b/items/static/company/index.erb similarity index 98% rename from items/company/index.erb rename to items/static/company/index.erb index 618adadb..f4f5aae5 100644 --- a/items/company/index.erb +++ b/items/static/company/index.erb @@ -429,8 +429,8 @@ priority: 0.6
- - machine-readable QR code with embedded vCard for Pentandra Research Solutions + + machine-readable QR code with embedded vCard for Pentandra Research Solutions
Our vCard
diff --git a/items/company/investing.erb b/items/static/company/investing.erb similarity index 100% rename from items/company/investing.erb rename to items/static/company/investing.erb diff --git a/items/company/logo.erb b/items/static/company/logo.erb similarity index 100% rename from items/company/logo.erb rename to items/static/company/logo.erb diff --git a/items/favicon.ico b/items/static/favicon.ico similarity index 100% rename from items/favicon.ico rename to items/static/favicon.ico diff --git a/items/files/ESWC2015/research-cases-madness.pdf b/items/static/files/ESWC2015/research-cases-madness.pdf similarity index 100% rename from items/files/ESWC2015/research-cases-madness.pdf rename to items/static/files/ESWC2015/research-cases-madness.pdf diff --git a/items/files/ESWC2015/research-cases-madness.svg b/items/static/files/ESWC2015/research-cases-madness.svg similarity index 100% rename from items/files/ESWC2015/research-cases-madness.svg rename to items/static/files/ESWC2015/research-cases-madness.svg diff --git a/items/files/FORCE2015/Research_Cases.pdf b/items/static/files/FORCE2015/Research_Cases.pdf similarity index 100% rename from items/files/FORCE2015/Research_Cases.pdf rename to items/static/files/FORCE2015/Research_Cases.pdf diff --git a/items/files/FORCE2015/opening_knowledge.pdf b/items/static/files/FORCE2015/opening_knowledge.pdf similarity index 100% rename from items/files/FORCE2015/opening_knowledge.pdf rename to items/static/files/FORCE2015/opening_knowledge.pdf diff --git a/items/humans.txt b/items/static/humans.txt.erb similarity index 96% rename from items/humans.txt rename to items/static/humans.txt.erb index b762f48a..9646c679 100644 --- a/items/humans.txt +++ b/items/static/humans.txt.erb @@ -21,7 +21,7 @@ Standards: HTML5, CSS3 Components: Modernizr, jQuery, MediaElement.js, Lettering.js, Emphasis, AccessifyHTML5, hypothes.is Software: nanoc, vim, git -See <%= @items['/colophon.*'].path %> for more info about the site and thanks. +See <%= path_to(@items['/static/colophon.*'], global: true) %> for more info about the site and thanks. ................................................................ diff --git a/items/index.erb b/items/static/index.erb similarity index 98% rename from items/index.erb rename to items/static/index.erb index 310a8cc7..e97dea6e 100644 --- a/items/index.erb +++ b/items/static/index.erb @@ -6,7 +6,7 @@ meta_description: > transition research to the World Wide Web, and to open up the knowledge of the world. cover_image: - id: '/assets/images/pentandra-logo.png' + id: '/static/assets/images/pentandra-logo.png' alt: 'Pentandra logo: a box with a five arrows rotating outwards from the middle, piercing two sides of the box.' --- diff --git a/items/open/business.erb b/items/static/open/business.erb similarity index 100% rename from items/open/business.erb rename to items/static/open/business.erb diff --git a/items/open/index.erb b/items/static/open/index.erb similarity index 100% rename from items/open/index.erb rename to items/static/open/index.erb diff --git a/items/policy.html b/items/static/policy.html similarity index 100% rename from items/policy.html rename to items/static/policy.html diff --git a/items/research/index.erb b/items/static/research/index.erb similarity index 100% rename from items/research/index.erb rename to items/static/research/index.erb diff --git a/items/research/process.erb b/items/static/research/process.erb similarity index 100% rename from items/research/process.erb rename to items/static/research/process.erb diff --git a/items/robots.txt.erb b/items/static/robots.txt.erb similarity index 66% rename from items/robots.txt.erb rename to items/static/robots.txt.erb index 4e07013d..1d4e614a 100644 --- a/items/robots.txt.erb +++ b/items/static/robots.txt.erb @@ -6,4 +6,4 @@ is_hidden: true User-agent: * -Sitemap: <%= @items['/sitemap.*'].path %> +Sitemap: <%= path_to(@items['/static/sitemap.*'], global: true) %> diff --git a/items/search.erb b/items/static/search.erb similarity index 100% rename from items/search.erb rename to items/static/search.erb diff --git a/items/sitemap.erb b/items/static/sitemap.erb similarity index 100% rename from items/sitemap.erb rename to items/static/sitemap.erb diff --git a/items/solutions/geungle.erb b/items/static/solutions/geungle.erb similarity index 99% rename from items/solutions/geungle.erb rename to items/static/solutions/geungle.erb index 4d039d9c..459d880f 100644 --- a/items/solutions/geungle.erb +++ b/items/static/solutions/geungle.erb @@ -6,7 +6,7 @@ meta_description: > genealogists with the goal of reconstructing the history of mankind. wip: true cover_image: - id: '/assets/images/geungle-logo.png' + id: '/static/assets/images/geungle-logo.png' alt: 'The logotype for Geungle: five rotating, multicolored, expanding paths that converge in the center in a star formation.' wide: true --- diff --git a/items/solutions/index.erb b/items/static/solutions/index.erb similarity index 100% rename from items/solutions/index.erb rename to items/static/solutions/index.erb diff --git a/items/specifications.erb b/items/static/specifications.erb similarity index 98% rename from items/specifications.erb rename to items/static/specifications.erb index de7fea65..e51fa5e3 100644 --- a/items/specifications.erb +++ b/items/static/specifications.erb @@ -62,7 +62,7 @@ description: Specifications, mostly ontologies, that we are working on, at vario
Research Cases
Research Cases are a way to partition research conceptually into cases, each case organized around a question (or some other sort of cognitive discordance). They are designed for iterative, real-time research publication, and encourage open collaboration and discourse throughout the research process.
-
<%= link_to_id("/specifications/knowledge-design/research-cases/index.*") %>
+
<%= link_to_id("/static/specifications/knowledge-design/research-cases/index.*") %>
researchcases.org
diff --git a/items/videos/openresearch-252.jpg b/items/static/videos/openresearch-252.jpg similarity index 100% rename from items/videos/openresearch-252.jpg rename to items/static/videos/openresearch-252.jpg diff --git a/items/videos/openresearch.jpg b/items/static/videos/openresearch.jpg similarity index 100% rename from items/videos/openresearch.jpg rename to items/static/videos/openresearch.jpg diff --git a/items/videos/openresearch.mp4 b/items/static/videos/openresearch.mp4 similarity index 100% rename from items/videos/openresearch.mp4 rename to items/static/videos/openresearch.mp4 diff --git a/items/videos/openresearch.ogv b/items/static/videos/openresearch.ogv similarity index 100% rename from items/videos/openresearch.ogv rename to items/static/videos/openresearch.ogv diff --git a/items/videos/openresearch.webm b/items/static/videos/openresearch.webm similarity index 100% rename from items/videos/openresearch.webm rename to items/static/videos/openresearch.webm diff --git a/layouts/benefit-reports/environments/default-env.tex b/layouts/benefit-reports/environments/default-env.tex index 157279ed..880d4450 100644 --- a/layouts/benefit-reports/environments/default-env.tex +++ b/layouts/benefit-reports/environments/default-env.tex @@ -59,7 +59,7 @@ [{\it <%= @item[:title] %>}][chapter] \setupexternalfigures - [location=global,directory={<%= Pathname.new(@item[:filename]).realpath.dirname %>, <%= Pathname.new(@items['/assets/images/*'].unwrap.attributes[:filename]).realpath.dirname %>}] + [location=global,directory={<%= Pathname.new(@item[:filename]).realpath.dirname %>, <%= Pathname.new(@items['/static/assets/images/*'].unwrap.attributes[:filename]).realpath.dirname %>}] \definecolor[pentandrabrown][h=544233] \definecolor[pentandralightbrown][h=B19882] diff --git a/layouts/benefit-reports/partials/sidebar.erb b/layouts/benefit-reports/partials/sidebar.erb index af1bb036..ec8e44dc 100644 --- a/layouts/benefit-reports/partials/sidebar.erb +++ b/layouts/benefit-reports/partials/sidebar.erb @@ -2,7 +2,7 @@

Meta

diff --git a/layouts/benefit-reports/partials/summary.erb b/layouts/benefit-reports/partials/summary.erb index 179f3e0a..2d6f05a9 100644 --- a/layouts/benefit-reports/partials/summary.erb +++ b/layouts/benefit-reports/partials/summary.erb @@ -1,6 +1,6 @@
-

<%= item[:title] %>

+

<%= item[:title] %>

<%= item[:tagline] %>

diff --git a/layouts/blog/partials/excerpt.erb b/layouts/blog/partials/excerpt.erb index ac8de3ee..e34256ca 100644 --- a/layouts/blog/partials/excerpt.erb +++ b/layouts/blog/partials/excerpt.erb @@ -1,8 +1,8 @@ -
+

- + <%= item[:title] %>

diff --git a/layouts/blog/partials/latest-articles.erb b/layouts/blog/partials/latest-articles.erb index 5ba8de49..97b56bcf 100644 --- a/layouts/blog/partials/latest-articles.erb +++ b/layouts/blog/partials/latest-articles.erb @@ -6,7 +6,7 @@ <% published_blog_posts.first(limit).each_with_index do |post, index| %> diff --git a/layouts/blog/partials/sidebar.erb b/layouts/blog/partials/sidebar.erb index 3df71864..4f93e492 100644 --- a/layouts/blog/partials/sidebar.erb +++ b/layouts/blog/partials/sidebar.erb @@ -64,17 +64,17 @@