Install
$ agentstack add skill-haoliangcheng-skills-frontend-llm-output-handler ✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
Verified badge
Passed review? Show it. Paste this badge into your README, it links to the public security report.
Reliability & compatibility
Declared compatibility
Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.
We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.
How agent discovery & health will work →About
Frontend LLM Output Handler
Goal
Enhance existing frontend code to support the rendering of complex LLM response strings.
- Input: Frontend code (JavaScript, React, TypeScript).
- Output: Enhanced frontend code with integrated capabilities for parsing Markdown, rendering LaTeX math formulas, and displaying interactive code blocks.
Dependencies
The implementation uses the following packages:
- Markdown:
marked - Math/LaTeX:
katex - Sanitization:
dompurify - Syntax Highlighting:
highlight.js - React Styling:
styled-components - DOM Utility:
jQuery(optional, for non-React implementations)
Instructions
To enhance frontend components for AI-generated responses, follow this 4-step integration pipeline:
1. Pre-processing (Math Compatibility)
AI models often produce single backslashes in LaTeX (e.g., \frac). Most Markdown parsers consume these as escape characters. You must normalize them before parsing.
// Normalize backslashes for KaTeX compatibility
const normalized = rawText.replace(/\\/g, '\\\\');
2. Markdown Parsing
Use a robust parser like marked. Ensure you handle the output as an HTML string.
3. Code Block Decoration
AI responses frequently contain code. Enhance standard output by wrapping it in a container with a language label to improve readability and visual structure.
4. Security & Post-processing
- Sanitize with Config: ALWAYS use
DOMPurify. Ensure your configuration allows the specific tags and attributes you've added (e.g.,class).
``javascript DOMPurify.sanitize(html, { ALLOWED_TAGS: ['p', 'br', 'strong', 'em', 'img', 'code', 'pre', 'ul', 'ol', 'li', 'h1', 'h2', 'h3', 'div', 'span', 'table', 'thead', 'tbody', 'tr', 'th', 'td'], ALLOWED_ATTR: ['src', 'alt', 'class', 'href', 'style'] }); ``
- Math Rendering (KaTeX): Call
renderMathInElementafter the content is added to the DOM. You MUST specify delimiters so the renderer knows what to look for:
``javascript renderMathInElement(container, { delimiters: [ { left: '$$', right: '$$', display: true }, { left: '$', right: '$', display: false }, { left: '\\(', right: '\\)', display: false }, { left: '\\[', right: '\\]', display: true } ], throwOnError: false }); ``
Performance & UX Tips (React)
- Memoization: Use
useMemoto wrap the parsing logic andReact.memofor message components. This prevents expensive re-parsing of the entire chat history when new messages arrive. - Auto-scroll: Implement a
useEffectthat monitors the message list and updatesscrollTopto keep the latest AI response in view.
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: HaoliangCheng
- Source: HaoliangCheng/skills
- License: Apache-2.0
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet, be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.