Merge pull request #6891 from mitchellh/sethvargo/merge
Merge docs and www into a single static site
|
@ -9,8 +9,8 @@
|
|||
acceptance_config.yml
|
||||
boxes/*
|
||||
/.vagrant
|
||||
/website/docs/.vagrant
|
||||
/website/www/.vagrant
|
||||
/website/.vagrant
|
||||
/website/build
|
||||
/vagrant-spec.config.rb
|
||||
|
||||
# Bundler/Rubygems
|
||||
|
@ -21,6 +21,7 @@ tags
|
|||
/Gemfile.lock
|
||||
test/tmp/
|
||||
vendor/
|
||||
/exec
|
||||
|
||||
# Documentation
|
||||
_site/*
|
||||
|
@ -43,14 +44,3 @@ doc/
|
|||
.ruby-gemset
|
||||
.ruby-version
|
||||
.rvmrc
|
||||
|
||||
# Website: docs
|
||||
website/docs/.sass-cache
|
||||
website/docs/build
|
||||
website/docs/Rakefile
|
||||
|
||||
# Website: www
|
||||
website/www/.sass-cache
|
||||
website/www/build
|
||||
website/www/Rakefile
|
||||
exec/
|
||||
|
|
|
@ -0,0 +1,3 @@
|
|||
source "https://rubygems.org"
|
||||
|
||||
gem "middleman-hashicorp", github: "hashicorp/middleman-hashicorp"
|
|
@ -0,0 +1,193 @@
|
|||
GIT
|
||||
remote: git://github.com/hashicorp/middleman-hashicorp.git
|
||||
revision: e30d05d2d3b03ed95d8a09d20c33ec32a0732b62
|
||||
specs:
|
||||
middleman-hashicorp (0.2.0)
|
||||
bootstrap-sass (~> 3.3)
|
||||
builder (~> 3.2)
|
||||
less (~> 2.6)
|
||||
middleman (~> 3.4)
|
||||
middleman-livereload (~> 3.4)
|
||||
middleman-minify-html (~> 3.4)
|
||||
middleman-syntax (~> 2.0)
|
||||
rack-contrib (~> 1.2)
|
||||
rack-protection (~> 1.5)
|
||||
rack-rewrite (~> 1.5)
|
||||
rack-ssl-enforcer (~> 0.2)
|
||||
redcarpet (~> 3.2)
|
||||
therubyracer (~> 0.12)
|
||||
thin (~> 1.6)
|
||||
|
||||
GEM
|
||||
remote: https://rubygems.org/
|
||||
specs:
|
||||
activesupport (4.2.5)
|
||||
i18n (~> 0.7)
|
||||
json (~> 1.7, >= 1.7.7)
|
||||
minitest (~> 5.1)
|
||||
thread_safe (~> 0.3, >= 0.3.4)
|
||||
tzinfo (~> 1.1)
|
||||
autoprefixer-rails (6.3.1)
|
||||
execjs
|
||||
json
|
||||
bootstrap-sass (3.3.6)
|
||||
autoprefixer-rails (>= 5.2.1)
|
||||
sass (>= 3.3.4)
|
||||
builder (3.2.2)
|
||||
capybara (2.4.4)
|
||||
mime-types (>= 1.16)
|
||||
nokogiri (>= 1.3.3)
|
||||
rack (>= 1.0.0)
|
||||
rack-test (>= 0.5.4)
|
||||
xpath (~> 2.0)
|
||||
chunky_png (1.3.5)
|
||||
coffee-script (2.4.1)
|
||||
coffee-script-source
|
||||
execjs
|
||||
coffee-script-source (1.10.0)
|
||||
commonjs (0.2.7)
|
||||
compass (1.0.3)
|
||||
chunky_png (~> 1.2)
|
||||
compass-core (~> 1.0.2)
|
||||
compass-import-once (~> 1.0.5)
|
||||
rb-fsevent (>= 0.9.3)
|
||||
rb-inotify (>= 0.9)
|
||||
sass (>= 3.3.13, < 3.5)
|
||||
compass-core (1.0.3)
|
||||
multi_json (~> 1.0)
|
||||
sass (>= 3.3.0, < 3.5)
|
||||
compass-import-once (1.0.5)
|
||||
sass (>= 3.2, < 3.5)
|
||||
daemons (1.2.3)
|
||||
em-websocket (0.5.1)
|
||||
eventmachine (>= 0.12.9)
|
||||
http_parser.rb (~> 0.6.0)
|
||||
erubis (2.7.0)
|
||||
eventmachine (1.0.9.1)
|
||||
execjs (2.6.0)
|
||||
ffi (1.9.10)
|
||||
git-version-bump (0.15.1)
|
||||
haml (4.0.7)
|
||||
tilt
|
||||
hike (1.2.3)
|
||||
hooks (0.4.1)
|
||||
uber (~> 0.0.14)
|
||||
htmlcompressor (0.2.0)
|
||||
http_parser.rb (0.6.0)
|
||||
i18n (0.7.0)
|
||||
json (1.8.3)
|
||||
kramdown (1.9.0)
|
||||
less (2.6.0)
|
||||
commonjs (~> 0.2.7)
|
||||
libv8 (3.16.14.13)
|
||||
listen (3.0.5)
|
||||
rb-fsevent (>= 0.9.3)
|
||||
rb-inotify (>= 0.9)
|
||||
middleman (3.4.1)
|
||||
coffee-script (~> 2.2)
|
||||
compass (>= 1.0.0, < 2.0.0)
|
||||
compass-import-once (= 1.0.5)
|
||||
execjs (~> 2.0)
|
||||
haml (>= 4.0.5)
|
||||
kramdown (~> 1.2)
|
||||
middleman-core (= 3.4.1)
|
||||
middleman-sprockets (>= 3.1.2)
|
||||
sass (>= 3.4.0, < 4.0)
|
||||
uglifier (~> 2.5)
|
||||
middleman-core (3.4.1)
|
||||
activesupport (~> 4.1)
|
||||
bundler (~> 1.1)
|
||||
capybara (~> 2.4.4)
|
||||
erubis
|
||||
hooks (~> 0.3)
|
||||
i18n (~> 0.7.0)
|
||||
listen (~> 3.0.3)
|
||||
padrino-helpers (~> 0.12.3)
|
||||
rack (>= 1.4.5, < 2.0)
|
||||
thor (>= 0.15.2, < 2.0)
|
||||
tilt (~> 1.4.1, < 2.0)
|
||||
middleman-livereload (3.4.6)
|
||||
em-websocket (~> 0.5.1)
|
||||
middleman-core (>= 3.3)
|
||||
rack-livereload (~> 0.3.15)
|
||||
middleman-minify-html (3.4.1)
|
||||
htmlcompressor (~> 0.2.0)
|
||||
middleman-core (>= 3.2)
|
||||
middleman-sprockets (3.4.2)
|
||||
middleman-core (>= 3.3)
|
||||
sprockets (~> 2.12.1)
|
||||
sprockets-helpers (~> 1.1.0)
|
||||
sprockets-sass (~> 1.3.0)
|
||||
middleman-syntax (2.1.0)
|
||||
middleman-core (>= 3.2)
|
||||
rouge (~> 1.0)
|
||||
mime-types (3.0)
|
||||
mime-types-data (~> 3.2015)
|
||||
mime-types-data (3.2015.1120)
|
||||
mini_portile2 (2.0.0)
|
||||
minitest (5.8.3)
|
||||
multi_json (1.11.2)
|
||||
nokogiri (1.6.7.1)
|
||||
mini_portile2 (~> 2.0.0.rc2)
|
||||
padrino-helpers (0.12.5)
|
||||
i18n (~> 0.6, >= 0.6.7)
|
||||
padrino-support (= 0.12.5)
|
||||
tilt (~> 1.4.1)
|
||||
padrino-support (0.12.5)
|
||||
activesupport (>= 3.1)
|
||||
rack (1.6.4)
|
||||
rack-contrib (1.4.0)
|
||||
git-version-bump (~> 0.15)
|
||||
rack (~> 1.4)
|
||||
rack-livereload (0.3.16)
|
||||
rack
|
||||
rack-protection (1.5.3)
|
||||
rack
|
||||
rack-rewrite (1.5.1)
|
||||
rack-ssl-enforcer (0.2.9)
|
||||
rack-test (0.6.3)
|
||||
rack (>= 1.0)
|
||||
rb-fsevent (0.9.7)
|
||||
rb-inotify (0.9.5)
|
||||
ffi (>= 0.5.0)
|
||||
redcarpet (3.3.4)
|
||||
ref (2.0.0)
|
||||
rouge (1.10.1)
|
||||
sass (3.4.21)
|
||||
sprockets (2.12.4)
|
||||
hike (~> 1.2)
|
||||
multi_json (~> 1.0)
|
||||
rack (~> 1.0)
|
||||
tilt (~> 1.1, != 1.3.0)
|
||||
sprockets-helpers (1.1.0)
|
||||
sprockets (~> 2.0)
|
||||
sprockets-sass (1.3.1)
|
||||
sprockets (~> 2.0)
|
||||
tilt (~> 1.1)
|
||||
therubyracer (0.12.2)
|
||||
libv8 (~> 3.16.14.0)
|
||||
ref
|
||||
thin (1.6.4)
|
||||
daemons (~> 1.0, >= 1.0.9)
|
||||
eventmachine (~> 1.0, >= 1.0.4)
|
||||
rack (~> 1.0)
|
||||
thor (0.19.1)
|
||||
thread_safe (0.3.5)
|
||||
tilt (1.4.1)
|
||||
tzinfo (1.2.2)
|
||||
thread_safe (~> 0.1)
|
||||
uber (0.0.15)
|
||||
uglifier (2.7.2)
|
||||
execjs (>= 0.3.0)
|
||||
json (>= 1.8.0)
|
||||
xpath (2.0.0)
|
||||
nokogiri (~> 1.3)
|
||||
|
||||
PLATFORMS
|
||||
ruby
|
||||
|
||||
DEPENDENCIES
|
||||
middleman-hashicorp!
|
||||
|
||||
BUNDLED WITH
|
||||
1.10.6
|
|
@ -4,13 +4,13 @@ This is the repository for the [Vagrant website](https://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).
|
||||
and then fronted by [Fastly](https://www.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.
|
||||
requests like any normal GitHub project, and we will merge it in.
|
||||
|
||||
## Running the Site Locally
|
||||
|
|
@ -0,0 +1,59 @@
|
|||
set :base_url, "https://www.vagrantup.com/"
|
||||
|
||||
activate :hashicorp do |h|
|
||||
h.name = "vagrant"
|
||||
h.version = "1.8.1"
|
||||
h.github_slug = "mitchellh/vagrant"
|
||||
end
|
||||
|
||||
helpers do
|
||||
# This helps by setting the "active" class for sidebar nav elements
|
||||
# if the YAML frontmatter matches the expected value.
|
||||
def sidebar_current(expected)
|
||||
current = current_page.data.sidebar_current || ""
|
||||
if current.start_with?(expected)
|
||||
return " class=\"active\""
|
||||
else
|
||||
return ""
|
||||
end
|
||||
end
|
||||
|
||||
# This returns the overall section of the documentation we're on.
|
||||
def sidebar_section
|
||||
current = current_page.data.sidebar_current
|
||||
return "" if !current
|
||||
current.split("-")[0]
|
||||
end
|
||||
|
||||
def body_classes
|
||||
classify = ->(s) { s.downcase.gsub(/[^a-zA-Z0-9]/, "-").squeeze("-") }
|
||||
|
||||
classes = []
|
||||
|
||||
if current_page.data.page_title
|
||||
classes << "page-#{classify.call(current_page.data.page_title)}"
|
||||
else
|
||||
classes << "page-home"
|
||||
end
|
||||
|
||||
if current_page.data.layout
|
||||
classes << "layout-#{classify.call(current_page.data.layout)}"
|
||||
end
|
||||
|
||||
return classes.join(" ")
|
||||
end
|
||||
# "home layout-#{current_page.data.layout}"
|
||||
|
||||
# Get the title for the page.
|
||||
#
|
||||
# @param [Middleman::Page] page
|
||||
#
|
||||
# @return [String]
|
||||
def title_for(page)
|
||||
if page && page.data.page_title
|
||||
return "#{page.data.page_title} - Vagrant by HashiCorp"
|
||||
end
|
||||
|
||||
"Vagrant by HashiCorp"
|
||||
end
|
||||
end
|
|
@ -1,2 +0,0 @@
|
|||
https://github.com/heroku/heroku-buildpack-ruby.git
|
||||
https://github.com/hashicorp/heroku-buildpack-middleman.git
|
|
@ -1,17 +0,0 @@
|
|||
source "https://rubygems.org"
|
||||
|
||||
ruby "2.2.2"
|
||||
|
||||
gem "less", "~> 2.6.0"
|
||||
gem "middleman", "~> 3.0.6"
|
||||
gem "middleman-minify-html", "~> 3.0.0"
|
||||
gem "rack-contrib", "~> 1.1.0"
|
||||
gem "redcarpet", "~> 2.2.2"
|
||||
gem "rb-inotify", "~> 0.9", require: false
|
||||
gem "therubyracer", "~> 0.12.0"
|
||||
gem "thin", "~> 1.5.0"
|
||||
gem "rack-protection", "~> 1.5"
|
||||
|
||||
group :development do
|
||||
gem "highline", "~> 1.6.15"
|
||||
end
|
|
@ -1,148 +0,0 @@
|
|||
GEM
|
||||
remote: https://rubygems.org/
|
||||
specs:
|
||||
activesupport (3.2.13)
|
||||
i18n (= 0.6.1)
|
||||
multi_json (~> 1.0)
|
||||
chunky_png (1.3.4)
|
||||
coffee-script (2.2.0)
|
||||
coffee-script-source
|
||||
execjs
|
||||
coffee-script-source (1.3.3)
|
||||
commonjs (0.2.7)
|
||||
compass (1.0.3)
|
||||
chunky_png (~> 1.2)
|
||||
compass-core (~> 1.0.2)
|
||||
compass-import-once (~> 1.0.5)
|
||||
rb-fsevent (>= 0.9.3)
|
||||
rb-inotify (>= 0.9)
|
||||
sass (>= 3.3.13, < 3.5)
|
||||
compass-core (1.0.3)
|
||||
multi_json (~> 1.0)
|
||||
sass (>= 3.3.0, < 3.5)
|
||||
compass-import-once (1.0.5)
|
||||
sass (>= 3.2, < 3.5)
|
||||
daemons (1.1.9)
|
||||
eventmachine (1.0.7)
|
||||
execjs (1.4.1)
|
||||
multi_json (~> 1.0)
|
||||
ffi (1.9.6)
|
||||
haml (4.0.6)
|
||||
tilt
|
||||
highline (1.6.21)
|
||||
hike (1.2.3)
|
||||
htmlcompressor (0.1.2)
|
||||
http_router (0.10.2)
|
||||
rack (>= 1.0.0)
|
||||
url_mount (~> 0.2.1)
|
||||
i18n (0.6.1)
|
||||
less (2.6.0)
|
||||
commonjs (~> 0.2.7)
|
||||
libv8 (3.16.14.7)
|
||||
listen (0.7.3)
|
||||
maruku (0.6.1)
|
||||
syntax (>= 1.0.0)
|
||||
middleman (3.0.14)
|
||||
middleman-core (= 3.0.14)
|
||||
middleman-more (= 3.0.14)
|
||||
middleman-sprockets (~> 3.1.0)
|
||||
middleman-core (3.0.14)
|
||||
activesupport (~> 3.2.6)
|
||||
bundler (~> 1.1)
|
||||
listen (~> 0.7.3)
|
||||
rack (~> 1.4.1)
|
||||
rack-test (~> 0.6.1)
|
||||
rb-fsevent (~> 0.9.3)
|
||||
thor (~> 0.15.4)
|
||||
tilt (~> 1.3.6)
|
||||
middleman-minify-html (3.0.0)
|
||||
htmlcompressor
|
||||
middleman-core (~> 3.0.0)
|
||||
middleman-more (3.0.14)
|
||||
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, < 0.6.2)
|
||||
maruku (~> 0.6.0)
|
||||
middleman-core (= 3.0.14)
|
||||
padrino-helpers (= 0.10.7)
|
||||
sass (>= 3.1.20)
|
||||
uglifier (~> 1.2.6)
|
||||
middleman-sprockets (3.1.4)
|
||||
middleman-core (>= 3.0.14)
|
||||
middleman-more (>= 3.0.14)
|
||||
sprockets (~> 2.1)
|
||||
sprockets-helpers (~> 1.0.0)
|
||||
sprockets-sass (~> 1.0.0)
|
||||
multi_json (1.10.1)
|
||||
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.5)
|
||||
rack-contrib (1.1.0)
|
||||
rack (>= 0.9.1)
|
||||
rack-protection (1.5.3)
|
||||
rack
|
||||
rack-test (0.6.3)
|
||||
rack (>= 1.0)
|
||||
rb-fsevent (0.9.4)
|
||||
rb-inotify (0.9.5)
|
||||
ffi (>= 0.5.0)
|
||||
redcarpet (2.2.2)
|
||||
ref (1.0.5)
|
||||
sass (3.4.13)
|
||||
sinatra (1.3.6)
|
||||
rack (~> 1.4)
|
||||
rack-protection (~> 1.3)
|
||||
tilt (~> 1.3, >= 1.3.3)
|
||||
sprockets (2.12.3)
|
||||
hike (~> 1.2)
|
||||
multi_json (~> 1.0)
|
||||
rack (~> 1.0)
|
||||
tilt (~> 1.1, != 1.3.0)
|
||||
sprockets-helpers (1.0.1)
|
||||
sprockets (~> 2.0)
|
||||
sprockets-sass (1.0.3)
|
||||
sprockets (~> 2.0)
|
||||
tilt (~> 1.1)
|
||||
syntax (1.2.0)
|
||||
therubyracer (0.12.1)
|
||||
libv8 (~> 3.16.14.0)
|
||||
ref
|
||||
thin (1.5.1)
|
||||
daemons (>= 1.0.9)
|
||||
eventmachine (>= 0.12.6)
|
||||
rack (>= 1.0.0)
|
||||
thor (0.15.4)
|
||||
tilt (1.3.7)
|
||||
uglifier (1.2.7)
|
||||
execjs (>= 0.3.0)
|
||||
multi_json (~> 1.3)
|
||||
url_mount (0.2.1)
|
||||
rack
|
||||
|
||||
PLATFORMS
|
||||
ruby
|
||||
|
||||
DEPENDENCIES
|
||||
highline (~> 1.6.15)
|
||||
less (~> 2.6.0)
|
||||
middleman (~> 3.0.6)
|
||||
middleman-minify-html (~> 3.0.0)
|
||||
rack-contrib (~> 1.1.0)
|
||||
rack-protection (~> 1.5)
|
||||
rb-inotify (~> 0.9)
|
||||
redcarpet (~> 2.2.2)
|
||||
therubyracer (~> 0.12.0)
|
||||
thin (~> 1.5.0)
|
||||
|
||||
BUNDLED WITH
|
||||
1.10.6
|
|
@ -1 +0,0 @@
|
|||
web: bundle exec thin start -p $PORT
|
|
@ -1,20 +0,0 @@
|
|||
# Vagrant Documentation
|
||||
|
||||
This is the repository for the [Vagrant Documentation website](http://docs.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 `make dev`.
|
||||
|
||||
Then open up `localhost:4567/v2`. Note that some URLs you may need to append
|
||||
".html" to make them work (in the navigation and such).
|
|
@ -1,23 +0,0 @@
|
|||
# -*- mode: ruby -*-
|
||||
# vi: set ft=ruby :
|
||||
|
||||
$script = <<SCRIPT
|
||||
sudo apt-get -y update
|
||||
sudo apt-get -y install curl
|
||||
gpg --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3
|
||||
curl -sSL https://get.rvm.io | bash -s stable
|
||||
. ~/.bashrc
|
||||
. ~/.bash_profile
|
||||
rvm install 2.0.0
|
||||
rvm --default use 2.0.0
|
||||
gem install bundler
|
||||
cd /vagrant
|
||||
bundle
|
||||
SCRIPT
|
||||
|
||||
Vagrant.configure(2) do |config|
|
||||
config.vm.box = "hashicorp/precise64"
|
||||
config.vm.network "private_network", ip: "33.33.33.10"
|
||||
config.vm.provision "shell", inline: $script, privileged: false
|
||||
config.vm.synced_folder ".", "/vagrant", type: "rsync"
|
||||
end
|
|
@ -1,77 +0,0 @@
|
|||
###
|
||||
# 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_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
|
|
@ -1,55 +0,0 @@
|
|||
require "rack"
|
||||
require "rack/auth/basic"
|
||||
require "rack/contrib/not_found"
|
||||
require "rack/contrib/response_headers"
|
||||
require "rack/contrib/static_cache"
|
||||
require "rack/contrib/try_static"
|
||||
require "rack/protection"
|
||||
|
||||
require File.expand_path("../lib/redirect_to_latest", __FILE__)
|
||||
require File.expand_path("../lib/redirect_v1_docs", __FILE__)
|
||||
|
||||
# Protect against various bad things
|
||||
use Rack::Protection::JsonCsrf
|
||||
use Rack::Protection::RemoteReferrer
|
||||
use Rack::Protection::HttpOrigin
|
||||
use Rack::Protection::EscapedParams
|
||||
use Rack::Protection::XSSHeader
|
||||
use Rack::Protection::FrameOptions
|
||||
use Rack::Protection::PathTraversal
|
||||
use Rack::Protection::IPSpoofing
|
||||
|
||||
# Properly compress the output if the client can handle it.
|
||||
use Rack::Deflater
|
||||
|
||||
# Redirect the homepage to the latest documentation
|
||||
use HashiCorp::Rack::RedirectToLatest
|
||||
|
||||
# Redirect the V1 documentation to the GitHub pages hosted version
|
||||
use HashiCorp::Rack::RedirectV1Docs
|
||||
|
||||
# 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__))
|
|
@ -1,19 +0,0 @@
|
|||
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)
|
||||
current = current_page.data.sidebar_current
|
||||
if current == expected || sidebar_section == expected
|
||||
return " class=\"current\""
|
||||
else
|
||||
return ""
|
||||
end
|
||||
end
|
||||
|
||||
# This returns the overall section of the documentation we're on.
|
||||
def sidebar_section
|
||||
current = current_page.data.sidebar_current
|
||||
return "" if !current
|
||||
current.split("-")[0]
|
||||
end
|
||||
end
|
|
@ -1,25 +0,0 @@
|
|||
module HashiCorp
|
||||
module Rack
|
||||
# This redirects to the latest version of the docs.
|
||||
class RedirectToLatest
|
||||
def initialize(app)
|
||||
@app = app
|
||||
end
|
||||
|
||||
def call(env)
|
||||
if env["PATH_INFO"] =~ /^\/$/
|
||||
headers = {
|
||||
"Content-Type" => "text/html",
|
||||
"Location" => "/v2/",
|
||||
"Surrogate-Key" => "page"
|
||||
}
|
||||
message = "Redirecting to new URL..."
|
||||
|
||||
return [301, headers, [message]]
|
||||
end
|
||||
|
||||
@app.call(env)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
|
@ -1,26 +0,0 @@
|
|||
module HashiCorp
|
||||
module Rack
|
||||
# This redirects the V1 docs to the GitHub pages hosted version.
|
||||
class RedirectV1Docs
|
||||
def initialize(app)
|
||||
@app = app
|
||||
end
|
||||
|
||||
def call(env)
|
||||
if env["PATH_INFO"] =~ /^\/v1/
|
||||
headers = {
|
||||
"Content-Type" => "text/html",
|
||||
"Location" => "http://docs-v1.vagrantup.com#{env["PATH_INFO"]}",
|
||||
"Surrogate-Key" => "page"
|
||||
}
|
||||
|
||||
message = "Redirecting to old documentation URL..."
|
||||
|
||||
return [301, headers, [message]]
|
||||
end
|
||||
|
||||
@app.call(env)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
|
@ -1,7 +0,0 @@
|
|||
<h2>Page Not Found</h4>
|
||||
|
||||
<p>
|
||||
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
|
||||
<a href="/">home</a> to get back on track.
|
||||
</p>
|
Before Width: | Height: | Size: 1.1 KiB |
Before Width: | Height: | Size: 16 KiB |
Before Width: | Height: | Size: 11 KiB |
Before Width: | Height: | Size: 69 KiB |
Before Width: | Height: | Size: 888 B |
Before Width: | Height: | Size: 2.2 KiB |
Before Width: | Height: | Size: 909 B |
Before Width: | Height: | Size: 6.7 KiB |
Before Width: | Height: | Size: 12 KiB |
Before Width: | Height: | Size: 4.9 KiB |
Before Width: | Height: | Size: 8.7 KiB |
Before Width: | Height: | Size: 2.6 KiB |
Before Width: | Height: | Size: 122 B |
Before Width: | Height: | Size: 557 B |
|
@ -1,50 +0,0 @@
|
|||
(function(){
|
||||
|
||||
Sidebar = Base.extend({
|
||||
|
||||
$body: null,
|
||||
$overlay: null,
|
||||
$sidebar: null,
|
||||
$sidebarHeader: null,
|
||||
$sidebarImg: null,
|
||||
$toggleButton: null,
|
||||
|
||||
constructor: function(){
|
||||
this.$body = $('body');
|
||||
this.$overlay = $('.mobile-nav-overlay');
|
||||
this.$sidebar = $('#mobile-nav');
|
||||
this.$sidebarHeader = $('#mobile-nav .mobile-nav-header');
|
||||
this.$toggleButton = $('.navbar-toggle');
|
||||
this.sidebarImg = this.$sidebarHeader.css('background-image');
|
||||
|
||||
this.addEventListeners();
|
||||
},
|
||||
|
||||
addEventListeners: function(){
|
||||
var _this = this;
|
||||
|
||||
_this.$toggleButton.on('click', function() {
|
||||
_this.$sidebar.toggleClass('open');
|
||||
if ((_this.$sidebar.hasClass('mobile-nav-fixed-left') || _this.$sidebar.hasClass('mobile-nav-fixed-right')) && _this.$sidebar.hasClass('open')) {
|
||||
_this.$overlay.addClass('active');
|
||||
_this.$body.css('overflow', 'hidden');
|
||||
} else {
|
||||
_this.$overlay.removeClass('active');
|
||||
_this.$body.css('overflow', 'auto');
|
||||
}
|
||||
|
||||
return false;
|
||||
});
|
||||
|
||||
_this.$overlay.on('click', function() {
|
||||
$(this).removeClass('active');
|
||||
_this.$body.css('overflow', 'auto');
|
||||
_this.$sidebar.removeClass('open');
|
||||
});
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
window.Sidebar = Sidebar;
|
||||
|
||||
})();
|
|
@ -1,4 +0,0 @@
|
|||
/*! 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("<img />")[0].src=this}),this.isBody=n===document.body,this.$container=e(n),this.$wrap=e('<div class="backstretch"></div>').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("<img />").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.index<this.images.length-1?this.index+1:0)},prev:function(){return this.show(this.index===0?this.images.length-1:this.index-1)},pause:function(){return this.paused=!0,this},resume:function(){return this.paused=!1,this.next(),this},cycle:function(){return this.images.length>1&&(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);
|
|
@ -1,43 +0,0 @@
|
|||
/*global jQuery */
|
||||
/*!
|
||||
* FitText.js 1.1
|
||||
*
|
||||
* Copyright 2011, Dave Rupert http://daverupert.com
|
||||
* Released under the WTFPL license
|
||||
* http://sam.zoy.org/wtfpl/
|
||||
*
|
||||
* Date: Thu May 05 14:23:00 2011 -0600
|
||||
*/
|
||||
|
||||
(function( $ ){
|
||||
|
||||
$.fn.fitText = function( kompressor, options ) {
|
||||
|
||||
// Setup options
|
||||
var compressor = kompressor || 1,
|
||||
settings = $.extend({
|
||||
'minFontSize' : Number.NEGATIVE_INFINITY,
|
||||
'maxFontSize' : Number.POSITIVE_INFINITY
|
||||
}, options);
|
||||
|
||||
return this.each(function(){
|
||||
|
||||
// Store the object
|
||||
var $this = $(this);
|
||||
|
||||
// Resizer() resizes items based on the object width divided by the compressor * 10
|
||||
var resizer = function () {
|
||||
$this.css('font-size', Math.max(Math.min($this.width() / (compressor*10), parseFloat(settings.maxFontSize)), parseFloat(settings.minFontSize)));
|
||||
};
|
||||
|
||||
// Call once to set.
|
||||
resizer();
|
||||
|
||||
// Call on resize. Opera debounces their resize by default.
|
||||
$(window).on('resize', resizer);
|
||||
|
||||
});
|
||||
|
||||
};
|
||||
|
||||
})( jQuery );
|
|
@ -1,161 +0,0 @@
|
|||
/*
|
||||
* Heads-Up Grid
|
||||
* Simple HTML + CSS grid overlay for web design and development.
|
||||
*
|
||||
* Files: hugrid.css, hugrid.js, example.html
|
||||
*
|
||||
* Example and documentation at: http://bohemianalps.com/tools/grid
|
||||
*
|
||||
* Shurane, thanks for your help! https://github.com/shurane
|
||||
*
|
||||
* Copyright (c) 2011 Jason Simanek
|
||||
*
|
||||
* Version: 1.5 (09/03/2011)
|
||||
* Requires: jQuery v1.6+
|
||||
*
|
||||
* Licensed under the GPL license:
|
||||
* http://www.gnu.org/licenses/gpl.html
|
||||
*/
|
||||
|
||||
;(function ($) {
|
||||
// "use strict";
|
||||
|
||||
window.hugrid = {
|
||||
toggleState : function() {
|
||||
// change our indicators of state
|
||||
if (window.hugrid.state == 'on') {
|
||||
window.hugrid.state = 'off' ;
|
||||
}
|
||||
else if( window.hugrid.state == 'off'){
|
||||
window.hugrid.state = 'on' ;
|
||||
}
|
||||
}
|
||||
} ;
|
||||
|
||||
makehugrid = function () {
|
||||
|
||||
// called at startup. Remove grids, clear state.
|
||||
initialCleanUp() ;
|
||||
|
||||
/* Column Container */
|
||||
var hugridDiv = document.createElement("div");
|
||||
hugridDiv.id = "hugrid";
|
||||
|
||||
/* Left Margin Column */
|
||||
leftDiv = document.createElement("div");
|
||||
leftDiv.className = "mline mlineL";
|
||||
hugridDiv.appendChild(leftDiv);
|
||||
|
||||
/* Create Columns */
|
||||
for (var i = 0; i < (columns - 1); i++) {
|
||||
colDiv = document.createElement("div");
|
||||
colDiv.className = "hugcol";
|
||||
hugridDiv.appendChild(colDiv);
|
||||
lineLDiv = document.createElement("div");
|
||||
lineLDiv.className = "lineL";
|
||||
colDiv.appendChild(lineLDiv);
|
||||
lineRDiv = document.createElement("div");
|
||||
lineRDiv.className = "lineR";
|
||||
colDiv.appendChild(lineRDiv);
|
||||
}
|
||||
|
||||
/* Right Margin Column */
|
||||
rightDiv = document.createElement("div");
|
||||
rightDiv.className = "mline mlineR";
|
||||
hugridDiv.appendChild(rightDiv);
|
||||
|
||||
document.body.appendChild(hugridDiv);
|
||||
|
||||
/* If Rows */
|
||||
if (rowheight !== 0) {
|
||||
/* Row Container */
|
||||
pageheight = $(document.body).height();
|
||||
var hugridRows = document.createElement("div") ;
|
||||
hugridRows.id = "hugridRows";
|
||||
/* Create Rows */
|
||||
for (var i = 0; i < (pageheight / rowheight); i++) {
|
||||
rowDiv = document.createElement("div");
|
||||
rowDiv.className = "hugrow";
|
||||
hugridRows.appendChild(rowDiv);
|
||||
lineB = document.createElement("div");
|
||||
lineB.className = "lineB";
|
||||
rowDiv.appendChild(lineB);
|
||||
}
|
||||
|
||||
document.body.appendChild(hugridRows);
|
||||
}
|
||||
|
||||
/* Apply CSS Properties */
|
||||
$('#hugrid').css('width', pagewidth + pageUnits);
|
||||
|
||||
if (typeof window.pageleftmargin === 'number') {
|
||||
$('#hugrid').css('left', pageleftmargin + pageUnits);
|
||||
$('#hugrid').css('margin', '0');
|
||||
} else if (typeof window.pagerightmargin === 'number') {
|
||||
$('#hugrid').css('right', pagerightmargin + pageUnits);
|
||||
$('#hugrid').css('left', 'auto');
|
||||
$('#hugrid').css('margin', '0');
|
||||
} else {
|
||||
if (pageUnits === '%') {
|
||||
$('#hugrid').css('left', ((100 - pagewidth) / 2) + pageUnits);
|
||||
$('#hugrid').css('margin-left', 'auto');
|
||||
} else {
|
||||
$('#hugrid').css('margin-left', '-' + (pagewidth / 2) + pageUnits);
|
||||
}
|
||||
}
|
||||
|
||||
$('#hugrid div.hugcol').css('margin-left', columnwidth + colUnits);
|
||||
$('#hugrid div.hugcol').css('width', gutterwidth + colUnits);
|
||||
$('#hugridRows').css('margin-top', pagetopmargin + 'px');
|
||||
$('#hugridRows div.hugrow').css('margin-top', (rowheight - 1) + 'px');
|
||||
|
||||
/* Create hugridUX and button */
|
||||
var hugridUX = document.createElement("div");
|
||||
hugridUX.id = "hugridUX";
|
||||
document.body.appendChild(hugridUX);
|
||||
$('#hugridUX').append('<div id="hugridButtonBkgd"></div><button id="hugridButton"></button>');
|
||||
$('#hugridButton').append('<span id="hugbuttonON">ON</span>');
|
||||
$('#hugridButton').append('<span id="hugbuttonOFF" style="display:none;">OFF</span>');
|
||||
|
||||
/* On/Off Button - click functionality */
|
||||
$('#hugridButton').click(function () {
|
||||
$('#hugridButton').toggleClass('buttonisoff') ;
|
||||
$('#hugrid').toggle();
|
||||
$('#hugridRows').toggle();
|
||||
$("#hugridButton span").toggle();
|
||||
window.hugrid.toggleState() ;
|
||||
});
|
||||
};
|
||||
|
||||
|
||||
function initialCleanUp() {
|
||||
/* Remove Previously Existing Grid Elements */
|
||||
$('#hugrid').remove();
|
||||
$('#hugridRows').remove();
|
||||
$('#hugridUX').remove();
|
||||
}
|
||||
|
||||
|
||||
setgridonload = function () {
|
||||
if ( gridonload === 'off') {
|
||||
$('#hugridButton').toggleClass('buttonisoff') ;
|
||||
$('#hugrid').toggle();
|
||||
$('#hugridRows').toggle();
|
||||
$("#hugridButton span").toggle();
|
||||
window.hugrid.state = 'off'
|
||||
} else {
|
||||
window.hugrid.state = 'on'
|
||||
}
|
||||
} ;
|
||||
|
||||
|
||||
setgridonresize = function () {
|
||||
if ( window.hugrid.state === 'off') {
|
||||
$('#hugridButton').toggleClass('buttonisoff') ;
|
||||
$('#hugrid').toggle();
|
||||
$('#hugridRows').toggle();
|
||||
$("#hugridButton span").toggle();
|
||||
}
|
||||
} ;
|
||||
|
||||
})(jQuery);
|
|
@ -1,145 +0,0 @@
|
|||
/*
|
||||
Based on Base.js 1.1a (c) 2006-2010, Dean Edwards
|
||||
Updated to pass JSHint and converted into a module by Kenneth Powers
|
||||
License: http://www.opensource.org/licenses/mit-license.php
|
||||
*/
|
||||
/*global define:true module:true*/
|
||||
/*jshint eqeqeq:true*/
|
||||
(function (name, global, definition) {
|
||||
if (typeof module !== 'undefined') {
|
||||
module.exports = definition();
|
||||
} else if (typeof define !== 'undefined' && typeof define.amd === 'object') {
|
||||
define(definition);
|
||||
} else {
|
||||
global[name] = definition();
|
||||
}
|
||||
})('Base', this, function () {
|
||||
// Base Object
|
||||
var Base = function () {};
|
||||
|
||||
// Implementation
|
||||
Base.extend = function (_instance, _static) { // subclass
|
||||
var extend = Base.prototype.extend;
|
||||
// build the prototype
|
||||
Base._prototyping = true;
|
||||
var proto = new this();
|
||||
extend.call(proto, _instance);
|
||||
proto.base = function () {
|
||||
// call this method from any other method to invoke that method's ancestor
|
||||
};
|
||||
delete Base._prototyping;
|
||||
// create the wrapper for the constructor function
|
||||
//var constructor = proto.constructor.valueOf(); //-dean
|
||||
var constructor = proto.constructor;
|
||||
var klass = proto.constructor = function () {
|
||||
if (!Base._prototyping) {
|
||||
if (this._constructing || this.constructor === klass) { // instantiation
|
||||
this._constructing = true;
|
||||
constructor.apply(this, arguments);
|
||||
delete this._constructing;
|
||||
} else if (arguments[0] !== null) { // casting
|
||||
return (arguments[0].extend || extend).call(arguments[0], proto);
|
||||
}
|
||||
}
|
||||
};
|
||||
// build the class interface
|
||||
klass.ancestor = this;
|
||||
klass.extend = this.extend;
|
||||
klass.forEach = this.forEach;
|
||||
klass.implement = this.implement;
|
||||
klass.prototype = proto;
|
||||
klass.toString = this.toString;
|
||||
klass.valueOf = function (type) {
|
||||
return (type === 'object') ? klass : constructor.valueOf();
|
||||
};
|
||||
extend.call(klass, _static);
|
||||
// class initialization
|
||||
if (typeof klass.init === 'function') klass.init();
|
||||
return klass;
|
||||
};
|
||||
|
||||
Base.prototype = {
|
||||
extend: function (source, value) {
|
||||
if (arguments.length > 1) { // extending with a name/value pair
|
||||
var ancestor = this[source];
|
||||
if (ancestor && (typeof value === 'function') && // overriding a method?
|
||||
// the valueOf() comparison is to avoid circular references
|
||||
(!ancestor.valueOf || ancestor.valueOf() !== value.valueOf()) && /\bbase\b/.test(value)) {
|
||||
// get the underlying method
|
||||
var method = value.valueOf();
|
||||
// override
|
||||
value = function () {
|
||||
var previous = this.base || Base.prototype.base;
|
||||
this.base = ancestor;
|
||||
var returnValue = method.apply(this, arguments);
|
||||
this.base = previous;
|
||||
return returnValue;
|
||||
};
|
||||
// point to the underlying method
|
||||
value.valueOf = function (type) {
|
||||
return (type === 'object') ? value : method;
|
||||
};
|
||||
value.toString = Base.toString;
|
||||
}
|
||||
this[source] = value;
|
||||
} else if (source) { // extending with an object literal
|
||||
var extend = Base.prototype.extend;
|
||||
// if this object has a customized extend method then use it
|
||||
if (!Base._prototyping && typeof this !== 'function') {
|
||||
extend = this.extend || extend;
|
||||
}
|
||||
var proto = {
|
||||
toSource: null
|
||||
};
|
||||
// do the "toString" and other methods manually
|
||||
var hidden = ['constructor', 'toString', 'valueOf'];
|
||||
// if we are prototyping then include the constructor
|
||||
for (var i = Base._prototyping ? 0 : 1; i < hidden.length; i++) {
|
||||
var h = hidden[i];
|
||||
if (source[h] !== proto[h])
|
||||
extend.call(this, h, source[h]);
|
||||
}
|
||||
// copy each of the source object's properties to this object
|
||||
for (var key in source) {
|
||||
if (!proto[key]) extend.call(this, key, source[key]);
|
||||
}
|
||||
}
|
||||
return this;
|
||||
}
|
||||
};
|
||||
|
||||
// initialize
|
||||
Base = Base.extend({
|
||||
constructor: function () {
|
||||
this.extend(arguments[0]);
|
||||
}
|
||||
}, {
|
||||
ancestor: Object,
|
||||
version: '1.1',
|
||||
forEach: function (object, block, context) {
|
||||
for (var key in object) {
|
||||
if (this.prototype[key] === undefined) {
|
||||
block.call(context, object[key], key, object);
|
||||
}
|
||||
}
|
||||
},
|
||||
implement: function () {
|
||||
for (var i = 0; i < arguments.length; i++) {
|
||||
if (typeof arguments[i] === 'function') {
|
||||
// if it's a function, call it
|
||||
arguments[i](this.prototype);
|
||||
} else {
|
||||
// add the interface using the extend method
|
||||
this.prototype.extend(arguments[i]);
|
||||
}
|
||||
}
|
||||
return this;
|
||||
},
|
||||
toString: function () {
|
||||
return String(this.valueOf());
|
||||
}
|
||||
});
|
||||
|
||||
// Return Base implementation
|
||||
return Base;
|
||||
});
|
|
@ -1,15 +0,0 @@
|
|||
// add dropshadow to nav on scroll
|
||||
$(document).ready(function(){
|
||||
$(document).scroll(function() {
|
||||
var top = $(document).scrollTop();
|
||||
if (top > 0) $('nav').addClass("drop-shadow");
|
||||
if (top === 0) $('nav').removeClass("drop-shadow");
|
||||
});
|
||||
});
|
||||
|
||||
// open/close documentation side nav on small screens
|
||||
$(document).ready(function(){
|
||||
$(".toggle").click(function() {
|
||||
$(".sidebar-nav ul").slideToggle('slow');
|
||||
});
|
||||
});
|
|
@ -1,19 +0,0 @@
|
|||
<!-- Overlay for fixed mobile-nav -->
|
||||
<div class="mobile-nav-overlay"></div>
|
||||
|
||||
<!-- Material mobile-nav -->
|
||||
<aside id="mobile-nav" class="mobile-nav mobile-nav-default mobile-nav-fixed-right" role="navigation">
|
||||
<!-- mobile-nav header -->
|
||||
<div class="mobile-nav-header header-cover">
|
||||
<!-- mobile-nav brand image -->
|
||||
<div class="mobile-nav-image">
|
||||
<img src="<%= image_path('logo-header-docs@2x.png') %>" width="200px" height="40px">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- mobile-nav navigation -->
|
||||
<ul class="main nav mobile-nav-nav">
|
||||
<li class="pill"><a href="https://www.amazon.com/gp/product/1449335837/ref=as_li_qf_sp_asin_il_tl?ie=UTF8&camp=1789&creative=9325&creativeASIN=1449335837&linkCode=as2&tag=vagrant-20">Vagrant Book</a></li>
|
||||
<li><a href="https://www.vagrantup.com/">Home</a></li>
|
||||
</ul>
|
||||
</aside>
|
|
@ -1,427 +0,0 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
|
||||
<title><%= current_page.data.page_title ? " #{current_page.data.page_title} - " : "" %>Vagrant Documentation</title>
|
||||
|
||||
<!-- meta -->
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
|
||||
|
||||
<!-- favicon -->
|
||||
<link rel="shortcut icon" href="favicon.ico">
|
||||
|
||||
<!-- lib styles -->
|
||||
<%= stylesheet_link_tag "bootstrap", "vagrantup" %>
|
||||
|
||||
<!-- lib js -->
|
||||
<%= javascript_include_tag "jquery" %>
|
||||
<%= javascript_include_tag "modernizr" %>
|
||||
<%= javascript_include_tag "bootstrap.min" %>
|
||||
<%= javascript_include_tag "backstretch" %>
|
||||
<%= javascript_include_tag "vagrantup" %>
|
||||
|
||||
<!-- fonts -->
|
||||
<link href='//fonts.googleapis.com/css?family=Inconsolata' rel='stylesheet' type='text/css'>
|
||||
<script type="text/javascript" src="//use.typekit.net/xfs6zus.js"></script>
|
||||
<script type="text/javascript">try{Typekit.load();}catch(e){}</script>
|
||||
</head>
|
||||
<body>
|
||||
<!-- wrap everything -->
|
||||
<div class="wrapper">
|
||||
|
||||
<!-- nav -->
|
||||
<div id="header" class="navigation docs">
|
||||
<div class="container-fluid">
|
||||
<!-- vagrant logo -->
|
||||
<div class="navbar-header">
|
||||
<div class="navbar-brand">
|
||||
<a class="logo" href="/">Vagrant Documentation</span></a>
|
||||
<a class="by-hashicorp" href="https://hashicorp.com/"><span class="svg-wrap">by</span><%= partial "layouts/svg/svg-by-hashicorp" %><%= partial "layouts/svg/svg-hashicorp-logo" %>Hashicorp</a>
|
||||
</div>
|
||||
<button class="navbar-toggle" type="button">
|
||||
<span class="bar"></span>
|
||||
<span class="bar"></span>
|
||||
<span class="bar"></span>
|
||||
</button>
|
||||
</div>
|
||||
<div class="buttons">
|
||||
<nav class="navigation-links" role="navigation">
|
||||
<ul class="main-links nav navbar-nav">
|
||||
<li class="pill"><a href="https://www.amazon.com/gp/product/1449335837/ref=as_li_qf_sp_asin_il_tl?ie=UTF8&camp=1789&creative=9325&creativeASIN=1449335837&linkCode=as2&tag=vagrant-20">Vagrant Book</a></li>
|
||||
<li><a href="https://www.vagrantup.com/">Home</a></li>
|
||||
</ul>
|
||||
</nav>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<%= partial "layouts/mobile_nav" %>
|
||||
|
||||
<div class="page docs docs-home">
|
||||
<div class="sidebar-background"></div>
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
|
||||
<div class="sidebar span3">
|
||||
<!-- get the sidebar nav -->
|
||||
<!-- side nav docs -->
|
||||
<aside class="sidebar-nav">
|
||||
|
||||
<div class="toggle hidden-desktop">
|
||||
<div class="open-close open"></div>
|
||||
<a href="#">Contents</a>
|
||||
</div>
|
||||
|
||||
<ul class="unstyled">
|
||||
<li<%= sidebar_current("overview") %>><a href="/v2/">Overview</a></li>
|
||||
|
||||
<li<%= sidebar_current("why") %>><a href="/v2/why-vagrant/index.html">Why Vagrant?</a></li>
|
||||
|
||||
<li<%= sidebar_current("installation") %>><a href="/v2/installation/index.html">Installation</a></li>
|
||||
<% if sidebar_section == "installation" %>
|
||||
<ul class="sub unstyled">
|
||||
<li<%= sidebar_current("installation-backwards-compatibility") %>><a href="/v2/installation/backwards-compatibility.html">Backwards Compatibility</a></li>
|
||||
<li<%= sidebar_current("installation-upgrading") %>><a href="/v2/installation/upgrading.html">Upgrading</a></li>
|
||||
<li<%= sidebar_current("installation-upgrading-1-0") %>><a href="/v2/installation/upgrading-from-1-0.html">Upgrading from 1.0.x</a></li>
|
||||
<li<%= sidebar_current("installation-uninstallation") %>><a href="/v2/installation/uninstallation.html">Uninstallation</a></li>
|
||||
</ul>
|
||||
<% end %>
|
||||
|
||||
<li<%= sidebar_current("gettingstarted") %>><a href="/v2/getting-started/index.html">Getting Started</a></li>
|
||||
<% if sidebar_section == "gettingstarted" %>
|
||||
<ul class="sub unstyled">
|
||||
<li<%= sidebar_current("gettingstarted-projectsetup") %>><a href="/v2/getting-started/project_setup.html">Project Setup</a></li>
|
||||
<li<%= sidebar_current("gettingstarted-boxes") %>><a href="/v2/getting-started/boxes.html">Boxes</a></li>
|
||||
<li<%= sidebar_current("gettingstarted-up") %>><a href="/v2/getting-started/up.html">Up and SSH</a></li>
|
||||
<li<%= sidebar_current("gettingstarted-syncedfolders") %>><a href="/v2/getting-started/synced_folders.html">Synced Folders</a></li>
|
||||
<li<%= sidebar_current("gettingstarted-provisioning") %>><a href="/v2/getting-started/provisioning.html">Provisioning</a></li>
|
||||
<li<%= sidebar_current("gettingstarted-networking") %>><a href="/v2/getting-started/networking.html">Networking</a></li>
|
||||
<li<%= sidebar_current("gettingstarted-share") %>><a href="/v2/getting-started/share.html">Share</a></li>
|
||||
<li<%= sidebar_current("gettingstarted-teardown") %>><a href="/v2/getting-started/teardown.html">Teardown</a></li>
|
||||
<li<%= sidebar_current("gettingstarted-rebuild") %>><a href="/v2/getting-started/rebuild.html">Rebuild</a></li>
|
||||
<li<%= sidebar_current("gettingstarted-providers") %>><a href="/v2/getting-started/providers.html">Providers</a></li>
|
||||
</ul>
|
||||
<% end %>
|
||||
|
||||
<li<%= sidebar_current("cli") %>><a href="/v2/cli/index.html">Command-Line Interface</a></li>
|
||||
<% if sidebar_section == "cli" %>
|
||||
<ul class="sub unstyled nocap">
|
||||
<li<%= sidebar_current("cli-box") %>><a href="/v2/cli/box.html">box</a></li>
|
||||
<li<%= sidebar_current("cli-connect") %>><a href="/v2/cli/connect.html">connect</a></li>
|
||||
<li<%= sidebar_current("cli-destroy") %>><a href="/v2/cli/destroy.html">destroy</a></li>
|
||||
<li<%= sidebar_current("cli-globalstatus") %>><a href="/v2/cli/global-status.html">global-status</a></li>
|
||||
<li<%= sidebar_current("cli-halt") %>><a href="/v2/cli/halt.html">halt</a></li>
|
||||
<li<%= sidebar_current("cli-init") %>><a href="/v2/cli/init.html">init</a></li>
|
||||
<li<%= sidebar_current("cli-login") %>><a href="/v2/cli/login.html">login</a></li>
|
||||
<li<%= sidebar_current("cli-package") %>><a href="/v2/cli/package.html">package</a></li>
|
||||
<li<%= sidebar_current("cli-plugin") %>><a href="/v2/cli/plugin.html">plugin</a></li>
|
||||
<li<%= sidebar_current("cli-port") %>><a href="/v2/cli/port.html">port</a></li>
|
||||
<li<%= sidebar_current("cli-powershell") %>><a href="/v2/cli/powershell.html">powershell</a></li>
|
||||
<li<%= sidebar_current("cli-provision") %>><a href="/v2/cli/provision.html">provision</a></li>
|
||||
<li<%= sidebar_current("cli-rdp") %>><a href="/v2/cli/rdp.html">rdp</a></li>
|
||||
<li<%= sidebar_current("cli-reload") %>><a href="/v2/cli/reload.html">reload</a></li>
|
||||
<li<%= sidebar_current("cli-resume") %>><a href="/v2/cli/resume.html">resume</a></li>
|
||||
<li<%= sidebar_current("cli-share") %>><a href="/v2/cli/share.html">share</a></li>
|
||||
<li<%= sidebar_current("cli-snapshot") %>><a href="/v2/cli/snapshot.html">snapshot</a></li>
|
||||
<li<%= sidebar_current("cli-ssh") %>><a href="/v2/cli/ssh.html">ssh</a></li>
|
||||
<li<%= sidebar_current("cli-ssh_config") %>><a href="/v2/cli/ssh_config.html">ssh-config</a></li>
|
||||
<li<%= sidebar_current("cli-status") %>><a href="/v2/cli/status.html">status</a></li>
|
||||
<li<%= sidebar_current("cli-suspend") %>><a href="/v2/cli/suspend.html">suspend</a></li>
|
||||
<li<%= sidebar_current("cli-up") %>><a href="/v2/cli/up.html">up</a></li>
|
||||
<li<%= sidebar_current("cli-version") %>><a href="/v2/cli/version.html">version</a></li>
|
||||
<li<%= sidebar_current("cli-nonprimary") %>><a href="/v2/cli/non-primary.html">More Commands</a></li>
|
||||
<li<%= sidebar_current("cli-machinereadable") %>><a href="/v2/cli/machine-readable.html">Machine Readable Output</a></li>
|
||||
</ul>
|
||||
<% end %>
|
||||
|
||||
<li <%= sidebar_current("share") %>><a href="/v2/share/index.html">Vagrant Share</a></li>
|
||||
<% if sidebar_section == "share" %>
|
||||
<ul class="sub unstyled">
|
||||
<li<%= sidebar_current("share-http") %>><a href="/v2/share/http.html">HTTP Sharing</a></li>
|
||||
<li<%= sidebar_current("share-ssh") %>><a href="/v2/share/ssh.html">SSH Sharing</a></li>
|
||||
<li<%= sidebar_current("share-connect") %>><a href="/v2/share/connect.html">vagrant connect</a></li>
|
||||
<li<%= sidebar_current("share-security") %>><a href="/v2/share/security.html">Security</a></li>
|
||||
<li<%= sidebar_current("share-provider") %>><a href="/v2/share/provider.html">Custom Provider</a></li>
|
||||
</ul>
|
||||
<% end %>
|
||||
|
||||
<li <%= sidebar_current("vagrantfile") %>><a href="/v2/vagrantfile/index.html">Vagrantfile</a></li>
|
||||
<% if sidebar_section == "vagrantfile" %>
|
||||
<ul class="sub unstyled">
|
||||
<li<%= sidebar_current("vagrantfile-version") %>><a href="/v2/vagrantfile/version.html">Configuration Version</a></li>
|
||||
<li<%= sidebar_current("vagrantfile-vagrantversion") %>><a href="/v2/vagrantfile/vagrant_version.html">Minimum Vagrant Version</a></li>
|
||||
<li<%= sidebar_current("vagrantfile-tips") %>><a href="/v2/vagrantfile/tips.html">Tips & Tricks</a></li>
|
||||
<li<%= sidebar_current("vagrantfile-machine") %>><a href="/v2/vagrantfile/machine_settings.html" class="nocap">config.vm</a></li>
|
||||
<li<%= sidebar_current("vagrantfile-ssh") %>><a href="/v2/vagrantfile/ssh_settings.html" class="nocap">config.ssh</a></li>
|
||||
<li<%= sidebar_current("vagrantfile-winrm") %>><a href="/v2/vagrantfile/winrm_settings.html" class="nocap">config.winrm</a></li>
|
||||
<li<%= sidebar_current("vagrantfile-vagrant") %>><a href="/v2/vagrantfile/vagrant_settings.html" class="nocap">config.vagrant</a></li>
|
||||
</ul>
|
||||
<% end %>
|
||||
|
||||
<li<%= sidebar_current("boxes") %>><a href="/v2/boxes.html">Boxes</a></li>
|
||||
<% if sidebar_section == "boxes" %>
|
||||
<ul class="sub unstyled">
|
||||
<li<%= sidebar_current("boxes-versioning") %>><a href="/v2/boxes/versioning.html">Box Versioning</a></li>
|
||||
<li<%= sidebar_current("boxes-base") %>><a href="/v2/boxes/base.html">Creating a Base Box</a></li>
|
||||
<li<%= sidebar_current("boxes-format") %>><a href="/v2/boxes/format.html">Box File Format</a></li>
|
||||
</ul>
|
||||
<% end %>
|
||||
|
||||
<li<%= sidebar_current("provisioning") %>><a href="/v2/provisioning/index.html">Provisioning</a></li>
|
||||
<% if sidebar_section == "provisioning" %>
|
||||
<ul class="sub unstyled">
|
||||
<li<%= sidebar_current("provisioning-basic") %>><a href="/v2/provisioning/basic_usage.html">Basic Usage</a></li>
|
||||
<li<%= sidebar_current("provisioning-file") %>><a href="/v2/provisioning/file.html">File</a></li>
|
||||
<li<%= sidebar_current("provisioning-shell") %>><a href="/v2/provisioning/shell.html">Shell</a></li>
|
||||
<li<%= sidebar_current("provisioning-ansible") %>><a href="/v2/provisioning/ansible.html">Ansible</a></li>
|
||||
<li<%= sidebar_current("provisioning-ansible-local") %>><a href="/v2/provisioning/ansible_local.html">Ansible Local</a></li>
|
||||
<li<%= sidebar_current("provisioning-cfengine") %>><a href="/v2/provisioning/cfengine.html">CFEngine</a></li>
|
||||
<li<%= sidebar_current("provisioning-chefsolo") %>><a href="/v2/provisioning/chef_solo.html">Chef Solo</a></li>
|
||||
<li<%= sidebar_current("provisioning-chefzero") %>><a href="/v2/provisioning/chef_zero.html">Chef Zero</a></li>
|
||||
<li<%= sidebar_current("provisioning-chefclient") %>><a href="/v2/provisioning/chef_client.html">Chef Client</a></li>
|
||||
<li<%= sidebar_current("provisioning-chefapply") %>><a href="/v2/provisioning/chef_apply.html">Chef Apply</a></li>
|
||||
<li<%= sidebar_current("provisioning-docker") %>><a href="/v2/provisioning/docker.html">Docker</a></li>
|
||||
<li<%= sidebar_current("provisioning-puppetapply") %>><a href="/v2/provisioning/puppet_apply.html">Puppet Apply</a></li>
|
||||
<li<%= sidebar_current("provisioning-puppetagent") %>><a href="/v2/provisioning/puppet_agent.html">Puppet Agent</a></li>
|
||||
<li<%= sidebar_current("provisioning-salt") %>><a href="/v2/provisioning/salt.html">Salt</a></li>
|
||||
</ul>
|
||||
<% end %>
|
||||
|
||||
<li<%= sidebar_current("networking") %>><a href="/v2/networking/index.html">Networking</a></li>
|
||||
<% if sidebar_section == "networking" %>
|
||||
<ul class="sub unstyled">
|
||||
<li<%= sidebar_current("networking-basic") %>><a href="/v2/networking/basic_usage.html">Basic Usage</a></li>
|
||||
<li<%= sidebar_current("networking-fp") %>><a href="/v2/networking/forwarded_ports.html">Forwarded Ports</a></li>
|
||||
<li<%= sidebar_current("networking-private") %>><a href="/v2/networking/private_network.html">Private Network</a></li>
|
||||
<li<%= sidebar_current("networking-public") %>><a href="/v2/networking/public_network.html">Public Network</a></li>
|
||||
</ul>
|
||||
<% end %>
|
||||
|
||||
<li<%= sidebar_current("syncedfolder") %>><a href="/v2/synced-folders/index.html">Synced Folders</a></li>
|
||||
<% if sidebar_section == "syncedfolder" %>
|
||||
<ul class="sub unstyled">
|
||||
<li<%= sidebar_current("syncedfolder-basic") %>><a href="/v2/synced-folders/basic_usage.html">Basic Usage</a></li>
|
||||
<li<%= sidebar_current("syncedfolder-nfs") %>><a href="/v2/synced-folders/nfs.html">NFS</a></li>
|
||||
<li<%= sidebar_current("syncedfolder-rsync") %>><a href="/v2/synced-folders/rsync.html">RSync</a></li>
|
||||
<li<%= sidebar_current("syncedfolder-smb") %>><a href="/v2/synced-folders/smb.html">SMB</a></li>
|
||||
<li<%= sidebar_current("syncedfolder-virtualbox") %>><a href="/v2/synced-folders/virtualbox.html">VirtualBox</a></li>
|
||||
</ul>
|
||||
<% end %>
|
||||
|
||||
<li<%= sidebar_current("multimachine") %>><a href="/v2/multi-machine/index.html">Multi-Machine</a></li>
|
||||
|
||||
<li<%= sidebar_current("providers") %>><a href="/v2/providers/index.html">Providers</a></li>
|
||||
<% if sidebar_section == "providers" %>
|
||||
<ul class="sub unstyled">
|
||||
<li<%= sidebar_current("providers-installation") %>><a href="/v2/providers/installation.html">Installation</a></li>
|
||||
<li<%= sidebar_current("providers-basic-usage") %>><a href="/v2/providers/basic_usage.html">Basic Usage</a></li>
|
||||
<li<%= sidebar_current("providers-configuration") %>><a href="/v2/providers/configuration.html">Configuration</a></li>
|
||||
<li<%= sidebar_current("providers-default") %>><a href="/v2/providers/default.html">Default Provider</a></li>
|
||||
<li><a href="/v2/virtualbox/index.html">VirtualBox</a></li>
|
||||
<li><a href="/v2/vmware/index.html">VMware</a></li>
|
||||
<li><a href="/v2/docker/index.html">Docker</a></li>
|
||||
<li><a href="/v2/hyperv/index.html">Hyper-V</a></li>
|
||||
<li<%= sidebar_current("providers-custom") %>><a href="/v2/providers/custom.html">Custom Provider</a></li>
|
||||
</ul> <!-- /.sub -->
|
||||
<% end %>
|
||||
|
||||
<% if sidebar_section == "docker" %>
|
||||
<li<%= sidebar_current("docker") %>><a href="/v2/docker/index.html">Docker</a></li>
|
||||
<% if sidebar_section == "docker" %>
|
||||
<ul class="sub unstyled">
|
||||
<li<%= sidebar_current("docker-basics") %>><a href="/v2/docker/basics.html">Basic Usage</a></li>
|
||||
<li<%= sidebar_current("docker-commands") %>><a href="/v2/docker/commands.html">Commands</a></li>
|
||||
<li<%= sidebar_current("docker-boxes") %>><a href="/v2/docker/boxes.html">Boxes</a></li>
|
||||
<li<%= sidebar_current("docker-configuration") %>><a href="/v2/docker/configuration.html">Configuration</a></li>
|
||||
</ul>
|
||||
<% end %>
|
||||
<% end %>
|
||||
|
||||
<% if sidebar_section == "virtualbox" %>
|
||||
<li<%= sidebar_current("virtualbox") %>><a href="/v2/virtualbox/index.html">VirtualBox</a></li>
|
||||
<% if sidebar_section == "virtualbox" %>
|
||||
<ul class="sub unstyled">
|
||||
<li<%= sidebar_current("virtualbox-usage") %>><a href="/v2/virtualbox/usage.html">Usage</a></li>
|
||||
<li<%= sidebar_current("virtualbox-boxes") %>><a href="/v2/virtualbox/boxes.html">Creating a Base Box</a></li>
|
||||
<li<%= sidebar_current("virtualbox-configuration") %>><a href="/v2/virtualbox/configuration.html">Configuration</a></li>
|
||||
<li<%= sidebar_current("virtualbox-networking") %>><a href="/v2/virtualbox/networking.html">Networking</a></li>
|
||||
<li<%= sidebar_current("virtualbox-issues") %>><a href="/v2/virtualbox/common-issues.html">Common Issues</a></li>
|
||||
</ul>
|
||||
<% end %>
|
||||
<% end %>
|
||||
|
||||
<% if sidebar_section == "vmware" %>
|
||||
<li<%= sidebar_current("vmware") %>><a href="/v2/vmware/index.html">VMware</a></li>
|
||||
<% if sidebar_section == "vmware" %>
|
||||
<ul class="sub unstyled">
|
||||
<li<%= sidebar_current("vmware-installation") %>><a href="/v2/vmware/installation.html">Installation</a></li>
|
||||
<li<%= sidebar_current("vmware-usage") %>><a href="/v2/vmware/usage.html">Usage</a></li>
|
||||
<li<%= sidebar_current("vmware-boxes") %>><a href="/v2/vmware/boxes.html">Boxes</a></li>
|
||||
<li<%= sidebar_current("vmware-configuration") %>><a href="/v2/vmware/configuration.html">Configuration</a></li>
|
||||
<li<%= sidebar_current("vmware-known-issues") %>><a href="/v2/vmware/known-issues.html">Known Issues</a></li>
|
||||
<li<%= sidebar_current("vmware-kernel-upgrade") %>><a href="/v2/vmware/kernel-upgrade.html">Kernel Upgrade</a></li>
|
||||
</ul>
|
||||
<% end %>
|
||||
<% end %>
|
||||
|
||||
<% if sidebar_section == "hyperv" %>
|
||||
<li<%= sidebar_current("hyperv") %>><a href="/v2/hyperv/index.html">Hyper-V</a></li>
|
||||
<% if sidebar_section == "hyperv" %>
|
||||
<ul class="sub unstyled">
|
||||
<li<%= sidebar_current("hyperv-usage") %>><a href="/v2/hyperv/usage.html">Usage</a></li>
|
||||
<li<%= sidebar_current("hyperv-boxes") %>><a href="/v2/hyperv/boxes.html">Creating a Base Box</a></li>
|
||||
<li<%= sidebar_current("hyperv-configuration") %>><a href="/v2/hyperv/configuration.html">Configuration</a></li>
|
||||
<li<%= sidebar_current("hyperv-limitations") %>><a href="/v2/hyperv/limitations.html">Limitations</a></li>
|
||||
</ul>
|
||||
<% end %>
|
||||
<% end %>
|
||||
|
||||
<li<%= sidebar_current("plugins") %>><a href="/v2/plugins/index.html">Plugins</a></li>
|
||||
<% if sidebar_section == "plugins" %>
|
||||
<ul class="sub unstyled">
|
||||
<li<%= sidebar_current("plugins-usage") %>><a href="/v2/plugins/usage.html">Usage</a></li>
|
||||
<li<%= sidebar_current("plugins-development-basics") %>><a href="/v2/plugins/development-basics.html">Plugin Development Basics</a></li>
|
||||
<li<%= sidebar_current("plugins-action-hooks") %>><a href="/v2/plugins/action-hooks.html">Action Hooks</a></li>
|
||||
<li<%= sidebar_current("plugins-commands") %>><a href="/v2/plugins/commands.html">Commands</a></li>
|
||||
<li<%= sidebar_current("plugins-configuration") %>><a href="/v2/plugins/configuration.html">Configuration</a></li>
|
||||
<li<%= sidebar_current("plugins-guests") %>><a href="/v2/plugins/guests.html">Guests</a></li>
|
||||
<li<%= sidebar_current("plugins-guestcapabilities") %>><a href="/v2/plugins/guest-capabilities.html">Guest Capabilities</a></li>
|
||||
<li<%= sidebar_current("plugins-hosts") %>><a href="/v2/plugins/hosts.html">Hosts</a></li>
|
||||
<li<%= sidebar_current("plugins-hostcapabilities") %>><a href="/v2/plugins/host-capabilities.html">Host Capabilities</a></li>
|
||||
<li<%= sidebar_current("plugins-providers") %>><a href="/v2/plugins/providers.html">Providers</a></li>
|
||||
<li<%= sidebar_current("plugins-provisioners") %>><a href="/v2/plugins/provisioners.html">Provisioners</a></li>
|
||||
<li<%= sidebar_current("plugins-packaging") %>><a href="/v2/plugins/packaging.html">Packaging & Distribution</a></li>
|
||||
</ul>
|
||||
<% end %>
|
||||
|
||||
<li<%= sidebar_current("push") %>><a href="/v2/push/index.html">Push</a></li>
|
||||
|
||||
<% if sidebar_section == "push" %>
|
||||
<ul class="sub unstyled">
|
||||
<li<%= sidebar_current("push-atlas") %>><a href="/v2/push/atlas.html">Atlas</a></li>
|
||||
<li<%= sidebar_current("push-ftp") %>><a href="/v2/push/ftp.html">FTP / SFTP</a></li>
|
||||
<li<%= sidebar_current("push-heroku") %>><a href="/v2/push/heroku.html">Heroku</a></li>
|
||||
<li<%= sidebar_current("push-local-exec") %>><a href="/v2/push/local-exec.html">Local Exec</a></li>
|
||||
</ul>
|
||||
<% end %>
|
||||
|
||||
<li<%= sidebar_current("other") %>><a href="/v2/other/index.html">Other</a></li>
|
||||
|
||||
<% if sidebar_section == "other" %>
|
||||
<ul class="sub unstyled">
|
||||
<li<%= sidebar_current("other-debugging") %>><a href="/v2/other/debugging.html">Debugging</a></li>
|
||||
<li<%= sidebar_current("other-envvars") %>><a href="/v2/other/environmental-variables.html">Environmental Variables</a></li>
|
||||
</ul>
|
||||
<% end %>
|
||||
</ul>
|
||||
</aside> <!-- /.sidebar -->
|
||||
</div> <!-- /.sidebar -->
|
||||
|
||||
<div class="page-contents span9">
|
||||
<div class="page-background"></div>
|
||||
|
||||
<!-- start page content -->
|
||||
<div class="row">
|
||||
<div class="span8 offset1">
|
||||
<%= yield %>
|
||||
</div> <!-- /.span8 -->
|
||||
</div> <!-- /.row -->
|
||||
</div> <!-- /.page-contents -->
|
||||
</div> <!-- /.row -->
|
||||
</div> <!-- /.container -->
|
||||
</div> <!-- /.page -->
|
||||
|
||||
<!-- footer -->
|
||||
<footer>
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="span12">
|
||||
|
||||
<% relative_path = current_page.path.match(/.*\//).to_s
|
||||
file = current_page.source_file.split("/").last
|
||||
github_link = "https://github.com/mitchellh/vagrant/blob/master/website/docs/source/#{relative_path}#{file}"
|
||||
%>
|
||||
<div class="edit-page-link">
|
||||
<a href="<%= github_link %>">Edit this page</a>
|
||||
</div>
|
||||
|
||||
<ul class="unstyled footer-nav">
|
||||
<li><a href="https://docs.vagrantup.com/">Documentation</a></li>
|
||||
<li><a href="https://www.vagrantup.com/about">About</a></li>
|
||||
<li><a href="https://www.vagrantup.com/support">Support</a></li>
|
||||
<a href="https://www.vagrantup.com/downloads">
|
||||
<li class="button inline-button">Download</li>
|
||||
</a>
|
||||
</ul>
|
||||
|
||||
<ul class="unstyled logos">
|
||||
<a href="https://www.vagrantup.com">
|
||||
<li class="vagrant-logo-monochrome"></li>
|
||||
</a>
|
||||
<li><span>by</span></li>
|
||||
<a href="https://www.hashicorp.com">
|
||||
<li class="hashi-logo-monochrome "></li>
|
||||
</a>
|
||||
</ul> <!-- /span -->
|
||||
|
||||
</div> <!-- /span -->
|
||||
</div> <!-- /row -->
|
||||
|
||||
<div class="row">
|
||||
<h6 class="legal">
|
||||
Copyright © <%= Time.now.year %> HashiCorp
|
||||
</h6>
|
||||
</div> <!-- row -->
|
||||
</div> <!-- container -->
|
||||
</footer>
|
||||
|
||||
<!-- close .wrapper -->
|
||||
</div>
|
||||
|
||||
<%= javascript_include_tag "lib/Base" %>
|
||||
<%= javascript_include_tag "Sidebar" %>
|
||||
|
||||
<!-- load scripts -->
|
||||
<!-- load full-width image into any div with class="big-background -->
|
||||
<script>
|
||||
$(".big-background").backstretch("assets/photos/full_width.jpg");
|
||||
|
||||
new Sidebar();
|
||||
</script>
|
||||
|
||||
<!-- Google analytics -->
|
||||
<script type="text/javascript">
|
||||
|
||||
var _gaq = _gaq || [];
|
||||
_gaq.push(['_setAccount', 'UA-15091924-1']);
|
||||
_gaq.push(['_trackPageview']);
|
||||
|
||||
(function() {
|
||||
var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
|
||||
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
|
||||
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
|
||||
})();
|
||||
|
||||
</script>
|
||||
|
||||
<!-- AdRoll -->
|
||||
<script type="text/javascript">
|
||||
adroll_adv_id = "6QAAFJDIWBG3DJBDRJ7BEX";
|
||||
adroll_pix_id = "PYT5HSNKNRDS7LMUR5B6YG";
|
||||
(function () {
|
||||
var oldonload = window.onload;
|
||||
window.onload = function(){
|
||||
__adroll_loaded=true;
|
||||
var scr = document.createElement("script");
|
||||
var host = (("https:" == document.location.protocol) ? "https://s.adroll.com" : "http://a.adroll.com");
|
||||
scr.setAttribute('async', 'true');
|
||||
scr.type = "text/javascript";
|
||||
scr.src = host + "/j/roundtrip.js";
|
||||
((document.getElementsByTagName('head') || [null])[0] ||
|
||||
document.getElementsByTagName('script')[0].parentNode).appendChild(scr);
|
||||
if(oldonload){oldonload()}};
|
||||
}());
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
|
@ -1,344 +0,0 @@
|
|||
html {
|
||||
font-size: 100%;
|
||||
-webkit-text-size-adjust: 100%;
|
||||
-ms-text-size-adjust: 100%;
|
||||
text-rendering: optimizeLegibility;
|
||||
-webkit-tap-highlight-color: transparent;
|
||||
|
||||
}
|
||||
body {
|
||||
font-family: @sans-serif-stack;
|
||||
font-size: @base-font-size;
|
||||
line-height: @base-line-height;
|
||||
color: @black;
|
||||
background-color: @white;
|
||||
letter-spacing: 2px;
|
||||
.museo-sans-regular;
|
||||
|
||||
}
|
||||
.wrapper {
|
||||
margin-top: 80px;
|
||||
|
||||
}
|
||||
.container {
|
||||
z-index: 999;
|
||||
//keep content on top
|
||||
position: relative;
|
||||
|
||||
}
|
||||
h1,
|
||||
h2,
|
||||
h3,
|
||||
h4,
|
||||
h5,
|
||||
h6 {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
color: inherit;
|
||||
text-rendering: optimizelegibility;
|
||||
.museo-sans-bold;
|
||||
|
||||
}
|
||||
h1 {
|
||||
@font-size: 70px;
|
||||
font-size: @font-size;
|
||||
line-height: 80px;
|
||||
letter-spacing: 3px;
|
||||
|
||||
span {
|
||||
font-size: @headline-span-size;
|
||||
display: block;
|
||||
|
||||
}
|
||||
&.all-caps {
|
||||
text-transform: uppercase;
|
||||
text-align: center;
|
||||
font-size: 40px;
|
||||
}
|
||||
|
||||
}
|
||||
h2 {
|
||||
@font-size: 30px;
|
||||
font-size: @font-size;
|
||||
line-height: 35px;
|
||||
|
||||
}
|
||||
h3 {
|
||||
@font-size: 30px;
|
||||
font-size: @font-size;
|
||||
line-height: @font-size;
|
||||
|
||||
}
|
||||
h4 {
|
||||
@font-size: 24px;
|
||||
font-size: @font-size;
|
||||
line-height: @font-size;
|
||||
|
||||
}
|
||||
h5 {
|
||||
@font-size: 20px;
|
||||
font-size: @font-size;
|
||||
line-height: @font-size;
|
||||
|
||||
}
|
||||
h6 {
|
||||
@font-size: 12px;
|
||||
font-size: @font-size;
|
||||
line-height: @font-size;
|
||||
|
||||
}
|
||||
p,
|
||||
td {
|
||||
letter-spacing: normal;
|
||||
line-height: 32px;
|
||||
|
||||
a {
|
||||
color: @docs-blue;
|
||||
text-decoration: none;
|
||||
border-bottom: 1px solid @docs-blue;
|
||||
|
||||
&:hover {
|
||||
text-decoration: none;
|
||||
color: darken(@blue, 10%);
|
||||
border-bottom: 1px solid darken(@blue, 10%);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
a {
|
||||
color: inherit;
|
||||
text-decoration: none;
|
||||
|
||||
&:hover {
|
||||
text-decoration: none;
|
||||
color: @purple;
|
||||
.animate-text-color;
|
||||
|
||||
}
|
||||
&:active {
|
||||
color: @blue;
|
||||
|
||||
}
|
||||
&:visited {
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
ul {
|
||||
|
||||
|
||||
}
|
||||
li {
|
||||
line-height: @base-line-height;
|
||||
|
||||
}
|
||||
blockquote {
|
||||
border: none;
|
||||
margin: 60px;
|
||||
|
||||
p {
|
||||
// blockquote p
|
||||
font-size: @base-font-size * 2;
|
||||
line-height: @base-line-height * 2;
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
}
|
||||
strong {
|
||||
.museo-sans-bold;
|
||||
|
||||
}
|
||||
em {
|
||||
.museo-sans-regular-italic;
|
||||
|
||||
}
|
||||
br {
|
||||
display: block;
|
||||
line-height: (@baseline * 2);
|
||||
|
||||
}
|
||||
pre,
|
||||
code {
|
||||
font-family: @mono-stack;
|
||||
|
||||
}
|
||||
code {
|
||||
font-size: inherit;
|
||||
|
||||
}
|
||||
pre {
|
||||
border: none;
|
||||
font-size: @base-font-size;
|
||||
background: @black;
|
||||
color: @white;
|
||||
padding: 20px;
|
||||
line-height: @base-line-height;
|
||||
margin-top: 20px;
|
||||
margin-bottom: 20px;
|
||||
|
||||
span {
|
||||
color: @code-highlight-text;
|
||||
}
|
||||
|
||||
}
|
||||
hr {
|
||||
|
||||
|
||||
}
|
||||
.vr {
|
||||
width: 2px;
|
||||
height: 100%;
|
||||
|
||||
}
|
||||
form {
|
||||
|
||||
|
||||
}
|
||||
input {
|
||||
letter-spacing: 3px;
|
||||
|
||||
&:focus {
|
||||
outline: none;
|
||||
}
|
||||
}
|
||||
::-webkit-input-placeholder {
|
||||
|
||||
overflow: visible;
|
||||
padding-top: 3px;
|
||||
color: @light-gray-text;
|
||||
|
||||
}
|
||||
input:-moz-placeholder {
|
||||
overflow: visible;
|
||||
padding-top: 3px;
|
||||
color: @light-gray-text;
|
||||
|
||||
}
|
||||
/* type and styles */
|
||||
.meta,
|
||||
.legal,
|
||||
.date {
|
||||
color: @medium-gray-text;
|
||||
line-height: @base-line-height;
|
||||
.museo-sans-regular;
|
||||
|
||||
}
|
||||
.date {
|
||||
text-transform: uppercase;
|
||||
|
||||
}
|
||||
.button {
|
||||
color: @white;
|
||||
text-align: center;
|
||||
background-color: @primary-button-color;
|
||||
display: block;
|
||||
padding: 15px 0;
|
||||
margin-top: 20px !important;
|
||||
text-transform: uppercase;
|
||||
font-size: 25px;
|
||||
letter-spacing: 5px;
|
||||
.museo-sans-light;
|
||||
.rounded;
|
||||
.hover;
|
||||
|
||||
&.inline-button {
|
||||
background-color: @vagrant-blue;
|
||||
padding: 5px 20px;
|
||||
color: @white !important;
|
||||
font-size: 15px;
|
||||
letter-spacing: 1px;
|
||||
.rounded;
|
||||
|
||||
a,
|
||||
a:hover {
|
||||
color: @white;
|
||||
}
|
||||
&.next-button,
|
||||
&.prev-button {
|
||||
max-width: 33%;
|
||||
white-space: nowrap;
|
||||
}
|
||||
&.next-button {
|
||||
float: right;
|
||||
&:before {
|
||||
content: "Next:";
|
||||
display: inline-block;
|
||||
padding-right: 3px;
|
||||
}
|
||||
&:after {
|
||||
content: "\00BB";
|
||||
display: inline-block;
|
||||
padding-left: 3px;
|
||||
}
|
||||
|
||||
}
|
||||
&.prev-button {
|
||||
float: left;
|
||||
&:before {
|
||||
content: "\00AB\0020Previous: ";
|
||||
display: inline-block;
|
||||
padding-right: 3px;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
&.white-button {
|
||||
background: fade(@white, 20%);
|
||||
|
||||
&:hover {
|
||||
background: fade(@white, 30%);
|
||||
}
|
||||
|
||||
}
|
||||
&.secondary-button {
|
||||
background: @light-gray;
|
||||
|
||||
&:hover {
|
||||
background: @purple;
|
||||
}
|
||||
|
||||
}
|
||||
&.with-carat span {
|
||||
margin-right: -10px;
|
||||
//recenter text if there's a carat after text
|
||||
|
||||
}
|
||||
span {
|
||||
// button text styles can go here
|
||||
|
||||
}
|
||||
&:hover {
|
||||
background-color: @purple;
|
||||
.animate-background-color;
|
||||
|
||||
}
|
||||
&:active {
|
||||
|
||||
|
||||
}
|
||||
&.disabled {
|
||||
background-color: @light-gray-background;
|
||||
}
|
||||
|
||||
}
|
||||
a.read-more {
|
||||
color: @blue;
|
||||
|
||||
&:hover {
|
||||
color: darken(@blue, 10%);
|
||||
}
|
||||
|
||||
}
|
||||
// misc. styles
|
||||
.loading {
|
||||
text-align: center;
|
||||
font-size: @base-font-size;
|
||||
text-transform: uppercase;
|
||||
letter-spacing: 5px;
|
||||
color: @medium-gray-text;
|
||||
padding: 30px 0 20px;
|
||||
|
||||
}
|
||||
.pinned {
|
||||
position: fixed;
|
||||
}
|
|
@ -1,80 +0,0 @@
|
|||
/* compontents */
|
||||
|
||||
table.mr-types {
|
||||
th.mr-type {
|
||||
width: 200px;
|
||||
}
|
||||
}
|
||||
|
||||
//search
|
||||
.search-bar {
|
||||
border-bottom: 1px solid fade(@black, 10%);
|
||||
position: relative;
|
||||
z-index: 99999; //keep search above content
|
||||
margin-bottom: -1px;
|
||||
|
||||
.search-icon {
|
||||
height: 60px;
|
||||
width: 40px;
|
||||
background: url(/images/search_icon.png) no-repeat 0 center;
|
||||
}
|
||||
|
||||
.search {
|
||||
//.debug;
|
||||
background: @white;
|
||||
height: 60px;
|
||||
|
||||
input,
|
||||
button,
|
||||
form {
|
||||
.kill-effects;
|
||||
border: none;
|
||||
height: 60px;
|
||||
font-size: 20px;
|
||||
.museo-sans-light-italic;
|
||||
}
|
||||
|
||||
input {
|
||||
margin:0;
|
||||
padding: 0 0 0 0;
|
||||
font-size: 20px;
|
||||
|
||||
&:focus {
|
||||
|
||||
} //focus
|
||||
}
|
||||
|
||||
button {
|
||||
padding: 0 20px;
|
||||
text-transform: uppercase;
|
||||
}
|
||||
|
||||
|
||||
} //search
|
||||
} //search bar
|
||||
|
||||
//pagination
|
||||
.pagination {
|
||||
height: 80px;
|
||||
background: @gray-background;
|
||||
padding: 0;
|
||||
margin:0 auto;
|
||||
text-transform: uppercase;
|
||||
color: @blue-text;
|
||||
z-index: 999;
|
||||
position:relative;
|
||||
|
||||
a.previous,
|
||||
a.next {
|
||||
padding: 25px 0;
|
||||
}
|
||||
|
||||
a.previous {
|
||||
margin-left: 20px;
|
||||
}
|
||||
|
||||
a.next {
|
||||
margin-right: 20px;
|
||||
}
|
||||
|
||||
}
|
|
@ -1,117 +0,0 @@
|
|||
// footer
|
||||
|
||||
footer {
|
||||
padding: 80px 0;
|
||||
margin-top: 20px;
|
||||
background: @black url(/images/footer_background.png) center center;
|
||||
text-align: center;
|
||||
color: @white;
|
||||
z-index: 999;
|
||||
position: relative; //z-index needs position!
|
||||
|
||||
ul.footer-nav {
|
||||
color: @blue;
|
||||
text-transform: uppercase;
|
||||
font-size: 15px;
|
||||
.museo-sans-light;
|
||||
|
||||
li {
|
||||
display: inline-block;
|
||||
margin: 0 10px;
|
||||
|
||||
a {
|
||||
color: @blue;
|
||||
|
||||
&:hover {
|
||||
color: @purple;
|
||||
} //li a:hover
|
||||
} // li a
|
||||
} //li
|
||||
|
||||
} //ul
|
||||
|
||||
|
||||
ul.logos {
|
||||
margin: (@baseline * 2) 0;
|
||||
|
||||
|
||||
li {
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
span {
|
||||
color: @dark-gray-text;
|
||||
.museo-sans-light;
|
||||
text-transform: uppercase;
|
||||
font-size: 40px;
|
||||
margin: 0 10px;
|
||||
}
|
||||
|
||||
.vagrant-logo-monochrome,
|
||||
.hashi-logo-monochrome {
|
||||
|
||||
&:hover {
|
||||
-khtml-opacity: .85;
|
||||
-moz-opacity: .85;
|
||||
opacity: .85;
|
||||
filter: alpha(opacity=85);
|
||||
.animate-opacity;
|
||||
}
|
||||
}
|
||||
|
||||
.vagrant-logo-monochrome {
|
||||
height: 80px;
|
||||
width: 80px;
|
||||
background: url(/images/footer_vagrant_logo.png) no-repeat center center;
|
||||
margin-bottom: -25px;
|
||||
|
||||
}
|
||||
|
||||
.hashi-logo-monochrome {
|
||||
height: 80px;
|
||||
width: 80px;
|
||||
background: url(/images/footer_hashi_logo.png) no-repeat center center;
|
||||
margin-bottom: -25px;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
a.contact-link {
|
||||
color: @dark-gray-text;
|
||||
line-height: @base-line-height * 2;
|
||||
font-size: 30px;
|
||||
|
||||
&:hover {
|
||||
color: @white;
|
||||
}
|
||||
|
||||
&:visited {
|
||||
color: inherit;
|
||||
}
|
||||
|
||||
&:active {
|
||||
color: @blue;
|
||||
}
|
||||
} //contact link
|
||||
|
||||
} //footer
|
||||
|
||||
.edit-page-link{
|
||||
position: absolute;
|
||||
top: -120px;
|
||||
right: 15px;
|
||||
z-index: 9999;
|
||||
|
||||
a{
|
||||
text-transform: uppercase;
|
||||
color: @black;
|
||||
font-size: 13px;
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 480px){
|
||||
.edit-page-link{
|
||||
top: -90px;
|
||||
}
|
||||
}
|
|
@ -1,166 +0,0 @@
|
|||
//
|
||||
// Header
|
||||
// - Project Specific
|
||||
// - edits should be made here
|
||||
// --------------------------------------------------
|
||||
|
||||
#header {
|
||||
width: 100%;
|
||||
// font-size: 15px;
|
||||
text-transform: uppercase;
|
||||
height: @header-height;
|
||||
position: fixed;
|
||||
top: 0;
|
||||
left: 0;
|
||||
background-color: @white;
|
||||
z-index: 1001;
|
||||
|
||||
&.docs {
|
||||
background: @gray-background;
|
||||
}
|
||||
|
||||
.navbar-toggle{
|
||||
margin-right: 15px;
|
||||
}
|
||||
|
||||
.navbar-brand {
|
||||
float: left;
|
||||
.logo{
|
||||
padding-left: 36px;
|
||||
font-size: 0;
|
||||
line-height: 77px;
|
||||
width: @project-logo-width;
|
||||
padding-left: 0;
|
||||
.img-retina('/images/logo-header-docs.png', @project-logo-width, @project-logo-height, no-repeat);
|
||||
background-position: 0 center;
|
||||
|
||||
&:hover{
|
||||
opacity: .6;
|
||||
}
|
||||
}
|
||||
|
||||
.by-hashicorp{
|
||||
color: @project-link-color;
|
||||
|
||||
svg{
|
||||
path,
|
||||
polygon,
|
||||
rect{
|
||||
fill: @project-link-color;
|
||||
}
|
||||
}
|
||||
|
||||
&:hover{
|
||||
color: black;
|
||||
svg{
|
||||
path,
|
||||
polygon,
|
||||
rect{
|
||||
fill: black;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.svg-wrap{
|
||||
font-weight: 400;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.buttons{
|
||||
display: none;
|
||||
margin-top: 2px; //baseline everything
|
||||
|
||||
.navigation-links{
|
||||
float: right;
|
||||
}
|
||||
}
|
||||
|
||||
.main-links,
|
||||
.external-links {
|
||||
li > a {
|
||||
.project-a-style();
|
||||
}
|
||||
}
|
||||
|
||||
.main-links {
|
||||
margin-right: 0;
|
||||
|
||||
li {
|
||||
&.pill{
|
||||
background-color: #48b4fb;
|
||||
border-radius: 25px;
|
||||
padding: 5px 2px;
|
||||
line-height: 26px;
|
||||
margin-top: 22px;
|
||||
a{
|
||||
color: #FFF;
|
||||
line-height: 24px;
|
||||
}
|
||||
}
|
||||
|
||||
> a {
|
||||
color: @project-link-color;
|
||||
|
||||
&:hover{
|
||||
color: @black;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@media (min-width: 768px) {
|
||||
.navbar-toggle{
|
||||
display: none;
|
||||
}
|
||||
|
||||
#header{
|
||||
.buttons{
|
||||
display: block;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 768px) {
|
||||
.navbar-header{
|
||||
margin-left: 15px;
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 480px) {
|
||||
#header {
|
||||
height: auto;
|
||||
|
||||
.navbar-toggle{
|
||||
padding-top: 7px;
|
||||
}
|
||||
|
||||
.by-hashicorp{
|
||||
margin-top: 2px;
|
||||
}
|
||||
|
||||
.navbar-brand {
|
||||
.logo{
|
||||
width: @project-logo-width * .75;
|
||||
background-size: (@project-logo-width * .75) (@project-logo-height * .75);
|
||||
//background-position: 0 45%;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@media (max-width: 320px) {
|
||||
#header {
|
||||
.by-hashicorp{
|
||||
margin-left: -2px;
|
||||
}
|
||||
|
||||
.navbar-brand {
|
||||
.logo{
|
||||
width: 40px;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,459 +0,0 @@
|
|||
@media (max-width: 480px) {
|
||||
|
||||
nav {
|
||||
position: absolute !important;
|
||||
height: auto;
|
||||
font-size: 13px;
|
||||
padding: 10px 0;
|
||||
.drop-shadow;
|
||||
|
||||
a.vagrant-docs-logo {
|
||||
background: url(/images/logo_docs_small.png) no-repeat center center !important;
|
||||
display: inline-block !important;
|
||||
float: none !important;
|
||||
position: relative;
|
||||
width: 200px !important;
|
||||
left: 50%;
|
||||
padding: 10px 0;
|
||||
.reset;
|
||||
margin-left: -100px !important;
|
||||
}
|
||||
|
||||
a.vagrant-logo {
|
||||
background: url(/images/logo_vagrant.png) no-repeat center center !important;
|
||||
display: inline-block !important;
|
||||
float: none !important;
|
||||
position: relative;
|
||||
width: 80% !important;
|
||||
left: 50%;
|
||||
padding: 10px 0;
|
||||
.reset;
|
||||
margin-left: -130px !important;
|
||||
}
|
||||
|
||||
ul {
|
||||
position: relative;
|
||||
margin: 0 auto;
|
||||
width: 100%;
|
||||
text-align: center;
|
||||
padding: 10px 0 0;
|
||||
}
|
||||
}
|
||||
|
||||
a.brand {
|
||||
display: none !important;
|
||||
position: static !important;
|
||||
width: 200px !important;
|
||||
margin: 0 0 0 0 !important;
|
||||
background-position: center center !important;
|
||||
}
|
||||
|
||||
.search {
|
||||
input {
|
||||
font-size: 20px !important;
|
||||
padding: 0 !important;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
::-webkit-input-placeholder {
|
||||
overflow: visible;
|
||||
padding-top: 3px;
|
||||
font-size: 15px;
|
||||
}
|
||||
|
||||
input:-moz-placeholder {
|
||||
overflow: visible;
|
||||
padding-top: 3px;
|
||||
font-size: 15px;
|
||||
}
|
||||
|
||||
.page {
|
||||
|
||||
.page-contents {
|
||||
|
||||
} //page contents
|
||||
|
||||
&.home {
|
||||
.hero {
|
||||
background-size: 300%;
|
||||
background-position: center 0;
|
||||
height: 400px;
|
||||
|
||||
.hero-content {
|
||||
margin-top: 80px;
|
||||
}
|
||||
|
||||
h1 {
|
||||
font-size: 40px !important;
|
||||
line-height: 40px !important;
|
||||
margin-bottom: 30px !important;
|
||||
letter-spacing: 1px;
|
||||
margin-bottom: ;
|
||||
} //h1
|
||||
|
||||
h2 {
|
||||
font-size: 20px !important;
|
||||
line-height: 25px;
|
||||
} //h2
|
||||
} //hero
|
||||
} //home
|
||||
|
||||
.why-vagrant {
|
||||
padding: 40px 0 !important;
|
||||
|
||||
hgroup {
|
||||
margin: 40px 0 !important;
|
||||
|
||||
:last-child {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
} //hgroup
|
||||
|
||||
h1 {
|
||||
font-size: 30px !important;
|
||||
line-height: 30px !important;
|
||||
}
|
||||
|
||||
h3 {
|
||||
font-size: 40px !important;
|
||||
line-height: 40px !important;
|
||||
margin-bottom: 20px !important;
|
||||
}
|
||||
|
||||
h4 {
|
||||
.hyphenate;
|
||||
}
|
||||
} //why-vagrant
|
||||
|
||||
.get-started {
|
||||
padding: 40px 0 !important;
|
||||
|
||||
h1 {
|
||||
width: 60%;
|
||||
font-size: 30px !important;
|
||||
line-height: 30px !important;
|
||||
}
|
||||
|
||||
pre {
|
||||
margin: 30px auto 30px !important;
|
||||
}
|
||||
} //get-started
|
||||
|
||||
.customers {
|
||||
padding: 40px 0 !important;
|
||||
|
||||
h1 {
|
||||
font-size: 30px !important;
|
||||
line-height: 30px !important;
|
||||
}
|
||||
} //customers
|
||||
|
||||
&.inner {
|
||||
padding-top: 30px;
|
||||
|
||||
.page-contents {
|
||||
padding: 40px 0;
|
||||
}
|
||||
} //inner
|
||||
|
||||
&.docs {
|
||||
|
||||
.page-contents {
|
||||
padding: 40px 0;
|
||||
}
|
||||
|
||||
h1 {
|
||||
font-size: 40px;
|
||||
line-height: 40px;
|
||||
}
|
||||
|
||||
h2 {
|
||||
font-size: 25px;
|
||||
line-height: 30px;
|
||||
}
|
||||
|
||||
h2.steps img {
|
||||
display: block;
|
||||
margin-bottom: 20px;
|
||||
}
|
||||
} //docs
|
||||
|
||||
} //page
|
||||
|
||||
footer {
|
||||
padding: 40px 0 !important;
|
||||
background-size: 300%;
|
||||
background-position: center bottom;
|
||||
background-repeat: no-repeat;
|
||||
|
||||
ul.footer-nav {
|
||||
font-size: 13px;
|
||||
}
|
||||
}
|
||||
|
||||
.button {
|
||||
padding: 6px 0;
|
||||
font-size: 20px;
|
||||
letter-spacing: 3px;
|
||||
.museo-sans-regular;
|
||||
}
|
||||
|
||||
.search-bar {
|
||||
margin-top: 160px !important;
|
||||
}
|
||||
|
||||
.pagination {
|
||||
font-size: 15px;
|
||||
|
||||
}
|
||||
|
||||
footer {
|
||||
|
||||
a.contact-link {
|
||||
font-size: 20px;
|
||||
} // contact link
|
||||
}
|
||||
|
||||
} //mobile
|
||||
|
||||
@media (min-width: 768px) and (max-width: 979px) {
|
||||
|
||||
nav {
|
||||
|
||||
a.vagrant-logo {
|
||||
background: url(/images/logo_small.png) no-repeat 0 0 !important;
|
||||
width: 80px;
|
||||
}
|
||||
|
||||
ul {
|
||||
margin: 25px 20px;
|
||||
}
|
||||
} // nav
|
||||
|
||||
.toggle {
|
||||
display: none !important;
|
||||
}
|
||||
|
||||
.sidebar-nav ul {
|
||||
display: block !important;
|
||||
}
|
||||
|
||||
} // 768 < x < 979
|
||||
|
||||
@media (min-width: 1200px) {
|
||||
|
||||
} // > 1200
|
||||
|
||||
@media (max-width: 979px) {
|
||||
|
||||
.vagrant-docs-logo {
|
||||
background: url(/images/logo_docs_small.png) no-repeat 0 0 !important;
|
||||
width: 165px !important;
|
||||
}
|
||||
|
||||
} // < 979
|
||||
|
||||
|
||||
@media (min-width: 980px) {
|
||||
|
||||
} // > 980
|
||||
|
||||
|
||||
@media (max-width: 767px) {
|
||||
|
||||
// these modules go full-width at smaller sizes
|
||||
.pagination,
|
||||
.hero,
|
||||
.why-vagrant,
|
||||
.get-started,
|
||||
.customers,
|
||||
footer {
|
||||
.full-width;
|
||||
}
|
||||
|
||||
nav {
|
||||
height: auto;
|
||||
font-size: 13px;
|
||||
padding: 10px 0;
|
||||
//.drop-shadow;
|
||||
|
||||
.vagrant-logo {
|
||||
display: inline-block !important;
|
||||
background-position: center center;
|
||||
float: none !important;
|
||||
position: relative;
|
||||
width: 350px !important;
|
||||
left: 50%;
|
||||
padding: 10px 0;
|
||||
.reset;
|
||||
margin-left: -175px !important;
|
||||
}
|
||||
|
||||
.vagrant-docs-logo {
|
||||
background: url(/images/logo_docs.png) no-repeat 0 0 !important;
|
||||
display: inline-block !important;
|
||||
background-position: center center;
|
||||
float: none !important;
|
||||
position: relative;
|
||||
width: 350px !important;
|
||||
left: 50%;
|
||||
padding: 10px 0;
|
||||
.reset;
|
||||
margin-left: -175px !important;
|
||||
}
|
||||
|
||||
ul {
|
||||
position: relative;
|
||||
margin: 0 auto;
|
||||
width: 100%;
|
||||
text-align: center;
|
||||
padding: 10px 0 0;
|
||||
|
||||
li:first-child {
|
||||
margin-left: 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
a.brand {
|
||||
display: none !important;
|
||||
position: static !important;
|
||||
width: 200px !important;
|
||||
margin: 0 0 0 0 !important;
|
||||
background-position: center center !important;
|
||||
}
|
||||
|
||||
.sidebar {
|
||||
|
||||
ul {
|
||||
margin-top: 0 !important;
|
||||
|
||||
li {
|
||||
display: block;
|
||||
text-indent: 20px;
|
||||
|
||||
&:hover,
|
||||
&:active {
|
||||
background-color: fade(@black, 5%);
|
||||
.animate-background-color;
|
||||
}
|
||||
} //li
|
||||
|
||||
ul.sub {
|
||||
|
||||
li {
|
||||
|
||||
}
|
||||
} //ul.sub
|
||||
} //ul
|
||||
|
||||
.docs & {
|
||||
.docs-bg-small;
|
||||
|
||||
ul {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.sidebar-nav {
|
||||
margin-right: -20px;
|
||||
margin-left: -20px;
|
||||
.docs-bg-small;
|
||||
} //docs sidebar-nav
|
||||
} // docs sidebar
|
||||
} //sidebar
|
||||
|
||||
.page {
|
||||
|
||||
.page-background {
|
||||
left: 0; //make it full-width to cover the gutters on small screens
|
||||
}
|
||||
|
||||
.page-contents {
|
||||
|
||||
}
|
||||
|
||||
&.home {
|
||||
|
||||
.hero {
|
||||
padding: 40px 0;
|
||||
}
|
||||
|
||||
h1,
|
||||
h4,
|
||||
pre,
|
||||
.customers-content, {
|
||||
max-width: 80% !important;
|
||||
margin: 0 auto;
|
||||
}
|
||||
|
||||
pre {
|
||||
padding: 20px 20px 0 !important;
|
||||
}
|
||||
|
||||
.customer-logos {
|
||||
margin-top: @baseline !important;
|
||||
}
|
||||
|
||||
} //home
|
||||
|
||||
&.inner {
|
||||
|
||||
.page-contents {
|
||||
|
||||
}
|
||||
|
||||
.sidebar {
|
||||
padding: 0;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.sidebar-nav {
|
||||
.inner-bg-small;
|
||||
margin-right: -20px;
|
||||
margin-left: -20px;
|
||||
|
||||
}
|
||||
|
||||
h1 {
|
||||
padding: 15px 0 15px;
|
||||
margin: 0 0 0 20px !important;
|
||||
}
|
||||
|
||||
ul {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
.button {
|
||||
width: 80%;
|
||||
}
|
||||
}
|
||||
|
||||
&.docs {
|
||||
background: transparent;
|
||||
} //docs
|
||||
} //page
|
||||
|
||||
.button {
|
||||
max-width: 300px;
|
||||
position: relative;
|
||||
//margin: 20px 0 20px 20px;
|
||||
}
|
||||
|
||||
.full-width {
|
||||
margin-right: -20px !important;
|
||||
margin-left: -20px ;
|
||||
}
|
||||
|
||||
} // < 767
|
||||
|
||||
|
||||
@media (max-width: 480px){
|
||||
#header{
|
||||
height: 60px;
|
||||
}
|
||||
|
||||
.wrapper{
|
||||
margin-top: 60px;
|
||||
}
|
||||
}
|
|
@ -1,200 +0,0 @@
|
|||
// styles and effects
|
||||
.round-corners {
|
||||
-moz-border-radius: 3px;
|
||||
-webkit-border-radius: 3px;
|
||||
-khtml-border-radius: 3px;
|
||||
border-radius: 3px;
|
||||
}
|
||||
|
||||
.rounded {
|
||||
-moz-border-radius: 50px;
|
||||
-webkit-border-radius: 50px;
|
||||
-khtml-border-radius: 50px;
|
||||
border-radius: 50px;
|
||||
}
|
||||
|
||||
.animate-background-color {
|
||||
transition: background-color .3s ease-in-out;
|
||||
-moz-transition: background-color .3s ease-in-out;
|
||||
-webkit-transition: background-color .3s ease-in-out;
|
||||
-o-transition: background-color .3s ease-in-out;
|
||||
}
|
||||
|
||||
.animate-text-color {
|
||||
transition: color .2s ease-in-out;
|
||||
-moz-transition: color .2s ease-in-out;
|
||||
-webkit-transition: color .2s ease-in-out;
|
||||
-o-transition: color .2s ease-in-out;
|
||||
}
|
||||
|
||||
.animate-opacity {
|
||||
transition: opacity .2s ease-in-out;
|
||||
-moz-transition: opacity .2s ease-in-out;
|
||||
-webkit-transition: opacity .2s ease-in-out;
|
||||
-o-transition: opacity .2s ease-in-out;
|
||||
}
|
||||
|
||||
.drop-shadow {
|
||||
-webkit-box-shadow: 0 1px 5px rgba(0, 0, 0, 0.1) !important;
|
||||
-moz-box-shadow: 0 1px 5px rgba(0, 0, 0, 0.1) !important;
|
||||
box-shadow: 0 1px 5px rgba(0, 0, 0, 0.1) !important;
|
||||
.animate-opacity;
|
||||
}
|
||||
|
||||
.hyphenate {
|
||||
-webkit-hyphens: auto;
|
||||
-moz-hyphens: auto;
|
||||
hyphens: auto;
|
||||
}
|
||||
|
||||
.uppercase {
|
||||
text-transform: uppercase;
|
||||
}
|
||||
|
||||
.padded {
|
||||
padding: (@baseline * 3) 0;
|
||||
}
|
||||
|
||||
.padded-medium {
|
||||
padding: (@baseline * 2) 0;
|
||||
}
|
||||
|
||||
.padded-small{
|
||||
padding: @baseline 0;
|
||||
}
|
||||
|
||||
.fixed-bg {
|
||||
position: fixed;
|
||||
top: 0;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
z-index: -5; //keep it in the back
|
||||
will-change: transform;
|
||||
}
|
||||
|
||||
.transition(@transition) {
|
||||
-webkit-transition: @transition;
|
||||
-o-transition: @transition;
|
||||
transition: @transition;
|
||||
}
|
||||
|
||||
.translate3d (@x, @y: 0, @z: 0) {
|
||||
-webkit-transform: translate3d(@x, @y, @z);
|
||||
-moz-transform: translate3d(@x, @y, @z);
|
||||
-ms-transform: translate3d(@x, @y, @z);
|
||||
-o-transform: translate3d(@x, @y, @z);
|
||||
}
|
||||
|
||||
.clearfix{
|
||||
zoom:1;
|
||||
&:before, &:after{ content:""; display:table; }
|
||||
&:after{ clear: both; }
|
||||
}
|
||||
|
||||
.inner-bg-large {
|
||||
background-image: #c1b4d5; /* Old browsers */
|
||||
background-image: url(/images/sidebar_background_inner.png), -moz-linear-gradient(45deg, #c1b4d5 0%, #98d3f8 100%); /* FF3.6+ */
|
||||
background-image: url(/images/sidebar_background_inner.png), -webkit-gradient(linear, left bottom, right top, color-stop(0%,#c1b4d5), color-stop(100%,#98d3f8)); /* Chrome,Safari4+ */
|
||||
background-image: url(/images/sidebar_background_inner.png), -webkit-linear-gradient(45deg, #c1b4d5 0%,#98d3f8 100%); /* Chrome10+,Safari5.1+ */
|
||||
background-image: url(/images/sidebar_background_inner.png), -o-linear-gradient(45deg, #c1b4d5 0%,#98d3f8 100%); /* Opera 11.10+ */
|
||||
background-image: url(/images/sidebar_background_inner.png), -ms-linear-gradient(45deg, #c1b4d5 0%,#98d3f8 100%); /* IE10+ */
|
||||
background-image: url(/images/sidebar_background_inner.png), linear-gradient(45deg, #c1b4d5 0%,#98d3f8 100%); /* W3C */
|
||||
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#c1b4d5', endColorstr='#98d3f8',GradientType=1 ); /* IE6-8 fallback on horizontal gradient */
|
||||
background-repeat: no-repeat;
|
||||
background-position: 0 0;
|
||||
}
|
||||
|
||||
.inner-bg-small {
|
||||
background: #c1b4d5; /* Old browsers */
|
||||
background: -moz-linear-gradient(45deg, #c1b4d5 0%, #98d3f8 100%); /* FF3.6+ */
|
||||
background: -webkit-gradient(linear, left bottom, right top, color-stop(0%,#c1b4d5), color-stop(100%,#98d3f8)); /* Chrome,Safari4+ */
|
||||
background: -webkit-linear-gradient(45deg, #c1b4d5 0%,#98d3f8 100%); /* Chrome10+,Safari5.1+ */
|
||||
background: -o-linear-gradient(45deg, #c1b4d5 0%,#98d3f8 100%); /* Opera 11.10+ */
|
||||
background: -ms-linear-gradient(45deg, #c1b4d5 0%,#98d3f8 100%); /* IE10+ */
|
||||
background: linear-gradient(45deg, #c1b4d5 0%,#98d3f8 100%); /* W3C */
|
||||
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#c1b4d5', endColorstr='#98d3f8',GradientType=1 ); /* IE6-8 fallback on horizontal gradient */
|
||||
}
|
||||
|
||||
|
||||
.docs-bg-large {
|
||||
background-image: url(/images/sidebar_background_docs.png), #362d6c; /* Old browsers */
|
||||
background-image: url(/images/sidebar_background_docs.png), -moz-linear-gradient(45deg, #362d6c 0%, #0c5593 100%); /* FF3.6+ */
|
||||
background-image: url(/images/sidebar_background_docs.png), -webkit-gradient(linear, left bottom, right top, color-stop(0%,#362d6c), color-stop(100%,#0c5593)); /* Chrome,Safari4+ */
|
||||
background-image: url(/images/sidebar_background_docs.png), -webkit-linear-gradient(45deg, #362d6c 0%,#0c5593 100%); /* Chrome10+,Safari5.1+ */
|
||||
background-image: url(/images/sidebar_background_docs.png), -o-linear-gradient(45deg, #362d6c 0%,#0c5593 100%); /* Opera 11.10+ */
|
||||
background-image: url(/images/sidebar_background_docs.png), -ms-linear-gradient(45deg, #362d6c 0%,#0c5593 100%); /* IE10+ */
|
||||
background-image: url(/images/sidebar_background_docs.png), linear-gradient(45deg, #362d6c 0%,#0c5593 100%); /* W3C */
|
||||
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#362d6c', endColorstr='#0c5593',GradientType=1 ); /* IE6-8 fallback on horizontal gradient */
|
||||
background-repeat: no-repeat;
|
||||
}
|
||||
|
||||
|
||||
.docs-bg-small {
|
||||
background: #362d6c; /* Old browsers */
|
||||
background: -moz-linear-gradient(45deg, #362d6c 0%, #0c5593 100%); /* FF3.6+ */
|
||||
background: -webkit-gradient(linear, left bottom, right top, color-stop(0%,#362d6c), color-stop(100%,#0c5593)); /* Chrome,Safari4+ */
|
||||
background: -webkit-linear-gradient(45deg, #362d6c 0%,#0c5593 100%); /* Chrome10+,Safari5.1+ */
|
||||
background: -o-linear-gradient(45deg, #362d6c 0%,#0c5593 100%); /* Opera 11.10+ */
|
||||
background: -ms-linear-gradient(45deg, #362d6c 0%,#0c5593 100%); /* IE10+ */
|
||||
background: linear-gradient(45deg, #362d6c 0%,#0c5593 100%); /* W3C */
|
||||
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#362d6c', endColorstr='#0c5593',GradientType=1 ); /* IE6-8 fallback on horizontal gradient */
|
||||
}
|
||||
|
||||
.get-started-bg {
|
||||
background-image: #362d6c; /* Old browsers */
|
||||
background-image: -moz-linear-gradient(45deg, #362d6c 0%, #0c5593 100%); /* FF3.6+ */
|
||||
background-image: -webkit-gradient(linear, left bottom, right top, color-stop(0%,#362d6c), color-stop(100%,#0c5593)); /* Chrome,Safari4+ */
|
||||
background-image: -webkit-linear-gradient(45deg, #362d6c 0%,#0c5593 100%); /* Chrome10+,Safari5.1+ */
|
||||
background-image: -o-linear-gradient(45deg, #362d6c 0%,#0c5593 100%); /* Opera 11.10+ */
|
||||
background-image: -ms-linear-gradient(45deg, #362d6c 0%,#0c5593 100%); /* IE10+ */
|
||||
background-image: linear-gradient(45deg, #362d6c 0%,#0c5593 100%); /* W3C */
|
||||
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#362d6c', endColorstr='#0c5593',GradientType=1 ); /* IE6-8 fallback on horizontal gradient */
|
||||
background-position: center 0;
|
||||
background-repeat: no-repeat;
|
||||
}
|
||||
|
||||
/*
|
||||
.sidebar-nav-selected {
|
||||
background: -moz-linear-gradient(left, rgba(255,255,255,0) 0%, rgba(71,101,118,1) 100%);
|
||||
background: -webkit-gradient(linear, left top, right top, color-stop(0%,rgba(255,255,255,0)), color-stop(100%,rgba(71,101,118,1)));
|
||||
background: -webkit-linear-gradient(left, rgba(255,255,255,0) 0%,rgba(71,101,118,1) 100%);
|
||||
background: -o-linear-gradient(left, rgba(255,255,255,0) 0%,rgba(71,101,118,1) 100%);
|
||||
background: -ms-linear-gradient(left, rgba(255,255,255,0) 0%,rgba(71,101,118,1) 100%);
|
||||
background: linear-gradient(to right, rgba(255,255,255,0) 0%,rgba(71,101,118,1) 100%);
|
||||
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#00ffffff', endColorstr='#476576',GradientType=1 );
|
||||
}
|
||||
*/
|
||||
|
||||
|
||||
// helpers
|
||||
.reset {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
.kill-effects {
|
||||
-webkit-box-shadow: 0 0;
|
||||
-moz-box-shadow: 0 0;
|
||||
box-shadow: 0 0;
|
||||
-webkit-border-radius: 0px;
|
||||
-moz-border-radius: 0px;
|
||||
border-radius: 0px;
|
||||
font-family: inherit;
|
||||
color: inherit;
|
||||
background-color: transparent;
|
||||
background-image: none;
|
||||
border: 0;
|
||||
text-shadow: none;
|
||||
}
|
||||
|
||||
.debug {
|
||||
border: 1px solid #ff0000;
|
||||
}
|
||||
|
||||
|
||||
.hover {
|
||||
&:hover {
|
||||
cursor: pointer;
|
||||
.animate-text-color;
|
||||
}
|
||||
}
|
|
@ -1,43 +0,0 @@
|
|||
//
|
||||
// Sidebar
|
||||
// - Project Specific
|
||||
// - Make sidebar edits here
|
||||
// --------------------------------------------------
|
||||
|
||||
#mobile-nav {
|
||||
.mobile-nav-nav {
|
||||
width: 100%;
|
||||
text-align: center;
|
||||
// Links
|
||||
//----------------
|
||||
//
|
||||
li{
|
||||
float: none;
|
||||
|
||||
&.pill{
|
||||
background-color: #48b4fb;
|
||||
border-radius: 25px;
|
||||
padding: 5px 2px;
|
||||
line-height: 26px;
|
||||
margin: 10px 10px 10px 10px;
|
||||
|
||||
&:focus,
|
||||
&:hover{
|
||||
a{
|
||||
background-color: transparent;
|
||||
}
|
||||
}
|
||||
|
||||
a{
|
||||
color: @white;
|
||||
line-height: 24px;
|
||||
}
|
||||
}
|
||||
|
||||
a{
|
||||
.anti-alias();
|
||||
font-size: 13px;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,285 +0,0 @@
|
|||
/* page */
|
||||
.page { //style all pages
|
||||
|
||||
.page-background { //page background color
|
||||
.fixed-bg;
|
||||
} //.background
|
||||
|
||||
.page-contents {
|
||||
|
||||
h1,
|
||||
h2,
|
||||
h3 {
|
||||
text-transform: uppercase;
|
||||
text-align: left;
|
||||
.museo-sans-light;
|
||||
}
|
||||
|
||||
h1 {
|
||||
font-size: 60px;
|
||||
line-height: 70px;
|
||||
margin: (@baseline * 2) 0 @baseline;
|
||||
|
||||
&:first-child {
|
||||
margin-top: 0;
|
||||
} //h1 first child
|
||||
}
|
||||
|
||||
h2 {
|
||||
font-size: 40px;
|
||||
line-height: 45px;
|
||||
margin: (@baseline * 2) 0 @baseline;
|
||||
|
||||
&:first-child {
|
||||
margin-top: @baseline * .5;
|
||||
} //h2 first child
|
||||
} //h2
|
||||
|
||||
h3 {
|
||||
margin: (@baseline * 2) 0 @baseline;
|
||||
|
||||
&:first-child {
|
||||
margin-top: @baseline * .5;
|
||||
} //h3 first child
|
||||
}
|
||||
} //page-contents
|
||||
|
||||
/* home */
|
||||
&.home { //style homepage
|
||||
|
||||
h1 {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.hero {
|
||||
.padded;
|
||||
background: @gray-background url(/images/vagrant_header_background.png) no-repeat center -80px;
|
||||
text-align: center;
|
||||
border-bottom: 1px solid #c6e0f0;
|
||||
|
||||
.hero-content {
|
||||
top: 50%;
|
||||
|
||||
hgroup {
|
||||
margin: (@baseline * 4) 0 20px 0;
|
||||
|
||||
h1 {
|
||||
color: @purple-text;
|
||||
margin-bottom: (@baseline * 4);
|
||||
font-size: 60px;
|
||||
line-height: 60px;
|
||||
}
|
||||
|
||||
h2 {
|
||||
.museo-sans-light;
|
||||
color: @blue-text;
|
||||
font-size: 30px;
|
||||
line-height: 40px;
|
||||
}
|
||||
|
||||
} //hero hgroup
|
||||
|
||||
} //hero-content
|
||||
|
||||
} //homepage hero
|
||||
|
||||
.why-vagrant {
|
||||
.padded;
|
||||
background: @light-blue-background url(/images/steps_background.png) center -120px;
|
||||
|
||||
|
||||
h1 {
|
||||
color: @blue-text;
|
||||
text-transform: uppercase;
|
||||
text-align: center;
|
||||
font-size: 40px;
|
||||
line-height: 40px;
|
||||
} //h1
|
||||
|
||||
hgroup {
|
||||
margin: (@baseline * 3) 0;
|
||||
|
||||
|
||||
h3 {
|
||||
text-align: center;
|
||||
text-transform: uppercase;
|
||||
font-size: 40px;
|
||||
margin-bottom: @baseline;
|
||||
color: @purple-text;
|
||||
.museo-sans-light;
|
||||
} //h3
|
||||
|
||||
h4 {
|
||||
font-size: 20px;
|
||||
line-height: @baseline * 1.5;
|
||||
.museo-sans-light;
|
||||
} //h4
|
||||
} //hgroup
|
||||
} //why-vagrant
|
||||
|
||||
.get-started {
|
||||
.padded;
|
||||
.get-started-bg;
|
||||
|
||||
h1 {
|
||||
color: @white;
|
||||
|
||||
}
|
||||
|
||||
pre {
|
||||
padding: 60px 80px 40px;
|
||||
margin: 40px auto;
|
||||
background: fade(@black, 60%);
|
||||
}
|
||||
|
||||
.button {
|
||||
//background: fade(@white, 20%);
|
||||
}
|
||||
|
||||
} //get-started
|
||||
|
||||
.customers {
|
||||
.padded;
|
||||
background-color: @black;
|
||||
border-bottom: 1px solid #333;
|
||||
|
||||
h1 {
|
||||
color: @dark-gray-text;
|
||||
.museo-sans-light
|
||||
}
|
||||
|
||||
.customer-logos {
|
||||
margin-top: @baseline * 3;
|
||||
|
||||
img {
|
||||
width:100%;
|
||||
height: auto;
|
||||
-khtml-opacity: .5;
|
||||
-moz-opacity: .5;
|
||||
opacity: .5;
|
||||
filter: alpha(opacity=50);
|
||||
}
|
||||
}
|
||||
|
||||
ul.customer-logos {
|
||||
|
||||
li {
|
||||
|
||||
img {
|
||||
|
||||
} //img
|
||||
|
||||
} //li
|
||||
} //ul.cusotmer-logos
|
||||
}
|
||||
|
||||
} //home
|
||||
|
||||
/* inner */
|
||||
&.inner { //style inner pages
|
||||
.sidebar-background { //sidebar background
|
||||
.inner-bg-large;
|
||||
}
|
||||
|
||||
.page-background { //change inner background color!
|
||||
background-color: @gray-background; //page background
|
||||
}
|
||||
|
||||
.page-contents {
|
||||
background-color: @gray-background;
|
||||
.padded;
|
||||
}
|
||||
|
||||
h2 {
|
||||
color: @dark-blue-text;
|
||||
|
||||
}
|
||||
|
||||
p {
|
||||
|
||||
}
|
||||
|
||||
} //inner
|
||||
|
||||
/* docs */
|
||||
&.docs { //style all docs
|
||||
.page-background { //change the sidebar background color!
|
||||
background: @white; //page background
|
||||
}
|
||||
|
||||
.sidebar-background { //sidebar background
|
||||
.docs-bg-large;
|
||||
}
|
||||
|
||||
.page-contents {
|
||||
padding-top: 30px;
|
||||
background-color: @white;
|
||||
padding-bottom: 40px;
|
||||
}
|
||||
|
||||
h1,
|
||||
h2 {
|
||||
color: @docs-blue;
|
||||
}
|
||||
|
||||
h2.steps img {
|
||||
margin-top: -7px;
|
||||
}
|
||||
|
||||
li {
|
||||
letter-spacing: 1px;
|
||||
}
|
||||
|
||||
.alert {
|
||||
margin-top: 20px;
|
||||
|
||||
h3 {
|
||||
font-size: 22px;
|
||||
letter-spacing: 1px;
|
||||
margin-bottom: 8px;
|
||||
}
|
||||
|
||||
p {
|
||||
line-height: 26px;
|
||||
}
|
||||
}
|
||||
|
||||
&.docs-home { //style docs-home
|
||||
|
||||
|
||||
} //documentation-home
|
||||
|
||||
&.docs-inner { //style docs-inner
|
||||
|
||||
h3 {
|
||||
color: @docs-blue;
|
||||
text-transform: uppercase;
|
||||
margin: @baseline 0;
|
||||
.museo-sans-light;
|
||||
}
|
||||
|
||||
h4 {
|
||||
line-height: 30px;
|
||||
}
|
||||
|
||||
h5.subhead {
|
||||
.museo-sans-light;
|
||||
color: @purple-text;
|
||||
line-height: @baseline;
|
||||
margin: -10px 0 @baseline;
|
||||
}
|
||||
|
||||
h6.subhead {
|
||||
.museo-sans-regular-italic;
|
||||
color: @dark-gray-text;
|
||||
line-height: @baseline;
|
||||
margin: -10px 0 @baseline;
|
||||
font-size: 15px;
|
||||
//text-transform: uppercase;
|
||||
}
|
||||
|
||||
} //documentation-inner
|
||||
|
||||
} //documentation
|
||||
|
||||
} //page
|
|
@ -1,150 +0,0 @@
|
|||
.sidebar { //general styles for the sidebar
|
||||
|
||||
h1 {
|
||||
text-align: left;
|
||||
color: @white;
|
||||
line-height: 60px;
|
||||
margin-bottom: 20px;
|
||||
}
|
||||
|
||||
&-background { //background image
|
||||
.fixed-bg;
|
||||
}
|
||||
|
||||
.button {
|
||||
font-size: 15px;
|
||||
color: @dark-blue-text;
|
||||
letter-spacing: 3px;
|
||||
}
|
||||
|
||||
.toggle {
|
||||
font-size: 20px;
|
||||
.museo-sans-light;
|
||||
color: @white;
|
||||
margin-left: 20px;
|
||||
padding: 20px 0;
|
||||
|
||||
a {
|
||||
display: block;
|
||||
color: @white;
|
||||
|
||||
&:hover {
|
||||
color: @white;
|
||||
}
|
||||
}
|
||||
|
||||
.open-close {
|
||||
background: url(/images/open_close.png) no-repeat 0 0;
|
||||
height: 20px;
|
||||
width: 20px;
|
||||
position: absolute;
|
||||
right: 0;
|
||||
top: 25px;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
.sidebar-nav { //style all sidebar-navs
|
||||
//position:fixed;
|
||||
}
|
||||
|
||||
ul { //general sidebar list styles
|
||||
|
||||
li { //general sidebar list item styles
|
||||
font-size: 20px;
|
||||
.museo-sans-light;
|
||||
|
||||
a {
|
||||
display: block;
|
||||
} //li a
|
||||
|
||||
&:hover {
|
||||
}
|
||||
} //li
|
||||
|
||||
ul.sub { //subnav list styles
|
||||
border-top: none;
|
||||
list-style-type: none;
|
||||
margin:0 0 5px 0;
|
||||
|
||||
li {
|
||||
padding: 5px 0 5px 20px;
|
||||
font-size: 15px;
|
||||
border: none;
|
||||
border-bottom: none !important;
|
||||
} //ul.sub li
|
||||
} //ul.sub
|
||||
|
||||
@media screen and (min-width: 768px) {
|
||||
display: block !important;
|
||||
} //@media 768px
|
||||
|
||||
} //ul
|
||||
|
||||
|
||||
.inner & { //styles for the inner-page sidebar
|
||||
.padded;
|
||||
position:fixed;
|
||||
|
||||
li.current a {
|
||||
color: @purple;
|
||||
}
|
||||
|
||||
ul { //style inner list
|
||||
|
||||
|
||||
li { //style inner list item
|
||||
color: @dark-blue-text;
|
||||
padding: 20px 0;
|
||||
border-top: 1px solid fade(@white, 40%);
|
||||
|
||||
&:last-child {
|
||||
border-bottom: none;
|
||||
}
|
||||
|
||||
&.current { //style the current selected list item
|
||||
|
||||
} //current
|
||||
} //li
|
||||
} //ul
|
||||
} //.inner .sidebar
|
||||
|
||||
.docs & { //styles for the documentation sidebar
|
||||
|
||||
li.current a {
|
||||
color: @blue;
|
||||
}
|
||||
|
||||
ul { //style documentation list
|
||||
|
||||
&.nocap {
|
||||
li {
|
||||
text-transform: none;
|
||||
}
|
||||
}
|
||||
|
||||
li { //style documentation list items
|
||||
text-transform: capitalize;
|
||||
color: @white;
|
||||
padding: 12px 0;
|
||||
border-top: 1px solid fade(@white, 20%);
|
||||
|
||||
a.nocap {
|
||||
text-transform: none;
|
||||
}
|
||||
|
||||
&:first-child {
|
||||
border-top: none;
|
||||
}
|
||||
|
||||
&:last-child {
|
||||
border-bottom: none;
|
||||
}
|
||||
|
||||
&.current { //style the current selected list item
|
||||
|
||||
} //current
|
||||
} //li
|
||||
} //ul
|
||||
} //.documentation .sidebar
|
||||
} //sidebar
|
|
@ -1,36 +0,0 @@
|
|||
//typogrpahy
|
||||
.museo-sans-light {
|
||||
font-family: "museo-sans", helvetica, arial, sans-serif;
|
||||
font-style: normal;
|
||||
font-weight: 100;
|
||||
}
|
||||
|
||||
.museo-sans-regular {
|
||||
font-family: "museo-sans", helvetica, arial, sans-serif;
|
||||
font-style: normal;
|
||||
font-weight: 300;
|
||||
}
|
||||
|
||||
.museo-sans-bold {
|
||||
font-family: "museo-sans", helvetica, arial, sans-serif;
|
||||
font-style: normal;
|
||||
font-weight: 700;
|
||||
}
|
||||
|
||||
.museo-sans-light-italic {
|
||||
font-family: "museo-sans", helvetica, arial, sans-serif;
|
||||
font-style: italic;
|
||||
font-weight: 100;
|
||||
}
|
||||
|
||||
.museo-sans-regular-italic {
|
||||
font-family: "museo-sans", helvetica, arial, sans-serif;
|
||||
font-style: italic;
|
||||
font-weight: 300;
|
||||
}
|
||||
|
||||
.museo-sans-bold-italic {
|
||||
font-family: "museo-sans", helvetica, arial, sans-serif;
|
||||
font-style: italic;
|
||||
font-weight: 700;
|
||||
}
|
|
@ -1,39 +0,0 @@
|
|||
/* variables */
|
||||
|
||||
//grayscale
|
||||
@black: #000;
|
||||
@white: #fff;
|
||||
@gray-background: #f7f6f1;
|
||||
@dark-gray-text: #7f7f7f;
|
||||
@light-gray-background: #f0f0f0;
|
||||
@light-gray: #ccc;
|
||||
@light-gray-text: #eeeeee;
|
||||
@dark-gray-background: #333;
|
||||
@medium-gray-text: #666;
|
||||
|
||||
//vagrant colors
|
||||
@blue-text: #2490cc;
|
||||
@dark-blue-text: #476576;
|
||||
@light-blue-background: #dbf1ff;
|
||||
@vagrant-blue: #0094bf;
|
||||
@light-sidebar-background: #a1ccf0;
|
||||
@docs-blue: #22407f;
|
||||
@blue-background: #1e71a1;
|
||||
@purple-text: #270836;
|
||||
@purple: #735f9f;
|
||||
|
||||
//misc colors
|
||||
@blue: #48b4fb;
|
||||
@green: #43d193;
|
||||
@code-highlight-text: #73c5dd;
|
||||
@current-color: inherit;
|
||||
@button-color: @vagrant-blue;
|
||||
@primary-button-color: #48b4fb;
|
||||
|
||||
//type
|
||||
@sans-serif-stack: 'Museo Sans', 'helvetica neue', helvetica, arial, sans-serif;
|
||||
@mono-stack: 'Inconsolata', monaco, courier, monospace;
|
||||
@base-font-size: 18px;
|
||||
@base-line-height: 30px;
|
||||
@baseline: 20px;
|
||||
@headline-span-size: 30px;
|
|
@ -1,351 +0,0 @@
|
|||
//
|
||||
// Hashicorp nav
|
||||
// --------------------------------------------------
|
||||
|
||||
.nav{
|
||||
float: left;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
list-style: none;
|
||||
|
||||
li{
|
||||
display: block;
|
||||
float: left;
|
||||
|
||||
a{
|
||||
position: relative;
|
||||
display: block;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.navigation {
|
||||
color: black;
|
||||
text-rendering: optimizeLegibility;
|
||||
transition: all 1s ease;
|
||||
|
||||
&.white{
|
||||
.navbar-brand {
|
||||
.logo {
|
||||
color: white;
|
||||
}
|
||||
}
|
||||
|
||||
.main-links,
|
||||
.external-links {
|
||||
li > a {
|
||||
&:hover{
|
||||
opacity: 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.navbar-toggle{
|
||||
height: @header-height;
|
||||
margin: 0;
|
||||
position: relative;
|
||||
float: right;
|
||||
padding: 9px 10px;
|
||||
background-color: transparent;
|
||||
background-image: none;
|
||||
border: none;
|
||||
|
||||
.bar{
|
||||
display: block;
|
||||
width: 22px;
|
||||
height: 2px;
|
||||
margin-top: 4px;
|
||||
background-color: @project-link-color;
|
||||
}
|
||||
}
|
||||
|
||||
.external-links {
|
||||
&.white{
|
||||
svg path{
|
||||
fill: @white;
|
||||
}
|
||||
}
|
||||
|
||||
li {
|
||||
position: relative;
|
||||
|
||||
svg path{
|
||||
.transition( all 300ms ease-in );
|
||||
}
|
||||
|
||||
&:hover{
|
||||
svg path{
|
||||
.transition( all 300ms ease-in );
|
||||
}
|
||||
}
|
||||
|
||||
&.download{
|
||||
margin-right: 10px;
|
||||
}
|
||||
|
||||
> a {
|
||||
padding-left: 12px !important;
|
||||
svg{
|
||||
position: absolute;
|
||||
left: -12px;
|
||||
top: 50%;
|
||||
margin-top: -7px;
|
||||
width: 14px;
|
||||
height: 14px;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.main-links{
|
||||
margin-right: @nav-margin-right * 2;
|
||||
}
|
||||
|
||||
.main-links,
|
||||
.external-links {
|
||||
&.white{
|
||||
li > a {
|
||||
color: white;
|
||||
}
|
||||
}
|
||||
li > a {
|
||||
.hashi-a-style();
|
||||
margin: 0 10px;
|
||||
padding-top: 1px;
|
||||
line-height: @header-height;
|
||||
.project-a-style();
|
||||
}
|
||||
}
|
||||
|
||||
.nav > li > a:hover, .nav > li > a:focus {
|
||||
background-color: transparent;
|
||||
.transition( all 300ms ease-in );
|
||||
}
|
||||
}
|
||||
|
||||
.navbar-brand {
|
||||
display: block;
|
||||
height: @header-height;
|
||||
padding: 0;
|
||||
margin: 0 10px 0 0;
|
||||
|
||||
.logo{
|
||||
display: inline-block;
|
||||
height: @header-height;
|
||||
vertical-align:top;
|
||||
padding: 0;
|
||||
line-height: @header-height;
|
||||
background-position: 0 center;
|
||||
.transition(all 300ms ease-in);
|
||||
|
||||
&:hover{
|
||||
.transition(all 300ms ease-in);
|
||||
text-decoration: none;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.navbar-toggle{
|
||||
&.white{
|
||||
.icon-bar{
|
||||
border: 1px solid white;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.by-hashicorp{
|
||||
display: inline-block;
|
||||
vertical-align:top;
|
||||
height: @header-height;
|
||||
margin-left: -3px;
|
||||
padding-top: 2px;
|
||||
color: black;
|
||||
line-height: @header-height;
|
||||
font-family: @header-font-family;
|
||||
font-weight: 600;
|
||||
font-size: 0;
|
||||
letter-spacing: 0;
|
||||
text-decoration: none;
|
||||
text-transform: none;
|
||||
|
||||
&.white{
|
||||
color: white;
|
||||
font-weight: 300;
|
||||
svg{
|
||||
path,
|
||||
polygon,
|
||||
rect{
|
||||
fill: white;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
&:focus,
|
||||
&:hover{
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
&:hover{
|
||||
.transition(all 300ms ease-in);
|
||||
}
|
||||
|
||||
.svg-wrap{
|
||||
font-size: 13px;
|
||||
.transition(all 300ms ease-in);
|
||||
}
|
||||
|
||||
svg{
|
||||
&.svg-by{
|
||||
width: @by-hashicorp-width;
|
||||
height: @by-hashicorp-height;
|
||||
margin-bottom: -4px;
|
||||
margin-left: 4px;
|
||||
}
|
||||
|
||||
&.svg-logo{
|
||||
width: 16px;
|
||||
height: 16px;
|
||||
margin-bottom: -3px;
|
||||
margin-left: 4px;
|
||||
}
|
||||
|
||||
path,
|
||||
polygon,
|
||||
rect{
|
||||
fill: black;
|
||||
.transition(all 300ms ease-in);
|
||||
|
||||
&:hover{
|
||||
.transition(all 300ms ease-in);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.hashicorp-project{
|
||||
display: inline-block;
|
||||
height: 30px;
|
||||
line-height: 30px;
|
||||
text-decoration: none;
|
||||
font-size: 14px;
|
||||
color: @black;
|
||||
font-weight: 600;
|
||||
|
||||
&.white{
|
||||
color: white;
|
||||
svg{
|
||||
path,
|
||||
polygon{
|
||||
fill: white;
|
||||
}
|
||||
line{
|
||||
stroke: white;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
&:focus{
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
&:hover{
|
||||
text-decoration: none;
|
||||
svg{
|
||||
&.svg-by{
|
||||
line{
|
||||
stroke: @purple;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
span{
|
||||
margin-right: 4px;
|
||||
font-family: @header-font-family;
|
||||
font-weight: 500;
|
||||
}
|
||||
|
||||
span,
|
||||
svg{
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
svg{
|
||||
&.svg-by{
|
||||
width: @by-hashicorp-width;
|
||||
height: @by-hashicorp-height;
|
||||
margin-bottom: -4px;
|
||||
margin-left: -3px;
|
||||
}
|
||||
|
||||
&.svg-logo{
|
||||
width: 30px;
|
||||
height: 30px;
|
||||
margin-bottom: -10px;
|
||||
margin-left: -1px;
|
||||
}
|
||||
|
||||
path,
|
||||
line{
|
||||
fill: @black;
|
||||
.transition(all 300ms ease-in);
|
||||
|
||||
&:hover{
|
||||
.transition(all 300ms ease-in);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 992px) {
|
||||
.navigation {
|
||||
> .container{
|
||||
width: 100%;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 768px) {
|
||||
.navigation {
|
||||
.main-links{
|
||||
margin-right: 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 480px) {
|
||||
#header {
|
||||
.navbar-toggle{
|
||||
padding-top: 10px;
|
||||
height: @header-mobile-height;
|
||||
}
|
||||
|
||||
.navbar-brand {
|
||||
height: @header-mobile-height;
|
||||
|
||||
.logo{
|
||||
height: @header-mobile-height;
|
||||
line-height: @header-mobile-height;
|
||||
}
|
||||
.by-hashicorp{
|
||||
height: @header-mobile-height;
|
||||
line-height: @header-mobile-height;
|
||||
padding-top: 0;
|
||||
}
|
||||
}
|
||||
.main-links,
|
||||
.external-links {
|
||||
li > a {
|
||||
line-height: @header-mobile-height;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@media (min-width: 768px){
|
||||
.navbar-toggle {
|
||||
display: none;
|
||||
}
|
||||
}
|
|
@ -1,293 +0,0 @@
|
|||
//
|
||||
// Hashicorp mobile-nav
|
||||
// - Shared throughout projects
|
||||
// - Edits should not be made here
|
||||
// --------------------------------------------------
|
||||
|
||||
// Base variables
|
||||
// --------------------------------------------------
|
||||
@screen-tablet: 768px;
|
||||
|
||||
@gray-darker: #212121; // #212121 - text
|
||||
@gray-secondary: #757575; // #757575 - secondary text, icons
|
||||
@gray: #bdbdbd; // #bdbdbd - hint text
|
||||
@gray-light: #e0e0e0; // #e0e0e0 - divider
|
||||
@gray-lighter: #f5f5f5; // #f5f5f5 - background
|
||||
@link-color: @gray-darker;
|
||||
@link-bg: transparent;
|
||||
@link-hover-color: @gray-lighter;
|
||||
@link-hover-bg: @gray-lighter;
|
||||
@link-active-color: @gray-darker;
|
||||
@link-active-bg: @gray-light;
|
||||
@link-disabled-color: @gray-light;
|
||||
@link-disabled-bg: transparent;
|
||||
|
||||
/* -- mobile-nav style ------------------------------- */
|
||||
|
||||
// mobile-nav variables
|
||||
// --------------------------------------------------
|
||||
@zindex-mobile-nav-fixed: 1035;
|
||||
|
||||
@mobile-nav-desktop-width: 280px;
|
||||
@mobile-nav-width: 240px;
|
||||
|
||||
@mobile-nav-padding: 16px;
|
||||
@mobile-nav-divider: @mobile-nav-padding/2;
|
||||
|
||||
@mobile-nav-icon-width: 40px;
|
||||
@mobile-nav-icon-height: 20px;
|
||||
|
||||
.mobile-nav-nav-base {
|
||||
text-align: center;
|
||||
|
||||
&:last-child{
|
||||
border-bottom: none;
|
||||
}
|
||||
|
||||
li > a {
|
||||
background-color: @link-bg;
|
||||
}
|
||||
li:hover > a {
|
||||
background-color: @link-hover-bg;
|
||||
}
|
||||
li:focus > a, li > a:focus {
|
||||
background-color: @link-bg;
|
||||
}
|
||||
|
||||
> .open > a {
|
||||
&,
|
||||
&:hover,
|
||||
&:focus {
|
||||
background-color: @link-hover-bg;
|
||||
}
|
||||
}
|
||||
|
||||
> .active > a {
|
||||
&,
|
||||
&:hover,
|
||||
&:focus {
|
||||
background-color: @link-active-bg;
|
||||
}
|
||||
}
|
||||
> .disabled > a {
|
||||
&,
|
||||
&:hover,
|
||||
&:focus {
|
||||
background-color: @link-disabled-bg;
|
||||
}
|
||||
}
|
||||
|
||||
// Dropdown menu items
|
||||
> .dropdown {
|
||||
// Remove background color from open dropdown
|
||||
> .dropdown-menu {
|
||||
background-color: @link-hover-bg;
|
||||
|
||||
> li > a {
|
||||
&:focus {
|
||||
background-color: @link-hover-bg;
|
||||
}
|
||||
&:hover {
|
||||
background-color: @link-hover-bg;
|
||||
}
|
||||
}
|
||||
|
||||
> .active > a {
|
||||
&,
|
||||
&:hover,
|
||||
&:focus {
|
||||
color: @link-active-color;
|
||||
background-color: @link-active-bg;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//
|
||||
// mobile-nav
|
||||
// --------------------------------------------------
|
||||
|
||||
// mobile-nav Elements
|
||||
//
|
||||
// Basic style of mobile-nav elements
|
||||
.mobile-nav {
|
||||
position: relative;
|
||||
display: block;
|
||||
min-height: 100%;
|
||||
overflow-y: auto;
|
||||
overflow-x: hidden;
|
||||
border: none;
|
||||
.transition(all 0.5s cubic-bezier(0.55, 0, 0.1, 1));
|
||||
.clearfix();
|
||||
background-color: @white;
|
||||
|
||||
ul{
|
||||
padding-left: 0;
|
||||
list-style-type: none;
|
||||
}
|
||||
|
||||
.mobile-nav-divider, .divider {
|
||||
width: 80%;
|
||||
height: 1px;
|
||||
margin: 8px auto;
|
||||
background-color: lighten(@gray, 20%);
|
||||
}
|
||||
|
||||
// mobile-nav heading
|
||||
//----------------
|
||||
.mobile-nav-header {
|
||||
position: relative;
|
||||
margin-bottom: @mobile-nav-padding;
|
||||
.transition(all .2s ease-in-out);
|
||||
}
|
||||
|
||||
.mobile-nav-image {
|
||||
padding-top: 24px;
|
||||
img {
|
||||
display: block;
|
||||
margin: 0 auto;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// mobile-nav icons
|
||||
//----------------
|
||||
.mobile-nav-icon {
|
||||
display: inline-block;
|
||||
height: @mobile-nav-icon-height;
|
||||
margin-right: @mobile-nav-divider;
|
||||
text-align: left;
|
||||
font-size: @mobile-nav-icon-height;
|
||||
vertical-align: middle;
|
||||
|
||||
&:before, &:after {
|
||||
vertical-align: middle;
|
||||
}
|
||||
}
|
||||
|
||||
.mobile-nav-nav {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
|
||||
.mobile-nav-nav-base();
|
||||
|
||||
// Links
|
||||
//----------------
|
||||
li {
|
||||
position: relative;
|
||||
list-style-type: none;
|
||||
text-align: center;
|
||||
|
||||
a {
|
||||
position: relative;
|
||||
cursor: pointer;
|
||||
user-select: none;
|
||||
.hashi-a-style-core();
|
||||
|
||||
svg{
|
||||
top: 2px;
|
||||
width: 14px;
|
||||
height: 14px;
|
||||
margin-bottom: -2px;
|
||||
margin-right: 4px;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// mobile-nav toggling
|
||||
//
|
||||
// Hide mobile-nav
|
||||
.mobile-nav {
|
||||
width: 0;
|
||||
.translate3d(-@mobile-nav-desktop-width, 0, 0);
|
||||
|
||||
&.open {
|
||||
min-width: @mobile-nav-desktop-width;
|
||||
width: @mobile-nav-desktop-width;
|
||||
.translate3d(0, 0, 0);
|
||||
}
|
||||
}
|
||||
|
||||
// mobile-nav positions: fix the left/right mobile-navs
|
||||
.mobile-nav-fixed-left,
|
||||
.mobile-nav-fixed-right,
|
||||
.mobile-nav-stacked {
|
||||
position: fixed;
|
||||
top: 0;
|
||||
bottom: 0;
|
||||
z-index: @zindex-mobile-nav-fixed;
|
||||
}
|
||||
.mobile-nav-stacked {
|
||||
left: 0;
|
||||
}
|
||||
.mobile-nav-fixed-left {
|
||||
left: 0;
|
||||
box-shadow: 2px 0px 25px rgba(0,0,0,0.15);
|
||||
-webkit-box-shadow: 2px 0px 25px rgba(0,0,0,0.15);
|
||||
}
|
||||
.mobile-nav-fixed-right {
|
||||
right: 0;
|
||||
box-shadow: 0px 2px 25px rgba(0,0,0,0.15);
|
||||
-webkit-box-shadow: 0px 2px 25px rgba(0,0,0,0.15);
|
||||
|
||||
.translate3d(@mobile-nav-desktop-width, 0, 0);
|
||||
&.open {
|
||||
.translate3d(0, 0, 0);
|
||||
}
|
||||
.icon-material-mobile-nav-arrow:before {
|
||||
content: "\e614"; // icon-material-arrow-forward
|
||||
}
|
||||
}
|
||||
|
||||
// mobile-nav size
|
||||
//
|
||||
// Change size of mobile-nav and mobile-nav elements on small screens
|
||||
@media (max-width: @screen-tablet) {
|
||||
.mobile-nav.open {
|
||||
min-width: @mobile-nav-width;
|
||||
width: @mobile-nav-width;
|
||||
}
|
||||
|
||||
.mobile-nav .mobile-nav-header {
|
||||
//height: @mobile-nav-width * 9/16; // 16:9 header dimension
|
||||
}
|
||||
|
||||
.mobile-nav .mobile-nav-image {
|
||||
/* img {
|
||||
width: @mobile-nav-width/4 - @mobile-nav-padding;
|
||||
height: @mobile-nav-width/4 - @mobile-nav-padding;
|
||||
} */
|
||||
}
|
||||
}
|
||||
|
||||
.mobile-nav-overlay {
|
||||
visibility: hidden;
|
||||
position: fixed;
|
||||
top: 0;
|
||||
left: 0;
|
||||
right: 0;
|
||||
bottom: 0;
|
||||
opacity: 0;
|
||||
background: @white;
|
||||
z-index: @zindex-mobile-nav-fixed - 1;
|
||||
|
||||
-webkit-transition: visibility 0 linear .4s,opacity .4s cubic-bezier(.4,0,.2,1);
|
||||
-moz-transition: visibility 0 linear .4s,opacity .4s cubic-bezier(.4,0,.2,1);
|
||||
transition: visibility 0 linear .4s,opacity .4s cubic-bezier(.4,0,.2,1);
|
||||
-webkit-transform: translateZ(0);
|
||||
-moz-transform: translateZ(0);
|
||||
-ms-transform: translateZ(0);
|
||||
-o-transform: translateZ(0);
|
||||
transform: translateZ(0);
|
||||
}
|
||||
|
||||
.mobile-nav-overlay.active {
|
||||
opacity: 0.3;
|
||||
visibility: visible;
|
||||
-webkit-transition-delay: 0;
|
||||
-moz-transition-delay: 0;
|
||||
transition-delay: 0;
|
||||
}
|
|
@ -1,89 +0,0 @@
|
|||
//
|
||||
// Hashicorp Nav (header/footer) Utiliy Vars and Mixins
|
||||
//
|
||||
// Notes:
|
||||
// - Include this in Application.scss before header and feature-footer
|
||||
// - Open Sans Google (Semibold - 600) font needs to be included if not already
|
||||
// --------------------------------------------------
|
||||
|
||||
// Variables
|
||||
@font-family-open-sans: 'Open Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif;
|
||||
@header-font-family: @font-family-open-sans;
|
||||
@header-font-weight: 600; // semi-bold
|
||||
|
||||
@header-height: 80px;
|
||||
@header-mobile-height: 60px;
|
||||
@by-hashicorp-width: 74px;
|
||||
@by-hashicorp-height: 16px;
|
||||
@nav-margin-right: 12px;
|
||||
|
||||
// Mixins
|
||||
.hashi-a-style-core{
|
||||
font-family: @header-font-family;
|
||||
font-weight: @header-font-weight;
|
||||
font-size: 14px;
|
||||
//letter-spacing: 0.0625em;
|
||||
}
|
||||
|
||||
.hashi-a-style{
|
||||
margin: 0 15px;
|
||||
padding: 0;
|
||||
line-height: 22px;
|
||||
.hashi-a-style-core();
|
||||
.transition( all 0.3s ease );
|
||||
|
||||
&:hover{
|
||||
.transition( all 0.3s ease );
|
||||
background-color: transparent;
|
||||
}
|
||||
}
|
||||
|
||||
.img-retina(@image, @width, @height, @repeat: no-repeat) {
|
||||
@filename : ~`/(.*)\.(jpg|jpeg|png|gif)/.exec(@{image})[1]`;
|
||||
@extension : ~`/(.*)\.(jpg|jpeg|png|gif)/.exec(@{image})[2]`;
|
||||
background-image: ~`"url(@{filename}.@{extension})"`;
|
||||
background-repeat: @repeat;
|
||||
|
||||
@media
|
||||
only screen and (-webkit-min-device-pixel-ratio: 2),
|
||||
only screen and ( min--moz-device-pixel-ratio: 2),
|
||||
only screen and ( -o-min-device-pixel-ratio: 2/1),
|
||||
only screen and ( min-device-pixel-ratio: 2),
|
||||
only screen and ( min-resolution: 192dpi),
|
||||
only screen and ( min-resolution: 2dppx) {
|
||||
/* on retina, use image that's scaled by 2 */
|
||||
background-image: ~`"url(@{filename}@2x.@{extension})"`;
|
||||
background-size: @width @height;
|
||||
}
|
||||
}
|
||||
|
||||
//
|
||||
// -------------------------
|
||||
.anti-alias() {
|
||||
text-rendering: optimizeLegibility;
|
||||
-webkit-font-smoothing: antialiased;
|
||||
}
|
||||
|
||||
.open-light() {
|
||||
font-family: @font-family-open-sans;
|
||||
font-weight: 300;
|
||||
}
|
||||
|
||||
.open() {
|
||||
font-family: @font-family-open-sans;
|
||||
font-weight: 400;
|
||||
}
|
||||
|
||||
.open-sb() {
|
||||
font-family: @font-family-open-sans;
|
||||
font-weight: 600;
|
||||
}
|
||||
|
||||
.open-bold() {
|
||||
font-family: @font-family-open-sans;
|
||||
font-weight: 700;
|
||||
}
|
||||
|
||||
.bez-1-transition{
|
||||
.transition( all 300ms ease-in-out );
|
||||
}
|
|
@ -1,32 +0,0 @@
|
|||
//
|
||||
// Mixins Specific to project
|
||||
// - make edits to mixins here
|
||||
// --------------------------------------------------
|
||||
|
||||
// Variables
|
||||
@project-logo-width: 231px;
|
||||
@project-logo-height: 46px;
|
||||
@project-logo-pad-left: 0px;
|
||||
@project-link-color: #8d9ba8;
|
||||
|
||||
// Mixins
|
||||
.project-a-style{
|
||||
font-weight: 600;
|
||||
font-size: 14px;
|
||||
letter-spacing: 0;
|
||||
text-transform: none;
|
||||
color: @project-link-color;
|
||||
.anti-alias();
|
||||
|
||||
&:hover{
|
||||
color: @black;
|
||||
}
|
||||
}
|
||||
|
||||
.project-footer-a-style{
|
||||
line-height: 30px;
|
||||
|
||||
&:hover{
|
||||
opacity: .5;
|
||||
}
|
||||
}
|
|
@ -1,24 +0,0 @@
|
|||
/*
|
||||
/|\/|\/|\/|\/|\/|\
|
||||
v a g r a n t u p
|
||||
\|/\|/\|/\|/\|/\|/
|
||||
*/
|
||||
|
||||
@import '_variables';
|
||||
@import '_type';
|
||||
@import '_mixins';
|
||||
@import '_base';
|
||||
|
||||
@import 'hashicorp-shared/_hashicorp-utility';
|
||||
@import 'hashicorp-shared/_project-utility';
|
||||
@import 'hashicorp-shared/_hashicorp-header';
|
||||
@import 'hashicorp-shared/_hashicorp-mobile-nav';
|
||||
|
||||
// @import '_nav';
|
||||
@import '_header';
|
||||
@import '_components';
|
||||
@import '_sidebar';
|
||||
@import '_mobile-nav';
|
||||
@import '_pages';
|
||||
@import '_footer';
|
||||
@import '_media-queries';
|
|
@ -1,11 +0,0 @@
|
|||
---
|
||||
page_title: "vagrant resume - Command-Line Interface"
|
||||
sidebar_current: "cli-resume"
|
||||
---
|
||||
|
||||
# Resume
|
||||
|
||||
**Command: `vagrant resume`**
|
||||
|
||||
This resumes a Vagrant managed machine that was previously suspended,
|
||||
perhaps with the [suspend command](/v2/cli/suspend.html).
|
|
@ -1,15 +0,0 @@
|
|||
---
|
||||
page_title: "vagrant rsync - Command-Line Interface"
|
||||
sidebar_current: "cli-rsync"
|
||||
---
|
||||
|
||||
# Rsync
|
||||
|
||||
**Command: `vagrant rsync`**
|
||||
|
||||
This command forces a resync of any
|
||||
[rsync synced folders](/v2/synced-folders/rsync.html).
|
||||
|
||||
Note that if you change any settings within the rsync synced folders such
|
||||
as exclude paths, you'll need to `vagrant reload` before this command will
|
||||
pick up those changes.
|
|
@ -1,23 +0,0 @@
|
|||
---
|
||||
page_title: "Docker Provider"
|
||||
sidebar_current: "docker"
|
||||
---
|
||||
|
||||
# Docker
|
||||
|
||||
Vagrant comes with support out of the box for
|
||||
using Docker as a provider. This allows for your development environments
|
||||
to be backed by Docker containers rather than virtual machines. Additionally,
|
||||
it provides for a good workflow for developing Dockerfiles.
|
||||
|
||||
<div class="alert alert-warn">
|
||||
<p>
|
||||
<strong>Warning: Docker knowledge assumed.</strong> We assume that
|
||||
you know what Docker is and that you're comfortable with the basics
|
||||
of Docker. If not, we recommend starting with another provider such
|
||||
as <a href="/v2/virtualbox/index.html">VirtualBox</a>.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
Use the navigation to the left to find a specific Docker topic
|
||||
to read more about.
|
|
@ -1,77 +0,0 @@
|
|||
---
|
||||
page_title: "Boxes - Getting Started"
|
||||
sidebar_current: "gettingstarted-boxes"
|
||||
---
|
||||
|
||||
# Boxes
|
||||
|
||||
Instead of building a virtual machine from scratch, which would be a
|
||||
slow and tedious process, Vagrant uses a base image to quickly clone
|
||||
a virtual machine. These base images are known as _boxes_ in Vagrant,
|
||||
and specifying the box to use for your Vagrant environment is always
|
||||
the first step after creating a new Vagrantfile.
|
||||
|
||||
## Installing a Box
|
||||
|
||||
If you ran the commands on the [getting started overview page](/v2/getting-started/index.html),
|
||||
then you've already installed a box before, and you don't need to run
|
||||
the commands below again. However, it is still worth reading this section
|
||||
to learn more about how boxes are managed.
|
||||
|
||||
Boxes are added to Vagrant with `vagrant box add`. This stores the box
|
||||
under a specific name so that multiple Vagrant environments can re-use it.
|
||||
If you haven't added a box yet, you can do so now:
|
||||
|
||||
```
|
||||
$ vagrant box add hashicorp/precise32
|
||||
```
|
||||
|
||||
This will download the box named "hashicorp/precise32" from
|
||||
[HashiCorp's Atlas box catalog](https://atlas.hashicorp.com/boxes/search), a place where you can find
|
||||
and host boxes. While it is easiest to download boxes from HashiCorp's Atlas
|
||||
you can also add boxes from a local file, custom URL, etc.
|
||||
|
||||
Added boxes can be re-used by multiple projects. Each project uses a box
|
||||
as an initial image to clone from, and never modifies the actual base
|
||||
image. This means that if you have two projects both using the `hashicorp/precise32`
|
||||
box we just added, adding files in one guest machine will have no effect
|
||||
on the other machine.
|
||||
|
||||
## Using a Box
|
||||
|
||||
Now that the box has been added to Vagrant, we need to configure our
|
||||
project to use it as a base. Open the `Vagrantfile` and change the
|
||||
contents to the following:
|
||||
|
||||
```ruby
|
||||
Vagrant.configure("2") do |config|
|
||||
config.vm.box = "hashicorp/precise32"
|
||||
end
|
||||
```
|
||||
|
||||
The "hashicorp/precise32" in this case must match the name you used to add
|
||||
the box above. This is how Vagrant knows what box to use. If the box wasn't
|
||||
added before, Vagrant will automatically download and add the box when it is
|
||||
run.
|
||||
|
||||
In the next section, we'll bring up the Vagrant environment and interact
|
||||
with it a little bit.
|
||||
|
||||
## Finding More Boxes
|
||||
|
||||
For the remainder of this getting started guide, we'll only use the
|
||||
"hashicorp/precise32" box we added previously. But soon after finishing
|
||||
this getting started guide, the first question you'll probably have is
|
||||
"where do I find more boxes?"
|
||||
|
||||
The best place to find more boxes is [HashiCorp's Atlas box catalog](https://atlas.hashicorp.com/boxes/search).
|
||||
HashiCorp's Atlas has a public directory of freely available boxes that
|
||||
run various platforms and technologies. HashiCorp's Atlas also has a great search
|
||||
feature to allow you to find the box you care about.
|
||||
|
||||
In addition to finding free boxes, HashiCorp's Atlas lets you host your own
|
||||
boxes, as well as private boxes if you intend on creating boxes for your
|
||||
own organization.
|
||||
|
||||
<a href="/v2/getting-started/project_setup.html" class="button inline-button prev-button">Project Setup</a>
|
||||
<a href="/v2/getting-started/up.html" class="button inline-button next-button">Up And SSH</a>
|
|
@ -1,58 +0,0 @@
|
|||
---
|
||||
page_title: "Getting Started"
|
||||
sidebar_current: "gettingstarted"
|
||||
---
|
||||
|
||||
# Getting Started
|
||||
|
||||
The Vagrant getting started guide will walk you through your first
|
||||
Vagrant project, and show off the basics of the major features Vagrant
|
||||
has to offer.
|
||||
|
||||
If you're curious what benefits Vagrant has to offer, you
|
||||
should also read the ["Why Vagrant?"](/v2/why-vagrant/index.html) page.
|
||||
|
||||
The getting started guide will use Vagrant with [VirtualBox](http://www.virtualbox.org),
|
||||
since it is free, available on every major platform, and built-in to
|
||||
Vagrant. After reading the guide though, don't forget that Vagrant
|
||||
can work with [many other providers](/v2/getting-started/providers.html).
|
||||
|
||||
Before diving into your first project, please [install the latest version of Vagrant](/v2/installation/index.html).
|
||||
And because we'll be using [VirtualBox](http://www.virtualbox.org) as our
|
||||
provider for the getting started guide, please install that as well.
|
||||
|
||||
<div class="alert alert-block alert-info">
|
||||
<p>
|
||||
<strong>More of a book person?</strong> If you prefer to read a physical
|
||||
book, you may be interested in
|
||||
<a href="http://www.amazon.com/gp/product/1449335837/ref=as_li_qf_sp_asin_il_tl?ie=UTF8&camp=1789&creative=9325&creativeASIN=1449335837&linkCode=as2&tag=vagrant-20">
|
||||
Vagrant: Up and Running
|
||||
</a>, written by the author of Vagrant and published by O'Reilly.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
## Up and Running
|
||||
|
||||
```
|
||||
$ vagrant init hashicorp/precise32
|
||||
$ vagrant up
|
||||
```
|
||||
|
||||
After running the above two commands, you'll have a fully running
|
||||
virtual machine in [VirtualBox](https://www.virtualbox.org) running
|
||||
Ubuntu 12.04 LTS 32-bit. You can SSH into this machine with
|
||||
`vagrant ssh`, and when you're done playing around, you can remove
|
||||
all traces of it with `vagrant destroy`.
|
||||
|
||||
Now imagine every project you've ever worked on being this easy to
|
||||
set up.
|
||||
|
||||
With Vagrant, `vagrant up` is all you need to work on any project,
|
||||
to install every dependency that project needs, and to set up any
|
||||
networking and synced folders so you can continue working from the
|
||||
comfort of your own machine.
|
||||
|
||||
The rest of this guide will walk you through setting up a more
|
||||
complete project, covering more features of Vagrant.
|
||||
|
||||
<a href="/v2/getting-started/project_setup.html" class="button inline-button next-button">Project Setup</a>
|
|
@ -1,39 +0,0 @@
|
|||
---
|
||||
page_title: "Providers - Getting Started"
|
||||
sidebar_current: "gettingstarted-providers"
|
||||
---
|
||||
|
||||
# Providers
|
||||
|
||||
In this getting started guide, your project was always backed with
|
||||
[VirtualBox](http://www.virtualbox.org). But Vagrant can work with
|
||||
a wide variety of backend providers, such as [VMware](/v2/vmware/index.html),
|
||||
[AWS](http://github.com/mitchellh/vagrant-aws), and more. Read the page
|
||||
of each provider for more information on how to set them up.
|
||||
|
||||
Once you have a provider installed, you don't need to make any modifications
|
||||
to your Vagrantfile, just `vagrant up` with the proper provider and
|
||||
Vagrant will do the rest:
|
||||
|
||||
```
|
||||
$ vagrant up --provider=vmware_fusion
|
||||
...
|
||||
```
|
||||
|
||||
Ready to move that to the cloud? Take it to AWS:
|
||||
|
||||
```
|
||||
$ vagrant up --provider=aws
|
||||
...
|
||||
```
|
||||
|
||||
Once you run `vagrant up` with another provider, every other Vagrant
|
||||
command doesn't need to be told what provider to use. Vagrant can automatically
|
||||
figure it out. So when you're ready to SSH or destroy or anything else,
|
||||
just run the commands like normal, such as `vagrant destroy`. No extra
|
||||
flags necessary.
|
||||
|
||||
For more information on providers, read the full documentation on
|
||||
[providers](/v2/providers/index.html).
|
||||
|
||||
<a href="/v2/getting-started/rebuild.html" class="button inline-button prev-button">Rebuild</a>
|
|
@ -1,20 +0,0 @@
|
|||
---
|
||||
page_title: "Rebuild - Getting Started"
|
||||
sidebar_current: "gettingstarted-rebuild"
|
||||
---
|
||||
|
||||
# Rebuild
|
||||
|
||||
When you're ready to come back to your project, whether it is tomorrow,
|
||||
a week from now, or a year from now, getting it up and running is easy:
|
||||
|
||||
```
|
||||
$ vagrant up
|
||||
```
|
||||
|
||||
That's it! Since the Vagrant environment is already all configured via
|
||||
the Vagrantfile, you or any of your coworkers simply have to run a
|
||||
`vagrant up` at any time and Vagrant will recreate your work environment.
|
||||
|
||||
<a href="/v2/getting-started/teardown.html" class="button inline-button prev-button">Teardown</a>
|
||||
<a href="/v2/getting-started/providers.html" class="button inline-button next-button">Providers</a>
|
|
@ -1,59 +0,0 @@
|
|||
---
|
||||
page_title: "Share - Getting Started"
|
||||
sidebar_current: "gettingstarted-share"
|
||||
---
|
||||
|
||||
# Share
|
||||
|
||||
Now that we have a web server up and running and accessible from your machine,
|
||||
we have a fairly functional development environment. But in addition to
|
||||
providing a development environment, Vagrant also makes it easy to share
|
||||
and collaborate on these environments. The primary feature to do this in
|
||||
Vagrant is called [Vagrant Share](/v2/share/index.html).
|
||||
|
||||
Vagrant Share lets you share your Vagrant environment to anyone around the
|
||||
world. It will give you a URL that will route directly to your Vagrant
|
||||
environment from any device in the world that is connected to the internet.
|
||||
|
||||
## Login to HashiCorp's Atlas
|
||||
|
||||
Before being able to share your Vagrant environment, you'll need an account on
|
||||
[HashiCorp's Atlas](https://atlas.hashicorp.com). Don't worry, it's free.
|
||||
|
||||
Once you have an account, log in using `vagrant login`:
|
||||
|
||||
```
|
||||
$ vagrant login
|
||||
Username or Email: mitchellh
|
||||
Password (will be hidden):
|
||||
You're now logged in!
|
||||
```
|
||||
|
||||
## Share
|
||||
|
||||
Once you're logged in, run `vagrant share`:
|
||||
|
||||
```
|
||||
$ vagrant share
|
||||
...
|
||||
==> default: Your Vagrant Share is running!
|
||||
==> default: URL: http://frosty-weasel-0857.vagrantshare.com
|
||||
...
|
||||
```
|
||||
|
||||
Your URL will be different, so don't try the URL above. Instead, copy
|
||||
the URL that `vagrant share` outputted for you and visit that in a web
|
||||
browser. It should load the Apache page we setup earlier.
|
||||
|
||||
If you modify the files in your shared folder and refresh the URL, you'll
|
||||
see it update! The URL is routing directly into your Vagrant environment,
|
||||
and works from any device in the world that is connected to the internet.
|
||||
|
||||
To end the sharing session, hit `Ctrl+C` in your terminal. You can refresh
|
||||
the URL again to verify that your environment is no longer being shared.
|
||||
|
||||
Vagrant Share is much more powerful than simply HTTP sharing. For more
|
||||
details, see the [complete Vagrant Share documentation](/v2/share/index.html).
|
||||
|
||||
<a href="/v2/getting-started/networking.html" class="button inline-button prev-button">Networking</a>
|
||||
<a href="/v2/getting-started/teardown.html" class="button inline-button next-button">Teardown</a>
|
|
@ -1,26 +0,0 @@
|
|||
---
|
||||
page_title: "Hyper-V Provider"
|
||||
sidebar_current: "hyperv"
|
||||
---
|
||||
|
||||
# Hyper-V
|
||||
|
||||
Vagrant comes with support out of the box for [Hyper-V](http://en.wikipedia.org/wiki/Hyper-V),
|
||||
a native hypervisor written by Microsoft. Hyper-V is available by default for
|
||||
almost all Windows 8.1 installs.
|
||||
|
||||
The Hyper-V provider is compatible with Windows 8.1 only. Prior versions
|
||||
of Hyper-V do not include the necessary APIs for Vagrant to work.
|
||||
|
||||
Hyper-V must be enabled prior to using the provider. Most Windows installations
|
||||
will not have Hyper-V enabled by default. To enable Hyper-V, go to
|
||||
"Programs and Features", click on "Turn Windows features on or off" and check
|
||||
the box next to "Hyper-V."
|
||||
|
||||
<div class="alert alert-block alert-warn">
|
||||
<strong>Warning:</strong> Enabling Hyper-V will cause VirtualBox, VMware,
|
||||
and any other virtualization technology to no longer work. See
|
||||
<a href="http://www.hanselman.com/blog/SwitchEasilyBetweenVirtualBoxAndHyperVWithABCDEditBootEntryInWindows81.aspx">this blog post</a>
|
||||
for an easy way to create a boot entry to boot Windows without Hyper-V
|
||||
enabled, if there will be times you'll need other hypervisors.
|
||||
</div>
|
|
@ -1,10 +0,0 @@
|
|||
---
|
||||
sidebar_current: "overview"
|
||||
---
|
||||
|
||||
# Vagrant Documentation
|
||||
|
||||
Welcome to the Vagrant docs! This site documents Vagrant from top-to-bottom,
|
||||
covering every feature of Vagrant in great detail. If you're just getting
|
||||
started with Vagrant, it is highly recommended you start with the
|
||||
[getting started guide](/v2/getting-started/index.html).
|
|
@ -1,28 +0,0 @@
|
|||
---
|
||||
page_title: "Installing Vagrant"
|
||||
sidebar_current: "installation"
|
||||
---
|
||||
|
||||
# Installing Vagrant
|
||||
|
||||
Installing Vagrant is extremely easy. Head over to the
|
||||
[downloads page](http://www.vagrantup.com/downloads) and get the appropriate
|
||||
installer or package for your platform. Then install it using standard
|
||||
procedures for your operating system.
|
||||
|
||||
The installer will automatically add `vagrant` to your system path
|
||||
so that it is available in terminals. If it is not found, please try
|
||||
logging out and logging back in to your system (this is particularly necessary sometimes
|
||||
for Windows).
|
||||
|
||||
If you have an old version of Vagrant 1.0.x installed via [RubyGems](http://en.wikipedia.org/wiki/RubyGems),
|
||||
please remove it prior to installing a newer version of Vagrant.
|
||||
|
||||
<div class="alert alert-info">
|
||||
<h3>Gem Install?</h3>
|
||||
<p>
|
||||
Vagrant 1.0.x had the option to be installed as a
|
||||
<a href="http://en.wikipedia.org/wiki/RubyGems">RubyGem</a>. This
|
||||
installation method has been removed for installers and packages only.
|
||||
</p>
|
||||
</div>
|
|
@ -1,41 +0,0 @@
|
|||
---
|
||||
page_title: "Uninstalling Vagrant"
|
||||
sidebar_current: "installation-uninstallation"
|
||||
---
|
||||
|
||||
# Uninstalling Vagrant
|
||||
|
||||
Uninstalling Vagrant is easy and straightforward. You can either uninstall
|
||||
the Vagrant binary, the user data, or both. The sections below cover how to
|
||||
do this on every platform.
|
||||
|
||||
## Removing the Vagrant Program
|
||||
|
||||
Removing the Vagrant program will remove the `vagrant` binary and all
|
||||
dependencies from your machine. After uninstalling the program, you can
|
||||
always [reinstall](/v2/installation/index.html) again using standard
|
||||
methods.
|
||||
|
||||
On **Windows**, uninstall using the add/remove programs section of
|
||||
the control panel.
|
||||
|
||||
On **Mac OS X**, remove the `/Applications/Vagrant` directory and
|
||||
the `/usr/bin/vagrant` file. Also execute
|
||||
`sudo pkgutil --forget com.vagrant.vagrant` to have OS X
|
||||
forget that Vagrant was ever installed.
|
||||
|
||||
On **Linux**, remove the `/opt/vagrant` directory and the `/usr/bin/vagrant`
|
||||
file.
|
||||
|
||||
## Removing User Data
|
||||
|
||||
Removing the user data will remove all [boxes](/v2/boxes.html),
|
||||
[plugins](/v2/plugins/index.html), and any stored state that may be used
|
||||
by Vagrant. Removing the user data effectively makes Vagrant think it
|
||||
is once again a fresh install.
|
||||
|
||||
On every platform, remove the `~/.vagrant.d` directory to delete the
|
||||
user data.
|
||||
|
||||
Running Vagrant will automatically regenerate any data necessary to run,
|
||||
so it is safe to remove the user data at any time.
|
|
@ -1,26 +0,0 @@
|
|||
---
|
||||
page_title: "Upgrading from Vagrant 1.0"
|
||||
sidebar_current: "installation-upgrading-1-0"
|
||||
---
|
||||
|
||||
# Upgrading From Vagrant 1.0.x
|
||||
|
||||
The upgrade process from 1.0.x to 1.x is straightforward. Vagrant is quite
|
||||
[backwards compatible](/v2/installation/backwards-compatibility.html)
|
||||
with Vagrant 1.0.x, so you can simply reinstall Vagrant
|
||||
over your previous installation by downloading the latest package and
|
||||
installing it using standard procedures for your operating system.
|
||||
|
||||
As the [backwards compatibility](/v2/installation/backwards-compatibility.html)
|
||||
page says, **Vagrant 1.0.x plugins will not work with Vagrant 1.1+**. Many
|
||||
of these plugins have been updated to work with newer versions of Vagrant,
|
||||
so you can look to see if they've been updated. If not however, you'll have
|
||||
to remove them before upgrading.
|
||||
|
||||
It is recommended you remove _all_ plugins before upgrading, and then slowly
|
||||
add back the plugins. This usually makes for a smoother upgrade process.
|
||||
|
||||
**However**, if your version of Vagrant was installed via RubyGems, then
|
||||
you must `gem uninstall` the old version prior to installing the package for
|
||||
the latest version of Vagrant. The RubyGems-based installation method has
|
||||
been removed.
|
|
@ -1,27 +0,0 @@
|
|||
---
|
||||
page_title: "Upgrading Vagrant"
|
||||
sidebar_current: "installation-upgrading"
|
||||
---
|
||||
|
||||
# Upgrading Vagrant
|
||||
|
||||
If you're upgrading from Vagrant 1.0.x, please read the
|
||||
[specific page dedicated to that](/v2/installation/upgrading-from-1-0.html).
|
||||
This page covers upgrading Vagrant in general during the 1.x series.
|
||||
|
||||
Upgrades of Vagrant during the 1.x release series are straightforward:
|
||||
download the new package, install it over the existing package. The installers
|
||||
will properly remove old files, and Linux package managers should do the
|
||||
same thing.
|
||||
|
||||
Note that Vagrantfile stability for the new Vagrantfile syntax is not
|
||||
promised until 2.0 final. So while Vagrantfiles made for 1.0.x will
|
||||
[continue to work](/v2/installation/backwards-compatibility.html),
|
||||
newer Vagrantfiles may have backwards incompatible changes until 2.0 final.
|
||||
|
||||
<div class="alert alert-info alert-block">
|
||||
<strong>Run into troubles upgrading?</strong> Please
|
||||
<a href="https://github.com/mitchellh/vagrant/issues">report an issue</a>
|
||||
if you run into problems upgrading. Upgrades are meant to be a smooth
|
||||
process and we consider it a bug if it wasn't.
|
||||
</div>
|
|
@ -1,9 +0,0 @@
|
|||
---
|
||||
page_title: "Other"
|
||||
sidebar_current: "other"
|
||||
---
|
||||
|
||||
# Other
|
||||
|
||||
This section covers other information that doesn't quite fit under the
|
||||
other categories. Please see the navigation to the left.
|
|
@ -1,9 +0,0 @@
|
|||
---
|
||||
page_title: "Custom Provider - Providers"
|
||||
sidebar_current: "providers-custom"
|
||||
---
|
||||
|
||||
# Custom Provider
|
||||
|
||||
To learn how to make your own custom providers, read the plugin development
|
||||
guide on [creating custom providers](/v2/plugins/providers.html).
|
|
@ -1,11 +0,0 @@
|
|||
---
|
||||
page_title: "Installation - Providers"
|
||||
sidebar_current: "providers-installation"
|
||||
---
|
||||
|
||||
# Provider Installation
|
||||
|
||||
Providers are distributed as Vagrant plugins, and are therefore installed
|
||||
using [standard plugin installation steps](/v2/plugins/usage.html). After
|
||||
installing a plugin which contains a provider, the provider should
|
||||
immediately be available.
|
|
@ -1,26 +0,0 @@
|
|||
---
|
||||
page_title: "Custom Provider - Vagrant Share"
|
||||
sidebar_current: "share-provider"
|
||||
---
|
||||
|
||||
# Custom Provider
|
||||
|
||||
<div class="alert alert-warn">
|
||||
<p>
|
||||
<strong>Warning: Advanced Topic!</strong> This topic is related to
|
||||
developing Vagrant plugins. If you're not interested in this or
|
||||
you're just starting with Vagrant, it is safe to skip this page.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
If you're developing a [custom provider](/v2/plugins/providers.html), you'll
|
||||
need to do a tiny bit more work in order for it to work well with Vagrant
|
||||
Share.
|
||||
|
||||
For now, this is only one step:
|
||||
|
||||
* `public_address` provider capability - You must implement this capability
|
||||
to return a string that is an address that can be used to access the
|
||||
guest from Vagrant. This does not need to be a globally routable address,
|
||||
it only needs to be accessible from the machine running Vagrant. If you
|
||||
can't detect an address, return `nil`.
|
|
@ -1,17 +0,0 @@
|
|||
---
|
||||
page_title: "Synced Folders"
|
||||
sidebar_current: "syncedfolder"
|
||||
---
|
||||
|
||||
# Synced Folders
|
||||
|
||||
Synced folders enable Vagrant to sync a folder on the host machine to the
|
||||
guest machine, allowing you to continue working on your project's files
|
||||
on your host machine, but use the resources in the guest machine to
|
||||
compile or run your project.
|
||||
|
||||
By default, Vagrant will share your project directory (the directory
|
||||
with the [Vagrantfile](/v2/vagrantfile/index.html)) to `/vagrant`.
|
||||
|
||||
Read the [basic usage](/v2/synced-folders/basic_usage.html) page to get started
|
||||
with synced folders.
|
|
@ -0,0 +1,41 @@
|
|||
{
|
||||
"variables": {
|
||||
"aws_access_key_id": "{{ env `AWS_ACCESS_KEY_ID` }}",
|
||||
"aws_secret_access_key": "{{ env `AWS_SECRET_ACCESS_KEY` }}",
|
||||
"aws_region": "{{ env `AWS_REGION` }}",
|
||||
"fastly_api_key": "{{ env `FASTLY_API_KEY` }}"
|
||||
},
|
||||
"builders": [
|
||||
{
|
||||
"type": "docker",
|
||||
"image": "ruby:2.3-slim",
|
||||
"commit": "true"
|
||||
}
|
||||
],
|
||||
"provisioners": [
|
||||
{
|
||||
"type": "file",
|
||||
"source": ".",
|
||||
"destination": "/app"
|
||||
},
|
||||
{
|
||||
"type": "shell",
|
||||
"environment_vars": [
|
||||
"AWS_ACCESS_KEY_ID={{ user `aws_access_key_id` }}",
|
||||
"AWS_SECRET_ACCESS_KEY={{ user `aws_secret_access_key` }}",
|
||||
"AWS_REGION={{ user `aws_region` }}",
|
||||
"FASTLY_API_KEY={{ user `fastly_api_key` }}"
|
||||
],
|
||||
"inline": [
|
||||
"apt-get update",
|
||||
"apt-get install -y build-essential curl git libffi-dev s3cmd wget",
|
||||
"cd /app",
|
||||
|
||||
"bundle check || bundle install --jobs 7",
|
||||
"bundle exec middleman build",
|
||||
|
||||
"/bin/bash ./scripts/deploy.sh"
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
|
@ -0,0 +1,89 @@
|
|||
#!/bin/bash
|
||||
set -e
|
||||
|
||||
PROJECT="vagrant"
|
||||
PROJECT_URL="www.vagrantup.com"
|
||||
FASTLY_SERVICE_ID="7GrxRJP3PVBuqQbyxYQ0MV"
|
||||
|
||||
# Ensure the proper AWS environment variables are set
|
||||
if [ -z "$AWS_ACCESS_KEY_ID" ]; then
|
||||
echo "Missing AWS_ACCESS_KEY_ID!"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ -z "$AWS_SECRET_ACCESS_KEY" ]; then
|
||||
echo "Missing AWS_SECRET_ACCESS_KEY!"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Ensure the proper Fastly keys are set
|
||||
if [ -z "$FASTLY_API_KEY" ]; then
|
||||
echo "Missing FASTLY_API_KEY!"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Ensure we have s3cmd installed
|
||||
if ! command -v "s3cmd" >/dev/null 2>&1; then
|
||||
echo "Missing s3cmd!"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Get the parent directory of where this script is and change into our website
|
||||
# directory
|
||||
SOURCE="${BASH_SOURCE[0]}"
|
||||
while [ -h "$SOURCE" ] ; do SOURCE="$(readlink "$SOURCE")"; done
|
||||
DIR="$(cd -P "$( dirname "$SOURCE" )/.." && pwd)"
|
||||
|
||||
# Delete any .DS_Store files for our OS X friends.
|
||||
find "$DIR" -type f -name '.DS_Store' -delete
|
||||
|
||||
# Upload the files to S3 - we disable mime-type detection by the python library
|
||||
# and just guess from the file extension because it is surprisingly more
|
||||
# accurate, especially for CSS and javascript. We also tag the uploaded files
|
||||
# with the proper Surrogate-Key, which we will later purge in our API call to
|
||||
# Fastly.
|
||||
if [ -z "$NO_UPLOAD" ]; then
|
||||
echo "Uploading to S3..."
|
||||
|
||||
# Check that the site has been built
|
||||
if [ ! -d "$DIR/build" ]; then
|
||||
echo "Missing compiled website! Run 'make build' to compile!"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
s3cmd \
|
||||
--quiet \
|
||||
--delete-removed \
|
||||
--guess-mime-type \
|
||||
--no-mime-magic \
|
||||
--acl-public \
|
||||
--recursive \
|
||||
--add-header="Cache-Control: max-age=31536000" \
|
||||
--add-header="x-amz-meta-surrogate-key: site-$PROJECT" \
|
||||
sync "$DIR/build/" "s3://hc-sites/$PROJECT/latest/"
|
||||
fi
|
||||
|
||||
# Perform a soft-purge of the surrogate key.
|
||||
if [ -z "$NO_PURGE" ]; then
|
||||
echo "Purging Fastly cache..."
|
||||
curl \
|
||||
--fail \
|
||||
--silent \
|
||||
--output /dev/null \
|
||||
--request "POST" \
|
||||
--header "Accept: application/json" \
|
||||
--header "Fastly-Key: $FASTLY_API_KEY" \
|
||||
--header "Fastly-Soft-Purge: 1" \
|
||||
"https://api.fastly.com/service/$FASTLY_SERVICE_ID/purge/site-$PROJECT"
|
||||
fi
|
||||
|
||||
# Warm the cache with recursive wget.
|
||||
if [ -z "$NO_WARM" ]; then
|
||||
echo "Warming Fastly cache..."
|
||||
wget \
|
||||
--recursive \
|
||||
--delete-after \
|
||||
--level 0 \
|
||||
--quiet \
|
||||
"https://$PROJECT_URL/"
|
||||
fi
|
|
@ -0,0 +1,14 @@
|
|||
---
|
||||
layout: "inner"
|
||||
page_title: "Not Found"
|
||||
noindex: true
|
||||
description: |-
|
||||
Page not found!
|
||||
---
|
||||
|
||||
# Page Not Found
|
||||
|
||||
Sorry, the page you tried to visit does not exist. This could be our fault,
|
||||
and if so we will fix that up right away.
|
||||
|
||||
Please go back, or go back to get back on track.
|
|
@ -0,0 +1,23 @@
|
|||
---
|
||||
layout: "about"
|
||||
sidebar_current: "about-main"
|
||||
page_title: "About"
|
||||
description: |-
|
||||
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.
|
||||
---
|
||||
|
||||
# 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](https://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](https://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](https://github.com/mitchellh/vagrant).
|
Before Width: | Height: | Size: 1.7 KiB After Width: | Height: | Size: 1.7 KiB |
Before Width: | Height: | Size: 1.8 KiB After Width: | Height: | Size: 1.8 KiB |
Before Width: | Height: | Size: 1.9 KiB After Width: | Height: | Size: 1.9 KiB |
After Width: | Height: | Size: 16 KiB |
After Width: | Height: | Size: 11 KiB |
Before Width: | Height: | Size: 3.9 KiB After Width: | Height: | Size: 3.9 KiB |
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 1.1 KiB |
After Width: | Height: | Size: 2.6 KiB |
After Width: | Height: | Size: 69 KiB |
After Width: | Height: | Size: 701 B |
After Width: | Height: | Size: 2.0 KiB |
Before Width: | Height: | Size: 12 KiB After Width: | Height: | Size: 12 KiB |
After Width: | Height: | Size: 883 B |
After Width: | Height: | Size: 3.1 KiB |