{"action":"opened","issue":{"url":"https://api.github.com/repos/comfy/comfortable-mexican-sofa/issues/587","labels_url":"https://api.github.com/repos/comfy/comfortable-mexican-sofa/issues/587/labels{/name}","comments_url":"https://api.github.com/repos/comfy/comfortable-mexican-sofa/issues/587/comments","events_url":"https://api.github.com/repos/comfy/comfortable-mexican-sofa/issues/587/events","html_url":"https://github.com/comfy/comfortable-mexican-sofa/issues/587","id":55392178,"number":587,"title":"Improving tag system.","user":{"login":"GBH","id":78363,"avatar_url":"https://avatars.githubusercontent.com/u/78363?v=3","gravatar_id":"","url":"https://api.github.com/users/GBH","html_url":"https://github.com/GBH","followers_url":"https://api.github.com/users/GBH/followers","following_url":"https://api.github.com/users/GBH/following{/other_user}","gists_url":"https://api.github.com/users/GBH/gists{/gist_id}","starred_url":"https://api.github.com/users/GBH/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/GBH/subscriptions","organizations_url":"https://api.github.com/users/GBH/orgs","repos_url":"https://api.github.com/users/GBH/repos","events_url":"https://api.github.com/users/GBH/events{/privacy}","received_events_url":"https://api.github.com/users/GBH/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":0,"created_at":"2015-01-25T01:56:26Z","updated_at":"2015-01-25T01:56:26Z","closed_at":null,"body":"CMS tags meant to be simple tokens that get replaced with text on the way out. So they are simple, but at the same time rather restrictive and not so easy to change how they behave. So current tag system needs to be replaced. The goal is to increase clarity, decrease complexity and add flexibility to change things.\r\n\r\n##### Syntax change.\r\n\r\nRight now we have tags like `{{cms:page:identifier:text}}`, `{{cms:page:identifier:string}}`, ``{{cms:field:identifier:rich_text}}`` and so on. There are distinct, yet almost identical classes for those. This is a bit nuts. Now all tags that deal with data collection on the admin side will have signature of `{{cms:block:identifier}}`. Details like how they are presented on the admin side and how they are rendered out will be handled via attributes. Instead of doing this odd delimitering everything with a column, we will have something JSON-like: `{{cms:block:identifier format:string, placeholder:'Hello world', foo:bar, etc:etc}}`. No more magical \"4th token means partial path\" bullshit. Also sorry about [Collection Tag](https://github.com/comfy/comfortable-mexican-sofa/wiki/Tags#collection), it's awful.\r\n\r\n##### Admin forms.\r\n\r\nIn the back there will be some sort of delegation class that will render a proper partial for the admin area. It will take into consideration options on the tag. Right now it's handled by a form helper and it's pretty annoying to override.\r\n\r\n##### Rendering\r\n\r\nRight now rendering logic is defined in each Tag class. Something similar still will be in place.\r\n\r\n##### When\r\n\r\nSoon. Maybe in 1.13.0. There's still planned work for retiring Site mirroring for a better system, but that one is pretty hard.\r\n\r\nI won't keep the old format of tags and most likely rollout this change as a minor version. Sorry SemVer people. You'll have to change tag definitions everywhere. But everything will work the same then.\r\n\r\nI made a branch: https://github.com/comfy/comfortable-mexican-sofa/tree/cms_block_tag"}}