You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
125 lines
5.7 KiB
125 lines
5.7 KiB
7 years ago
|
# [Sage](https://roots.io/sage/)
|
||
|
[![Packagist](https://img.shields.io/packagist/vpre/roots/sage.svg?style=flat-square)](https://packagist.org/packages/roots/sage)
|
||
|
[![devDependency Status](https://img.shields.io/david/dev/roots/sage.svg?style=flat-square)](https://david-dm.org/roots/sage#info=devDependencies)
|
||
|
[![Build Status](https://img.shields.io/travis/roots/sage.svg?style=flat-square)](https://travis-ci.org/roots/sage)
|
||
|
|
||
|
Sage is a WordPress starter theme with a modern development workflow.
|
||
|
|
||
|
**Sage 9 is in active development and is currently in beta. The `master` branch tracks Sage 9 development. If you want a stable version, use the [latest Sage 8 release](https://github.com/roots/sage/releases/latest).**
|
||
|
|
||
|
## Features
|
||
|
|
||
|
* Sass for stylesheets
|
||
|
* ES6 for JavaScript
|
||
|
* [Webpack](https://webpack.github.io/) for compiling assets, optimizing images, and concatenating and minifying files
|
||
|
* [Browsersync](http://www.browsersync.io/) for synchronized browser testing
|
||
|
* [Laravel Blade](https://laravel.com/docs/5.3/blade) as a templating engine
|
||
|
* [Controller](https://github.com/soberwp/controller) for passing data to Blade templates
|
||
|
* CSS framework options:
|
||
|
* [Bootstrap 4](http://getbootstrap.com/)
|
||
|
* [Foundation](http://foundation.zurb.com/)
|
||
|
* [Tachyons](http://tachyons.io/)
|
||
|
* None (blank slate)
|
||
|
* Font Awesome (optional)
|
||
|
|
||
|
See a working example at [roots-example-project.com](https://roots-example-project.com/).
|
||
|
|
||
|
## Requirements
|
||
|
|
||
|
Make sure all dependencies have been installed before moving on:
|
||
|
|
||
|
* [WordPress](https://wordpress.org/) >= 4.7
|
||
|
* [PHP](http://php.net/manual/en/install.php) >= 5.6.4
|
||
|
* [Composer](https://getcomposer.org/download/)
|
||
|
* [Node.js](http://nodejs.org/) >= 6.9.x
|
||
|
* [Yarn](https://yarnpkg.com/en/docs/install)
|
||
|
|
||
|
## Theme installation
|
||
|
|
||
|
Install Sage using Composer from your WordPress themes directory (replace `your-theme-name` below with the name of your theme):
|
||
|
|
||
|
```shell
|
||
|
# @ app/themes/ or wp-content/themes/
|
||
|
$ composer create-project roots/sage your-theme-name dev-master
|
||
|
```
|
||
|
|
||
|
During theme installation you will have the options to:
|
||
|
|
||
|
* Update theme headers (theme name, description, author, etc.)
|
||
|
* Select a CSS framework (Bootstrap, Foundation, Tachyons, none)
|
||
|
* Add Font Awesome
|
||
|
* Configure Browsersync (path to theme, local development URL)
|
||
|
|
||
|
## Theme structure
|
||
|
|
||
|
```shell
|
||
|
themes/your-theme-name/ # → Root of your Sage based theme
|
||
|
├── app/ # → Theme PHP
|
||
|
│ ├── lib/Sage/ # → Blade implementation, asset manifest
|
||
|
│ ├── admin.php # → Theme customizer setup
|
||
|
│ ├── filters.php # → Theme filters
|
||
|
│ ├── helpers.php # → Helper functions
|
||
|
│ └── setup.php # → Theme setup
|
||
|
├── composer.json # → Autoloading for `app/` files
|
||
|
├── composer.lock # → Composer lock file (never edit)
|
||
|
├── dist/ # → Built theme assets (never edit)
|
||
|
├── node_modules/ # → Node.js packages (never edit)
|
||
|
├── package.json # → Node.js dependencies and scripts
|
||
|
├── resources/ # → Theme assets and templates
|
||
|
│ ├── assets/ # → Front-end assets
|
||
|
│ │ ├── config.json # → Settings for compiled assets
|
||
|
│ │ ├── build/ # → Webpack and ESLint config
|
||
|
│ │ ├── fonts/ # → Theme fonts
|
||
|
│ │ ├── images/ # → Theme images
|
||
|
│ │ ├── scripts/ # → Theme JS
|
||
|
│ │ └── styles/ # → Theme stylesheets
|
||
|
│ ├── controllers/ # → Controller files
|
||
|
│ ├── functions.php # → Composer autoloader, theme includes
|
||
|
│ ├── index.php # → Never manually edit
|
||
|
│ ├── screenshot.png # → Theme screenshot for WP admin
|
||
|
│ ├── style.css # → Theme meta information
|
||
|
│ └── views/ # → Theme templates
|
||
|
│ ├── layouts/ # → Base templates
|
||
|
│ └── partials/ # → Partial templates
|
||
|
└── vendor/ # → Composer packages (never edit)
|
||
|
```
|
||
|
|
||
|
## Theme setup
|
||
|
|
||
|
Edit `app/setup.php` to enable or disable theme features, setup navigation menus, post thumbnail sizes, and sidebars.
|
||
|
|
||
|
## Theme development
|
||
|
|
||
|
* Run `yarn` from the theme directory to install dependencies
|
||
|
* Update `resources/assets/config.json` settings:
|
||
|
* `devUrl` should reflect your local development hostname
|
||
|
* `publicPath` should reflect your WordPress folder structure (`/wp-content/themes/sage` for non-[Bedrock](https://roots.io/bedrock/) installs)
|
||
|
|
||
|
### Build commands
|
||
|
|
||
|
* `yarn run start` — Compile assets when file changes are made, start Browsersync session
|
||
|
* `yarn run build` — Compile and optimize the files in your assets directory
|
||
|
* `yarn run build:production` — Compile assets for production
|
||
|
|
||
|
## Documentation
|
||
|
|
||
|
Sage 8 documentation is available at [https://roots.io/sage/docs/](https://roots.io/sage/docs/).
|
||
|
|
||
|
Sage 9 documentation is currently in progress and can be viewed at [https://github.com/roots/docs/tree/sage-9/sage](https://github.com/roots/docs/tree/sage-9/sage).
|
||
|
|
||
|
Controller documentation is available at [https://github.com/soberwp/controller#usage](https://github.com/soberwp/controller#usage).
|
||
|
|
||
|
## Contributing
|
||
|
|
||
|
Contributions are welcome from everyone. We have [contributing guidelines](https://github.com/roots/guidelines/blob/master/CONTRIBUTING.md) to help you get started.
|
||
|
|
||
|
## Community
|
||
|
|
||
|
Keep track of development and community news.
|
||
|
|
||
|
* 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/)
|
||
|
* Listen to the [Roots Radio podcast](https://roots.io/podcast/)
|