diff --git a/.gitignore b/.gitignore index 5b9c800a9..5cf5f3cb4 100644 --- a/.gitignore +++ b/.gitignore @@ -40,3 +40,8 @@ doc/ website/docs/.sass-cache website/docs/build website/docs/Rakefile + +# Website: www +website/www/.sass-cache +website/www/build +website/www/Rakefile diff --git a/website/www/.buildpacks b/website/www/.buildpacks new file mode 100644 index 000000000..f85b304c3 --- /dev/null +++ b/website/www/.buildpacks @@ -0,0 +1,2 @@ +https://github.com/heroku/heroku-buildpack-ruby.git +https://github.com/hashicorp/heroku-buildpack-middleman.git diff --git a/website/www/Gemfile b/website/www/Gemfile new file mode 100644 index 000000000..728c73335 --- /dev/null +++ b/website/www/Gemfile @@ -0,0 +1,13 @@ +source 'https://rubygems.org' + +gem "less", "~> 2.2.2" +gem "middleman", "~> 3.0.6" +gem "middleman-minify-html", "~> 3.0.0" +gem "rack-contrib", "~> 1.1.0" +gem "redcarpet", "~> 2.2.2" +gem "therubyracer", "~> 0.10.2" +gem "thin", "~> 1.5.0" + +group :development do + gem "highline", "~> 1.6.15" +end diff --git a/website/www/Gemfile.lock b/website/www/Gemfile.lock new file mode 100644 index 000000000..801806565 --- /dev/null +++ b/website/www/Gemfile.lock @@ -0,0 +1,138 @@ +GEM + remote: https://rubygems.org/ + specs: + POpen4 (0.1.4) + Platform (>= 0.4.0) + open4 + Platform (0.4.0) + activesupport (3.2.9) + i18n (~> 0.6) + multi_json (~> 1.0) + chunky_png (1.2.6) + coffee-script (2.2.0) + coffee-script-source + execjs + coffee-script-source (1.3.3) + commonjs (0.2.6) + compass (0.12.2) + chunky_png (~> 1.2) + fssm (>= 0.2.7) + sass (~> 3.1) + daemons (1.1.9) + eventmachine (1.0.0) + execjs (1.4.0) + multi_json (~> 1.0) + ffi (1.2.0) + fssm (0.2.9) + haml (3.1.7) + highline (1.6.15) + hike (1.2.1) + htmlcompressor (0.0.3) + yui-compressor (~> 0.9.6) + http_router (0.10.2) + rack (>= 1.0.0) + url_mount (~> 0.2.1) + i18n (0.6.1) + less (2.2.2) + commonjs (~> 0.2.6) + libv8 (3.3.10.4) + listen (0.5.3) + maruku (0.6.1) + syntax (>= 1.0.0) + middleman (3.0.6) + middleman-core (= 3.0.6) + middleman-more (= 3.0.6) + middleman-sprockets (~> 3.0.2) + middleman-core (3.0.6) + activesupport (~> 3.2.6) + bundler (~> 1.1) + listen (~> 0.5.2) + rack (~> 1.4.1) + rack-test (~> 0.6.1) + rb-fsevent (~> 0.9.1) + rb-inotify (~> 0.8.8) + thor (~> 0.15.4) + tilt (~> 1.3.1) + middleman-minify-html (3.0.0) + htmlcompressor + middleman-core (~> 3.0.0) + middleman-more (3.0.6) + coffee-script (~> 2.2.0) + coffee-script-source (~> 1.3.3) + compass (>= 0.12.2) + execjs (~> 1.4.0) + haml (>= 3.1.6) + i18n (~> 0.6.0) + maruku (~> 0.6.0) + middleman-core (= 3.0.6) + padrino-helpers (= 0.10.7) + sass (>= 3.1.20) + uglifier (~> 1.2.6) + middleman-sprockets (3.0.4) + middleman-more (~> 3.0.1) + sprockets (~> 2.1, < 2.5) + sprockets-sass (~> 0.8.0) + multi_json (1.4.0) + open4 (1.3.0) + padrino-core (0.10.7) + activesupport (~> 3.2.0) + http_router (~> 0.10.2) + sinatra (~> 1.3.1) + thor (~> 0.15.2) + tilt (~> 1.3.0) + padrino-helpers (0.10.7) + i18n (~> 0.6) + padrino-core (= 0.10.7) + rack (1.4.1) + rack-contrib (1.1.0) + rack (>= 0.9.1) + rack-protection (1.2.0) + rack + rack-test (0.6.2) + rack (>= 1.0) + rb-fsevent (0.9.2) + rb-inotify (0.8.8) + ffi (>= 0.5.0) + redcarpet (2.2.2) + sass (3.2.3) + sinatra (1.3.3) + rack (~> 1.3, >= 1.3.6) + rack-protection (~> 1.2) + tilt (~> 1.3, >= 1.3.3) + sprockets (2.4.5) + hike (~> 1.2) + multi_json (~> 1.0) + rack (~> 1.0) + tilt (~> 1.1, != 1.3.0) + sprockets-sass (0.8.0) + sprockets (~> 2.0) + tilt (~> 1.1) + syntax (1.0.0) + therubyracer (0.10.2) + libv8 (~> 3.3.10) + thin (1.5.0) + daemons (>= 1.0.9) + eventmachine (>= 0.12.6) + rack (>= 1.0.0) + thor (0.15.4) + tilt (1.3.3) + uglifier (1.2.7) + execjs (>= 0.3.0) + multi_json (~> 1.3) + url_mount (0.2.1) + rack + yui-compressor (0.9.6) + POpen4 (>= 0.1.4) + +PLATFORMS + ruby + +DEPENDENCIES + highline (~> 1.6.15) + less (~> 2.2.2) + middleman (~> 3.0.6) + middleman-minify-html (~> 3.0.0) + rack-contrib (~> 1.1.0) + redcarpet (~> 2.2.2) + therubyracer (~> 0.10.2) + thin (~> 1.5.0) diff --git a/website/www/Procfile b/website/www/Procfile new file mode 100644 index 000000000..58361e473 --- /dev/null +++ b/website/www/Procfile @@ -0,0 +1 @@ +web: bundle exec thin start -p $PORT diff --git a/website/www/README.md b/website/www/README.md new file mode 100644 index 000000000..120011325 --- /dev/null +++ b/website/www/README.md @@ -0,0 +1,26 @@ +# VagrantUp.com + +This is the repository for the [Vagrant website](http://www.vagrantup.com). + +This is a [Middleman](http://middlemanapp.com) project, which builds a static +site from these source files. The site is hosted on [Heroku](http://heroku.com) +and then fronted by [Fastly](http://fastly.com). + +## Contributions Welcome! + +If you find a typo or you feel like you can improve the HTML, CSS, or +JavaScript, we welcome contributions. Feel free to open issues or pull +requests like any normal GitHub project, and we'll merge it in. + +## Running the Site Locally + +Running the site locally is simple. Clone this repo and run the following +commands: + +``` +$ bundle +$ bundle exec middleman server +``` + +Then open up `localhost:4567`. Note that some URLs you may need to append +".html" to make them work (in the navigation and such). diff --git a/website/www/config.rb b/website/www/config.rb new file mode 100644 index 000000000..6f2366254 --- /dev/null +++ b/website/www/config.rb @@ -0,0 +1,78 @@ +### +# Compass +### + +# Susy grids in Compass +# First: gem install susy --pre +# require 'susy' + +# Change Compass configuration +# compass_config do |config| +# config.output_style = :compact +# end + +### +# Page options, layouts, aliases and proxies +### + +# Per-page layout changes: +# +# With no layout +# page "/path/to/file.html", :layout => false +# +# With alternative layout +# page "/path/to/file.html", :layout => :otherlayout +# +# A path which all have the same layout +# with_layout :admin do +# page "/admin/*" +# end + +# Proxy (fake) files +# page "/this-page-has-no-template.html", :proxy => "/template-file.html" do +# @which_fake_page = "Rendering a fake page with a variable" +# end + +### +# Helpers +### + +# Automatic image dimensions on image_tag helper +# activate :automatic_image_sizes + +# Methods defined in the helpers block are available in templates +# helpers do +# def some_helper +# "Helping" +# end +# end + +set :css_dir, 'stylesheets' +set :js_dir, 'javascripts' +set :images_dir, 'images' + +# Use the RedCarpet Markdown engine +set :markdown_engine, :redcarpet +set :markdown, :fenced_code_blocks => true + +# Build-specific configuration +configure :build do + activate :asset_hash + activate :minify_css + activate :minify_html + activate :minify_javascript + + # Enable cache buster + # activate :cache_buster + + # Use relative URLs + # activate :relative_assets + + # Compress PNGs after build + # First: gem install middleman-smusher + # require "middleman-smusher" + # activate :smusher + + # Or use a different image path + # set :http_path, "/Content/images/" +end diff --git a/website/www/config.ru b/website/www/config.ru new file mode 100644 index 000000000..0674aee27 --- /dev/null +++ b/website/www/config.ru @@ -0,0 +1,39 @@ +require "rack" +require "rack/contrib/not_found" +require "rack/contrib/response_headers" +require "rack/contrib/static_cache" +require "rack/contrib/try_static" + +require File.expand_path("../lib/legacy_redirect", __FILE__) + +# Properly compress the output if the client can handle it. +use Rack::Deflater + +# Redirect the legacy URLs that point to www.vagrantup.com +use HashiCorp::Rack::LegacyRedirect + +# Set the "forever expire" cache headers for these static assets. Since +# we hash the contents of the assets to determine filenames, this is safe +# to do. +use Rack::StaticCache, + :root => "build", + :urls => ["/images", "/javascripts", "/stylesheets"], + :duration => 2, + :versioning => false + +# For anything that matches below this point, we set the surrogate key +# for Fastly so that we can quickly purge all the pages without touching +# the static assets. +use Rack::ResponseHeaders do |headers| + headers["Surrogate-Key"] = "page" +end + +# Try to find a static file that matches our request, since Middleman +# statically generates everything. +use Rack::TryStatic, + :root => "build", + :urls => ["/"], + :try => [".html", "index.html", "/index.html"] + +# 404 if we reached this point. Sad times. +run Rack::NotFound.new(File.expand_path("../build/404.html", __FILE__)) diff --git a/website/www/helpers/sidebar_helpers.rb b/website/www/helpers/sidebar_helpers.rb new file mode 100644 index 000000000..6204c7b24 --- /dev/null +++ b/website/www/helpers/sidebar_helpers.rb @@ -0,0 +1,12 @@ +module SidebarHelpers + # This helps by setting the "current" class for sidebar nav elements + # if the YAML frontmatter matches the expected value. + def sidebar_current(expected) + actual = current_page.data.sidebar_current + if actual && actual == expected + return " class=\"current\"" + else + return "" + end + end +end diff --git a/website/www/lib/legacy_redirect.rb b/website/www/lib/legacy_redirect.rb new file mode 100644 index 000000000..ce93a2d55 --- /dev/null +++ b/website/www/lib/legacy_redirect.rb @@ -0,0 +1,32 @@ +module HashiCorp + module Rack + # This redirects legacy URLs to VagrantUp.com to the proper location. + class LegacyRedirect + LEGACY_PATHS = { + /^\/(v1|v2)/ => lambda { |env, _| "http://docs.vagrantup.com#{env["PATH_INFO"]}" } + } + + def initialize(app) + @app = app + end + + def call(env) + # Go through each legacy path and see if we match any of them. + LEGACY_PATHS.each do |matcher, pather| + data = matcher.match(env["PATH_INFO"]) + + if data + # We matched a legacy path, so redirect it out. + url = pather.call(env, data) + headers = { "Content-Type" => "text/html", "location" => url } + message = "Redirecting to new URL..." + + return [301, headers, [message]] + end + end + + @app.call(env) + end + end + end +end diff --git a/website/www/source/404.html.erb b/website/www/source/404.html.erb new file mode 100644 index 000000000..48addc868 --- /dev/null +++ b/website/www/source/404.html.erb @@ -0,0 +1,11 @@ +--- +layout: "inner" +--- + +

