diff --git a/.bowerrc b/.bowerrc
index cc48978..69fad35 100644
--- a/.bowerrc
+++ b/.bowerrc
@@ -1,3 +1,3 @@
{
- "directory": "assets/vendor"
+ "directory": "bower_components"
}
diff --git a/.gitignore b/.gitignore
index 95cee23..8596abe 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,9 +1,6 @@
# Include your project-specific ignores in this file
# Read about how to use .gitignore: https://help.github.com/articles/ignoring-files
+dist
+bower_components
node_modules
-assets/vendor/*
-assets/css/main.css.map
-assets/css/*main*.css
-assets/js/*scripts*.js
-assets/js/vendor/modernizr.min.js
-assets/manifest.json
+npm-debug.log
diff --git a/.jscsrc b/.jscsrc
new file mode 100644
index 0000000..0dbec3a
--- /dev/null
+++ b/.jscsrc
@@ -0,0 +1,95 @@
+{
+ "requireCurlyBraces": [
+ "if",
+ "else",
+ "for",
+ "while",
+ "do",
+ "try",
+ "catch"
+ ],
+ "requireOperatorBeforeLineBreak": true,
+ "requireCamelCaseOrUpperCaseIdentifiers": true,
+ "maximumLineLength": {
+ "value": 80,
+ "allowComments": true,
+ "allowRegex": true
+ },
+ "validateIndentation": 2,
+ "validateQuoteMarks": "'",
+ "disallowMultipleLineStrings": true,
+ "disallowMixedSpacesAndTabs": true,
+ "disallowTrailingWhitespace": true,
+ "disallowSpaceAfterPrefixUnaryOperators": true,
+ "disallowMultipleVarDecl": true,
+ "disallowKeywordsOnNewLine": [
+ "else"
+ ],
+ "requireSpaceAfterKeywords": [
+ "if",
+ "else",
+ "for",
+ "while",
+ "do",
+ "switch",
+ "return",
+ "try",
+ "catch"
+ ],
+ "requireSpaceBeforeBinaryOperators": [
+ "=",
+ "+=",
+ "-=",
+ "*=",
+ "/=",
+ "%=",
+ "<<=",
+ ">>=",
+ ">>>=",
+ "&=",
+ "|=",
+ "^=",
+ "+=",
+ "+",
+ "-",
+ "*",
+ "/",
+ "%",
+ "<<",
+ ">>",
+ ">>>",
+ "&",
+ "|",
+ "^",
+ "&&",
+ "||",
+ "===",
+ "==",
+ ">=",
+ "<=",
+ "<",
+ ">",
+ "!=",
+ "!=="
+ ],
+ "requireSpaceAfterBinaryOperators": true,
+ "requireSpacesInConditionalExpression": true,
+ "requireSpaceBeforeBlockStatements": true,
+ "requireSpacesInForStatement": true,
+ "requireLineFeedAtFileEnd": true,
+ "requireSpacesInFunctionExpression": {
+ "beforeOpeningCurlyBrace": true
+ },
+ "disallowSpacesInAnonymousFunctionExpression": {
+ "beforeOpeningRoundBrace": true
+ },
+ "disallowSpacesInsideObjectBrackets": "all",
+ "disallowSpacesInsideArrayBrackets": "all",
+ "disallowSpacesInsideParentheses": true,
+ "validateJSDoc": {
+ "checkParamNames": true,
+ "requireParamTypes": true
+ },
+ "disallowMultipleLineBreaks": true,
+ "disallowNewlineBeforeBlockStatements": true
+}
diff --git a/.jshintrc b/.jshintrc
index 136eae5..02b1ec4 100644
--- a/.jshintrc
+++ b/.jshintrc
@@ -11,6 +11,5 @@
"newcap": true,
"noarg": true,
"node": true,
- "strict": false,
- "trailing": true
+ "strict": false
}
diff --git a/.travis.yml b/.travis.yml
new file mode 100644
index 0000000..9d20eb3
--- /dev/null
+++ b/.travis.yml
@@ -0,0 +1,19 @@
+sudo: false
+language: php
+php:
+- '5.6'
+- '5.5'
+- '5.4'
+
+before_install:
+ - npm install -g npm@latest
+ - npm install -g bower gulp jscs
+ - npm install
+ - pyrus install pear/PHP_CodeSniffer
+ - phpenv rehash
+
+script:
+ - npm run build
+ - npm run jshint
+ - npm run jscs
+ - phpcs --standard=ruleset.xml --extensions=php -n -s .
diff --git a/404.php b/404.php
index 51f0483..8d228d5 100644
--- a/404.php
+++ b/404.php
@@ -1,13 +1,7 @@
-
+
-
-
-
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 2f03fef..d2d1684 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,28 @@
+### 8.0.0: February 25th, 2015
+* Change theme name from Roots to Sage
+* Bump required PHP version to >=5.4
+* Add coding standards based on PSR-2
+* Add Travis CI
+* Add namespace
+* Use short array syntax
+* Use short echo syntax
+* Switch from Grunt to gulp, new front-end development workflow
+* Switch from Livereload to [BrowserSync](http://www.browsersync.io/)
+* Use wiredep for Sass and Less injection
+* Implement JSON file based asset pipeline with [asset-builder](https://github.com/austinpray/asset-builder)
+* Re-organize asset file structure
+* Re-organize stylesheet file structure
+* Add main.scss.example and instructions for using Sass
+* Use the primary theme stylesheet for the editor stylesheet
+* Remove theme activation, move to [wp-cli-theme-activation](https://github.com/roots/wp-cli-theme-activation)
+* Simplify 404 page
+* Convert Sidebar to ConditionalTagCheck
+* Update to jQuery 1.11.2
+* Use new core navigation template tag
+* Update sidebar to fix default template check
+* Update nav walker to correctly assign `active` classes for custom post types
+* Better support for CPT templates
+
### 7.0.3: December 18th, 2014
* Use `get_the_archive_title`
* Remove `wp_title`, add title-tag theme support
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index 84bf86c..5867fee 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -1,121 +1 @@
-# Contributing to Roots Theme
-
-Please take a moment to review this document in order to make the contribution
-process easy and effective for everyone involved.
-
-Following these guidelines helps to communicate that you respect the time of
-the developers managing and developing this open source project. In return,
-they should reciprocate that respect in addressing your issue or assessing
-patches and features.
-
-
-## Using the issue tracker
-
-The issue tracker is the preferred channel for [bug reports](#bugs),
-[features requests](#features) and [submitting pull
-requests](#pull-requests), but please respect the following restrictions:
-
-* Please **do not** use the issue tracker for personal support requests (use the
- [Roots Discourse](http://discourse.roots.io/)).
-
-* Please **do not** derail or troll issues. Keep the discussion on topic and
- respect the opinions of others.
-
-
-
-## Bug reports
-
-A bug is a _demonstrable problem_ that is caused by the code in the repository.
-Good bug reports are extremely helpful - thank you!
-
-Guidelines for bug reports:
-
-1. **Use the GitHub issue search** — check if the issue has already been
- reported.
-
-2. **Check if the issue has been fixed** — try to reproduce it using the
- latest `master` or development branch in the repository.
-
-3. **Isolate the problem to Roots** — make sure that the code in the Roots
-repository is _definitely_ responsible for the issue. Switch to a core WordPress
-theme (such as Twenty Thirteen) to confirm problems before reporting an issue.
-Make sure you have reproduced the bug with all plugins disabled. Any issues
-related to HTML5 Boilerplate or Bootstrap should be reported to their respected
-repositories and follow their contributing guidelines.
-
-A good bug report shouldn't leave others needing to chase you up for more
-information. Please try to be as detailed as possible in your report.
-
-
-
-## Feature requests
-
-Feature requests are welcome. But take a moment to find out whether your idea
-fits with the scope and aims of Roots. It's up to *you* to make a strong
-case to convince the Roots developers of the merits of this feature. Please
-provide as much detail and context as possible.
-
-
-
-## Pull requests
-
-Good pull requests - patches, improvements, new features - are a fantastic
-help. They should remain focused in scope and avoid containing unrelated
-commits.
-
-**Please ask first** before embarking on any significant pull request (e.g.
-implementing features, refactoring code), otherwise you risk spending a lot of
-time working on something that the developers might not want to merge into Roots.
-
-Please adhere to the coding conventions used throughout the project (indentation,
-comments, etc.).
-
-Adhering to the following this process is the best way to get your work
-included in Roots:
-
-1. [Fork](http://help.github.com/fork-a-repo/) Roots, clone your fork,
- and configure the remotes:
-
- ```bash
- # Clone your fork of the repo into the current directory
- git clone https://github.com//
- # Navigate to the newly cloned directory
- cd
- # Assign the original repo to a remote called "upstream"
- git remote add upstream https://github.com//
- ```
-
-2. If you cloned a while ago, get the latest changes from upstream:
-
- ```bash
- git checkout
- git pull upstream
- ```
-
-3. Create a new topic branch (off the main project development branch) to
- contain your feature, change, or fix:
-
- ```bash
- git checkout -b
- ```
-
-4. Commit your changes in logical chunks. Please adhere to these [git commit
- message guidelines](http://tbaggery.com/2008/04/19/a-note-about-git-commit-messages.html)
- or your code is unlikely be merged into the main project. Use Git's
- [interactive rebase](https://help.github.com/articles/interactive-rebase)
- feature to tidy up your commits before making them public.
-
-5. Locally merge (or rebase) the upstream development branch into your topic branch:
-
- ```bash
- git pull [--rebase] upstream
- ```
-
-6. Push your topic branch up to your fork:
-
- ```bash
- git push origin
- ```
-
-10. [Open a Pull Request](https://help.github.com/articles/using-pull-requests/)
- with a clear title and description.
+Please read [Contributing to Roots Projects](https://github.com/roots/guidelines/blob/master/CONTRIBUTING.md)
diff --git a/Gruntfile.js b/Gruntfile.js
deleted file mode 100644
index d93c7b3..0000000
--- a/Gruntfile.js
+++ /dev/null
@@ -1,178 +0,0 @@
-'use strict';
-module.exports = function(grunt) {
- // Load all tasks
- require('load-grunt-tasks')(grunt);
- // Show elapsed time
- require('time-grunt')(grunt);
-
- var jsFileList = [
- 'assets/vendor/bootstrap/js/transition.js',
- 'assets/vendor/bootstrap/js/alert.js',
- 'assets/vendor/bootstrap/js/button.js',
- 'assets/vendor/bootstrap/js/carousel.js',
- 'assets/vendor/bootstrap/js/collapse.js',
- 'assets/vendor/bootstrap/js/dropdown.js',
- 'assets/vendor/bootstrap/js/modal.js',
- 'assets/vendor/bootstrap/js/tooltip.js',
- 'assets/vendor/bootstrap/js/popover.js',
- 'assets/vendor/bootstrap/js/scrollspy.js',
- 'assets/vendor/bootstrap/js/tab.js',
- 'assets/vendor/bootstrap/js/affix.js',
- 'assets/js/plugins/*.js',
- 'assets/js/_*.js'
- ];
-
- grunt.initConfig({
- jshint: {
- options: {
- jshintrc: '.jshintrc'
- },
- all: [
- 'Gruntfile.js',
- 'assets/js/*.js',
- '!assets/js/scripts.js',
- '!assets/**/*.min.*'
- ]
- },
- less: {
- dev: {
- files: {
- 'assets/css/main.css': [
- 'assets/less/main.less'
- ]
- },
- options: {
- compress: false,
- // LESS source map
- // To enable, set sourceMap to true and update sourceMapRootpath based on your install
- sourceMap: true,
- sourceMapFilename: 'assets/css/main.css.map',
- sourceMapRootpath: '/app/themes/roots/'
- }
- },
- build: {
- files: {
- 'assets/css/main.min.css': [
- 'assets/less/main.less'
- ]
- },
- options: {
- compress: true
- }
- }
- },
- concat: {
- options: {
- separator: ';',
- },
- dist: {
- src: [jsFileList],
- dest: 'assets/js/scripts.js',
- },
- },
- uglify: {
- dist: {
- files: {
- 'assets/js/scripts.min.js': [jsFileList]
- }
- }
- },
- autoprefixer: {
- options: {
- browsers: ['last 2 versions', 'ie 8', 'ie 9', 'android 2.3', 'android 4', 'opera 12']
- },
- dev: {
- options: {
- map: {
- prev: 'assets/css/'
- }
- },
- src: 'assets/css/main.css'
- },
- build: {
- src: 'assets/css/main.min.css'
- }
- },
- modernizr: {
- build: {
- devFile: 'assets/vendor/modernizr/modernizr.js',
- outputFile: 'assets/js/vendor/modernizr.min.js',
- files: {
- 'src': [
- ['assets/js/scripts.min.js'],
- ['assets/css/main.min.css']
- ]
- },
- extra: {
- shiv: false
- },
- uglify: true,
- parseFiles: true
- }
- },
- version: {
- default: {
- options: {
- format: true,
- length: 32,
- manifest: 'assets/manifest.json',
- querystring: {
- style: 'roots_css',
- script: 'roots_js'
- }
- },
- files: {
- 'lib/scripts.php': 'assets/{css,js}/{main,scripts}.min.{css,js}'
- }
- }
- },
- watch: {
- less: {
- files: [
- 'assets/less/*.less',
- 'assets/less/**/*.less'
- ],
- tasks: ['less:dev', 'autoprefixer:dev']
- },
- js: {
- files: [
- jsFileList,
- '<%= jshint.all %>'
- ],
- tasks: ['jshint', 'concat']
- },
- livereload: {
- // Browser live reloading
- // https://github.com/gruntjs/grunt-contrib-watch#live-reloading
- options: {
- livereload: false
- },
- files: [
- 'assets/css/main.css',
- 'assets/js/scripts.js',
- 'templates/*.php',
- '*.php'
- ]
- }
- }
- });
-
- // Register tasks
- grunt.registerTask('default', [
- 'dev'
- ]);
- grunt.registerTask('dev', [
- 'jshint',
- 'less:dev',
- 'autoprefixer:dev',
- 'concat'
- ]);
- grunt.registerTask('build', [
- 'jshint',
- 'less:build',
- 'autoprefixer:build',
- 'uglify',
- 'modernizr',
- 'version'
- ]);
-};
diff --git a/README.md b/README.md
index 638b90a..8ec683d 100644
--- a/README.md
+++ b/README.md
@@ -1,43 +1,50 @@
-# [Roots Starter Theme](http://roots.io/)
-[](https://david-dm.org/roots/roots#info=devDependencies)
+# [Sage](https://roots.io/sage/)
+[](https://travis-ci.org/roots/sage)
+[](https://david-dm.org/roots/sage#info=devDependencies)
-Roots is a WordPress starter theme based on [HTML5 Boilerplate](http://html5boilerplate.com/) & [Bootstrap](http://getbootstrap.com/) that will help you make better themes.
+Sage is a WordPress starter theme based on HTML5 Boilerplate, gulp, Bower, and Bootstrap, that will help you make better themes.
-* Source: [https://github.com/roots/roots](https://github.com/roots/roots)
-* Homepage: [http://roots.io/](http://roots.io/)
-* Documentation: [http://roots.io/docs/](http://roots.io/docs/)
-* Twitter: [@rootswp](https://twitter.com/rootswp), [@retlehs](https://twitter.com/retlehs), [@swalkinshaw](https://twitter.com/swalkinshaw), [@Foxaii](https://twitter.com/Foxaii), [@c2foryou](https://twitter.com/c2foryou)
+* Source: [https://github.com/roots/sage](https://github.com/roots/sage)
+* Homepage: [https://roots.io/sage/](https://roots.io/sage/)
+* Documentation: [https://roots.io/sage/docs/](https://roots.io/sage/docs/)
+* Twitter: [@rootswp](https://twitter.com/rootswp), [@retlehs](https://twitter.com/retlehs), [@swalkinshaw](https://twitter.com/swalkinshaw), [@Foxaii](https://twitter.com/Foxaii), [@c2foryou](https://twitter.com/c2foryou), [@austinpray](https://twitter.com/austinpray)
* Newsletter: [Subscribe](http://roots.io/subscribe/)
-* Forum: [http://discourse.roots.io/](http://discourse.roots.io/)
+* Forum: [https://discourse.roots.io/](https://discourse.roots.io/)
+
+## Requirements
+
+* PHP >= 5.4
+* Node.js >= 0.10
+* npm >= 2.1.5 (`npm install -g npm@latest`)
+* gulp (`npm install -g gulp`)
+* Bower (`npm install -g bower`)
## Features
-* [Grunt](http://roots.io/using-grunt-for-wordpress-theme-development/) for compiling LESS to CSS, checking for JS errors, live reloading, concatenating and minifying files, versioning assets, and generating lean Modernizr builds
+* [gulp](http://gulpjs.com/) build script that compiles both Less and Sass, checks for JavaScript errors, optimizes images, and concatenates and minifies files
+* [BrowserSync](http://www.browsersync.io/) for keeping multiple browsers and devices synchronized while testing, along with injecting updated CSS and JS into your browser while you're developing
* [Bower](http://bower.io/) for front-end package management
+* [asset-builder](https://github.com/austinpray/asset-builder) for the JSON file based asset pipeline
+* [Bootstrap](http://getbootstrap.com/)
+* [Theme wrapper](https://roots.io/sage/docs/theme-wrapper/)
* [HTML5 Boilerplate](http://html5boilerplate.com/)
* The latest [jQuery](http://jquery.com/) via Google CDN, with a local fallback
- * The latest [Modernizr](http://modernizr.com/) build for feature detection, with lean builds with Grunt
+ * The latest [Modernizr](http://modernizr.com/) build for feature detection
* An optimized Google Analytics snippet
-* [Bootstrap](http://getbootstrap.com/)
-* Organized file and template structure
* ARIA roles and microformats
-* [Theme activation](http://roots.io/roots-101/#theme-activation)
-* [Theme wrapper](http://roots.io/an-introduction-to-the-roots-theme-wrapper/)
* Cleaner HTML output of navigation menus
* Posts use the [hNews](http://microformats.org/wiki/hnews) microformat
-* [Multilingual ready](http://roots.io/wpml/) and over 30 available [community translations](https://github.com/roots/roots-translations)
-
-### Additional features
+* [Multilingual ready](https://roots.io/wpml/) and over 30 available [community translations](https://github.com/roots/sage-translations)
Install the [Soil](https://github.com/roots/soil) plugin to enable additional features:
+* Cleaner output of `wp_head` and enqueued assets
* Root relative URLs
* Nice search (`/search/query/`)
-* Cleaner output of `wp_head` and enqueued assets markup
## Installation
-Clone the git repo - `git clone git://github.com/roots/roots.git` - or [download it](https://github.com/roots/roots/zipball/master) and then rename the directory to the name of your theme or website.
+Clone the git repo - `git clone https://github.com/roots/sage.git` and then rename the directory to the name of your theme or website.
If you don't use [Bedrock](https://github.com/roots/bedrock), you'll need to add the following to your `wp-config.php` on your development installation:
@@ -45,10 +52,6 @@ If you don't use [Bedrock](https://github.com/roots/bedrock), you'll need to add
define('WP_ENV', 'development');
```
-## Theme activation
-
-Reference the [theme activation](http://roots.io/roots-101/#theme-activation) documentation to understand everything that happens once you activate Roots.
-
## Configuration
Edit `lib/config.php` to enable or disable theme features and to define a Google Analytics ID.
@@ -57,49 +60,41 @@ Edit `lib/init.php` to setup navigation menus, post thumbnail sizes, post format
## Theme development
-Roots uses [Grunt](http://gruntjs.com/) for compiling LESS to CSS, checking for JS errors, live reloading, concatenating and minifying files, versioning assets, and generating lean Modernizr builds.
+Sage uses [gulp](http://gulpjs.com/) as its build system and [Bower](http://bower.io/) to manage front-end packages.
-If you'd like to use Bootstrap Sass, look at the [Roots Sass](https://github.com/roots/roots-sass) fork.
+### Install gulp and Bower
-### Install Grunt and Bower
-
-**Unfamiliar with npm? Don't have node installed?** [Download and install node.js](http://nodejs.org/download/) before proceeding.
+Building the theme requires [node.js](http://nodejs.org/download/). We recommend you update to the latest version of npm: `npm install -g npm@latest`.
From the command line:
-1. Install `grunt-cli` and `bower` globally with `npm install -g grunt-cli bower`.
-2. Navigate to the theme directory, then run `npm install`. npm will look at `package.json` and automatically install the necessary dependencies. It will also automatically run `bower install`, which installs front-end packages defined in `bower.json`.
+1. Install [gulp](http://gulpjs.com) and [Bower](http://bower.io/) globally with `npm install -g gulp bower`
+2. Navigate to the theme directory, then run `npm install`
+3. Run `bower install`
-When completed, you'll be able to run the various Grunt commands provided from the command line.
+You now have all the necessary dependencies to run the build process.
-**N.B.**
-You will need write permission to the global npm directory to install `grunt-cli` and `bower`. You will also likely have to be using an elevated terminal or prefix the command with `sudo`, i.e., `sudo npm install -g grunt-cli bower`.
+### Available gulp commands
-We also advise against running as root user. NPM deliberately uses limited privileges when executing certain commands such as those included in the Roots post-install process, and when this happens to the root user, any file system objects that are not expressly writable by the root user will fail to write during the execution of the command. These might include directories such as `/var/www` or `/home/someotheruser`. If you're running as root and have problems, don't say we didn't warn you.
+* `gulp` — Compile and optimize the files in your assets directory
+* `gulp watch` — Compile assets when file changes are made
+* `gulp --production` — Compile assets for production (no source maps).
-### Available Grunt commands
-
-* `grunt dev` — Compile LESS to CSS, concatenate and validate JS
-* `grunt watch` — Compile assets when file changes are made
-* `grunt build` — Create minified assets that are used on non-development environments
+To use BrowserSync during `gulp watch` you need update `devUrl` at the bottom of `assets/manifest.json` to reflect your local development hostname.
## Documentation
-* [Roots 101](http://roots.io/roots-101/) — A guide to installing Roots, the files, and theme organization
-* [Theme Wrapper](http://roots.io/an-introduction-to-the-roots-theme-wrapper/) — Learn all about the theme wrapper
-* [Build Script](http://roots.io/using-grunt-for-wordpress-theme-development/) — A look into how Roots uses Grunt
-* [Roots Sidebar](http://roots.io/the-roots-sidebar/) — Understand how to display or hide the sidebar in Roots
+Sage documentation is available at [https://roots.io/sage/docs/](https://roots.io/sage/docs/).
## Contributing
-Everyone is welcome to help [contribute](CONTRIBUTING.md) and improve this project. There are several ways you can contribute:
+Contributions are welcome from everyone. We have [contributing guidelines](CONTRIBUTING.md) to help you get started.
-* Reporting issues (please read [issue guidelines](https://github.com/necolas/issue-guidelines))
-* Suggesting new features
-* Writing or refactoring code
-* Fixing [issues](https://github.com/roots/roots/issues)
-* Replying to questions on the [forum](http://discourse.roots.io/)
+## Community
-## Support
+Keep track of development and community news.
-Use the [Roots Discourse](http://discourse.roots.io/) to ask questions and get support.
+* Participate on the [Roots Discourse](https://discourse.roots.io/)
+* Follow [@rootswp on Twitter](https://twitter.com/rootswp)
+* Read and subscribe to the [Roots Blog](https://roots.io/blog/)
+* Subscribe to the [Roots Newsletter](https://roots.io/subscribe/)
diff --git a/assets/css/editor-style.css b/assets/css/editor-style.css
deleted file mode 100644
index cdd4cf1..0000000
--- a/assets/css/editor-style.css
+++ /dev/null
@@ -1,687 +0,0 @@
-/**
- * Updating this file with Bootstrap changes:
- *
- * 1. Go to http://getbootstrap.com/customize/
- * 2. Un-toggle everything
- * 3. Check: 'Typography'
- * 4. Download
- * 5. Remove margin property on body tag
- */
-
-html {
- font-family: sans-serif;
- -ms-text-size-adjust: 100%;
- -webkit-text-size-adjust: 100%;
-}
-article,
-aside,
-details,
-figcaption,
-figure,
-footer,
-header,
-hgroup,
-main,
-nav,
-section,
-summary {
- display: block;
-}
-audio,
-canvas,
-progress,
-video {
- display: inline-block;
- vertical-align: baseline;
-}
-audio:not([controls]) {
- display: none;
- height: 0;
-}
-[hidden],
-template {
- display: none;
-}
-a {
- background: transparent;
-}
-a:active,
-a:hover {
- outline: 0;
-}
-abbr[title] {
- border-bottom: 1px dotted;
-}
-b,
-strong {
- font-weight: bold;
-}
-dfn {
- font-style: italic;
-}
-h1 {
- font-size: 2em;
- margin: 0.67em 0;
-}
-mark {
- background: #ff0;
- color: #000;
-}
-small {
- font-size: 80%;
-}
-sub,
-sup {
- font-size: 75%;
- line-height: 0;
- position: relative;
- vertical-align: baseline;
-}
-sup {
- top: -0.5em;
-}
-sub {
- bottom: -0.25em;
-}
-img {
- border: 0;
-}
-svg:not(:root) {
- overflow: hidden;
-}
-figure {
- margin: 1em 40px;
-}
-hr {
- -moz-box-sizing: content-box;
- box-sizing: content-box;
- height: 0;
-}
-pre {
- overflow: auto;
-}
-code,
-kbd,
-pre,
-samp {
- font-family: monospace, monospace;
- font-size: 1em;
-}
-button,
-input,
-optgroup,
-select,
-textarea {
- color: inherit;
- font: inherit;
- margin: 0;
-}
-button {
- overflow: visible;
-}
-button,
-select {
- text-transform: none;
-}
-button,
-html input[type="button"],
-input[type="reset"],
-input[type="submit"] {
- -webkit-appearance: button;
- cursor: pointer;
-}
-button[disabled],
-html input[disabled] {
- cursor: default;
-}
-button::-moz-focus-inner,
-input::-moz-focus-inner {
- border: 0;
- padding: 0;
-}
-input {
- line-height: normal;
-}
-input[type="checkbox"],
-input[type="radio"] {
- box-sizing: border-box;
- padding: 0;
-}
-input[type="number"]::-webkit-inner-spin-button,
-input[type="number"]::-webkit-outer-spin-button {
- height: auto;
-}
-input[type="search"] {
- -webkit-appearance: textfield;
- -moz-box-sizing: content-box;
- -webkit-box-sizing: content-box;
- box-sizing: content-box;
-}
-input[type="search"]::-webkit-search-cancel-button,
-input[type="search"]::-webkit-search-decoration {
- -webkit-appearance: none;
-}
-fieldset {
- border: 1px solid #c0c0c0;
- margin: 0 2px;
- padding: 0.35em 0.625em 0.75em;
-}
-legend {
- border: 0;
- padding: 0;
-}
-textarea {
- overflow: auto;
-}
-optgroup {
- font-weight: bold;
-}
-table {
- border-collapse: collapse;
- border-spacing: 0;
-}
-td,
-th {
- padding: 0;
-}
-* {
- -webkit-box-sizing: border-box;
- -moz-box-sizing: border-box;
- box-sizing: border-box;
-}
-*:before,
-*:after {
- -webkit-box-sizing: border-box;
- -moz-box-sizing: border-box;
- box-sizing: border-box;
-}
-html {
- font-size: 10px;
- -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
-}
-body {
- font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
- font-size: 14px;
- line-height: 1.42857143;
- color: #333333;
- background-color: #ffffff;
-}
-input,
-button,
-select,
-textarea {
- font-family: inherit;
- font-size: inherit;
- line-height: inherit;
-}
-a {
- color: #428bca;
- text-decoration: none;
-}
-a:hover,
-a:focus {
- color: #2a6496;
- text-decoration: underline;
-}
-a:focus {
- outline: thin dotted;
- outline: 5px auto -webkit-focus-ring-color;
- outline-offset: -2px;
-}
-figure {
- margin: 0;
-}
-img {
- vertical-align: middle;
-}
-.img-responsive {
- display: block;
- width: 100% \9;
- max-width: 100%;
- height: auto;
-}
-.img-rounded {
- border-radius: 6px;
-}
-.img-thumbnail {
- padding: 4px;
- line-height: 1.42857143;
- background-color: #ffffff;
- border: 1px solid #dddddd;
- border-radius: 4px;
- -webkit-transition: all 0.2s ease-in-out;
- -o-transition: all 0.2s ease-in-out;
- transition: all 0.2s ease-in-out;
- display: inline-block;
- width: 100% \9;
- max-width: 100%;
- height: auto;
-}
-.img-circle {
- border-radius: 50%;
-}
-hr {
- margin-top: 20px;
- margin-bottom: 20px;
- border: 0;
- border-top: 1px solid #eeeeee;
-}
-.sr-only {
- position: absolute;
- width: 1px;
- height: 1px;
- margin: -1px;
- padding: 0;
- overflow: hidden;
- clip: rect(0, 0, 0, 0);
- border: 0;
-}
-.sr-only-focusable:active,
-.sr-only-focusable:focus {
- position: static;
- width: auto;
- height: auto;
- margin: 0;
- overflow: visible;
- clip: auto;
-}
-h1,
-h2,
-h3,
-h4,
-h5,
-h6,
-.h1,
-.h2,
-.h3,
-.h4,
-.h5,
-.h6 {
- font-family: inherit;
- font-weight: 500;
- line-height: 1.1;
- color: inherit;
-}
-h1 small,
-h2 small,
-h3 small,
-h4 small,
-h5 small,
-h6 small,
-.h1 small,
-.h2 small,
-.h3 small,
-.h4 small,
-.h5 small,
-.h6 small,
-h1 .small,
-h2 .small,
-h3 .small,
-h4 .small,
-h5 .small,
-h6 .small,
-.h1 .small,
-.h2 .small,
-.h3 .small,
-.h4 .small,
-.h5 .small,
-.h6 .small {
- font-weight: normal;
- line-height: 1;
- color: #777777;
-}
-h1,
-.h1,
-h2,
-.h2,
-h3,
-.h3 {
- margin-top: 20px;
- margin-bottom: 10px;
-}
-h1 small,
-.h1 small,
-h2 small,
-.h2 small,
-h3 small,
-.h3 small,
-h1 .small,
-.h1 .small,
-h2 .small,
-.h2 .small,
-h3 .small,
-.h3 .small {
- font-size: 65%;
-}
-h4,
-.h4,
-h5,
-.h5,
-h6,
-.h6 {
- margin-top: 10px;
- margin-bottom: 10px;
-}
-h4 small,
-.h4 small,
-h5 small,
-.h5 small,
-h6 small,
-.h6 small,
-h4 .small,
-.h4 .small,
-h5 .small,
-.h5 .small,
-h6 .small,
-.h6 .small {
- font-size: 75%;
-}
-h1,
-.h1 {
- font-size: 36px;
-}
-h2,
-.h2 {
- font-size: 30px;
-}
-h3,
-.h3 {
- font-size: 24px;
-}
-h4,
-.h4 {
- font-size: 18px;
-}
-h5,
-.h5 {
- font-size: 14px;
-}
-h6,
-.h6 {
- font-size: 12px;
-}
-p {
- margin: 0 0 10px;
-}
-.lead {
- margin-bottom: 20px;
- font-size: 16px;
- font-weight: 300;
- line-height: 1.4;
-}
-@media (min-width: 768px) {
- .lead {
- font-size: 21px;
- }
-}
-small,
-.small {
- font-size: 85%;
-}
-cite {
- font-style: normal;
-}
-mark,
-.mark {
- background-color: #fcf8e3;
- padding: .2em;
-}
-.text-left {
- text-align: left;
-}
-.text-right {
- text-align: right;
-}
-.text-center {
- text-align: center;
-}
-.text-justify {
- text-align: justify;
-}
-.text-nowrap {
- white-space: nowrap;
-}
-.text-lowercase {
- text-transform: lowercase;
-}
-.text-uppercase {
- text-transform: uppercase;
-}
-.text-capitalize {
- text-transform: capitalize;
-}
-.text-muted {
- color: #777777;
-}
-.text-primary {
- color: #428bca;
-}
-a.text-primary:hover {
- color: #3071a9;
-}
-.text-success {
- color: #3c763d;
-}
-a.text-success:hover {
- color: #2b542c;
-}
-.text-info {
- color: #31708f;
-}
-a.text-info:hover {
- color: #245269;
-}
-.text-warning {
- color: #8a6d3b;
-}
-a.text-warning:hover {
- color: #66512c;
-}
-.text-danger {
- color: #a94442;
-}
-a.text-danger:hover {
- color: #843534;
-}
-.bg-primary {
- color: #fff;
- background-color: #428bca;
-}
-a.bg-primary:hover {
- background-color: #3071a9;
-}
-.bg-success {
- background-color: #dff0d8;
-}
-a.bg-success:hover {
- background-color: #c1e2b3;
-}
-.bg-info {
- background-color: #d9edf7;
-}
-a.bg-info:hover {
- background-color: #afd9ee;
-}
-.bg-warning {
- background-color: #fcf8e3;
-}
-a.bg-warning:hover {
- background-color: #f7ecb5;
-}
-.bg-danger {
- background-color: #f2dede;
-}
-a.bg-danger:hover {
- background-color: #e4b9b9;
-}
-.page-header {
- padding-bottom: 9px;
- margin: 40px 0 20px;
- border-bottom: 1px solid #eeeeee;
-}
-ul,
-ol {
- margin-top: 0;
- margin-bottom: 10px;
-}
-ul ul,
-ol ul,
-ul ol,
-ol ol {
- margin-bottom: 0;
-}
-.list-unstyled {
- padding-left: 0;
- list-style: none;
-}
-.list-inline {
- padding-left: 0;
- list-style: none;
- margin-left: -5px;
-}
-.list-inline > li {
- display: inline-block;
- padding-left: 5px;
- padding-right: 5px;
-}
-dl {
- margin-top: 0;
- margin-bottom: 20px;
-}
-dt,
-dd {
- line-height: 1.42857143;
-}
-dt {
- font-weight: bold;
-}
-dd {
- margin-left: 0;
-}
-@media (min-width: 768px) {
- .dl-horizontal dt {
- float: left;
- width: 160px;
- clear: left;
- text-align: right;
- overflow: hidden;
- text-overflow: ellipsis;
- white-space: nowrap;
- }
- .dl-horizontal dd {
- margin-left: 180px;
- }
-}
-abbr[title],
-abbr[data-original-title] {
- cursor: help;
- border-bottom: 1px dotted #777777;
-}
-.initialism {
- font-size: 90%;
- text-transform: uppercase;
-}
-blockquote {
- padding: 10px 20px;
- margin: 0 0 20px;
- font-size: 17.5px;
- border-left: 5px solid #eeeeee;
-}
-blockquote p:last-child,
-blockquote ul:last-child,
-blockquote ol:last-child {
- margin-bottom: 0;
-}
-blockquote footer,
-blockquote small,
-blockquote .small {
- display: block;
- font-size: 80%;
- line-height: 1.42857143;
- color: #777777;
-}
-blockquote footer:before,
-blockquote small:before,
-blockquote .small:before {
- content: '\2014 \00A0';
-}
-.blockquote-reverse,
-blockquote.pull-right {
- padding-right: 15px;
- padding-left: 0;
- border-right: 5px solid #eeeeee;
- border-left: 0;
- text-align: right;
-}
-.blockquote-reverse footer:before,
-blockquote.pull-right footer:before,
-.blockquote-reverse small:before,
-blockquote.pull-right small:before,
-.blockquote-reverse .small:before,
-blockquote.pull-right .small:before {
- content: '';
-}
-.blockquote-reverse footer:after,
-blockquote.pull-right footer:after,
-.blockquote-reverse small:after,
-blockquote.pull-right small:after,
-.blockquote-reverse .small:after,
-blockquote.pull-right .small:after {
- content: '\00A0 \2014';
-}
-blockquote:before,
-blockquote:after {
- content: "";
-}
-address {
- margin-bottom: 20px;
- font-style: normal;
- line-height: 1.42857143;
-}
-.clearfix:before,
-.clearfix:after,
-.dl-horizontal dd:before,
-.dl-horizontal dd:after {
- content: " ";
- display: table;
-}
-.clearfix:after,
-.dl-horizontal dd:after {
- clear: both;
-}
-.center-block {
- display: block;
- margin-left: auto;
- margin-right: auto;
-}
-.pull-right {
- float: right !important;
-}
-.pull-left {
- float: left !important;
-}
-.hide {
- display: none !important;
-}
-.show {
- display: block !important;
-}
-.invisible {
- visibility: hidden;
-}
-.text-hide {
- font: 0/0 a;
- color: transparent;
- text-shadow: none;
- background-color: transparent;
- border: 0;
-}
-.hidden {
- display: none !important;
- visibility: hidden !important;
-}
-.affix {
- position: fixed;
- -webkit-transform: translate3d(0, 0, 0);
- transform: translate3d(0, 0, 0);
-}
diff --git a/assets/js/plugins/.gitkeep b/assets/images/.gitkeep
similarity index 100%
rename from assets/js/plugins/.gitkeep
rename to assets/images/.gitkeep
diff --git a/assets/js/_main.js b/assets/js/_main.js
deleted file mode 100644
index a0ad193..0000000
--- a/assets/js/_main.js
+++ /dev/null
@@ -1,63 +0,0 @@
-/* ========================================================================
- * DOM-based Routing
- * Based on http://goo.gl/EUTi53 by Paul Irish
- *
- * Only fires on body classes that match. If a body class contains a dash,
- * replace the dash with an underscore when adding it to the object below.
- *
- * .noConflict()
- * The routing is enclosed within an anonymous function so that you can
- * always reference jQuery with $, even when in .noConflict() mode.
- *
- * Google CDN, Latest jQuery
- * To use the default WordPress version of jQuery, go to lib/config.php and
- * remove or comment out: add_theme_support('jquery-cdn');
- * ======================================================================== */
-
-(function($) {
-
-// Use this variable to set up the common and page specific functions. If you
-// rename this variable, you will also need to rename the namespace below.
-var Roots = {
- // All pages
- common: {
- init: function() {
- // JavaScript to be fired on all pages
- }
- },
- // Home page
- home: {
- init: function() {
- // JavaScript to be fired on the home page
- }
- },
- // About us page, note the change from about-us to about_us.
- about_us: {
- init: function() {
- // JavaScript to be fired on the about us page
- }
- }
-};
-
-// The routing fires all common scripts, followed by the page specific scripts.
-// Add additional events for more control over timing e.g. a finalize event
-var UTIL = {
- fire: function(func, funcname, args) {
- var namespace = Roots;
- funcname = (funcname === undefined) ? 'init' : funcname;
- if (func !== '' && namespace[func] && typeof namespace[func][funcname] === 'function') {
- namespace[func][funcname](args);
- }
- },
- loadEvents: function() {
- UTIL.fire('common');
-
- $.each(document.body.className.replace(/-/g, '_').split(/\s+/),function(i,classnm) {
- UTIL.fire(classnm);
- });
- }
-};
-
-$(document).ready(UTIL.loadEvents);
-
-})(jQuery); // Fully reference jQuery after this point.
diff --git a/assets/less/_bootstrap.less b/assets/less/_bootstrap.less
deleted file mode 100644
index 425658e..0000000
--- a/assets/less/_bootstrap.less
+++ /dev/null
@@ -1,92 +0,0 @@
-//
-// Bootstrap
-//
-// Comment out any unused components
-// --------------------------------------------------
-
-// Variables
-@import "../vendor/bootstrap/less/variables";
-
-// Mixins: Utilities
-@import "../vendor/bootstrap/less/mixins/hide-text";
-@import "../vendor/bootstrap/less/mixins/opacity";
-@import "../vendor/bootstrap/less/mixins/image";
-@import "../vendor/bootstrap/less/mixins/labels";
-@import "../vendor/bootstrap/less/mixins/reset-filter";
-@import "../vendor/bootstrap/less/mixins/resize";
-@import "../vendor/bootstrap/less/mixins/responsive-visibility";
-@import "../vendor/bootstrap/less/mixins/size";
-@import "../vendor/bootstrap/less/mixins/tab-focus";
-@import "../vendor/bootstrap/less/mixins/text-emphasis";
-@import "../vendor/bootstrap/less/mixins/text-overflow";
-@import "../vendor/bootstrap/less/mixins/vendor-prefixes";
-
-// Mixins: Components
-@import "../vendor/bootstrap/less/mixins/alerts";
-@import "../vendor/bootstrap/less/mixins/buttons";
-@import "../vendor/bootstrap/less/mixins/panels";
-@import "../vendor/bootstrap/less/mixins/pagination";
-@import "../vendor/bootstrap/less/mixins/list-group";
-@import "../vendor/bootstrap/less/mixins/nav-divider";
-@import "../vendor/bootstrap/less/mixins/forms";
-@import "../vendor/bootstrap/less/mixins/progress-bar";
-@import "../vendor/bootstrap/less/mixins/table-row";
-
-// Mixins: Skins
-@import "../vendor/bootstrap/less/mixins/background-variant";
-@import "../vendor/bootstrap/less/mixins/border-radius";
-@import "../vendor/bootstrap/less/mixins/gradients";
-
-// Mixins: Layout
-@import "../vendor/bootstrap/less/mixins/clearfix";
-@import "../vendor/bootstrap/less/mixins/center-block";
-@import "../vendor/bootstrap/less/mixins/nav-vertical-align";
-@import "../vendor/bootstrap/less/mixins/grid-framework";
-@import "../vendor/bootstrap/less/mixins/grid";
-
-// Reset
-@import "../vendor/bootstrap/less/normalize";
-@import "../vendor/bootstrap/less/print";
-@import "../vendor/bootstrap/less/glyphicons";
-
-// Core CSS
-@import "../vendor/bootstrap/less/scaffolding";
-@import "../vendor/bootstrap/less/type";
-@import "../vendor/bootstrap/less/code";
-@import "../vendor/bootstrap/less/grid";
-@import "../vendor/bootstrap/less/tables";
-@import "../vendor/bootstrap/less/forms";
-@import "../vendor/bootstrap/less/buttons";
-
-// Components
-@import "../vendor/bootstrap/less/component-animations";
-@import "../vendor/bootstrap/less/dropdowns";
-@import "../vendor/bootstrap/less/button-groups";
-@import "../vendor/bootstrap/less/input-groups";
-@import "../vendor/bootstrap/less/navs";
-@import "../vendor/bootstrap/less/navbar";
-@import "../vendor/bootstrap/less/breadcrumbs";
-@import "../vendor/bootstrap/less/pagination";
-@import "../vendor/bootstrap/less/pager";
-@import "../vendor/bootstrap/less/labels";
-@import "../vendor/bootstrap/less/badges";
-@import "../vendor/bootstrap/less/jumbotron";
-@import "../vendor/bootstrap/less/thumbnails";
-@import "../vendor/bootstrap/less/alerts";
-@import "../vendor/bootstrap/less/progress-bars";
-@import "../vendor/bootstrap/less/media";
-@import "../vendor/bootstrap/less/list-group";
-@import "../vendor/bootstrap/less/panels";
-@import "../vendor/bootstrap/less/responsive-embed";
-@import "../vendor/bootstrap/less/wells";
-@import "../vendor/bootstrap/less/close";
-
-// Components w/ JavaScript
-@import "../vendor/bootstrap/less/modals";
-@import "../vendor/bootstrap/less/tooltip";
-@import "../vendor/bootstrap/less/popovers";
-@import "../vendor/bootstrap/less/carousel";
-
-// Utility classes
-@import "../vendor/bootstrap/less/utilities";
-@import "../vendor/bootstrap/less/responsive-utilities";
diff --git a/assets/less/_variables.less b/assets/less/_variables.less
deleted file mode 100644
index 1fa2be8..0000000
--- a/assets/less/_variables.less
+++ /dev/null
@@ -1,17 +0,0 @@
-// Grid settings
-// -------------------------
-
-@main-sm-columns: @grid-columns;
-@sidebar-sm-columns: 4;
-
-
-// Brand colors
-// -------------------------
-
-@brand-primary: #27ae60;
-
-
-// Glyphicons path
-// -------------------------
-
-@icon-font-path: "../vendor/bootstrap/fonts/";
diff --git a/assets/less/components/_media.less b/assets/less/components/_media.less
deleted file mode 100644
index 4918f7b..0000000
--- a/assets/less/components/_media.less
+++ /dev/null
@@ -1,13 +0,0 @@
-// Captions
-.wp-caption {
- &:extend(.thumbnail all);
-}
-
-.wp-caption-text {
- &:extend(.thumbnail .caption all);
-}
-
-// Gallery shortcode
-.gallery-row {
- padding: (@line-height-computed / 2) 0;
-}
diff --git a/assets/less/layouts/_footer.less b/assets/less/layouts/_footer.less
deleted file mode 100644
index 940462d..0000000
--- a/assets/less/layouts/_footer.less
+++ /dev/null
@@ -1 +0,0 @@
-.content-info { }
diff --git a/assets/less/layouts/_header.less b/assets/less/layouts/_header.less
deleted file mode 100644
index a6d3106..0000000
--- a/assets/less/layouts/_header.less
+++ /dev/null
@@ -1 +0,0 @@
-.banner { }
diff --git a/assets/less/layouts/_posts.less b/assets/less/layouts/_posts.less
deleted file mode 100644
index 62309b5..0000000
--- a/assets/less/layouts/_posts.less
+++ /dev/null
@@ -1,5 +0,0 @@
-.hentry header { }
-.hentry time { }
-.hentry .byline { }
-.hentry .entry-content { }
-.hentry footer { }
diff --git a/assets/less/layouts/_sidebar.less b/assets/less/layouts/_sidebar.less
deleted file mode 100644
index 0a735c9..0000000
--- a/assets/less/layouts/_sidebar.less
+++ /dev/null
@@ -1,3 +0,0 @@
-.sidebar {
- .make-sm-column(@sidebar-sm-columns);
-}
diff --git a/assets/less/main.less b/assets/less/main.less
deleted file mode 100644
index 41b945c..0000000
--- a/assets/less/main.less
+++ /dev/null
@@ -1,20 +0,0 @@
-// Bootstrap
-@import "_bootstrap";
-
-// Variable overrides and custom variables
-@import "_variables";
-
-// Roots
-@import "_global"; // Base styling & custom mixins
-@import "components/_buttons"; // Button tweaks
-@import "components/_comments"; // Comment styling
-@import "components/_forms"; // Form tweaks
-@import "components/_media"; // WordPress media
-@import "components/_wp-classes"; // WordPress generated classes
-@import "layouts/_general"; // General styling
-@import "layouts/_header"; // Header styling
-@import "layouts/_sidebar"; // Sidebar styling
-@import "layouts/_footer"; // Footer styling
-@import "layouts/_pages"; // Page styling
-@import "layouts/pages/_home"; // Home page styling
-@import "layouts/_posts"; // Post styling
diff --git a/assets/manifest.json b/assets/manifest.json
new file mode 100644
index 0000000..0e512c2
--- /dev/null
+++ b/assets/manifest.json
@@ -0,0 +1,30 @@
+{
+ "dependencies": {
+ "main.js": {
+ "files": [
+ "scripts/main.js"
+ ],
+ "main": true
+ },
+ "main.css": {
+ "files": [
+ "styles/main.less"
+ ],
+ "main": true
+ },
+ "editor-style.css": {
+ "files": [
+ "styles/editor-style.less"
+ ]
+ },
+ "jquery.js": {
+ "bower": ["jquery"]
+ },
+ "modernizr.js": {
+ "bower": ["modernizr"]
+ }
+ },
+ "config": {
+ "devUrl": "example.dev"
+ }
+}
diff --git a/assets/scripts/main.js b/assets/scripts/main.js
new file mode 100644
index 0000000..95502eb
--- /dev/null
+++ b/assets/scripts/main.js
@@ -0,0 +1,81 @@
+/* ========================================================================
+ * DOM-based Routing
+ * Based on http://goo.gl/EUTi53 by Paul Irish
+ *
+ * Only fires on body classes that match. If a body class contains a dash,
+ * replace the dash with an underscore when adding it to the object below.
+ *
+ * .noConflict()
+ * The routing is enclosed within an anonymous function so that you can
+ * always reference jQuery with $, even when in .noConflict() mode.
+ *
+ * Google CDN, Latest jQuery
+ * To use the default WordPress version of jQuery, go to lib/config.php and
+ * remove or comment out: add_theme_support('jquery-cdn');
+ * ======================================================================== */
+
+(function($) {
+
+ // Use this variable to set up the common and page specific functions. If you
+ // rename this variable, you will also need to rename the namespace below.
+ var Sage = {
+ // All pages
+ 'common': {
+ init: function() {
+ // JavaScript to be fired on all pages
+ },
+ finalize: function() {
+ // JavaScript to be fired on all pages, after page specific JS is fired
+ }
+ },
+ // Home page
+ 'home': {
+ init: function() {
+ // JavaScript to be fired on the home page
+ },
+ finalize: function() {
+ // JavaScript to be fired on the home page, after the init JS
+ }
+ },
+ // About us page, note the change from about-us to about_us.
+ 'about_us': {
+ init: function() {
+ // JavaScript to be fired on the about us page
+ }
+ }
+ };
+
+ // The routing fires all common scripts, followed by the page specific scripts.
+ // Add additional events for more control over timing e.g. a finalize event
+ var UTIL = {
+ fire: function(func, funcname, args) {
+ var fire;
+ var namespace = Sage;
+ funcname = (funcname === undefined) ? 'init' : funcname;
+ fire = func !== '';
+ fire = fire && namespace[func];
+ fire = fire && typeof namespace[func][funcname] === 'function';
+
+ if (fire) {
+ namespace[func][funcname](args);
+ }
+ },
+ loadEvents: function() {
+ // Fire common init JS
+ UTIL.fire('common');
+
+ // Fire page-specific init JS, and then finalize JS
+ $.each(document.body.className.replace(/-/g, '_').split(/\s+/), function(i, classnm) {
+ UTIL.fire(classnm);
+ UTIL.fire(classnm, 'finalize');
+ });
+
+ // Fire common finalize JS
+ UTIL.fire('common', 'finalize');
+ }
+ };
+
+ // Load Events
+ $(document).ready(UTIL.loadEvents);
+
+})(jQuery); // Fully reference jQuery after this point.
diff --git a/assets/less/_global.less b/assets/styles/common/_global.less
similarity index 100%
rename from assets/less/_global.less
rename to assets/styles/common/_global.less
diff --git a/assets/styles/common/_variables.less b/assets/styles/common/_variables.less
new file mode 100644
index 0000000..eb26cc9
--- /dev/null
+++ b/assets/styles/common/_variables.less
@@ -0,0 +1,6 @@
+// Grid settings
+@main-sm-columns: @grid-columns;
+@sidebar-sm-columns: 4;
+
+// Colors
+@brand-primary: #27ae60;
diff --git a/assets/less/components/_buttons.less b/assets/styles/components/_buttons.less
similarity index 100%
rename from assets/less/components/_buttons.less
rename to assets/styles/components/_buttons.less
diff --git a/assets/less/components/_comments.less b/assets/styles/components/_comments.less
similarity index 100%
rename from assets/less/components/_comments.less
rename to assets/styles/components/_comments.less
diff --git a/assets/less/components/_forms.less b/assets/styles/components/_forms.less
similarity index 100%
rename from assets/less/components/_forms.less
rename to assets/styles/components/_forms.less
diff --git a/assets/less/layouts/_general.less b/assets/styles/components/_grid.less
similarity index 66%
rename from assets/less/layouts/_general.less
rename to assets/styles/components/_grid.less
index c0d5dc4..dd01d79 100644
--- a/assets/less/layouts/_general.less
+++ b/assets/styles/components/_grid.less
@@ -1,10 +1,10 @@
-// Content wrapper
-.wrap { }
-
-// Main content area
+// Grid system
.main {
.make-sm-column(@main-sm-columns);
.sidebar-primary & {
.make-sm-column(@main-sm-columns - @sidebar-sm-columns);
}
}
+.sidebar {
+ .make-sm-column(@sidebar-sm-columns);
+}
diff --git a/assets/less/components/_wp-classes.less b/assets/styles/components/_wp-classes.less
similarity index 61%
rename from assets/less/components/_wp-classes.less
rename to assets/styles/components/_wp-classes.less
index 5597e47..83e69cd 100644
--- a/assets/less/components/_wp-classes.less
+++ b/assets/styles/components/_wp-classes.less
@@ -1,6 +1,12 @@
// WordPress Generated Classes
// http://codex.wordpress.org/CSS#WordPress_Generated_Classes
+// Media alignment
+.alignnone {
+ margin-left: 0;
+ margin-right: 0;
+ max-width: 100%;
+}
.aligncenter {
display: block;
margin: (@line-height-computed / 2) auto;
@@ -9,14 +15,8 @@
.alignright {
margin-bottom: (@line-height-computed / 2);
}
-figure.alignnone {
- margin-left: 0;
- margin-right: 0;
- max-width: 100%;
-}
-
@media (min-width: @screen-sm-min) {
- // Only float images if not on an extra small device like smartphones
+ // Only float if not on an extra small device
.alignleft {
float: left;
margin-right: (@line-height-computed / 2);
@@ -26,3 +26,17 @@ figure.alignnone {
margin-left: (@line-height-computed / 2);
}
}
+
+// Captions
+.wp-caption {
+ &:extend(.thumbnail all);
+}
+.wp-caption-text {
+ &:extend(.thumbnail .caption all);
+}
+
+// Text meant only for screen readers
+.screen-reader-text {
+ &:extend(.sr-only all);
+ &:extend(.sr-only-focusable all);
+}
diff --git a/assets/styles/editor-style.less b/assets/styles/editor-style.less
new file mode 100644
index 0000000..b318c99
--- /dev/null
+++ b/assets/styles/editor-style.less
@@ -0,0 +1,5 @@
+@import "main";
+
+body {
+ margin: 12px !important;
+}
diff --git a/assets/img/.gitignore b/assets/styles/layouts/_footer.less
similarity index 100%
rename from assets/img/.gitignore
rename to assets/styles/layouts/_footer.less
diff --git a/assets/less/layouts/_pages.less b/assets/styles/layouts/_header.less
similarity index 100%
rename from assets/less/layouts/_pages.less
rename to assets/styles/layouts/_header.less
diff --git a/assets/less/layouts/pages/_home.less b/assets/styles/layouts/_pages.less
similarity index 100%
rename from assets/less/layouts/pages/_home.less
rename to assets/styles/layouts/_pages.less
diff --git a/assets/styles/layouts/_posts.less b/assets/styles/layouts/_posts.less
new file mode 100644
index 0000000..e69de29
diff --git a/assets/styles/layouts/_sidebar.less b/assets/styles/layouts/_sidebar.less
new file mode 100644
index 0000000..e69de29
diff --git a/assets/styles/main.less b/assets/styles/main.less
new file mode 100644
index 0000000..790f41a
--- /dev/null
+++ b/assets/styles/main.less
@@ -0,0 +1,17 @@
+// Automatically injected Bower dependencies via wiredep (never manually edit this block)
+// bower:less
+@import "../../bower_components/bootstrap/less/bootstrap.less";
+// endbower
+
+@import "common/_variables";
+@import "common/_global";
+@import "components/_buttons";
+@import "components/_comments";
+@import "components/_forms";
+@import "components/_grid";
+@import "components/_wp-classes";
+@import "layouts/_header";
+@import "layouts/_sidebar";
+@import "layouts/_footer";
+@import "layouts/_pages";
+@import "layouts/_posts";
diff --git a/assets/styles/main.scss.example b/assets/styles/main.scss.example
new file mode 100644
index 0000000..301b355
--- /dev/null
+++ b/assets/styles/main.scss.example
@@ -0,0 +1,12 @@
+// How to get started using Sass instead of Less:
+//
+// 1. Run `bower install bootstrap-sass-official --save`
+// 2. Rename this file to `main.scss` and remove `main.less`
+// 3. Rename `editor-style.less` to `editor-style.scss`
+// 4. Update the `assets/manifest.json` styles dependenies from `.less` to `.scss`
+//
+// Feel free to remove this file if you're using Less
+
+// bower:sass
+@import "../../bower_components/bootstrap-sass-official/assets/stylesheets/_bootstrap.scss";
+// endbower
diff --git a/base.php b/base.php
index 9828b4c..845c0d3 100644
--- a/base.php
+++ b/base.php
@@ -1,33 +1,38 @@
+
+
->
-
-
-
-
-
-
-
-
-
-
-
-
+ >
+
+
+
+
+