diff --git a/.gitignore b/.gitignore index 9cc1c96..74b1745 100644 --- a/.gitignore +++ b/.gitignore @@ -112,11 +112,14 @@ public/ # Generated theme outputs. source/atom/love-* -source/kitty/* -!source/kitty/love-template.conf -source/sublime-text/* -!source/sublime-text/love-template.sublime-color-scheme -source/tauon/* -!source/tauon/love-template.ttheme +source/kitty/love-dark.conf +source/kitty/love-light.conf +source/kitty/love-kitty.zip +source/sublime-text/Love.sublime-package +source/sublime-text/love-dark.sublime-color-scheme +source/sublime-text/love-light.sublime-color-scheme +source/tauon/Love Dark.ttheme +source/tauon/Love Light.ttheme +source/tauon/love-tauon.zip source/vscode/themes/love-dark.color-theme.json source/vscode/themes/love-light.color-theme.json diff --git a/love-versions.json b/love-versions.json new file mode 100644 index 0000000..2ca231b --- /dev/null +++ b/love-versions.json @@ -0,0 +1,8 @@ +{ + "atom": "0.1.2", + "firefox": "0.1.0", + "kitty": "0.1.0", + "sublime-text": "0.1.0", + "tauon": "0.1.3", + "vscode": "0.1.1" +} diff --git a/package.json b/package.json index 42dd65e..d53f55f 100644 --- a/package.json +++ b/package.json @@ -24,8 +24,12 @@ }, "devDependencies": { "@types/jszip": "^3.1.7", + "@types/marked": "^0.7.4", "@types/nunjucks": "^3.1.3", + "@types/prompts": "^2.0.5", + "@types/refractor": "^2.8.0", "@types/sass": "^1.16.0", + "@types/semver": "^7.1.0", "@types/tar": "^4.0.3", "chokidar-cli": "^2.1.0", "cpy": "^8.1.0", @@ -34,9 +38,14 @@ "hsluv-sass": "^1.0.0", "htmlclean": "^3.0.8", "jszip": "^3.3.0", + "marked": "^0.8.2", "mathsass": "^0.11.0", "nunjucks": "^3.2.1", + "prompts": "^2.3.2", + "refractor": "^3.0.0", + "rehype": "^10.0.0", "sass": "^1.26.3", + "semver": "^7.3.2", "stylelint": "^13.2.1", "stylelint-config-xo-scss": "^0.12.0", "stylelint-config-xo-space": "^0.14.0", diff --git a/source/atom/Site ReadMe.md b/source/atom/Site ReadMe.md new file mode 100644 index 0000000..d59482b --- /dev/null +++ b/source/atom/Site ReadMe.md @@ -0,0 +1,78 @@ +
+
+ +## Preview +
+
+ +
+
+ +![Love Dark Preview 1](../images/atom/love-dark-01.png) +
+ +
+ +![Love Light Preview 1](../images/atom/love-light-01.png) +
+ +
+ +![Love Dark Preview 2](../images/atom/love-dark-02.png) +
+ +
+ +![Love Light Preview 2](../images/atom/love-light-02.png) +
+
+ +
+ +
+
+ +## Installation +
+ +
+ +### Via Atom + +1. Head to your Settings by clicking on `Edit -> Preferences`. +1. Head on the Install section. +1. Switch the search to look for Themes. +1. Search for `love-dark` or `love-light` and install the syntax and UI themes. +1. Done! ♥ +
+ +
+ +### Via the Command Line + +1. Install the wanted themes with `apm install`: + * `apm install love-dark-syntax` + * `apm install love-dark-ui` + * `apm install love-light-syntax` + * `apm install love-light-ui` +1. Done! ♥ +
+ +
+ +### From Source + +Requires [NodeJS](https://nodejs.org) and [Yarn](https://yarnpkg.com) to be installed. + +With a cloned repository and your current working directory at the root of it: + +1. Install the dependencies with `yarn`. +1. Build the theme with `yarn build:atom`. +1. Link the wanted themes with `apm link`: + * `apm link source/atom/love-dark-syntax` + * `apm link source/atom/love-dark-ui` + * `apm link source/atom/love-light-syntax` + * `apm link source/atom/love-light-ui` +1. Done! ♥ +
+
diff --git a/source/firefox/Site ReadMe.md b/source/firefox/Site ReadMe.md new file mode 100644 index 0000000..a9f9c0a --- /dev/null +++ b/source/firefox/Site ReadMe.md @@ -0,0 +1,34 @@ +
+
+ +## Preview +
+
+ +
+
+ +![Love Dark Preview 1](../images/firefox/love-dark-01.png) +
+ +
+ +![Love Light Preview 1](../images/firefox/love-light-01.png) +
+
+ +
+ +
+
+ +## Installation +
+ +
+ +1. Install [the Firefox Color extension](https://addons.mozilla.org/en-GB/firefox/addon/firefox-color/). +1. Head to the [Love Dark](https://color.firefox.com/?theme=XQAAAAIYAQAAAAAAAABBqYhm849SCia2CaaEGccwS-xNKlhSXT3Vtt2XDAs6h7gdL5pcAb7xqXopx66Ln4wY2B4_apm1Xo1m-kSLNybjC15LIb4OXWhGfyPJrZA2e0IeJeWC0yox2SBMD04SrZBvZwoC8QX9EBbJd69TMCmh7d-g0Wc_msdR2nzvnbFECN4_c5VKI9Btzbzvdvjw1-KH_nfezJDCoRea7HASdSJBgMVdHiWfmWiLujatKOWmCJfGaFyV_75SjmA) or [Love Light](https://color.firefox.com/?theme=XQAAAAIqAQAAAAAAAABBqYhm849SCia2CaaEGccwS-xNKliFvSp4LiFpmRcA5AwYsIABKiGtHcakOiV8NSmxjnVR9H4TYg2VNxSp6iDrgcvBoo3NoFSZSndEX6ZHCH8h1ahP78I4dZXjJD8ZzlOxqC6HrDKQmTBAEm09iix8uVI5_QcbhtDjDxpYbPP5WGvXu84Za9H0s1VXwrgKdxIgKTJraGh0P5bPsWJ_YY-lPSsAB62ABnbOV7SJEIMsWMC9a01QhpCubrrA-f_WNVAA) page and apply either one. +1. Done! ♥ +
+
diff --git a/source/firefox/images/love-dark-01.png b/source/firefox/images/love-dark-01.png new file mode 100644 index 0000000..dd133b8 Binary files /dev/null and b/source/firefox/images/love-dark-01.png differ diff --git a/source/firefox/images/love-light-01.png b/source/firefox/images/love-light-01.png new file mode 100644 index 0000000..c77975d Binary files /dev/null and b/source/firefox/images/love-light-01.png differ diff --git a/source/kitty/Site ReadMe.md b/source/kitty/Site ReadMe.md new file mode 100644 index 0000000..8c13164 --- /dev/null +++ b/source/kitty/Site ReadMe.md @@ -0,0 +1,37 @@ +
+
+ +## Preview +
+
+ +
+
+ +![Love Dark Preview 1](../images/kitty/love-dark-01.png) +
+ +
+ +![Love Light Preview 1](../images/kitty/love-light-01.png) +
+
+ +
+ +
+
+ +## Installation +
+ +
+ +1. Download [the Love theme zip](../love-kitty.zip). +1. Unzip it in [the Kitty configuration directory](https://sw.kovidgoyal.net/kitty/conf.html). +1. Add the following line your `kitty.conf`. + * For Dark add `include love-dark.conf` + * For Light add `include love-light.conf` +1. Done! ♥ +
+
diff --git a/source/kitty/images/love-dark-01.png b/source/kitty/images/love-dark-01.png new file mode 100644 index 0000000..1f22f32 Binary files /dev/null and b/source/kitty/images/love-dark-01.png differ diff --git a/source/kitty/images/love-light-01.png b/source/kitty/images/love-light-01.png new file mode 100644 index 0000000..829e733 Binary files /dev/null and b/source/kitty/images/love-light-01.png differ diff --git a/source/kitty/love-template.conf b/source/kitty/love-template.conf index 0c1923e..e01fbb4 100644 --- a/source/kitty/love-template.conf +++ b/source/kitty/love-template.conf @@ -1,5 +1,5 @@ # The Love Theme for Kitty -# Version: 0.1.0 +# Version: {{ version }} # https://love.holllo.cc # Documentation: diff --git a/source/pages/get.html b/source/pages/get.html new file mode 100644 index 0000000..3b0dacc --- /dev/null +++ b/source/pages/get.html @@ -0,0 +1,32 @@ + + + + + + + {{ title }} + + + + + +
+

{{ title }}

+ {{ markdown | safe }} +
+ +
+ + + diff --git a/source/pages/index.html b/source/pages/index.html index fb23bfe..433b80f 100644 --- a/source/pages/index.html +++ b/source/pages/index.html @@ -158,25 +158,22 @@ diff --git a/source/pages/scss/_get.scss b/source/pages/scss/_get.scss new file mode 100644 index 0000000..0c43b81 --- /dev/null +++ b/source/pages/scss/_get.scss @@ -0,0 +1,58 @@ +#get-love-page { + h3 { + padding-bottom: 16px; + } + + img { + width: 100%; + } + + p { + margin-bottom: 8px; + + &:last-child { + margin-bottom: 0; + } + } + + pre { + background-color: var(--background-1); + } + + .images-section { + > div { + padding: 8px; + } + } + + .is-dark { + border: 2px solid var(--foreground-1); + color: var(--foreground-1); + + code { + background-color: var(--background-2); + } + } + + .is-light { + background-color: var(--foreground-1); + color: var(--background-1); + + a, + a:visited { + color: var(--light-accent-8); + + &:hover { + color: var(--light-accent-10); + } + } + + code { + background-color: var(--foreground-2); + } + } + + .padded { + padding: 16px; + } +} diff --git a/source/pages/scss/_syntax-highlighting.scss b/source/pages/scss/_syntax-highlighting.scss new file mode 100644 index 0000000..2df5eff --- /dev/null +++ b/source/pages/scss/_syntax-highlighting.scss @@ -0,0 +1,80 @@ +code[class*='language-'] { + color: var(--foreground-1); + + .token { + &.cdata, + &.comment, + &.doctype, + &.prolog { + color: var(--dark-gray-3); + } + + &.punctuation { + color: var(--dark-accent-5); + } + + &.namespace { + opacity: 0.7; + } + + &.boolean, + &.constant, + &.deleted, + &.number, + &.property, + &.symbol, + &.tag { + color: var(--dark-accent-7); + } + + &.attr-name, + &.builtin, + &.char, + &.inserted, + &.selector, + &.string { + color: var(--dark-accent-4); + } + + &.entity, + &.operator, + &.url { + color: var(--dark-accent-5); + } + + &.atrule, + &.attr-value, + &.keyword { + color: var(--dark-accent-5); + } + + &.class-name, + &.function { + color: var(--dark-accent-6); + } + + &.important, + &.regex, + &.variable { + color: var(--dark-accent-6); + } + + &.bold, + &.important { + font-weight: bold; + } + + &.italic { + font-style: italic; + } + + &.entity { + cursor: help; + } + } +} + +.language-css .token.string, +.style .token.string { + color: var(--dark-accent-5); +} diff --git a/source/pages/scss/style.scss b/source/pages/scss/style.scss index fb7c046..1dfcb75 100644 --- a/source/pages/scss/style.scss +++ b/source/pages/scss/style.scss @@ -4,6 +4,8 @@ /* :root-insert */ +@import 'syntax-highlighting'; + $small-breakpoint: 600px; $medium-breakpoint: 900px; $large-breakpoint: 1200px; @@ -40,6 +42,15 @@ a:visited { } } +code { + padding: 0 4px; +} + +pre { + padding: 16px; + overflow: auto; +} + h1 { padding: 16px; } @@ -47,12 +58,13 @@ h1 { h1, h2, h3, -p { +p, +pre { margin: 0; } li { - margin-bottom: 4px; + margin-bottom: 8px; &:last-child { margin-bottom: 0; @@ -62,7 +74,19 @@ li { ol, ul { margin: 0; + margin-bottom: 8px; padding-left: 32px; + + &:last-child { + margin-bottom: 0; + } + + > li { + > ol, + > ul { + margin-top: 8px; + } + } } section { @@ -400,6 +424,16 @@ footer { > div { padding: 16px; } + + ul { + display: grid; + grid-template-columns: repeat(1, 1fr); + + @media (min-width: $small-breakpoint) { + grid-template-columns: repeat(2, 1fr); + list-style-type: symbols(cyclic '♡' '♥' '♥' '♡'); + } + } } #attributions { @@ -420,3 +454,5 @@ footer { display: flex; line-height: 0; } + +@import 'get'; diff --git a/source/scripts/kitty.ts b/source/scripts/kitty.ts index 532e8a8..2de3978 100644 --- a/source/scripts/kitty.ts +++ b/source/scripts/kitty.ts @@ -3,6 +3,7 @@ import {join} from 'path'; import Zip from 'jszip'; import nunjucks from 'nunjucks'; import {generateLove, LoveVariant} from './love'; +import {getVersions, Versions} from './version'; export async function entry(): Promise { const themeDirectory: string = join(__dirname, '../kitty/'); @@ -13,6 +14,8 @@ export async function entry(): Promise { throwOnUndefined: true }); + const versions: Versions = await getVersions(); + // Create a new zip archive. const kittyPackage: Zip = new Zip(); @@ -25,7 +28,8 @@ export async function entry(): Promise { // Render the template. const theme: string = nunjucks.render('love-template.conf', { - love: variant + love: variant, + version: versions.kitty }); // Write the theme to file and add it to the zip archive. diff --git a/source/scripts/pages.ts b/source/scripts/pages.ts index 8a5352e..de6e60d 100644 --- a/source/scripts/pages.ts +++ b/source/scripts/pages.ts @@ -1,11 +1,17 @@ -import {promises as fsp} from 'fs'; +import fs, {promises as fsp} from 'fs'; import {join} from 'path'; +import cpy from 'cpy'; // @ts-ignore import htmlclean from 'htmlclean'; +import marked from 'marked'; import nunjucks from 'nunjucks'; +import refractor from 'refractor'; +// @ts-ignore +import rehype from 'rehype'; import sass from 'sass'; import tar from 'tar'; import {generateLove, LoveVariant} from './love'; +import {getVersions, Versions} from './version'; export async function entry(): Promise { // Create all required directories for the website. @@ -22,6 +28,8 @@ export async function entry(): Promise { const love: LoveVariant[] = generateLove(); + const versions: Versions = await getVersions(); + // Write the colors to file. await writeJSON(join(__dirname, '../../public/love.json'), love); @@ -75,7 +83,67 @@ ${love[1].colors.grays cwd: join(__dirname, '../../public/fonts/') }); - console.log('Lovely!'); + const renderer: marked.Renderer = new marked.Renderer(); + + renderer.code = (code: string, language: string | undefined): string => { + if (language === undefined) { + throw new Error('Markdown code block with no language detected'); + } + + const codeHTML: string = rehype() + .stringify({type: 'root', children: refractor.highlight(code, language)}) + .toString(); + return `
${codeHTML}
`; + }; + + await fsp.mkdir(join(__dirname, '../../public/get/'), {recursive: true}); + const pagesToCreate: string[] = ( + await fsp.readdir(join(__dirname, '../')) + ).filter(value => !['pages', 'scripts'].includes(value)); + for (const page of pagesToCreate) { + const markdown: string = marked( + nunjucks.renderString( + await fsp.readFile( + join(__dirname, `../${page}/Site ReadMe.md`), + 'utf8' + ), + {versions} + ), + {renderer} + ); + await fsp.mkdir(join(__dirname, `../../public/images/${page}/`), { + recursive: true + }); + if (fs.existsSync(join(__dirname, `../${page}/images/`))) { + await cpy( + join(__dirname, `../${page}/images/*`), + join(__dirname, `../../public/images/${page}/`) + ); + } + + let title = `Love for ${page + .replace(/-/g, ' ') + .split(' ') + .map(capitalize) + .join(' ')}`; + + switch (page) { + case 'vscode': + title = 'Love for VS Code'; + break; + default: + break; + } + + await fsp.writeFile( + join(__dirname, `../../public/get/${page}.html`), + htmlclean(nunjucks.render('get.html', {love, markdown, title})) + ); + } +} + +export function capitalize(word: string): string { + return `${word.slice(0, 1).toUpperCase()}${word.slice(1)}`; } // Utility helper function to write some data to file as JSON. diff --git a/source/scripts/sublime-text.ts b/source/scripts/sublime-text.ts index 982ee7b..a14f43e 100644 --- a/source/scripts/sublime-text.ts +++ b/source/scripts/sublime-text.ts @@ -3,6 +3,7 @@ import {join} from 'path'; import Zip from 'jszip'; import nunjucks from 'nunjucks'; import {generateLove, LoveVariant} from './love'; +import {getVersions, Versions} from './version'; export async function entry(): Promise { const themeDirectory: string = join(__dirname, '../sublime-text/'); @@ -14,6 +15,7 @@ export async function entry(): Promise { }); const love: LoveVariant[] = generateLove(); + const versions: Versions = await getVersions(); const sublimePackage: Zip = new Zip(); for (const variant of love) { const template: string = await fsp.readFile( @@ -27,7 +29,8 @@ export async function entry(): Promise { ); const output: string = nunjucks.renderString(template, { - love: variant + love: variant, + version: versions['sublime-text'] }); let formattedOutput = ''; for (const line of output.split('\n')) { diff --git a/source/scripts/tauon.ts b/source/scripts/tauon.ts index b3c3f41..fc58228 100644 --- a/source/scripts/tauon.ts +++ b/source/scripts/tauon.ts @@ -3,6 +3,7 @@ import {join} from 'path'; import Zip from 'jszip'; import nunjucks from 'nunjucks'; import {generateLove, LoveVariant} from './love'; +import {getVersions, Versions} from './version'; export async function entry(): Promise { const themeDirectory: string = join(__dirname, '../tauon/'); @@ -18,6 +19,7 @@ export async function entry(): Promise { // Generate the Love variants. const love: LoveVariant[] = generateLove(); + const versions: Versions = await getVersions(); for (const variant of love) { const themeName = `Love ${variant.name.slice(0, 1).toUpperCase() + @@ -27,7 +29,8 @@ export async function entry(): Promise { // Render the template. const theme: string = nunjucks.render('love-template.ttheme', { love: variant, - rgb: hexToRGB + rgb: hexToRGB, + version: versions.tauon }); // Write the theme to file and add it to the zip archive. diff --git a/source/scripts/version.ts b/source/scripts/version.ts new file mode 100644 index 0000000..9b0ad56 --- /dev/null +++ b/source/scripts/version.ts @@ -0,0 +1,119 @@ +import {promises as fsp} from 'fs'; +import {join} from 'path'; +import prompts from 'prompts'; +import semver from 'semver'; + +export interface Versions { + [index: string]: string; + atom: string; + firefox: string; + kitty: string; + 'sublime-text': string; + tauon: string; + vscode: string; +} + +export async function entry(): Promise { + const versions: Versions = await getVersions(); + + const command = await prompts({ + message: 'What do you want to do?', + name: 'command', + type: 'select', + choices: [ + { + title: 'Show', + value: 'show' + }, + { + title: 'Update', + value: 'update' + } + ], + initial: 0 + }); + if (command.command === 'show') { + console.log(versions); + return; + } + + if (command.command === 'update') { + const whichTheme = await prompts({ + message: 'Which theme do you want to update?', + name: 'theme', + type: 'select', + choices: Object.keys(versions).map(value => ({ + title: `${value} (${String(versions[value])})`, + value + })), + initial: 0 + }); + + const currentVersion: string = versions[whichTheme.theme]; + const whichVersion = await prompts({ + message: 'To what version do you want to update?', + name: 'version', + type: 'select', + choices: [ + { + title: `Major (${currentVersion} -> ${semver.inc( + currentVersion, + 'major' + )!})`, + value: 'major' + }, + { + title: `Minor (${currentVersion} -> ${semver.inc( + currentVersion, + 'minor' + )!})`, + value: 'minor' + }, + { + title: `Patch (${currentVersion} -> ${semver.inc( + currentVersion, + 'patch' + )!})`, + value: 'patch' + } + ], + initial: 0 + }); + + const selectedTheme: string = whichTheme.theme; + const newVersion: string = semver.inc( + currentVersion, + whichVersion.version + )!; + versions[selectedTheme] = newVersion; + await fsp.writeFile( + join(__dirname, '../../love-versions.json'), + JSON.stringify(versions, null, 2) + '\n' + ); + + if (['atom', 'sublime-text', 'vscode'].includes(selectedTheme)) { + const packageLocation: string = join( + __dirname, + `../${selectedTheme}/package.json` + ); + const themePackage: any = JSON.parse( + await fsp.readFile(packageLocation, 'utf8') + ); + themePackage.version = newVersion; + await fsp.writeFile( + packageLocation, + JSON.stringify(themePackage, null, 2) + '\n' + ); + } + } +} + +export async function getVersions(): Promise { + return JSON.parse( + await fsp.readFile(join(__dirname, '../../love-versions.json'), 'utf8') + ); +} + +if (require.main === module) { + entry(); +} diff --git a/source/sublime-text/Site ReadMe.md b/source/sublime-text/Site ReadMe.md new file mode 100644 index 0000000..3342130 --- /dev/null +++ b/source/sublime-text/Site ReadMe.md @@ -0,0 +1,36 @@ +
+
+ +## Preview +
+
+ +
+
+ +![Love Dark Preview 1](../images/sublime-text/love-dark-01.png) +
+ +
+ +![Love Light Preview 1](../images/sublime-text/love-light-01.png) +
+
+ +
+ +
+
+ +## Installation +
+ +
+ +1. Download [the Love theme package](../Love.sublime-package). +1. Move the package to [the appropriate location](https://www.sublimetext.com/docs/3/packages.html). +1. Done! ♥ + +It is recommended to use the default "Adaptive" theme, at the moment Love is only available for Sublime Text as [a color scheme](https://www.sublimetext.com/docs/3/color_schemes.html). Using Adaptive will give you the result as shown in the preview. +
+
diff --git a/source/sublime-text/images/love-dark-01.png b/source/sublime-text/images/love-dark-01.png new file mode 100644 index 0000000..3ee7c79 Binary files /dev/null and b/source/sublime-text/images/love-dark-01.png differ diff --git a/source/sublime-text/images/love-light-01.png b/source/sublime-text/images/love-light-01.png new file mode 100644 index 0000000..4917cbe Binary files /dev/null and b/source/sublime-text/images/love-light-01.png differ diff --git a/source/sublime-text/love-template.sublime-color-scheme b/source/sublime-text/love-template.sublime-color-scheme index 88b754b..17a2b62 100644 --- a/source/sublime-text/love-template.sublime-color-scheme +++ b/source/sublime-text/love-template.sublime-color-scheme @@ -1,6 +1,7 @@ { "name": "Love {{ love.name | capitalize }}", "author": "Holllo", + "version": "{{ version }}", "variables": { "foreground1": "{{ love.colors.foreground1 }}", "foreground2": "{{ love.colors.foreground2 }}", diff --git a/source/tauon/Site ReadMe.md b/source/tauon/Site ReadMe.md new file mode 100644 index 0000000..7f490d8 --- /dev/null +++ b/source/tauon/Site ReadMe.md @@ -0,0 +1,47 @@ +
+
+ +## Preview +
+
+ +
+
+ +![Love Dark Preview](../images/tauon/love-dark-01.png) +
+ +
+ +![Love Light Preview](../images/tauon/love-light-01.png) +
+
+ +
+ +
+
+ +## Installation +
+ +
+ + + +1. Download [the Love theme zip](../love-tauon.zip). +1. Unzip the zip in the `theme` directory inside Tauon's user data directory. You can find the user data directory by going into the Settings and clicking "Open data folder" inside the Functions tab. +1. Done! ♥ +
+ + +
diff --git a/source/tauon/images/love-dark-01.png b/source/tauon/images/love-dark-01.png new file mode 100644 index 0000000..432cff4 Binary files /dev/null and b/source/tauon/images/love-dark-01.png differ diff --git a/source/tauon/images/love-light-01.png b/source/tauon/images/love-light-01.png new file mode 100644 index 0000000..580a3f9 Binary files /dev/null and b/source/tauon/images/love-light-01.png differ diff --git a/source/tauon/love-template.ttheme b/source/tauon/love-template.ttheme index cdb2dee..ee78498 100644 --- a/source/tauon/love-template.ttheme +++ b/source/tauon/love-template.ttheme @@ -1,5 +1,5 @@ # The Love Theme for Tauon Music Box -# Version: 0.1.3 +# Version: {{ version }} # https://love.holllo.cc {% if love.name === 'light' %} diff --git a/source/vscode/Site ReadMe.md b/source/vscode/Site ReadMe.md new file mode 100644 index 0000000..2c4098f --- /dev/null +++ b/source/vscode/Site ReadMe.md @@ -0,0 +1,62 @@ +
+
+ +## Preview +
+
+ +
+
+ +![Love Dark Preview 1](../images/vscode/love-dark-01.png) +
+ +
+ +![Love Light Preview 1](../images/vscode/love-light-01.png) +
+
+ +
+ +
+
+ +## Installation +
+ +
+ +### Via Visual Studio Code + +1. Open the Extensions sidebar by clicking on View -> Extensions. +1. Search for `@id:Holllo.Love`. +1. Click on the green "Install" button. +1. Done! ♥ +
+ +
+ +### Via the Command Line + +1. Run `code --install-extension Holllo.Love`. +1. Done! ♥ +
+ +
+ +### From Source + +Requires [NodeJS](https://nodejs.org) and [Yarn](https://yarnpkg.com) to be installed. + +With a cloned repository and your current working directory at the root of it: + +1. Install the dependencies with `yarn`. +1. Build the theme with `yarn build:vscode`. +1. Change into the VS Code directory with `cd source/vscode/`. +1. Install the packaging utility by running `yarn`. +1. Create the `.vsix` package with `yarn package`. +1. Install the theme with `code --install-extension love-{{ versions.vscode }}.vsix`. +1. Done! ♥ +
+
diff --git a/yarn.lock b/yarn.lock index 502bae0..a2d619f 100644 --- a/yarn.lock +++ b/yarn.lock @@ -208,6 +208,11 @@ dependencies: "@types/node" "*" +"@types/marked@^0.7.4": + version "0.7.4" + resolved "https://registry.yarnpkg.com/@types/marked/-/marked-0.7.4.tgz#607685669bb1bbde2300bc58ba43486cbbee1f0a" + integrity sha512-fdg0NO4qpuHWtZk6dASgsrBggY+8N4dWthl1bAQG9ceKUNKFjqpHaDKCAhRUI6y8vavG7hLSJ4YBwJtZyZEXqw== + "@types/minimatch@*": version "3.0.3" resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-3.0.3.tgz#3dca0e3f33b200fc7d1139c0cd96c1268cadfd9d" @@ -245,6 +250,23 @@ resolved "https://registry.yarnpkg.com/@types/parse-json/-/parse-json-4.0.0.tgz#2f8bb441434d163b35fb8ffdccd7138927ffb8c0" integrity sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA== +"@types/prismjs@*": + version "1.16.0" + resolved "https://registry.yarnpkg.com/@types/prismjs/-/prismjs-1.16.0.tgz#4328c9f65698e59f4feade8f4e5d928c748fd643" + integrity sha512-mEyuziLrfDCQ4juQP1k706BUU/c8OGn/ZFl69AXXY6dStHClKX4P+N8+rhqpul1vRDA2VOygzMRSJJZHyDEOfw== + +"@types/prompts@^2.0.5": + version "2.0.5" + resolved "https://registry.yarnpkg.com/@types/prompts/-/prompts-2.0.5.tgz#b3cb5cd2c69a0da11b21ea6618bffdab6091336c" + integrity sha512-07dV9H+uEmGjtudYst7UlRnctQfd/22zJ2/k1ykZR4Kx/n42hC314v1NCxvaesZebvJJ8i5AVMtBaMbSIR3oBw== + +"@types/refractor@^2.8.0": + version "2.8.0" + resolved "https://registry.yarnpkg.com/@types/refractor/-/refractor-2.8.0.tgz#2e17b69f27e89c1ea076f49b599abe3567c54e01" + integrity sha512-l3wSB96RFZnvB8bnbF8UmYsDD1MQl+u7jtYq+DgI/vo3RD5pdbK3OitGEvMO3DNJhTYmCEhXLVWyyWTddzwNzQ== + dependencies: + "@types/prismjs" "*" + "@types/sass@^1.16.0": version "1.16.0" resolved "https://registry.yarnpkg.com/@types/sass/-/sass-1.16.0.tgz#b41ac1c17fa68ffb57d43e2360486ef526b3d57d" @@ -252,6 +274,13 @@ dependencies: "@types/node" "*" +"@types/semver@^7.1.0": + version "7.1.0" + resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.1.0.tgz#c8c630d4c18cd326beff77404887596f96408408" + integrity sha512-pOKLaubrAEMUItGNpgwl0HMFPrSAFic8oSVIvfu1UwcgGNmNyK9gyhBHKmBnUTwwVvpZfkzUC0GaMgnL6P86uA== + dependencies: + "@types/node" "*" + "@types/tar@^4.0.3": version "4.0.3" resolved "https://registry.yarnpkg.com/@types/tar/-/tar-4.0.3.tgz#e2cce0b8ff4f285293243f5971bd7199176ac489" @@ -796,7 +825,7 @@ caniuse-lite@^1.0.30001020, caniuse-lite@^1.0.30001030: resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001035.tgz#2bb53b8aa4716b2ed08e088d4dc816a5fe089a1e" integrity sha512-C1ZxgkuA4/bUEdMbU5WrGY4+UhMFFiXrgNAfxiMIqWgFTWfv/xsZCS2xEHT2LMq7xAZfuAnu6mcqyDl0ZR6wLQ== -ccount@^1.0.0: +ccount@^1.0.0, ccount@^1.0.3: version "1.0.5" resolved "https://registry.yarnpkg.com/ccount/-/ccount-1.0.5.tgz#ac82a944905a65ce204eb03023157edf29425c17" integrity sha512-MOli1W+nfbPLlKEhInaxhRdp7KVLFxLN5ykwzHgLsLI3H3gs5jjFAK4Eoj3OzzcxCtumDaI8onoVDeQyWaNTkw== @@ -925,6 +954,15 @@ cli-width@^2.0.0: resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-2.2.0.tgz#ff19ede8a9a5e579324147b0c11f0fbcbabed639" integrity sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk= +clipboard@^2.0.0: + version "2.0.6" + resolved "https://registry.yarnpkg.com/clipboard/-/clipboard-2.0.6.tgz#52921296eec0fdf77ead1749421b21c968647376" + integrity sha512-g5zbiixBRk/wyKakSwCKd7vQXDjFnAMGHoEyBogG/bw9kTD9GvdAvaoRR1ALcEzt3pVKxZR0pViekPMIS0QyGg== + dependencies: + good-listener "^1.2.2" + select "^1.1.2" + tiny-emitter "^2.0.0" + cliui@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/cliui/-/cliui-5.0.0.tgz#deefcfdb2e800784aa34f46fa08e06851c7bbbc5" @@ -985,6 +1023,11 @@ color-name@~1.1.4: resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== +comma-separated-tokens@^1.0.0, comma-separated-tokens@^1.0.1: + version "1.0.8" + resolved "https://registry.yarnpkg.com/comma-separated-tokens/-/comma-separated-tokens-1.0.8.tgz#632b80b6117867a158f1080ad498b2fbe7e3f5ea" + integrity sha512-GHuDRO12Sypu2cV70d1dkA2EUmXHgntrzbpvOB+Qy+49ypNfGgFQIC2fhhXbnyrJRynDCAARsT7Ou0M6hirpfw== + commander@^3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/commander/-/commander-3.0.2.tgz#6837c3fb677ad9933d1cfba42dd14d5117d6b39e" @@ -1272,6 +1315,11 @@ define-property@^2.0.2: is-descriptor "^1.0.2" isobject "^3.0.1" +delegate@^3.1.2: + version "3.2.0" + resolved "https://registry.yarnpkg.com/delegate/-/delegate-3.2.0.tgz#b66b71c3158522e8ab5744f720d8ca0c2af59166" + integrity sha512-IofjkYBZaZivn0V8nnsMJGBr4jVLxHDheKSW88PyxS5QC4Vo9ZbZVvhzlSxY87fVq3STR6r+4cGepyHkcWOQSw== + des.js@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/des.js/-/des.js-1.0.1.tgz#5382142e1bdc53f85d86d53e5f4aa7deb91e0843" @@ -2184,6 +2232,13 @@ gonzales-pe@^4.2.4: dependencies: minimist "1.1.x" +good-listener@^1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/good-listener/-/good-listener-1.2.2.tgz#d53b30cdf9313dffb7dc9a0d477096aa6d145c50" + integrity sha1-1TswzfkxPf+33JoNR3CWqm0UXFA= + dependencies: + delegate "^3.1.2" + got@^9.6.0: version "9.6.0" resolved "https://registry.yarnpkg.com/got/-/got-9.6.0.tgz#edf45e7d67f99545705de1f7bbeeeb121765ed85" @@ -2292,6 +2347,58 @@ hash.js@^1.0.0, hash.js@^1.0.3: inherits "^2.0.3" minimalistic-assert "^1.0.1" +hast-util-from-parse5@^5.0.0: + version "5.0.3" + resolved "https://registry.yarnpkg.com/hast-util-from-parse5/-/hast-util-from-parse5-5.0.3.tgz#3089dc0ee2ccf6ec8bc416919b51a54a589e097c" + integrity sha512-gOc8UB99F6eWVWFtM9jUikjN7QkWxB3nY0df5Z0Zq1/Nkwl5V4hAAsl0tmwlgWl/1shlTF8DnNYLO8X6wRV9pA== + dependencies: + ccount "^1.0.3" + hastscript "^5.0.0" + property-information "^5.0.0" + web-namespaces "^1.1.2" + xtend "^4.0.1" + +hast-util-is-element@^1.0.0: + version "1.0.4" + resolved "https://registry.yarnpkg.com/hast-util-is-element/-/hast-util-is-element-1.0.4.tgz#059090a05cc02e275df1ad02caf8cb422fcd2e02" + integrity sha512-NFR6ljJRvDcyPP5SbV7MyPBgF47X3BsskLnmw1U34yL+X6YC0MoBx9EyMg8Jtx4FzGH95jw8+c1VPLHaRA0wDQ== + +hast-util-parse-selector@^2.0.0: + version "2.2.4" + resolved "https://registry.yarnpkg.com/hast-util-parse-selector/-/hast-util-parse-selector-2.2.4.tgz#60c99d0b519e12ab4ed32e58f150ec3f61ed1974" + integrity sha512-gW3sxfynIvZApL4L07wryYF4+C9VvH3AUi7LAnVXV4MneGEgwOByXvFo18BgmTWnm7oHAe874jKbIB1YhHSIzA== + +hast-util-to-html@^6.0.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/hast-util-to-html/-/hast-util-to-html-6.1.0.tgz#86bcd19c3bd46af456984f8f34db16298c2b10b0" + integrity sha512-IlC+LG2HGv0Y8js3wqdhg9O2sO4iVpRDbHOPwXd7qgeagpGsnY49i8yyazwqS35RA35WCzrBQE/n0M6GG/ewxA== + dependencies: + ccount "^1.0.0" + comma-separated-tokens "^1.0.1" + hast-util-is-element "^1.0.0" + hast-util-whitespace "^1.0.0" + html-void-elements "^1.0.0" + property-information "^5.2.0" + space-separated-tokens "^1.0.0" + stringify-entities "^2.0.0" + unist-util-is "^3.0.0" + xtend "^4.0.1" + +hast-util-whitespace@^1.0.0: + version "1.0.4" + resolved "https://registry.yarnpkg.com/hast-util-whitespace/-/hast-util-whitespace-1.0.4.tgz#e4fe77c4a9ae1cb2e6c25e02df0043d0164f6e41" + integrity sha512-I5GTdSfhYfAPNztx2xJRQpG8cuDSNt599/7YUn7Gx/WxNMsG+a835k97TDkFgk123cwjfwINaZknkKkphx/f2A== + +hastscript@^5.0.0: + version "5.1.2" + resolved "https://registry.yarnpkg.com/hastscript/-/hastscript-5.1.2.tgz#bde2c2e56d04c62dd24e8c5df288d050a355fb8a" + integrity sha512-WlztFuK+Lrvi3EggsqOkQ52rKbxkXL3RwB6t5lwoa8QLMemoWfBuL43eDrwOamJyR7uKQKdmKYaBH1NZBiIRrQ== + dependencies: + comma-separated-tokens "^1.0.0" + hast-util-parse-selector "^2.0.0" + property-information "^5.0.0" + space-separated-tokens "^1.0.0" + hmac-drbg@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1" @@ -2323,6 +2430,11 @@ html-tags@^3.1.0: resolved "https://registry.yarnpkg.com/html-tags/-/html-tags-3.1.0.tgz#7b5e6f7e665e9fb41f30007ed9e0d41e97fb2140" integrity sha512-1qYz89hW3lFDEazhjW0yVAV87lw8lVkrJocr72XmBkMKsoSVJCQx3W8BXsC7hO2qAt8BoVjYjtAcZ9perqGnNg== +html-void-elements@^1.0.0: + version "1.0.5" + resolved "https://registry.yarnpkg.com/html-void-elements/-/html-void-elements-1.0.5.tgz#ce9159494e86d95e45795b166c2021c2cfca4483" + integrity sha512-uE/TxKuyNIcx44cIWnjr/rfIATDH7ZaOMmstu0CwhFG1Dunhlp4OC6/NMbhiwoq5BpW0ubi303qnEk/PZj614w== + htmlclean@^3.0.8: version "3.0.8" resolved "https://registry.yarnpkg.com/htmlclean/-/htmlclean-3.0.8.tgz#cea451cf5399d4018386a57129489f2d630e62b0" @@ -2570,7 +2682,7 @@ is-date-object@^1.0.1: resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.2.tgz#bda736f2cd8fd06d32844e7743bfa7494c3bfd7e" integrity sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g== -is-decimal@^1.0.0: +is-decimal@^1.0.0, is-decimal@^1.0.2: version "1.0.4" resolved "https://registry.yarnpkg.com/is-decimal/-/is-decimal-1.0.4.tgz#65a3a5958a1c5b63a706e1b333d7cd9f630d3fa5" integrity sha512-RGdriMmQQvZ2aqaQq3awNA6dCGtKpiDFcOzrTWrDAT2MiWrKQVPmxLGHl7Y2nNu6led0kEyoX0enY0qXYsv9zw== @@ -2712,6 +2824,11 @@ is-plain-obj@^1.1.0: resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e" integrity sha1-caUMhCnfync8kqOQpKA7OfzVHT4= +is-plain-obj@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-2.1.0.tgz#45e42e37fccf1f40da8e5f76ee21515840c09287" + integrity sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA== + is-plain-object@^2.0.3, is-plain-object@^2.0.4: version "2.0.4" resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677" @@ -2925,6 +3042,11 @@ kind-of@^6.0.0, kind-of@^6.0.2: resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd" integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== +kleur@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/kleur/-/kleur-3.0.3.tgz#a79c9ecc86ee1ce3fa6206d1216c501f147fc07e" + integrity sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w== + known-css-properties@^0.18.0: version "0.18.0" resolved "https://registry.yarnpkg.com/known-css-properties/-/known-css-properties-0.18.0.tgz#d6e00b56ee1d5b0d171fd86df1583cfb012c521f" @@ -3123,6 +3245,11 @@ markdown-table@^1.1.0: resolved "https://registry.yarnpkg.com/markdown-table/-/markdown-table-1.1.3.tgz#9fcb69bcfdb8717bfd0398c6ec2d93036ef8de60" integrity sha512-1RUZVgQlpJSPWYbFSpmudq5nHY1doEIv89gBtF0s4gW1GF2XorxcA/70M5vq7rLv0a6mhOUccRsqkwhwLCIQ2Q== +marked@^0.8.2: + version "0.8.2" + resolved "https://registry.yarnpkg.com/marked/-/marked-0.8.2.tgz#4faad28d26ede351a7a1aaa5fec67915c869e355" + integrity sha512-EGwzEeCcLniFX51DhTpmTom+dSA/MG/OBUDjnWtHbEnjAH180VzUeAw+oE4+Zv+CoYBWyRlYOTR0N8SO9R1PVw== + mathml-tag-names@^2.1.3: version "2.1.3" resolved "https://registry.yarnpkg.com/mathml-tag-names/-/mathml-tag-names-2.1.3.tgz#4ddadd67308e780cf16a47685878ee27b736a0a3" @@ -3736,6 +3863,18 @@ parse-entities@^1.0.2, parse-entities@^1.1.0: is-decimal "^1.0.0" is-hexadecimal "^1.0.0" +parse-entities@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/parse-entities/-/parse-entities-2.0.0.tgz#53c6eb5b9314a1f4ec99fa0fdf7ce01ecda0cbe8" + integrity sha512-kkywGpCcRYhqQIchaWqZ875wzpS/bMKhz5HnN3p7wveJTkTtyAB/AlnS0f8DFSqYW1T82t6yEAkEcB+A1I3MbQ== + dependencies: + character-entities "^1.0.0" + character-entities-legacy "^1.0.0" + character-reference-invalid "^1.0.0" + is-alphanumerical "^1.0.0" + is-decimal "^1.0.0" + is-hexadecimal "^1.0.0" + parse-json@^2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-2.2.0.tgz#f480f40434ef80741f8469099f8dea18f55a4dc9" @@ -3761,6 +3900,11 @@ parse-json@^5.0.0: json-parse-better-errors "^1.0.1" lines-and-columns "^1.1.6" +parse5@^5.0.0: + version "5.1.1" + resolved "https://registry.yarnpkg.com/parse5/-/parse5-5.1.1.tgz#f68e4e5ba1852ac2cadc00f4555fff6c2abb6178" + integrity sha512-ugq4DFI0Ptb+WWjAdOK16+u/nHfiIrcE+sh8kZMaM0WllQKLI9rOUq6c2b7cwPkXdzfQESqvoqK6ug7U/Yyzug== + pascalcase@^0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14" @@ -4006,6 +4150,13 @@ prettier@^1.15.2: resolved "https://registry.yarnpkg.com/prettier/-/prettier-1.19.1.tgz#f7d7f5ff8a9cd872a7be4ca142095956a60797cb" integrity sha512-s7PoyDv/II1ObgQunCbB9PdLmUcBZcnWOcxDh7O0N/UwDEsHyqkW+Qh28jW+mVuCdx7gLB0BotYI1Y6uI9iyew== +prismjs@~1.20.0: + version "1.20.0" + resolved "https://registry.yarnpkg.com/prismjs/-/prismjs-1.20.0.tgz#9b685fc480a3514ee7198eac6a3bf5024319ff03" + integrity sha512-AEDjSrVNkynnw6A+B1DsFkd6AVdTnp+/WoUixFRULlCLZVRZlVQMVWio/16jv7G1FscUxQxOQhWwApgbnxr6kQ== + optionalDependencies: + clipboard "^2.0.0" + process-nextick-args@~2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" @@ -4021,6 +4172,21 @@ progress@^2.0.0: resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8" integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA== +prompts@^2.3.2: + version "2.3.2" + resolved "https://registry.yarnpkg.com/prompts/-/prompts-2.3.2.tgz#480572d89ecf39566d2bd3fe2c9fccb7c4c0b068" + integrity sha512-Q06uKs2CkNYVID0VqwfAl9mipo99zkBv/n2JtWY89Yxa3ZabWSrs0e2KTudKVa3peLUvYXMefDqIleLPVUBZMA== + dependencies: + kleur "^3.0.3" + sisteransi "^1.0.4" + +property-information@^5.0.0, property-information@^5.2.0: + version "5.4.0" + resolved "https://registry.yarnpkg.com/property-information/-/property-information-5.4.0.tgz#16e08f13f4e5c4a7be2e4ec431c01c4f8dba869a" + integrity sha512-nmMWAm/3vKFGmmOWOcdLjgq/Hlxa+hsuR/px1Lp/UGEyc5A22A6l78Shc2C0E71sPmAqglni+HrS7L7VJ7AUCA== + dependencies: + xtend "^4.0.0" + proto-props@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/proto-props/-/proto-props-2.0.0.tgz#8ac6e6dec658545815c623a3bc81580deda9a181" @@ -4211,6 +4377,15 @@ redent@^3.0.0: indent-string "^4.0.0" strip-indent "^3.0.0" +refractor@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/refractor/-/refractor-3.0.0.tgz#7c8072eaf49dbc1b333e7acc64fb52a1c9b17c75" + integrity sha512-eCGK/oP4VuyW/ERqjMZRZHxl2QsztbkedkYy/SxqE/+Gh1gLaAF17tWIOcVJDiyGhar1NZy/0B9dFef7J0+FDw== + dependencies: + hastscript "^5.0.0" + parse-entities "^2.0.0" + prismjs "~1.20.0" + regenerator-runtime@^0.13.4: version "0.13.5" resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.5.tgz#d878a1d094b4306d10b9096484b33ebd55e26697" @@ -4253,6 +4428,32 @@ registry-url@^5.0.0: dependencies: rc "^1.2.8" +rehype-parse@^6.0.0: + version "6.0.2" + resolved "https://registry.yarnpkg.com/rehype-parse/-/rehype-parse-6.0.2.tgz#aeb3fdd68085f9f796f1d3137ae2b85a98406964" + integrity sha512-0S3CpvpTAgGmnz8kiCyFLGuW5yA4OQhyNTm/nwPopZ7+PI11WnGl1TTWTGv/2hPEe/g2jRLlhVVSsoDH8waRug== + dependencies: + hast-util-from-parse5 "^5.0.0" + parse5 "^5.0.0" + xtend "^4.0.0" + +rehype-stringify@^6.0.0: + version "6.0.1" + resolved "https://registry.yarnpkg.com/rehype-stringify/-/rehype-stringify-6.0.1.tgz#b6aa9f84d5276c5d247c62fc1ea15983a35a4575" + integrity sha512-JfEPRDD4DiG7jet4md7sY07v6ACeb2x+9HWQtRPm2iA6/ic31hCv1SNBUtpolJASxQ/D8gicXiviW4TJKEMPKQ== + dependencies: + hast-util-to-html "^6.0.0" + xtend "^4.0.0" + +rehype@^10.0.0: + version "10.0.0" + resolved "https://registry.yarnpkg.com/rehype/-/rehype-10.0.0.tgz#817a52747ebbb78c02d34d12efb0ccfac8195228" + integrity sha512-0W8M4Y91b2QuzDSTjkZgBOJo79bP089YbSQNPMqebuUVrp6iveoi+Ra6/H7fJwUxq8FCHGCGzkLaq3fvO9XnVg== + dependencies: + rehype-parse "^6.0.0" + rehype-stringify "^6.0.0" + unified "^9.0.0" + remark-parse@^6.0.0: version "6.0.3" resolved "https://registry.yarnpkg.com/remark-parse/-/remark-parse-6.0.3.tgz#c99131052809da482108413f87b0ee7f52180a3a" @@ -4457,6 +4658,11 @@ sass@^1.26.3: dependencies: chokidar ">=2.0.0 <4.0.0" +select@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/select/-/select-1.1.2.tgz#0e7350acdec80b1108528786ec1d4418d11b396d" + integrity sha1-DnNQrN7ICxEIUoeG7B1EGNEbOW0= + semver-diff@^3.1.1: version "3.1.1" resolved "https://registry.yarnpkg.com/semver-diff/-/semver-diff-3.1.1.tgz#05f77ce59f325e00e2706afd67bb506ddb1ca32b" @@ -4479,6 +4685,11 @@ semver@^7.1.2, semver@^7.1.3: resolved "https://registry.yarnpkg.com/semver/-/semver-7.1.3.tgz#e4345ce73071c53f336445cfc19efb1c311df2a6" integrity sha512-ekM0zfiA9SCBlsKa2X1hxyxiI4L3B6EbVJkkdgQXnSEEaHlGdvyodMruTiulSRWMMB4NeIuYNMC9rTKTz97GxA== +semver@^7.3.2: + version "7.3.2" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.2.tgz#604962b052b81ed0786aae84389ffba70ffd3938" + integrity sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ== + set-blocking@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" @@ -4529,6 +4740,11 @@ signal-exit@^3.0.0, signal-exit@^3.0.2: resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d" integrity sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0= +sisteransi@^1.0.4: + version "1.0.5" + resolved "https://registry.yarnpkg.com/sisteransi/-/sisteransi-1.0.5.tgz#134d681297756437cc05ca01370d3a7a571075ed" + integrity sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg== + slash@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/slash/-/slash-2.0.0.tgz#de552851a1759df3a8f206535442f5ec4ddeab44" @@ -4612,6 +4828,11 @@ source-map@^0.6.0, source-map@^0.6.1: resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== +space-separated-tokens@^1.0.0: + version "1.1.5" + resolved "https://registry.yarnpkg.com/space-separated-tokens/-/space-separated-tokens-1.1.5.tgz#85f32c3d10d9682007e917414ddc5c26d1aa6899" + integrity sha512-q/JSVd1Lptzhf5bkYm4ob4iWPjx0KiRe3sRFBNrVqbJkFaBm5vbbowy1mymoPNLRa52+oadOhJ+K49wsSeSjTA== + spdx-correct@^3.0.0: version "3.1.0" resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.1.0.tgz#fb83e504445268f154b074e218c87c003cd31df4" @@ -4745,6 +4966,17 @@ stringify-entities@^1.0.1: is-alphanumerical "^1.0.0" is-hexadecimal "^1.0.0" +stringify-entities@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/stringify-entities/-/stringify-entities-2.0.0.tgz#fa7ca6614b355fb6c28448140a20c4ede7462827" + integrity sha512-fqqhZzXyAM6pGD9lky/GOPq6V4X0SeTAFBl0iXb/BzOegl40gpf/bV3QQP7zULNYvjr6+Dx8SCaDULjVoOru0A== + dependencies: + character-entities-html4 "^1.0.0" + character-entities-legacy "^1.0.0" + is-alphanumerical "^1.0.0" + is-decimal "^1.0.2" + is-hexadecimal "^1.0.0" + strip-ansi@^5.0.0, strip-ansi@^5.1.0, strip-ansi@^5.2.0: version "5.2.0" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.2.0.tgz#8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae" @@ -4985,6 +5217,11 @@ timers-browserify@^2.0.4: dependencies: setimmediate "^1.0.4" +tiny-emitter@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/tiny-emitter/-/tiny-emitter-2.1.0.tgz#1d1a56edfc51c43e863cbb5382a72330e3555423" + integrity sha512-NB6Dk1A9xgQPMoGqC5CVXn123gWyte215ONT5Pp5a0yt4nlEoO1ZWeCwpncaekPHXO60i47ihFnZPiRPjRMq4Q== + tmp@^0.0.33: version "0.0.33" resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9" @@ -5166,6 +5403,18 @@ unified@^7.0.0: vfile "^3.0.0" x-is-string "^0.1.0" +unified@^9.0.0: + version "9.0.0" + resolved "https://registry.yarnpkg.com/unified/-/unified-9.0.0.tgz#12b099f97ee8b36792dbad13d278ee2f696eed1d" + integrity sha512-ssFo33gljU3PdlWLjNp15Inqb77d6JnJSfyplGJPT/a+fNRNyCBeveBAYJdO5khKdF6WVHa/yYCC7Xl6BDwZUQ== + dependencies: + bail "^1.0.0" + extend "^3.0.0" + is-buffer "^2.0.0" + is-plain-obj "^2.0.0" + trough "^1.0.0" + vfile "^4.0.0" + union-value@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/union-value/-/union-value-1.0.1.tgz#0b6fe7b835aecda61c6ea4d4f02c14221e109847" @@ -5349,6 +5598,14 @@ vfile-message@^1.0.0: dependencies: unist-util-stringify-position "^1.1.1" +vfile-message@^2.0.0: + version "2.0.4" + resolved "https://registry.yarnpkg.com/vfile-message/-/vfile-message-2.0.4.tgz#5b43b88171d409eae58477d13f23dd41d52c371a" + integrity sha512-DjssxRGkMvifUOJre00juHoP9DPWuzjxKuMDrhNbk2TdaYYBNMStsNhEOt3idrtI12VQYM/1+iM0KOzXi4pxwQ== + dependencies: + "@types/unist" "^2.0.0" + unist-util-stringify-position "^2.0.0" + vfile@^3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/vfile/-/vfile-3.0.1.tgz#47331d2abe3282424f4a4bb6acd20a44c4121803" @@ -5359,11 +5616,27 @@ vfile@^3.0.0: unist-util-stringify-position "^1.0.0" vfile-message "^1.0.0" +vfile@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/vfile/-/vfile-4.1.0.tgz#d79248957f43225d57ff67a56effc67bef08946e" + integrity sha512-BaTPalregj++64xbGK6uIlsurN3BCRNM/P2Pg8HezlGzKd1O9PrwIac6bd9Pdx2uTb0QHoioZ+rXKolbVXEgJg== + dependencies: + "@types/unist" "^2.0.0" + is-buffer "^2.0.0" + replace-ext "1.0.0" + unist-util-stringify-position "^2.0.0" + vfile-message "^2.0.0" + vm-browserify@^1.0.1: version "1.1.2" resolved "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-1.1.2.tgz#78641c488b8e6ca91a75f511e7a3b32a86e5dda0" integrity sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ== +web-namespaces@^1.1.2: + version "1.1.4" + resolved "https://registry.yarnpkg.com/web-namespaces/-/web-namespaces-1.1.4.tgz#bc98a3de60dadd7faefc403d1076d529f5e030ec" + integrity sha512-wYxSGajtmoP4WxfejAPIr4l0fVh+jeMXZb08wNc0tMg6xsfZXj3cECqIK0G7ZAqUq0PP8WlMDtaOGVBTAWztNw== + which-module@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a"