Move to self-hosted Gitea, update dependencies, clean up stuff.
This commit is contained in:
parent
21c2ea2a1d
commit
b8bd49ff94
|
@ -1,30 +0,0 @@
|
||||||
.common:
|
|
||||||
image: node:12
|
|
||||||
cache:
|
|
||||||
key: ${CI_COMMIT_REF_SLUG}
|
|
||||||
paths:
|
|
||||||
- node_modules/
|
|
||||||
before_script:
|
|
||||||
- node --version
|
|
||||||
- yarn --version
|
|
||||||
- yarn
|
|
||||||
|
|
||||||
test:
|
|
||||||
extends: .common
|
|
||||||
stage: test
|
|
||||||
script:
|
|
||||||
- yarn test
|
|
||||||
|
|
||||||
pages:
|
|
||||||
extends: .common
|
|
||||||
stage: deploy
|
|
||||||
only:
|
|
||||||
- master@holllo/love
|
|
||||||
script:
|
|
||||||
- yarn build
|
|
||||||
- cp 'public/index.html' 'public/404.html'
|
|
||||||
# Copy various theme output files over so they're available through the website.
|
|
||||||
- yarn copy-themes
|
|
||||||
artifacts:
|
|
||||||
paths:
|
|
||||||
- public
|
|
|
@ -0,0 +1,21 @@
|
||||||
|
The MIT License
|
||||||
|
|
||||||
|
Copyright (c) 2020 Holllo <helllo@holllo.cc>
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
of this software and associated documentation files (the "Software"), to deal
|
||||||
|
in the Software without restriction, including without limitation the rights
|
||||||
|
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
copies of the Software, and to permit persons to whom the Software is
|
||||||
|
furnished to do so, subject to the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be included in all
|
||||||
|
copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||||
|
SOFTWARE.
|
7
License
7
License
|
@ -1,7 +0,0 @@
|
||||||
Copyright 2020 Holllo <helllo@holllo.cc>
|
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
|
|
||||||
|
|
||||||
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
|
|
||||||
|
|
||||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
|
@ -0,0 +1,34 @@
|
||||||
|
# Publishing
|
||||||
|
|
||||||
|
This document mainly exists so I ([Bauke](https://bauke.xyz)) remember how to go about publishing Love since it's a little complicated for certain platforms.
|
||||||
|
|
||||||
|
## Published to platforms
|
||||||
|
|
||||||
|
The following sections assume you have previously published a version, but are starting from a completely fresh repository.
|
||||||
|
|
||||||
|
### Atom
|
||||||
|
|
||||||
|
Requires the [Atom Package Manager](https://github.com/atom/apm) to be installed.
|
||||||
|
|
||||||
|
1. Clone all the `love-...` repositories from [the GitHub organization](https://github.com/Holllo) into `source/atom/`. The directories created will be gitignored in the current repository.
|
||||||
|
2. Build the Atom theme by running `yarn build` (or `yarn build:atom`).
|
||||||
|
3. Change into each directory (`cd source/atom/love-...`) and review the changes.
|
||||||
|
4. When satisfied, use `apm publish major|minor|patch` to publish to the Atom Package Registry and the GitHub repositories.
|
||||||
|
|
||||||
|
### Visual Studio Code
|
||||||
|
|
||||||
|
1. Run `yarn build` (or `yarn build:vscode`).
|
||||||
|
2. Change into the VS Code source directory (`cd source/vscode/`).
|
||||||
|
3. Run `yarn package` to create the `.vsix` package.
|
||||||
|
4. Head to [the Marketplace Manage Extensions page](https://marketplace.visualstudio.com/manage/publishers).
|
||||||
|
5. Click on the `...` next to the current version and click on `Update`.
|
||||||
|
6. Upload the `.vsix` that was created in step 3.
|
||||||
|
|
||||||
|
## Published to the website
|
||||||
|
|
||||||
|
The following integrations aren't yet/can't be published to platforms, so mostly no special procedure needs to happen. They are just built and served on the website directly.
|
||||||
|
|
||||||
|
* Firefox (if updated, the links need to be updated on the website too, may get published [to AMO](https://git.holllo.cc/Holllo/love/issues/1)).
|
||||||
|
* Kitty.
|
||||||
|
* Sublime Text (may get published [at some point](https://git.holllo.cc/Holllo/love/issues/2)).
|
||||||
|
* Tauon.
|
|
@ -0,0 +1,19 @@
|
||||||
|
# Love
|
||||||
|
|
||||||
|
> A color scheme for you to love. ♡
|
||||||
|
|
||||||
|
[![Netlify deploy status](https://api.netlify.com/api/v1/badges/255a4cea-e3fe-4e0f-8450-b8c4ce46f7a0/deploy-status)](https://app.netlify.com/sites/holllo-love/deploys)
|
||||||
|
|
||||||
|
## Installation
|
||||||
|
|
||||||
|
See [the Love website](https://love.holllo.cc#get) for installation guides.
|
||||||
|
|
||||||
|
## Building
|
||||||
|
|
||||||
|
To build the themes and the site, [Node](https://nodejs.org) and [Yarn](https://yarnpkg.com) are required.
|
||||||
|
|
||||||
|
Then, run `yarn build` to build everything at once. The results will be put in the `public/` directory.
|
||||||
|
|
||||||
|
## License
|
||||||
|
|
||||||
|
Open-sourced with the [MIT license](https://git.holllo.cc/Holllo/love/src/branch/main/LICENSE).
|
22
ReadMe.md
22
ReadMe.md
|
@ -1,22 +0,0 @@
|
||||||
# Love
|
|
||||||
|
|
||||||
> A color scheme for you to love. ♡ https://love.holllo.cc
|
|
||||||
|
|
||||||
## Get
|
|
||||||
|
|
||||||
### File Formats
|
|
||||||
|
|
||||||
* [JSON](https://love.holllo.cc/love.json)
|
|
||||||
|
|
||||||
### Software
|
|
||||||
|
|
||||||
* [Atom](https://love.holllo.cc/get/atom.html)
|
|
||||||
* [Firefox](https://love.holllo.cc/get/firefox.html)
|
|
||||||
* [Kitty](https://love.holllo.cc/get/kitty.html)
|
|
||||||
* [Sublime Text](https://love.holllo.cc/get/sublime-text.html)
|
|
||||||
* [Tauon](https://love.holllo.cc/get/tauon.html)
|
|
||||||
* [Visual Studio Code](https://love.holllo.cc/get/vscode.html)
|
|
||||||
|
|
||||||
## License
|
|
||||||
|
|
||||||
Open-sourced with [the MIT License](License).
|
|
50
package.json
50
package.json
|
@ -1,10 +1,11 @@
|
||||||
{
|
{
|
||||||
"name": "love",
|
"name": "love",
|
||||||
|
"description": "A color scheme for you to love. ♡",
|
||||||
"version": "0.1.0",
|
"version": "0.1.0",
|
||||||
"license": "MIT",
|
|
||||||
"author": "Holllo <helllo@holllo.cc>",
|
"author": "Holllo <helllo@holllo.cc>",
|
||||||
"homepage": "https://love.holllo.cc",
|
"homepage": "https://love.holllo.cc",
|
||||||
"repository": "https://gitlab.com/holllo/love",
|
"repository": "https://git.holllo.cc/Holllo/love",
|
||||||
|
"license": "MIT",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"build": "yarn build:atom && yarn build:images && yarn build:kitty && yarn build:pages && yarn build:sublime-text && yarn build:tauon && yarn build:vscode && yarn copy-themes",
|
"build": "yarn build:atom && yarn build:images && yarn build:kitty && yarn build:pages && yarn build:sublime-text && yarn build:tauon && yarn build:vscode && yarn copy-themes",
|
||||||
"build:atom": "ts-node 'source/scripts/atom.ts'",
|
"build:atom": "ts-node 'source/scripts/atom.ts'",
|
||||||
|
@ -17,42 +18,44 @@
|
||||||
"watch:atom": "chokidar 'source/atom/*.less' 'source/atom/ui-template/*.less' -c 'yarn build:atom'",
|
"watch:atom": "chokidar 'source/atom/*.less' 'source/atom/ui-template/*.less' -c 'yarn build:atom'",
|
||||||
"watch:vscode": "chokidar 'source/vscode/themes/love-template.color-theme.json' -c 'yarn build:vscode'",
|
"watch:vscode": "chokidar 'source/vscode/themes/love-template.color-theme.json' -c 'yarn build:vscode'",
|
||||||
"copy-themes": "cp 'source/kitty/love-kitty.zip' 'public/' && cp 'source/sublime-text/Love.sublime-package' 'public/' && cp 'source/tauon/love-tauon.zip' 'public/'",
|
"copy-themes": "cp 'source/kitty/love-kitty.zip' 'public/' && cp 'source/sublime-text/Love.sublime-package' 'public/' && cp 'source/tauon/love-tauon.zip' 'public/'",
|
||||||
"test": "xo && stylelint 'source/pages/scss/**'"
|
"test": "xo && stylelint 'source/pages/scss/**'",
|
||||||
|
"deploy": "rm -rf 'public/' && yarn build && yarn deploy:netlify",
|
||||||
|
"deploy:netlify": "netlify deploy --prod --dir 'public/' -s 255a4cea-e3fe-4e0f-8450-b8c4ce46f7a0"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"modern-normalize": "^0.6.0"
|
"modern-normalize": "^0.7.0"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@types/jszip": "^3.1.7",
|
"@types/marked": "^1.1.0",
|
||||||
"@types/marked": "^0.7.4",
|
|
||||||
"@types/nunjucks": "^3.1.3",
|
"@types/nunjucks": "^3.1.3",
|
||||||
"@types/prompts": "^2.0.5",
|
"@types/prompts": "^2.0.8",
|
||||||
"@types/refractor": "^2.8.0",
|
"@types/refractor": "^2.8.0",
|
||||||
"@types/sass": "^1.16.0",
|
"@types/sass": "^1.16.0",
|
||||||
"@types/semver": "^7.1.0",
|
"@types/semver": "^7.3.1",
|
||||||
"@types/tar": "^4.0.3",
|
"@types/tar": "^4.0.3",
|
||||||
"chokidar-cli": "^2.1.0",
|
"chokidar-cli": "^2.1.0",
|
||||||
"cpy": "^8.1.0",
|
"cpy": "^8.1.0",
|
||||||
"cpy-cli": "^3.1.0",
|
"cpy-cli": "^3.1.1",
|
||||||
"hsluv": "^0.1.0",
|
"hsluv": "^0.1.0",
|
||||||
"hsluv-sass": "^1.0.0",
|
"hsluv-sass": "^1.0.0",
|
||||||
"htmlclean": "^3.0.8",
|
"htmlclean": "^3.0.8",
|
||||||
"jszip": "^3.3.0",
|
"husky": "^4.2.5",
|
||||||
"marked": "^0.8.2",
|
"jszip": "^3.5.0",
|
||||||
|
"marked": "^1.1.1",
|
||||||
"mathsass": "^0.11.0",
|
"mathsass": "^0.11.0",
|
||||||
"nunjucks": "^3.2.1",
|
"netlify-cli": "^2.59.0",
|
||||||
|
"nunjucks": "^3.2.2",
|
||||||
"prompts": "^2.3.2",
|
"prompts": "^2.3.2",
|
||||||
"refractor": "^3.0.0",
|
"refractor": "^3.0.0",
|
||||||
"rehype": "^10.0.0",
|
"rehype": "^11.0.0",
|
||||||
"sass": "^1.26.3",
|
"sass": "^1.26.10",
|
||||||
"semver": "^7.3.2",
|
"semver": "^7.3.2",
|
||||||
"stylelint": "^13.2.1",
|
"stylelint": "^13.6.1",
|
||||||
"stylelint-config-xo-scss": "^0.12.0",
|
"stylelint-config-xo-scss": "^0.13.0",
|
||||||
"stylelint-config-xo-space": "^0.14.0",
|
"stylelint-config-xo-space": "^0.14.0",
|
||||||
"tar": "^6.0.1",
|
"ts-node": "^8.10.2",
|
||||||
"ts-node": "^8.7.0",
|
"typescript": "^3.9.7",
|
||||||
"typescript": "^3.8.3",
|
"xo": "^0.32.1"
|
||||||
"xo": "^0.28.0"
|
|
||||||
},
|
},
|
||||||
"stylelint": {
|
"stylelint": {
|
||||||
"extends": [
|
"extends": [
|
||||||
|
@ -61,6 +64,7 @@
|
||||||
],
|
],
|
||||||
"ignoreFiles": [
|
"ignoreFiles": [
|
||||||
"source/atom/**/*.less",
|
"source/atom/**/*.less",
|
||||||
|
"source/**/*.ts",
|
||||||
"public/css/**"
|
"public/css/**"
|
||||||
],
|
],
|
||||||
"rules": {
|
"rules": {
|
||||||
|
@ -76,5 +80,11 @@
|
||||||
"no-await-in-loop": "off"
|
"no-await-in-loop": "off"
|
||||||
},
|
},
|
||||||
"space": true
|
"space": true
|
||||||
|
},
|
||||||
|
"husky": {
|
||||||
|
"hooks": {
|
||||||
|
"pre-commit": "yarn test",
|
||||||
|
"pre-push": "yarn test"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -11,4 +11,4 @@
|
||||||
|
|
||||||
## License
|
## License
|
||||||
|
|
||||||
Open-sourced with [the MIT License](https://gitlab.com/holllo/love/-/blob/master/License).
|
Open-sourced with the [MIT license](https://git.holllo.cc/Holllo/love/src/branch/main/LICENSE).
|
|
@ -8,22 +8,22 @@
|
||||||
<section class="images-section">
|
<section class="images-section">
|
||||||
<div class="is-dark">
|
<div class="is-dark">
|
||||||
|
|
||||||
![Love Dark Preview 1](../images/atom/love-dark-01.png)
|
![Love Dark Preview 1](/images/atom/love-dark-01.png)
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="is-light">
|
<div class="is-light">
|
||||||
|
|
||||||
![Love Light Preview 1](../images/atom/love-light-01.png)
|
![Love Light Preview 1](/images/atom/love-light-01.png)
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="is-dark">
|
<div class="is-dark">
|
||||||
|
|
||||||
![Love Dark Preview 2](../images/atom/love-dark-02.png)
|
![Love Dark Preview 2](/images/atom/love-dark-02.png)
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="is-light">
|
<div class="is-light">
|
||||||
|
|
||||||
![Love Light Preview 2](../images/atom/love-light-02.png)
|
![Love Light Preview 2](/images/atom/love-light-02.png)
|
||||||
</div>
|
</div>
|
||||||
</section>
|
</section>
|
||||||
|
|
|
@ -2,11 +2,10 @@
|
||||||
"name": "love",
|
"name": "love",
|
||||||
"description": "A color scheme for you to love. ♡",
|
"description": "A color scheme for you to love. ♡",
|
||||||
"version": "0.1.2",
|
"version": "0.1.2",
|
||||||
"license": "MIT",
|
|
||||||
"author": "Holllo <helllo@holllo.cc>",
|
"author": "Holllo <helllo@holllo.cc>",
|
||||||
"homepage": "https://love.holllo.cc",
|
"homepage": "https://love.holllo.cc",
|
||||||
"repository": "https://gitlab.com/holllo/love",
|
"repository": "https://git.holllo.cc/Holllo/love",
|
||||||
"bugs": "https://gitlab.com/holllo/love/issues",
|
"license": "MIT",
|
||||||
"theme": "",
|
"theme": "",
|
||||||
"engines": {
|
"engines": {
|
||||||
"atom": ">=1.0.0 <2.0.0"
|
"atom": ">=1.0.0 <2.0.0"
|
||||||
|
|
|
@ -8,12 +8,12 @@
|
||||||
<section class="images-section">
|
<section class="images-section">
|
||||||
<div class="is-dark">
|
<div class="is-dark">
|
||||||
|
|
||||||
![Love Dark Preview 1](../images/firefox/love-dark-01.png)
|
![Love Dark Preview 1](/images/firefox/love-dark-01.png)
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="is-light">
|
<div class="is-light">
|
||||||
|
|
||||||
![Love Light Preview 1](../images/firefox/love-light-01.png)
|
![Love Light Preview 1](/images/firefox/love-light-01.png)
|
||||||
</div>
|
</div>
|
||||||
</section>
|
</section>
|
||||||
|
|
|
@ -8,12 +8,12 @@
|
||||||
<section class="images-section">
|
<section class="images-section">
|
||||||
<div class="is-dark">
|
<div class="is-dark">
|
||||||
|
|
||||||
![Love Dark Preview 1](../images/kitty/love-dark-01.png)
|
![Love Dark Preview 1](/images/kitty/love-dark-01.png)
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="is-light">
|
<div class="is-light">
|
||||||
|
|
||||||
![Love Light Preview 1](../images/kitty/love-light-01.png)
|
![Love Light Preview 1](/images/kitty/love-light-01.png)
|
||||||
</div>
|
</div>
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
|
@ -27,7 +27,7 @@
|
||||||
|
|
||||||
<div class="is-dark padded">
|
<div class="is-dark padded">
|
||||||
|
|
||||||
1. Download [the Love theme zip](../love-kitty.zip).
|
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. Unzip it in [the Kitty configuration directory](https://sw.kovidgoyal.net/kitty/conf.html).
|
||||||
1. Add the following line your `kitty.conf`.
|
1. Add the following line your `kitty.conf`.
|
||||||
* For Dark add `include love-dark.conf`
|
* For Dark add `include love-dark.conf`
|
Binary file not shown.
Binary file not shown.
|
@ -5,8 +5,9 @@
|
||||||
<meta charset="UTF-8">
|
<meta charset="UTF-8">
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||||
<title>{{ title }}</title>
|
<title>{{ title }}</title>
|
||||||
<link href="../css/style.css" rel="stylesheet">
|
<link rel="stylesheet" href="/css/modern-normalize.css">
|
||||||
<link rel="shortcut icon" href="../images/love-mark-square.png" type="image/x-icon">
|
<link href="/css/style.css" rel="stylesheet">
|
||||||
|
<link rel="shortcut icon" href="/images/love-mark-square.png" type="image/x-icon">
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
<body id="get-love-page">
|
<body id="get-love-page">
|
||||||
|
@ -17,12 +18,12 @@
|
||||||
<footer>
|
<footer>
|
||||||
<div>
|
<div>
|
||||||
<a class="hide-external" href="https://holllo.cc">
|
<a class="hide-external" href="https://holllo.cc">
|
||||||
<img src="../images/holllo-mark.png" alt="Made by Holllo">
|
<img src="/images/holllo-mark.png" alt="Made by Holllo">
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
<a id="liberapay-button" class="hide-external" href="https://liberapay.com/Holllo/donate">
|
<a id="liberapay-button" class="hide-external" href="https://liberapay.com/Holllo/donate">
|
||||||
<img src="../images/liberapay-button.svg" alt="Support Holllo via LiberaPay">
|
<img src="/images/liberapay-button.svg" alt="Support Holllo via LiberaPay">
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
</footer>
|
</footer>
|
||||||
|
|
|
@ -5,8 +5,9 @@
|
||||||
<meta charset="UTF-8">
|
<meta charset="UTF-8">
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||||
<title>The Love Color Scheme</title>
|
<title>The Love Color Scheme</title>
|
||||||
<link href="css/style.css" rel="stylesheet">
|
<link rel="stylesheet" href="/css/modern-normalize.css">
|
||||||
<link rel="shortcut icon" href="images/love-mark-square.png" type="image/x-icon">
|
<link href="/css/style.css" rel="stylesheet">
|
||||||
|
<link rel="shortcut icon" href="/images/love-mark-square.png" type="image/x-icon">
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
<body>
|
<body>
|
||||||
|
@ -36,10 +37,10 @@
|
||||||
</div>
|
</div>
|
||||||
<div class="goal">
|
<div class="goal">
|
||||||
<h3 class="goal-title">
|
<h3 class="goal-title">
|
||||||
<a href="https://gitlab.com/holllo/love">Free and open-source.</a>
|
<a href="https://git.holllo.cc/Holllo/love">Free and open-source.</a>
|
||||||
</h3>
|
</h3>
|
||||||
<p>
|
<p>
|
||||||
Open-sourced with the MIT License, because everyone deserves love.
|
Open-sourced with the MIT license, because everyone deserves love.
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
<div class="goal light">
|
<div class="goal light">
|
||||||
|
@ -136,9 +137,7 @@
|
||||||
color customization is possible, and we'll spread the love together.
|
color customization is possible, and we'll spread the love together.
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
Your suggestions are welcome at Love's
|
Your suggestions are welcome via email at
|
||||||
<a href="https://gitlab.com/holllo/love/issues">issue tracker</a>
|
|
||||||
and through email at
|
|
||||||
<a href="mailto:love@holllo.cc">love@holllo.cc</a>.
|
<a href="mailto:love@holllo.cc">love@holllo.cc</a>.
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
|
@ -148,7 +147,7 @@
|
||||||
</h3>
|
</h3>
|
||||||
<ul>
|
<ul>
|
||||||
<li>
|
<li>
|
||||||
<a href="love.json">JSON</a>
|
<a href="/love.json">JSON</a>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
|
@ -158,22 +157,22 @@
|
||||||
</h3>
|
</h3>
|
||||||
<ul>
|
<ul>
|
||||||
<li>
|
<li>
|
||||||
<a href="get/atom.html">Atom</a>
|
<a href="/get/atom">Atom</a>
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
<a href="get/firefox.html">Firefox</a>
|
<a href="/get/firefox">Firefox</a>
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
<a href="get/kitty.html">Kitty</a>
|
<a href="/get/kitty">Kitty</a>
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
<a href="get/sublime-text.html">Sublime Text</a>
|
<a href="/get/sublime-text">Sublime Text</a>
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
<a href="get/tauon.html">Tauon Music Box</a>
|
<a href="/get/tauon">Tauon Music Box</a>
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
<a href="get/vscode.html">Visual Studio Code</a>
|
<a href="/get/vscode">Visual Studio Code</a>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
|
@ -186,18 +185,6 @@
|
||||||
<div class="divider"></div>
|
<div class="divider"></div>
|
||||||
<section id="attributions">
|
<section id="attributions">
|
||||||
<h2 class="light">Attributions</h2>
|
<h2 class="light">Attributions</h2>
|
||||||
<div class="border">
|
|
||||||
<h3>
|
|
||||||
<a href="https://rsms.me/inter/">Inter</a>
|
|
||||||
</h3>
|
|
||||||
<p>Excellent OFL 1.1 licensed sans-serif font.</p>
|
|
||||||
</div>
|
|
||||||
<div class="light monospace">
|
|
||||||
<h3>
|
|
||||||
<a href="https://github.com/i-tu/Hasklig/">Hasklig</a>
|
|
||||||
</h3>
|
|
||||||
<p>OFL 1.1 licensed monospace font with ligatures.</p>
|
|
||||||
</div>
|
|
||||||
<div class="border">
|
<div class="border">
|
||||||
<h3>
|
<h3>
|
||||||
<a href="https://www.hsluv.org/">HSLuv</a>
|
<a href="https://www.hsluv.org/">HSLuv</a>
|
||||||
|
@ -209,12 +196,12 @@
|
||||||
<footer>
|
<footer>
|
||||||
<div>
|
<div>
|
||||||
<a class="hide-external" href="https://holllo.cc">
|
<a class="hide-external" href="https://holllo.cc">
|
||||||
<img src="images/holllo-mark.png" alt="Made by Holllo">
|
<img src="/images/holllo-mark.png" alt="Made by Holllo">
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
<a id="liberapay-button" class="hide-external" href="https://liberapay.com/Holllo/donate">
|
<a id="liberapay-button" class="hide-external" href="https://liberapay.com/Holllo/donate">
|
||||||
<img src="images/liberapay-button.svg" alt="Support Holllo via LiberaPay">
|
<img src="/images/liberapay-button.svg" alt="Support Holllo via LiberaPay">
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
</footer>
|
</footer>
|
||||||
|
|
|
@ -1,263 +0,0 @@
|
||||||
// Inter
|
|
||||||
@font-face {
|
|
||||||
font-family: Inter;
|
|
||||||
font-style: normal;
|
|
||||||
font-weight: 100;
|
|
||||||
font-display: swap;
|
|
||||||
src:
|
|
||||||
url('../fonts/Inter/Inter-Thin-BETA.woff2') format('woff2'),
|
|
||||||
url('../fonts/Inter/Inter-Thin-BETA.woff') format('woff');
|
|
||||||
}
|
|
||||||
@font-face {
|
|
||||||
font-family: Inter;
|
|
||||||
font-style: italic;
|
|
||||||
font-weight: 100;
|
|
||||||
font-display: swap;
|
|
||||||
src:
|
|
||||||
url('../fonts/Inter/Inter-ThinItalic-BETA.woff2') format('woff2'),
|
|
||||||
url('../fonts/Inter/Inter-ThinItalic-BETA.woff') format('woff');
|
|
||||||
}
|
|
||||||
@font-face {
|
|
||||||
font-family: Inter;
|
|
||||||
font-style: normal;
|
|
||||||
font-weight: 200;
|
|
||||||
font-display: swap;
|
|
||||||
src:
|
|
||||||
url('../fonts/Inter/Inter-ExtraLight-BETA.woff2') format('woff2'),
|
|
||||||
url('../fonts/Inter/Inter-ExtraLight-BETA.woff') format('woff');
|
|
||||||
}
|
|
||||||
@font-face {
|
|
||||||
font-family: Inter;
|
|
||||||
font-style: italic;
|
|
||||||
font-weight: 200;
|
|
||||||
font-display: swap;
|
|
||||||
src:
|
|
||||||
url('../fonts/Inter/Inter-ExtraLightItalic-BETA.woff2') format('woff2'),
|
|
||||||
url('../fonts/Inter/Inter-ExtraLightItalic-BETA.woff') format('woff');
|
|
||||||
}
|
|
||||||
@font-face {
|
|
||||||
font-family: Inter;
|
|
||||||
font-style: normal;
|
|
||||||
font-weight: 300;
|
|
||||||
font-display: swap;
|
|
||||||
src:
|
|
||||||
url('../fonts/Inter/Inter-Light-BETA.woff2') format('woff2'),
|
|
||||||
url('../fonts/Inter/Inter-Light-BETA.woff') format('woff');
|
|
||||||
}
|
|
||||||
@font-face {
|
|
||||||
font-family: Inter;
|
|
||||||
font-style: italic;
|
|
||||||
font-weight: 300;
|
|
||||||
font-display: swap;
|
|
||||||
src:
|
|
||||||
url('../fonts/Inter/Inter-LightItalic-BETA.woff2') format('woff2'),
|
|
||||||
url('../fonts/Inter/Inter-LightItalic-BETA.woff') format('woff');
|
|
||||||
}
|
|
||||||
@font-face {
|
|
||||||
font-family: Inter;
|
|
||||||
font-style: normal;
|
|
||||||
font-weight: normal;
|
|
||||||
font-display: swap;
|
|
||||||
src:
|
|
||||||
url('../fonts/Inter/Inter-Regular.woff2') format('woff2'),
|
|
||||||
url('../fonts/Inter/Inter-Regular.woff') format('woff');
|
|
||||||
}
|
|
||||||
@font-face {
|
|
||||||
font-family: Inter;
|
|
||||||
font-style: italic;
|
|
||||||
font-weight: normal;
|
|
||||||
font-display: swap;
|
|
||||||
src:
|
|
||||||
url('../fonts/Inter/Inter-Italic.woff2') format('woff2'),
|
|
||||||
url('../fonts/Inter/Inter-Italic.woff') format('woff');
|
|
||||||
}
|
|
||||||
@font-face {
|
|
||||||
font-family: Inter;
|
|
||||||
font-style: normal;
|
|
||||||
font-weight: 500;
|
|
||||||
font-display: swap;
|
|
||||||
src:
|
|
||||||
url('../fonts/Inter/Inter-Medium.woff2') format('woff2'),
|
|
||||||
url('../fonts/Inter/Inter-Medium.woff') format('woff');
|
|
||||||
}
|
|
||||||
@font-face {
|
|
||||||
font-family: Inter;
|
|
||||||
font-style: italic;
|
|
||||||
font-weight: 500;
|
|
||||||
font-display: swap;
|
|
||||||
src:
|
|
||||||
url('../fonts/Inter/Inter-MediumItalic.woff2') format('woff2'),
|
|
||||||
url('../fonts/Inter/Inter-MediumItalic.woff') format('woff');
|
|
||||||
}
|
|
||||||
@font-face {
|
|
||||||
font-family: Inter;
|
|
||||||
font-style: normal;
|
|
||||||
font-weight: 600;
|
|
||||||
font-display: swap;
|
|
||||||
src:
|
|
||||||
url('../fonts/Inter/Inter-SemiBold.woff2') format('woff2'),
|
|
||||||
url('../fonts/Inter/Inter-SemiBold.woff') format('woff');
|
|
||||||
}
|
|
||||||
@font-face {
|
|
||||||
font-family: Inter;
|
|
||||||
font-style: italic;
|
|
||||||
font-weight: 600;
|
|
||||||
font-display: swap;
|
|
||||||
src:
|
|
||||||
url('../fonts/Inter/Inter-SemiBoldItalic.woff2') format('woff2'),
|
|
||||||
url('../fonts/Inter/Inter-SemiBoldItalic.woff') format('woff');
|
|
||||||
}
|
|
||||||
@font-face {
|
|
||||||
font-family: Inter;
|
|
||||||
font-style: normal;
|
|
||||||
font-weight: bold;
|
|
||||||
font-display: swap;
|
|
||||||
src:
|
|
||||||
url('../fonts/Inter/Inter-Bold.woff2') format('woff2'),
|
|
||||||
url('../fonts/Inter/Inter-Bold.woff') format('woff');
|
|
||||||
}
|
|
||||||
@font-face {
|
|
||||||
font-family: Inter;
|
|
||||||
font-style: italic;
|
|
||||||
font-weight: bold;
|
|
||||||
font-display: swap;
|
|
||||||
src:
|
|
||||||
url('../fonts/Inter/Inter-BoldItalic.woff2') format('woff2'),
|
|
||||||
url('../fonts/Inter/Inter-BoldItalic.woff') format('woff');
|
|
||||||
}
|
|
||||||
@font-face {
|
|
||||||
font-family: Inter;
|
|
||||||
font-style: normal;
|
|
||||||
font-weight: 800;
|
|
||||||
font-display: swap;
|
|
||||||
src:
|
|
||||||
url('../fonts/Inter/Inter-ExtraBold.woff2') format('woff2'),
|
|
||||||
url('../fonts/Inter/Inter-ExtraBold.woff') format('woff');
|
|
||||||
}
|
|
||||||
@font-face {
|
|
||||||
font-family: Inter;
|
|
||||||
font-style: italic;
|
|
||||||
font-weight: 800;
|
|
||||||
font-display: swap;
|
|
||||||
src:
|
|
||||||
url('../fonts/Inter/Inter-ExtraBoldItalic.woff2') format('woff2'),
|
|
||||||
url('../fonts/Inter/Inter-ExtraBoldItalic.woff') format('woff');
|
|
||||||
}
|
|
||||||
@font-face {
|
|
||||||
font-family: Inter;
|
|
||||||
font-style: normal;
|
|
||||||
font-weight: 900;
|
|
||||||
font-display: swap;
|
|
||||||
src:
|
|
||||||
url('../fonts/Inter/Inter-Black.woff2') format('woff2'),
|
|
||||||
url('../fonts/Inter/Inter-Black.woff') format('woff');
|
|
||||||
}
|
|
||||||
@font-face {
|
|
||||||
font-family: Inter;
|
|
||||||
font-style: italic;
|
|
||||||
font-weight: 900;
|
|
||||||
font-display: swap;
|
|
||||||
src:
|
|
||||||
url('../fonts/Inter/Inter-BlackItalic.woff2') format('woff2'),
|
|
||||||
url('../fonts/Inter/Inter-BlackItalic.woff') format('woff');
|
|
||||||
}
|
|
||||||
|
|
||||||
// Hasklig
|
|
||||||
@font-face {
|
|
||||||
font-family: Hasklig;
|
|
||||||
font-style: normal;
|
|
||||||
font-weight: 200;
|
|
||||||
font-display: swap;
|
|
||||||
src: url('../fonts/Hasklig/Hasklig-ExtraLight.otf') format('opentype');
|
|
||||||
}
|
|
||||||
@font-face {
|
|
||||||
font-family: Hasklig;
|
|
||||||
font-style: italic;
|
|
||||||
font-weight: 200;
|
|
||||||
font-display: swap;
|
|
||||||
src: url('../fonts/Hasklig/Hasklig-ExtraLightIt.otf') format('opentype');
|
|
||||||
}
|
|
||||||
@font-face {
|
|
||||||
font-family: Hasklig;
|
|
||||||
font-style: normal;
|
|
||||||
font-weight: 300;
|
|
||||||
font-display: swap;
|
|
||||||
src: url('../fonts/Hasklig/Hasklig-Light.otf') format('opentype');
|
|
||||||
}
|
|
||||||
@font-face {
|
|
||||||
font-family: Hasklig;
|
|
||||||
font-style: italic;
|
|
||||||
font-weight: 300;
|
|
||||||
font-display: swap;
|
|
||||||
src: url('../fonts/Hasklig/Hasklig-LightIt.otf') format('opentype');
|
|
||||||
}
|
|
||||||
@font-face {
|
|
||||||
font-family: Hasklig;
|
|
||||||
font-style: normal;
|
|
||||||
font-weight: normal;
|
|
||||||
font-display: swap;
|
|
||||||
src: url('../fonts/Hasklig/Hasklig-Regular.otf') format('opentype');
|
|
||||||
}
|
|
||||||
@font-face {
|
|
||||||
font-family: Hasklig;
|
|
||||||
font-style: italic;
|
|
||||||
font-weight: normal;
|
|
||||||
font-display: swap;
|
|
||||||
src: url('../fonts/Hasklig/Hasklig-It.otf') format('opentype');
|
|
||||||
}
|
|
||||||
@font-face {
|
|
||||||
font-family: Hasklig;
|
|
||||||
font-style: normal;
|
|
||||||
font-weight: 500;
|
|
||||||
font-display: swap;
|
|
||||||
src: url('../fonts/Hasklig/Hasklig-Medium.otf') format('opentype');
|
|
||||||
}
|
|
||||||
@font-face {
|
|
||||||
font-family: Hasklig;
|
|
||||||
font-style: italic;
|
|
||||||
font-weight: 500;
|
|
||||||
font-display: swap;
|
|
||||||
src: url('../fonts/Hasklig/Hasklig-MediumIt.otf') format('opentype');
|
|
||||||
}
|
|
||||||
@font-face {
|
|
||||||
font-family: Hasklig;
|
|
||||||
font-style: normal;
|
|
||||||
font-weight: 600;
|
|
||||||
font-display: swap;
|
|
||||||
src: url('../fonts/Hasklig/Hasklig-SemiBold.otf') format('opentype');
|
|
||||||
}
|
|
||||||
@font-face {
|
|
||||||
font-family: Hasklig;
|
|
||||||
font-style: italic;
|
|
||||||
font-weight: 600;
|
|
||||||
font-display: swap;
|
|
||||||
src: url('../fonts/Hasklig/Hasklig-SemiBoldIt.otf') format('opentype');
|
|
||||||
}
|
|
||||||
@font-face {
|
|
||||||
font-family: Hasklig;
|
|
||||||
font-style: normal;
|
|
||||||
font-weight: bold;
|
|
||||||
font-display: swap;
|
|
||||||
src: url('../fonts/Hasklig/Hasklig-Bold.otf') format('opentype');
|
|
||||||
}
|
|
||||||
@font-face {
|
|
||||||
font-family: Hasklig;
|
|
||||||
font-style: italic;
|
|
||||||
font-weight: bold;
|
|
||||||
font-display: swap;
|
|
||||||
src: url('../fonts/Hasklig/Hasklig-BoldIt.otf') format('opentype');
|
|
||||||
}
|
|
||||||
@font-face {
|
|
||||||
font-family: Hasklig;
|
|
||||||
font-style: normal;
|
|
||||||
font-weight: 900;
|
|
||||||
font-display: swap;
|
|
||||||
src: url('../fonts/Hasklig/Hasklig-Black.otf') format('opentype');
|
|
||||||
}
|
|
||||||
@font-face {
|
|
||||||
font-family: Hasklig;
|
|
||||||
font-style: italic;
|
|
||||||
font-weight: 900;
|
|
||||||
font-display: swap;
|
|
||||||
src: url('../fonts/Hasklig/Hasklig-BlackIt.otf') format('opentype');
|
|
||||||
}
|
|
|
@ -14,7 +14,7 @@ code[class*='language-'] {
|
||||||
}
|
}
|
||||||
|
|
||||||
&.namespace {
|
&.namespace {
|
||||||
opacity: 0.7;
|
opacity: 70%;
|
||||||
}
|
}
|
||||||
|
|
||||||
&.boolean,
|
&.boolean,
|
||||||
|
|
|
@ -1,7 +1,3 @@
|
||||||
@import '../../../node_modules/modern-normalize/modern-normalize';
|
|
||||||
@import '../../../node_modules/hsluv-sass/src/hsluv';
|
|
||||||
@import 'fonts';
|
|
||||||
|
|
||||||
/* :root-insert */
|
/* :root-insert */
|
||||||
|
|
||||||
@import 'syntax-highlighting';
|
@import 'syntax-highlighting';
|
||||||
|
@ -18,7 +14,7 @@ html {
|
||||||
body {
|
body {
|
||||||
background-color: var(--background-1);
|
background-color: var(--background-1);
|
||||||
color: var(--foreground-1);
|
color: var(--foreground-1);
|
||||||
font-family: Inter, sans-serif;
|
font-family: sans-serif;
|
||||||
font-size: 2rem;
|
font-size: 2rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -132,7 +128,7 @@ ul {
|
||||||
}
|
}
|
||||||
|
|
||||||
.monospace {
|
.monospace {
|
||||||
font-family: Hasklig, monospace;
|
font-family: monospace;
|
||||||
}
|
}
|
||||||
|
|
||||||
.spacer {
|
.spacer {
|
||||||
|
@ -188,7 +184,7 @@ ul {
|
||||||
overflow-x: auto;
|
overflow-x: auto;
|
||||||
|
|
||||||
span {
|
span {
|
||||||
font-family: Hasklig, monospace;
|
font-family: monospace;
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
margin-right: 8px;
|
margin-right: 8px;
|
||||||
padding: 8px;
|
padding: 8px;
|
||||||
|
@ -251,7 +247,7 @@ ul {
|
||||||
}
|
}
|
||||||
|
|
||||||
.color {
|
.color {
|
||||||
font-family: Hasklig, monospace;
|
font-family: monospace;
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -3,7 +3,7 @@ import {join} from 'path';
|
||||||
import cpy from 'cpy';
|
import cpy from 'cpy';
|
||||||
import {generateLove, LoveVariant} from './love';
|
import {generateLove, LoveVariant} from './love';
|
||||||
|
|
||||||
export async function entry(): Promise<void> {
|
export async function main(): Promise<void> {
|
||||||
const atomDirectory: string = join(__dirname, '../atom/');
|
const atomDirectory: string = join(__dirname, '../atom/');
|
||||||
|
|
||||||
const packageTemplate: any = JSON.parse(
|
const packageTemplate: any = JSON.parse(
|
||||||
|
@ -40,7 +40,7 @@ ${variant.colors.grays
|
||||||
);
|
);
|
||||||
const uiTheme =
|
const uiTheme =
|
||||||
'@import "styles/ui-variables";\n' +
|
'@import "styles/ui-variables";\n' +
|
||||||
uiFiles.map(value => `@import "styles/${value}";`).join('\n');
|
uiFiles.map((value) => `@import "styles/${value}";`).join('\n');
|
||||||
|
|
||||||
const syntaxDirectory: string = join(
|
const syntaxDirectory: string = join(
|
||||||
atomDirectory,
|
atomDirectory,
|
||||||
|
@ -102,23 +102,23 @@ ${variant.colors.grays
|
||||||
generateLessUIVariables(variant)
|
generateLessUIVariables(variant)
|
||||||
);
|
);
|
||||||
|
|
||||||
// Copy the License, ReadMe and images.
|
// Copy the LICENSE, README and images.
|
||||||
await fsp.copyFile(
|
await fsp.copyFile(
|
||||||
join(__dirname, '../../License'),
|
join(__dirname, '../../LICENSE'),
|
||||||
join(syntaxDirectory, 'License')
|
join(syntaxDirectory, 'LICENSE')
|
||||||
);
|
);
|
||||||
await fsp.copyFile(
|
await fsp.copyFile(
|
||||||
join(__dirname, '../../License'),
|
join(__dirname, '../../LICENSE'),
|
||||||
join(uiDirectory, 'License')
|
join(uiDirectory, 'LICENSE')
|
||||||
);
|
);
|
||||||
|
|
||||||
await fsp.copyFile(
|
await fsp.copyFile(
|
||||||
join(atomDirectory, 'ReadMe.md'),
|
join(atomDirectory, 'README.md'),
|
||||||
join(syntaxDirectory, 'ReadMe.md')
|
join(syntaxDirectory, 'README.md')
|
||||||
);
|
);
|
||||||
await fsp.copyFile(
|
await fsp.copyFile(
|
||||||
join(atomDirectory, 'ReadMe.md'),
|
join(atomDirectory, 'README.md'),
|
||||||
join(uiDirectory, 'ReadMe.md')
|
join(uiDirectory, 'README.md')
|
||||||
);
|
);
|
||||||
|
|
||||||
await cpy(join(atomDirectory, 'images'), join(syntaxDirectory, 'images'));
|
await cpy(join(atomDirectory, 'images'), join(syntaxDirectory, 'images'));
|
||||||
|
@ -223,5 +223,5 @@ export function generateLessUIVariables(love: LoveVariant): string {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (require.main === module) {
|
if (require.main === module) {
|
||||||
entry();
|
void main();
|
||||||
}
|
}
|
||||||
|
|
|
@ -5,7 +5,7 @@ import nunjucks from 'nunjucks';
|
||||||
import {generateLove, LoveVariant} from './love';
|
import {generateLove, LoveVariant} from './love';
|
||||||
import {getVersions, Versions} from './version';
|
import {getVersions, Versions} from './version';
|
||||||
|
|
||||||
export async function entry(): Promise<void> {
|
export async function main(): Promise<void> {
|
||||||
const themeDirectory: string = join(__dirname, '../kitty/');
|
const themeDirectory: string = join(__dirname, '../kitty/');
|
||||||
// Configure Nunjucks to use the templates for `source/kitty/`.
|
// Configure Nunjucks to use the templates for `source/kitty/`.
|
||||||
nunjucks.configure(themeDirectory, {
|
nunjucks.configure(themeDirectory, {
|
||||||
|
@ -43,5 +43,5 @@ export async function entry(): Promise<void> {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (require.main === module) {
|
if (require.main === module) {
|
||||||
entry();
|
void main();
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,22 +1,24 @@
|
||||||
import fs, {promises as fsp} from 'fs';
|
import fs, {promises as fsp} from 'fs';
|
||||||
import {join} from 'path';
|
import {join} from 'path';
|
||||||
import cpy from 'cpy';
|
import cpy from 'cpy';
|
||||||
// @ts-ignore
|
// @ts-expect-error
|
||||||
import htmlclean from 'htmlclean';
|
import htmlclean from 'htmlclean';
|
||||||
import marked from 'marked';
|
import marked from 'marked';
|
||||||
import nunjucks from 'nunjucks';
|
import nunjucks from 'nunjucks';
|
||||||
import refractor from 'refractor';
|
import refractor from 'refractor';
|
||||||
// @ts-ignore
|
|
||||||
import rehype from 'rehype';
|
import rehype from 'rehype';
|
||||||
import sass from 'sass';
|
import sass from 'sass';
|
||||||
import tar from 'tar';
|
|
||||||
import {generateLove, LoveVariant} from './love';
|
import {generateLove, LoveVariant} from './love';
|
||||||
import {getVersions, Versions} from './version';
|
import {getVersions, Versions} from './version';
|
||||||
|
|
||||||
export async function entry(): Promise<void> {
|
export async function main(): Promise<void> {
|
||||||
// Create all required directories for the website.
|
// Create all required directories for the website.
|
||||||
await fsp.mkdir(join(__dirname, '../../public/css/'), {recursive: true});
|
await fsp.mkdir(join(__dirname, '../../public/css/'), {recursive: true});
|
||||||
await fsp.mkdir(join(__dirname, '../../public/fonts/'), {recursive: true});
|
await fsp.copyFile(
|
||||||
|
join(__dirname, '../../node_modules/modern-normalize/modern-normalize.css'),
|
||||||
|
join(__dirname, '../../public/css/modern-normalize.css')
|
||||||
|
);
|
||||||
|
|
||||||
await fsp.mkdir(join(__dirname, '../../public/images/'), {recursive: true});
|
await fsp.mkdir(join(__dirname, '../../public/images/'), {recursive: true});
|
||||||
|
|
||||||
// Configure Nunjucks to use the templates for `source/pages/`.
|
// Configure Nunjucks to use the templates for `source/pages/`.
|
||||||
|
@ -73,16 +75,6 @@ ${love[1].colors.grays
|
||||||
htmlclean(nunjucks.render('index.html', {love}))
|
htmlclean(nunjucks.render('index.html', {love}))
|
||||||
);
|
);
|
||||||
|
|
||||||
// Extract the fonts to file.
|
|
||||||
await tar.extract({
|
|
||||||
file: join(__dirname, '../pages/assets/Inter.tar'),
|
|
||||||
cwd: join(__dirname, '../../public/fonts/')
|
|
||||||
});
|
|
||||||
await tar.extract({
|
|
||||||
file: join(__dirname, '../pages/assets/Hasklig.tar'),
|
|
||||||
cwd: join(__dirname, '../../public/fonts/')
|
|
||||||
});
|
|
||||||
|
|
||||||
const renderer: marked.Renderer = new marked.Renderer();
|
const renderer: marked.Renderer = new marked.Renderer();
|
||||||
|
|
||||||
renderer.code = (code: string, language: string | undefined): string => {
|
renderer.code = (code: string, language: string | undefined): string => {
|
||||||
|
@ -99,12 +91,12 @@ ${love[1].colors.grays
|
||||||
await fsp.mkdir(join(__dirname, '../../public/get/'), {recursive: true});
|
await fsp.mkdir(join(__dirname, '../../public/get/'), {recursive: true});
|
||||||
const pagesToCreate: string[] = (
|
const pagesToCreate: string[] = (
|
||||||
await fsp.readdir(join(__dirname, '../'))
|
await fsp.readdir(join(__dirname, '../'))
|
||||||
).filter(value => !['pages', 'scripts'].includes(value));
|
).filter((value) => !['pages', 'scripts'].includes(value));
|
||||||
for (const page of pagesToCreate) {
|
for (const page of pagesToCreate) {
|
||||||
const markdown: string = marked(
|
const markdown: string = marked(
|
||||||
nunjucks.renderString(
|
nunjucks.renderString(
|
||||||
await fsp.readFile(
|
await fsp.readFile(
|
||||||
join(__dirname, `../${page}/Site ReadMe.md`),
|
join(__dirname, `../${page}/SITE README.md`),
|
||||||
'utf8'
|
'utf8'
|
||||||
),
|
),
|
||||||
{versions}
|
{versions}
|
||||||
|
@ -124,7 +116,7 @@ ${love[1].colors.grays
|
||||||
let title = `Love for ${page
|
let title = `Love for ${page
|
||||||
.replace(/-/g, ' ')
|
.replace(/-/g, ' ')
|
||||||
.split(' ')
|
.split(' ')
|
||||||
.map(capitalize)
|
.map((value) => capitalize(value))
|
||||||
.join(' ')}`;
|
.join(' ')}`;
|
||||||
|
|
||||||
switch (page) {
|
switch (page) {
|
||||||
|
@ -135,8 +127,10 @@ ${love[1].colors.grays
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const directory = join(__dirname, `../../public/get/${page}/`);
|
||||||
|
await fsp.mkdir(directory, {recursive: true});
|
||||||
await fsp.writeFile(
|
await fsp.writeFile(
|
||||||
join(__dirname, `../../public/get/${page}.html`),
|
join(directory, 'index.html'),
|
||||||
htmlclean(nunjucks.render('get.html', {love, markdown, title}))
|
htmlclean(nunjucks.render('get.html', {love, markdown, title}))
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
@ -152,5 +146,5 @@ export async function writeJSON(path: string, data: unknown): Promise<void> {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (require.main === module) {
|
if (require.main === module) {
|
||||||
entry();
|
void main();
|
||||||
}
|
}
|
||||||
|
|
|
@ -5,7 +5,7 @@ import nunjucks from 'nunjucks';
|
||||||
import {generateLove, LoveVariant} from './love';
|
import {generateLove, LoveVariant} from './love';
|
||||||
import {getVersions, Versions} from './version';
|
import {getVersions, Versions} from './version';
|
||||||
|
|
||||||
export async function entry(): Promise<void> {
|
export async function main(): Promise<void> {
|
||||||
const themeDirectory: string = join(__dirname, '../sublime-text/');
|
const themeDirectory: string = join(__dirname, '../sublime-text/');
|
||||||
// Configure Nunjucks to use the templates for `source/sublime-text/`.
|
// Configure Nunjucks to use the templates for `source/sublime-text/`.
|
||||||
nunjucks.configure(themeDirectory, {
|
nunjucks.configure(themeDirectory, {
|
||||||
|
@ -71,5 +71,5 @@ export async function entry(): Promise<void> {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (require.main === module) {
|
if (require.main === module) {
|
||||||
entry();
|
void main();
|
||||||
}
|
}
|
||||||
|
|
|
@ -5,7 +5,7 @@ import nunjucks from 'nunjucks';
|
||||||
import {generateLove, LoveVariant} from './love';
|
import {generateLove, LoveVariant} from './love';
|
||||||
import {getVersions, Versions} from './version';
|
import {getVersions, Versions} from './version';
|
||||||
|
|
||||||
export async function entry(): Promise<void> {
|
export async function main(): Promise<void> {
|
||||||
const themeDirectory: string = join(__dirname, '../tauon/');
|
const themeDirectory: string = join(__dirname, '../tauon/');
|
||||||
// Configure Nunjucks to use the templates for `source/tauon/`.
|
// Configure Nunjucks to use the templates for `source/tauon/`.
|
||||||
nunjucks.configure(themeDirectory, {
|
nunjucks.configure(themeDirectory, {
|
||||||
|
@ -22,8 +22,9 @@ export async function entry(): Promise<void> {
|
||||||
const versions: Versions = await getVersions();
|
const versions: Versions = await getVersions();
|
||||||
|
|
||||||
for (const variant of love) {
|
for (const variant of love) {
|
||||||
const themeName = `Love ${variant.name.slice(0, 1).toUpperCase() +
|
const themeName = `Love ${
|
||||||
variant.name.slice(1)}.ttheme`;
|
variant.name.slice(0, 1).toUpperCase() + variant.name.slice(1)
|
||||||
|
}.ttheme`;
|
||||||
const outputPath: string = join(themeDirectory, themeName);
|
const outputPath: string = join(themeDirectory, themeName);
|
||||||
|
|
||||||
// Render the template.
|
// Render the template.
|
||||||
|
@ -54,17 +55,17 @@ export function hexToRGB(hex: string): string {
|
||||||
|
|
||||||
if (hex.length === 3) {
|
if (hex.length === 3) {
|
||||||
return [
|
return [
|
||||||
parseInt(hex[0], 16),
|
Number.parseInt(hex[0], 16),
|
||||||
parseInt(hex[1], 16),
|
Number.parseInt(hex[1], 16),
|
||||||
parseInt(hex[2], 16)
|
Number.parseInt(hex[2], 16)
|
||||||
].join(',');
|
].join(',');
|
||||||
}
|
}
|
||||||
|
|
||||||
if (hex.length === 6) {
|
if (hex.length === 6) {
|
||||||
return [
|
return [
|
||||||
parseInt(hex.slice(0, 2), 16),
|
Number.parseInt(hex.slice(0, 2), 16),
|
||||||
parseInt(hex.slice(2, 4), 16),
|
Number.parseInt(hex.slice(2, 4), 16),
|
||||||
parseInt(hex.slice(4, 6), 16)
|
Number.parseInt(hex.slice(4, 6), 16)
|
||||||
].join(',');
|
].join(',');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -72,5 +73,5 @@ export function hexToRGB(hex: string): string {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (require.main === module) {
|
if (require.main === module) {
|
||||||
entry();
|
void main();
|
||||||
}
|
}
|
||||||
|
|
|
@ -13,7 +13,7 @@ export interface Versions {
|
||||||
vscode: string;
|
vscode: string;
|
||||||
}
|
}
|
||||||
|
|
||||||
export async function entry(): Promise<void> {
|
export async function main(): Promise<void> {
|
||||||
const versions: Versions = await getVersions();
|
const versions: Versions = await getVersions();
|
||||||
|
|
||||||
const command = await prompts({
|
const command = await prompts({
|
||||||
|
@ -42,7 +42,7 @@ export async function entry(): Promise<void> {
|
||||||
message: 'Which theme do you want to update?',
|
message: 'Which theme do you want to update?',
|
||||||
name: 'theme',
|
name: 'theme',
|
||||||
type: 'select',
|
type: 'select',
|
||||||
choices: Object.keys(versions).map(value => ({
|
choices: Object.keys(versions).map((value) => ({
|
||||||
title: `${value} (${String(versions[value])})`,
|
title: `${value} (${String(versions[value])})`,
|
||||||
value
|
value
|
||||||
})),
|
})),
|
||||||
|
@ -115,5 +115,5 @@ export async function getVersions(): Promise<Versions> {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (require.main === module) {
|
if (require.main === module) {
|
||||||
entry();
|
void main();
|
||||||
}
|
}
|
||||||
|
|
|
@ -3,7 +3,7 @@ import {join} from 'path';
|
||||||
import nunjucks from 'nunjucks';
|
import nunjucks from 'nunjucks';
|
||||||
import {generateLove, LoveVariant} from './love';
|
import {generateLove, LoveVariant} from './love';
|
||||||
|
|
||||||
export async function entry(): Promise<void> {
|
export async function main(): Promise<void> {
|
||||||
const themesDirectory: string = join(__dirname, '../vscode/themes/');
|
const themesDirectory: string = join(__dirname, '../vscode/themes/');
|
||||||
// Configure Nunjucks to use the templates for `source/vscode/themes/`.
|
// Configure Nunjucks to use the templates for `source/vscode/themes/`.
|
||||||
nunjucks.configure(themesDirectory, {
|
nunjucks.configure(themesDirectory, {
|
||||||
|
@ -38,7 +38,7 @@ export async function entry(): Promise<void> {
|
||||||
formattedOutput += '\n';
|
formattedOutput += '\n';
|
||||||
}
|
}
|
||||||
|
|
||||||
let outputObject: object;
|
let outputObject: Record<string, unknown>;
|
||||||
try {
|
try {
|
||||||
outputObject = JSON.parse(formattedOutput);
|
outputObject = JSON.parse(formattedOutput);
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
|
@ -52,5 +52,5 @@ export async function entry(): Promise<void> {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (require.main === module) {
|
if (require.main === module) {
|
||||||
entry();
|
void main();
|
||||||
}
|
}
|
||||||
|
|
|
@ -8,12 +8,12 @@
|
||||||
<section class="images-section">
|
<section class="images-section">
|
||||||
<div class="is-dark">
|
<div class="is-dark">
|
||||||
|
|
||||||
![Love Dark Preview 1](../images/sublime-text/love-dark-01.png)
|
![Love Dark Preview 1](/images/sublime-text/love-dark-01.png)
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="is-light">
|
<div class="is-light">
|
||||||
|
|
||||||
![Love Light Preview 1](../images/sublime-text/love-light-01.png)
|
![Love Light Preview 1](/images/sublime-text/love-light-01.png)
|
||||||
</div>
|
</div>
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
|
@ -27,7 +27,7 @@
|
||||||
|
|
||||||
<div class="is-dark padded">
|
<div class="is-dark padded">
|
||||||
|
|
||||||
1. Download [the Love theme package](../Love.sublime-package).
|
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. Move the package to [the appropriate location](https://www.sublimetext.com/docs/3/packages.html).
|
||||||
1. Done! ♥
|
1. Done! ♥
|
||||||
|
|
|
@ -8,12 +8,12 @@
|
||||||
<section class="images-section">
|
<section class="images-section">
|
||||||
<div class="is-dark">
|
<div class="is-dark">
|
||||||
|
|
||||||
![Love Dark Preview](../images/tauon/love-dark-01.png)
|
![Love Dark Preview](/images/tauon/love-dark-01.png)
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="is-light">
|
<div class="is-light">
|
||||||
|
|
||||||
![Love Light Preview](../images/tauon/love-light-01.png)
|
![Love Light Preview](/images/tauon/love-light-01.png)
|
||||||
</div>
|
</div>
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
|
@ -29,7 +29,7 @@
|
||||||
|
|
||||||
### Official Love
|
### Official Love
|
||||||
|
|
||||||
1. Download [the Love theme zip](../love-tauon.zip).
|
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. 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! ♥
|
1. Done! ♥
|
||||||
</div>
|
</div>
|
|
@ -9,4 +9,4 @@
|
||||||
|
|
||||||
## License
|
## License
|
||||||
|
|
||||||
Open-sourced with [the MIT License](https://gitlab.com/holllo/love/-/blob/master/License).
|
Open-sourced with the [MIT license](https://git.holllo.cc/Holllo/love/src/branch/main/LICENSE).
|
|
@ -8,12 +8,12 @@
|
||||||
<section class="images-section">
|
<section class="images-section">
|
||||||
<div class="is-dark">
|
<div class="is-dark">
|
||||||
|
|
||||||
![Love Dark Preview 1](../images/vscode/love-dark-01.png)
|
![Love Dark Preview 1](/images/vscode/love-dark-01.png)
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="is-light">
|
<div class="is-light">
|
||||||
|
|
||||||
![Love Light Preview 1](../images/vscode/love-light-01.png)
|
![Love Light Preview 1](/images/vscode/love-light-01.png)
|
||||||
</div>
|
</div>
|
||||||
</section>
|
</section>
|
||||||
|
|
|
@ -1,12 +1,13 @@
|
||||||
{
|
{
|
||||||
"name": "love",
|
"name": "love",
|
||||||
|
"description": "A color scheme for you to love. ♡",
|
||||||
"version": "0.1.1",
|
"version": "0.1.1",
|
||||||
"license": "MIT",
|
|
||||||
"author": "Holllo <helllo@holllo.cc>",
|
"author": "Holllo <helllo@holllo.cc>",
|
||||||
"homepage": "https://love.holllo.cc",
|
"homepage": "https://love.holllo.cc",
|
||||||
"repository": "https://gitlab.com/holllo/love",
|
"repository": "https://git.holllo.cc/Holllo/love",
|
||||||
|
"license": "MIT",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"package": "vsce package --baseImagesUrl='https://gitlab.com/holllo/love/-/raw/master/source/vscode/'"
|
"package": "vsce package --baseImagesUrl='https://love.holllo.cc/images/vscode/'"
|
||||||
},
|
},
|
||||||
"dependencies": {},
|
"dependencies": {},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
|
@ -14,7 +15,7 @@
|
||||||
},
|
},
|
||||||
"displayName": "Love Theme",
|
"displayName": "Love Theme",
|
||||||
"publisher": "Holllo",
|
"publisher": "Holllo",
|
||||||
"icon": "images/love-mark-square.png",
|
"icon": "love-mark-square.png",
|
||||||
"galleryBanner": {
|
"galleryBanner": {
|
||||||
"color": "#2A2041",
|
"color": "#2A2041",
|
||||||
"theme": "dark"
|
"theme": "dark"
|
||||||
|
|
Loading…
Reference in New Issue