Code blocks are powered by Expressive Code ↗ , a project by Astro.
This is just a small showcase of functionality, it has a lot of options!
Write-Output "This one has a title!"
function getLongString () {
return "This is a very long string that will most probably not fit into the available space unless the container is extremely wide" ;
console . log ( "These are inserted and deleted marker types" ) ;
// The return statement uses the default marker type
function thisIsJavaScript () {
// This entire block gets highlighted as JavaScript,
// and we can still add diff markers to it!
console . log ( 'Old code to be removed' )
console . log ( 'New and shiny code!' )
``` powershell title="PowerShell"
Write-Output "This one has a title!"
function getLongString () {
return "This is a very long string that will most probably not fit into the available space unless the container is extremely wide" ;
``` js "return true;" ins="inserted" del="deleted"
console . log ( "These are inserted and deleted marker types" ) ;
// The return statement uses the default marker type
function thisIsJavaScript() {
// This entire block gets highlighted as JavaScript,
// and we can still add diff markers to it!
- console.log('Old code to be removed')
+ console.log('New and shiny code!')
If you would like to include the output of your code block, create a second code block below and add the output
property to the opening code fence.
npx wrangler vectorize create tutorial-index --dimensions=3 --metric=cosine
✅ Successfully created index 'tutorial-index'
binding = "VECTORIZE_INDEX" # available in your Worker on env.VECTORIZE_INDEX
index_name = "tutorial-index"
npx wrangler vectorize create tutorial-index --dimensions=3 --metric=cosine
✅ Successfully created index 'tutorial-index'
binding = "VECTORIZE_INDEX" # available in your Worker on env.VECTORIZE_INDEX
index_name = "tutorial-index"
If you add the playground
option to the opening code fence for a Worker example, it will
add a “Run Worker in Playground” link that will take the user to the Worker’s playground
return new Response ( "Test!" ) ;
The TypeScriptExample
component uses detype
↗ to remove TypeScript-specific syntax from your example and provide a JavaScript tab. This reduces maintenance burden by only having a single example to maintain.
filename
string | { js: string, ts: string }
(optional)
If a single TypeScript filename is passed, this will be used for JavaScript but with a .js
file extension.
<TypeScriptExample filename="example.ts">
To specify different filenames for the two languages, pass an object with a js
and ts
filename including extensions.
<TypeScriptExample filename={{ js: "foo.js", ts: "bar.ts" }}>
tabsWrapper
boolean
(optional)
When set to false
, this component will not render <Tabs>
components.
This allows you to include the JS/TS tabs in your own <Tabs>
and add <TabItem>
s before/after, i.e for Python examples.
playground
boolean
(optional)
When set to true
, a “Open Worker in Playground” link will render on the JavaScript codeblock.
async fetch ( req , env , ctx ) {
return new Response ( "Method Not Allowed" , {
await env . KV . put ( "foo" , "bar" ) ;
async fetch ( req , env , ctx ) : Promise < Response > {
return new Response ( "Method Not Allowed" , {
await env . KV . put ( "foo" , "bar" ) ;
} satisfies ExportedHandler < Environment >
import { TypeScriptExample } from "~/components" ;
< TypeScriptExample filename = "index.ts" >
async fetch ( req , env , ctx ) : Promise < Response > {
return new Response ( "Method Not Allowed" , {
await env . KV . put ( "foo" , "bar" ) ;
} satisfies ExportedHandler < Environment >