Page Not Found

+ +

+Sorry, the page you tried to visit doesn't exist. This could be our fault, +and if so we'll fix that up right away. Please go back, or go back +home to get back on track. +

diff --git a/website/www/source/_sidebar_about.erb b/website/www/source/_sidebar_about.erb new file mode 100644 index 000000000..d301ca14f --- /dev/null +++ b/website/www/source/_sidebar_about.erb @@ -0,0 +1,5 @@ + +vagrant on github diff --git a/website/www/source/_sidebar_support.html.erb b/website/www/source/_sidebar_support.html.erb new file mode 100644 index 000000000..762521c10 --- /dev/null +++ b/website/www/source/_sidebar_support.html.erb @@ -0,0 +1,6 @@ + +vagrant on github diff --git a/website/www/source/about.html.markdown b/website/www/source/about.html.markdown new file mode 100644 index 000000000..604cef69a --- /dev/null +++ b/website/www/source/about.html.markdown @@ -0,0 +1,16 @@ +--- +layout: "inner" +sidebar_current: "about" +sidebar_template: "about" +sidebar_title: "About" +--- + +## About Vagrant + +Vagrant is a tool for building complete development environments. With an easy-to-use workflow and focus on automation, Vagrant lowers development environment setup time, increases development/production parity, and makes the "works on my machine" excuse a relic of the past. + +Vagrant was started in January 2010 by [Mitchell Hashimoto](http://twitter.com/mitchellh). For almost three years, Vagrant was a side-project for Mitchell, a project that he worked on in his free hours after his full time job. During this time, Vagrant grew to be trusted and used by a range of individuals to entire development teams in large companies. + +In November 2012, [HashiCorp](http://www.hashicorp.com) was formed by Mitchell to back the development of Vagrant full time. HashiCorp builds commercial additions and provides professional support and training for Vagrant. + +Vagrant remains and always will be a liberally licensed open source project. Each release of Vagrant is the work of hundreds of individuals' contributions to the [open source project](http://github.com/mitchellh/vagrant). diff --git a/website/www/source/images/bullet_1.png b/website/www/source/images/bullet_1.png new file mode 100644 index 000000000..8dee83d3b Binary files /dev/null and b/website/www/source/images/bullet_1.png differ diff --git a/website/www/source/images/bullet_2.png b/website/www/source/images/bullet_2.png new file mode 100644 index 000000000..f9d52f76b Binary files /dev/null and b/website/www/source/images/bullet_2.png differ diff --git a/website/www/source/images/bullet_3.png b/website/www/source/images/bullet_3.png new file mode 100644 index 000000000..150b51839 Binary files /dev/null and b/website/www/source/images/bullet_3.png differ diff --git a/website/www/source/images/customers.png b/website/www/source/images/customers.png new file mode 100644 index 000000000..9a01a613a Binary files /dev/null and b/website/www/source/images/customers.png differ diff --git a/website/www/source/images/customers_small.png b/website/www/source/images/customers_small.png new file mode 100644 index 000000000..ebf0a49c8 Binary files /dev/null and b/website/www/source/images/customers_small.png differ diff --git a/website/www/source/images/footer_background.png b/website/www/source/images/footer_background.png new file mode 100644 index 000000000..b400f8694 Binary files /dev/null and b/website/www/source/images/footer_background.png differ diff --git a/website/www/source/images/footer_hashi_logo.png b/website/www/source/images/footer_hashi_logo.png new file mode 100644 index 000000000..73c9f3125 Binary files /dev/null and b/website/www/source/images/footer_hashi_logo.png differ diff --git a/website/www/source/images/footer_vagrant_logo.png b/website/www/source/images/footer_vagrant_logo.png new file mode 100644 index 000000000..aab2d320e Binary files /dev/null and b/website/www/source/images/footer_vagrant_logo.png differ diff --git a/website/www/source/images/get_started_background.png b/website/www/source/images/get_started_background.png new file mode 100644 index 000000000..e8c94a685 Binary files /dev/null and b/website/www/source/images/get_started_background.png differ diff --git a/website/www/source/images/icon_caution.png b/website/www/source/images/icon_caution.png new file mode 100644 index 000000000..942d74d83 Binary files /dev/null and b/website/www/source/images/icon_caution.png differ diff --git a/website/www/source/images/logo_docs.png b/website/www/source/images/logo_docs.png new file mode 100644 index 000000000..e73755314 Binary files /dev/null and b/website/www/source/images/logo_docs.png differ diff --git a/website/www/source/images/logo_docs_small.png b/website/www/source/images/logo_docs_small.png new file mode 100644 index 000000000..b98f0a27f Binary files /dev/null and b/website/www/source/images/logo_docs_small.png differ diff --git a/website/www/source/images/logo_small.png b/website/www/source/images/logo_small.png new file mode 100644 index 000000000..28bcbdff7 Binary files /dev/null and b/website/www/source/images/logo_small.png differ diff --git a/website/www/source/images/logo_vagrant.png b/website/www/source/images/logo_vagrant.png new file mode 100644 index 000000000..3d2544442 Binary files /dev/null and b/website/www/source/images/logo_vagrant.png differ diff --git a/website/www/source/images/open_close.png b/website/www/source/images/open_close.png new file mode 100644 index 000000000..539c512cd Binary files /dev/null and b/website/www/source/images/open_close.png differ diff --git a/website/www/source/images/search_icon.png b/website/www/source/images/search_icon.png new file mode 100644 index 000000000..d9052b2ff Binary files /dev/null and b/website/www/source/images/search_icon.png differ diff --git a/website/www/source/images/sidebar_background_docs.png b/website/www/source/images/sidebar_background_docs.png new file mode 100644 index 000000000..005880045 Binary files /dev/null and b/website/www/source/images/sidebar_background_docs.png differ diff --git a/website/www/source/images/sidebar_background_inner.png b/website/www/source/images/sidebar_background_inner.png new file mode 100644 index 000000000..92b8a2cb1 Binary files /dev/null and b/website/www/source/images/sidebar_background_inner.png differ diff --git a/website/www/source/images/sponsors/fastly.png b/website/www/source/images/sponsors/fastly.png new file mode 100644 index 000000000..6e94c7dca Binary files /dev/null and b/website/www/source/images/sponsors/fastly.png differ diff --git a/website/www/source/images/sponsors/kiip.png b/website/www/source/images/sponsors/kiip.png new file mode 100644 index 000000000..a2b49f756 Binary files /dev/null and b/website/www/source/images/sponsors/kiip.png differ diff --git a/website/www/source/images/sponsors/softlayer.jpg b/website/www/source/images/sponsors/softlayer.jpg new file mode 100644 index 000000000..95a5875e3 Binary files /dev/null and b/website/www/source/images/sponsors/softlayer.jpg differ diff --git a/website/www/source/images/sponsors/typekit.png b/website/www/source/images/sponsors/typekit.png new file mode 100644 index 000000000..f9347b673 Binary files /dev/null and b/website/www/source/images/sponsors/typekit.png differ diff --git a/website/www/source/images/steps_background.png b/website/www/source/images/steps_background.png new file mode 100644 index 000000000..36dd5ed38 Binary files /dev/null and b/website/www/source/images/steps_background.png differ diff --git a/website/www/source/images/vagrant_header_background.png b/website/www/source/images/vagrant_header_background.png new file mode 100644 index 000000000..1eff40822 Binary files /dev/null and b/website/www/source/images/vagrant_header_background.png differ diff --git a/website/www/source/images/vagrant_vmware_background.png b/website/www/source/images/vagrant_vmware_background.png new file mode 100644 index 000000000..464e0d582 Binary files /dev/null and b/website/www/source/images/vagrant_vmware_background.png differ diff --git a/website/www/source/index.html.erb b/website/www/source/index.html.erb new file mode 100644 index 000000000..55660320d --- /dev/null +++ b/website/www/source/index.html.erb @@ -0,0 +1,109 @@ +
+ +
+
+
+ +
+
+
+

