Upgrade Your Drupal Skills

We trained 1,000+ Drupal Developers over the last decade.

See Advanced Courses NAH, I know Enough

Pattern Lab and Drupal 8 theme integration update

Parent Feed: 

A lot has happened since my first Pattern Lab post in January. The eve of DrupalCon New Orleans 2016 seemed to me like a good time for a summary.

Drupal Edition of Pattern Lab, Drupal StarterKits

No more dubious forks! Most of my pull requests were merged into the official repository by Dave Olsen, the lead developer of Pattern Lab.

Evan Lovely, Christopher Bloom and Anne Sturdivant from Phase2 got in touch, and Dave gave us the honour of being the first members of a new Pattern Lab Drupal team.

New official Pattern Lab projects were created: the Drupal Edition of Pattern Lab, a Minimal Drupal StarterKit and a Demo Drupal StarterKit.

If you have Composer installed all you need to do to try out the Drupal edition is run

composer create-project pattern-lab/edition-drupal-standard

Pattern Lab chat rooms opened

To help coordinate all this activity, chat rooms were opened on Gitter. There is a general chat room and separate chat rooms for the PHP and Node versions of Pattern Lab. Drupal stuff is mostly discussed in the PHP room. Everyone is welcome to follow and join in the discussion!

Support for Twig namespaces

Twig PatternEngine now supports Twig namespaces for the top-level pattern folders. Includes like @atoms/pattern/path.twig are now possible, and they will work on Drupal too when using the Component Libraries module, for example.

Plugin access to Twig_Environment

This is a big one! Twig PatternEngine now fires events when Twig loaders are initialized and plugins have access to the respective Twig_Environment. This makes it possible for plugins to register Twig extensions.

New version of Data Transform Plugin

As a consequence of Twig_Environment being accessible to plugins, PatternDataVisitor was moved to Data Transform Plugin. Specific handling of Drupal's Attribute class could then be added for a new release of Data Transform Plugin. Workarounds for including templates that manipulate Attribute objects are no longer needed!

The question of Drupal's Twig extensions

It soon came apparent that duplicating the decoupled 'dummy versions' of Drupal's Twig extensions in different StarterKits was not practical or desirable. A Drupal Twig Components Plugin was created to avoid duplication and make updates simpler.

However, the extensions contained in the plugin are still written in the Pattern Lab specific auto-load style. Now that it is possible, creating a standard Twig_ExtensionInterface based extension seems to be the logical next step.

In April a major component-based rendering issue was opened on drupal.org by Wim Leers. Based on the enthusiastic response it is likely that the future of Drupal will include decoupled Twig.js compatible components. A strategy for Drupal's Twig functions, and particularly Attribute, is needed.

To me this looks like an opportunity to create an official stand-alone version of Drupal's Twig extensions. I opened an issue about it and am looking forward to helping make something like that happen.

DrupalCon New Orleans

The buzz around atomic/modular/pattern/component based design seems to keep on growing. The schedule for DrupalCon New Orleans includes at least three sessions and one BoF on Pattern Lab or related topics:

Author: 
Original Post: 

About Drupal Sun

Drupal Sun is an Evolving Web project. It allows you to:

  • Do full-text search on all the articles in Drupal Planet (thanks to Apache Solr)
  • Facet based on tags, author, or feed
  • Flip through articles quickly (with j/k or arrow keys) to find what you're interested in
  • View the entire article text inline, or in the context of the site where it was created

See the blog post at Evolving Web

Evolving Web