mirror of
https://github.com/harvard-edge/cs249r_book.git
synced 2026-03-11 17:49:25 -05:00
277 lines
15 KiB
JSON
277 lines
15 KiB
JSON
{
|
|
"name": "mlsysbook-workbench",
|
|
"displayName": "MLSysBook Workbench",
|
|
"description": "Build, debug, validate, and publish the ML Systems textbook",
|
|
"version": "0.1.0",
|
|
"publisher": "mlsysbook",
|
|
"icon": "resources/icon.png",
|
|
"engines": {
|
|
"vscode": "^1.85.0"
|
|
},
|
|
"categories": ["Other"],
|
|
"activationEvents": [
|
|
"onStartupFinished",
|
|
"workspaceContains:book/binder",
|
|
"onView:mlsysbook.build",
|
|
"onView:mlsysbook.debug",
|
|
"onView:mlsysbook.runs",
|
|
"onView:mlsysbook.navigator",
|
|
"onView:mlsysbook.precommit",
|
|
"onView:mlsysbook.maintenance",
|
|
"onView:mlsysbook.info",
|
|
"onView:mlsysbook.publish",
|
|
"onView:mlsysbook.config"
|
|
],
|
|
"main": "./out/extension.js",
|
|
"scripts": {
|
|
"vscode:prepublish": "npm run compile",
|
|
"compile": "tsc -p ./",
|
|
"watch": "tsc -watch -p ./",
|
|
"test:palette": "npm run compile && node ./scripts/verify-highlight-palette.js",
|
|
"test:ux-smoke": "python3 ./scripts/smoke_extension_ux.py"
|
|
},
|
|
"devDependencies": {
|
|
"@types/vscode": "^1.85.0",
|
|
"@types/node": "^20.0.0",
|
|
"typescript": "^5.3.0"
|
|
},
|
|
"contributes": {
|
|
"viewsContainers": {
|
|
"activitybar": [
|
|
{
|
|
"id": "mlsysbook",
|
|
"title": "MLSysBook",
|
|
"icon": "resources/icon.svg"
|
|
}
|
|
]
|
|
},
|
|
"views": {
|
|
"mlsysbook": [
|
|
{ "id": "mlsysbook.navigator", "name": "Chapter Navigator" },
|
|
{ "id": "mlsysbook.runs", "name": "Recent Runs" },
|
|
{ "id": "mlsysbook.build", "name": "Build" },
|
|
{ "id": "mlsysbook.debug", "name": "Debug" },
|
|
{ "id": "mlsysbook.precommit", "name": "Pre-commit / Validate / Cleanup" },
|
|
{ "id": "mlsysbook.publish", "name": "Publish" },
|
|
{ "id": "mlsysbook.info", "name": "Info & Stats" },
|
|
{ "id": "mlsysbook.maintenance", "name": "Maintenance" },
|
|
{ "id": "mlsysbook.config", "name": "Configuration" }
|
|
]
|
|
},
|
|
"snippets": [
|
|
{
|
|
"language": "markdown",
|
|
"path": "./snippets/qmd.code-snippets"
|
|
}
|
|
],
|
|
"commands": [
|
|
{ "command": "mlsysbook.buildChapterHtml", "title": "MLSysBook: Build Chapter (HTML)" },
|
|
{ "command": "mlsysbook.buildChapterPdf", "title": "MLSysBook: Build Chapter (PDF)" },
|
|
{ "command": "mlsysbook.buildChapterEpub", "title": "MLSysBook: Build Chapter (EPUB)" },
|
|
{ "command": "mlsysbook.previewChapter", "title": "MLSysBook: Preview Chapter" },
|
|
{ "command": "mlsysbook.buildVolumeHtml", "title": "MLSysBook: Build Full Volume (HTML)" },
|
|
{ "command": "mlsysbook.buildVolumePdf", "title": "MLSysBook: Build Full Volume (PDF)" },
|
|
{ "command": "mlsysbook.buildVolumeEpub", "title": "MLSysBook: Build Full Volume (EPUB)" },
|
|
{ "command": "mlsysbook.buildFullVolume", "title": "MLSysBook: Build Full Volume..." },
|
|
{ "command": "mlsysbook.buildSelectedChapters", "title": "MLSysBook: Build Chapters..." },
|
|
{ "command": "mlsysbook.resetQuartoConfig", "title": "Reset Quarto Config" },
|
|
{ "command": "mlsysbook.debugAllChapters", "title": "MLSysBook: Build All Chapters (Sequential)" },
|
|
{ "command": "mlsysbook.testAllChaptersParallel", "title": "MLSysBook: Build All Chapters (Parallel)" },
|
|
{ "command": "mlsysbook.cancelParallelSession", "title": "MLSysBook: Cancel Current Parallel Session" },
|
|
{ "command": "mlsysbook.rerunFailedParallel", "title": "MLSysBook: Rerun Failed Chapters" },
|
|
{ "command": "mlsysbook.quickBuildCurrentChapterPdf", "title": "MLSysBook: Quick Build Current Chapter (PDF)" },
|
|
{ "command": "mlsysbook.renameLabelReferences", "title": "MLSysBook: Rename Label and References" },
|
|
{ "command": "mlsysbook.addSectionIds", "title": "MLSysBook: Add Missing Section IDs" },
|
|
{ "command": "mlsysbook.verifySectionIds", "title": "MLSysBook: Verify Section IDs" },
|
|
{ "command": "mlsysbook.validateCrossReferences", "title": "MLSysBook: Validate Cross-References" },
|
|
{ "command": "mlsysbook.historyRerunSession", "title": "MLSysBook: Rerun Run Session" },
|
|
{ "command": "mlsysbook.historyRerunFailed", "title": "MLSysBook: Rerun Failed Chapters (Run Session)" },
|
|
{ "command": "mlsysbook.historyOpenOutput", "title": "MLSysBook: Open Run Output" },
|
|
{ "command": "mlsysbook.historyOpenFailedWorktree", "title": "MLSysBook: Open Failed Worktree" },
|
|
{ "command": "mlsysbook.historyOpenFailureLocation", "title": "MLSysBook: Open Failure Location" },
|
|
{ "command": "mlsysbook.precommitRunAll", "title": "MLSysBook: Run All Pre-commit Hooks" },
|
|
{ "command": "mlsysbook.precommitRunHook", "title": "MLSysBook: Run Pre-commit Hook" },
|
|
{ "command": "mlsysbook.precommitRunHookCurrentFile", "title": "MLSysBook: Run Pre-commit Hook (Current File)" },
|
|
{ "command": "mlsysbook.precommitRunFixersCurrentFile", "title": "MLSysBook: Run QMD Fixers (Current File)" },
|
|
{ "command": "mlsysbook.runAction", "title": "MLSysBook: Run Action" },
|
|
{ "command": "mlsysbook.cleanArtifacts", "title": "MLSysBook: Clean Build Artifacts" },
|
|
{ "command": "mlsysbook.doctor", "title": "MLSysBook: Doctor (Health Check)" },
|
|
{ "command": "mlsysbook.buildGlossary", "title": "MLSysBook: Build Global Glossary" },
|
|
{ "command": "mlsysbook.compressImages", "title": "MLSysBook: Compress Images" },
|
|
{ "command": "mlsysbook.repoHealth", "title": "MLSysBook: Repo Health Check" },
|
|
{ "command": "mlsysbook.contextBuildHtml", "title": "MLSysBook: Build as HTML" },
|
|
{ "command": "mlsysbook.contextBuildPdf", "title": "MLSysBook: Build as PDF" },
|
|
{ "command": "mlsysbook.contextBuildEpub", "title": "MLSysBook: Build as EPUB" },
|
|
{ "command": "mlsysbook.contextPreview", "title": "MLSysBook: Preview" },
|
|
{ "command": "mlsysbook.contextDebugSections", "title": "MLSysBook: Debug Sections" },
|
|
{ "command": "mlsysbook.openNavigatorLocation", "title": "MLSysBook: Open Navigator Location" },
|
|
{ "command": "mlsysbook.refreshNavigator", "title": "MLSysBook: Refresh Chapter Navigator", "icon": "$(refresh)" },
|
|
{ "command": "mlsysbook.navigatorExpandAll", "title": "MLSysBook: Navigator Expand All", "icon": "$(add)" },
|
|
{ "command": "mlsysbook.navigatorCollapseAll", "title": "MLSysBook: Navigator Collapse All", "icon": "$(remove)" },
|
|
{ "command": "mlsysbook.refreshRunHistory", "title": "MLSysBook: Refresh Run History", "icon": "$(refresh)" },
|
|
{ "command": "mlsysbook.refreshBuildTree", "title": "Refresh", "icon": "$(refresh)" },
|
|
{ "command": "mlsysbook.rerunLastCommand", "title": "MLSysBook: Rerun Last Command", "icon": "$(history)" },
|
|
{ "command": "mlsysbook.rerunLastCommandRaw", "title": "MLSysBook: Rerun Last Command (Raw Terminal)" },
|
|
{ "command": "mlsysbook.revealTerminal", "title": "MLSysBook: Reveal Build Terminal", "icon": "$(terminal)" },
|
|
{ "command": "mlsysbook.historyRerunCommand", "title": "MLSysBook: Rerun Command (Recent Runs)" },
|
|
{ "command": "mlsysbook.openLastFailureDetails", "title": "MLSysBook: Open Last Failure Details" },
|
|
{ "command": "mlsysbook.setChapterOrderSource", "title": "Set Chapter Order Source" },
|
|
{ "command": "mlsysbook.setQmdVisualPreset", "title": "Set QMD Visual Preset" },
|
|
{ "command": "mlsysbook.openSettings", "title": "Open Extension Settings" },
|
|
{ "command": "mlsysbook.showHealthDetails", "title": "MLSysBook: Show Health Details" }
|
|
],
|
|
"configuration": {
|
|
"title": "MLSysBook Workbench",
|
|
"properties": {
|
|
"mlsysbook.chapterOrderSource": {
|
|
"type": "string",
|
|
"enum": ["auto", "pdf", "epub", "html", "pdfCopyedit"],
|
|
"default": "auto",
|
|
"description": "Source file preference for chapter ordering in Build/Debug lists. Auto tries PDF first, then EPUB, then HTML, then PDF copyedit."
|
|
},
|
|
"mlsysbook.revealTerminalOnFailure": {
|
|
"type": "boolean",
|
|
"default": true,
|
|
"description": "Show a Reveal Terminal action when a focused run fails."
|
|
},
|
|
"mlsysbook.parallelDebugWorkers": {
|
|
"type": "number",
|
|
"default": 4,
|
|
"minimum": 1,
|
|
"maximum": 16,
|
|
"description": "Default worker count for parallel chapter debug jobs."
|
|
},
|
|
"mlsysbook.keepFailedWorktrees": {
|
|
"type": "boolean",
|
|
"default": true,
|
|
"description": "Keep temporary worktrees for failed parallel debug jobs for manual inspection."
|
|
},
|
|
"mlsysbook.parallelDebugRoot": {
|
|
"type": "string",
|
|
"default": ".mlsysbook/worktrees",
|
|
"description": "Relative directory under the repo root where parallel debug worktrees are created."
|
|
},
|
|
"mlsysbook.enableQmdChunkHighlight": {
|
|
"type": "boolean",
|
|
"default": true,
|
|
"description": "Apply subtle editor background highlighting for QMD chunks (callouts, divs, fenced code, and labeled figure/table/listing lines)."
|
|
},
|
|
"mlsysbook.qmdVisualPreset": {
|
|
"type": "string",
|
|
"enum": ["subtle", "balanced", "highContrast"],
|
|
"default": "balanced",
|
|
"description": "Visual intensity preset for QMD highlighting (inline refs, label definitions, and structural region emphasis)."
|
|
},
|
|
"mlsysbook.highlightInlineReferences": {
|
|
"type": "boolean",
|
|
"default": true,
|
|
"description": "Highlight inline @references in QMD prose (including @fig-/@tbl-/@sec- style references)."
|
|
},
|
|
"mlsysbook.highlightLabelDefinitions": {
|
|
"type": "boolean",
|
|
"default": true,
|
|
"description": "Highlight label definition patterns like {#fig-...} and #| label: fig-...."
|
|
},
|
|
"mlsysbook.highlightCalloutBackground": {
|
|
"type": "boolean",
|
|
"default": false,
|
|
"description": "Apply a background color to callout and div block regions. The ::: fence markers are controlled separately by highlightDivFenceMarkers."
|
|
},
|
|
"mlsysbook.highlightSectionHeaders": {
|
|
"type": "boolean",
|
|
"default": true,
|
|
"description": "Highlight section headers (## to ######) with depth-based background intensity."
|
|
},
|
|
"mlsysbook.highlightTables": {
|
|
"type": "boolean",
|
|
"default": false,
|
|
"description": "Highlight markdown pipe table regions with a background color. Table label definitions ({#tbl-...}) and @tbl- references are always colored regardless of this setting."
|
|
},
|
|
"mlsysbook.highlightFootnotes": {
|
|
"type": "boolean",
|
|
"default": true,
|
|
"description": "Highlight footnote references and definition markers (e.g. [^fn-...] and [^fn-...]:)."
|
|
},
|
|
"mlsysbook.highlightFootnoteBlockBackground": {
|
|
"type": "boolean",
|
|
"default": false,
|
|
"description": "Highlight footnote definition block backgrounds. Disabled by default to reduce visual noise."
|
|
},
|
|
"mlsysbook.highlightInlinePython": {
|
|
"type": "boolean",
|
|
"default": true,
|
|
"description": "Highlight inline Python variable references (`{python} var_name`) with a distinctive rose/pink color."
|
|
},
|
|
"mlsysbook.showInlinePythonValues": {
|
|
"type": "boolean",
|
|
"default": true,
|
|
"description": "Show resolved Python variable values as dimmed ghost text after inline references (e.g., `{python} google_search_b_str` → 8.5). Requires python3 with the book's dependencies."
|
|
},
|
|
"mlsysbook.showInlinePythonCodeLens": {
|
|
"type": "boolean",
|
|
"default": true,
|
|
"description": "Show a CodeLens above Python code blocks displaying all exported variable values."
|
|
},
|
|
"mlsysbook.autoFoldOnOpen": {
|
|
"type": "boolean",
|
|
"default": true,
|
|
"description": "Automatically fold configured QMD block kinds when opening a chapter file."
|
|
},
|
|
"mlsysbook.autoFoldKinds": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string",
|
|
"enum": ["tikz", "fencedCode", "divs"]
|
|
},
|
|
"default": ["tikz"],
|
|
"description": "Controls which block kinds are auto-folded on open. Default folds TikZ regions only."
|
|
},
|
|
"mlsysbook.navigatorFollowCursor": {
|
|
"type": "boolean",
|
|
"default": true,
|
|
"description": "Automatically reveal the current section in Chapter Navigator as cursor moves through a QMD file."
|
|
},
|
|
"mlsysbook.navigatorClickToOpen": {
|
|
"type": "boolean",
|
|
"default": false,
|
|
"description": "Open editor location when clicking a navigator item. Keep disabled to avoid accidental jumps while browsing."
|
|
},
|
|
"mlsysbook.navigatorVisibleEntryKinds": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string",
|
|
"enum": ["figures", "tables", "listings", "equations", "callouts"]
|
|
},
|
|
"default": ["figures", "tables", "listings", "equations", "callouts"],
|
|
"description": "Content types shown in Chapter Navigator under each section (figures, tables, code listings, equations, callouts). All are shown by default."
|
|
}
|
|
}
|
|
},
|
|
"menus": {
|
|
"explorer/context": [
|
|
{ "command": "mlsysbook.contextBuildHtml", "when": "resourceExtname == .qmd", "group": "mlsysbook@1" },
|
|
{ "command": "mlsysbook.contextBuildPdf", "when": "resourceExtname == .qmd", "group": "mlsysbook@2" },
|
|
{ "command": "mlsysbook.contextBuildEpub", "when": "resourceExtname == .qmd", "group": "mlsysbook@3" },
|
|
{ "command": "mlsysbook.contextPreview", "when": "resourceExtname == .qmd", "group": "mlsysbook@4" },
|
|
{ "command": "mlsysbook.contextDebugSections", "when": "resourceExtname == .qmd", "group": "mlsysbook@5" }
|
|
],
|
|
"view/title": [
|
|
{ "command": "mlsysbook.refreshBuildTree", "when": "view == mlsysbook.build", "group": "navigation@1" },
|
|
{ "command": "mlsysbook.rerunLastCommand", "when": "view == mlsysbook.build", "group": "navigation@2" },
|
|
{ "command": "mlsysbook.revealTerminal", "when": "view == mlsysbook.build", "group": "navigation@3" },
|
|
{ "command": "mlsysbook.refreshNavigator", "when": "view == mlsysbook.navigator", "group": "navigation@1" },
|
|
{ "command": "mlsysbook.navigatorExpandAll", "when": "view == mlsysbook.navigator", "group": "navigation@2" },
|
|
{ "command": "mlsysbook.navigatorCollapseAll", "when": "view == mlsysbook.navigator", "group": "navigation@3" },
|
|
{ "command": "mlsysbook.refreshRunHistory", "when": "view == mlsysbook.runs", "group": "navigation" },
|
|
{ "command": "mlsysbook.resetQuartoConfig", "when": "view == mlsysbook.config", "group": "navigation@0" },
|
|
{ "command": "mlsysbook.setChapterOrderSource", "when": "view == mlsysbook.config", "group": "navigation@1" },
|
|
{ "command": "mlsysbook.setQmdVisualPreset", "when": "view == mlsysbook.config", "group": "navigation@2" },
|
|
{ "command": "mlsysbook.openSettings", "when": "view == mlsysbook.config", "group": "navigation@3" }
|
|
],
|
|
"editor/context": [
|
|
{ "command": "mlsysbook.renameLabelReferences", "when": "resourceExtname == .qmd", "group": "mlsysbook@1" }
|
|
]
|
|
}
|
|
}
|
|
}
|