Files
meo/package.json
T
2026-03-11 20:05:08 +00:00

681 lines
22 KiB
JSON

{
"name": "meo",
"displayName": "Markdown Editor Optimized",
"description": "An optimized markdown editor with live editing mode for VS Code.",
"version": "0.1.18",
"publisher": "vadimmelnicuk",
"private": true,
"icon": "logo.png",
"engines": {
"vscode": "^1.97.0"
},
"categories": [
"Programming Languages",
"Formatters",
"Other"
],
"keywords": [
"markdown",
"editor",
"live-edit",
"wysiwyg",
"markdown-editor",
"markdown-preview"
],
"repository": {
"type": "git",
"url": "https://github.com/vadimmelnicuk/meo.git"
},
"main": "./dist/extension.js",
"activationEvents": [
"onStartupFinished"
],
"contributes": {
"languages": [
{
"id": "markdown",
"extensions": [
".mdx",
".mdc"
]
}
],
"commands": [
{
"command": "markdownEditorOptimized.open",
"title": "Open With Markdown Editor Optimized",
"icon": "$(book)"
},
{
"command": "markdownEditorOptimized.setDefaultEditor",
"title": "Markdown Editor Optimized: Set as Default",
"icon": "$(check)"
},
{
"command": "markdownEditorOptimized.resetThemeToDefault",
"title": "Markdown Editor Optimized: Reset Theme to Default",
"icon": "$(discard)"
},
{
"command": "markdownEditorOptimized.selectTheme",
"title": "Markdown Editor Optimized: Select Theme"
},
{
"command": "markdownEditorOptimized.importTheme",
"title": "Markdown Editor Optimized: Import Theme JSON"
},
{
"command": "markdownEditorOptimized.exportTheme",
"title": "Markdown Editor Optimized: Export Theme JSON"
},
{
"command": "markdownEditorOptimized.deleteImportedTheme",
"title": "Markdown Editor Optimized: Delete Imported Theme"
},
{
"command": "markdownEditorOptimized.toggleMode",
"title": "Markdown Editor Optimized: Toggle Live/Source Mode",
"icon": "$(sync)"
},
{
"command": "markdownEditorOptimized.exportHtml",
"title": "Markdown Editor Optimized: Export as HTML",
"icon": "$(export)"
},
{
"command": "markdownEditorOptimized.exportPdf",
"title": "Markdown Editor Optimized: Export as PDF",
"icon": "$(file-pdf)"
}
],
"keybindings": [
{
"command": "markdownEditorOptimized.toggleMode",
"key": "alt+shift+m",
"when": "markdownEditorOptimized.activeEditor"
}
],
"customEditors": [
{
"viewType": "markdownEditorOptimized.editor",
"displayName": "Markdown Editor Optimized",
"selector": [
{
"filenamePattern": "*.md"
},
{
"filenamePattern": "*.markdown"
},
{
"filenamePattern": "*.mdx"
},
{
"filenamePattern": "*.mdc"
}
],
"priority": "default"
}
],
"menus": {
"explorer/context": [
{
"command": "markdownEditorOptimized.open",
"when": "resourceFilename =~ /\\.(md|markdown|mdx|mdc)$/",
"group": "navigation"
}
],
"editor/title/context": [
{
"command": "markdownEditorOptimized.open",
"when": "resourceFilename =~ /\\.(md|markdown|mdx|mdc)$/",
"group": "navigation"
}
]
},
"configurationDefaults": {
"workbench.editorAssociations": {
"*.md": "markdownEditorOptimized.editor",
"*.markdown": "markdownEditorOptimized.editor",
"*.mdx": "markdownEditorOptimized.editor",
"*.mdc": "markdownEditorOptimized.editor",
"git:/**/*.md": "default",
"git:/**/*.markdown": "default",
"git:/**/*.mdx": "default",
"git:/**/*.mdc": "default",
"git:**/*.md": "default",
"git:**/*.markdown": "default",
"git:**/*.mdx": "default",
"git:**/*.mdc": "default",
"chat-editing-text-model:/**/*.md": "default",
"chat-editing-text-model:/**/*.markdown": "default",
"chat-editing-text-model:/**/*.mdx": "default",
"chat-editing-text-model:/**/*.mdc": "default",
"chat-editing-text-model:**/*.md": "default",
"chat-editing-text-model:**/*.markdown": "default",
"chat-editing-text-model:**/*.mdx": "default",
"chat-editing-text-model:**/*.mdc": "default"
}
},
"configuration": {
"title": "Markdown Editor Optimized",
"properties": {
"markdownEditorOptimized.useAsDefault": {
"type": "boolean",
"default": true,
"order": 1,
"description": "Use Markdown Editor Optimized as the default editor for Markdown files"
},
"markdownEditorOptimized.outline.position": {
"type": "string",
"enum": [
"left",
"right"
],
"enumDescriptions": [
"Show the document outline on the left side of the editor.",
"Show the document outline on the right side of the editor."
],
"default": "right",
"order": 2,
"description": "Position of the contents outline sidebar."
},
"markdownEditorOptimized.lineNumbers.visible": {
"type": "boolean",
"default": true,
"order": 3,
"description": "Show line numbers."
},
"markdownEditorOptimized.gitChanges.visible": {
"type": "boolean",
"default": true,
"order": 4,
"description": "Show Git change indicators in the editor."
},
"markdownEditorOptimized.gitChanges.lineHighlights": {
"type": "boolean",
"default": true,
"order": 5,
"description": "Show subtle line coloring for modified lines in Source mode."
},
"markdownEditorOptimized.autoSave.enabled": {
"type": "boolean",
"default": true,
"order": 6,
"description": "Enable the auto-save while editing."
},
"markdownEditorOptimized.vimMode.enabled": {
"type": "boolean",
"default": false,
"order": 7,
"description": "Enable Vim keybindings in Source mode."
},
"markdownEditorOptimized.export.pdf.browserPath": {
"type": "string",
"default": "",
"order": 8,
"description": "Optional path to a Chrome/Edge executable used for direct PDF export. Leave empty to auto-detect."
},
"markdownEditorOptimized.imageFolder": {
"type": "string",
"default": "assets",
"order": 9,
"description": "Folder name to save pasted images (relative to workspace root)."
},
"markdownEditorOptimized.theme": {
"type": "object",
"default": {
"id": "one-monokai",
"name": "One Monokai",
"colors": {
"base01": "var(--vscode-editor-foreground)",
"base02": "#676f7d",
"base03": "#3e444d",
"base04": "#e06c75",
"base05": "#61afef",
"base06": "#66d9ef",
"base07": "#e5c07b",
"base08": "#c678dd",
"base09": "#98c379"
},
"syntaxTokens": {},
"fonts": {
"liveFont": "",
"sourceFont": "",
"liveFontSize": null,
"sourceFontSize": null,
"h1FontSize": 1.6,
"h2FontSize": 1.5,
"h3FontSize": 1.3,
"h4FontSize": 1.2,
"h5FontSize": 1.1,
"h6FontSize": 1,
"liveLineHeight": 1.5,
"sourceLineHeight": 1.5
}
},
"defaultSnippets": [
{
"label": "One Monokai theme payload",
"description": "Insert the full theme object with sensible defaults.",
"body": "^{\n\t\"id\": \"one-monokai\",\n\t\"name\": \"One Monokai\",\n\t\"colors\": {\n\t\t\"base01\": \"var(--vscode-editor-foreground)\",\n\t\t\"base02\": \"#676f7d\",\n\t\t\"base03\": \"#3e444d\",\n\t\t\"base04\": \"#e06c75\",\n\t\t\"base05\": \"#61afef\",\n\t\t\"base06\": \"#66d9ef\",\n\t\t\"base07\": \"#e5c07b\",\n\t\t\"base08\": \"#c678dd\",\n\t\t\"base09\": \"#98c379\"\n\t},\n\t\"syntaxTokens\": {},\n\t\"fonts\": {\n\t\t\"liveFont\": \"\",\n\t\t\"sourceFont\": \"\",\n\t\t\"liveFontSize\": null,\n\t\t\"sourceFontSize\": null,\n\t\t\"h1FontSize\": 1.6,\n\t\t\"h2FontSize\": 1.5,\n\t\t\"h3FontSize\": 1.3,\n\t\t\"h4FontSize\": 1.2,\n\t\t\"h5FontSize\": 1.1,\n\t\t\"h6FontSize\": 1,\n\t\t\"liveLineHeight\": 1.5,\n\t\t\"sourceLineHeight\": 1.5\n\t}\n}$0"
}
],
"description": "Theme payload containing base palette colors, optional token overrides, and font settings.",
"markdownDescription": "[Select Theme](command:markdownEditorOptimized.selectTheme) | [Import Theme](command:markdownEditorOptimized.importTheme) | [Export Theme](command:markdownEditorOptimized.exportTheme) | [Delete Imported Theme](command:markdownEditorOptimized.deleteImportedTheme) | [Reset Theme to Default](command:markdownEditorOptimized.resetThemeToDefault)",
"properties": {
"id": {
"type": "string",
"default": "one-monokai",
"description": "Unique theme identifier."
},
"name": {
"type": "string",
"default": "One Monokai (default)",
"description": "Display name for the theme."
},
"colors": {
"type": "object",
"default": {},
"properties": {
"base01": {
"type": "string",
"description": "Primary foreground color (hex/rgb/hsl/var).",
"default": "var(--vscode-editor-foreground)"
},
"base02": {
"type": "string",
"format": "color"
},
"base03": {
"type": "string",
"format": "color"
},
"base04": {
"type": "string",
"format": "color"
},
"base05": {
"type": "string",
"format": "color"
},
"base06": {
"type": "string",
"format": "color"
},
"base07": {
"type": "string",
"format": "color"
},
"base08": {
"type": "string",
"format": "color"
},
"base09": {
"type": "string",
"format": "color"
}
},
"required": [
"base02",
"base03",
"base04",
"base05",
"base06",
"base07",
"base08",
"base09"
],
"additionalProperties": false
},
"syntaxTokens": {
"type": "object",
"default": {},
"properties": {
"keyword": {
"type": "string",
"format": "color"
},
"identifier": {
"type": "string",
"format": "color"
},
"macroName": {
"type": "string",
"format": "color"
},
"variableName": {
"type": "string",
"format": "color"
},
"propertyName": {
"type": "string",
"format": "color"
},
"typeName": {
"type": "string",
"format": "color"
},
"className": {
"type": "string",
"format": "color"
},
"namespace": {
"type": "string",
"format": "color"
},
"operator": {
"type": "string",
"format": "color"
},
"operatorKeyword": {
"type": "string",
"format": "color"
},
"punctuation": {
"type": "string",
"format": "color"
},
"functionName": {
"type": "string",
"format": "color"
},
"labelName": {
"type": "string",
"format": "color"
},
"definitionFunction": {
"type": "string",
"format": "color"
},
"definedVariable": {
"type": "string",
"format": "color"
},
"number": {
"type": "string",
"format": "color"
},
"changed": {
"type": "string",
"format": "color"
},
"annotation": {
"type": "string",
"format": "color"
},
"modifier": {
"type": "string",
"format": "color"
},
"self": {
"type": "string",
"format": "color"
},
"color": {
"type": "string",
"format": "color"
},
"constant": {
"type": "string",
"format": "color"
},
"atom": {
"type": "string",
"format": "color"
},
"bool": {
"type": "string",
"format": "color"
},
"specialVariable": {
"type": "string",
"format": "color"
},
"specialString": {
"type": "string",
"format": "color"
},
"regexp": {
"type": "string",
"format": "color"
},
"string": {
"type": "string",
"format": "color"
},
"typeDefinition": {
"type": "string",
"format": "color"
},
"meta": {
"type": "string",
"format": "color"
},
"comment": {
"type": "string",
"format": "color"
},
"tagName": {
"type": "string",
"format": "color"
},
"attributeName": {
"type": "string",
"format": "color"
},
"invalid": {
"type": "string",
"format": "color"
},
"deleted": {
"type": "string",
"format": "color"
},
"monospace": {
"type": "string",
"format": "color"
},
"heading": {
"type": "string",
"format": "color"
},
"emphasis": {
"type": "string",
"format": "color"
},
"strong": {
"type": "string",
"format": "color"
},
"strikethrough": {
"type": "string",
"format": "color"
},
"quote": {
"type": "string",
"format": "color"
},
"contentSeparator": {
"type": "string",
"format": "color"
},
"link": {
"type": "string",
"format": "color"
},
"url": {
"type": "string",
"format": "color"
},
"processingInstruction": {
"type": "string",
"format": "color"
}
},
"additionalProperties": false
},
"fonts": {
"type": "object",
"default": {},
"properties": {
"liveFont": {
"type": "string",
"default": ""
},
"sourceFont": {
"type": "string",
"default": ""
},
"liveFontSize": {
"type": [
"number",
"null"
],
"default": null
},
"sourceFontSize": {
"type": [
"number",
"null"
],
"default": null
},
"h1FontSize": {
"type": [
"number",
"null"
],
"minimum": 1,
"maximum": 3,
"default": 1.6
},
"h2FontSize": {
"type": [
"number",
"null"
],
"minimum": 1,
"maximum": 3,
"default": 1.5
},
"h3FontSize": {
"type": [
"number",
"null"
],
"minimum": 1,
"maximum": 3,
"default": 1.3
},
"h4FontSize": {
"type": [
"number",
"null"
],
"minimum": 1,
"maximum": 3,
"default": 1.2
},
"h5FontSize": {
"type": [
"number",
"null"
],
"minimum": 1,
"maximum": 3,
"default": 1.1
},
"h6FontSize": {
"type": [
"number",
"null"
],
"minimum": 1,
"maximum": 3,
"default": 1
},
"liveLineHeight": {
"type": "number",
"default": 1.5,
"minimum": 1,
"maximum": 3
},
"sourceLineHeight": {
"type": "number",
"default": 1.5,
"minimum": 1,
"maximum": 3
}
},
"required": [
"liveFont",
"sourceFont",
"liveFontSize",
"sourceFontSize",
"liveLineHeight",
"sourceLineHeight"
],
"additionalProperties": false
}
},
"required": [
"id",
"name",
"colors",
"syntaxTokens",
"fonts"
],
"additionalProperties": false
}
}
}
},
"scripts": {
"install:all": "bun install && (cd webview && bun install)",
"typecheck:webview": "tsc -p webview/tsconfig.json --noEmit",
"build": "bun run build:webview && bun run build:extension",
"build:webview": "rm -rf webview/dist && mkdir -p webview/dist webview/dist/katex && bun build webview/src/index.ts --target=browser --format=esm --splitting --minify --outdir=webview/dist && cp webview/src/styles.css webview/dist/index.css && cp node_modules/mermaid/dist/mermaid.min.js webview/dist/mermaid.min.js && cp node_modules/katex/dist/katex.min.css webview/dist/katex/katex.min.css && cp -R node_modules/katex/dist/fonts webview/dist/katex/fonts",
"build:extension": "bun run build:extension:main && bun run build:extension:export-runtime && bun run build:extension:puppeteer-runtime",
"build:extension:main": "bun build src/extension.ts --target=node --format=cjs --minify --outfile=dist/extension.js -e vscode",
"build:extension:main:debug": "bun build src/extension.ts --target=node --format=cjs --minify --outfile=dist/extension.js -e vscode --sourcemap=inline",
"build:extension:export-runtime": "bun build src/export/runtime.ts --target=node --format=cjs --minify --outfile=dist/export-runtime.js",
"build:extension:puppeteer-runtime": "bun build src/export/puppeteerRuntime.ts --target=node --format=cjs --minify --outfile=dist/puppeteer-runtime.js",
"release:prep": "bun scripts/release-prep.mjs",
"release:finalize": "bun scripts/release-prep.mjs finalize",
"vscode:publish": "vsce package"
},
"dependencies": {
"@codemirror/commands": "6.8.1",
"@codemirror/lang-cpp": "^6.0.3",
"@codemirror/lang-css": "^6.3.1",
"@codemirror/lang-go": "^6.0.1",
"@codemirror/lang-html": "^6.4.11",
"@codemirror/lang-java": "^6.0.2",
"@codemirror/lang-javascript": "^6.2.4",
"@codemirror/lang-json": "^6.0.2",
"@codemirror/lang-markdown": "6.3.4",
"@codemirror/lang-python": "^6.2.1",
"@codemirror/lang-rust": "^6.0.2",
"@codemirror/lang-sql": "^6.10.0",
"@codemirror/language": "6.11.3",
"@codemirror/state": "6.5.2",
"@codemirror/view": "6.36.4",
"@lezer/highlight": "^1.2.3",
"@replit/codemirror-vim": "^6.3.0",
"@types/vscode": "^1.109.0",
"highlight.js": "^11.11.1",
"katex": "^0.16.28",
"lucide": "^0.564.0",
"markdown-it": "^14.1.0",
"markdown-it-emoji": "^3.0.0",
"mermaid": "^11.4.1",
"puppeteer-core": "^24.1.1",
"sanitize-html": "^2.17.0"
},
"devDependencies": {
"@types/markdown-it": "^14.1.2",
"@types/sanitize-html": "^2.16.0",
"typescript": "^5.9.3"
}
}