Agent skill
markdown-codeblock
Use when the user wants to highlight code in markdown files, including inline code highlighting with {lang} prefix syntax, code blocks with language fences and titles, and transformer marks for diffs, highlights, focus, errors, and warnings. Always read this skill file when inserting code blocks or inline code in markdown.
Install this agent skill to your Project
npx add-skill https://github.com/Efterklang/dotfiles/tree/main/tui_cli/opencode/skills/markdown-codeblock
SKILL.md
Shiki Code Highlighting for Markdown Blogs
Inline Code Syntax
Apply to code wrapped in single backticks:
`{python} print("Hello")`
`{javascript} console.log("x")`
`{html} <div></div>`
`{rust} fn main() {}`
`{shell} echo "hi"`
Do NOT use {lang} prefix on triple-backtick code blocks.
Code Blocks
Use language name in opening fence. Optionally add filename after language:
def greet(name):
return f"Hello, {name}!"
const add = (a: number, b: number): number => a + b;
Nested Code Blocks
The default number of backticks for code blocks is 3. When there are nested code blocks inside the content, the outer code block's backticks increase by one per nesting level. If there are multiple layers of nesting, continue adding backticks accordingly.
For example, if the inner content contains triple backticks, use 4 backticks for the outer wrapper:
```typescript
// Your code example here that might contain ``` in it
```
If the inner content has 4 backticks, use 5 for the outer, and so on.
Transformer Marks
Add marks in comments after #. Use marks to draw attention or add semantic meaning:
| Mark | When to Use |
|---|---|
# [!code --] |
Show code removal (before → after comparisons) |
# [!code ++] |
Show code addition (before → after comparisons) |
# [!code highlight] |
Emphasize important or key lines |
# [!code word:term] |
Highlight specific identifier, keyword, or term |
# [!code focus] |
De-emphasize surrounding code, focus on one section |
# [!code error] |
Mark lines with errors, invalid code, or exceptions |
# [!code warning] |
Mark lines with warnings, deprecations, or cautions |
Diff (Before → After)
let x = 5; // [!code --]
let x = 10; // [!code ++]
Line Highlight (Key Lines)
def calculate(items):
total = 0
for item in items: # [!code highlight]
total += item.price
return total # [!code highlight]
Word Highlight (Specific Terms)
// [!code word:interface]
interface User {
id: number; // [!code word:id]
name: string; // [!code word:name]
}
Focus (Main Topic)
// [!code focus]
func (s *Service) Process() error {
return s.validate()
}
func (s *Service) validate() error {
// validation logic
}
Error (Problematic Code)
const result = JSON.parse(userInput); // [!code error]
try {
await riskyOperation(); // [!code error]
} catch (e) {
handleError(e); // [!code warning]
}
Recommended Agent Skills
Expand your agent's capabilities with these related and highly-rated skills.
slidev
Create and present web-based slides for developers using Markdown, Vue components, code highlighting, animations, and interactive features. Use when building technical presentations, conference talks, or teaching materials.
obsidian-markdown
Create and edit Obsidian Flavored Markdown with wikilinks, embeds, callouts, properties, and other Obsidian-specific syntax. Use when working with .md files in Obsidian, or when the user mentions wikilinks, callouts, frontmatter, tags, embeds, or Obsidian notes.
obsidian-bases
Create and edit Obsidian Bases (.base files) with views, filters, formulas, and summaries. Use when working with .base files, creating database-like views of notes, or when the user mentions Bases, table views, card views, filters, or formulas in Obsidian.
json-canvas
Create and edit JSON Canvas files (.canvas) with nodes, edges, groups, and connections. Use when working with .canvas files, creating visual canvases, mind maps, flowcharts, or when the user mentions Canvas files in Obsidian.
skill-creator
Guide for creating effective skills. This skill should be used when users want to create a new skill (or update an existing skill) that extends Claude's capabilities with specialized knowledge, workflows, or tool integrations.
kirby-i18n-workflows
Manages Kirby multi-language workflows, translations, and localized labels. Use when dealing with languages, translation keys, placeholders, or importing/exporting translations.
Didn't find tool you were looking for?