Browse Source

Move to self-hosted Gitea, update dependencies, clean up stuff.

tags/0.1.0
Bauke 1 month ago
parent
commit
b8bd49ff94
Signed by: Bauke <me@bauke.xyz> GPG Key ID: C1C0F29952BCF558
32 changed files with 5306 additions and 1640 deletions
  1. +0
    -30
      .gitlab-ci.yml
  2. +21
    -0
      LICENSE
  3. +0
    -7
      License
  4. +34
    -0
      PUBLISHING.md
  5. +19
    -0
      README.md
  6. +0
    -22
      ReadMe.md
  7. +30
    -20
      package.json
  8. +1
    -1
      source/atom/README.md
  9. +4
    -4
      source/atom/SITE README.md
  10. +2
    -3
      source/atom/package.json
  11. +2
    -2
      source/firefox/SITE README.md
  12. +3
    -3
      source/kitty/SITE README.md
  13. BIN
      source/pages/assets/Hasklig.tar
  14. BIN
      source/pages/assets/Inter.tar
  15. +5
    -4
      source/pages/get.html
  16. +15
    -28
      source/pages/index.html
  17. +0
    -263
      source/pages/scss/_fonts.scss
  18. +1
    -1
      source/pages/scss/_syntax-highlighting.scss
  19. +4
    -8
      source/pages/scss/style.scss
  20. +12
    -12
      source/scripts/atom.ts
  21. +2
    -2
      source/scripts/kitty.ts
  22. +14
    -20
      source/scripts/pages.ts
  23. +2
    -2
      source/scripts/sublime-text.ts
  24. +11
    -10
      source/scripts/tauon.ts
  25. +3
    -3
      source/scripts/version.ts
  26. +3
    -3
      source/scripts/vscode.ts
  27. +3
    -3
      source/sublime-text/SITE README.md
  28. +3
    -3
      source/tauon/SITE README.md
  29. +1
    -1
      source/vscode/README.md
  30. +2
    -2
      source/vscode/SITE README.md
  31. +5
    -4
      source/vscode/package.json
  32. +5104
    -1179
      yarn.lock

+ 0
- 30
.gitlab-ci.yml View File

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

+ 21
- 0
LICENSE View File

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

+ 0
- 7
License View File

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

+ 34
- 0
PUBLISHING.md View File

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

+ 19
- 0
README.md View File

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

+ 0
- 22
ReadMe.md View File

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

+ 30
- 20
package.json View File

@@ -1,10 +1,11 @@
{
"name": "love",
"description": "A color scheme for you to love. ♡",
"version": "0.1.0",
"license": "MIT",
"author": "Holllo <helllo@holllo.cc>",
"homepage": "https://love.holllo.cc",
"repository": "https://gitlab.com/holllo/love",
"repository": "https://git.holllo.cc/Holllo/love",
"license": "MIT",
"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: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: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/'",
"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": {
"modern-normalize": "^0.6.0"
"modern-normalize": "^0.7.0"
},
"devDependencies": {
"@types/jszip": "^3.1.7",
"@types/marked": "^0.7.4",
"@types/marked": "^1.1.0",
"@types/nunjucks": "^3.1.3",
"@types/prompts": "^2.0.5",
"@types/prompts": "^2.0.8",
"@types/refractor": "^2.8.0",
"@types/sass": "^1.16.0",
"@types/semver": "^7.1.0",
"@types/semver": "^7.3.1",
"@types/tar": "^4.0.3",
"chokidar-cli": "^2.1.0",
"cpy": "^8.1.0",
"cpy-cli": "^3.1.0",
"cpy-cli": "^3.1.1",
"hsluv": "^0.1.0",
"hsluv-sass": "^1.0.0",
"htmlclean": "^3.0.8",
"jszip": "^3.3.0",
"marked": "^0.8.2",
"husky": "^4.2.5",
"jszip": "^3.5.0",
"marked": "^1.1.1",
"mathsass": "^0.11.0",
"nunjucks": "^3.2.1",
"netlify-cli": "^2.59.0",
"nunjucks": "^3.2.2",
"prompts": "^2.3.2",
"refractor": "^3.0.0",
"rehype": "^10.0.0",
"sass": "^1.26.3",
"rehype": "^11.0.0",
"sass": "^1.26.10",
"semver": "^7.3.2",
"stylelint": "^13.2.1",
"stylelint-config-xo-scss": "^0.12.0",
"stylelint": "^13.6.1",
"stylelint-config-xo-scss": "^0.13.0",
"stylelint-config-xo-space": "^0.14.0",
"tar": "^6.0.1",
"ts-node": "^8.7.0",
"typescript": "^3.8.3",
"xo": "^0.28.0"
"ts-node": "^8.10.2",
"typescript": "^3.9.7",
"xo": "^0.32.1"
},
"stylelint": {
"extends": [
@@ -61,6 +64,7 @@
],
"ignoreFiles": [
"source/atom/**/*.less",
"source/**/*.ts",
"public/css/**"
],
"rules": {
@@ -76,5 +80,11 @@
"no-await-in-loop": "off"
},
"space": true
},
"husky": {
"hooks": {
"pre-commit": "yarn test",
"pre-push": "yarn test"
}
}
}

