<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Ben Word</title>
    <description></description>
    <link>http://benword.com</link>
    <atom:link href="http://benword.com/feed.xml" rel="self" type="application/rss+xml" />
    
      <item>
        <title>Find Hotlinks with Killshot</title>
        <description>&lt;p class=&quot;lead&quot;&gt;
  Hotlinking is when you source an image form a third-party web site without placing it on your own
  server.
&lt;/p&gt;


&lt;p&gt;This practice is looked down on and even considered stealing by some. I inherited a website that has
a thousand blog posts starting from early 2009. The original contributors to the blog for several
years would frequently hotlink images in their posts.&lt;/p&gt;

&lt;p&gt;A lot of the images were returning 404&amp;rsquo;s by this time, but there were still lots of posts actively
hotlinking images. I talked to &lt;a href=&quot;https://github.com/sjothen&quot;&gt;Stephen Jothen&lt;/a&gt; about the problem and
mentioned that I wished there was a tool that could crawl a site and spit out a list of URLs that
contained hotlinked assets.&lt;/p&gt;

&lt;p&gt;Stephen replied with, &amp;ldquo;I got this&amp;rdquo;, and a couple hours later &lt;a href=&quot;https://github.com/sjothen/killshot&quot;&gt;Killshot&lt;/a&gt;
was born. &lt;a href=&quot;https://github.com/swalkinshaw&quot;&gt;Scott Walkinshaw&lt;/a&gt; packaged it up as a gem to make the
installation process easy.&lt;/p&gt;

&lt;h2&gt;Installation&lt;/h2&gt;

&lt;p&gt;Make sure you&amp;rsquo;ve got &lt;a href=&quot;http://rubygems.org/pages/download&quot;&gt;RubyGems&lt;/a&gt; installed, and then run the following:&lt;/p&gt;

&lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;bash&quot;&gt;&lt;span class=&quot;nv&quot;&gt;$ &lt;/span&gt;gem install killshot
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;Killshot is now installed can be ran from anywhere on your system.&lt;/p&gt;

&lt;h2&gt;Usage&lt;/h2&gt;

&lt;p&gt;Killshot works by providing a root to crawl along with a list of allowed domains. To find hotlinks
on the site I inherited, I ran:&lt;/p&gt;

&lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;bash&quot;&gt;&lt;span class=&quot;nv&quot;&gt;$ &lt;/span&gt;killshot -r http://shoretelsky.dev -w www.shoretelsky.com
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;Killshot starts crawling the site and spitting out hotlinks it discovers:&lt;/p&gt;

&lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code&gt;Searching for hotlinks...
1. &lt;span class=&quot;nt&quot;&gt;http://gigaom.files.wordpress.com/2010/08/vonage-facebook-iphone.jpg&lt;/span&gt; from &lt;span class=&quot;na&quot;&gt;http://www.shoretelsky.com/2010/08/05/vonage-lets-you-make-calls-over-facebook-for-free/&lt;/span&gt;
2. &lt;span class=&quot;nt&quot;&gt;http://www.turksat.com.tr/english/v2/sites/default/files/node_images/cable5.jpg&lt;/span&gt; from &lt;span class=&quot;na&quot;&gt;http://www.shoretelsky.com/2010/08/03/are-service-providers-giving-up-on-landline-too-soon/&lt;/span&gt;
3. &lt;span class=&quot;nt&quot;&gt;http://blog.radvision.com/images/2008/20080811-VideoOverEnterprise-More-bandwidth.jpg&lt;/span&gt; from &lt;span class=&quot;na&quot;&gt;http://www.shoretelsky.com/2010/07/29/enterprise-voip-your-network-or-ours/&lt;/span&gt;
4. &lt;span class=&quot;nt&quot;&gt;http://2.bp.blogspot.com/_5cLmD8GqnKY/SyhyeXIy-FI/AAAAAAAADUA/KD_11HoCONM/s320/telephone-game-300x300.jpg&lt;/span&gt; from &lt;span class=&quot;na&quot;&gt;http://www.shoretelsky.com/2010/07/27/apps-arent-just-for-smartphones-theyre-for-desk-phones-too/&lt;/span&gt;
5. &lt;span class=&quot;nt&quot;&gt;http://beta.thehindu.com/multimedia/dynamic/00027/25IN_THSWS_FACEBOOK_27362f.jpg&lt;/span&gt; from &lt;span class=&quot;na&quot;&gt;http://www.shoretelsky.com/2010/07/14/social-media-use-at-work-on-the-rise/&lt;/span&gt;
6. &lt;span class=&quot;nt&quot;&gt;http://farm1.static.flickr.com/54/119209886_3842c27ced_m.jpg&lt;/span&gt; from &lt;span class=&quot;na&quot;&gt;http://www.shoretelsky.com/2010/06/08/interview-with-dan-hoffman-surfing-the-mobility-wave/&lt;/span&gt;
7. &lt;span class=&quot;nt&quot;&gt;http://www.wired.com/images_blogs/gamelife/2010/01/ipad.jpg&lt;/span&gt; from &lt;span class=&quot;na&quot;&gt;http://www.shoretelsky.com/2010/07/12/were-featured-in-the-wall-street-journal/&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

</description>
        <pubDate>Fri, 12 Apr 2013 00:00:00 -0500</pubDate>
        <link>http://benword.com/find-hotlinks-with-killshot/</link>
        <guid isPermaLink="true">http://benword.com/find-hotlinks-with-killshot/</guid>
      </item>
    
      <item>
        <title>From WordPress to Jekyll</title>
        <description>&lt;p class=&quot;lead&quot;&gt;
  I’ve moved my blog from WordPress to Jekyll &amp;mdash; a static site generator that runs on Ruby.
&lt;/p&gt;


&lt;p&gt;I&amp;rsquo;ve found &lt;a href=&quot;https://github.com/mojombo/jekyll&quot;&gt;Jekyll&lt;/a&gt; interesting since I heard about it a few years
ago, and once I finally got around to playing with it a bit more, decided to move my blog over from
WordPress.&lt;/p&gt;

&lt;p&gt;I had no reason to use WordPress for my site. Aside from W3 Total Cache, I wasn&amp;rsquo;t using any plugins,
nor any custom post types or anything special. This site is simply a blog with a handful of pages.&lt;/p&gt;

&lt;p&gt;Jekyll allows me to write posts in Sublime Text 2 with Markdown and manage everything in git.&lt;/p&gt;

&lt;p&gt;I use a Grunt setup &lt;a href=&quot;/integrating-grunt-js-with-roots/&quot;&gt;similar to the one in Roots&lt;/a&gt;
to compile LESS to CSS. My &lt;code&gt;_config.yml&lt;/code&gt; is pretty straightforward:&lt;/p&gt;

&lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;yaml&quot;&gt;&lt;span class=&quot;c1&quot;&gt;# Dependencies&lt;/span&gt;
&lt;span class=&quot;l-Scalar-Plain&quot;&gt;markdown&lt;/span&gt;&lt;span class=&quot;p-Indicator&quot;&gt;:&lt;/span&gt;     &lt;span class=&quot;l-Scalar-Plain&quot;&gt;rdiscount&lt;/span&gt;
&lt;span class=&quot;l-Scalar-Plain&quot;&gt;rdiscount&lt;/span&gt;&lt;span class=&quot;p-Indicator&quot;&gt;:&lt;/span&gt;    &lt;span class=&quot;p-Indicator&quot;&gt;{&lt;/span&gt; &lt;span class=&quot;nv&quot;&gt;extensions&lt;/span&gt;&lt;span class=&quot;p-Indicator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;p-Indicator&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;smart&lt;/span&gt;&lt;span class=&quot;p-Indicator&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;p-Indicator&quot;&gt;}&lt;/span&gt;
&lt;span class=&quot;l-Scalar-Plain&quot;&gt;pygments&lt;/span&gt;&lt;span class=&quot;p-Indicator&quot;&gt;:&lt;/span&gt;     &lt;span class=&quot;l-Scalar-Plain&quot;&gt;true&lt;/span&gt;
&lt;span class=&quot;l-Scalar-Plain&quot;&gt;exclude&lt;/span&gt;&lt;span class=&quot;p-Indicator&quot;&gt;:&lt;/span&gt;      &lt;span class=&quot;p-Indicator&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&amp;quot;Gruntfile.js&amp;quot;&lt;/span&gt;&lt;span class=&quot;p-Indicator&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;&amp;quot;node_modules&amp;quot;&lt;/span&gt;&lt;span class=&quot;p-Indicator&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;&amp;quot;package.json&amp;quot;&lt;/span&gt;&lt;span class=&quot;p-Indicator&quot;&gt;]&lt;/span&gt;

&lt;span class=&quot;c1&quot;&gt;# Settings&lt;/span&gt;
&lt;span class=&quot;l-Scalar-Plain&quot;&gt;paginate&lt;/span&gt;&lt;span class=&quot;p-Indicator&quot;&gt;:&lt;/span&gt;     &lt;span class=&quot;l-Scalar-Plain&quot;&gt;10&lt;/span&gt;
&lt;span class=&quot;l-Scalar-Plain&quot;&gt;name&lt;/span&gt;&lt;span class=&quot;p-Indicator&quot;&gt;:&lt;/span&gt;         &lt;span class=&quot;l-Scalar-Plain&quot;&gt;Ben Word&lt;/span&gt;
&lt;span class=&quot;l-Scalar-Plain&quot;&gt;description&lt;/span&gt;&lt;span class=&quot;p-Indicator&quot;&gt;:&lt;/span&gt;
&lt;span class=&quot;l-Scalar-Plain&quot;&gt;url&lt;/span&gt;&lt;span class=&quot;p-Indicator&quot;&gt;:&lt;/span&gt;          &lt;span class=&quot;l-Scalar-Plain&quot;&gt;http://benword.com&lt;/span&gt;
&lt;span class=&quot;l-Scalar-Plain&quot;&gt;permalink&lt;/span&gt;&lt;span class=&quot;p-Indicator&quot;&gt;:&lt;/span&gt;    &lt;span class=&quot;l-Scalar-Plain&quot;&gt;/:title/&lt;/span&gt;

&lt;span class=&quot;l-Scalar-Plain&quot;&gt;auto&lt;/span&gt;&lt;span class=&quot;p-Indicator&quot;&gt;:&lt;/span&gt;         &lt;span class=&quot;l-Scalar-Plain&quot;&gt;true&lt;/span&gt;
&lt;span class=&quot;l-Scalar-Plain&quot;&gt;server&lt;/span&gt;&lt;span class=&quot;p-Indicator&quot;&gt;:&lt;/span&gt;       &lt;span class=&quot;l-Scalar-Plain&quot;&gt;true&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;My default layout has includes for the &lt;code&gt;&amp;lt;head&amp;gt;&lt;/code&gt;, header, footer and JS, which is similar to what you&amp;rsquo;d
find in the Roots theme wrapper:&lt;/p&gt;

&lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;html&quot;&gt;&lt;span class=&quot;cp&quot;&gt;&amp;lt;!DOCTYPE html&amp;gt;&lt;/span&gt;
&lt;span class=&quot;nt&quot;&gt;&amp;lt;html&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;lang=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&amp;quot;en&amp;quot;&lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;&amp;gt;&lt;/span&gt;
  &lt;span class=&quot;nt&quot;&gt;&amp;lt;head&amp;gt;&lt;/span&gt;
    {% include head.html %}
  &lt;span class=&quot;nt&quot;&gt;&amp;lt;/head&amp;gt;&lt;/span&gt;
  &lt;span class=&quot;nt&quot;&gt;&amp;lt;body&amp;gt;&lt;/span&gt;
    {% include header.html %}

    &lt;span class=&quot;nt&quot;&gt;&amp;lt;div&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;class=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&amp;quot;wrap container&amp;quot;&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;role=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&amp;quot;document&amp;quot;&lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;&amp;gt;&lt;/span&gt;
      &lt;span class=&quot;nt&quot;&gt;&amp;lt;main&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;role=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&amp;quot;main&amp;quot;&lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;&amp;gt;&lt;/span&gt;
        {{ content }}
      &lt;span class=&quot;nt&quot;&gt;&amp;lt;/main&amp;gt;&lt;/span&gt;
    &lt;span class=&quot;nt&quot;&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;

    {% include footer.html %}
    {% include js.html %}
  &lt;span class=&quot;nt&quot;&gt;&amp;lt;/body&amp;gt;&lt;/span&gt;
&lt;span class=&quot;nt&quot;&gt;&amp;lt;/html&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;I decided to use Bootstrap 3 on this site even though it&amp;rsquo;s still in active development. Some notes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;I setup a &lt;code&gt;variables-custom.less&lt;/code&gt; file where I define my custom fonts and sizes so that I can update
Bootstrap 3 while it&amp;rsquo;s being developed and not worry about overwriting my changes&lt;/li&gt;
&lt;li&gt;I&amp;rsquo;ve commented out a lot of things that I don&amp;rsquo;t need in &lt;code&gt;bootstrap.less&lt;/code&gt; (glyphicons (I&amp;rsquo;m using Icomoon),
dropdowns, navbar, modals, carousel, and lots more)&lt;/li&gt;
&lt;li&gt;I&amp;rsquo;m using &lt;code&gt;rem&lt;/code&gt; sizing on mostly everything&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;I love this new setup. Having complete control of the HTML, CSS, and JS output feels great after making
so many WordPress sites over the past several years. This doesn&amp;rsquo;t mean that I&amp;rsquo;m done with WordPress
&amp;mdash; I&amp;rsquo;ll still be working with WordPress on a daily basis and &lt;a href=&quot;http://www.rootstheme.com/&quot;&gt;Roots&lt;/a&gt;
will continue to be maintained. I&amp;rsquo;m also working on a new project with &lt;a href=&quot;https://twitter.com/swalkinshaw&quot;&gt;Scott&lt;/a&gt;,
&lt;a href=&quot;https://twitter.com/leoj3n&quot;&gt;Joel&lt;/a&gt; and &lt;a href=&quot;https://twitter.com/foxaii&quot;&gt;Nick&lt;/a&gt;. Stay tuned!&lt;/p&gt;
</description>
        <pubDate>Tue, 09 Apr 2013 00:00:00 -0500</pubDate>
        <link>http://benword.com/from-wordpress-to-jekyll/</link>
        <guid isPermaLink="true">http://benword.com/from-wordpress-to-jekyll/</guid>
      </item>
    
      <item>
        <title>Using Roots Theme without Bootstrap</title>
        <description>&lt;p class=&quot;lead&quot;&gt;
  Want to get the benefits of using Roots (theme wrapper, clean code, URL rewrites) without having to
  use Bootstrap?
&lt;/p&gt;


&lt;p&gt;Here’s how to get up and running in just a few minutes:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;a href=&quot;http://www.rootstheme.com/&quot;&gt;Download Roots&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Edit &lt;code&gt;lib/scripts.php&lt;/code&gt; and remove the CSS enqueues for Bootstrap CSS&lt;/li&gt;
&lt;li&gt;Edit &lt;code&gt;assets/js/plugins.js&lt;/code&gt; and remove the minified Bootstrap JS&lt;/li&gt;
&lt;li&gt;Remove &lt;code&gt;add_theme_support('bootstrap-top-navbar')&lt;/code&gt; from &lt;code&gt;lib/config.php&lt;/code&gt; and the Bootstrap navbar
specific modifications in the nav walker at &lt;code&gt;lib/nav.php&lt;/code&gt;.&lt;/li&gt;
&lt;/ol&gt;


&lt;p&gt;Roots is delete key friendly, just like HTML5 Boilerplate.&lt;/p&gt;
</description>
        <pubDate>Tue, 12 Feb 2013 00:00:00 -0600</pubDate>
        <link>http://benword.com/using-roots-theme-without-bootstrap/</link>
        <guid isPermaLink="true">http://benword.com/using-roots-theme-without-bootstrap/</guid>
      </item>
    
      <item>
        <title>Jump Start Your WordPress Site Development with Soil</title>
        <description>&lt;p class=&quot;lead&quot;&gt;
  &lt;a href=&quot;https://github.com/retlehs/soil&quot;&gt;Soil&lt;/a&gt; is a collection of frequently used plugins for
  your WordPress installation along with a site specific plugin that contains your custom post types,
  taxonomies, meta boxes and shortcodes.
&lt;/p&gt;


&lt;p&gt;You can &lt;a href=&quot;https://github.com/retlehs/soil&quot;&gt;download the latest version&lt;/a&gt; from GitHub.&lt;/p&gt;

&lt;h2&gt;What’s Included?&lt;/h2&gt;

&lt;h3&gt;Must Use Plugins&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/devinsays/options-framework-plugin&quot;&gt;Options Framework Plugin&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/jaredatch/Custom-Metaboxes-and-Fields-for-WordPress/&quot;&gt;Custom Metaboxes and Fields&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/crowdfavorite/wp-post-formats&quot;&gt;CF Post Formats&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Base&lt;/strong&gt; &amp;mdash; Site specific functionality (custom post types, taxonomies, meta boxes, shortcodes)&lt;/li&gt;
&lt;/ul&gt;


&lt;h3&gt;Plugins&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://wordpress.org/extend/plugins/wordpress-seo/&quot;&gt;WordPress SEO&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://wordpress.org/extend/plugins/w3-total-cache/&quot;&gt;W3 Total Cache&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/scribu/wp-query-multiple-taxonomies&quot;&gt;Query Multiple Taxonomies&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/scribu/wp-front-end-editor&quot;&gt;Front-end Editor&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;The master branch of &lt;a href=&quot;http://www.rootstheme.com/&quot;&gt;Roots&lt;/a&gt; is also included, although I just end up
replacing it with the &lt;a href=&quot;/integrating-grunt-js-with-roots/&quot;&gt;grunt.js branch&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;Installing Soil&lt;/h2&gt;

&lt;p&gt;After &lt;a href=&quot;https://github.com/retlehs/soil&quot;&gt;installing the latest Soil&lt;/a&gt; you’ll need to extract the
contents to your &lt;code&gt;wp-content&lt;/code&gt; directory.&lt;/p&gt;

&lt;p&gt;You should install Soil after you’ve already installed WordPress to avoid any conflicts from the
mu-plugins since they’re already loaded before the WordPress installation is finished.&lt;/p&gt;

&lt;h2&gt;Site Specific Functionality&lt;/h2&gt;

&lt;p&gt;In the &lt;code&gt;mu-plugins&lt;/code&gt; directory you’ll find a plugin called &lt;a href=&quot;https://github.com/retlehs/soil/tree/master/mu-plugins/base&quot;&gt;Base&lt;/a&gt;.
The Base plugin is used to define all the custom post types, taxonomies, meta boxes, and shortcodes
for your site. Base comes with some basic examples of each of these.&lt;/p&gt;

&lt;h3&gt;Custom Post Types and Taxonomies&lt;/h3&gt;

&lt;p&gt;Custom post types and taxonomies are defined in &lt;code&gt;mu-plugins/base/lib/post-types.php&lt;/code&gt;. There’s an
example post type called Rotator that can be used for something like a slideshow or carousel.&lt;/p&gt;

&lt;p&gt;The Rotator Location taxonomy can be used to group Rotator posts together to use in specific areas
on your site.&lt;/p&gt;

&lt;h3&gt;Meta Boxes&lt;/h3&gt;

&lt;p&gt;Custom post types and taxonomies are defined in &lt;code&gt;mu-plugins/base/lib/meta-boxes.php&lt;/code&gt;. Base uses the
&lt;a href=&quot;https://github.com/jaredatch/Custom-Metaboxes-and-Fields-for-WordPress&quot;&gt;Custom Metaboxes and Fields&lt;/a&gt;
plugin for creating custom meta boxes. This plugin allows you to easily create several different
types of meta boxes (normal inputs, textareas, file uploads, datepickers, TinyMCE instances and more)
and assign them to specific pages and custom post types.&lt;/p&gt;

&lt;p&gt;The included example adds a meta box to pages called Page Options with an input for subtitles.&lt;/p&gt;

&lt;div class=&quot;panel text-center&quot;&gt;
  &lt;img src=&quot;/assets/img/page-options-meta-box.png&quot; alt=&quot;&quot;&gt;
&lt;/div&gt;


&lt;p&gt;Use this snippet to output the subtitle in your template:&lt;/p&gt;

&lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;php&quot;&gt;&lt;span class=&quot;cp&quot;&gt;&amp;lt;?php&lt;/span&gt;
  &lt;span class=&quot;nv&quot;&gt;$subtitle&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;get_post_meta&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;$post&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span class=&quot;na&quot;&gt;ID&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;s1&quot;&gt;&amp;#39;_base_page_subtitle&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;true&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt;
  &lt;span class=&quot;k&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;!&lt;/span&gt;&lt;span class=&quot;k&quot;&gt;empty&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;$subtitle&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;))&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;:&lt;/span&gt;
&lt;span class=&quot;cp&quot;&gt;?&amp;gt;&lt;/span&gt;&lt;span class=&quot;x&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;x&quot;&gt;  &amp;lt;h2&amp;gt;&lt;/span&gt;&lt;span class=&quot;cp&quot;&gt;&amp;lt;?php&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;echo&lt;/span&gt; &lt;span class=&quot;nv&quot;&gt;$subtitle&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;cp&quot;&gt;?&amp;gt;&lt;/span&gt;&lt;span class=&quot;x&quot;&gt;&amp;lt;/h2&amp;gt;&lt;/span&gt;
&lt;span class=&quot;cp&quot;&gt;&amp;lt;?php&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;endif&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;cp&quot;&gt;?&amp;gt;&lt;/span&gt;&lt;span class=&quot;x&quot;&gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;


&lt;h3&gt;Shortcodes&lt;/h3&gt;

&lt;p&gt;Shortcodes are defined in &lt;code&gt;mu-plugins/base/lib/shortcodes.php&lt;/code&gt;. The example &lt;code&gt;[rotator]&lt;/code&gt; shortcode
will output posts from the Rotator custom post type. You can also specify the Rotator Location (taxonomy)
with an attribute, ie: &lt;code&gt;[rotator location=&quot;home&quot;]&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;The example shortcode is grabbed from a template file rather than concatenating the output which
really helps with readability and working with the shortcode code.&lt;/p&gt;

&lt;p&gt;It wouldn’t take much work to convert the &lt;a href=&quot;https://github.com/retlehs/soil/blob/master/mu-plugins/base/templates/shortcode-rotator.php&quot;&gt;included shortcode template&lt;/a&gt; and use it to create
a &lt;a href=&quot;http://twitter.github.com/bootstrap/javascript.html#carousel&quot;&gt;Bootstrap carousel&lt;/a&gt; to use wherever
you’d like on your site. Here’s a basic example:&lt;/p&gt;

&lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;php&quot;&gt;&lt;span class=&quot;x&quot;&gt;&amp;lt;div class=&amp;quot;carousel slide&amp;quot;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;x&quot;&gt;  &amp;lt;div class=&amp;quot;carousel-inner&amp;quot;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;x&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;cp&quot;&gt;&amp;lt;?php&lt;/span&gt;
      &lt;span class=&quot;nv&quot;&gt;$rotator_location&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;array&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;();&lt;/span&gt;
      &lt;span class=&quot;k&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;!&lt;/span&gt;&lt;span class=&quot;k&quot;&gt;empty&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;$location&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;))&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;:&lt;/span&gt;
        &lt;span class=&quot;nv&quot;&gt;$rotator_location&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;array&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;
          &lt;span class=&quot;k&quot;&gt;array&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;
            &lt;span class=&quot;s1&quot;&gt;&amp;#39;taxonomy&amp;#39;&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;s1&quot;&gt;&amp;#39;base_rotator_location&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;
            &lt;span class=&quot;s1&quot;&gt;&amp;#39;field&amp;#39;&lt;/span&gt;    &lt;span class=&quot;o&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;s1&quot;&gt;&amp;#39;slug&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;
            &lt;span class=&quot;s1&quot;&gt;&amp;#39;terms&amp;#39;&lt;/span&gt;    &lt;span class=&quot;o&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;nv&quot;&gt;$location&lt;/span&gt;
          &lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
        &lt;span class=&quot;p&quot;&gt;);&lt;/span&gt;
      &lt;span class=&quot;k&quot;&gt;endif&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt;

      &lt;span class=&quot;nv&quot;&gt;$rotator_args&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;array&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;
        &lt;span class=&quot;s1&quot;&gt;&amp;#39;posts_per_page&amp;#39;&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;
        &lt;span class=&quot;s1&quot;&gt;&amp;#39;meta_query&amp;#39;&lt;/span&gt;     &lt;span class=&quot;o&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;array&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;k&quot;&gt;array&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&amp;#39;key&amp;#39;&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;s1&quot;&gt;&amp;#39;_thumbnail_id&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)),&lt;/span&gt;
        &lt;span class=&quot;s1&quot;&gt;&amp;#39;post_type&amp;#39;&lt;/span&gt;      &lt;span class=&quot;o&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;s1&quot;&gt;&amp;#39;base_rotator&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;
        &lt;span class=&quot;s1&quot;&gt;&amp;#39;tax_query&amp;#39;&lt;/span&gt;      &lt;span class=&quot;o&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;nv&quot;&gt;$rotator_location&lt;/span&gt;
      &lt;span class=&quot;p&quot;&gt;);&lt;/span&gt;
      &lt;span class=&quot;nv&quot;&gt;$rotator_query&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;new&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;WP_Query&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;$rotator_args&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt;

      &lt;span class=&quot;nv&quot;&gt;$i&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt;
      &lt;span class=&quot;k&quot;&gt;while&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;$rotator_query&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span class=&quot;na&quot;&gt;have_posts&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;())&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;nv&quot;&gt;$rotator_query&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span class=&quot;na&quot;&gt;the_post&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;();&lt;/span&gt;
    &lt;span class=&quot;cp&quot;&gt;?&amp;gt;&lt;/span&gt;&lt;span class=&quot;x&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;x&quot;&gt;      &lt;/span&gt;&lt;span class=&quot;cp&quot;&gt;&amp;lt;?php&lt;/span&gt; &lt;span class=&quot;nv&quot;&gt;$classes&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;$i&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;===&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;?&lt;/span&gt; &lt;span class=&quot;s1&quot;&gt;&amp;#39;active item&amp;#39;&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;s1&quot;&gt;&amp;#39;item&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;cp&quot;&gt;?&amp;gt;&lt;/span&gt;&lt;span class=&quot;x&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;x&quot;&gt;      &amp;lt;div &lt;/span&gt;&lt;span class=&quot;cp&quot;&gt;&amp;lt;?php&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;post_class&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;$classes&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt; &lt;span class=&quot;cp&quot;&gt;?&amp;gt;&lt;/span&gt;&lt;span class=&quot;x&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;x&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;cp&quot;&gt;&amp;lt;?php&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;the_post_thumbnail&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;();&lt;/span&gt; &lt;span class=&quot;cp&quot;&gt;?&amp;gt;&lt;/span&gt;&lt;span class=&quot;x&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;x&quot;&gt;        &amp;lt;div class=&amp;quot;carousel-caption&amp;quot;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;x&quot;&gt;          &amp;lt;h4&amp;gt;&lt;/span&gt;&lt;span class=&quot;cp&quot;&gt;&amp;lt;?php&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;the_title&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;();&lt;/span&gt; &lt;span class=&quot;cp&quot;&gt;?&amp;gt;&lt;/span&gt;&lt;span class=&quot;x&quot;&gt;&amp;lt;/h4&amp;gt;&lt;/span&gt;
&lt;span class=&quot;x&quot;&gt;          &lt;/span&gt;&lt;span class=&quot;cp&quot;&gt;&amp;lt;?php&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;the_excerpt&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;();&lt;/span&gt; &lt;span class=&quot;cp&quot;&gt;?&amp;gt;&lt;/span&gt;&lt;span class=&quot;x&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;x&quot;&gt;        &amp;lt;/div&amp;gt;&lt;/span&gt;
&lt;span class=&quot;x&quot;&gt;      &amp;lt;/div&amp;gt;&lt;/span&gt;
&lt;span class=&quot;x&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;cp&quot;&gt;&amp;lt;?php&lt;/span&gt; &lt;span class=&quot;nv&quot;&gt;$i&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;++&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;endwhile&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;wp_reset_postdata&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;();&lt;/span&gt; &lt;span class=&quot;cp&quot;&gt;?&amp;gt;&lt;/span&gt;&lt;span class=&quot;x&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;x&quot;&gt;  &amp;lt;/div&amp;gt;&lt;/span&gt;
&lt;span class=&quot;x&quot;&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



</description>
        <pubDate>Mon, 05 Nov 2012 00:00:00 -0600</pubDate>
        <link>http://benword.com/jump-start-your-wordpress-site-development-with-soil/</link>
        <guid isPermaLink="true">http://benword.com/jump-start-your-wordpress-site-development-with-soil/</guid>
      </item>
    
      <item>
        <title>How to style Gravity Forms with Bootstrap and LESS</title>
        <description>&lt;p class=&quot;lead&quot;&gt;
  &lt;a href=&quot;http://www.rootstheme.com/gravityforms/&quot;&gt;&lt;b&gt;Gravity Forms&lt;/b&gt;&lt;/a&gt; is the best solution for
  building forms in WordPress. There currently aren’t any other plugins that come close to what Gravity
  Forms has to offer, and the features in Gravity Forms allow you to build very complex forms all
  within WordPress.
&lt;/p&gt;




&lt;div class=&quot;panel pull-right&quot;&gt;
  &lt;img src=&quot;/assets/img/bootstrap-gravity-forms.png&quot; alt=&quot;&quot;&gt;
&lt;/div&gt;


&lt;p&gt;One problem with Gravity Forms is that you can’t easily edit the form markup. You’re able to apply
CSS classes to certain areas but you won’t be able to target the exact elements that you want.
Applying &lt;a href=&quot;http://twitter.github.com/bootstrap/&quot;&gt;Bootstrap’s&lt;/a&gt; styling for forms, buttons, and alerts
to Gravity Forms is extremely easy by editing Bootstrap’s LESS files.&lt;/p&gt;

&lt;p&gt;Before you read further you must be able to compile Bootstrap’s LESS files to the appropriate CSS
files. This usually means that &lt;code&gt;bootstrap.less&lt;/code&gt; compiles to &lt;code&gt;bootstrap.css&lt;/code&gt;, and &lt;code&gt;responsive.less&lt;/code&gt;
compiles to &lt;code&gt;bootstrap-responsive.css&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Lately I’ve been using a &lt;a href=&quot;/integrating-grunt-js-with-roots/&quot;&gt;grunt.js build script&lt;/a&gt; that handles
compiling LESS, but there are several tools available that have made it painless:
&lt;a href=&quot;http://incident57.com/codekit/&quot;&gt;CodeKit&lt;/a&gt; (OS X), &lt;a href=&quot;http://wearekiss.com/simpless&quot;&gt;SimpLESS&lt;/a&gt;,
&lt;a href=&quot;https://github.com/sanchothefat/wp-less&quot;&gt;WP-LESS&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;Gravity Forms Settings&lt;/h2&gt;

&lt;p&gt;After downloading and activating &lt;a href=&quot;http://www.rootstheme.com/gravityforms/&quot;&gt;Gravity Forms&lt;/a&gt; you’ll
need to change a couple general settings. Navigate to &lt;strong&gt;Forms &gt; Settings&lt;/strong&gt; through the admin
navigation:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Set &lt;strong&gt;Output CSS&lt;/strong&gt; to &lt;strong&gt;No&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Set &lt;strong&gt;Output HTML5&lt;/strong&gt; to &lt;strong&gt;Yes&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;


&lt;p&gt;The included Gravity Forms CSS includes too many styles (their forms.css includes almost 2,500 lines)
you’d need to override so it’s just easier to start from scratch.&lt;/p&gt;

&lt;p&gt;Go ahead and create a new form and then include it on a post or page so that you’re able to test
your new styles. When including a Gravity Form I opt for not displaying the form title and description
and instead just manually include those if necessary.&lt;/p&gt;

&lt;h2&gt;General Styling for Gravity Forms&lt;/h2&gt;

&lt;p&gt;Before we start editing LESS files we’ll need to apply some basic styling to the form, such as making
the &lt;code&gt;&amp;lt;ul&amp;gt;&lt;/code&gt; have &lt;code&gt;list-style: none;&lt;/code&gt; and removing unnecessary margins.&lt;/p&gt;

&lt;p&gt;In your theme’s stylesheet add the following:&lt;/p&gt;

&lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;css&quot;&gt;&lt;span class=&quot;nc&quot;&gt;.gform_wrapper&lt;/span&gt; &lt;span class=&quot;nt&quot;&gt;ul&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;list-style&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;none&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;margin-left&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;m&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;
&lt;span class=&quot;nc&quot;&gt;.gform_wrapper&lt;/span&gt; &lt;span class=&quot;nt&quot;&gt;form&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;margin-bottom&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;m&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;To get radio and checkbox inputs to display properly, add:&lt;/p&gt;

&lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;css&quot;&gt;&lt;span class=&quot;nc&quot;&gt;.gfield_radio&lt;/span&gt; &lt;span class=&quot;nt&quot;&gt;input&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;,&lt;/span&gt;
&lt;span class=&quot;nc&quot;&gt;.gfield_checkbox&lt;/span&gt; &lt;span class=&quot;nt&quot;&gt;input&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;
  &lt;span class=&quot;k&quot;&gt;vertical-align&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;m&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;
&lt;span class=&quot;nc&quot;&gt;.gfield_radio&lt;/span&gt; &lt;span class=&quot;nt&quot;&gt;label&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;,&lt;/span&gt;
&lt;span class=&quot;nc&quot;&gt;.gfield_checkbox&lt;/span&gt; &lt;span class=&quot;nt&quot;&gt;label&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;
  &lt;span class=&quot;k&quot;&gt;display&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;inline&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;k&quot;&gt;block&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;k&quot;&gt;margin-left&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;m&quot;&gt;8px&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;I use LESS for my stylesheet and like to use Bootstrap’s &lt;code&gt;@red&lt;/code&gt; to style the asterisks on required
