mirror of
https://github.com/jakejarvis/jarv.is.git
synced 2026-06-10 17:55:28 -04:00
much stricter eslint'ing (adapted from eslint-config-google and some airbnb)
This commit is contained in:
+94
-10
@@ -12,7 +12,7 @@
|
|||||||
],
|
],
|
||||||
"parser": "@babel/eslint-parser",
|
"parser": "@babel/eslint-parser",
|
||||||
"parserOptions": {
|
"parserOptions": {
|
||||||
"ecmaVersion": 2015,
|
"ecmaVersion": 2018,
|
||||||
"sourceType": "module",
|
"sourceType": "module",
|
||||||
"allowImportExportEverywhere": false,
|
"allowImportExportEverywhere": false,
|
||||||
"requireConfigFile": false,
|
"requireConfigFile": false,
|
||||||
@@ -24,14 +24,95 @@
|
|||||||
]
|
]
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"rules": {
|
|
||||||
"curly": "error",
|
|
||||||
"quotes": ["error", "double"]
|
|
||||||
},
|
|
||||||
"env": {
|
"env": {
|
||||||
"browser": true,
|
"browser": true,
|
||||||
"es6": true
|
"es6": true
|
||||||
},
|
},
|
||||||
|
"rules": {
|
||||||
|
// Stylistic:
|
||||||
|
"brace-style": "error",
|
||||||
|
"camelcase": ["error", {
|
||||||
|
"properties": "never",
|
||||||
|
"ignoreDestructuring": true
|
||||||
|
}],
|
||||||
|
"comma-dangle": ["error", "always-multiline"],
|
||||||
|
"comma-spacing": "error",
|
||||||
|
"comma-style": "error",
|
||||||
|
"curly": ["error", "multi-or-nest", "consistent"],
|
||||||
|
"func-call-spacing": "error",
|
||||||
|
// "indent": ["error", 2, {
|
||||||
|
// "ignoredNodes": ["JSXElement", "JSXElement > *", "JSXAttribute", "JSXIdentifier", "JSXNamespacedName", "JSXMemberExpression", "JSXSpreadAttribute", "JSXExpressionContainer", "JSXOpeningElement", "JSXClosingElement", "JSXFragment", "JSXOpeningFragment", "JSXClosingFragment", "JSXText", "JSXEmptyExpression", "JSXSpreadChild"]
|
||||||
|
// }],
|
||||||
|
"max-len": ["error", {
|
||||||
|
"code": 100,
|
||||||
|
"tabWidth": 2,
|
||||||
|
"ignoreUrls": true,
|
||||||
|
"ignoreComments": false,
|
||||||
|
"ignoreStrings": true,
|
||||||
|
"ignoreRegExpLiterals": true,
|
||||||
|
"ignoreTemplateLiterals": true
|
||||||
|
}],
|
||||||
|
"no-multiple-empty-lines": ["error", { "max": 1 }],
|
||||||
|
"no-tabs": "error",
|
||||||
|
"no-trailing-spaces": "error",
|
||||||
|
"object-curly-spacing": ["error", "always"],
|
||||||
|
"one-var": ["error", {
|
||||||
|
"var": "never",
|
||||||
|
"let": "never",
|
||||||
|
"const": "never"
|
||||||
|
}],
|
||||||
|
"operator-linebreak": ["error", "after"],
|
||||||
|
"padded-blocks": ["error", "never"],
|
||||||
|
"quote-props": ["error", "consistent"],
|
||||||
|
"quotes": ["error", "double", {
|
||||||
|
"avoidEscape": true,
|
||||||
|
"allowTemplateLiterals": true
|
||||||
|
}],
|
||||||
|
"semi": "error",
|
||||||
|
"semi-spacing": "error",
|
||||||
|
"space-before-blocks": "error",
|
||||||
|
"space-before-function-paren": ["error", {
|
||||||
|
"named": "never",
|
||||||
|
"anonymous": "always",
|
||||||
|
"asyncArrow": "always"
|
||||||
|
}],
|
||||||
|
"spaced-comment": ["error", "always", {
|
||||||
|
"line": {
|
||||||
|
"markers": ["/"],
|
||||||
|
"exceptions": ["-", "+"]
|
||||||
|
},
|
||||||
|
"block": {
|
||||||
|
"markers": ["!"],
|
||||||
|
"exceptions": ["*"],
|
||||||
|
"balanced": true
|
||||||
|
}
|
||||||
|
}],
|
||||||
|
"template-tag-spacing": ["error", "never"],
|
||||||
|
|
||||||
|
// ES6:
|
||||||
|
"arrow-body-style": ["error", "as-needed", { "requireReturnForObjectLiteral": false }],
|
||||||
|
"arrow-parens": ["error", "always"],
|
||||||
|
"arrow-spacing": ["error", { "before": true, "after": true }],
|
||||||
|
"no-confusing-arrow": ["error", { "allowParens": true }],
|
||||||
|
"no-var": "error",
|
||||||
|
"prefer-const": ["error", {
|
||||||
|
"destructuring": "any",
|
||||||
|
"ignoreReadBeforeAssign": true
|
||||||
|
}],
|
||||||
|
"prefer-destructuring": ["error", {
|
||||||
|
"VariableDeclarator": {
|
||||||
|
"array": false,
|
||||||
|
"object": true
|
||||||
|
},
|
||||||
|
"AssignmentExpression": {
|
||||||
|
"array": true,
|
||||||
|
"object": false
|
||||||
|
}
|
||||||
|
}],
|
||||||
|
"prefer-rest-params": "error",
|
||||||
|
"prefer-spread": "error",
|
||||||
|
"template-curly-spacing": "error"
|
||||||
|
},
|
||||||
"overrides": [{
|
"overrides": [{
|
||||||
"files": [
|
"files": [
|
||||||
"api/**/*.ts"
|
"api/**/*.ts"
|
||||||
@@ -50,8 +131,6 @@
|
|||||||
],
|
],
|
||||||
"parser": "@typescript-eslint/parser",
|
"parser": "@typescript-eslint/parser",
|
||||||
"parserOptions": {
|
"parserOptions": {
|
||||||
"ecmaVersion": 2020,
|
|
||||||
"sourceType": "module",
|
|
||||||
"project": ["./tsconfig.json"]
|
"project": ["./tsconfig.json"]
|
||||||
},
|
},
|
||||||
"rules": {
|
"rules": {
|
||||||
@@ -59,9 +138,14 @@
|
|||||||
},
|
},
|
||||||
"env": {
|
"env": {
|
||||||
"browser": false,
|
"browser": false,
|
||||||
"node": true,
|
"node": true
|
||||||
"es6": true
|
|
||||||
}
|
}
|
||||||
}],
|
}],
|
||||||
"ignorePatterns": ["public/**", "static/assets/**", "postcss.config.js", "gulpfile.js", "webpack.config.js"]
|
"ignorePatterns": [
|
||||||
|
"public/**",
|
||||||
|
"static/assets/**",
|
||||||
|
"*.d.ts",
|
||||||
|
"gulpfile.js",
|
||||||
|
"webpack.config.js"
|
||||||
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
+1
-1
@@ -1,5 +1,5 @@
|
|||||||
{
|
{
|
||||||
"printWidth": 120,
|
"printWidth": 100,
|
||||||
"tabWidth": 2,
|
"tabWidth": 2,
|
||||||
"singleQuote": false
|
"singleQuote": false
|
||||||
}
|
}
|
||||||
|
|||||||
+4
-2
@@ -11,7 +11,7 @@ const baseUrl = "https://jarv.is/";
|
|||||||
|
|
||||||
Sentry.init({
|
Sentry.init({
|
||||||
dsn: process.env.SENTRY_DSN || "",
|
dsn: process.env.SENTRY_DSN || "",
|
||||||
environment: process.env.NODE_ENV || process.env.VERCEL_ENV || process.env.SENTRY_ENVIRONMENT || "",
|
environment: process.env.NODE_ENV || process.env.VERCEL_ENV || "",
|
||||||
});
|
});
|
||||||
|
|
||||||
// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types
|
// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types
|
||||||
@@ -111,7 +111,9 @@ const getSiteStats = async (client: Client): Promise<OverallStats> => {
|
|||||||
pages.map((p: PageStats) => {
|
pages.map((p: PageStats) => {
|
||||||
// match URLs from RSS feed with db to populate some metadata
|
// match URLs from RSS feed with db to populate some metadata
|
||||||
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-call
|
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-call
|
||||||
const match = feed.rss.channel.item.find((x: { link: string }) => x.link === baseUrl + p.slug + "/");
|
const match = feed.rss.channel.item.find(
|
||||||
|
(x: { link: string }) => x.link === baseUrl + p.slug + "/"
|
||||||
|
);
|
||||||
if (match) {
|
if (match) {
|
||||||
// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
|
// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
|
||||||
p.title = decode(match.title);
|
p.title = decode(match.title);
|
||||||
|
|||||||
+1
-1
@@ -6,7 +6,7 @@ import type { Repository, GHRepoSchema } from "./types/projects";
|
|||||||
|
|
||||||
Sentry.init({
|
Sentry.init({
|
||||||
dsn: process.env.SENTRY_DSN || "",
|
dsn: process.env.SENTRY_DSN || "",
|
||||||
environment: process.env.NODE_ENV || process.env.VERCEL_ENV || process.env.SENTRY_ENVIRONMENT || "",
|
environment: process.env.NODE_ENV || process.env.VERCEL_ENV || "",
|
||||||
});
|
});
|
||||||
|
|
||||||
// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types
|
// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types
|
||||||
|
|||||||
+12
-3
@@ -21,7 +21,7 @@ const TOP_TRACKS_ENDPOINT = `https://api.spotify.com/v1/me/top/tracks?time_range
|
|||||||
|
|
||||||
Sentry.init({
|
Sentry.init({
|
||||||
dsn: process.env.SENTRY_DSN || "",
|
dsn: process.env.SENTRY_DSN || "",
|
||||||
environment: process.env.NODE_ENV || process.env.VERCEL_ENV || process.env.SENTRY_ENVIRONMENT || "",
|
environment: process.env.NODE_ENV || process.env.VERCEL_ENV || "",
|
||||||
});
|
});
|
||||||
|
|
||||||
// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types
|
// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types
|
||||||
@@ -31,7 +31,11 @@ export default async (req: VercelRequest, res: VercelResponse) => {
|
|||||||
if (req.method !== "GET") {
|
if (req.method !== "GET") {
|
||||||
throw new Error(`Method ${req.method} not allowed.`);
|
throw new Error(`Method ${req.method} not allowed.`);
|
||||||
}
|
}
|
||||||
if (!process.env.SPOTIFY_CLIENT_ID || !process.env.SPOTIFY_CLIENT_SECRET || !process.env.SPOTIFY_REFRESH_TOKEN) {
|
if (
|
||||||
|
!process.env.SPOTIFY_CLIENT_ID ||
|
||||||
|
!process.env.SPOTIFY_CLIENT_SECRET ||
|
||||||
|
!process.env.SPOTIFY_REFRESH_TOKEN
|
||||||
|
) {
|
||||||
throw new Error("Spotify API credentials aren't set.");
|
throw new Error("Spotify API credentials aren't set.");
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -47,7 +51,10 @@ export default async (req: VercelRequest, res: VercelResponse) => {
|
|||||||
response = await getTopTracks();
|
response = await getTopTracks();
|
||||||
|
|
||||||
// let Vercel edge and browser cache results for 3 hours
|
// let Vercel edge and browser cache results for 3 hours
|
||||||
res.setHeader("Cache-Control", "public, max-age=10800, s-maxage=10800, stale-while-revalidate");
|
res.setHeader(
|
||||||
|
"Cache-Control",
|
||||||
|
"public, max-age=10800, s-maxage=10800, stale-while-revalidate"
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
res.setHeader("Access-Control-Allow-Methods", "GET");
|
res.setHeader("Access-Control-Allow-Methods", "GET");
|
||||||
@@ -88,6 +95,7 @@ const getNowPlaying = async (): Promise<Track> => {
|
|||||||
|
|
||||||
const response = await fetch(NOW_PLAYING_ENDPOINT, {
|
const response = await fetch(NOW_PLAYING_ENDPOINT, {
|
||||||
headers: {
|
headers: {
|
||||||
|
// eslint-disable-next-line camelcase
|
||||||
Authorization: `Bearer ${access_token}`,
|
Authorization: `Bearer ${access_token}`,
|
||||||
Accept: "application/json",
|
Accept: "application/json",
|
||||||
"Content-Type": "application/json",
|
"Content-Type": "application/json",
|
||||||
@@ -121,6 +129,7 @@ const getTopTracks = async (): Promise<Track[]> => {
|
|||||||
|
|
||||||
const response = await fetch(TOP_TRACKS_ENDPOINT, {
|
const response = await fetch(TOP_TRACKS_ENDPOINT, {
|
||||||
headers: {
|
headers: {
|
||||||
|
// eslint-disable-next-line camelcase
|
||||||
Authorization: `Bearer ${access_token}`,
|
Authorization: `Bearer ${access_token}`,
|
||||||
Accept: "application/json",
|
Accept: "application/json",
|
||||||
"Content-Type": "application/json",
|
"Content-Type": "application/json",
|
||||||
|
|||||||
@@ -24,8 +24,9 @@ if (ClipboardJS.isSupported()) {
|
|||||||
|
|
||||||
new ClipboardJS("button.copy-button", {
|
new ClipboardJS("button.copy-button", {
|
||||||
// actual code element will (should) have class "language-*", even if plaintext
|
// actual code element will (should) have class "language-*", even if plaintext
|
||||||
// eslint-disable-next-line quotes
|
text: (trigger) =>
|
||||||
text: (trigger) => trimNewlines(trigger.parentElement.querySelector('code[class^="language-"]').innerText),
|
// eslint-disable-next-line quotes
|
||||||
|
trimNewlines(trigger.parentElement.querySelector('code[class^="language-"]').innerText),
|
||||||
}).on("success", (e) => {
|
}).on("success", (e) => {
|
||||||
// show a subtle indication of success
|
// show a subtle indication of success
|
||||||
e.trigger.innerText = successTerm;
|
e.trigger.innerText = successTerm;
|
||||||
|
|||||||
@@ -27,15 +27,11 @@ if (wrapper && canonical) {
|
|||||||
|
|
||||||
// finally inject the hits...
|
// finally inject the hits...
|
||||||
const counter = document.getElementById("hit-counter");
|
const counter = document.getElementById("hit-counter");
|
||||||
if (counter) {
|
if (counter) counter.appendChild(document.createTextNode(hitsComma));
|
||||||
counter.appendChild(document.createTextNode(hitsComma));
|
|
||||||
}
|
|
||||||
|
|
||||||
// ...and hide the loading spinner
|
// ...and hide the loading spinner
|
||||||
const spinner = document.getElementById("hit-spinner");
|
const spinner = document.getElementById("hit-spinner");
|
||||||
if (spinner) {
|
if (spinner) spinner.style.display = "none";
|
||||||
spinner.style.display = "none";
|
|
||||||
}
|
|
||||||
} else {
|
} else {
|
||||||
// something went horribly wrong, initiate coverup
|
// something went horribly wrong, initiate coverup
|
||||||
wrapper.style.display = "none";
|
wrapper.style.display = "none";
|
||||||
|
|||||||
@@ -14,9 +14,7 @@ if (wrapper) {
|
|||||||
<a class="repo-name" href="${repo.url}" target="_blank" rel="noopener">${repo.name}</a>
|
<a class="repo-name" href="${repo.url}" target="_blank" rel="noopener">${repo.name}</a>
|
||||||
|
|
||||||
${(() => {
|
${(() => {
|
||||||
if (repo.description) {
|
if (repo.description) return html`<p class="repo-description">${repo.description}</p>`;
|
||||||
return html`<p class="repo-description">${repo.description}</p>`;
|
|
||||||
}
|
|
||||||
})()}
|
})()}
|
||||||
${(() => {
|
${(() => {
|
||||||
if (repo.language) {
|
if (repo.language) {
|
||||||
@@ -60,7 +58,9 @@ if (wrapper) {
|
|||||||
})()}
|
})()}
|
||||||
|
|
||||||
<div class="repo-meta" title="${format(parseJSON(repo.updatedAt), "MMM d, yyyy, h:mm aa z")}">
|
<div class="repo-meta" title="${format(parseJSON(repo.updatedAt), "MMM d, yyyy, h:mm aa z")}">
|
||||||
<span>Updated ${formatDistanceToNowStrict(parseJSON(repo.updatedAt), { addSuffix: true })}</span>
|
<span>
|
||||||
|
Updated ${formatDistanceToNowStrict(parseJSON(repo.updatedAt), { addSuffix: true })}
|
||||||
|
</span>
|
||||||
</div>
|
</div>
|
||||||
`;
|
`;
|
||||||
|
|
||||||
@@ -75,9 +75,7 @@ if (wrapper) {
|
|||||||
});
|
});
|
||||||
|
|
||||||
// we're done, hide the loading spinner
|
// we're done, hide the loading spinner
|
||||||
if (spinner) {
|
if (spinner) spinner.style.display = "none";
|
||||||
spinner.style.display = "none";
|
|
||||||
}
|
|
||||||
|
|
||||||
// the repo descriptions were added after the first twemoji parsing
|
// the repo descriptions were added after the first twemoji parsing
|
||||||
twemoji.parse(wrapper, {
|
twemoji.parse(wrapper, {
|
||||||
|
|||||||
@@ -33,9 +33,16 @@
|
|||||||
|
|
||||||
@while string.index("#{$str}", "#{$separator}") != null {
|
@while string.index("#{$str}", "#{$separator}") != null {
|
||||||
@if (string.index("#{$str}", "#{$separator}") > 1) {
|
@if (string.index("#{$str}", "#{$separator}") > 1) {
|
||||||
$str-list: list.append($str-list, string.slice("#{$str}", 1, string.index("#{$str}", "#{$separator}") - 1));
|
$str-list: list.append(
|
||||||
|
$str-list,
|
||||||
|
string.slice("#{$str}", 1, string.index("#{$str}", "#{$separator}") - 1)
|
||||||
|
);
|
||||||
}
|
}
|
||||||
$str: string.slice("#{$str}", string.index("#{$str}", "#{$separator}") + 1, string.length("#{$str}"));
|
$str: string.slice(
|
||||||
|
"#{$str}",
|
||||||
|
string.index("#{$str}", "#{$separator}") + 1,
|
||||||
|
string.length("#{$str}")
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
@if (string.slice("#{$str}", 1, string.length("#{$str}")) != "") {
|
@if (string.slice("#{$str}", 1, string.length("#{$str}")) != "") {
|
||||||
|
|||||||
@@ -8,9 +8,10 @@ $webfont-mono-variable: "Roboto Mono var";
|
|||||||
|
|
||||||
// System fonts
|
// System fonts
|
||||||
// https://markdotto.com/2018/02/07/github-system-fonts/
|
// https://markdotto.com/2018/02/07/github-system-fonts/
|
||||||
$system-fonts-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif, "Apple Color Emoji",
|
$system-fonts-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif,
|
||||||
"Segoe UI Emoji", "Segoe UI Symbol";
|
"Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
|
||||||
$system-fonts-monospace: "SFMono-Regular", "Consolas", "Liberation Mono", "Menlo", "Courier", monospace;
|
$system-fonts-monospace: "SFMono-Regular", "Consolas", "Liberation Mono", "Menlo", "Courier",
|
||||||
|
monospace;
|
||||||
|
|
||||||
$font-stack-sans: list.join($webfont-sans, $system-fonts-sans);
|
$font-stack-sans: list.join($webfont-sans, $system-fonts-sans);
|
||||||
$font-stack-variable: list.join($webfont-sans-variable, $system-fonts-sans);
|
$font-stack-variable: list.join($webfont-sans-variable, $system-fonts-sans);
|
||||||
|
|||||||
@@ -53,5 +53,3 @@ $themes: (
|
|||||||
// Icons (modified twemojis)
|
// Icons (modified twemojis)
|
||||||
$icon-bulb-on: 'data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 22 35"><g fill="none"><path d="M22 11.06c0 6.44-5 7.44-5 13.44 0 3.1-3.12 3.36-5.5 3.36-2.05 0-6.59-.78-6.59-3.36 0-6-4.91-7-4.91-13.44C0 5.03 5.29.14 11.08.14 16.88.14 22 5.03 22 11.06z" fill="#FFD983"/><path d="M15.17 32.5c0 .83-2.24 2.5-4.17 2.5-1.93 0-4.17-1.67-4.17-2.5 0-.83 2.24-.5 4.17-.5 1.93 0 4.17-.33 4.17.5z" fill="#CCD6DD"/><path d="M15.7 10.3a1 1 0 00-1.4 0L11 13.58l-3.3-3.3a1 1 0 10-1.4 1.42l3.7 3.7V26a1 1 0 102 0V15.41l3.7-3.7a1 1 0 000-1.42z" fill="#FFCC4D"/><path d="M17 31a2 2 0 01-2 2H7a2 2 0 01-2-2v-6h12v6z" fill="#99AAB5"/><path d="M5 32a1 1 0 01-.16-1.99l12-2a1 1 0 11.33 1.97l-12 2A.93.93 0 015 32zm0-4a1 1 0 01-.16-1.99l12-2a1 1 0 11.33 1.97l-12 2A.93.93 0 015 28z" fill="#CCD6DD"/></g></svg>';
|
$icon-bulb-on: 'data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 22 35"><g fill="none"><path d="M22 11.06c0 6.44-5 7.44-5 13.44 0 3.1-3.12 3.36-5.5 3.36-2.05 0-6.59-.78-6.59-3.36 0-6-4.91-7-4.91-13.44C0 5.03 5.29.14 11.08.14 16.88.14 22 5.03 22 11.06z" fill="#FFD983"/><path d="M15.17 32.5c0 .83-2.24 2.5-4.17 2.5-1.93 0-4.17-1.67-4.17-2.5 0-.83 2.24-.5 4.17-.5 1.93 0 4.17-.33 4.17.5z" fill="#CCD6DD"/><path d="M15.7 10.3a1 1 0 00-1.4 0L11 13.58l-3.3-3.3a1 1 0 10-1.4 1.42l3.7 3.7V26a1 1 0 102 0V15.41l3.7-3.7a1 1 0 000-1.42z" fill="#FFCC4D"/><path d="M17 31a2 2 0 01-2 2H7a2 2 0 01-2-2v-6h12v6z" fill="#99AAB5"/><path d="M5 32a1 1 0 01-.16-1.99l12-2a1 1 0 11.33 1.97l-12 2A.93.93 0 015 32zm0-4a1 1 0 01-.16-1.99l12-2a1 1 0 11.33 1.97l-12 2A.93.93 0 015 28z" fill="#CCD6DD"/></g></svg>';
|
||||||
$icon-bulb-off: 'data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 22 35"><g fill-rule="nonzero" fill="none"><path d="M22 11.06c0 6.44-5 7.44-5 13.44 0 3.1-3.12 3.36-5.5 3.36-2.05 0-6.59-.78-6.59-3.36 0-6-4.91-7-4.91-13.44C0 5.03 5.29.14 11.08.14 16.88.14 22 5.03 22 11.06z" fill="#CCCBCB"/><path d="M15.17 32.5c0 .83-2.24 2.5-4.17 2.5-1.93 0-4.17-1.67-4.17-2.5 0-.83 2.24-.5 4.17-.5 1.93 0 4.17-.33 4.17.5z" fill="#CCD6DD"/><path d="M15.7 10.3a1 1 0 00-1.4 0L11 13.58l-3.3-3.3a1 1 0 10-1.4 1.42l3.7 3.7V26a1 1 0 102 0V15.41l3.7-3.7a1 1 0 000-1.42z" fill="#7D7A72"/><path d="M17 31a2 2 0 01-2 2H7a2 2 0 01-2-2v-6h12v6z" fill="#99AAB5"/><path d="M5 32a1 1 0 01-.16-1.99l12-2a1 1 0 11.33 1.97l-12 2A.93.93 0 015 32zm0-4a1 1 0 01-.16-1.99l12-2a1 1 0 11.33 1.97l-12 2A.93.93 0 015 28z" fill="#CCD6DD"/></g></svg>';
|
$icon-bulb-off: 'data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 22 35"><g fill-rule="nonzero" fill="none"><path d="M22 11.06c0 6.44-5 7.44-5 13.44 0 3.1-3.12 3.36-5.5 3.36-2.05 0-6.59-.78-6.59-3.36 0-6-4.91-7-4.91-13.44C0 5.03 5.29.14 11.08.14 16.88.14 22 5.03 22 11.06z" fill="#CCCBCB"/><path d="M15.17 32.5c0 .83-2.24 2.5-4.17 2.5-1.93 0-4.17-1.67-4.17-2.5 0-.83 2.24-.5 4.17-.5 1.93 0 4.17-.33 4.17.5z" fill="#CCD6DD"/><path d="M15.7 10.3a1 1 0 00-1.4 0L11 13.58l-3.3-3.3a1 1 0 10-1.4 1.42l3.7 3.7V26a1 1 0 102 0V15.41l3.7-3.7a1 1 0 000-1.42z" fill="#7D7A72"/><path d="M17 31a2 2 0 01-2 2H7a2 2 0 01-2-2v-6h12v6z" fill="#99AAB5"/><path d="M5 32a1 1 0 01-.16-1.99l12-2a1 1 0 11.33 1.97l-12 2A.93.93 0 015 32zm0-4a1 1 0 01-.16-1.99l12-2a1 1 0 11.33 1.97l-12 2A.93.93 0 015 28z" fill="#CCD6DD"/></g></svg>';
|
||||||
|
|
||||||
$icon-wand: 'data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36" width="20" height="20"><g fill="none"><path fill="#292F33" d="M2.651 6.073l26.275 26.276c.391.391 2.888-2.107 2.497-2.497L5.148 3.576c-.39-.391-2.888 2.107-2.497 2.497z"/><path fill="#66757F" d="M29.442 31.23L3.146 4.934l.883-.883 26.296 26.296z"/><path fill="#E1E8ED" d="M33.546 33.483l-.412.412-.671.671a.967.967 0 01-.255.169.988.988 0 01-1.159-.169l-2.102-2.102.495-.495.883-.883 1.119-1.119 2.102 2.102a.999.999 0 010 1.414zM4.029 4.79l-.883.883-.495.495L.442 3.96a.988.988 0 01-.169-1.159.967.967 0 01.169-.255l.671-.671.412-.412a.999.999 0 011.414 0l2.208 2.208L4.029 4.79z"/><path fill="#F5F8FA" d="M30.325 30.497l2.809 2.809-.671.671a.967.967 0 01-.255.169l-2.767-2.767.884-.882zM3.146 5.084L.273 2.211a.967.967 0 01.169-.255l.671-.671 2.916 2.916-.883.883z"/><path fill="#FFAC33" d="M27.897 10.219l1.542.571.6 2.2a.667.667 0 001.287 0l.6-2.2 1.542-.571a.665.665 0 000-1.25l-1.534-.568-.605-2.415a.667.667 0 00-1.293 0l-.605 2.415-1.534.568a.665.665 0 000 1.25m-16.936 9.628l2.61.966.966 2.61a1.103 1.103 0 002.07 0l.966-2.61 2.609-.966a1.103 1.103 0 000-2.07l-2.609-.966-.966-2.61a1.105 1.105 0 00-2.07 0l-.966 2.61-2.61.966a1.104 1.104 0 000 2.07M23.13 4.36l1.383.512.512 1.382a.585.585 0 001.096 0l.512-1.382 1.382-.512a.584.584 0 000-1.096l-1.382-.512-.512-1.382a.585.585 0 00-1.096 0l-.512 1.382-1.383.512a.585.585 0 000 1.096"/></g></svg>';
|
|
||||||
|
|||||||
@@ -31,7 +31,8 @@ $unicode-subset: U+0000-00FF, U+2000-206F, U+2200-22FF, U+2122;
|
|||||||
src: url($base-path + $src + ".woff2") format("woff2-variations"),
|
src: url($base-path + $src + ".woff2") format("woff2-variations"),
|
||||||
url($base-path + $src + ".woff2") format("woff2");
|
url($base-path + $src + ".woff2") format("woff2");
|
||||||
} @else {
|
} @else {
|
||||||
src: url($base-path + $src + ".woff2") format("woff2"), url($base-path + $src + ".woff") format("woff");
|
src: url($base-path + $src + ".woff2") format("woff2"),
|
||||||
|
url($base-path + $src + ".woff") format("woff");
|
||||||
}
|
}
|
||||||
|
|
||||||
// Allow additional rules to be passed in:
|
// Allow additional rules to be passed in:
|
||||||
@@ -89,7 +90,13 @@ $unicode-subset: U+0000-00FF, U+2000-206F, U+2200-22FF, U+2122;
|
|||||||
|
|
||||||
// Variable
|
// Variable
|
||||||
@include font-face("Roboto Mono var", "roboto-mono-subset.var", 100 700, $variable: true);
|
@include font-face("Roboto Mono var", "roboto-mono-subset.var", 100 700, $variable: true);
|
||||||
@include font-face("Roboto Mono var", "roboto-mono-italic-subset.var", 100 700, italic, $variable: true);
|
@include font-face(
|
||||||
|
"Roboto Mono var",
|
||||||
|
"roboto-mono-italic-subset.var",
|
||||||
|
100 700,
|
||||||
|
italic,
|
||||||
|
$variable: true
|
||||||
|
);
|
||||||
|
|
||||||
// Legacy
|
// Legacy
|
||||||
@include font-face("Roboto Mono", "roboto-mono-regular-subset", 400);
|
@include font-face("Roboto Mono", "roboto-mono-regular-subset", 400);
|
||||||
|
|||||||
@@ -122,6 +122,8 @@ $colors-home: (
|
|||||||
);
|
);
|
||||||
$color-serverless: #87cef7;
|
$color-serverless: #87cef7;
|
||||||
|
|
||||||
|
$icon-wand: 'data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36" width="20" height="20"><g fill="none"><path fill="#292F33" d="M2.651 6.073l26.275 26.276c.391.391 2.888-2.107 2.497-2.497L5.148 3.576c-.39-.391-2.888 2.107-2.497 2.497z"/><path fill="#66757F" d="M29.442 31.23L3.146 4.934l.883-.883 26.296 26.296z"/><path fill="#E1E8ED" d="M33.546 33.483l-.412.412-.671.671a.967.967 0 01-.255.169.988.988 0 01-1.159-.169l-2.102-2.102.495-.495.883-.883 1.119-1.119 2.102 2.102a.999.999 0 010 1.414zM4.029 4.79l-.883.883-.495.495L.442 3.96a.988.988 0 01-.169-1.159.967.967 0 01.169-.255l.671-.671.412-.412a.999.999 0 011.414 0l2.208 2.208L4.029 4.79z"/><path fill="#F5F8FA" d="M30.325 30.497l2.809 2.809-.671.671a.967.967 0 01-.255.169l-2.767-2.767.884-.882zM3.146 5.084L.273 2.211a.967.967 0 01.169-.255l.671-.671 2.916 2.916-.883.883z"/><path fill="#FFAC33" d="M27.897 10.219l1.542.571.6 2.2a.667.667 0 001.287 0l.6-2.2 1.542-.571a.665.665 0 000-1.25l-1.534-.568-.605-2.415a.667.667 0 00-1.293 0l-.605 2.415-1.534.568a.665.665 0 000 1.25m-16.936 9.628l2.61.966.966 2.61a1.103 1.103 0 002.07 0l.966-2.61 2.609-.966a1.103 1.103 0 000-2.07l-2.609-.966-.966-2.61a1.105 1.105 0 00-2.07 0l-.966 2.61-2.61.966a1.104 1.104 0 000 2.07M23.13 4.36l1.383.512.512 1.382a.585.585 0 001.096 0l.512-1.382 1.382-.512a.584.584 0 000-1.096l-1.382-.512-.512-1.382a.585.585 0 00-1.096 0l-.512 1.382-1.383.512a.585.585 0 000 1.096"/></g></svg>';
|
||||||
|
|
||||||
// ----------------
|
// ----------------
|
||||||
|
|
||||||
// Home Styles
|
// Home Styles
|
||||||
@@ -176,7 +178,7 @@ div.layout-home {
|
|||||||
// easter egg emoji cursor
|
// easter egg emoji cursor
|
||||||
a#birthday {
|
a#birthday {
|
||||||
&:hover {
|
&:hover {
|
||||||
cursor: url(themes.$icon-wand) 0 0, auto;
|
cursor: url($icon-wand) 0 0, auto;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -34,7 +34,7 @@
|
|||||||
"@fontsource/roboto-mono": "4.5.0",
|
"@fontsource/roboto-mono": "4.5.0",
|
||||||
"@jakejarvis/dark-mode": "^0.6.3",
|
"@jakejarvis/dark-mode": "^0.6.3",
|
||||||
"@octokit/graphql": "^4.6.4",
|
"@octokit/graphql": "^4.6.4",
|
||||||
"@octokit/graphql-schema": "^10.60.1",
|
"@octokit/graphql-schema": "^10.62.0",
|
||||||
"@sentry/node": "^6.11.0",
|
"@sentry/node": "^6.11.0",
|
||||||
"clipboard": "^2.0.8",
|
"clipboard": "^2.0.8",
|
||||||
"cross-fetch": "^3.1.4",
|
"cross-fetch": "^3.1.4",
|
||||||
|
|||||||
@@ -1083,10 +1083,10 @@
|
|||||||
is-plain-object "^5.0.0"
|
is-plain-object "^5.0.0"
|
||||||
universal-user-agent "^6.0.0"
|
universal-user-agent "^6.0.0"
|
||||||
|
|
||||||
"@octokit/graphql-schema@^10.60.1":
|
"@octokit/graphql-schema@^10.62.0":
|
||||||
version "10.60.1"
|
version "10.62.0"
|
||||||
resolved "https://registry.yarnpkg.com/@octokit/graphql-schema/-/graphql-schema-10.60.1.tgz#749b6a7b9d4a790069dd142c76276b3ff721e648"
|
resolved "https://registry.yarnpkg.com/@octokit/graphql-schema/-/graphql-schema-10.62.0.tgz#98b6a4d5577d80ff59ee6d595b017695abb84663"
|
||||||
integrity sha512-izWe3N3F6lSZN9kxGQQw2NgGbfEUZWY6jk78NjzsN7dIVUV/xzLJXFAkREBu+M5IRbKtQfiuD/Y3vjvftWeGNA==
|
integrity sha512-AXVF3OkX5cPozz623uDuJuF+o4cSJJEDxQYz4jY/a0aW/O56rowSQw2kxIo9u9dJseXrBx86y3ZMXGv58wQkpw==
|
||||||
dependencies:
|
dependencies:
|
||||||
graphql "^15.0.0"
|
graphql "^15.0.0"
|
||||||
graphql-tag "^2.10.3"
|
graphql-tag "^2.10.3"
|
||||||
@@ -3874,9 +3874,9 @@ ee-first@1.1.1:
|
|||||||
integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=
|
integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=
|
||||||
|
|
||||||
electron-to-chromium@^1.3.793:
|
electron-to-chromium@^1.3.793:
|
||||||
version "1.3.807"
|
version "1.3.809"
|
||||||
resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.807.tgz#c2eb803f4f094869b1a24151184ffbbdbf688b1f"
|
resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.809.tgz#86db795c41c97f252ee1c849a2f70d0739710776"
|
||||||
integrity sha512-p8uxxg2a23zRsvQ2uwA/OOI+O4BQxzaR7YKMIGGGQCpYmkFX2CVF5f0/hxLMV7yCr7nnJViCwHLhPfs52rIYCA==
|
integrity sha512-bZoXTEhEe8o10dHX2gNY9KkCSwz1AFk4c0GbmzlTD5WAkUpDb/zY7JjvLvJ/y1wUsURiVmlGdnIeU+gFyTeaXA==
|
||||||
|
|
||||||
emoji-regex@^7.0.1:
|
emoji-regex@^7.0.1:
|
||||||
version "7.0.3"
|
version "7.0.3"
|
||||||
@@ -5959,9 +5959,9 @@ is-color-stop@^1.1.0:
|
|||||||
rgba-regex "^1.0.0"
|
rgba-regex "^1.0.0"
|
||||||
|
|
||||||
is-core-module@^2.2.0, is-core-module@^2.4.0:
|
is-core-module@^2.2.0, is-core-module@^2.4.0:
|
||||||
version "2.5.0"
|
version "2.6.0"
|
||||||
resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.5.0.tgz#f754843617c70bfd29b7bd87327400cda5c18491"
|
resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.6.0.tgz#d7553b2526fe59b92ba3e40c8df757ec8a709e19"
|
||||||
integrity sha512-TXCMSDsEHMEEZ6eCA8rwRDbLu55MRGmrctljsBX/2v1d9/GzqHOxW5c5oPSgrUt2vBFXebu9rGqckXGPWOlYpg==
|
integrity sha512-wShG8vs60jKfPWpF2KZRaAtvt3a20OAn7+IJ6hLPECpSABLcKtFKTTI4ZtH5QcBruBHlq+WsdHWyz0BCZW7svQ==
|
||||||
dependencies:
|
dependencies:
|
||||||
has "^1.0.3"
|
has "^1.0.3"
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user