Add individual pages for integrations with previews and installation instructions.

This also adds a new script and a single JSON file to house all the version
numbers for all the various integrations.
This commit is contained in:
Bauke 2020-04-27 00:05:19 +02:00
parent e58677993a
commit 9af072640b
Signed by: Bauke
GPG Key ID: C1C0F29952BCF558
31 changed files with 1014 additions and 26 deletions

15
.gitignore vendored
View File

@ -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

8
love-versions.json Normal file
View File

@ -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"
}

View File

@ -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",

View File

@ -0,0 +1,78 @@
<section>
<header class="is-light padded">
## Preview
</header>
</section>
<section class="images-section">
<div class="is-dark">
![Love Dark Preview 1](../images/atom/love-dark-01.png)
</div>
<div class="is-light">
![Love Light Preview 1](../images/atom/love-light-01.png)
</div>
<div class="is-dark">
![Love Dark Preview 2](../images/atom/love-dark-02.png)
</div>
<div class="is-light">
![Love Light Preview 2](../images/atom/love-light-02.png)
</div>
</section>
<div class="spacer"></div>
<section>
<header class="is-light padded">
## Installation
</header>
<div class="is-dark padded">
### 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! ♥
</div>
<div class="is-light padded">
### 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! ♥
</div>
<div class="is-dark padded">
### 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! ♥
</div>
</section>

View File

@ -0,0 +1,34 @@
<section>
<header class="is-light padded">
## Preview
</header>
</section>
<section class="images-section">
<div class="is-dark">
![Love Dark Preview 1](../images/firefox/love-dark-01.png)
</div>
<div class="is-light">
![Love Light Preview 1](../images/firefox/love-light-01.png)
</div>
</section>
<div class="spacer"></div>
<section>
<header class="is-light padded">
## Installation
</header>
<div class="is-dark padded">
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! ♥
</div>
</section>

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

View File

@ -0,0 +1,37 @@
<section>
<header class="is-light padded">
## Preview
</header>
</section>
<section class="images-section">
<div class="is-dark">
![Love Dark Preview 1](../images/kitty/love-dark-01.png)
</div>
<div class="is-light">
![Love Light Preview 1](../images/kitty/love-light-01.png)
</div>
</section>
<div class="spacer"></div>
<section>
<header class="is-light padded">
## Installation
</header>
<div class="is-dark padded">
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! ♥
</div>
</section>

Binary file not shown.

After

Width:  |  Height:  |  Size: 267 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 265 KiB

View File

@ -1,5 +1,5 @@
# The Love Theme for Kitty
# Version: 0.1.0
# Version: {{ version }}
# https://love.holllo.cc
# Documentation:

32
source/pages/get.html Normal file
View File

@ -0,0 +1,32 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>{{ title }}</title>
<link href="../css/style.css" rel="stylesheet">
<link rel="shortcut icon" href="../images/love-mark-square.png" type="image/x-icon">
</head>
<body id="get-love-page">
<div id="wrapper">
<h1>{{ title }}</h1>
{{ markdown | safe }}
<div class="spacer"></div>
<footer>
<div>
<a class="hide-external" href="https://holllo.cc">
<img src="../images/holllo-mark.png" alt="Made by Holllo">
</a>
</div>
<div>
<a id="liberapay-button" class="hide-external" href="https://liberapay.com/Holllo/donate">
<img src="../images/liberapay-button.svg" alt="Support Holllo via LiberaPay">
</a>
</div>
</footer>
</div>
</body>
</html>

View File

@ -158,25 +158,22 @@
</h3>
<ul>
<li>
<a href="https://atom.io/users/Holllo">Atom</a>
<a href="get/atom.html">Atom</a>
</li>
<li>
Firefox Color
<a href="https://color.firefox.com/?theme=XQAAAAIYAQAAAAAAAABBqYhm849SCia2CaaEGccwS-xNKlhSXT3Vtt2XDAs6h7gdL5pcAb7xqXopx66Ln4wY2B4_apm1Xo1m-kSLNybjC15LIb4OXWhGfyPJrZA2e0IeJeWC0yox2SBMD04SrZBvZwoC8QX9EBbJd69TMCmh7d-g0Wc_msdR2nzvnbFECN4_c5VKI9Btzbzvdvjw1-KH_nfezJDCoRea7HASdSJBgMVdHiWfmWiLujatKOWmCJfGaFyV_75SjmA">Dark</a>
{{- '/' -}}
<a href="https://color.firefox.com/?theme=XQAAAAIqAQAAAAAAAABBqYhm849SCia2CaaEGccwS-xNKliFvSp4LiFpmRcA5AwYsIABKiGtHcakOiV8NSmxjnVR9H4TYg2VNxSp6iDrgcvBoo3NoFSZSndEX6ZHCH8h1ahP78I4dZXjJD8ZzlOxqC6HrDKQmTBAEm09iix8uVI5_QcbhtDjDxpYbPP5WGvXu84Za9H0s1VXwrgKdxIgKTJraGh0P5bPsWJ_YY-lPSsAB62ABnbOV7SJEIMsWMC9a01QhpCubrrA-f_WNVAA">Light</a>
<a href="get/firefox.html">Firefox</a>
</li>
<li>
<a class="fake-external" href="love-kitty.zip">Kitty</a>
<a href="get/kitty.html">Kitty</a>
</li>
<li>
<a class="fake-external" href="Love.sublime-package">Sublime Text</a>
<a href="get/sublime-text.html">Sublime Text</a>
</li>
<li>
<a class="fake-external" href="love-tauon.zip">Tauon Music Box</a>
<a href="get/tauon.html">Tauon Music Box</a>
</li>
<li>
<a href="https://marketplace.visualstudio.com/items?itemName=Holllo.love">Visual Studio Code</a>
<a href="get/vscode.html">Visual Studio Code</a>
</li>
</ul>
</div>