fields:&lt;/p&gt;

&lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;css&quot;&gt;&lt;span class=&quot;nc&quot;&gt;.gform_wrapper&lt;/span&gt; &lt;span class=&quot;nc&quot;&gt;.gfield_required&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;
  &lt;span class=&quot;k&quot;&gt;color&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;@&lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;red&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;k&quot;&gt;padding-left&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;m&quot;&gt;1px&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;


&lt;h2&gt;Editing Bootstrap’s LESS for Gravity Forms Styling&lt;/h2&gt;

&lt;h3&gt;buttons.less&lt;/h3&gt;

&lt;p&gt;Open up &lt;code&gt;buttons.less&lt;/code&gt; so that we can apply the Bootstrap styles associated with both &lt;code&gt;.btn&lt;/code&gt; and
&lt;code&gt;.btn-primary&lt;/code&gt; to &lt;code&gt;.gform_button&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Update the first &lt;code&gt;.btn&lt;/code&gt; style block so that it gets applied to the Gravity Forms submit button:&lt;/p&gt;

&lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;css&quot;&gt;&lt;span class=&quot;o&quot;&gt;//&lt;/span&gt; &lt;span class=&quot;nt&quot;&gt;Core&lt;/span&gt;
&lt;span class=&quot;nc&quot;&gt;.btn&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;,&lt;/span&gt;
&lt;span class=&quot;nc&quot;&gt;.gform_button&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;
  &lt;span class=&quot;k&quot;&gt;display&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;inline&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;k&quot;&gt;block&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;ie7&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;k&quot;&gt;inline&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;k&quot;&gt;block&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;();&lt;/span&gt;
  &lt;span class=&quot;k&quot;&gt;padding&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;m&quot;&gt;4px&lt;/span&gt; &lt;span class=&quot;m&quot;&gt;14px&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt;

  &lt;span class=&quot;o&quot;&gt;...&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;etc&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;Update the backgrounds further down in the file to apply the styling to the Gravity Forms button:&lt;/p&gt;

&lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;css&quot;&gt;&lt;span class=&quot;o&quot;&gt;//&lt;/span&gt; &lt;span class=&quot;nt&quot;&gt;Set&lt;/span&gt; &lt;span class=&quot;nt&quot;&gt;the&lt;/span&gt; &lt;span class=&quot;nt&quot;&gt;backgrounds&lt;/span&gt;
&lt;span class=&quot;o&quot;&gt;//&lt;/span&gt; &lt;span class=&quot;nt&quot;&gt;-------------------------&lt;/span&gt;
&lt;span class=&quot;nc&quot;&gt;.btn&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;,&lt;/span&gt;
&lt;span class=&quot;nc&quot;&gt;.gform_button&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;
  &lt;span class=&quot;o&quot;&gt;//&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;reset&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;here&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;as&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;of&lt;/span&gt; &lt;span class=&quot;m&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;m&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;m&quot;&gt;3&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;due&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;to&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;Recess&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;property&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;order&lt;/span&gt;
  &lt;span class=&quot;k&quot;&gt;border-color&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;m&quot;&gt;#c5c5c5&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;k&quot;&gt;border-color&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;rgba&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;m&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;m&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;m&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;,.&lt;/span&gt;&lt;span class=&quot;m&quot;&gt;15&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;rgba&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;m&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;m&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;m&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;,.&lt;/span&gt;&lt;span class=&quot;m&quot;&gt;15&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;rgba&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;m&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;m&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;m&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;,.&lt;/span&gt;&lt;span class=&quot;m&quot;&gt;25&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt;
&lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;
&lt;span class=&quot;nc&quot;&gt;.btn-primary&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;,&lt;/span&gt;
&lt;span class=&quot;nc&quot;&gt;.gform_button&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;
  &lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;buttonBackground&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;@&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;btnPrimaryBackground&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;@&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;btnPrimaryBackgroundHighlight&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt;
&lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;After making these changes and re-compiling your Bootstrap LESS you’ll notice that the Gravity Forms
submit button now looks like a Bootstrap button with the primary styling.&lt;/p&gt;

&lt;h3&gt;alerts.less&lt;/h3&gt;

&lt;p&gt;Edit your theme stylesheet to hide the error messages from Gravity Forms associated with each field
since we’ll be applying Bootstrap’s error styling to the inputs:&lt;/p&gt;

&lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;css&quot;&gt;&lt;span class=&quot;nc&quot;&gt;.gform_wrapper&lt;/span&gt; &lt;span class=&quot;nc&quot;&gt;.validation_message&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;display&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;none&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;Open up &lt;code&gt;alerts.less&lt;/code&gt; so that we can apply the Bootstrap alert styles to the necessary Gravity Forms
elements:&lt;/p&gt;

&lt;p&gt;Update the first &lt;code&gt;.alert&lt;/code&gt; style block so that it gets applied to the Gravity Forms error and
confirmation messages:&lt;/p&gt;

&lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;css&quot;&gt;&lt;span class=&quot;o&quot;&gt;//&lt;/span&gt; &lt;span class=&quot;nt&quot;&gt;Base&lt;/span&gt; &lt;span class=&quot;nt&quot;&gt;styles&lt;/span&gt;
&lt;span class=&quot;o&quot;&gt;//&lt;/span&gt; &lt;span class=&quot;nt&quot;&gt;-------------------------&lt;/span&gt;

&lt;span class=&quot;nc&quot;&gt;.alert&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;,&lt;/span&gt;
&lt;span class=&quot;nc&quot;&gt;.validation_error&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;,&lt;/span&gt;
&lt;span class=&quot;nf&quot;&gt;#gforms_confirmation_message&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;
  &lt;span class=&quot;k&quot;&gt;padding&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;m&quot;&gt;8px&lt;/span&gt; &lt;span class=&quot;m&quot;&gt;35px&lt;/span&gt; &lt;span class=&quot;m&quot;&gt;8px&lt;/span&gt; &lt;span class=&quot;m&quot;&gt;14px&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;k&quot;&gt;margin-bottom&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;@&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;baseLineHeight&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt;

  &lt;span class=&quot;o&quot;&gt;...&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;etc&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;Update the &lt;code&gt;.alert-error&lt;/code&gt; style block so that it gets applied to the necessary Gravity Forms form
elements:&lt;/p&gt;

&lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;css&quot;&gt;&lt;span class=&quot;nc&quot;&gt;.alert-danger&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;,&lt;/span&gt;
&lt;span class=&quot;nc&quot;&gt;.alert-error&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;,&lt;/span&gt;
&lt;span class=&quot;nc&quot;&gt;.validation_error&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;,&lt;/span&gt;
&lt;span class=&quot;nc&quot;&gt;.gform_wrapper&lt;/span&gt; &lt;span class=&quot;nc&quot;&gt;.gfield_error&lt;/span&gt; &lt;span class=&quot;nt&quot;&gt;input&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;type&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;text&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;],&lt;/span&gt;
&lt;span class=&quot;nc&quot;&gt;.gform_wrapper&lt;/span&gt; &lt;span class=&quot;nc&quot;&gt;.gfield_error&lt;/span&gt; &lt;span class=&quot;nt&quot;&gt;input&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;type&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;tel&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;],&lt;/span&gt;
&lt;span class=&quot;nc&quot;&gt;.gform_wrapper&lt;/span&gt; &lt;span class=&quot;nc&quot;&gt;.gfield_error&lt;/span&gt; &lt;span class=&quot;nt&quot;&gt;input&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;type&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;email&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;],&lt;/span&gt;
&lt;span class=&quot;nc&quot;&gt;.gform_wrapper&lt;/span&gt; &lt;span class=&quot;nc&quot;&gt;.gfield_error&lt;/span&gt; &lt;span class=&quot;nt&quot;&gt;textarea&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;,&lt;/span&gt;
&lt;span class=&quot;nc&quot;&gt;.gform_wrapper&lt;/span&gt; &lt;span class=&quot;nc&quot;&gt;.gfield_error&lt;/span&gt; &lt;span class=&quot;nt&quot;&gt;select&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;
  &lt;span class=&quot;k&quot;&gt;background-color&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;@&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;errorBackground&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;k&quot;&gt;border-color&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;@&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;errorBorder&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;k&quot;&gt;color&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;@&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;errorText&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;I like to also apply the &lt;code&gt;@errorText&lt;/code&gt; to the form labels in my theme stylesheet:&lt;/p&gt;

&lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;css&quot;&gt;&lt;span class=&quot;nc&quot;&gt;.gform_wrapper&lt;/span&gt; &lt;span class=&quot;nc&quot;&gt;.gfield_error&lt;/span&gt; &lt;span class=&quot;nt&quot;&gt;label&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;
  &lt;span class=&quot;k&quot;&gt;color&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;@&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;errorText&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;


&lt;h2&gt;Further Customizations&lt;/h2&gt;

&lt;p&gt;Now that you have Bootstrap’s button and alert styling applied to &lt;a href=&quot;http://www.rootstheme.com/gravityforms/&quot;&gt;Gravity Forms&lt;/a&gt;
you might want to customize and style your forms further. You can either edit &lt;code&gt;forms.less&lt;/code&gt; or just
make your customizations in your theme stylesheet.&lt;/p&gt;

&lt;h4&gt;Alternative Method&lt;/h4&gt;

&lt;p&gt;You can also apply the styles just by editing your theme stylesheet if you add imports for
&lt;code&gt;buttons.less&lt;/code&gt; and &lt;code&gt;alerts.less&lt;/code&gt; at the top of the file, although this will result in a lot of
duplicated code in the final output. Example:&lt;/p&gt;

&lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;css&quot;&gt;&lt;span class=&quot;k&quot;&gt;@import&lt;/span&gt; &lt;span class=&quot;s2&quot;&gt;&amp;quot;bootstrap/alerts.less&amp;quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;k&quot;&gt;@import&lt;/span&gt; &lt;span class=&quot;s2&quot;&gt;&amp;quot;bootstrap/buttons.less&amp;quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt;

&lt;span class=&quot;nc&quot;&gt;.gform_wrapper&lt;/span&gt; &lt;span class=&quot;nc&quot;&gt;.gform_button&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;
  &lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;btn&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;btn&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;primary&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;I’ve &lt;a href=&quot;https://gist.github.com/3889238&quot;&gt;created a gist&lt;/a&gt; that includes the modified Bootstrap LESS
files (only tested on Bootstrap v2.1.1).&lt;/p&gt;
</description>
        <pubDate>Mon, 15 Oct 2012 00:00:00 -0500</pubDate>
        <link>http://benword.com/style-gravity-forms-with-bootstrap/</link>
        <guid isPermaLink="true">http://benword.com/style-gravity-forms-with-bootstrap/</guid>
      </item>
    
      <item>
        <title>Integrating Grunt with Roots Theme</title>
        <description>&lt;p class=&quot;lead&quot;&gt;
  Using &lt;a href=&quot;http://gruntjs.com/&quot;&gt;Grunt&lt;/a&gt; with &lt;a href=&quot;http://www.rootstheme.com/&quot;&gt;Roots&lt;/a&gt;
  will help you automate your workflow and build WordPress themes more efficiently.
&lt;/p&gt;


&lt;p&gt;I pushed up a &lt;a href=&quot;https://github.com/retlehs/roots/tree/grunt&quot;&gt;Grunt branch&lt;/a&gt; to the Roots repository
that will show you how I’ve used grunt in my projects lately. The Roots Gruntfile will:&lt;/p&gt;

