This also adds a new script and a single JSON file to house all the version numbers for all the various integrations.tags/0.1.0
@@ -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 |
@@ -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" | |||
} |
@@ -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", | |||
@@ -0,0 +1,78 @@ | |||
<section> | |||
<header class="is-light padded"> | |||
## Preview | |||
</header> | |||
</section> | |||
<section class="images-section"> | |||
<div class="is-dark"> | |||
 | |||
</div> | |||
<div class="is-light"> | |||
 | |||
</div> | |||
<div class="is-dark"> | |||
 | |||
</div> | |||
<div class="is-light"> | |||
 | |||
</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> |
@@ -0,0 +1,34 @@ | |||
<section> | |||
<header class="is-light padded"> | |||
## Preview | |||
</header> | |||
</section> | |||
<section class="images-section"> | |||
<div class="is-dark"> | |||
 | |||
</div> | |||
<div class="is-light"> | |||
 | |||
</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> |
@@ -0,0 +1,37 @@ | |||
<section> | |||
<header class="is-light padded"> | |||
## Preview | |||
</header> | |||
</section> | |||
<section class="images-section"> | |||
<div class="is-dark"> | |||
 | |||
</div> | |||
<div class="is-light"> | |||
 | |||
</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> |
@@ -1,5 +1,5 @@ | |||
# The Love Theme for Kitty | |||
# Version: 0.1.0 | |||
# Version: {{ version }} | |||
# https://love.holllo.cc | |||
# Documentation: | |||
@@ -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> |
@@ -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> | |||
@@ -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; | |||
} | |||
} |
@@ -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); | |||
} |
@@ -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'; |
@@ -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. | |||
@@ -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. | |||
@@ -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')) { | |||
@@ -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. | |||
@@ -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(); | |||
} |
@@ -0,0 +1,36 @@ | |||
<section> | |||
<header class="is-light padded"> | |||
## Preview | |||
</header> | |||
</section> | |||
<section class="images-section"> | |||
<div class="is-dark"> | |||
 | |||
</div> | |||
<div class="is-light"> | |||
 | |||
</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> |
@@ -1,6 +1,7 @@ | |||
{ | |||
"name": "Love {{ love.name | capitalize }}", | |||
"author": "Holllo", | |||
"version": "{{ version }}", | |||
"variables": { | |||
"foreground1": "{{ love.colors.foreground1 }}", | |||
"foreground2": "{{ love.colors.foreground2 }}", | |||
@@ -0,0 +1,47 @@ | |||
<section> | |||
<header class="is-light padded"> | |||
## Preview | |||
</header> | |||
</section> | |||
<section class="images-section"> | |||
<div class="is-dark"> | |||
 | |||
</div> | |||
<div class="is-light"> | |||
 | |||
</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> |
@@ -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' %} | |||
@@ -0,0 +1,62 @@ | |||
<section> | |||
<header class="is-light padded"> | |||
## Preview | |||
</header> | |||
</section> | |||
<section class="images-section"> | |||
<div class="is-dark"> | |||
 | |||
</div> | |||
<div class="is-light"> | |||
 | |||
</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 -> 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> |
@@ -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" | |||