View File

@ -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;
}
}

View File

@ -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);
}

View File

@ -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';

View File

@ -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<void> {
const themeDirectory: string = join(__dirname, '../kitty/');
@ -13,6 +14,8 @@ export async function entry(): Promise<void> {
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<void> {
// 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.

View File

@ -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<void> {
// Create all required directories for the website.
@ -22,6 +28,8 @@ export async function entry(): Promise<void> {
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 `<pre><code class="language-${language}">${codeHTML}</code></pre>`;
};
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.

View File

@ -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<void> {
const themeDirectory: string = join(__dirname, '../sublime-text/');
@ -14,6 +15,7 @@ export async function entry(): Promise<void> {
});
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<void> {
);
const output: string = nunjucks.renderString(template, {
love: variant
love: variant,
version: versions['sublime-text']
});
let formattedOutput = '';
for (const line of output.split('\n')) {

View File

@ -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<void> {
const themeDirectory: string = join(__dirname, '../tauon/');
@ -18,6 +19,7 @@ export async function entry(): Promise<void> {
// 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<void> {
// 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.

119
source/scripts/version.ts Normal file
View File

@ -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<void> {
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<Versions> {
return JSON.parse(
await fsp.readFile(join(__dirname, '../../love-versions.json'), 'utf8')
);
}
if (require.main === module) {
entry();
}

View File

@ -0,0 +1,36 @@
<section>
<header class="is-light padded">
## Preview
</header>
</section>
<section class="images-section">
<div class="is-dark">
![Love Dark Preview 1](../images/sublime-text/love-dark-01.png)
</div>
<div class="is-light">
![Love Light Preview 1](../images/sublime-text/love-light-01.png)
</div>
</section>
<div class="spacer"></div>
<section>
<header class="is-light padded">
## Installation
</header>
<div class="is-dark padded">
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.
</div>
</section>

Binary file not shown.

After

Width:  |  Height:  |  Size: 272 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 283 KiB

View File

@ -1,6 +1,7 @@
{
"name": "Love {{ love.name | capitalize }}",
"author": "Holllo",
"version": "{{ version }}",
"variables": {
"foreground1": "{{ love.colors.foreground1 }}",
"foreground2": "{{ love.colors.foreground2 }}",

View File

@ -0,0 +1,47 @@
<section>
<header class="is-light padded">
## Preview
</header>
</section>
<section class="images-section">
<div class="is-dark">
![Love Dark Preview](../images/tauon/love-dark-01.png)
</div>
<div class="is-light">
![Love Light Preview](../images/tauon/love-light-01.png)
</div>
</section>
<div class="spacer"></div>
<section>
<header class="is-light padded">
## Installation
</header>
<div class="is-dark padded">
<!-- TODO: Uncomment when the section below is added.
### Official Love
-->
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! ♥
</div>
<!-- TODO: Uncomment and add the version of Tauon when it's released.
<div class="is-light padded">
### Neon Love
Starting with [version ...](https://github.com/Taiko2k/TauonMusicBox/releases), Tauon also has a native theme that is based on Love [called "Neon Love"](https://github.com/Taiko2k/TauonMusicBox/blob/master/theme/Neon%20Love.ttheme).
</div>
-->
</section>

Binary file not shown.

After

Width:  |  Height:  |  Size: 535 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 541 KiB

View File

@ -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' %}

View File

@ -0,0 +1,62 @@
<section>
<header class="is-light padded">
## Preview
</header>
</section>
<section class="images-section">
<div class="is-dark">
![Love Dark Preview 1](../images/vscode/love-dark-01.png)
</div>
<div class="is-light">
![Love Light Preview 1](../images/vscode/love-light-01.png)
</div>
</section>
<div class="spacer"></div>
<section>
<header class="is-light padded">
## Installation
</header>
<div class="is-dark padded">
### Via Visual Studio Code
1. Open the Extensions sidebar by clicking on <code>View&nbsp;->&nbsp;Extensions</code>.
1. Search for `@id:Holllo.Love`.
1. Click on the green "Install" button.
1. Done! ♥
</div>
<div class="is-light padded">
### Via the Command Line
1. Run `code --install-extension Holllo.Love`.
1. Done! ♥
</div>
<div class="is-dark padded">
### 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! ♥
</div>
</section>

277
yarn.lock
View File

@ -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"