Development
environments
made easy.

+

Create and configure lightweight, reproducible, and portable development environments.

+
+
+
+ + + +
+
+
+ +
+
+
+

+ Vagrant will change how you work +

+
+
+
+ +
+

Set Up

+

+ Download and install Vagrant within minutes on Mac OS X, Windows, or a popular distribution of Linux. No complicated setup process, just a simple to use OS-standard installer. +

+
+ +
+

Configure

+

+ Create a single file for your project to describe the type of machine you want, the software that needs to be installed, and the way you want to access the machine. Store this file with your project code. +

+
+ +
+

Work

+

+ Run a single command — "vagrant up" — and sit back as Vagrant puts together your complete development environment. Say goodbye to the "works on my machine" excuse as Vagrant creates identical development environments for everyone on your team. +

+
+
+
+
+
+ +
+
+
+
+ +

+ See how easy it is +

+
+$ vagrant box add base http://files.vagrantup.com/lucid32.box
+$ vagrant init
+$ vagrant up
+					
+
+
+ +
+
+ +
+
+
+
+

+ Trusted by +

+
+ customers +
+
+
+
+
+ +
diff --git a/website/www/source/javascripts/backstretch.js b/website/www/source/javascripts/backstretch.js new file mode 100644 index 000000000..115e52ab4 --- /dev/null +++ b/website/www/source/javascripts/backstretch.js @@ -0,0 +1,4 @@ +/*! Backstretch - v2.0.1 - 2012-10-01 +* http://srobbin.com/jquery-plugins/backstretch/ +* Copyright (c) 2012 Scott Robbin; Licensed MIT */ +(function(e,t,n){"use strict";e.fn.backstretch=function(r,s){return(r===n||r.length===0)&&e.error("No images were supplied for Backstretch"),e(t).scrollTop()===0&&t.scrollTo(0,0),this.each(function(){var t=e(this),n=t.data("backstretch");n&&(s=e.extend(n.options,s),n.destroy(!0)),n=new i(this,r,s),t.data("backstretch",n)})},e.backstretch=function(t,n){return e("body").backstretch(t,n).data("backstretch")},e.expr[":"].backstretch=function(t){return e(t).data("backstretch")!==n},e.fn.backstretch.defaults={centeredX:!0,centeredY:!0,duration:5e3,fade:0};var r={wrap:{left:0,top:0,overflow:"hidden",margin:0,padding:0,height:"100%",width:"100%",zIndex:-999999},img:{position:"absolute",display:"none",margin:0,padding:0,border:"none",width:"auto",height:"auto",maxWidth:"none",zIndex:-999999}},i=function(n,i,o){this.options=e.extend({},e.fn.backstretch.defaults,o||{}),this.images=e.isArray(i)?i:[i],e.each(this.images,function(){e("")[0].src=this}),this.isBody=n===document.body,this.$container=e(n),this.$wrap=e('
').css(r.wrap).appendTo(this.$container),this.$root=this.isBody?s?e(t):e(document):this.$container;if(!this.isBody){var u=this.$container.css("position"),a=this.$container.css("zIndex");this.$container.css({position:u==="static"?"relative":u,zIndex:a==="auto"?0:a,background:"none"}),this.$wrap.css({zIndex:-999998})}this.$wrap.css({position:this.isBody&&s?"fixed":"absolute"}),this.index=0,this.show(this.index),e(t).on("resize.backstretch",e.proxy(this.resize,this)).on("orientationchange.backstretch",e.proxy(function(){this.isBody&&t.pageYOffset===0&&(t.scrollTo(0,1),this.resize())},this))};i.prototype={resize:function(){try{var e={left:0,top:0},n=this.isBody?this.$root.width():this.$root.innerWidth(),r=n,i=this.isBody?t.innerHeight?t.innerHeight:this.$root.height():this.$root.innerHeight(),s=r/this.$img.data("ratio"),o;s>=i?(o=(s-i)/2,this.options.centeredY&&(e.top="-"+o+"px")):(s=i,r=s*this.$img.data("ratio"),o=(r-n)/2,this.options.centeredX&&(e.left="-"+o+"px")),this.$wrap.css({width:n,height:i}).find("img:not(.deleteable)").css({width:r,height:s}).css(e)}catch(u){}return this},show:function(t){if(Math.abs(t)>this.images.length-1)return;this.index=t;var n=this,i=n.$wrap.find("img").addClass("deleteable"),s=e.Event("backstretch.show",{relatedTarget:n.$container[0]});return clearInterval(n.interval),n.$img=e("").css(r.img).bind("load",function(t){var r=this.width||e(t.target).width(),o=this.height||e(t.target).height();e(this).data("ratio",r/o),n.resize(),e(this).fadeIn(n.options.speed||n.options.fade,function(){i.remove(),n.paused||n.cycle(),n.$container.trigger(s)})}).appendTo(n.$wrap),n.$img.attr("src",n.images[t]),n},next:function(){return this.show(this.index1&&(clearInterval(this.interval),this.interval=setInterval(e.proxy(function(){this.paused||this.next()},this),this.options.duration)),this},destroy:function(n){e(t).off("resize.backstretch orientationchange.backstretch"),clearInterval(this.interval),n||this.$wrap.remove(),this.$container.removeData("backstretch")}};var s=function(){var e=navigator.userAgent,n=navigator.platform,r=e.match(/AppleWebKit\/([0-9]+)/),i=!!r&&r[1],s=e.match(/Fennec\/([0-9]+)/),o=!!s&&s[1],u=e.match(/Opera Mobi\/([0-9]+)/),a=!!u&&u[1],f=e.match(/MSIE ([0-9]+)/),l=!!f&&f[1];return!((n.indexOf("iPhone")>-1||n.indexOf("iPad")>-1||n.indexOf("iPod")>-1)&&i&&i<534||t.operamini&&{}.toString.call(t.operamini)==="[object OperaMini]"||u&&a<7458||e.indexOf("Android")>-1&&i&&i<533||o&&o<6||"palmGetResource"in t&&i&&i<534||e.indexOf("MeeGo")>-1&&e.indexOf("NokiaBrowser/8.5.0")>-1||l&&l<=6)}()})(jQuery,window); \ No newline at end of file diff --git a/website/www/source/javascripts/bootstrap.min.js b/website/www/source/javascripts/bootstrap.min.js new file mode 100755 index 000000000..e9052aa68 --- /dev/null +++ b/website/www/source/javascripts/bootstrap.min.js @@ -0,0 +1,7 @@ +/** +* Bootstrap.js by @fat & @mdo +* plugins: bootstrap-transition.js, bootstrap-modal.js, bootstrap-dropdown.js, bootstrap-scrollspy.js, bootstrap-tab.js, bootstrap-tooltip.js, bootstrap-popover.js, bootstrap-affix.js, bootstrap-alert.js, bootstrap-button.js, bootstrap-collapse.js, bootstrap-carousel.js, bootstrap-typeahead.js +* Copyright 2012 Twitter, Inc. +* http://www.apache.org/licenses/LICENSE-2.0.txt +*/ +!function(a){a(function(){a.support.transition=function(){var a=function(){var a=document.createElement("bootstrap"),b={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd otransitionend",transition:"transitionend"},c;for(c in b)if(a.style[c]!==undefined)return b[c]}();return a&&{end:a}}()})}(window.jQuery),!function(a){var b=function(b,c){this.options=c,this.$element=a(b).delegate('[data-dismiss="modal"]',"click.dismiss.modal",a.proxy(this.hide,this)),this.options.remote&&this.$element.find(".modal-body").load(this.options.remote)};b.prototype={constructor:b,toggle:function(){return this[this.isShown?"hide":"show"]()},show:function(){var b=this,c=a.Event("show");this.$element.trigger(c);if(this.isShown||c.isDefaultPrevented())return;this.isShown=!0,this.escape(),this.backdrop(function(){var c=a.support.transition&&b.$element.hasClass("fade");b.$element.parent().length||b.$element.appendTo(document.body),b.$element.show(),c&&b.$element[0].offsetWidth,b.$element.addClass("in").attr("aria-hidden",!1),b.enforceFocus(),c?b.$element.one(a.support.transition.end,function(){b.$element.focus().trigger("shown")}):b.$element.focus().trigger("shown")})},hide:function(b){b&&b.preventDefault();var c=this;b=a.Event("hide"),this.$element.trigger(b);if(!this.isShown||b.isDefaultPrevented())return;this.isShown=!1,this.escape(),a(document).off("focusin.modal"),this.$element.removeClass("in").attr("aria-hidden",!0),a.support.transition&&this.$element.hasClass("fade")?this.hideWithTransition():this.hideModal()},enforceFocus:function(){var b=this;a(document).on("focusin.modal",function(a){b.$element[0]!==a.target&&!b.$element.has(a.target).length&&b.$element.focus()})},escape:function(){var a=this;this.isShown&&this.options.keyboard?this.$element.on("keyup.dismiss.modal",function(b){b.which==27&&a.hide()}):this.isShown||this.$element.off("keyup.dismiss.modal")},hideWithTransition:function(){var b=this,c=setTimeout(function(){b.$element.off(a.support.transition.end),b.hideModal()},500);this.$element.one(a.support.transition.end,function(){clearTimeout(c),b.hideModal()})},hideModal:function(a){this.$element.hide().trigger("hidden"),this.backdrop()},removeBackdrop:function(){this.$backdrop.remove(),this.$backdrop=null},backdrop:function(b){var c=this,d=this.$element.hasClass("fade")?"fade":"";if(this.isShown&&this.options.backdrop){var e=a.support.transition&&d;this.$backdrop=a('