├── .editorconfig ├── .gitignore ├── .vscode ├── launch.json └── settings.json ├── .vscodeignore ├── CHANGELOG.md ├── LICENSE ├── README.md ├── docs └── example.png ├── index.js ├── jsconfig.json ├── package-lock.json ├── package.json └── resources ├── logo.ai └── logo.png /.editorconfig: -------------------------------------------------------------------------------- 1 | [*] 2 | spaces = 4 3 | 4 | [*.json] 5 | spaces = 2 -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | out 3 | node_modules 4 | *.log -------------------------------------------------------------------------------- /.vscode/launch.json: -------------------------------------------------------------------------------- 1 | // A launch configuration that compiles the extension and then opens it inside a new window 2 | { 3 | "version": "0.1.0", 4 | "configurations": [ 5 | { 6 | "name": "Launch Extension", 7 | "type": "extensionHost", 8 | "request": "launch", 9 | "runtimeExecutable": "${execPath}", 10 | "args": ["--extensionDevelopmentPath=${workspaceRoot}" ], 11 | "stopOnEntry": false 12 | } 13 | ] 14 | } 15 | -------------------------------------------------------------------------------- /.vscode/settings.json: -------------------------------------------------------------------------------- 1 | // Place your settings in this file to overwrite default and user settings. 2 | { 3 | "files.exclude": { 4 | "out": false // set this to true to hide the "out" folder with the compiled JS files 5 | }, 6 | "search.exclude": { 7 | "out": true // set this to false to include "out" folder in search results 8 | } 9 | } -------------------------------------------------------------------------------- /.vscodeignore: -------------------------------------------------------------------------------- 1 | .vscode/** 2 | .vscode-test/** 3 | out/test/** 4 | test/** 5 | src/** 6 | **/*.map 7 | .gitignore 8 | tsconfig.json 9 | vsc-extension-quickstart.md 10 | -------------------------------------------------------------------------------- /CHANGELOG.md: -------------------------------------------------------------------------------- 1 | # Change Log 2 | 3 | ## 0.1.0 - November 2, 2019 4 | - Use current VS Code theme by default. Thanks @usernamehw! 5 | - Don't override markdown code block background. 6 | 7 | ## 0.0.1 - September 10, 2019 8 | - Initial release -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) Matt Bierner 2 | 3 | All rights reserved. 4 | 5 | MIT License 6 | 7 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation 8 | files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, 9 | modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software 10 | is furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 13 | 14 | THE SOFTWARE IS PROVIDED *AS IS*, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 15 | OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS 16 | BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT 17 | OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | [![](https://vsmarketplacebadge.apphb.com/version/bierner.markdown-Shiki.svg)](https://marketplace.visualstudio.com/items?itemName=bierner.markdown-Shiki) 2 | 3 | Uses [Shiki](https://github.com/octref/shiki) for code highlighting in VS Code's builtin markdown preview. This makes the preview's colors better match what you see in VS Code text editor. 4 | 5 | ![](https://github.com/mjbvz/vscode-markdown-shiki/raw/master/docs/example.png) 6 | 7 | # Configuration 8 | 9 | ### `markdownShiki.theme` 10 | The color theme to use in the preview: 11 | 12 | - `"abyss"` 13 | - `"dark_plus"` (default) 14 | - `"dark_vs"` 15 | - `"hc_black"` 16 | - `"kimbie_dark"` 17 | - `"light_plus"` 18 | - `"light_vs"` 19 | - `"monokai"` 20 | - `"monokai_dimmed"` 21 | - `"quietlight"` 22 | - `"red"` 23 | - `"solarized_dark"` 24 | - `"solarized_light"` 25 | - `"Material-Theme-Darker-High-Contrast"` 26 | - `"Material-Theme-Darker"` 27 | - `"Material-Theme-Default-High-Contrast"` 28 | - `"Material-Theme-Default"` 29 | - `"Material-Theme-Lighter-High-Contrast"` 30 | - `"Material-Theme-Lighter"` 31 | - `"Material-Theme-Ocean-High-Contrast"` 32 | - `"Material-Theme-Ocean"` 33 | - `"Material-Theme-Palenight-High-Contrast"` 34 | - `"Material-Theme-Palenight"` 35 | - `"nord"` 36 | - `"min-light"` 37 | - `"min-dark"` 38 | - `"white"` 39 | - `"white-night"` 40 | - `"zeit` 41 | 42 | -------------------------------------------------------------------------------- /docs/example.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mjbvz/vscode-markdown-shiki/f5f68108ccc197a35e501dbe6274dd75853e81b8/docs/example.png -------------------------------------------------------------------------------- /index.js: -------------------------------------------------------------------------------- 1 | "use strict" 2 | 3 | const vscode = require('vscode'); 4 | const shiki = require('shiki'); 5 | const path = require('path'); 6 | 7 | module.exports.activate = (context) => { 8 | vscode.workspace.onDidChangeConfiguration((change) => { 9 | if (change.affectsConfiguration('markdownShiki.theme') || 10 | change.affectsConfiguration('workbench.colorTheme')) { 11 | applyHighlighter(); 12 | } 13 | }, undefined, context.subscriptions); 14 | 15 | // Default thems use `include` option that shiki doesn't support 16 | const defaultThemesMap = { 17 | 'Visual Studio Light': 'light_vs', 18 | 'Default Light+': 'light_plus', 19 | 'Visual Studio Dark': 'dark_vs', 20 | 'Default Dark+': 'dark_plus' 21 | } 22 | 23 | // Create mutable closure var that we can return to markdown-it but override at later points 24 | let doHighlight = (_code, _lang) => ''; 25 | let defaultHighlight = (_code, _lang) => ''; 26 | 27 | return { 28 | extendMarkdownIt(md) { 29 | defaultHighlight = md.options.highlight; 30 | md.options.highlight = (code, lang) => doHighlight(code, lang); 31 | applyHighlighter(); 32 | return md; 33 | } 34 | } 35 | 36 | function applyHighlighter() { 37 | const configTheme = vscode.workspace.getConfiguration('markdownShiki').get('theme'); 38 | const currentThemeName = vscode.workspace.getConfiguration('workbench').get('colorTheme'); 39 | let theme = configTheme; 40 | 41 | if (theme === null) { 42 | if (defaultThemesMap[currentThemeName]) { 43 | theme = defaultThemesMap[currentThemeName]; 44 | } else { 45 | const colorThemePath = getCurrentThemePath(currentThemeName); 46 | if (colorThemePath) { 47 | theme = shiki.loadTheme(colorThemePath); 48 | theme.name = 'random';// Shiki doesn't work without name and defaults to `Nord` 49 | } 50 | } 51 | } 52 | 53 | if (typeof theme === 'string') { 54 | theme = shiki.getTheme(theme); 55 | } 56 | 57 | theme.bg = ' '; // Don't set bg so that we use the preview's standard styling 58 | 59 | shiki.getHighlighter({ theme }).then(highlighter => { 60 | // The preview will already have been rendered at this point so refresh it 61 | vscode.commands.executeCommand('markdown.preview.refresh'); 62 | 63 | doHighlight = (code, lang) => { 64 | try { 65 | const languageId = getLanguageId(lang); 66 | if (languageId) { 67 | return highlighter.codeToHtml(code, languageId); 68 | } 69 | } catch (err) { 70 | // noop 71 | } 72 | 73 | // Fallback to default highligher 74 | return defaultHighlight(code, lang); 75 | }; 76 | }) 77 | } 78 | function getCurrentThemePath(themeName) { 79 | for (const ext of vscode.extensions.all) { 80 | const themes = ext.packageJSON.contributes && ext.packageJSON.contributes.themes; 81 | if (!themes) continue; 82 | const theme = themes.find(theme => theme.label === themeName || theme.id === themeName); 83 | if (theme) { 84 | return path.join(ext.extensionPath, theme.path); 85 | } 86 | } 87 | } 88 | } 89 | 90 | function getLanguageId(inId) { 91 | for (const language of languages) { 92 | if (inId === language.name || language.identifiers.some(langId => inId === langId)) { 93 | return language.language; 94 | } 95 | } 96 | return undefined; 97 | }; 98 | 99 | // Taken from https://github.com/Microsoft/vscode-markdown-tm-grammar/blob/master/build.js 100 | const languages = [ 101 | { name: 'css', language: 'css', identifiers: ['css', 'css.erb'], source: 'source.css' }, 102 | { name: 'basic', language: 'html', identifiers: ['html', 'htm', 'shtml', 'xhtml', 'inc', 'tmpl', 'tpl'], source: 'text.html.basic' }, 103 | { name: 'ini', language: 'ini', identifiers: ['ini', 'conf'], source: 'source.ini' }, 104 | { name: 'java', language: 'java', identifiers: ['java', 'bsh'], source: 'source.java' }, 105 | { name: 'lua', language: 'lua', identifiers: ['lua'], source: 'source.lua' }, 106 | { name: 'makefile', language: 'makefile', identifiers: ['Makefile', 'makefile', 'GNUmakefile', 'OCamlMakefile'], source: 'source.makefile' }, 107 | { name: 'perl', language: 'perl', identifiers: ['perl', 'pl', 'pm', 'pod', 't', 'PL', 'psgi', 'vcl'], source: 'source.perl' }, 108 | { name: 'r', language: 'r', identifiers: ['R', 'r', 's', 'S', 'Rprofile'], source: 'source.r' }, 109 | { name: 'ruby', language: 'ruby', identifiers: ['ruby', 'rb', 'rbx', 'rjs', 'Rakefile', 'rake', 'cgi', 'fcgi', 'gemspec', 'irbrc', 'Capfile', 'ru', 'prawn', 'Cheffile', 'Gemfile', 'Guardfile', 'Hobofile', 'Vagrantfile', 'Appraisals', 'Rantfile', 'Berksfile', 'Berksfile.lock', 'Thorfile', 'Puppetfile'], source: 'source.ruby' }, 110 | // Left to its own devices, the PHP grammar will match HTML as a combination of operators 111 | // and constants. Therefore, HTML must take precedence over PHP in order to get proper 112 | // syntax highlighting. 113 | { name: 'php', language: 'php', identifiers: ['php', 'php3', 'php4', 'php5', 'phpt', 'phtml', 'aw', 'ctp'], source: ['text.html.basic', 'source.php'] }, 114 | { name: 'sql', language: 'sql', identifiers: ['sql', 'ddl', 'dml'], source: 'source.sql' }, 115 | { name: 'vs_net', language: 'vs_net', identifiers: ['vb'], source: 'source.asp.vb.net' }, 116 | { name: 'xml', language: 'xml', identifiers: ['xml', 'xsd', 'tld', 'jsp', 'pt', 'cpt', 'dtml', 'rss', 'opml'], source: 'text.xml' }, 117 | { name: 'xsl', language: 'xsl', identifiers: ['xsl', 'xslt'], source: 'text.xml.xsl' }, 118 | { name: 'yaml', language: 'yaml', identifiers: ['yaml', 'yml'], source: 'source.yaml' }, 119 | { name: 'dosbatch', language: 'dosbatch', identifiers: ['bat', 'batch'], source: 'source.batchfile' }, 120 | { name: 'clojure', language: 'clojure', identifiers: ['clj', 'cljs', 'clojure'], source: 'source.clojure' }, 121 | { name: 'coffee', language: 'coffee', identifiers: ['coffee', 'Cakefile', 'coffee.erb'], source: 'source.coffee' }, 122 | { name: 'c', language: 'c', identifiers: ['c', 'h'], source: 'source.c' }, 123 | { name: 'cpp', language: 'cpp', identifiers: ['cpp', 'c\\+\\+', 'cxx'], source: 'source.cpp' }, 124 | { name: 'diff', language: 'diff', identifiers: ['patch', 'diff', 'rej'], source: 'source.diff' }, 125 | { name: 'dockerfile', language: 'dockerfile', identifiers: ['dockerfile', 'Dockerfile'], source: 'source.dockerfile' }, 126 | { name: 'git_commit', identifiers: ['COMMIT_EDITMSG', 'MERGE_MSG'], source: 'text.git-commit' }, 127 | { name: 'git_rebase', identifiers: ['git-rebase-todo'], source: 'text.git-rebase' }, 128 | { name: 'go', language: 'go', identifiers: ['go', 'golang'], source: 'source.go' }, 129 | { name: 'groovy', language: 'groovy', identifiers: ['groovy', 'gvy'], source: 'source.groovy' }, 130 | { name: 'pug', language: 'pug', identifiers: ['jade', 'pug'], source: 'text.pug' }, 131 | 132 | { name: 'js', language: 'javascript', identifiers: ['js', 'jsx', 'javascript', 'es6', 'mjs'], source: 'source.js' }, 133 | { name: 'js_regexp', identifiers: ['regexp'], source: 'source.js.regexp' }, 134 | { name: 'json', language: 'json', identifiers: ['json', 'json5', 'sublime-settings', 'sublime-menu', 'sublime-keymap', 'sublime-mousemap', 'sublime-theme', 'sublime-build', 'sublime-project', 'sublime-completions'], source: 'source.json' }, 135 | { name: 'jsonc', language: 'jsonc', identifiers: ['jsonc'], source: 'source.json.comments' }, 136 | { name: 'less', language: 'less', identifiers: ['less'], source: 'source.css.less' }, 137 | { name: 'objc', language: 'objc', identifiers: ['objectivec', 'objective-c', 'mm', 'objc', 'obj-c', 'm', 'h'], source: 'source.objc' }, 138 | { name: 'swift', language: 'swift', identifiers: ['swift'], source: 'source.swift' }, 139 | { name: 'scss', language: 'scss', identifiers: ['scss'], source: 'source.css.scss' }, 140 | 141 | { name: 'perl6', language: 'perl6', identifiers: ['perl6', 'p6', 'pl6', 'pm6', 'nqp'], source: 'source.perl.6' }, 142 | { name: 'powershell', language: 'powershell', identifiers: ['powershell', 'ps1', 'psm1', 'psd1'], source: 'source.powershell' }, 143 | { name: 'python', language: 'python', identifiers: ['python', 'py', 'py3', 'rpy', 'pyw', 'cpy', 'SConstruct', 'Sconstruct', 'sconstruct', 'SConscript', 'gyp', 'gypi'], source: 'source.python' }, 144 | { name: 'regexp_python', identifiers: ['re'], source: 'source.regexp.python' }, 145 | { name: 'rust', language: 'rust', identifiers: ['rust', 'rs'], source: 'source.rust' }, 146 | { name: 'scala', language: 'scala', identifiers: ['scala', 'sbt'], source: 'source.scala' }, 147 | { name: 'shell', language: 'shellscript', identifiers: ['shell', 'sh', 'bash', 'zsh', 'bashrc', 'bash_profile', 'bash_login', 'profile', 'bash_logout', '.textmate_init'], source: 'source.shell' }, 148 | { name: 'ts', language: 'typescript', identifiers: ['typescript', 'ts'], source: 'source.ts' }, 149 | { name: 'tsx', language: 'typescriptreact', identifiers: ['tsx'], source: 'source.tsx' }, 150 | { name: 'csharp', language: 'csharp', identifiers: ['cs', 'csharp', 'c#'], source: 'source.cs' }, 151 | { name: 'fsharp', language: 'fsharp', identifiers: ['fs', 'fsharp', 'f#'], source: 'source.fsharp' }, 152 | { name: 'dart', language: 'dart', identifiers: ['dart'], source: 'source.dart' }, 153 | { name: 'handlebars', language: 'handlebars', identifiers: ['handlebars', 'hbs'], source: 'text.html.handlebars' }, 154 | { name: 'markdown', language: 'markdown', identifiers: ['markdown', 'md'], source: 'text.html.markdown' }, 155 | ]; 156 | -------------------------------------------------------------------------------- /jsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "checkJs": true, 4 | "lib": [ 5 | "es6" 6 | ] 7 | }, 8 | "exclude": [ 9 | "node_modules" 10 | ] 11 | } -------------------------------------------------------------------------------- /package-lock.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "markdown-shiki", 3 | "version": "0.1.1", 4 | "lockfileVersion": 1, 5 | "requires": true, 6 | "dependencies": { 7 | "@types/node": { 8 | "version": "11.13.20", 9 | "resolved": "https://registry.npmjs.org/@types/node/-/node-11.13.20.tgz", 10 | "integrity": "sha512-JE0UpLWZTV1sGcaj0hN+Q0760OEjpgyFJ06DOMVW6qKBducKdJQaIw0TGL6ccj7VXRduIOHLWQi+tHwulZJHVQ==", 11 | "dev": true 12 | }, 13 | "@types/vscode": { 14 | "version": "1.38.0", 15 | "resolved": "https://registry.npmjs.org/@types/vscode/-/vscode-1.38.0.tgz", 16 | "integrity": "sha512-aGo8LQ4J1YF0T9ORuCO+bhQ5sGR1MXa7VOyOdEP685se3wyQWYUExcdiDi6rvaK61KUwfzzA19JRLDrUbDl7BQ==", 17 | "dev": true 18 | }, 19 | "json5": { 20 | "version": "2.1.1", 21 | "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.1.tgz", 22 | "integrity": "sha512-l+3HXD0GEI3huGq1njuqtzYK8OYJyXMkOLtQ53pjWh89tvWS2h6l+1zMkYWqlb57+SiQodKZyvMEFb2X+KrFhQ==", 23 | "requires": { 24 | "minimist": "^1.2.0" 25 | } 26 | }, 27 | "lru-cache": { 28 | "version": "4.1.5", 29 | "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", 30 | "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", 31 | "requires": { 32 | "pseudomap": "^1.0.2", 33 | "yallist": "^2.1.2" 34 | } 35 | }, 36 | "minimist": { 37 | "version": "1.2.5", 38 | "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", 39 | "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" 40 | }, 41 | "nan": { 42 | "version": "2.14.0", 43 | "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.0.tgz", 44 | "integrity": "sha512-INOFj37C7k3AfaNTtX8RhsTw7qRy7eLET14cROi9+5HAVbbHuIWUHEauBv5qT4Av2tWasiTY1Jw6puUNqRJXQg==" 45 | }, 46 | "onigasm": { 47 | "version": "2.2.2", 48 | "resolved": "https://registry.npmjs.org/onigasm/-/onigasm-2.2.2.tgz", 49 | "integrity": "sha512-TQTMk+RmPYx4sGzNAgV0q7At7PABDNHVqZBlC4aRXHg8hpCdemLOF0qq0gUCjwUbc7mhJMBOo3XpTRYwyr45Gw==", 50 | "requires": { 51 | "lru-cache": "^4.1.1" 52 | } 53 | }, 54 | "oniguruma": { 55 | "version": "7.2.0", 56 | "resolved": "https://registry.npmjs.org/oniguruma/-/oniguruma-7.2.0.tgz", 57 | "integrity": "sha512-bh+ZLdykY1sdIx8jBp2zpLbVFDBc3XmKH4Ceo2lijNaN1WhEqtnpqFlmtCbRuDB17nJ58RAUStVwfW8e8uEbnA==", 58 | "requires": { 59 | "nan": "^2.14.0" 60 | } 61 | }, 62 | "pseudomap": { 63 | "version": "1.0.2", 64 | "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", 65 | "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=" 66 | }, 67 | "shiki": { 68 | "version": "0.1.6", 69 | "resolved": "https://registry.npmjs.org/shiki/-/shiki-0.1.6.tgz", 70 | "integrity": "sha512-qG/T0bqNxcLM6nvoX0MZKjAzU14P6j5KutFhjCvnNHGfDmH1Z0VL/KQ/kMmtcGRlXfnlaMBXxniMnGGE7DhJRg==", 71 | "requires": { 72 | "onigasm": "^2.2.1", 73 | "shiki-languages": "^0.1.6", 74 | "shiki-themes": "^0.1.5", 75 | "vscode-textmate": "git+https://github.com/octref/vscode-textmate.git" 76 | } 77 | }, 78 | "shiki-languages": { 79 | "version": "0.1.6", 80 | "resolved": "https://registry.npmjs.org/shiki-languages/-/shiki-languages-0.1.6.tgz", 81 | "integrity": "sha512-rMu+z97UCPKMtPBkzLBItReawXnlOgXZmELFwI/s3ATxd9VzJgSQTtQW/hmW5EYCrzF2kAUjoOnn+50/MPWjgQ==", 82 | "requires": { 83 | "vscode-textmate": "git+https://github.com/octref/vscode-textmate.git" 84 | } 85 | }, 86 | "shiki-themes": { 87 | "version": "0.1.5", 88 | "resolved": "https://registry.npmjs.org/shiki-themes/-/shiki-themes-0.1.5.tgz", 89 | "integrity": "sha512-gti5xOV8f2R3EL1ULcpqarOHCNgnGds2saWc7k40ZBOtQBrQQ8na+hKwXASWZu7rL9+/RCr2z+Lf+UR7C71kRA==", 90 | "requires": { 91 | "json5": "^2.1.0", 92 | "vscode-textmate": "git+https://github.com/octref/vscode-textmate.git" 93 | } 94 | }, 95 | "vscode-textmate": { 96 | "version": "git+https://github.com/octref/vscode-textmate.git#e65aabe2227febda7beaad31dd0fca1228c5ddf3", 97 | "from": "git+https://github.com/octref/vscode-textmate.git" 98 | }, 99 | "yallist": { 100 | "version": "2.1.2", 101 | "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", 102 | "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=" 103 | } 104 | } 105 | } 106 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "markdown-shiki", 3 | "version": "0.1.1", 4 | "displayName": "Markdown Preview VS Code Highlighting", 5 | "description": "Use VS Code's highlighter for code blocks in the built-in markdown preview.", 6 | "icon": "resources/logo.png", 7 | "keywords": [ 8 | "markdown", 9 | "highlighting", 10 | "preview", 11 | "shiki", 12 | "code", 13 | "code block" 14 | ], 15 | "publisher": "bierner", 16 | "license": "MIT", 17 | "repository": { 18 | "url": "https://github.com/mjbvz/vscode-markdown-shiki.git" 19 | }, 20 | "bugs": { 21 | "url": "https://github.com/mjbvz/vscode-markdown-shiki/issues" 22 | }, 23 | "engines": { 24 | "vscode": "^1.38.0" 25 | }, 26 | "activationEvents": [], 27 | "main": "./index.js", 28 | "categories": [ 29 | "Other" 30 | ], 31 | "contributes": { 32 | "markdown.markdownItPlugins": true, 33 | "configuration": { 34 | "title": "Markdown Shiki", 35 | "properties": { 36 | "markdownShiki.theme": { 37 | "markdownDescription": "Shiki theme to use in the markdown Preview. When set to `null` - uses active color theme.", 38 | "scope": "window", 39 | "type": [ 40 | "string", 41 | "null" 42 | ], 43 | "enum": [ 44 | null, 45 | "abyss", 46 | "dark_plus", 47 | "dark_vs", 48 | "hc_black", 49 | "kimbie_dark", 50 | "light_plus", 51 | "light_vs", 52 | "monokai", 53 | "monokai_dimmed", 54 | "quietlight", 55 | "red", 56 | "solarized_dark", 57 | "solarized_light", 58 | "Material-Theme-Darker-High-Contrast", 59 | "Material-Theme-Darker", 60 | "Material-Theme-Default-High-Contrast", 61 | "Material-Theme-Default", 62 | "Material-Theme-Lighter-High-Contrast", 63 | "Material-Theme-Lighter", 64 | "Material-Theme-Ocean-High-Contrast", 65 | "Material-Theme-Ocean", 66 | "Material-Theme-Palenight-High-Contrast", 67 | "Material-Theme-Palenight", 68 | "nord", 69 | "min-light", 70 | "min-dark", 71 | "white", 72 | "white-night", 73 | "zeit" 74 | ], 75 | "default": null 76 | } 77 | } 78 | } 79 | }, 80 | "dependencies": { 81 | "oniguruma": "^7.2.0", 82 | "shiki": "^0.1.6" 83 | }, 84 | "devDependencies": { 85 | "@types/node": "^11.9.4", 86 | "@types/vscode": "^1.38" 87 | }, 88 | "scripts": {} 89 | } 90 | -------------------------------------------------------------------------------- /resources/logo.ai: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mjbvz/vscode-markdown-shiki/f5f68108ccc197a35e501dbe6274dd75853e81b8/resources/logo.ai -------------------------------------------------------------------------------- /resources/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mjbvz/vscode-markdown-shiki/f5f68108ccc197a35e501dbe6274dd75853e81b8/resources/logo.png --------------------------------------------------------------------------------