Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

How to use shorthand syntax outside of patternlab itself? #54

Open
andriokha opened this issue Apr 12, 2019 · 3 comments
Open

How to use shorthand syntax outside of patternlab itself? #54

andriokha opened this issue Apr 12, 2019 · 3 comments

Comments

@andriokha
Copy link

Hi,

Thanks for all the work that's gone into this project!

I was hoping to use the shorthand include syntax outside of Pattern Lab (in Drupal as it happens). I found the same request from 2016 in pattern-lab/edition-php-twig-standard#18. In that issue there's a workaround suggested and the issue was closed.

I was just wondering if there was any interest in trying to go further and make the pattern partial loader itself available to consumers such as Drupal? I've done a simple PoC that seems to work for me:

  1. pattern-lab-php-path-src-exporter: A PL listener that dumps the pattern paths data (ie the second argument to \PatternLab\PatternEngine\Twig\Loaders\Twig\PatternPartialLoader::__construct()) to a file.
  2. patternlabloader: A Drupal module that extends PatternPartialLoader to read the location of the pattern paths data file from the theme info file, and use it to construct the loader.

I'm quite new to Pattern Lab, maybe there's a better way to do this? At the moment a pain point is obviously that to get the partial loader and utility class you need patternengine-twig which needs core + deps, and really this is all for two classes: \PatternLab\PatternEngine\Twig\Loaders\Twig\PatternPartialLoader and \PatternLab\PatternEngine\Util.

Would there be any chance we could grab the pattern partial loader without the rest of pattern lab? Any advice/suggestions?

Thanks for your time and consideration!

@andriokha
Copy link
Author

Connected issue on drupal.org: Support same including patterns like Pattern Lab

@sghoweri
Copy link

@andriokha out of curiosity, have you looked into using Twig namespaces to basically get the same outcome (shorter Twig template paths + a little less brittle integrations if folder names change), but using a standard that Pattern Lab and Drupal (and any other system that speaks Twig for that matter) can understand?

Ex. {% include “@bolt-components-button/button.twig” %}

There’s been a ton of progress already made on this integration approach in the Pattern Lab / Drupal community (plugins, examples, modules, etc) if this fits the bill!

@andriokha
Copy link
Author

hey @sghoweri, thanks so much for your suggestion. When you put it like that, I start to see why maybe people haven't been working on getting this done (:

I was particularly hoping to be in a situation where unhiding a pattern wouldn't cause code churn (ie having to update the filename everwhere it's included). IIUC using a Twig namespace wouldn't help me there? Also there's a chance we'll be moving away from PHP and/or Twig in the future but stick with PL so I thought it might be neat to have something compatible between them. I guess it's a bit of a niche need (:

Thanks again for your time!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants