# <%= _.capitalize(themeName) %>

##About

This theme uses Zurb's Foundation framework for scaffolding CSS and HTML. A grunt-backed workflow allows for easy
management of static assets and provides an easy to follow path for delivering a theme with optimized CSS and JS,
suitable for a production environment.

##Dependencies

Before beginning ensure that you have all required system dependencies, including:

* Sass:    `gem install sass`
* Compass: `gem install compass`
* Grunt:   `npm install -g grunt-cli`

##Run

From the root of this directory:

1. `npm install`
2. `bower install`
3. `grunt`

##Developing

During development you can run `grunt watch` which whill automatically reload changes to CSS, JS and Twig templates.
You must be viewing the front-end using the `app-dev.php/` base for live reloading to work properly.

For speedy static template development use the `grunt serve` to spin up a lightweight, node based web server that will
serve static documents in `public/dev`.

##Building

To prepare your theme for a production environment, run `grunt build`. This task will combine and optimize all CSS and
JS and place these assets in the `public/dist` directory. When accessing the front-end of the site without the
`app_dev.php/` base static JS and CSS are served from this directory. Thus, you MUST verify the site in "production mode"
before pushing changes as client instances ALWAYS run in production mode.

<!--##Theme Documentation
---

Learn to build, extend and innovate themes for the Igniter Platform.
* [Getting Started - Theme structure, configuration, and publishing] (#getting_started)
* [Tutorials - Guides to various theme implementations] (#tutorials)
* [Reference - Glossary, components, and twig extensions] (#reference")

[#getting_started]
###Getting Started

The Igniter platform leverages the <a href="http://twig.sensiolabs.org/">Twig template engine</a> (v1.8.2). If you aren't familiar with it, the <a href="http://twig.sensiolabs.org/doc/templates.html">Twig for Template Designers</a> guide is a great place to start.

When creating a new theme, it is recommended you start with the boilerplate and give it a new name (make sure there are no spaces in the directory’s name).

####Theme Structure
Inside the theme folder, there is a public folder that contains static assets, and within SIStoreBundle/, a sub-folder for each resource that contains the templates for rendering various views. The default theme is the best example of the required structure:
        <dl>
          <dt>/</dt>
          <dd>The theme root (Igniter/)</dd>
          <dt>/public/</dt>
          <dd>All static assets (i.e., CSS, JS, images) are located in this folder.</dd>
          <dt>/SIStoreBundle/*/</dt>
          <dd>All Twig templates are located in this folder.</dd>
          <dt>/SIStoreBundle/index.html.twig </dt>
          <dd>The main template that most templates will extend. This file is required.</dd>
          <dt>/SIStoreBundle/theme.yml </dt>
          <dd>The theme <a href="#configuration">configuration</a> file. This file is required.</dd>
        </dl>

        <h2 id="configuration">Configuration</h2>
        The following parameters are defined in the theme.yml (uses the <a href="http://symfony.com/doc/2.0/components/yaml/yaml_format.html">YAML format</a>):

        <table>
          <tbody>
          <tr>
            <th>Parameter</th><th>Value</th>
          </tr>
          <tr>
            <td>theme_name</td><td>A friendly label for the theme (e.g., Funky Bunch)</td>
          </tr>
          <tr>
            <td>theme_slug</td><td>The folder name of the theme (e.g., funkybunch)</td>
          </tr>
          <tr>
            <td>theme_tags</td><td>List of tags for theme</td>
          </tr>
          <tr>
            <td>pagesets</td><td>List of <a href="#configuration_pagesets">pageset definitions</a></td>
          </tr>
          </tbody>
        </table>

        <h4>Example:</h4>
        <pre><code>
# theme.yml
theme_name: Funky Bunch
theme_slug: funkybunch
theme_tags:
    - Brand Awareness
    - Lead Generation
pagesets:
    ...
        </code></pre>

        <h3 id="configuration_pagesets">Configuration: Page Set</h3>
        Configuration for a Page Set.

        <table>
          <tbody>
          <tr>
            <th>Parameter</th><th>Value</th>
          </tr>
          <tr>
            <td>name</td><td>A friendly label for the page set (e.g., Single Product Post)</td>
          </tr>
          <tr>
            <td>slug</td><td>A slug for the page set (e.g., single-product-post-template)</td>
          </tr>
          <tr>
            <td>pages</td><td>List of <a href="#configuration_page">page definitions</a></td>
          </tr>
          </tbody>
        </table>

        <h4>Example:</h4>
        <pre><code>
# theme.yml
...
    - name: Single Product Post
      slug: single-product-post
      pages:
        ...

    - name: Multiple Product Post
      slug: multiple-product-post
      pages:
        ...

    - name: Video Player Post
      slug: video-player-post
        pages:
        ...
        </code></pre>

        <h3 id="configuration_page">Configuration: Page</h3>
        Configuration for rendering a Page.

        <table>
          <tbody>
          <tr>
            <th>Parameter</th><th>Value</th>
          </tr>
          <tr>
            <td>name</td><td>A friendly label for the page template (e.g., Single Product Post)</td>
          </tr>
          <tr>
            <td>slug</td><td>A slug for the page (e.g., single-product-post). It must match the corresponding template filename.</td>
          </tr>
          <tr>
            <td>type</td><td>Type of template (e.g., landing page)</td>
          </tr>
          <tr>
            <td>metadata</td><td>List of metadata parameters used by page template. Allowed values: og_title, og_description, og_image.</td>
          </tr>
          <tr>
            <td>components</td><td>List of page <a href="#configuration_component">components</a> used by page template.</td>
          </tr>
          </tbody>
        </table>

        <h4>Example:</h4>
        <pre><code>
# theme.yml
    ...
        - name: Single Product Post Page
          slug: single-product-post
          type: landing page
          metadata:
            - og_title
            - og_description
            - og_image
          components:
            ...
        </code></pre>

        <h3 id="configuration_component">Configuration: Component</h3>
        Configuration for a Component.
        There are 9 types of components that a page can define:
        <ul>
          <li><a href="#reference_components_content">contents</a></li>
          <li><a href="#reference_components_formfield">formfields</a></li>
          <li><a href="#reference_components_hashtag">hashtags</a></li>
          <li><a href="#reference_components_image">images</a></li>
          <li><a href="#reference_components_label">labels</a></li>
          <li><a href="#reference_components_link">links</a></li>
          <li><a href="#reference_components_share">shares</a></li>
          <li><a href="#reference_components_product">products</a></li>
          <li><a href="#reference_components_video">videos</a></li>
        </ul>

        All components require a <em>name</em> and a <em>slug</em>.
        <table>
          <tbody>
          <tr>
            <th>Parameter</th><th>Value</th>
          </tr>
          <tr>
            <td>name</td><td>A friendly label for the component (e.g., First Image)</td>
          </tr>
          <tr>
            <td>slug</td><td>A slug for the component (e.g., first_image).</td>
          </tr>
          </tbody>
        </table>

        You can set a component’s name and slug to whatever you’d like. Just keep in mind that once component data is set in the admin, its bound to the slug and you should not change it.

        <h4>Example:</h4>
        <pre><code>
# theme.yml
...
  components:
    products:
      - name: Featured Product
        slug: featured_product
    images:
      - name: First Image
        slug: first_image
      - name: Second Image
        slug: second_image
      - name: Third Image
        slug: third_image
    videos:
      - name: Featured Video
        slug: video
    labels:
      - name: Product Show Label
        slug: product_show_label
    links:
      - name: Bottom Left Link
        slug: first_link
      - name: Bottom Right Link
        slug: second_link
      - name: Buy Button Link
        slug: buy_link
      - name: Out Link
        slug: out_link
</code></pre>


        <h3>Page Templates</h3>
        The Igniter theme comes with 6 pre-built templates (located in igniter/SIStoreBundle/Page):
        <ul>
          <li>single-product-post.html.twig</li>
          <li>multiple-product-post.html.twig</li>
          <li>lead-generation-post.html.twig</li>
          <li>social-proof-post.html.twig</li>
          <li>social-share-post.html.twig</li>
          <li>video-player-post.html.twig</li>
        </ul>

        <h2 id="publishing_your_theme">Publishing Your Theme</h2>
        The platform loads themes from a special implementation GIT repository containing all the themes for a client.
        <h3>Outside Vendor Publishing</h3>
        A URL to the GIT repo containing themes should be provided to <a href="mailto:it@shopigniter.com">it@shopigniter.com</a>. Themes should be subdirectories within the root directory.
        <h3>Internal Publishing</h3>
        If you have write-access to the special repo mentioned above, simply push your theme to the site's themes directory.
      </section>


      <section id="tutorials">
        <h1>Tutorials</h1>
        <ul>
          <li><a href="#tutorials_twitter_player_card">Tutorial: Twitter Player Card Support</a></li>
        </ul>
      </section>

      <section id="tutorials_twitter_player_card">
        <h1>Tutorial: Twitter Player Card Support</h1>
        Add Twitter Player Card support to the Single Product Post template.

        Assumes basic understanding of:
        <ul>
          <li>HTML and CSS</li>
          <li><a href="#configuration_component">Igniter Template Components</a></li>
          <li><a href="http://twig.sensiolabs.org/documentation">Twig Template Engine</a></li>
          <li><a href="https://dev.twitter.com/docs/cards/types/player-card">Twitter Player Card</a></li>
        </ul>

        <h2>Step 1</h2>
        Copy the Igniter theme folder and give it a new name. Modify the first two lines of your new theme's <a href="#configuration">theme.yml</a> file (found in the SIStoreBundle/ folder) to match the name of your new theme.

        <h2>Step 2</h2>
        By default, the Igniter page templates include several OG (OpenGraph) properties that will be <a href="https://dev.twitter.com/docs/cards/markup-reference">picked up by Twitter</a>:
        <ul>
          <li>og:title</li>
          <li>og:description</li>
          <li>og:image</li>
        </ul>
        The remaining properties required by the Player Card will need to be added to the template:
        <ul>
          <li>twitter:card</li>
          <li>twitter:player</li>
          <li>twitter:player:width</li>
          <li>twitter:player:height</li>
        </ul>

        Copy the <a href="https://github.com/ShopIgniter/theme-docs/blob/master/igniter/SIStoreBundle/Page/single-product-post.html.twig">single-product-post.html.twig</a> template found in SIStoreBundle/Page/ and give it the name <strong>twitter-product-post.html.twig</strong>. Open the new template for editing, and add these properties to the end of the template's meta block.

        <pre><code>
{% extends 'SIStoreBundle::index.html.twig' %}

...

{% block meta %}
{{ parent() }}

&lt;meta property=&quot;og:title&quot; content=&quot;{{ page.og_title }}&quot; /&gt;
&lt;meta property=&quot;og:url&quot; content=&quot;{{ og_url|replace({'http': 'https'}) }}&quot; /&gt;
...
{# Twitter Card Properties #}
&lt;meta property=&quot;twitter:card&quot; content=&quot;player&quot; /&gt;
&lt;meta property=&quot;twitter:player&quot; content=&quot;{{ og_url|replace({'http': 'https'}) }}&quot; /&gt;
&lt;meta property=&quot;twitter:player:width&quot; content=&quot;435&quot; /&gt;
&lt;meta property=&quot;twitter:player:height&quot; content=&quot;500&quot; /&gt;
{% endblock %}
        </code></pre>

        Save and close the template.

        <h2>Step 3</h2>
        Open the theme.yml and copy the existing single product post pageset block, then update the name to <strong>Twitter Product Post</strong> and update the name and slugs.

        <pre><code>
...
pagesets:
    - name: Single Product Post
      slug: single-product-post
      pages:
        - name: Single Product Post Page
          slug: single-product-post
          type: landing page
          metadata:
            - og_title
            - og_description
            - og_image
          components:
            ...

    # New Twitter Player Card Page Set!!!
    - name: Twitter Product Post
      slug: twitter-product-post
      pages:
        - name: Twitter Product Post Page
          slug: twitter-product-post
          type: landing page
          metadata:
            - og_title
            - og_description
            - og_image
          components:
            ...
        </code></pre>

        <h2>Step 4</h2>
        Capture the player image by taking a screenshot of the post inside a web browser as close as possible to the player dimensions specified in the template (i.e., 435 x 500). This image will serve as the og_image when creating a post.

        <h2>Step 5</h2>
        <a href="#publishing_your_theme">Publish</a> your theme.

      </section>

      <section id="reference">
        <h1>Reference</h1>

        <h2 id="reference_glossary">Glossary</h2>
        A list of terms with explanations found in or relating to theme implementation on the Igniter platform.
        <dl>
          <dt>Theme</dt>
          <dd>The container of all assets and templates (see <a href="#theme_structure">theme structure</a>) that make up the theme.</dd>
          <dt>Page Set</dt>
          <dd>A page set is a container for pages.</dd>
          <dt>Page</dt>
          <dd>A page is a rendered template.</dd>
          <dt>Template Set</dt>
          <dd>A template set is a container for templates.</dd>
          <dt>Template</dt>
          <dd>A template uses page and page component data to render.</dd>
          <dt>Component</dt>
          <dd>A component can be <a href="#configuration_component">one of many</a> resources types that a template can use to render a page.</dd>
        </dl>

        <h2 id="reference_components">Page Components</h2>
        In theme.yml, a page defines components utilized by the template. Actual component data is set in the Admin on page creation.
        In the template, available components are mapped to the <strong>component</strong> variable by its slug (i.e., component.{slug}). For example, if you have product component with the slug of <strong>featured_product</strong>, access with: component.featured_product. </strong>


        <dl>
          <dt id="reference_components_product">Product Page Component</dt>
          <dd>
            For usage example, see the Igniter <a href="https://github.com/ShopIgniter/theme-docs/blob/master/igniter/SIStoreBundle/Page/multiple-product-post.product.html.twig">multiple product post template</a>.
            <table>
              <tbody>
              <tr>
                <th>Field</th>
                <th>Description</th>
              </tr>
              <tr>
                <td>id</td>
                <td>The id of the resource</td>
              </tr>
              <tr>
                <td>slug</td>
                <td>The slug of the Page Component</td>
              </tr>
              <tr>
                <td>collection_product_id</td>
                <td>ID of the associated collection product</td>
              </tr>
              <tr>
                <td>page_id</td>
                <td>ID of the associated page</td>
              </tr>
              <tr>
                <td>product</td>
                <td>The <a href="#reference_objects_product">Product</a> object.</td>
              </tr>
              <tr>
                <td>created</td>
                <td>The date/time of creation</td>
              </tr>
              <tr>
                <td>modified</td>
                <td>The date/time of last modification</td>
              </tr>
              </tbody>
            </table>

          </dd>
          <dt id="reference_components_image">Image Page Component</dt>
          <dd>
            <table>
              <tbody>

              <tr>
                <th>Field</th>
                <th>Description</th>
              </tr>
              <tr>
                <td>id</td>
                <td>The id of the resource</td>
              </tr>
              <tr>
                <td>slug</td>
                <td>The slug of the Page Component</td>
              </tr>
              <tr>
                <td>asset_id</td>
                <td>The id of the Image</td>
              </tr>
              <tr>
                <td>sort</td>
                <td>The sorting for Image</td>
              </tr>
              <tr>
                <td>page_id</td>
                <td>ID of the associated page</td>
              </tr>
              <tr>
                <td>asset</td>
                <td>The <a href="#reference_objects_asset">Asset</a> object.</td>
              </tr>
              <tr>
                <td>created</td>
                <td>The date/time of creation</td>
              </tr>
              <tr>
                <td>modified</td>
                <td>The date/time of last modification</td>
              </tr>
              </tbody>
            </table>
          </dd>

          <dt id="reference_components_video">Video Page Component</dt>
          <dd>
            <table>
              <tbody>

              <tr>
                <th>Field</th>
                <th>Description</th>
              </tr>
              <tr>
                <td>id</td>
                <td>The id of the resource</td>
              </tr>
              <tr>
                <td>slug</td>
                <td>The slug of the Page Component</td>
              </tr>
              <tr>
                <td>asset_id</td>
                <td>The id of the Video</td>
              </tr>
              <tr>
                <td>sort</td>
                <td>The sorting for Video</td>
              </tr>
              <tr>
                <td>page_id</td>
                <td>ID of the associated page</td>
              </tr>
              <tr>
                <td>asset</td>
                <td>The <a href="#reference_objects_asset">Asset</a> object.</td>
              </tr>
              <tr>
                <td>created</td>
                <td>The date/time of creation</td>
              </tr>
              <tr>
                <td>modified</td>
                <td>The date/time of last modification</td>
              </tr>
              </tbody>
            </table>
          </dd>

          <dt id="reference_components_label">Label Page Component</dt>
          <dd>
            <table>
              <tbody>
              <tr>
                <th>Field</th>
                <th>Description</th>
              </tr>
              <tr>
                <td>id</td>
                <td>The id of the resource</td>
              </tr>
              <tr>
                <td>slug</td>
                <td>The slug of the Page Component</td>
              </tr>
              <tr>
                <td>content_block_id</td>
                <td>ID of the associated content block</td>
              </tr>
              <tr>
                <td>page_id</td>
                <td>ID of the associated page</td>
              </tr>
              <tr>
                <td>content</td>
                <td>The <a href="#reference_objects_contentblock">Content Block</a> object.</td>
              </tr>
              <tr>
                <td>created</td>
                <td>The date/time of creation</td>
              </tr>
              <tr>
                <td>modified</td>
                <td>The date/time of last modification</td>
              </tr>
              </tbody>
            </table>
          </dd>

          <dt id="reference_components_content">Content Page Component</dt>
          <dd>
            <table>
              <tbody>
              <tr>
                <th>Field</th>
                <th>Description</th>
              </tr>
              <tr>
                <td>id</td>
                <td>The id of the resource</td>
              </tr>
              <tr>
                <td>slug</td>
                <td>The slug of the Page Component</td>
              </tr>
              <tr>
                <td>content_block_id</td>
                <td>ID of the associated content block</td>
              </tr>
              <tr>
                <td>page_id</td>
                <td>ID of the associated page</td>
              </tr>
              <tr>
                <td>content</td>
                <td>The <a href="#reference_objects_contentblock">Content Block</a> object.</td>
              </tr>
              <tr>
                <td>created</td>
                <td>The date/time of creation</td>
              </tr>
              <tr>
                <td>modified</td>
                <td>The date/time of last modification</td>
              </tr>
              </tbody>
            </table>
          </dd>

          <dt id="reference_components_link">Link Page Component</dt>
          <dd>
            <table>
              <tbody>

              <tr>
                <th>Field</th>
                <th>Description</th>
              </tr>
              <tr>
                <td>id</td>
                <td>The id of the resource</td>
              </tr>
              <tr>
                <td>slug</td>
                <td>The slug of the Page Component</td>
              </tr>
              <tr>
                <td>name</td>
                <td>Name of the Link</td>
              </tr>
              <tr>
                <td>url</td>
                <td>Destination of the Link</td>
              </tr>
              <tr>
                <td>page_id</td>
                <td>ID of the associated page</td>
              </tr>
              <tr>
                <td>created</td>
                <td>The date/time of creation</td>
              </tr>
              <tr>
                <td>modified</td>
                <td>The date/time of last modification</td>
              </tr>
              </tbody>
            </table>
          </dd>

          <dt id="reference_components_hashtag">Hashtag Page Component</dt>
          <dd>
            <table>
              <tbody>

              <tr>
                <th>Field</th>
                <th>Description</th>
              </tr>
              <tr>
                <td>id</td>
                <td>The id of the resource</td>
              </tr>
              <tr>
                <td>slug</td>
                <td>The slug of the Page Component</td>
              </tr>
              <tr>
                <td>hashtag</td>
                <td>String of hashtag</td>
              </tr>
              <tr>
                <td>page_id</td>
                <td>ID of the associated page</td>
              </tr>
              <tr>
                <td>created</td>
                <td>The date/time of creation</td>
              </tr>
              <tr>
                <td>modified</td>
                <td>The date/time of last modification</td>
              </tr>
              </tbody>
            </table>
          </dd>

          <dt id="reference_components_share">Share Page Component</dt>
          <dd>
            <table>
              <tbody>
              <tr>
                <th>Field</th>
                <th>Description</th>
              </tr>
              <tr>
                <td>id</td>
                <td>The id of the resource</td>
              </tr>
              <tr>
                <td>slug</td>
                <td>The slug of the Page Component</td>
              </tr>
              <tr>
                <td>hashtag</td>
                <td>String of hashtag</td>
              </tr>
              <tr>
                <td>share_facebook</td>
                <td>Switch for toggling share button</td>
              </tr>
              <tr>
                <td>share_twitter</td>
                <td>Switch for toggling share button</td>
              </tr>
              <tr>
                <td>share_google_plus</td>
                <td>Switch for toggling share button</td>
              </tr>
              <tr>
                <td>share_tumblr</td>
                <td>Switch for toggling share button</td>
              </tr>
              <tr>
                <td>share_linkedin</td>
                <td>Switch for toggling share button</td>
              </tr>
              <tr>
                <td>share_pinterest</td>
                <td>Switch for toggling share button</td>
              </tr>
              <tr>
                <td>page_id</td>
                <td>ID of the associated page</td>
              </tr>
              <tr>
                <td>created</td>
                <td>The date/time of creation</td>
              </tr>
              <tr>
                <td>modified</td>
                <td>The date/time of last modification</td>
              </tr>
              </tbody>
            </table>
          </dd>

          <dt id="reference_components_formfield">Formfield Page Component</dt>
          <dd>
            <table>
              <tbody>
              <tr>
                <th>Field</th>
                <th>Description</th>
              </tr>
              <tr>
                <td>id</td>
                <td>The id of the resource</td>
              </tr>
              <tr>
                <td>slug</td>
                <td>The slug of the Page Component</td>
              </tr>
              <tr>
                <td>content_block_id</td>
                <td>ID of the associated content block</td>
              </tr>
              <tr>
                <td>page_id</td>
                <td>ID of the associated page</td>
              </tr>
              <tr>
                <td>content</td>
                <td>The <a href="#reference_objects_contentblock">Content Block</a> object.</td>
              </tr>
              <tr>
                <td>created</td>
                <td>The date/time of creation</td>
              </tr>
              <tr>
                <td>modified</td>
                <td>The date/time of last modification</td>
              </tr>
              </tbody>
            </table>
          </dd>

        </dl>

        <h2 id="reference_objects">Template Objects</h2>
        <dl>
          <dt id="reference_objects_product">Product</dt>
          <dd>
            <table>
              <tbody>
              <tr>
                <th>Field</th>
                <th>Description</th>
              </tr>
              <tr>
                <td>id</td>
                <td>The id of the product</td>
              </tr>
              <tr>
                <td>name</td>
                <td>The display name for the Product</td>
              </tr>
              <tr>
                <td>slug</td>
                <td>Unique “slugged” copy of the name field</td>
              </tr>
              <tr>
                <td>link</td>
                <td>Custom URL for this product to link to.</td>
              </tr>
              <tr>
                <td>variant</td>
                <td>An array of product's <a href="#">variants</a>.</td>
              </tr>
              <tr>
                <td>property</td>
                <td>An array of product's <a href="#">properties</a>.</td>
              </tr>
              <tr>
                <td>description</td>
                <td>An array of product's <a href="#">descriptions</a>.</td>
              </tr>
              <tr>
                <td>image</td>
                <td>An array of product's <a href="#reference_objects_asset">images</a>.</td>
              </tr>
              <tr>
                <td>video</td>
                <td>An array of product's <a href="#reference_objects_asset">videos</a>.</td>
              </tr>
              <tr>
                <td>content</td>
                <td>An array of product's <a href="#reference_objects_contentblock">content blocks</a>.</td>
              </tr>
              <tr>
                <td>tag</td>
                <td>An array of product's <a href="#">tags</a>.</td>
              </tr>
              <tr>
                <td>created</td>
                <td>The date/time of creation</td>
              </tr>
              <tr>
                <td>modified</td>
                <td>The date/time of last modification</td>
              </tr>
              </tbody>
            </table>
          </dd>

        <dt id="reference_objects_asset">Asset</dt>
        An Asset can be an image or video.
        <dd>
          <table>
            <tbody>
            <tr>
              <th>Field</th>
              <th>Description</th>
            </tr>
            <tr>
              <td>id</td>
              <td>The id of the Asset</td>
            </tr>
            <tr>
              <td>name</td>
              <td>The display name for the Asset</td>
            </tr>
            <tr>
              <td>file_path</td>
              <td>File path to the actual asset file (without extension)</td>
            </tr>
            <tr>
              <td>file_extension</td>
              <td>Asset file extension</td>
            </tr>
            <tr>
              <td>url</td>
              <td>The url to the video (video only)</td>
            </tr>
            <tr>
              <td>created</td>
              <td>The date/time of creation</td>
            </tr>
            <tr>
              <td>modified</td>
              <td>The date/time of last modification</td>
            </tr>
            </tbody>
          </table>
        </dd>

        <dt id="reference_objects_contentblock">Content Block</dt>
        A Content Block can be content, form field, or label.
        <dd>
          <table>
            <tbody>
            <tr>
              <th>Field</th>
              <th>Description</th>
            </tr>
            <tr>
              <td>id</td>
              <td>The id of the Content Block</td>
            </tr>
            <tr>
              <td>name</td>
              <td>The display name for the Content Block</td>
            </tr>
            <tr>
              <td>slug</td>
              <td>Unique “slugged” copy of the name field</td>
            </tr>
            <tr>
              <td>content</td>
              <td>Text</td>
            </tr>
            <tr>
              <td>created</td>
              <td>The date/time of creation</td>
            </tr>
            <tr>
              <td>modified</td>
              <td>The date/time of last modification</td>
            </tr>
            </tbody>
          </table>
        </dd>

        <dt id="reference_objects_domains">domains</dt>
        <dd>
          <table>
            <tbody>
            <tr>
              <th>Field</th>
              <th>Description</th>
            </tr>
            <tr>
              <td>domains.request</td>
              <td>The domain of current request.</td>
            </tr>
            </tbody>
          </table>
        </dd>

        <dt id="reference_objects_facebook_settings">facebook_settings</dt>
        <dd>
          <table>
            <tbody>
            <tr>
              <th>Field</th>
              <th>Description</th>
            </tr>
            <tr>
              <td>facebook_app_id</td>
              <td>The facebook app id of requested domain.</td>
            </tr>
            <tr>
              <td>facebook_namespace</td>
              <td>The facebook namespace of requested domain.</td>
            </tr>
            <tr>
              <td>facebook_permissions</td>
              <td>The facebook permissions of requested domain.</td>
            </tr>
            </tbody>
          </table>
        </dd>

        <dt id="reference_objects_site_settings">site_settings</dt>
        <dd>
          <table>
            <tbody>
            <tr>
              <th>Field</th>
              <th>Description</th>
            </tr>
            <tr>
              <td>name</td>
              <td>The site's name.</td>
            </tr>
            <tr>
              <td>domains</td>
              <td>An array of domain settings.</td>
            </tr>
            </tbody>
          </table>
        </dd>

        </dl>

        <h2 id="reference_twig_extensions">Twig Extensions</h2>
        The Igniter platform extends Twig with the following:

        <h3>Array Helpers</h3>

        <dl>
          <dt>first</dt>
          <dd>The first filter returns the first item in an array or the value if not an array.</dd>
          <dt>last</dt>
          <dd>The last filter returns the last item in an array or the value if not an array.</dd>
          <dt>usort(key, asc, precision)</dt>
          <dd>The usort filter will sort the array normally or by the value of an item in the array.</dd>
          <dt>find(key, value)</dt>
          <dd>The find filter will return the first item in an array that contains the given key/value pair.</dd>
          <dt>where(key, value)</dt>
          <dd>The where filter will return an array of all items that contain the given key/value pair.</dd>
          <dt>values_for(key)</dt>
          <dd>The values_for filter will return an array with all values for the given key.</dd>
          <dt>sum(precision)</dt>
          <dd>The sum filter will return the sum of all items in array using bcadd().</dd>
          <dt>max(key, precision)</dt>
          <dd>The max filter will return the max value of all items in array.</dd>
          <dt>min(key, precision)</dt>
          <dd>The max filter will return the min value of all items in array.</dd>
        </dl>


        <h3>OpenGraph</h3>

        <dl>
          <dt>ensure_protocol</dt>
          <dd>Convert relative protocol to absolute since OG does not support relative protocols. If url is not relative protocol, do nothing.</dd>
          <dt>generate_og_url</dt>
          <dd>Create an OG url for a collection or a page</dd>
        </dl>

      </section>


      <footer>
        You can report bugs and discuss features on the <a href="https://github.com/ShopIgniter/theme-docs/issues">GitHub issues page</a>.
        <small>GitHub Pages Hosted &mdash; Theme derived from <a href="https://github.com/orderedlist/minimal">minimal</a></small>
      </footer>
    </div>
    <script src="javascripts/scale.fix.js"></script>
  </body>
</html>-->