&lt;div class=&quot;panel pull-right&quot;&gt;
  &lt;img src=&quot;/assets/img/roots-grunt.png&quot; alt=&quot;&quot;&gt;
&lt;/div&gt;


&lt;ol&gt;
&lt;li&gt;Validate your JavaScript with JSHint&lt;/li&gt;
&lt;li&gt;Compile Bootstrap’s &lt;code&gt;bootstrap.less&lt;/code&gt; &amp;amp; &lt;code&gt;responsive.less&lt;/code&gt; along with your site-specific
&lt;code&gt;app.less&lt;/code&gt; to &lt;code&gt;main.css&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Concatenate all your JavaScript plugins and site-specific JS to &lt;code&gt;scripts.js&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Minify &lt;code&gt;scripts.js&lt;/code&gt; to &lt;code&gt;scripts.min.js&lt;/code&gt; &amp;amp; &lt;code&gt;main.css&lt;/code&gt; to &lt;code&gt;main.min.css&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Update &lt;code&gt;lib/scripts.php&lt;/code&gt;’s &lt;code&gt;wp_enqueue_style&lt;/code&gt; and &lt;code&gt;wp_enqueue_script&lt;/code&gt; calls to update the
version based off the md5 of the files (to bust cache)&lt;/li&gt;
&lt;/ol&gt;


&lt;h2&gt;Benefits&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Easily compile LESS files&lt;/li&gt;
&lt;li&gt;Minification and concatenation without plugins&lt;/li&gt;
&lt;li&gt;Fewer requests made to the server (one CSS file, one main JS file besides Modernizr and jQuery)&lt;/li&gt;
&lt;li&gt;Ensures valid JavaScript&lt;/li&gt;
&lt;li&gt;Others working on your project are able to use the same build script and have a unified development process&lt;/li&gt;
&lt;li&gt;Code is optimized for production use&lt;/li&gt;
&lt;/ul&gt;


&lt;h2&gt;The Gruntfile.js file&lt;/h2&gt;

&lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;javascript&quot;&gt;&lt;span class=&quot;s1&quot;&gt;&amp;#39;use strict&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;nx&quot;&gt;module&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;exports&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kd&quot;&gt;function&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;grunt&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;

  &lt;span class=&quot;nx&quot;&gt;grunt&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;initConfig&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;({&lt;/span&gt;
    &lt;span class=&quot;nx&quot;&gt;jshint&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;
      &lt;span class=&quot;nx&quot;&gt;options&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;
        &lt;span class=&quot;nx&quot;&gt;jshintrc&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;s1&quot;&gt;&amp;#39;.jshintrc&amp;#39;&lt;/span&gt;
      &lt;span class=&quot;p&quot;&gt;},&lt;/span&gt;
      &lt;span class=&quot;nx&quot;&gt;all&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;
        &lt;span class=&quot;s1&quot;&gt;&amp;#39;Gruntfile.js&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;
        &lt;span class=&quot;s1&quot;&gt;&amp;#39;assets/js/*.js&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;
        &lt;span class=&quot;s1&quot;&gt;&amp;#39;assets/js/plugins/*.js&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;
        &lt;span class=&quot;s1&quot;&gt;&amp;#39;!assets/js/scripts.min.js&amp;#39;&lt;/span&gt;
      &lt;span class=&quot;p&quot;&gt;]&lt;/span&gt;
    &lt;span class=&quot;p&quot;&gt;},&lt;/span&gt;
    &lt;span class=&quot;nx&quot;&gt;recess&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;
      &lt;span class=&quot;nx&quot;&gt;dist&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;
        &lt;span class=&quot;nx&quot;&gt;options&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;
          &lt;span class=&quot;nx&quot;&gt;compile&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;kc&quot;&gt;true&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;
          &lt;span class=&quot;nx&quot;&gt;compress&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;kc&quot;&gt;true&lt;/span&gt;
        &lt;span class=&quot;p&quot;&gt;},&lt;/span&gt;
        &lt;span class=&quot;nx&quot;&gt;files&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;
          &lt;span class=&quot;s1&quot;&gt;&amp;#39;assets/css/main.min.css&amp;#39;&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;
            &lt;span class=&quot;s1&quot;&gt;&amp;#39;assets/css/less/bootstrap/bootstrap.less&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;
            &lt;span class=&quot;s1&quot;&gt;&amp;#39;assets/css/less/bootstrap/responsive.less&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;
            &lt;span class=&quot;s1&quot;&gt;&amp;#39;assets/css/less/app.less&amp;#39;&lt;/span&gt;
          &lt;span class=&quot;p&quot;&gt;]&lt;/span&gt;
        &lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;
      &lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;
    &lt;span class=&quot;p&quot;&gt;},&lt;/span&gt;
    &lt;span class=&quot;nx&quot;&gt;uglify&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;
      &lt;span class=&quot;nx&quot;&gt;dist&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;
        &lt;span class=&quot;nx&quot;&gt;files&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;
          &lt;span class=&quot;s1&quot;&gt;&amp;#39;assets/js/scripts.min.js&amp;#39;&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;
            &lt;span class=&quot;s1&quot;&gt;&amp;#39;assets/js/plugins/bootstrap/bootstrap-transition.js&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;
            &lt;span class=&quot;s1&quot;&gt;&amp;#39;assets/js/plugins/bootstrap/bootstrap-alert.js&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;
            &lt;span class=&quot;s1&quot;&gt;&amp;#39;assets/js/plugins/bootstrap/bootstrap-button.js&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;
            &lt;span class=&quot;s1&quot;&gt;&amp;#39;assets/js/plugins/bootstrap/bootstrap-carousel.js&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;
            &lt;span class=&quot;s1&quot;&gt;&amp;#39;assets/js/plugins/bootstrap/bootstrap-collapse.js&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;
            &lt;span class=&quot;s1&quot;&gt;&amp;#39;assets/js/plugins/bootstrap/bootstrap-dropdown.js&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;
            &lt;span class=&quot;s1&quot;&gt;&amp;#39;assets/js/plugins/bootstrap/bootstrap-modal.js&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;
            &lt;span class=&quot;s1&quot;&gt;&amp;#39;assets/js/plugins/bootstrap/bootstrap-tooltip.js&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;
            &lt;span class=&quot;s1&quot;&gt;&amp;#39;assets/js/plugins/bootstrap/bootstrap-popover.js&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;
            &lt;span class=&quot;s1&quot;&gt;&amp;#39;assets/js/plugins/bootstrap/bootstrap-scrollspy.js&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;
            &lt;span class=&quot;s1&quot;&gt;&amp;#39;assets/js/plugins/bootstrap/bootstrap-tab.js&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;
            &lt;span class=&quot;s1&quot;&gt;&amp;#39;assets/js/plugins/bootstrap/bootstrap-typehead.js&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;
            &lt;span class=&quot;s1&quot;&gt;&amp;#39;assets/js/plugins/*.js&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;
            &lt;span class=&quot;s1&quot;&gt;&amp;#39;assets/js/_*.js&amp;#39;&lt;/span&gt;
          &lt;span class=&quot;p&quot;&gt;]&lt;/span&gt;
        &lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;
      &lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;
    &lt;span class=&quot;p&quot;&gt;},&lt;/span&gt;
    &lt;span class=&quot;nx&quot;&gt;watch&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;
      &lt;span class=&quot;nx&quot;&gt;less&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;
        &lt;span class=&quot;nx&quot;&gt;files&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;
          &lt;span class=&quot;s1&quot;&gt;&amp;#39;assets/css/less/*.less&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;
          &lt;span class=&quot;s1&quot;&gt;&amp;#39;assets/css/less/bootstrap/*.less&amp;#39;&lt;/span&gt;
        &lt;span class=&quot;p&quot;&gt;],&lt;/span&gt;
        &lt;span class=&quot;nx&quot;&gt;tasks&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&amp;#39;recess&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt;
      &lt;span class=&quot;p&quot;&gt;},&lt;/span&gt;
      &lt;span class=&quot;nx&quot;&gt;js&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;
        &lt;span class=&quot;nx&quot;&gt;files&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;
          &lt;span class=&quot;s1&quot;&gt;&amp;#39;&amp;lt;%= jshint.all %&amp;gt;&amp;#39;&lt;/span&gt;
        &lt;span class=&quot;p&quot;&gt;],&lt;/span&gt;
        &lt;span class=&quot;nx&quot;&gt;tasks&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&amp;#39;jshint&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt;
      &lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;
    &lt;span class=&quot;p&quot;&gt;},&lt;/span&gt;
    &lt;span class=&quot;nx&quot;&gt;clean&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;
      &lt;span class=&quot;nx&quot;&gt;dist&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;
        &lt;span class=&quot;s1&quot;&gt;&amp;#39;assets/css/main.min.css&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;
        &lt;span class=&quot;s1&quot;&gt;&amp;#39;assets/js/scripts.min.js&amp;#39;&lt;/span&gt;
      &lt;span class=&quot;p&quot;&gt;]&lt;/span&gt;
    &lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;
  &lt;span class=&quot;p&quot;&gt;});&lt;/span&gt;

  &lt;span class=&quot;c1&quot;&gt;// Load tasks&lt;/span&gt;
  &lt;span class=&quot;nx&quot;&gt;grunt&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;loadTasks&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&amp;#39;tasks&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt;
  &lt;span class=&quot;nx&quot;&gt;grunt&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;loadNpmTasks&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&amp;#39;grunt-contrib-clean&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt;
  &lt;span class=&quot;nx&quot;&gt;grunt&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;loadNpmTasks&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&amp;#39;grunt-contrib-jshint&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt;
  &lt;span class=&quot;nx&quot;&gt;grunt&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;loadNpmTasks&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&amp;#39;grunt-contrib-uglify&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt;
  &lt;span class=&quot;nx&quot;&gt;grunt&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;loadNpmTasks&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&amp;#39;grunt-contrib-watch&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt;
  &lt;span class=&quot;nx&quot;&gt;grunt&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;loadNpmTasks&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&amp;#39;grunt-recess&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt;

  &lt;span class=&quot;c1&quot;&gt;// Register tasks&lt;/span&gt;
  &lt;span class=&quot;nx&quot;&gt;grunt&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;registerTask&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&amp;#39;default&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;
    &lt;span class=&quot;s1&quot;&gt;&amp;#39;clean&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;
    &lt;span class=&quot;s1&quot;&gt;&amp;#39;recess&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;
    &lt;span class=&quot;s1&quot;&gt;&amp;#39;uglify&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;
    &lt;span class=&quot;s1&quot;&gt;&amp;#39;version&amp;#39;&lt;/span&gt;
  &lt;span class=&quot;p&quot;&gt;]);&lt;/span&gt;
  &lt;span class=&quot;nx&quot;&gt;grunt&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;registerTask&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&amp;#39;dev&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;
    &lt;span class=&quot;s1&quot;&gt;&amp;#39;watch&amp;#39;&lt;/span&gt;
  &lt;span class=&quot;p&quot;&gt;]);&lt;/span&gt;

&lt;span class=&quot;p&quot;&gt;};&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;


&lt;h2&gt;File changes/re-organization&lt;/h2&gt;