source/atom/ReadMe.md → source/atom/README.md View File

@@ -11,4 +11,4 @@

## 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).

source/atom/Site ReadMe.md → source/atom/SITE README.md View File

@@ -8,22 +8,22 @@
<section class="images-section">
<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 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 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 class="is-light">

![Love Light Preview 2](../images/atom/love-light-02.png)
![Love Light Preview 2](/images/atom/love-light-02.png)
</div>
</section>


+ 2
- 3
source/atom/package.json View File

@@ -2,11 +2,10 @@
"name": "love",
"description": "A color scheme for you to love. ♡",
"version": "0.1.2",
"license": "MIT",
"author": "Holllo <helllo@holllo.cc>",
"homepage": "https://love.holllo.cc",
"repository": "https://gitlab.com/holllo/love",
"bugs": "https://gitlab.com/holllo/love/issues",
"repository": "https://git.holllo.cc/Holllo/love",
"license": "MIT",
"theme": "",
"engines": {
"atom": ">=1.0.0 <2.0.0"


source/firefox/Site ReadMe.md → source/firefox/SITE README.md View File

@@ -8,12 +8,12 @@
<section class="images-section">
<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 class="is-light">

![Love Light Preview 1](../images/firefox/love-light-01.png)
![Love Light Preview 1](/images/firefox/love-light-01.png)
</div>
</section>


source/kitty/Site ReadMe.md → source/kitty/SITE README.md View File

@@ -8,12 +8,12 @@
<section class="images-section">
<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 class="is-light">

![Love Light Preview 1](../images/kitty/love-light-01.png)
![Love Light Preview 1](/images/kitty/love-light-01.png)
</div>
</section>

@@ -27,7 +27,7 @@

<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. Add the following line your `kitty.conf`.
* For Dark add `include love-dark.conf`

BIN
source/pages/assets/Hasklig.tar View File


BIN
source/pages/assets/Inter.tar View File


+ 5
- 4
source/pages/get.html View File

@@ -5,8 +5,9 @@
<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">
<link rel="stylesheet" href="/css/modern-normalize.css">
<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">
@@ -17,12 +18,12 @@
<footer>
<div>
<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>
</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">
<img src="/images/liberapay-button.svg" alt="Support Holllo via LiberaPay">
</a>
</div>
</footer>


+ 15
- 28
source/pages/index.html View File

@@ -5,8 +5,9 @@
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>The Love Color Scheme</title>
<link href="css/style.css" rel="stylesheet">
<link rel="shortcut icon" href="images/love-mark-square.png" type="image/x-icon">
<link rel="stylesheet" href="/css/modern-normalize.css">
<link href="/css/style.css" rel="stylesheet">
<link rel="shortcut icon" href="/images/love-mark-square.png" type="image/x-icon">
</head>

<body>
@@ -36,10 +37,10 @@
</div>
<div class="goal">
<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>
<p>
Open-sourced with the MIT License, because everyone deserves love.
Open-sourced with the MIT license, because everyone deserves love.
</p>
</div>
<div class="goal light">
@@ -136,9 +137,7 @@
color customization is possible, and we'll spread the love together.
</p>
<p>
Your suggestions are welcome at Love's
<a href="https://gitlab.com/holllo/love/issues">issue tracker</a>
and through email at
Your suggestions are welcome via email at
<a href="mailto:love@holllo.cc">love@holllo.cc</a>.
</p>
</div>
@@ -148,7 +147,7 @@
</h3>
<ul>
<li>
<a href="love.json">JSON</a>
<a href="/love.json">JSON</a>
</li>
</ul>
</div>
@@ -158,22 +157,22 @@
</h3>
<ul>
<li>
<a href="get/atom.html">Atom</a>
<a href="/get/atom">Atom</a>
</li>
<li>
<a href="get/firefox.html">Firefox</a>
<a href="/get/firefox">Firefox</a>
</li>
<li>
<a href="get/kitty.html">Kitty</a>
<a href="/get/kitty">Kitty</a>
</li>
<li>
<a href="get/sublime-text.html">Sublime Text</a>
<a href="/get/sublime-text">Sublime Text</a>
</li>
<li>
<a href="get/tauon.html">Tauon Music Box</a>
<a href="/get/tauon">Tauon Music Box</a>
</li>
<li>
<a href="get/vscode.html">Visual Studio Code</a>
<a href="/get/vscode">Visual Studio Code</a>
</li>
</ul>
</div>
@@ -186,18 +185,6 @@
<div class="divider"></div>
<section id="attributions">
<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">
<h3>
<a href="https://www.hsluv.org/">HSLuv</a>
@@ -209,12 +196,12 @@
<footer>
<div>
<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>
</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">
<img src="/images/liberapay-button.svg" alt="Support Holllo via LiberaPay">
</a>
</div>
</footer>


+ 0
- 263
source/pages/scss/_fonts.scss View File

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

+ 1
- 1
source/pages/scss/_syntax-highlighting.scss View File

@@ -14,7 +14,7 @@ code[class*='language-'] {
}

&.namespace {
opacity: 0.7;
opacity: 70%;
}

&.boolean,


+ 4
- 8
source/pages/scss/style.scss View File

@@ -1,7 +1,3 @@
@import '../../../node_modules/modern-normalize/modern-normalize';
@import '../../../node_modules/hsluv-sass/src/hsluv';
@import 'fonts';

/* :root-insert */

@import 'syntax-highlighting';
@@ -18,7 +14,7 @@ html {
body {
background-color: var(--background-1);
color: var(--foreground-1);
font-family: Inter, sans-serif;
font-family: sans-serif;
font-size: 2rem;
}

@@ -132,7 +128,7 @@ ul {
}

.monospace {
font-family: Hasklig, monospace;
font-family: monospace;
}

.spacer {
@@ -188,7 +184,7 @@ ul {
overflow-x: auto;

span {
font-family: Hasklig, monospace;
font-family: monospace;
font-weight: bold;
margin-right: 8px;
padding: 8px;
@@ -251,7 +247,7 @@ ul {
}

.color {
font-family: Hasklig, monospace;
font-family: monospace;
font-weight: bold;
}



+ 12
- 12
source/scripts/atom.ts View File

@@ -3,7 +3,7 @@ import {join} from 'path';
import cpy from 'cpy';
import {generateLove, LoveVariant} from './love';

export async function entry(): Promise<void> {
export async function main(): Promise<void> {
const atomDirectory: string = join(__dirname, '../atom/');

const packageTemplate: any = JSON.parse(
@@ -40,7 +40,7 @@ ${variant.colors.grays
);
const uiTheme =
'@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(
atomDirectory,
@@ -102,23 +102,23 @@ ${variant.colors.grays
generateLessUIVariables(variant)
);

// Copy the License, ReadMe and images.
// Copy the LICENSE, README and images.
await fsp.copyFile(
join(__dirname, '../../License'),
join(syntaxDirectory, 'License')
join(__dirname, '../../LICENSE'),
join(syntaxDirectory, 'LICENSE')
);
await fsp.copyFile(
join(__dirname, '../../License'),
join(uiDirectory, 'License')
join(__dirname, '../../LICENSE'),
join(uiDirectory, 'LICENSE')
);

await fsp.copyFile(
join(atomDirectory, 'ReadMe.md'),
join(syntaxDirectory, 'ReadMe.md')
join(atomDirectory, 'README.md'),
join(syntaxDirectory, 'README.md')
);
await fsp.copyFile(
join(atomDirectory, 'ReadMe.md'),
join(uiDirectory, 'ReadMe.md')
join(atomDirectory, 'README.md'),
join(uiDirectory, 'README.md')
);

await cpy(join(atomDirectory, 'images'), join(syntaxDirectory, 'images'));
@@ -223,5 +223,5 @@ export function generateLessUIVariables(love: LoveVariant): string {
}

if (require.main === module) {
entry();
void main();
}

+ 2
- 2
source/scripts/kitty.ts View File

@@ -5,7 +5,7 @@ import nunjucks from 'nunjucks';
import {generateLove, LoveVariant} from './love';
import {getVersions, Versions} from './version';

export async function entry(): Promise<void> {
export async function main(): Promise<void> {
const themeDirectory: string = join(__dirname, '../kitty/');
// Configure Nunjucks to use the templates for `source/kitty/`.
nunjucks.configure(themeDirectory, {
@@ -43,5 +43,5 @@ export async function entry(): Promise<void> {
}

if (require.main === module) {
entry();
void main();
}

+ 14
- 20
source/scripts/pages.ts View File

@@ -1,22 +1,24 @@
import fs, {promises as fsp} from 'fs';
import {join} from 'path';
import cpy from 'cpy';
// @ts-ignore
// @ts-expect-error
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> {
export async function main(): Promise<void> {
// Create all required directories for the website.
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});

// Configure Nunjucks to use the templates for `source/pages/`.
@@ -73,16 +75,6 @@ ${love[1].colors.grays
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();

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});
const pagesToCreate: string[] = (
await fsp.readdir(join(__dirname, '../'))
).filter(value => !['pages', 'scripts'].includes(value));
).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`),
join(__dirname, `../${page}/SITE README.md`),
'utf8'
),
{versions}
@@ -124,7 +116,7 @@ ${love[1].colors.grays
let title = `Love for ${page
.replace(/-/g, ' ')
.split(' ')
.map(capitalize)
.map((value) => capitalize(value))
.join(' ')}`;

switch (page) {
@@ -135,8 +127,10 @@ ${love[1].colors.grays
break;
}

const directory = join(__dirname, `../../public/get/${page}/`);
await fsp.mkdir(directory, {recursive: true});
await fsp.writeFile(
join(__dirname, `../../public/get/${page}.html`),
join(directory, 'index.html'),
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) {
entry();
void main();
}

+ 2
- 2
source/scripts/sublime-text.ts View File

@@ -5,7 +5,7 @@ import nunjucks from 'nunjucks';
import {generateLove, LoveVariant} from './love';
import {getVersions, Versions} from './version';

export async function entry(): Promise<void> {
export async function main(): Promise<void> {
const themeDirectory: string = join(__dirname, '../sublime-text/');
// Configure Nunjucks to use the templates for `source/sublime-text/`.
nunjucks.configure(themeDirectory, {
@@ -71,5 +71,5 @@ export async function entry(): Promise<void> {
}

if (require.main === module) {
entry();
void main();
}

+ 11
- 10
source/scripts/tauon.ts View File

@@ -5,7 +5,7 @@ import nunjucks from 'nunjucks';
import {generateLove, LoveVariant} from './love';
import {getVersions, Versions} from './version';

export async function entry(): Promise<void> {
export async function main(): Promise<void> {
const themeDirectory: string = join(__dirname, '../tauon/');
// Configure Nunjucks to use the templates for `source/tauon/`.
nunjucks.configure(themeDirectory, {
@@ -22,8 +22,9 @@ export async function entry(): Promise<void> {
const versions: Versions = await getVersions();

for (const variant of love) {
const themeName = `Love ${variant.name.slice(0, 1).toUpperCase() +
variant.name.slice(1)}.ttheme`;
const themeName = `Love ${
variant.name.slice(0, 1).toUpperCase() + variant.name.slice(1)
}.ttheme`;
const outputPath: string = join(themeDirectory, themeName);

// Render the template.
@@ -54,17 +55,17 @@ export function hexToRGB(hex: string): string {

if (hex.length === 3) {
return [
parseInt(hex[0], 16),
parseInt(hex[1], 16),
parseInt(hex[2], 16)
Number.parseInt(hex[0], 16),
Number.parseInt(hex[1], 16),
Number.parseInt(hex[2], 16)
].join(',');
}

if (hex.length === 6) {
return [
parseInt(hex.slice(0, 2), 16),
parseInt(hex.slice(2, 4), 16),
parseInt(hex.slice(4, 6), 16)
Number.parseInt(hex.slice(0, 2), 16),
Number.parseInt(hex.slice(2, 4), 16),
Number.parseInt(hex.slice(4, 6), 16)
].join(',');
}

@@ -72,5 +73,5 @@ export function hexToRGB(hex: string): string {
}

if (require.main === module) {
entry();
void main();
}

+ 3
- 3
source/scripts/version.ts View File

@@ -13,7 +13,7 @@ export interface Versions {
vscode: string;
}

export async function entry(): Promise<void> {
export async function main(): Promise<void> {
const versions: Versions = await getVersions();

const command = await prompts({
@@ -42,7 +42,7 @@ export async function entry(): Promise<void> {
message: 'Which theme do you want to update?',
name: 'theme',
type: 'select',
choices: Object.keys(versions).map(value => ({
choices: Object.keys(versions).map((value) => ({
title: `${value} (${String(versions[value])})`,
value
})),
@@ -115,5 +115,5 @@ export async function getVersions(): Promise<Versions> {
}

if (require.main === module) {
entry();
void main();
}

+ 3
- 3
source/scripts/vscode.ts View File

@@ -3,7 +3,7 @@ import {join} from 'path';
import nunjucks from 'nunjucks';
import {generateLove, LoveVariant} from './love';

export async function entry(): Promise<void> {
export async function main(): Promise<void> {
const themesDirectory: string = join(__dirname, '../vscode/themes/');
// Configure Nunjucks to use the templates for `source/vscode/themes/`.
nunjucks.configure(themesDirectory, {
@@ -38,7 +38,7 @@ export async function entry(): Promise<void> {
formattedOutput += '\n';
}

let outputObject: object;
let outputObject: Record<string, unknown>;
try {
outputObject = JSON.parse(formattedOutput);
} catch (error) {
@@ -52,5 +52,5 @@ export async function entry(): Promise<void> {
}

if (require.main === module) {
entry();
void main();
}

source/sublime-text/Site ReadMe.md → source/sublime-text/SITE README.md View File

@@ -8,12 +8,12 @@
<section class="images-section">
<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 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>
</section>

@@ -27,7 +27,7 @@

<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. Done! ♥


source/tauon/Site ReadMe.md → source/tauon/SITE README.md View File

@@ -8,12 +8,12 @@
<section class="images-section">
<div class="is-dark">

![Love Dark Preview](../images/tauon/love-dark-01.png)
![Love Dark Preview](/images/tauon/love-dark-01.png)
</div>

<div class="is-light">

![Love Light Preview](../images/tauon/love-light-01.png)
![Love Light Preview](/images/tauon/love-light-01.png)
</div>
</section>

@@ -29,7 +29,7 @@

### 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. Done! ♥
</div>

source/vscode/ReadMe.md → source/vscode/README.md View File

@@ -9,4 +9,4 @@

## 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).

source/vscode/Site ReadMe.md → source/vscode/SITE README.md View File

@@ -8,12 +8,12 @@
<section class="images-section">
<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 class="is-light">

![Love Light Preview 1](../images/vscode/love-light-01.png)
![Love Light Preview 1](/images/vscode/love-light-01.png)
</div>
</section>


+ 5
- 4
source/vscode/package.json View File

@@ -1,12 +1,13 @@
{
"name": "love",
"description": "A color scheme for you to love. ♡",
"version": "0.1.1",
"license": "MIT",
"author": "Holllo <helllo@holllo.cc>",
"homepage": "https://love.holllo.cc",
"repository": "https://gitlab.com/holllo/love",
"repository": "https://git.holllo.cc/Holllo/love",
"license": "MIT",
"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": {},
"devDependencies": {
@@ -14,7 +15,7 @@
},
"displayName": "Love Theme",
"publisher": "Holllo",
"icon": "images/love-mark-square.png",
"icon": "love-mark-square.png",
"galleryBanner": {
"color": "#2A2041",
"theme": "dark"


+ 5104
- 1179
yarn.lock
File diff suppressed because it is too large
View File


Loading…
Cancel
Save