confluence-html
Create rich, interactive HTML that survives Confluence's save sanitizer by using only inline styles, no external resources, and JavaScript for dynamic content.
Skill by yiliu30
Chalk Labs
Need help deploying confluence-html?
Chalk Labs sets up agents like this inside real teams: connected to your tools, tested on your data, with a human in the loop where it matters.
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/yiliu30-confluence-html
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: frontend, data, ml, writing
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/confluence-html
What's inside
- Skill name
confluence-html- Description
- Create rich, interactive HTML that survives Confluence's save sanitizer by using only inline styles, no external resources, and JavaScript for dynamic content. Use this skill when embedding HTML visualizations, interactive diagrams, or data displays into Confluence pages via the HTML macro. The main challenge is that Confluence strips CSS `<style>` blocks and `class=` attributes on save (though preview shows them). This skill ensures your HTML builds and stays beautiful after save.
- License
- MIT
- Instructions
- 141 lines in SKILL.md · view on GitHub
Files (1)
- SKILL.md
SKILL.md (first lines)
# Confluence HTML Macro
You are creating HTML that will be embedded into Confluence via the `<ac:structured-macro ac:name="html">` macro. The challenge: **Confluence preview renders correctly, but on save the sanitizer strips `<style>` blocks and `class=` attributes, breaking the layout.**
The solution is counterintuitive — build like it's 2005: all styling via inline `style=""` attributes, no external resources, and JavaScript to apply dynamic styles.
## How Confluence's HTML Sanitizer Works
Preview is misleading. When you save:
- **Strips entirely**: `<style>` blocks, `<link>` tags, `@import`, external fonts
- **Strips attributes**: `class=`, all CSS custom properties (`var(--xxx)`)
- **Removes from DOM**: `<head>` (only `<body>` renders)
- **Blocks CSP**: external CDNs, Google Fonts, analytics
- **Preserves**: `<script>` blocks, inline `style=""` attributes, `style.*` from JS
This means your beautiful CSS architecture gets nuked on save, leaving only raw HTML and inline styles.
## Instructions
### 1. Ban All CSS Classes and Style Blocks
- Delete the `<style>` block entirely
- Remove all `class="xxx"` attributes
- Rewrite every styling decision as inline `style="property: value;"`
```html
<!-- ✗ DON'T: relies on .card class from <style> block -->
<div class="card">Content</div>
<!-- ✓ DO: inline everything -->
<div style="background: #fff; border: 1px solid #ccc; padding: 1rem; border-radius: 8px;">
Content
</div>
```
### 2. Use Only System Fonts
No web font loading. Use:
- `'Courier New', monospace` (system mono)
- `Georgia, serif` (system serif)
- `Arial, -apple-system, sans-serif` (system sans)
```css
/* ✗ DON'T */
font-family: 'JetBrains Mono';
@import url('https://fonts.googleapis.com/...');
/* ✓ DO */
font-family: 'Courier New', monospace;
```
### 3. Use JavaScript for Dynamic Styles
JavaScript `<script>` blocks survive. Apply all dynamic styling via `element.style.*`:
```html
<!-- Apply responsive layout -->
<div id="grid"></div>
<script>
const grid = document.getElementById('grid');
grid.style.display = 'grid';
grid.style.gridTemplateColumns = 'repeat(32, 1fr)';
grid.style.gap = '1px';
grid.style.background = 'rgba(100, 100, 100, 0.1)';
</script>
```
### 4. Inline Hover Effects
CSS `:hover` requires a `<style>` block. Use `onmouseenter` / `onmouseleave`:
```html
<div id="box" style="background: #eee; padding: 1rem;"
onmouseenter="this.style.background='#ddd'; this.style.transform='scale(1.02)'"
onmouseleave="this.style.background='#eee'; this.style.transform='scale(1)'">
Hover me
</div>
```
### 5. Flatten All Color References
Never use CSS custom properties (`var(--color)`). Use `#hex` or `rgba()` directly:
```html
<!-- ✗ DON'T -->
<span style="color: var(--primary-color);">Text</span>
<!-- ✓ DO -->
<span style="color: #0e8a7d;">Text</span>
```
### 6. Wrap in Confluence HTML Macro
```html
<ac:structured-macro ac:macro-id="unique-id" ac:name="html" ac:schema-version="1">
<ac:plain-text-body><![CDATA[
<!-- your inline-styled HTML here -->
]]></ac:plain-text-body>
</ac:structured-macro>
```
## Examples
### Input
User wants to embed an interactive data grid visualization in Confluence showing token cache layout with custom colors.
### Expected Behavior
Before embedding — the local HTML renders beautifully with light mode colors, gradients, and a 64×32 grid of cells.
Steps:
1. **Audit the HTML**: search for `class="`, `<style>`, `<link>`, `var(--`. All must return 0 matches.
2. **Convert classes to inline**: For each `.grid-cell { background: ...; }`, add `style="background: ..."` to the element.
3. **Move CSS custom properties**: Replace `color: var(--primary)` → `color: #hex`
4. **Port animations/responsive logic to JS**: Move `@keyframes`, `@media`, `:hover` into `<script>` blocks using `element.style.*`.
5. **Test preview**: Open Confluence, paste via HTML macro, verify preview renders.
6. **Test save**: Save the page, reload. If layout persists, it's Confluence-safe.
## What NOT to DoFrom yiliu30/z2h, MIT.
More from yiliu30/z2h
- 0.563score
profile-cute-xpu
yiliu30
Profile and analyze CuTe/SYCL*TLA kernels on Intel XPU/GPU, especially Intel Xe/BMG/Xe20/Xe35 GEMM-style kernels using CuTe primitives such as XE_DPAS_TT…
SkillBFreshness: B★ 2Claude Code +9 - 0.559score
intel-xpu-cute-accuracy-debug
yiliu30
Debug numerical mismatches in Intel XPU CuTe/CUTLASS kernels, especially Xe DPAS/BDPAS fragment layouts, block-scale payloads, and fused SDPA/GEMM accumulators.
SkillBFreshness: B★ 2Claude Code +9 - 0.507score
remote-debug
yiliu30
Drive Claude Code to debug an issue on a remote node over SSH — connect, set up an environment, copy scripts/probes across, run repros, and capture findings.
SkillCFreshness: C★ 2Claude Code +9 - 0.501score
read-arxiv-paper
yiliu30
Given an arxiv URL, download the TeX source, read the paper, and produce a summary markdown file
SkillCFreshness: C★ 2Claude Code +9 - 0.448score
reduce-model
yiliu30
Create a reduced (fewer-layer) version of a large HuggingFace model for fast testing and debugging.
SkillDFreshness: D★ 2Claude Code +9 - 0.443score
find-sth
yiliu30
Investigate a technical question by searching across multiple sources (source code, documentation, academic papers, existing findings) and produce a sourced…
SkillDFreshness: D★ 2Claude Code +9 - 0.443score
observe
yiliu30
Memory observer agent for recording structured observations from primary Claude Code sessions.
SkillDFreshness: D★ 2Claude Code +9 - 0.443score
real-review
yiliu30
Fact-check written content (GitHub issues, docs, reports, posts) by verifying every claim, number, link, code reference, and conclusion against actual evidence.
SkillDFreshness: D★ 2Claude Code +9 - 0.443score
vllm-kernel-trace
yiliu30
Trace which GPU kernels vLLM dispatches for specific model layers (linear, attention, MoE, norms).
SkillDFreshness: D★ 2Claude Code +9
Signals
- Stars
- 2
- Forks
- 0
- Open issues
- 1
- Last commit (this folder)
- May 22, 2026 (5 months ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- Repository
- github.com/yiliu30/z2h
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from yiliu30
- 0.563score
profile-cute-xpu
yiliu30
Profile and analyze CuTe/SYCL*TLA kernels on Intel XPU/GPU, especially Intel Xe/BMG/Xe20/Xe35 GEMM-style kernels using CuTe primitives such as XE_DPAS_TT…
SkillBFreshness: B★ 2Claude Code +9 - 0.559score
intel-xpu-cute-accuracy-debug
yiliu30
Debug numerical mismatches in Intel XPU CuTe/CUTLASS kernels, especially Xe DPAS/BDPAS fragment layouts, block-scale payloads, and fused SDPA/GEMM accumulators.
SkillBFreshness: B★ 2Claude Code +9 - 0.507score
remote-debug
yiliu30
Drive Claude Code to debug an issue on a remote node over SSH — connect, set up an environment, copy scripts/probes across, run repros, and capture findings.
SkillCFreshness: C★ 2Claude Code +9 - 0.501score
read-arxiv-paper
yiliu30
Given an arxiv URL, download the TeX source, read the paper, and produce a summary markdown file
SkillCFreshness: C★ 2Claude Code +9 - 0.448score
reduce-model
yiliu30
Create a reduced (fewer-layer) version of a large HuggingFace model for fast testing and debugging.
SkillDFreshness: D★ 2Claude Code +9 - 0.443score
find-sth
yiliu30
Investigate a technical question by searching across multiple sources (source code, documentation, academic papers, existing findings) and produce a sourced…
SkillDFreshness: D★ 2Claude Code +9
Done for you
Rather not set it up yourself?
Chalk Labs scopes, builds and runs agents for your team: the task audit, the eval harness, the integrations and the weekly ops report. Fixed scope, priced before we start.
See how we build AI agents →Read the case studies
Chalk Labs is a two-founder AI and growth studio. We build AI agents, CRMs and MVPs for Web3 and AI companies, and have shipped 50+ product and token launches.
- launches shipped
- 50+
- launches shipped
- media placements
- 500+
- media placements
- founders on every account
- 2
- founders on every account
Press we've placed: Forbes · CoinDesk · Decrypt · Cointelegraph · The Block
Rahil Jain, Co-founder, Chalk Labs. Ex-Goldman Sachs engineer. You talk to the person who builds it.
Get confluence-html running in your business
Tell us what you want to automate. A founder replies within one working day with a plan, not a pitch deck.
Cite this page
confluence-html skill. Agent Mart. https://agentmart.dev/skills/yiliu30-confluence-html (last updated 2026-10-24)