&lt;p&gt;There have been a few changes in the grunt branch allowing better organization of your assets:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;All Bootstrap files have been moved into a subdirectory to &lt;code&gt;assets/css/less/bootstrap/&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;app.css&lt;/code&gt; has been renamed to &lt;code&gt;app.less&lt;/code&gt;, moved to the LESS directory, and updated with some
&lt;code&gt;@import&lt;/code&gt;’s at the top of the file to use variables and mixins from Bootstrap&lt;/li&gt;
&lt;li&gt;&lt;code&gt;plugins.js&lt;/code&gt; has been removed since you’ll be placing all of your plugins within &lt;code&gt;assets/js/plugins/&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;The minified Bootstrap JS doesn’t exist anymore and all of the Bootstrap plugins exist in
&lt;code&gt;assets/js/plugins/bootstrap/&lt;/code&gt; — you can easily remove certain plugins from your site by editing the
Gruntfile&lt;/li&gt;
&lt;li&gt;&lt;code&gt;main.js&lt;/code&gt; has been replaced with &lt;code&gt;_main.js&lt;/code&gt; and contains an example helpful
&lt;a href=&quot;http://paulirish.com/2009/markup-based-unobtrusive-comprehensive-dom-ready-execution/&quot;&gt;DOM-based routing&lt;/a&gt;
script that works off the WordPress &lt;code&gt;body_class&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;lib/scripts.php&lt;/code&gt; has been updated to remove all extra CSS and JS files and also places
JavaScript in the footer&lt;/li&gt;
&lt;/ol&gt;


&lt;h2&gt;Installing Grunt to use with Roots&lt;/h2&gt;

&lt;p&gt;After you’ve &lt;a href=&quot;http://gruntjs.com/getting-started&quot;&gt;installed grunt&lt;/a&gt; globally you’ll need to install
the additional Grunt tasks we use. First, clone Roots from your &lt;code&gt;/wp-content/themes/&lt;/code&gt; directory and
switch to the Grunt branch:&lt;/p&gt;

&lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;bash&quot;&gt;&lt;span class=&quot;nv&quot;&gt;$ &lt;/span&gt;git clone https://github.com/retlehs/roots.git
&lt;span class=&quot;nv&quot;&gt;$ &lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;cd &lt;/span&gt;roots
&lt;span class=&quot;nv&quot;&gt;$ &lt;/span&gt;git checkout grunt
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;Then install the Grunt tasks (grunt-contrib, grunt-recess) used in the Roots Gruntfile by typing:&lt;/p&gt;

&lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;bash&quot;&gt;&lt;span class=&quot;nv&quot;&gt;$ &lt;/span&gt;npm install
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;Now you’re ready to build. Type &lt;code&gt;grunt&lt;/code&gt; to build. Use &lt;code&gt;grunt watch&lt;/code&gt; to watch for updates to your LESS and JS files and Grunt will automatically re-build as you write your code.&lt;/p&gt;

&lt;p&gt;&lt;small&gt;Thanks to &lt;a href=&quot;https://github.com/sjothen&quot;&gt;Stephen Jothen&lt;/a&gt; for the help creating the task that
updates the versions for enqueued CSS and JS.&lt;/small&gt;&lt;/p&gt;
</description>
        <pubDate>Wed, 03 Oct 2012 00:00:00 -0500</pubDate>
        <link>http://benword.com/integrating-grunt-js-with-roots/</link>
        <guid isPermaLink="true">http://benword.com/integrating-grunt-js-with-roots/</guid>
      </item>
    
      <item>
        <title>Roots Theme: One Year Later</title>
        <description>&lt;p class=&quot;lead&quot;&gt;
  The one year anniversary of the public release of &lt;a href=&quot;http://www.rootstheme.com/&quot;&gt;Roots&lt;/a&gt; was on
  03/28/2012. It was developed and used in-house for a year and 3 months before being released.
&lt;/p&gt;


&lt;p&gt;At the time of writing, Roots has &lt;a href=&quot;https://github.com/retlehs/roots&quot;&gt;1,718 watchers, 319 forks&lt;/a&gt;,
&lt;a href=&quot;https://github.com/retlehs/roots/graphs/contributors&quot;&gt;36 contributors&lt;/a&gt;, and is the
&lt;a href=&quot;https://github.com/languages/PHP/most_watched&quot;&gt;8th most popular PHP project on GitHub&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;There’s been 448 issues and 99 pull requests. We’ve pushed 410 commits. We went from having 0
available translated languages to becoming &lt;a href=&quot;http://www.rootstheme.com/wpml/&quot;&gt;fully WPML compatible&lt;/a&gt;
with support for 18 different languages.&lt;/p&gt;

&lt;h2&gt;Project History&lt;/h2&gt;

&lt;h3&gt;Combining the Best&lt;/h3&gt;

&lt;p&gt;The first step was taking the Starkers bare-bones theme and integrating Blueprint CSS.
I needed to use a grid system on each site I was creating and I always had a personal preference of
Blueprint over 960.gs.&lt;/p&gt;

&lt;p&gt;The next step was adding &lt;a href=&quot;http://html5boilerplate.com/&quot;&gt;HTML5 Boilerplate&lt;/a&gt;&amp;rsquo;s markup (when I first
started working on Roots, H5BP was actually called frontend-pro-template and maintained by only
&lt;a href=&quot;http://paulirish.com/&quot;&gt;Paul Irish&lt;/a&gt;).&lt;/p&gt;

&lt;h3&gt;Public Release&lt;/h3&gt;

&lt;p&gt;On 03/28/2011 I released Roots to the public and emailed a bunch of WordPress bloggers about it.
I had zero expectations about the release since there was already a bunch of public starter themes
by that point, but my coworkers insisted that Roots was going to “blow up” – I blew off the thought…&lt;/p&gt;

&lt;h3&gt;Traffic Spikes&lt;/h3&gt;

&lt;table class=&quot;table table-striped table-bordered table-condensed&quot;&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Date&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;th&gt;Visits&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;03/29/2011&lt;/td&gt;
&lt;td&gt;HTML5 Boilerplate &lt;a href=&quot;https://twitter.com/#!/h5bp/statuses/52799913892909057&quot;&gt;tweeted about Roots&lt;/a&gt; &lt;/td&gt;
&lt;td&gt;500&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;04/02/2011&lt;/td&gt;
&lt;td&gt;Smashing Magazine sent out a Facebook update about Roots&lt;/td&gt;
&lt;td&gt;710&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;04/03/2011&lt;/td&gt;
&lt;td&gt;Smashing Magazine &lt;a href=&quot;https://twitter.com/#!/smashingmag/statuses/54646060458590208&quot;&gt;tweeted about Roots&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;2,047&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;04/12/2011&lt;/td&gt;
&lt;td&gt;Smashing Magazine sent out a &lt;a href=&quot;http://www.smashingmagazine.com/smashing-newsletter-issue-31/&quot;&gt;newsletter&lt;/a&gt; that mentioned Roots&lt;/td&gt;
&lt;td&gt;2,602&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;04/18/2011&lt;/td&gt;
&lt;td&gt;Smashing Magazine mentioned Roots in a &lt;a href=&quot;http://smashingmagazine.com/2011/04/18/powerful-new-css-techniques-and-tools/&quot;&gt;blog post&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;2,071&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;06/13/2011&lt;/td&gt;
&lt;td&gt;Mashable mentioned Roots in a &lt;a href=&quot;http://mashable.com/2011/06/13/boilerplates-templates-dev/&quot;&gt;blog post&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;829&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;09/15/2011&lt;/td&gt;
&lt;td&gt;LaFermeDuWeb (French) mentioned Roots in a &lt;a href=&quot;http://www.lafermeduweb.net/billet/roots-un-theme-framework-pour-wordpress-en-html5-et-css3-1190.html&quot;&gt;blog post&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;888&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;01/24/2012&lt;/td&gt;
&lt;td&gt;Web Resources Depot mentioned Roots in a &lt;a href=&quot;http://webresourcesdepot.com/34-free-wordpress-theme-frameworks-and-starter-themes-with-a-comparison-chart/&quot;&gt;blog post&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;1,151&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;02/08/2012&lt;/td&gt;
&lt;td&gt;Smashing Magazine mentioned Roots in a &lt;a href=&quot;http://wp.smashingmagazine.com/2012/02/08/wordpress-theme-design-and-development-trends-for-2012/&quot;&gt;blog post&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;1,318&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;03/22/2012&lt;/td&gt;
&lt;td&gt;Smashing Magazine mentioned Roots in a &lt;a href=&quot;http://wp.smashingmagazine.com/2012/03/22/useful-wordpress-tools-themes-plugins/&quot;&gt;blog post&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;5,000+&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;


&lt;ul&gt;
&lt;li&gt;Speckyboy’s &lt;a href=&quot;http://speckyboy.com/2011/04/25/10-html5-ready-blank-bare-bones-and-naked-themes-for-wordpress/&quot;&gt;blog post&lt;/a&gt; about Roots has sent over 8,000 visits&lt;/li&gt;
&lt;li&gt;Smashing Magazine is responsible for at least 20,000 visits&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;&lt;/ul&gt;&lt;/p&gt;

&lt;h4&gt;GitHub Traffic (04/01/2012)&lt;/h4&gt;

&lt;div class=&quot;panel&quot;&gt;
  &lt;img src=&quot;/assets/img/github-traffic-2012-04.png&quot; alt=&quot;&quot;&gt;
&lt;/div&gt;


&lt;h3&gt;Major Changes&lt;/h3&gt;

&lt;h4&gt;Adding CSS Frameworks&lt;/h4&gt;

&lt;p&gt;Shortly after the public release, &lt;a href=&quot;https://github.com/johnraz&quot;&gt;John Liuti&lt;/a&gt; submitted a pull request
to add 960.gs integration along with Blueprint CSS. Then came the 1140px Grid. Then came Adapt.js
&amp;amp; LESS. Then came Bootstrap &amp;amp; Foundation.&lt;/p&gt;

&lt;h4&gt;Removing CSS Frameworks except Bootstrap&lt;/h4&gt;

&lt;p&gt;We made the decision in February 2012 to remove all frameworks except for Bootstrap from Twitter since the codebase was becoming a bit ridiculous due to all the different CSS frameworks.&lt;/p&gt;

&lt;h2&gt;What I’ve Learned&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://github.com/&quot;&gt;GitHub&lt;/a&gt; is really, really, really, really awesome&lt;/li&gt;
&lt;li&gt;People hate bugs, are lazy, and almost never troubleshoot&lt;/li&gt;
&lt;li&gt;Most bugs come from root relative URLs and installs in subfolders&lt;/li&gt;
&lt;li&gt;WordPress has too many bugs in Trac that have been forgotten (even if there’s a working patch)
that would help out everybody if they could get pushed through&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;We’re always fighting against WordPress with the clean URLs &amp;amp; root relative URLs features.
There’s also so many different types of installs, from subfolders to different core file locations,
to network setups and child themes.&lt;/p&gt;

&lt;p&gt;The most stable way to use Roots (with clean URLs &amp;amp; root relative URLs) has always been in the
root web directory.&lt;/p&gt;

&lt;h2&gt;Where We’re Headed&lt;/h2&gt;

&lt;p&gt;We want to &lt;a href=&quot;https://github.com/retlehs/roots/issues/230&quot;&gt;simplify the template files&lt;/a&gt;, do further
re-organization &amp;amp; add &lt;a href=&quot;https://github.com/retlehs/roots/issues/264&quot;&gt;better documentation&lt;/a&gt;. We’re
also going to re-add better support for &lt;a href=&quot;http://www.rootstheme.com/gravityforms/&quot;&gt;Gravity Forms&lt;/a&gt;
within Bootstrap.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Thanks for all the support!&lt;/strong&gt;&lt;/p&gt;
</description>
        <pubDate>Sun, 13 May 2012 00:00:00 -0500</pubDate>
        <link>http://benword.com/roots-theme-one-year-later/</link>
        <guid isPermaLink="true">http://benword.com/roots-theme-one-year-later/</guid>
      </item>
    
      <item>
        <title>How to Hide The Fact That You’re Using WordPress</title>
        <description>&lt;div class=&quot;alert alert-info&quot;&gt;
  This post contains information on how to clean up WordPress code output. The methods described
  below &lt;b&gt;do not&lt;/b&gt; prevent actual fingerprinting and shouldn’t be looked at as any sort of
  security measure.
