Shortcuts:
- Regular meetings
- Essential Resources
- Roadmap
- Issue tags & Documentation
- Code sprints
- Principles: Waypoints to guide us
- Tell your friends
Regular meetings
We are organizing our effort via several channels:
- Weekly Google hangout: Thursdays at 11:30AM PT (2:30PM ET, 20:30 CET). We'll post an agenda and talk about progress and next steps.
- Chat:#drupal-twig on Freenode. Come join the discussion to ask questions. We hold regular office hours here on Thursdays before and after the call.
Essential Resources
Here are some essential resources for helping us with the move to Twig:
- Core template conversion issues
- Core theme function conversion issues
- Core markup cleanup issues
- Current Twig TODO list
- New to Twig? For a brief introduction to Drupal and Twig, please read this blog post by Anthony Ringoet.
Roadmap
Current plan for cleaning up the theme system.
- Update core to use two different theme engines, & fallback to PHPTemplate:
- Add simple example of Twig to core:
- Convert PHPtemplate files to Twig & use Twig as the default:
Must-have's for Drupal 8
- Variables in templates must be drillable NO MATTER WHAT
- Solve template suggestion problems
- Remove the process layer (also performance enhancement)
- Translation (and format_plural)
- #1927584: Handle trans block as Twig extensionAssigned to: geoffreyr
- A secure theme system
Nice-to-have for Drupal 8
- Consolidate template files (also performance enhancement)
- Convert theme functions to Twig & benchmark:
- Rewrite the theme registry as a service
- Add a theme component library:
- Refactor the Render API
Allowed after code freeze (Jul 1)
- #type = 'table' acts weird - bugfix
- @todo - create an issue
- Replace Drupal's crappy markup with our Dream Markup(tm)
- #type = 'table' acts weird - bugfix
Issue tags & Documentation
See the following tags for core issues related to Twig and revising Drupal's theme system.
- Queue Search: Twig
- Queue Search: Twig engine
- Queue Search: dreammarkup
- Queue Search: Theme system cleanup
- Queue Search: Theme system consistency
- Twig documentation on drupal.org
- Twig documentation on Sensio labs
- DrupalTwig folder in Google Docs
- Google Doc: Conversion instructions
- Drupal Twig (Sandbox -> Core) Conversion Instructions
- Google Doc: Conversion worksheet
- Google Doc: Consolidation opportunities
- A 10 minute overview of working with this sandbox
- [meta] New theme system
Code sprints
Date | Sprint | ||
---|---|---|---|
Current and upcoming sprints | |||
June 2nd, 2013 | CodeSprint UA 2013 | ||
July 12-15, 2013 | NYC Camp | ||
July 18-20, 2013 | Twin Cities Drupal Camp | ||
Past sprints | Docs | ||
Nov 24-25, 2012 | DrupalCamp North West | Summary | |
Nov 16-17, 2012 | Drupal 8 Code Sprint in Vancouver | ||
Nov 1-4, 2012 | BADCamp | Summary | |
Oct 26-28, 2012 | DrupalHagen | ||
Sept 29, 2012 | DrupalCamp London | ||
Sept 8-9, 2012 | Drupal Night, Ukraine | ||
Aug 20-24, 2012 | DrupalCon Munich | Summary | Resources |
July 21-22, 2012 | NYC Camp | Summary | |
May 20, 2012 | Twin Cities Drupal Camp | Summary | Resources |
April 20-22, 2012 | Chapter Three | Summary | Resources |
Feb 9th, 2013 | DrupalCon Sydney | ||
Jan 26th, 2013 | SandCamp | ||
March 9th & 10th, 2013 | Drupal Sprint Weekend | ||
Mar 22nd, 2013 | Twig Sprint (online) | ||
Apr 19th, 2013 | Twig Sprint (online) | ||
Apr 20th, 2013 | Twig Sprint (Charlotte, NC) | ||
May 3rd, 2013 | Twig Sprint (Stanford University, & online) | ||
May 24th, 2013 | DrupalCon Portland |
Principles: Waypoints to guide us
At the BADCamp 2012 theme sprint, we outlined some core principles to guide our work for the D8 theme layer.
- Start with nothing
- Core default markup should strive for semantic simplicity, with few HTML elements, added only as needed
- Build from use cases
- Don't assume you know what people want or add features based on "What-if?" Think about the 90% of use cases.
- Provide tools
- Give front-end experts a way to achieve specific goals; goals that apply to the remaining 10% of use cases. Keep in mind that complex problems may require complex solutions.
- Consolidate
- "Your markup is not special." Don't make something new. Work toward common theme functions that modules leverage (i.e. a Theme Component Library).
- Visibility
- You should be able to see what's going on in a template without reading docs. Twig provides a lot of this by virtue of its syntax (it looks like HTML). Form follows function.
- Consistency
- Do the same things everywhere, follow patterns. Use similar variable names across templates if they represent similar things.
- Don't dumb it down
- Complexity should be reduced but not obscured. Themers *can* understand template logic and loops. When complexity does happen, use comments to explain why.
- Organization should be driven by meaning and semantics over technical convenience
- Consider what an element means rather than how it structurally appears. For example: theme_item_list() came about from a developer's perspective: OL and UL markup is nearly structurally the same, so providing a single function with the type argument came about from a code efficiency standpoint. However, from a semantic HTML perspective, we do not use a singular 'list' element with an attribute to indicate whether it is ordered or unordered, we have two different elements. Semantically, OL and UL represent different information. Therefore, we should provide a separate templates for OL and UL, even though they contain nearly identical markup.
- Related to this principle (and the principle of Visibility), names and locations of templates should be self-evident. Consider where a newcomer might expect to override markup. Example: Someone looking to override a menu isn't going to look for a item_list template, even if a menu is structurally identical. So we should not simply have a menu use an item list, nor should we simply include an item list from a menu template. Themers want to see markup in templates, not abstraction.
Tell your friends
Send people to this page using this link: http://lb.cm/twig
Shortcuts: