Skip to content

Commit 17a1e7d

Browse files
committed
🐛 fix: use DOM textContent to render XML, split into 2 panels
- Replace innerHTML with createTextNode + textContent to prevent XML parsing - Split into two terminal panels: SkCC Compiler (build output) + Claude Code (XML skill) - XML tags now render correctly as literal text with syntax highlighting
1 parent 32355d8 commit 17a1e7d

1 file changed

Lines changed: 57 additions & 32 deletions

File tree

website/index.html

Lines changed: 57 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -133,43 +133,19 @@ <h1><span class="gradient-text">Compilation for Skills:</span><br>Capable, Porta
133133
</div>
134134
</div>
135135
<div class="hero-right">
136+
<div class="hero-terminal" style="margin-bottom:16px">
137+
<div class="hero-terminal-bar">
138+
<span class="hero-code-dot r"></span><span class="hero-code-dot y"></span><span class="hero-code-dot g"></span>
139+
<span class="hero-terminal-title">SkCC Compiler</span>
140+
</div>
141+
<div class="hero-terminal-body" id="term-compiler"></div>
142+
</div>
136143
<div class="hero-terminal">
137144
<div class="hero-terminal-bar">
138145
<span class="hero-code-dot r"></span><span class="hero-code-dot y"></span><span class="hero-code-dot g"></span>
139146
<span class="hero-terminal-title">Claude Code — Terminal</span>
140147
</div>
141-
<div class="hero-terminal-body">
142-
<div class="term-line"><span class="term-prompt">~</span> claude</div>
143-
<div class="term-line term-dim">Starting Claude Code (claude-opus-4-6)...</div>
144-
<div class="term-line term-dim">Loading compiled skill: <span class="term-skill">database-migration</span></div>
145-
<div class="term-line">&nbsp;</div>
146-
<div class="term-line"><span class="term-tag"><agent_skill></span></div>
147-
<div class="term-line"> <span class="term-tag"><metadata></span></div>
148-
<div class="term-line"> <span class="term-tag"><name></span>database-migration<span class="term-tag"></name></span></div>
149-
<div class="term-line"> <span class="term-tag"><security_level></span><span class="term-warn">high</span><span class="term-tag"></security_level></span></div>
150-
<div class="term-line"> <span class="term-tag"></metadata></span></div>
151-
<div class="term-line"> <span class="term-tag"><execution_steps></span></div>
152-
<div class="term-line"> <span class="term-tag"><step</span> <span class="term-attr">order</span>=<span class="term-val">"1"</span> <span class="term-attr">critical</span>=<span class="term-val">"true"</span><span class="term-tag">></span></div>
153-
<div class="term-line"> Validate schema compatibility</div>
154-
<div class="term-line"> <span class="term-tag"></step></span></div>
155-
<div class="term-line"> <span class="term-tag"><step</span> <span class="term-attr">order</span>=<span class="term-val">"2"</span><span class="term-tag">></span></div>
156-
<div class="term-line"> Execute migration with rollback plan</div>
157-
<div class="term-line"> <span class="term-tag"></step></span></div>
158-
<div class="term-line"> <span class="term-tag"></execution_steps></span></div>
159-
<div class="term-line"> <span class="term-tag"><strict_constraints></span></div>
160-
<div class="term-line"> <span class="term-tag"><anti_pattern</span> <span class="term-attr">source</span>=<span class="term-val">"anti-skill-injector"</span><span class="term-tag">></span></div>
161-
<div class="term-line"> <span class="term-safe">No destructive DB ops without confirmation</span></div>
162-
<div class="term-line"> <span class="term-tag"></anti_pattern></span></div>
163-
<div class="term-line"> <span class="term-tag"></strict_constraints></span></div>
164-
<div class="term-line"><span class="term-tag"></agent_skill></span></div>
165-
<div class="term-line">&nbsp;</div>
166-
<div class="term-line term-success">✓ Skill loaded. Ready.</div>
167-
</div>
168-
</div>
169-
<div class="hero-annotations">
170-
<div class="hero-anno"><span class="hero-anno-dot"></span><span class="hero-anno-line"></span>XML semantic layering — Claude's preferred format</div>
171-
<div class="hero-anno"><span class="hero-anno-dot"></span><span class="hero-anno-line"></span>Anti-Skill constraints injected at compile time</div>
172-
<div class="hero-anno"><span class="hero-anno-dot"></span><span class="hero-anno-line"></span>Critical steps flagged for HITL confirmation</div>
148+
<div class="hero-terminal-body" id="term-claude"></div>
173149
</div>
174150
<div class="hero-gain-badge">📈 +12.2pp Pass Rate on Claude Code</div>
175151
</div>
@@ -237,5 +213,54 @@ <h1><span class="gradient-text">Compilation for Skills:</span><br>Capable, Porta
237213
<div class="footer-bottom"><span>© 2026 Nexa-lang Project & arcSYSu Lab, Sun Yat-sen University</span><span><a href="https://github.com/Nexa-Language/Skill-Compiler">MIT License</a></span></div>
238214
</footer>
239215
<script src="common.js"></script>
216+
<script>
217+
(function(){
218+
function line(parts){var d=document.createElement('div');d.className='term-line';parts.forEach(function(p){if(typeof p==='string'){d.appendChild(document.createTextNode(p))}else{var s=document.createElement('span');s.className=p[0];s.textContent=p[1];d.appendChild(s)}});return d}
219+
function addLines(el,lines){lines.forEach(function(l){el.appendChild(l)})}
220+
221+
var compiler=document.getElementById('term-compiler');
222+
var claude=document.getElementById('term-claude');
223+
if(!compiler||!claude)return;
224+
225+
addLines(compiler,[
226+
line([['term-prompt','$'],' nsc build database-migration/SKILL.md --target claude']),
227+
line([['term-dim','Compiling...']]),
228+
line([['term-dim',' Phase 1: Syntax Parser'],['term-success',' \u2713']]),
229+
line([['term-dim',' Phase 2: IR Builder (SkIR)'],['term-success',' \u2713']]),
230+
line([['term-dim',' Phase 3: Security Optimizer'],['term-success',' \u2713']]),
231+
line([['term-dim',' Anti-Skill Injection: 2 rules triggered']]),
232+
line([['term-dim',' Phase 4: Target Emitter \u2192 Claude'],['term-success',' \u2713']]),
233+
line([['term-success','\u2713 Compiled: build/database-migration/SKILL.md']])
234+
]);
235+
236+
addLines(claude,[
237+
line([['term-prompt','~'],' claude']),
238+
line([['term-dim','Starting Claude Code (claude-opus-4-6)...']]),
239+
line([['term-dim','Loading compiled skill: '],['term-skill','database-migration']]),
240+
line([' ']),
241+
line([['term-tag','<agent_skill>']]),
242+
line([['term-tag',' <metadata>']]),
243+
line([['term-tag',' <name>'],'database-migration',['term-tag','</name>']]),
244+
line([['term-tag',' <security_level>'],['term-warn','high'],['term-tag','</security_level>']]),
245+
line([['term-tag',' </metadata>']]),
246+
line([['term-tag',' <execution_steps>']]),
247+
line([['term-tag',' <step '],['term-attr','order'],['term-tag','='],['term-val','"1"'],['term-tag',' '],['term-attr','critical'],['term-tag','='],['term-val','"true"'],['term-tag','>']]),
248+
line([' Validate schema compatibility']),
249+
line([['term-tag',' </step>']]),
250+
line([['term-tag',' <step '],['term-attr','order'],['term-tag','='],['term-val','"2"'],['term-tag','>']]),
251+
line([' Execute migration with rollback plan']),
252+
line([['term-tag',' </step>']]),
253+
line([['term-tag',' </execution_steps>']]),
254+
line([['term-tag',' <strict_constraints>']]),
255+
line([['term-tag',' <anti_pattern '],['term-attr','source'],['term-tag','='],['term-val','"anti-skill-injector"'],['term-tag','>']]),
256+
line([['term-safe',' No destructive DB ops without confirmation']]),
257+
line([['term-tag',' </anti_pattern>']]),
258+
line([['term-tag',' </strict_constraints>']]),
259+
line([['term-tag','</agent_skill>']]),
260+
line([' ']),
261+
line([['term-success','\u2713 Skill loaded. Ready.']])
262+
]);
263+
})();
264+
</script>
240265
</body>
241266
</html>

0 commit comments

Comments
 (0)