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

[README] About [Implementations in other languages] section #2887

Closed
kylekatarnls opened this issue Oct 19, 2017 · 2 comments
Closed

[README] About [Implementations in other languages] section #2887

kylekatarnls opened this issue Oct 19, 2017 · 2 comments

Comments

@kylekatarnls
Copy link
Contributor

Hi,

I realize implementations in other languages are a bit of many things mixed in.

I identify different sections this should be split in:
Other language ports:
PHP: https://github.com/pug-php/pug and https://github.com/Talesoft/tale-pug that will now converge to the same rendering engine
Java: https://github.com/neuland/jade4j
Python: https://github.com/matannoam/pypugjs
C#: https://github.com/AspNetMonsters/pugzor

Those 5 aims to be compliant with pugjs specifications and support native PHP/Java/Python/C# objects (no serialization, so object methods can be called from the templates). And there are written in their target languages.

Other language equivalent:
Scala: https://scalate.github.io/scalate/documentation/scaml-reference.html
Ruby: http://haml.info/
Ruby: https://github.com/slim-template/slim

Those 3 have really different syntax. Scala is a bit closer but has different operators and include/extend different system.

Framework implementations/adapter:
I know the PHP ones:
Phalcon: https://github.com/pug-php/pug-phalcon
Symfony: https://github.com/pug-php/pug-symfony
Laravel: https://github.com/BKWLD/laravel-pug
CodeIgniter: https://github.com/pug-php/ci-pug-engine
Yii 2: https://github.com/rmrevin/yii2-pug
Slim 3: https://github.com/MarcelloDuarte/pug-slim
I guess there exist somes in other languages I don't know and I see you mentioned https://github.com/acidjazz/larpug
But this one is a bit different from https://github.com/BKWLD/laravel-pug since it use the node pugjs native package. So object are serialized to flat object. That force user to format all data deeply before sending it to the view. If I well understand it also need the 4242 port to be free to work. So I guess some users might prefer laravel-pug approach.

I also think larpug should not appear alone on the top of other languages implementation, it's more like an pugjs-to-laravel adapter for me. And if we talk about framework adapters, we should provide some guidance to the user to help him picking the package he needs, explain the different approaches and give him a larger view of existing solutions.

So the if you think it's relevant, here is what I propose to do (I can do the pull-request):

  • Split this section in at least 3 sub-sections, add description for each ;
  • add a quick summary for each project (maybe just some tags: port/adapter/equivalent that would refer to some explanation of what means each type of package), this info could be organized in a table ;
  • look for other implementations to try to get a more exhaustive list.

What do you think of it?

@ForbesLindesay
Copy link
Member

Sounds good to me.

kylekatarnls added a commit to kylekatarnls/pug that referenced this issue Dec 18, 2017
kylekatarnls added a commit to kylekatarnls/pug that referenced this issue Dec 18, 2017
@kylekatarnls
Copy link
Contributor Author

kylekatarnls commented Dec 18, 2017

Finally a pull-request at #2928, some little changes since I opened this issue, I moved Ruby and Rails implementations in their framework/language sections and I also CMS plugins with wordless that enable Pug (among others) and I hope some other CMS could implement it (Maybe October CMS, I will try to take a look).

So to be discussed, adjusted if needed.

This was referenced Mar 9, 2021
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