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?
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):
What do you think of it?