Repository: cordova-docs Updated Branches: refs/heads/master 6df222bf3 -> 1fcfb55b6
Add Vagrant support. Project: http://git-wip-us.apache.org/repos/asf/cordova-docs/repo Commit: http://git-wip-us.apache.org/repos/asf/cordova-docs/commit/e1030bb9 Tree: http://git-wip-us.apache.org/repos/asf/cordova-docs/tree/e1030bb9 Diff: http://git-wip-us.apache.org/repos/asf/cordova-docs/diff/e1030bb9 Branch: refs/heads/master Commit: e1030bb90fe478f11078c11485161e4abb1cdb4d Parents: 6df222b Author: Michael Brooks <[email protected]> Authored: Mon Jun 9 15:42:51 2014 -0700 Committer: Michael Brooks <[email protected]> Committed: Mon Jun 9 16:21:27 2014 -0700 ---------------------------------------------------------------------- .gitignore | 1 + README.md | 35 ++++++++++- Vagrantfile | 125 +++++++++++++++++++++++++++++++++++++++ lib/cordova/version_menu.rb | 3 +- vagrant/cordova-docs.sh | 30 ++++++++++ 5 files changed, 191 insertions(+), 3 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cordova-docs/blob/e1030bb9/.gitignore ---------------------------------------------------------------------- diff --git a/.gitignore b/.gitignore index 71e5512..e3db388 100644 --- a/.gitignore +++ b/.gitignore @@ -9,3 +9,4 @@ _* /markdown /Gemfile.lock *Screen Shot [0-9]* +/.vagrant http://git-wip-us.apache.org/repos/asf/cordova-docs/blob/e1030bb9/README.md ---------------------------------------------------------------------- diff --git a/README.md b/README.md index 984228b..5e65910 100644 --- a/README.md +++ b/README.md @@ -77,8 +77,39 @@ Each language can override the default template in `template/docs/LANGUAGE`. Please see the `STYLESHEET.md` file for guildelines on language and usage. -Generating the Documentation ----------------------------- +## Generating Documentation with Vagrant + +### Setup + +- [Install Vagrant](http://www.vagrantup.com/downloads.html) +- [Install VirtualBox](https://www.virtualbox.org/wiki/Downloads) + +### Initialize Vagrant Box + + $ cd cordova-docs/ + $ vagrant up + +### Build the Documentation + + $ vagrant ssh + $ cd /vagrant # shared copy of this repo + $ + $ ./bin/generate # compile all docs + $ ./bin/generate en edge # compile English Edge docs + $ + $ exit # exit the ssh tunnel + +The `/vagrant` directory is a shared copy of this repository. When the +documentation is done generating, you will see a `public/` directory on +both your virtual and local machine. + +### Shutdown the Virtual Machine + + $ vagrant suspend # pause the vm and save its state + $ vagrant halt # shutdown the vm + $ vagrant destroy # delete the vm + +## Generating Documentation Locally ### Install http://git-wip-us.apache.org/repos/asf/cordova-docs/blob/e1030bb9/Vagrantfile ---------------------------------------------------------------------- diff --git a/Vagrantfile b/Vagrantfile new file mode 100644 index 0000000..90873c9 --- /dev/null +++ b/Vagrantfile @@ -0,0 +1,125 @@ +# -*- mode: ruby -*- +# vi: set ft=ruby : + +# Vagrantfile API/syntax version. Don't touch unless you know what you're doing! +VAGRANTFILE_API_VERSION = "2" + +Vagrant.configure(VAGRANTFILE_API_VERSION) do |config| + # All Vagrant configuration is done here. The most common configuration + # options are documented and commented below. For a complete reference, + # please see the online documentation at vagrantup.com. + + # Every Vagrant virtual environment requires a box to build off of. + config.vm.box = "hashicorp/precise32" + + # Provision for cordova-docs generator + config.vm.provision :shell, path: "vagrant/cordova-docs.sh" + + # Disable automatic box update checking. If you disable this, then + # boxes will only be checked for updates when the user runs + # `vagrant box outdated`. This is not recommended. + # config.vm.box_check_update = false + + # Create a forwarded port mapping which allows access to a specific port + # within the machine from a port on the host machine. In the example below, + # accessing "localhost:8080" will access port 80 on the guest machine. + # config.vm.network "forwarded_port", guest: 80, host: 8080 + + # Create a private network, which allows host-only access to the machine + # using a specific IP. + # config.vm.network "private_network", ip: "192.168.33.10" + + # Create a public network, which generally matched to bridged network. + # Bridged networks make the machine appear as another physical device on + # your network. + # config.vm.network "public_network" + + # If true, then any SSH connections made will enable agent forwarding. + # Default value: false + # config.ssh.forward_agent = true + + # Share an additional folder to the guest VM. The first argument is + # the path on the host to the actual folder. The second argument is + # the path on the guest to mount the folder. And the optional third + # argument is a set of non-required options. + # config.vm.synced_folder "../data", "/vagrant_data" + + # Provider-specific configuration so you can fine-tune various + # backing providers for Vagrant. These expose provider-specific options. + # Example for VirtualBox: + # + # config.vm.provider "virtualbox" do |vb| + # # Don't boot with headless mode + # vb.gui = true + # + # # Use VBoxManage to customize the VM. For example to change memory: + # vb.customize ["modifyvm", :id, "--memory", "1024"] + # end + # + # View the documentation for the provider you're using for more + # information on available options. + + # Enable provisioning with CFEngine. CFEngine Community packages are + # automatically installed. For example, configure the host as a + # policy server and optionally a policy file to run: + # + # config.vm.provision "cfengine" do |cf| + # cf.am_policy_hub = true + # # cf.run_file = "motd.cf" + # end + # + # You can also configure and bootstrap a client to an existing + # policy server: + # + # config.vm.provision "cfengine" do |cf| + # cf.policy_server_address = "10.0.2.15" + # end + + # Enable provisioning with Puppet stand alone. Puppet manifests + # are contained in a directory path relative to this Vagrantfile. + # You will need to create the manifests directory and a manifest in + # the file default.pp in the manifests_path directory. + # + # config.vm.provision "puppet" do |puppet| + # puppet.manifests_path = "manifests" + # puppet.manifest_file = "site.pp" + # end + + # Enable provisioning with chef solo, specifying a cookbooks path, roles + # path, and data_bags path (all relative to this Vagrantfile), and adding + # some recipes and/or roles. + # + # config.vm.provision "chef_solo" do |chef| + # chef.cookbooks_path = "../my-recipes/cookbooks" + # chef.roles_path = "../my-recipes/roles" + # chef.data_bags_path = "../my-recipes/data_bags" + # chef.add_recipe "mysql" + # chef.add_role "web" + # + # # You may also specify custom JSON attributes: + # chef.json = { mysql_password: "foo" } + # end + + # Enable provisioning with chef server, specifying the chef server URL, + # and the path to the validation key (relative to this Vagrantfile). + # + # The Opscode Platform uses HTTPS. Substitute your organization for + # ORGNAME in the URL and validation key. + # + # If you have your own Chef Server, use the appropriate URL, which may be + # HTTP instead of HTTPS depending on your configuration. Also change the + # validation key to validation.pem. + # + # config.vm.provision "chef_client" do |chef| + # chef.chef_server_url = "https://api.opscode.com/organizations/ORGNAME" + # chef.validation_key_path = "ORGNAME-validator.pem" + # end + # + # If you're using the Opscode platform, your validator client is + # ORGNAME-validator, replacing ORGNAME with your organization name. + # + # If you have your own Chef Server, the default validation client name is + # chef-validator, unless you changed the configuration. + # + # chef.validation_client_name = "ORGNAME-validator" +end http://git-wip-us.apache.org/repos/asf/cordova-docs/blob/e1030bb9/lib/cordova/version_menu.rb ---------------------------------------------------------------------- diff --git a/lib/cordova/version_menu.rb b/lib/cordova/version_menu.rb index 1aa315b..3c6f613 100644 --- a/lib/cordova/version_menu.rb +++ b/lib/cordova/version_menu.rb @@ -42,12 +42,13 @@ class VersionMenu def generate_set doc optgroup_set = Nokogiri::XML::NodeSet.new doc docs_path = File.expand_path File.join(__FILE__, '..', '..', '..', 'docs') + glob_exp = File.join(docs_path, '*', '*', 'config.json') versions = {} languages = {} html = [] # build hash of languages and versions - Dir.glob(File.join docs_path, '**', 'config.json').each do |file| + Dir.glob(glob_exp).each do |file| version = File.basename(File.dirname file) lang = File.basename(File.dirname(File.dirname file)) language = JSON.parse(IO.read(file))['language'] http://git-wip-us.apache.org/repos/asf/cordova-docs/blob/e1030bb9/vagrant/cordova-docs.sh ---------------------------------------------------------------------- diff --git a/vagrant/cordova-docs.sh b/vagrant/cordova-docs.sh new file mode 100644 index 0000000..87260e7 --- /dev/null +++ b/vagrant/cordova-docs.sh @@ -0,0 +1,30 @@ +#!/usr/bin/env bash + +# update system +apt-get update + +# install curl +apt-get install -y curl + +# install joDoc +curl -sSL https://github.com/davebalmer/joDoc/archive/master.tar.gz | tar xvz +mv joDoc-master joDoc +echo "export PATH=$PATH:~/joDoc/" >> /home/vagrant/.bashrc +source /home/vagrant/.bashrc + +# install markdown +apt-get install -y markdown + +## install rvm and ruby 1.8.7 +curl -sSL https://get.rvm.io | bash -s stable +source /etc/profile.d/rvm.sh +rvm install ruby-1.8.7-p374 +rvm use ruby-1.8.7-p374 +gem install bundler + +# install nokogiri dependencies +apt-get install -y libxslt-dev libxml2-dev + +# setup project +cd /vagrant +bundle install
