Syntax highlighting in code blocks
This commit is contained in:
parent
935737ea62
commit
d79f216687
@ -1,3 +1,6 @@
|
|||||||
|
* Added KaTeX support to task markdown (description and comments)
|
||||||
|
* Added syntax highlighting to code blocks in task markdown (description and comments)
|
||||||
|
|
||||||
# 0.10.0
|
# 0.10.0
|
||||||
|
|
||||||
* Added task archive, tasks can now be sent to the archive folder and restored from the archive folder
|
* Added task archive, tasks can now be sent to the archive folder and restored from the archive folder
|
||||||
|
@ -127,3 +127,7 @@ Various Codicon icons have been used in this extension. Check [here](https://cod
|
|||||||
- `kanbn-burndown-tooltip-workload`
|
- `kanbn-burndown-tooltip-workload`
|
||||||
- `kanbn-burndown-tooltip-count`
|
- `kanbn-burndown-tooltip-count`
|
||||||
- `kanbn-burndown-tooltip-task`
|
- `kanbn-burndown-tooltip-task`
|
||||||
|
|
||||||
|
### Syntax highlighting
|
||||||
|
|
||||||
|
See [index.css](https://github.com/basementuniverse/vscode-kanbn/blob/main/src/index.css) for built-in syntax highlighting styles and token class-names.
|
||||||
|
104
package-lock.json
generated
104
package-lock.json
generated
@ -1717,6 +1717,15 @@
|
|||||||
"redux": "^4.0.0"
|
"redux": "^4.0.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"@types/react-syntax-highlighter": {
|
||||||
|
"version": "13.5.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/@types/react-syntax-highlighter/-/react-syntax-highlighter-13.5.0.tgz",
|
||||||
|
"integrity": "sha512-U7DrUaQRv3b+fsbPXMf7vC21K7DOkdNCQtp14Wm0Z5YLI9fPhndN4YTZ9eVXwmAivIg6lZ3YBVtGYucAS3H76A==",
|
||||||
|
"dev": true,
|
||||||
|
"requires": {
|
||||||
|
"@types/react": "*"
|
||||||
|
}
|
||||||
|
},
|
||||||
"@types/recharts": {
|
"@types/recharts": {
|
||||||
"version": "1.8.19",
|
"version": "1.8.19",
|
||||||
"resolved": "https://registry.npmjs.org/@types/recharts/-/recharts-1.8.19.tgz",
|
"resolved": "https://registry.npmjs.org/@types/recharts/-/recharts-1.8.19.tgz",
|
||||||
@ -4246,6 +4255,17 @@
|
|||||||
"resolved": "https://registry.npmjs.org/cli-width/-/cli-width-3.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/cli-width/-/cli-width-3.0.0.tgz",
|
||||||
"integrity": "sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw=="
|
"integrity": "sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw=="
|
||||||
},
|
},
|
||||||
|
"clipboard": {
|
||||||
|
"version": "2.0.8",
|
||||||
|
"resolved": "https://registry.npmjs.org/clipboard/-/clipboard-2.0.8.tgz",
|
||||||
|
"integrity": "sha512-Y6WO0unAIQp5bLmk1zdThRhgJt/x3ks6f30s3oE3H1mgIEU33XyQjEf8gsf6DxC7NPX8Y1SsNWjUjL/ywLnnbQ==",
|
||||||
|
"optional": true,
|
||||||
|
"requires": {
|
||||||
|
"good-listener": "^1.2.2",
|
||||||
|
"select": "^1.1.2",
|
||||||
|
"tiny-emitter": "^2.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
"cliui": {
|
"cliui": {
|
||||||
"version": "4.1.0",
|
"version": "4.1.0",
|
||||||
"resolved": "https://registry.npmjs.org/cliui/-/cliui-4.1.0.tgz",
|
"resolved": "https://registry.npmjs.org/cliui/-/cliui-4.1.0.tgz",
|
||||||
@ -5961,6 +5981,12 @@
|
|||||||
"integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=",
|
"integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
|
"delegate": {
|
||||||
|
"version": "3.2.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/delegate/-/delegate-3.2.0.tgz",
|
||||||
|
"integrity": "sha512-IofjkYBZaZivn0V8nnsMJGBr4jVLxHDheKSW88PyxS5QC4Vo9ZbZVvhzlSxY87fVq3STR6r+4cGepyHkcWOQSw==",
|
||||||
|
"optional": true
|
||||||
|
},
|
||||||
"depd": {
|
"depd": {
|
||||||
"version": "1.1.2",
|
"version": "1.1.2",
|
||||||
"resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz",
|
"resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz",
|
||||||
@ -7792,6 +7818,14 @@
|
|||||||
"integrity": "sha512-483XLLxTVIwWK3QTrMGRqUfUpoOs/0hbQrl2oz4J0pAcm3A3bu84wxTFqGqkJzewCLdME38xJLJAxBABfQT8sQ==",
|
"integrity": "sha512-483XLLxTVIwWK3QTrMGRqUfUpoOs/0hbQrl2oz4J0pAcm3A3bu84wxTFqGqkJzewCLdME38xJLJAxBABfQT8sQ==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
|
"fault": {
|
||||||
|
"version": "1.0.4",
|
||||||
|
"resolved": "https://registry.npmjs.org/fault/-/fault-1.0.4.tgz",
|
||||||
|
"integrity": "sha512-CJ0HCB5tL5fYTEA7ToAq5+kTwd++Borf1/bifxd9iT70QcXr4MRrO3Llf8Ifs70q+SJcGHFtnIE/Nw6giCtECA==",
|
||||||
|
"requires": {
|
||||||
|
"format": "^0.2.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
"faye-websocket": {
|
"faye-websocket": {
|
||||||
"version": "0.11.3",
|
"version": "0.11.3",
|
||||||
"resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.3.tgz",
|
"resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.3.tgz",
|
||||||
@ -8416,6 +8450,11 @@
|
|||||||
"mime-types": "^2.1.12"
|
"mime-types": "^2.1.12"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"format": {
|
||||||
|
"version": "0.2.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/format/-/format-0.2.2.tgz",
|
||||||
|
"integrity": "sha1-1hcBB+nv3E7TDJ3DkBbflCtctYs="
|
||||||
|
},
|
||||||
"formik": {
|
"formik": {
|
||||||
"version": "2.2.6",
|
"version": "2.2.6",
|
||||||
"resolved": "https://registry.npmjs.org/formik/-/formik-2.2.6.tgz",
|
"resolved": "https://registry.npmjs.org/formik/-/formik-2.2.6.tgz",
|
||||||
@ -9310,6 +9349,15 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"good-listener": {
|
||||||
|
"version": "1.2.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/good-listener/-/good-listener-1.2.2.tgz",
|
||||||
|
"integrity": "sha1-1TswzfkxPf+33JoNR3CWqm0UXFA=",
|
||||||
|
"optional": true,
|
||||||
|
"requires": {
|
||||||
|
"delegate": "^3.1.2"
|
||||||
|
}
|
||||||
|
},
|
||||||
"graceful-fs": {
|
"graceful-fs": {
|
||||||
"version": "4.2.6",
|
"version": "4.2.6",
|
||||||
"resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz",
|
"resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz",
|
||||||
@ -9566,6 +9614,11 @@
|
|||||||
"integrity": "sha512-l9sfDFsuqtOqKDsQdqrMRk0U85RZc0RtOR9yPI7mRVOa4FsR/BVnZ0shmQRM96Ji99kYZP/7hn1cedc1+ApsTQ==",
|
"integrity": "sha512-l9sfDFsuqtOqKDsQdqrMRk0U85RZc0RtOR9yPI7mRVOa4FsR/BVnZ0shmQRM96Ji99kYZP/7hn1cedc1+ApsTQ==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
|
"highlight.js": {
|
||||||
|
"version": "10.7.3",
|
||||||
|
"resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-10.7.3.tgz",
|
||||||
|
"integrity": "sha512-tzcUFauisWKNHaRkN4Wjl/ZA07gENAjFl3J/c480dprkGTg5EQstgaNFqBfUqCq54kZRIEcreTsAgF/m2quD7A=="
|
||||||
|
},
|
||||||
"hmac-drbg": {
|
"hmac-drbg": {
|
||||||
"version": "1.0.1",
|
"version": "1.0.1",
|
||||||
"resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz",
|
"resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz",
|
||||||
@ -12989,6 +13042,15 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"lowlight": {
|
||||||
|
"version": "1.20.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/lowlight/-/lowlight-1.20.0.tgz",
|
||||||
|
"integrity": "sha512-8Ktj+prEb1RoCPkEOrPMYUN/nCggB7qAWe3a7OpMjWQkh3l2RD5wKRQ+o8Q8YuI9RG/xs95waaI/E6ym/7NsTw==",
|
||||||
|
"requires": {
|
||||||
|
"fault": "^1.0.0",
|
||||||
|
"highlight.js": "~10.7.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
"lru-cache": {
|
"lru-cache": {
|
||||||
"version": "5.1.1",
|
"version": "5.1.1",
|
||||||
"resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz",
|
"resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz",
|
||||||
@ -20016,6 +20078,14 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"prismjs": {
|
||||||
|
"version": "1.23.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/prismjs/-/prismjs-1.23.0.tgz",
|
||||||
|
"integrity": "sha512-c29LVsqOaLbBHuIbsTxaKENh1N2EQBOHaWv7gkHN4dgRbxSREqDnDbtFJYdpPauS4YCplMSNCABQ6Eeor69bAA==",
|
||||||
|
"requires": {
|
||||||
|
"clipboard": "^2.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
"private": {
|
"private": {
|
||||||
"version": "0.1.8",
|
"version": "0.1.8",
|
||||||
"resolved": "https://registry.npmjs.org/private/-/private-0.1.8.tgz",
|
"resolved": "https://registry.npmjs.org/private/-/private-0.1.8.tgz",
|
||||||
@ -20834,6 +20904,18 @@
|
|||||||
"react-transition-group": "2.9.0"
|
"react-transition-group": "2.9.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"react-syntax-highlighter": {
|
||||||
|
"version": "15.4.3",
|
||||||
|
"resolved": "https://registry.npmjs.org/react-syntax-highlighter/-/react-syntax-highlighter-15.4.3.tgz",
|
||||||
|
"integrity": "sha512-TnhGgZKXr5o8a63uYdRTzeb8ijJOgRGe0qjrE0eK/gajtdyqnSO6LqB3vW16hHB0cFierYSoy/AOJw8z1Dui8g==",
|
||||||
|
"requires": {
|
||||||
|
"@babel/runtime": "^7.3.1",
|
||||||
|
"highlight.js": "^10.4.1",
|
||||||
|
"lowlight": "^1.17.0",
|
||||||
|
"prismjs": "^1.22.0",
|
||||||
|
"refractor": "^3.2.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
"react-textarea-autosize": {
|
"react-textarea-autosize": {
|
||||||
"version": "8.3.2",
|
"version": "8.3.2",
|
||||||
"resolved": "https://registry.npmjs.org/react-textarea-autosize/-/react-textarea-autosize-8.3.2.tgz",
|
"resolved": "https://registry.npmjs.org/react-textarea-autosize/-/react-textarea-autosize-8.3.2.tgz",
|
||||||
@ -21327,6 +21409,16 @@
|
|||||||
"@babel/runtime": "^7.9.2"
|
"@babel/runtime": "^7.9.2"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"refractor": {
|
||||||
|
"version": "3.3.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/refractor/-/refractor-3.3.1.tgz",
|
||||||
|
"integrity": "sha512-vaN6R56kLMuBszHSWlwTpcZ8KTMG6aUCok4GrxYDT20UIOXxOc5o6oDc8tNTzSlH3m2sI+Eu9Jo2kVdDcUTWYw==",
|
||||||
|
"requires": {
|
||||||
|
"hastscript": "^6.0.0",
|
||||||
|
"parse-entities": "^2.0.0",
|
||||||
|
"prismjs": "~1.23.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
"regenerate": {
|
"regenerate": {
|
||||||
"version": "1.4.2",
|
"version": "1.4.2",
|
||||||
"resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz",
|
"resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz",
|
||||||
@ -22626,6 +22718,12 @@
|
|||||||
"ajv-keywords": "^3.1.0"
|
"ajv-keywords": "^3.1.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"select": {
|
||||||
|
"version": "1.1.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/select/-/select-1.1.2.tgz",
|
||||||
|
"integrity": "sha1-DnNQrN7ICxEIUoeG7B1EGNEbOW0=",
|
||||||
|
"optional": true
|
||||||
|
},
|
||||||
"select-hose": {
|
"select-hose": {
|
||||||
"version": "2.0.0",
|
"version": "2.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz",
|
||||||
@ -23997,6 +24095,12 @@
|
|||||||
"integrity": "sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q=",
|
"integrity": "sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q=",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
|
"tiny-emitter": {
|
||||||
|
"version": "2.1.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/tiny-emitter/-/tiny-emitter-2.1.0.tgz",
|
||||||
|
"integrity": "sha512-NB6Dk1A9xgQPMoGqC5CVXn123gWyte215ONT5Pp5a0yt4nlEoO1ZWeCwpncaekPHXO60i47ihFnZPiRPjRMq4Q==",
|
||||||
|
"optional": true
|
||||||
|
},
|
||||||
"tiny-invariant": {
|
"tiny-invariant": {
|
||||||
"version": "1.1.0",
|
"version": "1.1.0",
|
||||||
"resolved": "https://registry.npmjs.org/tiny-invariant/-/tiny-invariant-1.1.0.tgz",
|
"resolved": "https://registry.npmjs.org/tiny-invariant/-/tiny-invariant-1.1.0.tgz",
|
||||||
|
@ -107,6 +107,7 @@
|
|||||||
"react-beautiful-dnd": "12.2.0",
|
"react-beautiful-dnd": "12.2.0",
|
||||||
"react-dom": "^16.3.2",
|
"react-dom": "^16.3.2",
|
||||||
"react-markdown": "^6.0.1",
|
"react-markdown": "^6.0.1",
|
||||||
|
"react-syntax-highlighter": "^15.4.3",
|
||||||
"react-textarea-autosize": "^8.3.2",
|
"react-textarea-autosize": "^8.3.2",
|
||||||
"recharts": "^2.0.9",
|
"recharts": "^2.0.9",
|
||||||
"rehype-katex": "^5.0.0",
|
"rehype-katex": "^5.0.0",
|
||||||
@ -130,6 +131,7 @@
|
|||||||
"@types/jest": "^23.3.14",
|
"@types/jest": "^23.3.14",
|
||||||
"@types/lodash": "^4.14.168",
|
"@types/lodash": "^4.14.168",
|
||||||
"@types/node": "^10.17.56",
|
"@types/node": "^10.17.56",
|
||||||
|
"@types/react-syntax-highlighter": "^13.5.0",
|
||||||
"@types/recharts": "^1.8.19",
|
"@types/recharts": "^1.8.19",
|
||||||
"@types/uuid": "^8.3.0",
|
"@types/uuid": "^8.3.0",
|
||||||
"react-scripts": "^2.1.8",
|
"react-scripts": "^2.1.8",
|
||||||
|
@ -8,6 +8,7 @@ import ReactMarkdown from 'react-markdown';
|
|||||||
import TextareaAutosize from 'react-textarea-autosize';
|
import TextareaAutosize from 'react-textarea-autosize';
|
||||||
import remarkMath from 'remark-math';
|
import remarkMath from 'remark-math';
|
||||||
import rehypeKatex from 'rehype-katex';
|
import rehypeKatex from 'rehype-katex';
|
||||||
|
import { Prism as SyntaxHighlighter } from 'react-syntax-highlighter';
|
||||||
import 'katex/dist/katex.min.css';
|
import 'katex/dist/katex.min.css';
|
||||||
|
|
||||||
interface KanbnTaskValidationOutput {
|
interface KanbnTaskValidationOutput {
|
||||||
@ -27,11 +28,30 @@ interface KanbnTaskValidationInput extends KanbnTaskValidationOutput {
|
|||||||
id: string
|
id: string
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const components = {
|
||||||
|
code({ node, inline, className, children, ...props }) {
|
||||||
|
const match = /language-(\w+)/.exec(className || '');
|
||||||
|
return !inline && match ? (
|
||||||
|
<SyntaxHighlighter
|
||||||
|
style=""
|
||||||
|
useInlineStyles={false}
|
||||||
|
language={match[1]}
|
||||||
|
PreTag="div"
|
||||||
|
children={String(children).replace(/\n$/, '')}
|
||||||
|
{...props}
|
||||||
|
/>
|
||||||
|
) : (
|
||||||
|
<code className={className} children={children} {...props} />
|
||||||
|
);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
const Markdown = props => (<ReactMarkdown {...{
|
const Markdown = props => (<ReactMarkdown {...{
|
||||||
...props,
|
|
||||||
remarkPlugins: [remarkMath],
|
remarkPlugins: [remarkMath],
|
||||||
rehypePlugins: [rehypeKatex]
|
rehypePlugins: [rehypeKatex],
|
||||||
}}/>);
|
components,
|
||||||
|
...props,
|
||||||
|
}} />);
|
||||||
|
|
||||||
const TaskEditor = ({ task, tasks, columnName, columnNames, dateFormat, panelUuid, vscode }: {
|
const TaskEditor = ({ task, tasks, columnName, columnNames, dateFormat, panelUuid, vscode }: {
|
||||||
task: KanbnTask | null,
|
task: KanbnTask | null,
|
||||||
@ -269,9 +289,7 @@ const TaskEditor = ({ task, tasks, columnName, columnNames, dateFormat, panelUui
|
|||||||
as={TextareaAutosize}
|
as={TextareaAutosize}
|
||||||
name="description"
|
name="description"
|
||||||
/>
|
/>
|
||||||
: <Markdown className="kanbn-task-editor-description-preview">
|
: <Markdown className="kanbn-task-editor-description-preview" children={values.description} />
|
||||||
{values.description}
|
|
||||||
</Markdown>
|
|
||||||
}
|
}
|
||||||
<ErrorMessage
|
<ErrorMessage
|
||||||
className="kanbn-task-editor-field-errors"
|
className="kanbn-task-editor-field-errors"
|
||||||
@ -468,9 +486,7 @@ const TaskEditor = ({ task, tasks, columnName, columnNames, dateFormat, panelUui
|
|||||||
name={`comments.${index}.text`}
|
name={`comments.${index}.text`}
|
||||||
/>
|
/>
|
||||||
</React.Fragment>
|
</React.Fragment>
|
||||||
: <Markdown className="kanbn-task-editor-comment-text">
|
: <Markdown className="kanbn-task-editor-comment-text" children={comment.text} />
|
||||||
{comment.text}
|
|
||||||
</Markdown>
|
|
||||||
}
|
}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
174
src/index.css
174
src/index.css
@ -9,6 +9,10 @@ body.vscode-high-contrast {
|
|||||||
color: var(--vscode-foreground);
|
color: var(--vscode-foreground);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*-----------------------------------------------------------------------------
|
||||||
|
Board styles
|
||||||
|
-----------------------------------------------------------------------------*/
|
||||||
|
|
||||||
.kanbn-header-name {
|
.kanbn-header-name {
|
||||||
font-size: 1.5em;
|
font-size: 1.5em;
|
||||||
margin-top: 0;
|
margin-top: 0;
|
||||||
@ -85,6 +89,10 @@ body.vscode-high-contrast {
|
|||||||
background-color: var(--vscode-button-hoverBackground);
|
background-color: var(--vscode-button-hoverBackground);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.kanbn-header-button-inactive {
|
||||||
|
opacity: 0.6;
|
||||||
|
}
|
||||||
|
|
||||||
.kanbn-board {
|
.kanbn-board {
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: stretch;
|
align-items: stretch;
|
||||||
@ -180,6 +188,10 @@ body.vscode-high-contrast {
|
|||||||
border-color: #e83;
|
border-color: #e83;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*-----------------------------------------------------------------------------
|
||||||
|
Task styles
|
||||||
|
-----------------------------------------------------------------------------*/
|
||||||
|
|
||||||
.kanbn-task {
|
.kanbn-task {
|
||||||
position: relative;
|
position: relative;
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
@ -287,6 +299,10 @@ body.vscode-dark .kanbn-task {
|
|||||||
transition: width .5s ease-in-out;
|
transition: width .5s ease-in-out;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*-----------------------------------------------------------------------------
|
||||||
|
Task editor styles
|
||||||
|
-----------------------------------------------------------------------------*/
|
||||||
|
|
||||||
.kanbn-task-editor-title {
|
.kanbn-task-editor-title {
|
||||||
font-size: 1.5em;
|
font-size: 1.5em;
|
||||||
margin-top: 0;
|
margin-top: 0;
|
||||||
@ -539,6 +555,10 @@ body.vscode-dark .kanbn-task-editor-field-input[type="date"]::-webkit-calendar-p
|
|||||||
float: right;
|
float: right;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*-----------------------------------------------------------------------------
|
||||||
|
Burndown chart styles
|
||||||
|
-----------------------------------------------------------------------------*/
|
||||||
|
|
||||||
.kanbn-burndown-settings {
|
.kanbn-burndown-settings {
|
||||||
position: relative;
|
position: relative;
|
||||||
flex: 1;
|
flex: 1;
|
||||||
@ -587,10 +607,6 @@ body.vscode-dark .kanbn-burndown-settings-input[type="date"]::-webkit-calendar-p
|
|||||||
filter: invert(1);
|
filter: invert(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
.kanbn-header-button-inactive {
|
|
||||||
opacity: 0.6;
|
|
||||||
}
|
|
||||||
|
|
||||||
.kanbn-burndown {
|
.kanbn-burndown {
|
||||||
height: 85vh;
|
height: 85vh;
|
||||||
width: 95vw;
|
width: 95vw;
|
||||||
@ -626,3 +642,153 @@ body.vscode-dark .kanbn-burndown-settings-input[type="date"]::-webkit-calendar-p
|
|||||||
.kanbn-burndown-tooltip-task {
|
.kanbn-burndown-tooltip-task {
|
||||||
font-style: italic;
|
font-style: italic;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*-----------------------------------------------------------------------------
|
||||||
|
Code block syntax highlighting styles
|
||||||
|
-----------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
body.vscode-dark code[class*="language-"] span.token.comment,
|
||||||
|
body.vscode-dark code[class*="language-"] span.token.prolog,
|
||||||
|
body.vscode-dark code[class*="language-"] span.token.cdata {
|
||||||
|
color: #808080;
|
||||||
|
}
|
||||||
|
|
||||||
|
body.vscode-dark code[class*="language-"] span.token.delimiter,
|
||||||
|
body.vscode-dark code[class*="language-"] span.token.boolean,
|
||||||
|
body.vscode-dark code[class*="language-"] span.token.keyword,
|
||||||
|
body.vscode-dark code[class*="language-"] span.token.selector,
|
||||||
|
body.vscode-dark code[class*="language-"] span.token.important,
|
||||||
|
body.vscode-dark code[class*="language-"] span.token.atrule {
|
||||||
|
color: #cc7832;
|
||||||
|
}
|
||||||
|
|
||||||
|
body.vscode-dark code[class*="language-"] span.token.operator,
|
||||||
|
body.vscode-dark code[class*="language-"] span.token.punctuation,
|
||||||
|
body.vscode-dark code[class*="language-"] span.token.attr-name {
|
||||||
|
color: #a9b7c6;
|
||||||
|
}
|
||||||
|
|
||||||
|
body.vscode-dark code[class*="language-"] span.token.tag,
|
||||||
|
body.vscode-dark code[class*="language-"] span.token.tag.punctuation,
|
||||||
|
body.vscode-dark code[class*="language-"] span.token.doctype,
|
||||||
|
body.vscode-dark code[class*="language-"] span.token.builtin {
|
||||||
|
color: #e8bf6a;
|
||||||
|
}
|
||||||
|
|
||||||
|
body.vscode-dark code[class*="language-"] span.token.entity,
|
||||||
|
body.vscode-dark code[class*="language-"] span.token.number,
|
||||||
|
body.vscode-dark code[class*="language-"] span.token.symbol {
|
||||||
|
color: #6897bb;
|
||||||
|
}
|
||||||
|
|
||||||
|
body.vscode-dark code[class*="language-"] span.token.property,
|
||||||
|
body.vscode-dark code[class*="language-"] span.token.constant,
|
||||||
|
body.vscode-dark code[class*="language-"] span.token.variable {
|
||||||
|
color: #9876aa;
|
||||||
|
}
|
||||||
|
|
||||||
|
body.vscode-dark code[class*="language-"] span.token.string,
|
||||||
|
body.vscode-dark code[class*="language-"] span.token.char {
|
||||||
|
color: #6a8759;
|
||||||
|
}
|
||||||
|
|
||||||
|
body.vscode-dark code[class*="language-"] span.token.attr-value,
|
||||||
|
body.vscode-dark code[class*="language-"] span.token.attr-value.punctuation {
|
||||||
|
color: #a5c261;
|
||||||
|
}
|
||||||
|
|
||||||
|
body.vscode-dark code[class*="language-"] span.token.attr-value.punctuation:first-child {
|
||||||
|
color: #a9b7c6;
|
||||||
|
}
|
||||||
|
|
||||||
|
body.vscode-dark code[class*="language-"] span.token.url {
|
||||||
|
color: #287bde;
|
||||||
|
}
|
||||||
|
|
||||||
|
body.vscode-dark code[class*="language-"] span.token.function {
|
||||||
|
color: #ffc66d;
|
||||||
|
}
|
||||||
|
|
||||||
|
body.vscode-dark code[class*="language-"] span.token.regex {
|
||||||
|
color: #364135;
|
||||||
|
}
|
||||||
|
|
||||||
|
body.vscode-dark code[class*="language-"] span.token.inserted {
|
||||||
|
color: #294436;
|
||||||
|
}
|
||||||
|
|
||||||
|
body.vscode-dark code[class*="language-"] span.token.deleted {
|
||||||
|
color: #484a4a;
|
||||||
|
}
|
||||||
|
|
||||||
|
body.vscode-dark code.language-css span.token.property,
|
||||||
|
body.vscode-dark code.language-css span.token.property + .token.punctuation {
|
||||||
|
color: #a9b7c6;
|
||||||
|
}
|
||||||
|
|
||||||
|
body.vscode-dark code.language-css span.token.id,
|
||||||
|
body.vscode-dark code.language-css .token.selector > .token.class,
|
||||||
|
body.vscode-dark code.language-css .token.selector > .token.attribute,
|
||||||
|
body.vscode-dark code.language-css .token.selector > .token.pseudo-class,
|
||||||
|
body.vscode-dark code.language-css .token.selector > .token.pseudo-element {
|
||||||
|
color: #ffc66d;
|
||||||
|
}
|
||||||
|
|
||||||
|
body.vscode-light code[class*="language-"] span.token.comment,
|
||||||
|
body.vscode-light code[class*="language-"] span.token.prolog,
|
||||||
|
body.vscode-light code[class*="language-"] span.token.doctype,
|
||||||
|
body.vscode-light code[class*="language-"] span.token.cdata {
|
||||||
|
color: #708090;
|
||||||
|
}
|
||||||
|
|
||||||
|
body.vscode-light code[class*="language-"] span.token.punctuation {
|
||||||
|
color: #999999;
|
||||||
|
}
|
||||||
|
|
||||||
|
body.vscode-light code[class*="language-"] span.token.namespace {
|
||||||
|
opacity: 0.7;
|
||||||
|
}
|
||||||
|
|
||||||
|
body.vscode-light code[class*="language-"] span.token.property,
|
||||||
|
body.vscode-light code[class*="language-"] span.token.tag,
|
||||||
|
body.vscode-light code[class*="language-"] span.token.boolean,
|
||||||
|
body.vscode-light code[class*="language-"] span.token.number,
|
||||||
|
body.vscode-light code[class*="language-"] span.token.constant,
|
||||||
|
body.vscode-light code[class*="language-"] span.token.symbol,
|
||||||
|
body.vscode-light code[class*="language-"] span.token.deleted {
|
||||||
|
color: #990055;
|
||||||
|
}
|
||||||
|
|
||||||
|
body.vscode-light code[class*="language-"] span.token.selector,
|
||||||
|
body.vscode-light code[class*="language-"] span.token.attr-name,
|
||||||
|
body.vscode-light code[class*="language-"] span.token.string,
|
||||||
|
body.vscode-light code[class*="language-"] span.token.char,
|
||||||
|
body.vscode-light code[class*="language-"] span.token.builtin,
|
||||||
|
body.vscode-light code[class*="language-"] span.token.inserted {
|
||||||
|
color: #669900;
|
||||||
|
}
|
||||||
|
|
||||||
|
body.vscode-light code[class*="language-"] span.token.operator,
|
||||||
|
body.vscode-light code[class*="language-"] span.token.entity,
|
||||||
|
body.vscode-light code[class*="language-"] span.token.url,
|
||||||
|
body.vscode-light code.language-css span.token.string {
|
||||||
|
color: #9a6e3a;
|
||||||
|
background: hsla(0, 0%, 100%, .5);
|
||||||
|
}
|
||||||
|
|
||||||
|
body.vscode-light code[class*="language-"] span.token.atrule,
|
||||||
|
body.vscode-light code[class*="language-"] span.token.attr-value,
|
||||||
|
body.vscode-light code[class*="language-"] span.token.keyword {
|
||||||
|
color: #0077aa;
|
||||||
|
}
|
||||||
|
|
||||||
|
body.vscode-light code[class*="language-"] span.token.function,
|
||||||
|
body.vscode-light code[class*="language-"] span.token.class-name {
|
||||||
|
color: #dd4a68;
|
||||||
|
}
|
||||||
|
|
||||||
|
body.vscode-light code[class*="language-"] span.token.regex,
|
||||||
|
body.vscode-light code[class*="language-"] span.token.important,
|
||||||
|
body.vscode-light code[class*="language-"] span.token.variable {
|
||||||
|
color: #ee9900;
|
||||||
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user