# Generic directives/plugins syntax

**URL:** <https://talk.commonmark.org/t/generic-directives-plugins-syntax/444>\
**Category:** Extensions\
**Created:** [September 6, 2014, 9:50am UTC](https://talk.commonmark.org/t/generic-directives-plugins-syntax/444 "2014-09-06T09:50:24Z")\
**Posts on this page:** 1\
**Showing post:** 5

<div class="post-metadata">

**Author:** ![mb21](https://cdn.commonmark.org/user_avatar/talk.commonmark.org/mb21/32/162_2.png) [@mb21](https://talk.commonmark.org/u/mb21)\
**Post date:** [September 6, 2014, 3:53pm UTC](https://talk.commonmark.org/t/generic-directives-plugins-syntax/444/5 "2014-09-06T15:53:09Z")

</div>

Yeah, I wouldn’t be really opposed to `@name[]()` instead of `@name[](){}` if that should emerge as the consensus for a more limited syntax.

That being said, I guess the appeal of `{}` to me is that I would like it to become a no-brainer for a user to know what to put in there because it’s the same everywhere. The distinction between values `()` and key-value pairs `{}` is also somewhat inspired by [ConTeXt (see 1.3 Commands)](http://pmrb.free.fr/contextref.pdf). (btw: ConTeXt, as opposed to LaTeX, also has a notion of a class, so `.myClass` isn’t entirely HTML-centric.)

Finally, `{}` is probably also easier to implement in parsers. But yes, as you proposed, I guess we could also have all the attributes in the `()`, as in

```
@video[title](filename.mp4 "autoplay=1")

![altText](myImage.png "title" .myClass width=40 height=50)

### myHeader ### #myId

```

It works okay for everything but headers (although it still works I guess). But some implementations like Pandoc already make use of `{}` for attributes in some places. And my proposed span syntax `[text]{.class}` can’t be converted to `[]()` since that is already taken for links.

---

_[View the full topic](https://talk.commonmark.org/t/generic-directives-plugins-syntax/444)._
