Skip to content

Latest commit

 

History

History
13 lines (11 loc) · 1.49 KB

grammar.md

File metadata and controls

13 lines (11 loc) · 1.49 KB

The Gutenberg block grammar

<style> dl { display: flex; flex-wrap: wrap; font-size: 110%; } dt, dd { flex: 40%; margin-bottom: 1em; } dt { text-align: right; font-style: italic; font-size: 105%; } dd header { font-weight: bold; } pre { margin: 0; } </style>
Block_List  = $(!Block .)* (Block $(!Block .)*)* $(.*)
Block  = Block_Void
  / Block_Balanced
Block_Void  = "<!--" __ "wp:" Block_Name __ (Block_Attributes __)? "/-->"
Block_Balanced  = Block_Start (Block / $(!Block_End .))* Block_End
Block_Start  = "<!--" __ "wp:" Block_Name __ (Block_Attributes __)? "-->"
Block_End  = "<!--" __ "/wp:" Block_Name __ "-->"
Block_Name  = Namespaced_Block_Name
  / Core_Block_Name
Namespaced_Block_Name  = $(Block_Name_Part "/" Block_Name_Part)
Core_Block_Name  = $(Block_Name_Part)
Block_Name_Part  = $([a-z] [a-z0-9_-]*)
JSON-encoded attributes embedded in a block's opening comment
Block_Attributes  = $("{" (!("}" __ "" "/"? "-->") .)* "}")
__  = [ \t\r\n]+