LibrePlanet 2016 ================ This is the static HTML site for LibrePlanet 2016. Read on for instructions on how to setup your development environment. The repository has a master (development) branch and a stable (live) branch. To work on it, you'll edit your checkout of the master branch until you are satisfied, push it to the master branch on the Web server (), make sure it works well and make sure it works well. Then you'll copy it over to your checkout of the stable branch, then push that to the stable branch on the Web server (). Setting Up Apache ----------------- Apache is required in order to replicate the appearance of the website on the live and staging servers on your machine. If you don't want to install Apache, you can still work on the site, you just won't be able to see what it looks like until you push to the remote. Modifying Apache's configuration files and running its executables typically requires root access. So, you will most likely need to run the commands below as the root user using `sudo`. ### Enable server-side include module ``` a2enmod include ``` If this doesn't work, you may not have Apache installed. Install the package apache2 from your package manager. ### Create virtual host Create a new file called libreplanet (libreplanet.conf for Apache 2.4) in `/etc/apache2/sites-available` with the following contents: ``` RewriteEngine on ServerName local-dev.libreplanet.org ServerAdmin webmaster@localhost DocumentRoot /local-path/path-to-site Options Indexes FollowSymLinks MultiViews AllowOverride All Require all granted Order deny,allow deny from none allow from all SSILegacyExprParser on Options +Includes XBitHack on ErrorLog /home/owner/libreplanet-static/logs/error.log CustomLog /home/owner/libreplanet-static/access.log combined ``` Replace all instances of `/path/to/libreplanet-static` with the full path to the root directory of your local git repository. ### Enable virtual host ``` a2ensite your-virtual-host ``` Replace `your-virtual-host` with the name of virtual host file you made (in this case, libreplanet). ### Restart Apache ``` service apache2 restart ``` ### Edit your hosts file Edit your system's `/etc/hosts` file and add the following to the bottom: ``` 127.0.0.1 lp2016.libreplanet.org ``` ### Test Visit in your web browser. If everything is configured properly, you will see the LibrePlanet 2016 site, complete with header, sidebar, and footer. Creating a New Page ------------------- ### Boilerplate Add the following to your new page (it should remain commented out, as that is the syntax for SSI): ``` ``` This will include the header, banner, sidebar, footer and closing tags saving you from duplicating HTML. If JS is needed for a page, then create a file, containing the JS includes, in `/2016/includes/` & use SSI to include it in the page. Use `/2016/includes/boilerplate.html` to start a new page. ### Add Your Markup Add HTML markup in-between the sidebar and footer includes. ### Enable SSI Files that contain include directives must be marked as executable otherwise Apache will not parse them. (The directive `XBitHack on` in the .conf file pasted above enables this behavior). To mark a file as executable, run: ``` chmod +x foo.html ``` Replace `foo.html` with the desired file name. Schedule Markup --------------- ### Program Day Replace `DAY` by the day of the program (`sat` / `sun`). ### Time slot #### sessions

TIME - Timeslot Description

Replace `DAY` by the day of the program (`sat`/`sun`) and `M` by time slot number. #### break

TIME: Break

Replace `DAY` by the day of the program (`sat`/`sun`) and `M` by break number. ### Session

Session Heading

Replace `DAY` by the day of the program (`sat`/`sun`), `M` by the time slot number and `N` by the session number. Deploying to Staging/Live Servers --------------------------------- A system of git hooks automates deployment to the staging and live servers. When you push to the `master` branch, the site is deployed to . When you push to the `stable` branch, the site is deployed to . When you're happy with the state of the master branch and want to deploy live, do the following: ``` git checkout stable git merge master git push ``` This merges the master branch with the stable branch, updates the remote repository on the git server, and triggers a deploy to . CSS and JavaScript ------------------ This site is built with: * [Bootstrap 3.3.5](https://github.com/twbs/bootstrap/releases/download/v3.3.5/bootstrap-3.3.5-dist.zip) * [jQuery 1.11.1](http://code.jquery.com/jquery-1.11.3.js)