Block editor showcase
This post exercises every block type the new editor can emit. Open it in the panel editor to see how each round-trips through the parser.
Headings recap
H2 above. Below is H3:
Subsection
A paragraph with bold and italic and inline code and a link to demo5.
Callouts
Info callout — generic blue accent. Use for background context or definitions.
Tip callout — green accent. Use for shortcuts or pro recommendations.
Warn callout — amber accent. Use when something requires user attention.
Danger callout — red accent. Use for destructive operations and pitfalls.
Columns (2)
Left side
This is the left column. You can nest any block in here: paragraphs, lists, code, even another columns block.
- Nested item one
- Nested item two
Right side
The right column renders independently. Resize the viewport — under 720px the grid collapses to a single column for mobile readability.
const greet = (name: string) => `hi, ${name}`
Columns (3)
Fast
ISR + edge cache. Posts render in <100 ms after first hit.
Searchable
Client FlexSearch index loads on demand from a JSON file.
Portable
Plain .md files — grep, git diff, cat all work.
Code block
Param( [Parameter(Mandatory = $True)] [String] $SharepointURL, [Parameter(Mandatory = $True)] [String] $tenantID)$scope = 'User.Read.All'Connect-MgGraph -TenantId $tenantId -Scopes $scopeConnect-SPOService -Url $SharepointURL;$list = @() #list of UPN to pass to the SP command$Totalusers = 0 #total user provisioned.#Get licensed users$users = Get-MgUser -Filter 'assignedLicenses/$count ne 0' -ConsistencyLevel eventual -CountVariable licensedUserCount -All -Select UserPrincipalNameforeach ($u in $users) { $Totalusers++ Write-Host "$Totalusers/$($users.Count)" $list += $u.userprincipalname if ($list.Count -eq 199) { #We reached the limit Write-Host "Batch limit reached, requesting provision for the current batch" Request-SPOPersonalSite -UserEmails $list -NoWait Start-Sleep -Milliseconds 655 $list = @() }}if ($list.Count -gt 0) { Request-SPOPersonalSite -UserEmails $list -NoWait}Disconnect-SPOServiceDisconnect-MgGraphWrite-Host "Completed OneDrive Provisioning for $Totalusers users"Param( [Parameter(Mandatory = $True)] [String] $SharepointURL, [Parameter(Mandatory = $True)] [String] $tenantID)$scope = 'User.Read.All'Connect-MgGraph -TenantId $tenantId -Scopes $scopeConnect-SPOService -Url $SharepointURL;$list = @() #list of UPN to pass to the SP command$Totalusers = 0 #total user provisioned.#Get licensed users$users = Get-MgUser -Filter 'assignedLicenses/$count ne 0' -ConsistencyLevel eventual -CountVariable licensedUserCount -All -Select UserPrincipalName bhhforeach ($u in $users) { $Totalusers++ Write-Host "$Totalusers/$($users.Count)" $list += $u.userprincipalname if ($list.Count -eq 199) { #We reached the limit Write-Host "Batch limit reached, requesting provision for the current batch" Request-SPOPersonalSite -UserEmails $list -NoWait Start-Sleep -Milliseconds 655 $list = @() }}if ($list.Count -gt 0) { Request-SPOPersonalSite -UserEmails $list -NoWait}Disconnect-SPOServiceDisconnect-MgGraphWrite-Host "Completed OneDrive Provisioning for $Totalusers users"
Lists
- Bulleted item
- Bulleted item with bold
- Bulleted item
- Numbered item one
- Numbered item two
- Numbered item three
Quote
The block editor stores markdown plaintext. Special block types serialize as HTML wrappers that the existing marked pipeline passes through unchanged.
Divider
Image

Embed
Gallery
End
That's every supported block. Edit this post in the panel and try dragging the columns block above the gallery, then save — the live page should re-render with the new order via ISR.
My Blog