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

We need a spec #1277

Open
lawnsea opened this issue Nov 23, 2016 · 8 comments
Open

We need a spec #1277

lawnsea opened this issue Nov 23, 2016 · 8 comments
Milestone

Comments

@lawnsea
Copy link
Collaborator

lawnsea commented Nov 23, 2016

Currently, the Handlebars language is defined by the behavior of this reference implementation and incompletely described by the documentation found at handlebarsjs.com. This makes it very difficult to reason about bugs like #1276. Should partials that use {{> @partial-block}} be invocable in the manner the bug reporter expects? Not clear.

I had a related discussion with @wycats and we came to the conclusion that we need to specify the language before we move forward with any new features.

This would be a non-trivial effort. Thoughts?

@lawnsea
Copy link
Collaborator Author

lawnsea commented Nov 23, 2016

#1262 is another great example of why we need a spec.

@lawnsea
Copy link
Collaborator Author

lawnsea commented Nov 23, 2016

Looks like work is already underway: https://github.com/handlebars-lang/spec.

@nknapp
Copy link
Collaborator

nknapp commented Aug 2, 2017

I'm reopening this issue. Although there is an attempt for a spec in the referenced repo, there is no progress at the moment.

@MaxLeiter
Copy link

No progress has been made in months, and no new features are being added until it's done? That seems incredibly... silly

@nknapp
Copy link
Collaborator

nknapp commented Aug 2, 2017

I think, we need more help here. Someone has made a first attempt for a spec, but at the moment, there is nobody actively working on it. On the other hand @wycats has made it clear, that he wants to have a spec before new language features are implemented. The reason for this is (as I understood):

There are many implementations of the Handlebars language in different programming-languages (Java, Rust, multiple implementations in JavaScript...) and without a formal specification, they will always diverge. You can never be sure that your templates still work when you migrate to another engine.

@nknapp
Copy link
Collaborator

nknapp commented Aug 2, 2017

Yes, there aren't many active collaborators at the moment. I don't want to say that I'm the only one, but sometimes it feels like it.

When I asked @wycats for push-access and release-permissions, I had the feeling that there was noone with the time and the resources to fix bugs and publish new releases, so I wanted to at least become that person.

I would also love to write a spec and a great documentation site, but the reality is that I have a wife and two kids, a daytime job and a house to pay off. And I have few other open-source projects.

I can fix bugs, answer to issues, merge PRs and publish new versions. But writing a spec is too much (at the moment)

@thislooksfun
Copy link

thislooksfun commented Nov 9, 2017

Has there been any progress on this? I'm attempting to write a Dart version of handlebars, and it is very difficult to without a formal spec to work off of.

EDIT: I should also say that I am willing to take some of my own time to help develop the spec, if help is needed.

thislooksfun added a commit to thislooksfun/compiled_mustache that referenced this issue Nov 9, 2017
Handlebars doesn't have a full spec yet. Once handlebars-lang/handlebars.js#1277 is done, then this can be adapted to full handlebars.
@nknapp
Copy link
Collaborator

nknapp commented Nov 9, 2017

I have started a repo at handlebars-lang/specification on which I work when I have nothing else to do (which is not very often). Feel free to contribute there. I can add you to the team if you want.

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

4 participants