Merge docs and www into a single static site

This is a big commit, and I apologize in advance for the future
git-blames all pointing to me. This commit does a few things:

1.  Merges the website/docs and website/www repo into a single website repo
    to be in line with other HashiCorp projects
2.  Updates to use middleman-hashicorp
3.  Converts less to scss to be in line with other projects
4.  Updates page styles to be in line with other projects
5.  Optimizes images
6.  Prepare for S3 + Fastly deployment with scripts, etc.
7.  Removes blog posts (they have been transferred to hashicorp.com with
    redirects in place
8.  Updated sitemap generation script for better SEO
9.  Fixed many broken links
10. Add description to all fields
This commit is contained in:
Seth Vargo 2016-01-19 13:08:53 -05:00
parent af40b0e628
commit 5093f3120e
422 changed files with 5693 additions and 26316 deletions

16
.gitignore vendored
View File

@ -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/

3
website/Gemfile Normal file
View File

@ -0,0 +1,3 @@
source "https://rubygems.org"
gem "middleman-hashicorp", github: "hashicorp/middleman-hashicorp"

193
website/Gemfile.lock Normal file
View File

@ -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

View File

@ -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

59
website/config.rb Normal file
View File

@ -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

View File

@ -1,2 +0,0 @@
https://github.com/heroku/heroku-buildpack-ruby.git
https://github.com/hashicorp/heroku-buildpack-middleman.git

View File

@ -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

View File

@ -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

View File

@ -1 +0,0 @@
web: bundle exec thin start -p $PORT

View File

@ -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).

View File

@ -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

View File

@ -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

View File

@ -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__))

View 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

View File

@ -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

View File

@ -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

View File

@ -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>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 69 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 888 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 909 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 122 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 557 B

View File

@ -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;
})();

View File

@ -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);

File diff suppressed because one or more lines are too long

View File

@ -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 );

View File

@ -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);

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -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;
});

File diff suppressed because it is too large Load Diff

View File

@ -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');
});
});

View File

@ -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>

View File

@ -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 &amp; 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 &copy; <%= 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>

View File

@ -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;
}

View File

@ -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;
}
}

View File

@ -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;
}
}

View File

@ -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;
}
}
}
}

View File

@ -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;
}
}

View File

@ -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;
}
}

View File

@ -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;
}
}
}
}

View File

@ -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

View File

@ -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

View File

@ -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;
}

View File

@ -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;

File diff suppressed because it is too large Load Diff

View File

@ -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;
}
}

View File

@ -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;
}

View File

@ -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 );
}

View File

@ -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;
}
}

View File

@ -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';

View File

@ -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).

View File

@ -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.

View File

@ -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.

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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).

View File

@ -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>

View File

@ -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.

View File

@ -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.

View File

@ -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>

View File

@ -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.

View File

@ -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).

View File

@ -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.

View File

@ -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`.

View File

@ -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.

41
website/packer.json Normal file
View File

@ -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"
]
}
]
}

89
website/scripts/deploy.sh Executable file
View File

@ -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

View File

@ -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.

View File

@ -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).

View File

Before

Width:  |  Height:  |  Size: 1.7 KiB

After

Width:  |  Height:  |  Size: 1.7 KiB

View File

Before

Width:  |  Height:  |  Size: 1.8 KiB

After

Width:  |  Height:  |  Size: 1.8 KiB

View File

Before

Width:  |  Height:  |  Size: 1.9 KiB

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

View File

Before

Width:  |  Height:  |  Size: 3.9 KiB

After

Width:  |  Height:  |  Size: 3.9 KiB

View File

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 69 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 701 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

View File

Before

Width:  |  Height:  |  Size: 12 KiB

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 883 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

Some files were not shown because too many files have changed in this diff Show More