Compare commits

..

No commits in common. "81dcac4097ffbba922752156bdfa3cb1d74b874a" and "e5e3a73cae0e8e8a65a7ffef777457a65053ab2f" have entirely different histories.

2 changed files with 11 additions and 50 deletions

View File

@ -1,6 +1,6 @@
{ {
"name": "@because/sandlot", "name": "@because/sandlot",
"version": "0.0.19", "version": "0.0.16",
"description": "Sandboxed, branch-based development with Claude", "description": "Sandboxed, branch-based development with Claude",
"type": "module", "type": "module",
"bin": { "bin": {

View File

@ -23,12 +23,6 @@
<div class="header"> <div class="header">
<h1><code>{{BRANCH}}</code></h1> <h1><code>{{BRANCH}}</code></h1>
{{PROMPT_SECTION}} {{PROMPT_SECTION}}
<div style="margin: 12px 0;">
<label style="cursor:pointer; user-select:none; font-size:14px; color:#8b949e;">
<input type="checkbox" id="unified-toggle" style="cursor:pointer; vertical-align:middle; margin-right:6px;">
Unified
</label>
</div>
<div class="meta"> <div class="meta">
{{LOG_SECTION}} {{LOG_SECTION}}
{{STAT_SECTION}} {{STAT_SECTION}}
@ -40,49 +34,16 @@
<script> <script>
const diffString = {{DIFF_JSON}}; const diffString = {{DIFF_JSON}};
const targetElement = document.getElementById("diff"); const targetElement = document.getElementById("diff");
const toggle = document.getElementById("unified-toggle"); const configuration = {
drawFileList: true,
// Split raw diff into per-file chunks and classify each matching: "lines",
function splitDiff(raw) { outputFormat: "side-by-side",
const files = []; highlight: true,
const parts = raw.split(/^(?=diff --git )/m); colorScheme: "dark",
for (const part of parts) { };
if (!part.trim()) continue; const diff2htmlUi = new Diff2HtmlUI(targetElement, diffString, configuration);
const isNew = /^new file mode/m.test(part); diff2htmlUi.draw();
const isDeleted = /^deleted file mode/m.test(part); diff2htmlUi.highlightCode();
files.push({ raw: part, isNew, isDeleted });
}
return files;
}
const files = splitDiff(diffString);
function renderAll(modifiedFormat) {
targetElement.innerHTML = "";
for (const file of files) {
const div = document.createElement("div");
targetElement.appendChild(div);
const format = (file.isNew || file.isDeleted) ? "line-by-line" : modifiedFormat;
const ui = new Diff2HtmlUI(div, file.raw, {
drawFileList: false,
matching: "lines",
outputFormat: format,
highlight: true,
colorScheme: "dark",
}, hljs);
ui.draw();
ui.highlightCode();
}
}
const saved = localStorage.getItem("sandlot-unified") === "1";
toggle.checked = saved;
renderAll(saved ? "line-by-line" : "side-by-side");
toggle.addEventListener("change", function () {
localStorage.setItem("sandlot-unified", this.checked ? "1" : "0");
renderAll(this.checked ? "line-by-line" : "side-by-side");
});
</script> </script>
</body> </body>
</html> </html>