&lt;/div&gt;




&lt;p class=&quot;lead&quot;&gt;
  In the &lt;a href=&quot;http://www.rootstheme.com/&quot;&gt;Roots Theme&lt;/a&gt; we’re taking several steps to help make
  it not so obvious that you’re using WordPress:
&lt;/p&gt;


&lt;ol&gt;
&lt;li&gt;Cleaning up the output of &lt;code&gt;wp_head&lt;/code&gt; and removing the generator from RSS feeds&lt;/li&gt;
&lt;li&gt;Hiding &lt;code&gt;/wp-content/&lt;/code&gt; by rewriting static theme assets (CSS, JS, images), rewriting
the plugins directory, and also changing the location of WordPress uploads&lt;/li&gt;
&lt;li&gt;Cleaning up the output of navigation menus with a &lt;a href=&quot;http://codex.wordpress.org/Function_Reference/Walker_Class&quot;&gt;custom walker&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Bonus: root relative URLs&lt;/li&gt;
&lt;/ol&gt;


&lt;h2&gt;Clean Up wp_head&lt;/h2&gt;

&lt;p&gt;You’re probably used to viewing the source of your WordPress site and seeing some not-so-pretty code:&lt;/p&gt;

&lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;html&quot;&gt;&lt;span class=&quot;cp&quot;&gt;&amp;lt;!DOCTYPE html&amp;gt;&lt;/span&gt;
&lt;span class=&quot;c&quot;&gt;&amp;lt;!--[if IE 6]&amp;gt;&lt;/span&gt;
&lt;span class=&quot;c&quot;&gt;&amp;lt;html id=&amp;quot;ie6&amp;quot; dir=&amp;quot;ltr&amp;quot; lang=&amp;quot;en-US&amp;quot;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;c&quot;&gt;&amp;lt;![endif]--&amp;gt;&lt;/span&gt;
&lt;span class=&quot;c&quot;&gt;&amp;lt;!--[if IE 7]&amp;gt;&lt;/span&gt;
&lt;span class=&quot;c&quot;&gt;&amp;lt;html id=&amp;quot;ie7&amp;quot; dir=&amp;quot;ltr&amp;quot; lang=&amp;quot;en-US&amp;quot;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;c&quot;&gt;&amp;lt;![endif]--&amp;gt;&lt;/span&gt;
&lt;span class=&quot;c&quot;&gt;&amp;lt;!--[if IE 8]&amp;gt;&lt;/span&gt;
&lt;span class=&quot;c&quot;&gt;&amp;lt;html id=&amp;quot;ie8&amp;quot; dir=&amp;quot;ltr&amp;quot; lang=&amp;quot;en-US&amp;quot;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;c&quot;&gt;&amp;lt;![endif]--&amp;gt;&lt;/span&gt;
&lt;span class=&quot;c&quot;&gt;&amp;lt;!--[if !(IE 6) | !(IE 7) | !(IE 8)  ]&amp;gt;&amp;lt;!--&amp;gt;&lt;/span&gt;
&lt;span class=&quot;nt&quot;&gt;&amp;lt;html&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;dir=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&amp;quot;ltr&amp;quot;&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;lang=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&amp;quot;en-US&amp;quot;&lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;c&quot;&gt;&amp;lt;!--&amp;lt;![endif]--&amp;gt;&lt;/span&gt;
&lt;span class=&quot;nt&quot;&gt;&amp;lt;head&amp;gt;&lt;/span&gt;
&lt;span class=&quot;nt&quot;&gt;&amp;lt;meta&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;charset=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&amp;quot;UTF-8&amp;quot;&lt;/span&gt; &lt;span class=&quot;nt&quot;&gt;/&amp;gt;&lt;/span&gt;
&lt;span class=&quot;nt&quot;&gt;&amp;lt;meta&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;name=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&amp;quot;viewport&amp;quot;&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;content=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&amp;quot;width=device-width&amp;quot;&lt;/span&gt; &lt;span class=&quot;nt&quot;&gt;/&amp;gt;&lt;/span&gt;
&lt;span class=&quot;nt&quot;&gt;&amp;lt;title&amp;gt;&lt;/span&gt;Example Site | Just another WordPress site&lt;span class=&quot;nt&quot;&gt;&amp;lt;/title&amp;gt;&lt;/span&gt;
&lt;span class=&quot;nt&quot;&gt;&amp;lt;link&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;rel=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&amp;quot;profile&amp;quot;&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;href=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&amp;quot;http://gmpg.org/xfn/11&amp;quot;&lt;/span&gt; &lt;span class=&quot;nt&quot;&gt;/&amp;gt;&lt;/span&gt;
&lt;span class=&quot;nt&quot;&gt;&amp;lt;link&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;rel=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&amp;quot;stylesheet&amp;quot;&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;type=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&amp;quot;text/css&amp;quot;&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;media=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&amp;quot;all&amp;quot;&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;href=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&amp;quot;http://example.com/wp-content/themes/twentyeleven/style.css&amp;quot;&lt;/span&gt; &lt;span class=&quot;nt&quot;&gt;/&amp;gt;&lt;/span&gt;
&lt;span class=&quot;nt&quot;&gt;&amp;lt;link&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;rel=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&amp;quot;pingback&amp;quot;&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;href=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&amp;quot;http://example.com/xmlrpc.php&amp;quot;&lt;/span&gt; &lt;span class=&quot;nt&quot;&gt;/&amp;gt;&lt;/span&gt;
&lt;span class=&quot;c&quot;&gt;&amp;lt;!--[if lt IE 9]&amp;gt;&lt;/span&gt;
&lt;span class=&quot;c&quot;&gt;&amp;lt;script src=&amp;quot;http://example.com/wp-content/themes/twentyeleven/js/html5.js&amp;quot; type=&amp;quot;text/javascript&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;/span&gt;
&lt;span class=&quot;c&quot;&gt;&amp;lt;![endif]--&amp;gt;&lt;/span&gt;
&lt;span class=&quot;nt&quot;&gt;&amp;lt;link&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;rel=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&amp;quot;alternate&amp;quot;&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;type=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&amp;quot;application/rss+xml&amp;quot;&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;title=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&amp;quot;Example Site » Feed&amp;quot;&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;href=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&amp;quot;http://example.com/feed/&amp;quot;&lt;/span&gt; &lt;span class=&quot;nt&quot;&gt;/&amp;gt;&lt;/span&gt;
&lt;span class=&quot;nt&quot;&gt;&amp;lt;link&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;rel=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&amp;quot;alternate&amp;quot;&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;type=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&amp;quot;application/rss+xml&amp;quot;&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;title=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&amp;quot;Example Site » Comments Feed&amp;quot;&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;href=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&amp;quot;http://example.com/comments/feed/&amp;quot;&lt;/span&gt; &lt;span class=&quot;nt&quot;&gt;/&amp;gt;&lt;/span&gt;
&lt;span class=&quot;nt&quot;&gt;&amp;lt;link&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;rel=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&amp;quot;EditURI&amp;quot;&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;type=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&amp;quot;application/rsd+xml&amp;quot;&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;title=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&amp;quot;RSD&amp;quot;&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;href=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&amp;quot;http://example.com/xmlrpc.php?rsd&amp;quot;&lt;/span&gt; &lt;span class=&quot;nt&quot;&gt;/&amp;gt;&lt;/span&gt;
&lt;span class=&quot;nt&quot;&gt;&amp;lt;link&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;rel=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&amp;quot;wlwmanifest&amp;quot;&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;type=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&amp;quot;application/wlwmanifest+xml&amp;quot;&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;href=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&amp;quot;http://example.com/wp-includes/wlwmanifest.xml&amp;quot;&lt;/span&gt; &lt;span class=&quot;nt&quot;&gt;/&amp;gt;&lt;/span&gt;
&lt;span class=&quot;nt&quot;&gt;&amp;lt;meta&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;name=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&amp;quot;generator&amp;quot;&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;content=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&amp;quot;WordPress 3.4.2&amp;quot;&lt;/span&gt; &lt;span class=&quot;nt&quot;&gt;/&amp;gt;&lt;/span&gt;
  &lt;span class=&quot;nt&quot;&gt;&amp;lt;style &lt;/span&gt;&lt;span class=&quot;na&quot;&gt;type=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&amp;quot;text/css&amp;quot;&lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;nc&quot;&gt;.recentcomments&lt;/span&gt; &lt;span class=&quot;nt&quot;&gt;a&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;k&quot;&gt;display&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;k&quot;&gt;inline&lt;/span&gt; &lt;span class=&quot;cp&quot;&gt;!important&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt;&lt;span class=&quot;k&quot;&gt;padding&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;m&quot;&gt;0&lt;/span&gt; &lt;span class=&quot;cp&quot;&gt;!important&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt;&lt;span class=&quot;k&quot;&gt;margin&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;m&quot;&gt;0&lt;/span&gt; &lt;span class=&quot;cp&quot;&gt;!important&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;}&lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;&amp;lt;/style&amp;gt;&lt;/span&gt;
&lt;span class=&quot;nt&quot;&gt;&amp;lt;/head&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;WordPress’s tagline is “Code is Poetry” but usually after taking a quick look at the output of the
default theme you might think otherwise. It’s probably much worse once you’ve activated some plugins
which likely enqueue CSS and scripts all over the place.&lt;/p&gt;

&lt;p&gt;If you look at the output of a default Roots theme setup then you’re going to be looking at almost
an exact match of &lt;a href=&quot;http://html5boilerplate.com/&quot;&gt;HTML5 Boilerplate’s&lt;/a&gt;:&lt;/p&gt;

&lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;html&quot;&gt;&lt;span class=&quot;cp&quot;&gt;&amp;lt;!DOCTYPE html&amp;gt;&lt;/span&gt;
&lt;span class=&quot;c&quot;&gt;&amp;lt;!--[if lt IE 7]&amp;gt;      &amp;lt;html class=&amp;quot;no-js lt-ie9 lt-ie8 lt-ie7&amp;quot; lang=&amp;quot;en&amp;quot;&amp;gt; &amp;lt;![endif]--&amp;gt;&lt;/span&gt;
&lt;span class=&quot;c&quot;&gt;&amp;lt;!--[if IE 7]&amp;gt;         &amp;lt;html class=&amp;quot;no-js lt-ie9 lt-ie8&amp;quot; lang=&amp;quot;en&amp;quot;&amp;gt; &amp;lt;![endif]--&amp;gt;&lt;/span&gt;
&lt;span class=&quot;c&quot;&gt;&amp;lt;!--[if IE 8]&amp;gt;         &amp;lt;html class=&amp;quot;no-js lt-ie9&amp;quot; lang=&amp;quot;en&amp;quot;&amp;gt; &amp;lt;![endif]--&amp;gt;&lt;/span&gt;
&lt;span class=&quot;c&quot;&gt;&amp;lt;!--[if gt IE 8]&amp;gt;&amp;lt;!--&amp;gt;&lt;/span&gt; &lt;span class=&quot;nt&quot;&gt;&amp;lt;html&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;class=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&amp;quot;no-js&amp;quot;&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;lang=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&amp;quot;en&amp;quot;&lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;&amp;gt;&lt;/span&gt; &lt;span class=&quot;c&quot;&gt;&amp;lt;!--&amp;lt;![endif]--&amp;gt;&lt;/span&gt;
&lt;span class=&quot;nt&quot;&gt;&amp;lt;head&amp;gt;&lt;/span&gt;
  &lt;span class=&quot;nt&quot;&gt;&amp;lt;meta&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;charset=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&amp;quot;utf-8&amp;quot;&lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;&amp;gt;&lt;/span&gt;
  &lt;span class=&quot;nt&quot;&gt;&amp;lt;title&amp;gt;&lt;/span&gt;Example Site&lt;span class=&quot;nt&quot;&gt;&amp;lt;/title&amp;gt;&lt;/span&gt;
  &lt;span class=&quot;nt&quot;&gt;&amp;lt;meta&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;name=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&amp;quot;viewport&amp;quot;&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;content=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&amp;quot;width=device-width, initial-scale=1.0&amp;quot;&lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;&amp;gt;&lt;/span&gt;

  &lt;span class=&quot;nt&quot;&gt;&amp;lt;script &lt;/span&gt;&lt;span class=&quot;na&quot;&gt;src=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&amp;quot;/assets/js/vendor/modernizr-2.6.2.min.js&amp;quot;&lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;&amp;gt;&amp;lt;/script&amp;gt;&lt;/span&gt;

  &lt;span class=&quot;nt&quot;&gt;&amp;lt;script &lt;/span&gt;&lt;span class=&quot;na&quot;&gt;src=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&amp;quot;//ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js&amp;quot;&lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;&amp;gt;&amp;lt;/script&amp;gt;&lt;/span&gt;
  &lt;span class=&quot;nt&quot;&gt;&amp;lt;script&amp;gt;&lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;window&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;jQuery&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;||&lt;/span&gt; &lt;span class=&quot;nb&quot;&gt;document&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;write&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&amp;#39;&amp;lt;script src=&amp;quot;/assets/js/vendor/jquery-1.8.2.min.js&amp;quot;&amp;gt;&amp;lt;\/script&amp;gt;&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;&amp;lt;/script&amp;gt;&lt;/span&gt;

  &lt;span class=&quot;nt&quot;&gt;&amp;lt;link&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;rel=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&amp;quot;stylesheet&amp;quot;&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;href=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&amp;quot;/assets/css/bootstrap.css&amp;quot;&lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;&amp;gt;&lt;/span&gt;
  &lt;span class=&quot;nt&quot;&gt;&amp;lt;link&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;rel=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&amp;quot;stylesheet&amp;quot;&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;href=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&amp;quot;/assets/css/bootstrap-responsive.css&amp;quot;&lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;&amp;gt;&lt;/span&gt;
  &lt;span class=&quot;nt&quot;&gt;&amp;lt;link&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;rel=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&amp;quot;stylesheet&amp;quot;&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;href=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&amp;quot;/assets/css/app.css&amp;quot;&lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;&amp;gt;&lt;/span&gt;
  &lt;span class=&quot;nt&quot;&gt;&amp;lt;script &lt;/span&gt;&lt;span class=&quot;na&quot;&gt;type=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&amp;#39;text/javascript&amp;#39;&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;src=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&amp;#39;/assets/js/plugins.js&amp;#39;&lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;&amp;gt;&amp;lt;/script&amp;gt;&lt;/span&gt;
  &lt;span class=&quot;nt&quot;&gt;&amp;lt;script &lt;/span&gt;&lt;span class=&quot;na&quot;&gt;type=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&amp;#39;text/javascript&amp;#39;&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;src=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&amp;#39;/assets/js/main.js&amp;#39;&lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;&amp;gt;&amp;lt;/script&amp;gt;&lt;/span&gt;
  &lt;span class=&quot;nt&quot;&gt;&amp;lt;link&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;rel=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&amp;quot;canonical&amp;quot;&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;href=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&amp;quot;http://example.com/&amp;quot;&lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;&amp;gt;&lt;/span&gt;

  &lt;span class=&quot;nt&quot;&gt;&amp;lt;link&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;rel=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&amp;quot;alternate&amp;quot;&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;type=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&amp;quot;application/rss+xml&amp;quot;&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;title=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&amp;quot;Example Site Feed&amp;quot;&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;href=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&amp;quot;http://example.com/feed/&amp;quot;&lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;nt&quot;&gt;&amp;lt;/head&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;Here’s what we do to clean up &lt;code&gt;wp_head&lt;/code&gt;:&lt;/p&gt;

&lt;h3&gt;Remove Unnecessary Functions&lt;/h3&gt;

&lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;php&quot;&gt;&lt;span class=&quot;cp&quot;&gt;&amp;lt;?php&lt;/span&gt;
&lt;span class=&quot;k&quot;&gt;function&lt;/span&gt; &lt;span class=&quot;nf&quot;&gt;roots_head_cleanup&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;()&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;
  &lt;span class=&quot;nx&quot;&gt;remove_action&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&amp;#39;wp_head&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;s1&quot;&gt;&amp;#39;feed_links&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt;
  &lt;span class=&quot;nx&quot;&gt;remove_action&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&amp;#39;wp_head&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;s1&quot;&gt;&amp;#39;feed_links_extra&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt;
  &lt;span class=&quot;nx&quot;&gt;remove_action&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&amp;#39;wp_head&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;s1&quot;&gt;&amp;#39;rsd_link&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt;
  &lt;span class=&quot;nx&quot;&gt;remove_action&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&amp;#39;wp_head&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;s1&quot;&gt;&amp;#39;wlwmanifest_link&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt;
  &lt;span class=&quot;nx&quot;&gt;remove_action&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&amp;#39;wp_head&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;s1&quot;&gt;&amp;#39;adjacent_posts_rel_link_wp_head&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;10&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt;
  &lt;span class=&quot;nx&quot;&gt;remove_action&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&amp;#39;wp_head&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;s1&quot;&gt;&amp;#39;wp_generator&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt;
  &lt;span class=&quot;nx&quot;&gt;remove_action&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&amp;#39;wp_head&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;s1&quot;&gt;&amp;#39;wp_shortlink_wp_head&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;10&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt;

  &lt;span class=&quot;k&quot;&gt;global&lt;/span&gt; &lt;span class=&quot;nv&quot;&gt;$wp_widget_factory&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;nx&quot;&gt;remove_action&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&amp;#39;wp_head&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;array&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;$wp_widget_factory&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span class=&quot;na&quot;&gt;widgets&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&amp;#39;WP_Widget_Recent_Comments&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;],&lt;/span&gt; &lt;span class=&quot;s1&quot;&gt;&amp;#39;recent_comments_style&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;));&lt;/span&gt;

  &lt;span class=&quot;nx&quot;&gt;add_filter&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&amp;#39;use_default_gallery_style&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;s1&quot;&gt;&amp;#39;__return_null&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt;
&lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;
&lt;span class=&quot;nx&quot;&gt;add_action&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&amp;#39;init&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;s1&quot;&gt;&amp;#39;roots_head_cleanup&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt;
&lt;span class=&quot;cp&quot;&gt;?&amp;gt;&lt;/span&gt;&lt;span class=&quot;x&quot;&gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;


&lt;h2&gt;Hide /wp-content/&lt;/h2&gt;

&lt;p&gt;Hiding the &lt;code&gt;wp-content&lt;/code&gt; directory makes your source code look more elegant. You can setup rewrites
for your static theme assets and plugins directory and change the default location of WordPress uploads.&lt;/p&gt;

&lt;h3&gt;Rewrites&lt;/h3&gt;

&lt;p&gt;Want to rewrite your static theme assets and the plugins directory? Refer to the latest
&lt;a href=&quot;https://github.com/retlehs/roots/blob/master/lib/rewrites.php&quot;&gt;Roots rewrites.php&lt;/a&gt; file for
implementation.&lt;/p&gt;

&lt;h3&gt;WordPress Uploads&lt;/h3&gt;

&lt;p&gt;Default WordPress settings will have all of your uploads going into &lt;code&gt;/wp-content/uploads/&lt;/code&gt;
and also organized by date which can be changed in the admin under &lt;strong&gt;Settings &gt; Media&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;In Roots we’re using a directory in the root of your WordPress install called &lt;code&gt;/assets/&lt;/code&gt;
without the date organization by default.&lt;/p&gt;

&lt;h2&gt;Navigation Menus&lt;/h2&gt;

&lt;p&gt;Want to clean up the output of the default WordPress navigation menu? Refer to the latest
&lt;a href=&quot;https://github.com/retlehs/roots/blob/master/lib/nav.php&quot;&gt;Roots nav.php&lt;/a&gt; file for the cleaner
nav walker.&lt;/p&gt;

&lt;h2&gt;Root Relative URLs&lt;/h2&gt;

&lt;p&gt;Refer to the latest &lt;a href=&quot;https://github.com/retlehs/roots/blob/master/lib/cleanup.php&quot;&gt;Roots cleanup.php&lt;/a&gt;
file for root relative URLs functionality.&lt;/p&gt;

&lt;h3&gt;&lt;i class=&quot;icon-heart&quot;&gt;&lt;/i&gt;&lt;/h3&gt;

&lt;p&gt;Huge thanks to &lt;a href=&quot;http://terrordome.ca/&quot;&gt;Scott Walkinshaw&lt;/a&gt; for contributing many of the code
examples above and to all of the other &lt;a href=&quot;https://github.com/retlehs/roots/contributors&quot;&gt;Roots contributors&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a class=&quot;btn btn-primary&quot; href=&quot;https://github.com/retlehs/roots&quot;&gt;Follow Roots development on GitHub&lt;/a&gt;&lt;/p&gt;
</description>
        <pubDate>Mon, 07 Nov 2011 00:00:00 -0600</pubDate>
        <link>http://benword.com/how-to-hide-that-youre-using-wordpress/</link>
        <guid isPermaLink="true">http://benword.com/how-to-hide-that-youre-using-wordpress/</guid>
      </item>
    
      <item>
        <title>Introducing Roots, a WordPress Starter Theme</title>
        <description>&lt;p&gt;Roots is a &lt;a href=&quot;http://www.rootstheme.com/&quot;&gt;WordPress starter theme&lt;/a&gt; based on &lt;a href=&quot;http://html5boilerplate.com/&quot;&gt;HTML5 Boilerplate&lt;/a&gt;
and &lt;a href=&quot;http://getbootstrap.com/&quot;&gt;Bootstrap&lt;/a&gt; with some very unique features. Roots is delete-key
friendly just like HTML5 Boilerplate, simply remove anything you don’t need. Roots will allow you
to rapidly create websites and blogs.&lt;/p&gt;

&lt;p&gt;Visit the &lt;a href=&quot;http://www.rootstheme.com/&quot;&gt;Roots Theme&lt;/a&gt; site to learn more or head over to
&lt;a href=&quot;https://github.com/retlehs/roots&quot;&gt;Roots on GitHub&lt;/a&gt; for an immediate download.&lt;/p&gt;
</description>
        <pubDate>Mon, 28 Mar 2011 00:00:00 -0500</pubDate>
        <link>http://benword.com/introducing-roots/</link>
        <guid isPermaLink="true">http://benword.com/introducing-roots/</guid>
      </item>
    
  </channel>
</rss>
