Updated notes site as well as added latest patchnotes
This commit is contained in:
parent
f297e3519c
commit
5e54f66a34
11 changed files with 1248 additions and 1498 deletions
5
.astro/settings.json
Normal file
5
.astro/settings.json
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
{
|
||||||
|
"_variables": {
|
||||||
|
"lastUpdateCheck": 1723377321662
|
||||||
|
}
|
||||||
|
}
|
94
.astro/types.d.ts
vendored
94
.astro/types.d.ts
vendored
|
@ -9,8 +9,6 @@ declare module 'astro:content' {
|
||||||
}
|
}
|
||||||
|
|
||||||
declare module 'astro:content' {
|
declare module 'astro:content' {
|
||||||
export { z } from 'astro/zod';
|
|
||||||
|
|
||||||
type Flatten<T> = T extends { [K: string]: infer U } ? U : never;
|
type Flatten<T> = T extends { [K: string]: infer U } ? U : never;
|
||||||
|
|
||||||
export type CollectionKey = keyof AnyEntryMap;
|
export type CollectionKey = keyof AnyEntryMap;
|
||||||
|
@ -19,81 +17,36 @@ declare module 'astro:content' {
|
||||||
export type ContentCollectionKey = keyof ContentEntryMap;
|
export type ContentCollectionKey = keyof ContentEntryMap;
|
||||||
export type DataCollectionKey = keyof DataEntryMap;
|
export type DataCollectionKey = keyof DataEntryMap;
|
||||||
|
|
||||||
// This needs to be in sync with ImageMetadata
|
|
||||||
export type ImageFunction = () => import('astro/zod').ZodObject<{
|
|
||||||
src: import('astro/zod').ZodString;
|
|
||||||
width: import('astro/zod').ZodNumber;
|
|
||||||
height: import('astro/zod').ZodNumber;
|
|
||||||
format: import('astro/zod').ZodUnion<
|
|
||||||
[
|
|
||||||
import('astro/zod').ZodLiteral<'png'>,
|
|
||||||
import('astro/zod').ZodLiteral<'jpg'>,
|
|
||||||
import('astro/zod').ZodLiteral<'jpeg'>,
|
|
||||||
import('astro/zod').ZodLiteral<'tiff'>,
|
|
||||||
import('astro/zod').ZodLiteral<'webp'>,
|
|
||||||
import('astro/zod').ZodLiteral<'gif'>,
|
|
||||||
import('astro/zod').ZodLiteral<'svg'>,
|
|
||||||
import('astro/zod').ZodLiteral<'avif'>,
|
|
||||||
]
|
|
||||||
>;
|
|
||||||
}>;
|
|
||||||
|
|
||||||
type BaseSchemaWithoutEffects =
|
|
||||||
| import('astro/zod').AnyZodObject
|
|
||||||
| import('astro/zod').ZodUnion<[BaseSchemaWithoutEffects, ...BaseSchemaWithoutEffects[]]>
|
|
||||||
| import('astro/zod').ZodDiscriminatedUnion<string, import('astro/zod').AnyZodObject[]>
|
|
||||||
| import('astro/zod').ZodIntersection<BaseSchemaWithoutEffects, BaseSchemaWithoutEffects>;
|
|
||||||
|
|
||||||
type BaseSchema =
|
|
||||||
| BaseSchemaWithoutEffects
|
|
||||||
| import('astro/zod').ZodEffects<BaseSchemaWithoutEffects>;
|
|
||||||
|
|
||||||
export type SchemaContext = { image: ImageFunction };
|
|
||||||
|
|
||||||
type DataCollectionConfig<S extends BaseSchema> = {
|
|
||||||
type: 'data';
|
|
||||||
schema?: S | ((context: SchemaContext) => S);
|
|
||||||
};
|
|
||||||
|
|
||||||
type ContentCollectionConfig<S extends BaseSchema> = {
|
|
||||||
type?: 'content';
|
|
||||||
schema?: S | ((context: SchemaContext) => S);
|
|
||||||
};
|
|
||||||
|
|
||||||
type CollectionConfig<S> = ContentCollectionConfig<S> | DataCollectionConfig<S>;
|
|
||||||
|
|
||||||
export function defineCollection<S extends BaseSchema>(
|
|
||||||
input: CollectionConfig<S>
|
|
||||||
): CollectionConfig<S>;
|
|
||||||
|
|
||||||
type AllValuesOf<T> = T extends any ? T[keyof T] : never;
|
type AllValuesOf<T> = T extends any ? T[keyof T] : never;
|
||||||
type ValidContentEntrySlug<C extends keyof ContentEntryMap> = AllValuesOf<
|
type ValidContentEntrySlug<C extends keyof ContentEntryMap> = AllValuesOf<
|
||||||
ContentEntryMap[C]
|
ContentEntryMap[C]
|
||||||
>['slug'];
|
>['slug'];
|
||||||
|
|
||||||
|
/** @deprecated Use `getEntry` instead. */
|
||||||
export function getEntryBySlug<
|
export function getEntryBySlug<
|
||||||
C extends keyof ContentEntryMap,
|
C extends keyof ContentEntryMap,
|
||||||
E extends ValidContentEntrySlug<C> | (string & {}),
|
E extends ValidContentEntrySlug<C> | (string & {}),
|
||||||
>(
|
>(
|
||||||
collection: C,
|
collection: C,
|
||||||
// Note that this has to accept a regular string too, for SSR
|
// Note that this has to accept a regular string too, for SSR
|
||||||
entrySlug: E
|
entrySlug: E,
|
||||||
): E extends ValidContentEntrySlug<C>
|
): E extends ValidContentEntrySlug<C>
|
||||||
? Promise<CollectionEntry<C>>
|
? Promise<CollectionEntry<C>>
|
||||||
: Promise<CollectionEntry<C> | undefined>;
|
: Promise<CollectionEntry<C> | undefined>;
|
||||||
|
|
||||||
|
/** @deprecated Use `getEntry` instead. */
|
||||||
export function getDataEntryById<C extends keyof DataEntryMap, E extends keyof DataEntryMap[C]>(
|
export function getDataEntryById<C extends keyof DataEntryMap, E extends keyof DataEntryMap[C]>(
|
||||||
collection: C,
|
collection: C,
|
||||||
entryId: E
|
entryId: E,
|
||||||
): Promise<CollectionEntry<C>>;
|
): Promise<CollectionEntry<C>>;
|
||||||
|
|
||||||
export function getCollection<C extends keyof AnyEntryMap, E extends CollectionEntry<C>>(
|
export function getCollection<C extends keyof AnyEntryMap, E extends CollectionEntry<C>>(
|
||||||
collection: C,
|
collection: C,
|
||||||
filter?: (entry: CollectionEntry<C>) => entry is E
|
filter?: (entry: CollectionEntry<C>) => entry is E,
|
||||||
): Promise<E[]>;
|
): Promise<E[]>;
|
||||||
export function getCollection<C extends keyof AnyEntryMap>(
|
export function getCollection<C extends keyof AnyEntryMap>(
|
||||||
collection: C,
|
collection: C,
|
||||||
filter?: (entry: CollectionEntry<C>) => unknown
|
filter?: (entry: CollectionEntry<C>) => unknown,
|
||||||
): Promise<CollectionEntry<C>[]>;
|
): Promise<CollectionEntry<C>[]>;
|
||||||
|
|
||||||
export function getEntry<
|
export function getEntry<
|
||||||
|
@ -119,7 +72,7 @@ declare module 'astro:content' {
|
||||||
E extends ValidContentEntrySlug<C> | (string & {}),
|
E extends ValidContentEntrySlug<C> | (string & {}),
|
||||||
>(
|
>(
|
||||||
collection: C,
|
collection: C,
|
||||||
slug: E
|
slug: E,
|
||||||
): E extends ValidContentEntrySlug<C>
|
): E extends ValidContentEntrySlug<C>
|
||||||
? Promise<CollectionEntry<C>>
|
? Promise<CollectionEntry<C>>
|
||||||
: Promise<CollectionEntry<C> | undefined>;
|
: Promise<CollectionEntry<C> | undefined>;
|
||||||
|
@ -128,7 +81,7 @@ declare module 'astro:content' {
|
||||||
E extends keyof DataEntryMap[C] | (string & {}),
|
E extends keyof DataEntryMap[C] | (string & {}),
|
||||||
>(
|
>(
|
||||||
collection: C,
|
collection: C,
|
||||||
id: E
|
id: E,
|
||||||
): E extends keyof DataEntryMap[C]
|
): E extends keyof DataEntryMap[C]
|
||||||
? Promise<DataEntryMap[C][E]>
|
? Promise<DataEntryMap[C][E]>
|
||||||
: Promise<CollectionEntry<C> | undefined>;
|
: Promise<CollectionEntry<C> | undefined>;
|
||||||
|
@ -138,17 +91,17 @@ declare module 'astro:content' {
|
||||||
entries: {
|
entries: {
|
||||||
collection: C;
|
collection: C;
|
||||||
slug: ValidContentEntrySlug<C>;
|
slug: ValidContentEntrySlug<C>;
|
||||||
}[]
|
}[],
|
||||||
): Promise<CollectionEntry<C>[]>;
|
): Promise<CollectionEntry<C>[]>;
|
||||||
export function getEntries<C extends keyof DataEntryMap>(
|
export function getEntries<C extends keyof DataEntryMap>(
|
||||||
entries: {
|
entries: {
|
||||||
collection: C;
|
collection: C;
|
||||||
id: keyof DataEntryMap[C];
|
id: keyof DataEntryMap[C];
|
||||||
}[]
|
}[],
|
||||||
): Promise<CollectionEntry<C>[]>;
|
): Promise<CollectionEntry<C>[]>;
|
||||||
|
|
||||||
export function reference<C extends keyof AnyEntryMap>(
|
export function reference<C extends keyof AnyEntryMap>(
|
||||||
collection: C
|
collection: C,
|
||||||
): import('astro/zod').ZodEffects<
|
): import('astro/zod').ZodEffects<
|
||||||
import('astro/zod').ZodString,
|
import('astro/zod').ZodString,
|
||||||
C extends keyof ContentEntryMap
|
C extends keyof ContentEntryMap
|
||||||
|
@ -165,7 +118,7 @@ declare module 'astro:content' {
|
||||||
// if `dev` is not running to update as you edit.
|
// if `dev` is not running to update as you edit.
|
||||||
// Invalid collection names will be caught at build time.
|
// Invalid collection names will be caught at build time.
|
||||||
export function reference<C extends string>(
|
export function reference<C extends string>(
|
||||||
collection: C
|
collection: C,
|
||||||
): import('astro/zod').ZodEffects<import('astro/zod').ZodString, never>;
|
): import('astro/zod').ZodEffects<import('astro/zod').ZodString, never>;
|
||||||
|
|
||||||
type ReturnTypeOrOriginal<T> = T extends (...args: any[]) => infer R ? R : T;
|
type ReturnTypeOrOriginal<T> = T extends (...args: any[]) => infer R ? R : T;
|
||||||
|
@ -231,6 +184,27 @@ declare module 'astro:content' {
|
||||||
collection: "releases";
|
collection: "releases";
|
||||||
data: InferEntrySchema<"releases">
|
data: InferEntrySchema<"releases">
|
||||||
} & { render(): Render[".md"] };
|
} & { render(): Render[".md"] };
|
||||||
|
"5_1_5.md": {
|
||||||
|
id: "5_1_5.md";
|
||||||
|
slug: "5_1_5";
|
||||||
|
body: string;
|
||||||
|
collection: "releases";
|
||||||
|
data: InferEntrySchema<"releases">
|
||||||
|
} & { render(): Render[".md"] };
|
||||||
|
"5_1_6.md": {
|
||||||
|
id: "5_1_6.md";
|
||||||
|
slug: "5_1_6";
|
||||||
|
body: string;
|
||||||
|
collection: "releases";
|
||||||
|
data: InferEntrySchema<"releases">
|
||||||
|
} & { render(): Render[".md"] };
|
||||||
|
"5_1_7.md": {
|
||||||
|
id: "5_1_7.md";
|
||||||
|
slug: "5_1_7";
|
||||||
|
body: string;
|
||||||
|
collection: "releases";
|
||||||
|
data: InferEntrySchema<"releases">
|
||||||
|
} & { render(): Render[".md"] };
|
||||||
};
|
};
|
||||||
|
|
||||||
};
|
};
|
||||||
|
@ -241,5 +215,5 @@ declare module 'astro:content' {
|
||||||
|
|
||||||
type AnyEntryMap = ContentEntryMap & DataEntryMap;
|
type AnyEntryMap = ContentEntryMap & DataEntryMap;
|
||||||
|
|
||||||
type ContentConfig = typeof import("../src/content/config");
|
export type ContentConfig = typeof import("./../src/content/config.js");
|
||||||
}
|
}
|
||||||
|
|
10
package.json
10
package.json
|
@ -10,11 +10,11 @@
|
||||||
"astro": "astro"
|
"astro": "astro"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@astrojs/check": "^0.4.0",
|
"@astrojs/check": "0.9.2",
|
||||||
"astro": "^4.1.1",
|
"astro": "^4.13.3",
|
||||||
"sass": "^1.69.5",
|
"sass": "^1.77.8",
|
||||||
"sharp": "^0.32.5",
|
"sharp": "^0.33.3",
|
||||||
"typescript": "^5.3.3"
|
"typescript": "^5.3.3"
|
||||||
},
|
},
|
||||||
"packageManager": "yarn@1.22.21+sha1.1959a18351b811cdeedbd484a8f86c3cc3bbaf72"
|
"packageManager": "yarn@1.22.21+sha1.1959a18351b811cdeedbd484a8f86c3cc3bbaf72"
|
||||||
}
|
}
|
30
src/content/releases/5_1_5.md
Normal file
30
src/content/releases/5_1_5.md
Normal file
|
@ -0,0 +1,30 @@
|
||||||
|
---
|
||||||
|
title: 'Ellie Bot 5.1.5.'
|
||||||
|
date: '2024-08-01'
|
||||||
|
versionNumber: '5.1.5'
|
||||||
|
description: 'Ellie Bot version 5.1.5 release notes.'
|
||||||
|
---
|
||||||
|
|
||||||
|
### Added
|
||||||
|
|
||||||
|
- Added: Added a `'afk <msg>?` command which sets an afk message which will trigger whenever someone pings you
|
||||||
|
- Message will when you type a message in any channel that the bot sees, or after 8 hours, whichever comes first
|
||||||
|
- The specified message will be prefixed with "The user is afk: "
|
||||||
|
- The afk message will disappear 30 seconds after being triggered
|
||||||
|
|
||||||
|
### Changed
|
||||||
|
|
||||||
|
- Bot now shows a message when 'prune fails due to already running error
|
||||||
|
- Updated some bet descriptions to include 'all' 'half' usage instructions
|
||||||
|
- Updated some command strings
|
||||||
|
- dev: Vastly simplified marmalade creation using dotnet templates, docs updated
|
||||||
|
- Slight refactor of 'wiki, 'time, 'catfact, 'wikia, 'define, 'bible and 'quran commands, no significant change in functionality
|
||||||
|
|
||||||
|
### Fixed
|
||||||
|
|
||||||
|
- 'coins will no longer show double minus sign for negative changes
|
||||||
|
- You can once again disable cleverbot responses using fake 'cleverbot:response' module name in permission commands
|
||||||
|
|
||||||
|
### Removed
|
||||||
|
|
||||||
|
- Removed 'rip command
|
31
src/content/releases/5_1_6.md
Normal file
31
src/content/releases/5_1_6.md
Normal file
|
@ -0,0 +1,31 @@
|
||||||
|
---
|
||||||
|
title: 'Ellie Bot 5.1.6.'
|
||||||
|
date: '2024-08-08'
|
||||||
|
versionNumber: '5.1.6'
|
||||||
|
description: 'Ellie Bot version 5.1.6 release notes.'
|
||||||
|
---
|
||||||
|
|
||||||
|
### Added
|
||||||
|
|
||||||
|
- `'serverlist` is now paginated
|
||||||
|
|
||||||
|
### Changed
|
||||||
|
|
||||||
|
- `'listservers` renamed to `'serverlist`
|
||||||
|
|
||||||
|
### Fixed
|
||||||
|
|
||||||
|
- `'afk` messages can no longer ping, and the response is moved to DMs to avoid abuse
|
||||||
|
- Possible fix for `'remind` timestamp
|
||||||
|
|
||||||
|
### Removed
|
||||||
|
- Removed old bloat / semi broken / dumb commands
|
||||||
|
- `'memelist` / `'memegen` (too inconvenient to use)
|
||||||
|
- `'activity` (useless owner-only command)
|
||||||
|
- `'rafflecur` (Just use raffle and then award manually instead)
|
||||||
|
- `'rollduel` (we had this command?)
|
||||||
|
- You can no longer bet on `'connect4`
|
||||||
|
- `'economy` Removed.
|
||||||
|
- Was buggy and didn't really show the real state of the economy.
|
||||||
|
- It might come back improved in the future
|
||||||
|
- `'mal` Removed. Useless information / semi broken
|
10
src/content/releases/5_1_7.md
Normal file
10
src/content/releases/5_1_7.md
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
---
|
||||||
|
title: 'Ellie Bot 5.1.7.'
|
||||||
|
date: '2024-08-09'
|
||||||
|
versionNumber: '5.1.7'
|
||||||
|
description: 'Ellie Bot version 5.1.7 release notes.'
|
||||||
|
---
|
||||||
|
|
||||||
|
### Fixed
|
||||||
|
|
||||||
|
- Fixed some command groups incorrectly showing up as modules
|
|
@ -58,4 +58,4 @@ $palette: (
|
||||||
900: #181b26,
|
900: #181b26,
|
||||||
950: #0e1016,
|
950: #0e1016,
|
||||||
),
|
),
|
||||||
);
|
);
|
|
@ -1,3 +1,3 @@
|
||||||
@import 'colors.scss';
|
@import 'colors.scss';
|
||||||
@import 'type.scss';
|
@import 'type.scss';
|
||||||
@import 'layout.scss';
|
@import 'layout.scss';
|
|
@ -12,9 +12,11 @@ body {
|
||||||
width: 1040px;
|
width: 1040px;
|
||||||
max-width: 100%;
|
max-width: 100%;
|
||||||
background-color: $white;
|
background-color: $white;
|
||||||
|
|
||||||
@media (prefers-color-scheme: dark) {
|
@media (prefers-color-scheme: dark) {
|
||||||
background-color: color(purple, 950);
|
background-color: color(gray, 950);
|
||||||
}
|
}
|
||||||
|
|
||||||
@media (max-width: $tablet) {
|
@media (max-width: $tablet) {
|
||||||
font-size: 16px;
|
font-size: 16px;
|
||||||
}
|
}
|
||||||
|
@ -37,23 +39,21 @@ body {
|
||||||
left: calc(50% - 360px);
|
left: calc(50% - 360px);
|
||||||
width: 720px;
|
width: 720px;
|
||||||
height: 240px;
|
height: 240px;
|
||||||
background: radial-gradient(
|
background: radial-gradient(50% 50% at 50% 50%,
|
||||||
50% 50% at 50% 50%,
|
rgba(color(orange, 500), 0.2) 0%,
|
||||||
rgba(color(orange, 500), 0.2) 0%,
|
rgba(color(orange, 500), 0) 100%);
|
||||||
rgba(color(orange, 500), 0) 100%
|
|
||||||
);
|
|
||||||
@media (prefers-color-scheme: dark) {
|
@media (prefers-color-scheme: dark) {
|
||||||
background: radial-gradient(
|
background: radial-gradient(50% 50% at 50% 50%,
|
||||||
50% 50% at 50% 50%,
|
rgba(255, 255, 255, 0.06) 0%,
|
||||||
rgba(255, 255, 255, 0.06) 0%,
|
rgba(255, 255, 255, 0) 100%);
|
||||||
rgba(255, 255, 255, 0) 100%
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
::selection {
|
::selection {
|
||||||
background: color(orange, 200);
|
background: color(orange, 200);
|
||||||
|
|
||||||
@media (prefers-color-scheme: dark) {
|
@media (prefers-color-scheme: dark) {
|
||||||
background: color(orange, 600);
|
background: color(orange, 600);
|
||||||
}
|
}
|
||||||
|
@ -62,9 +62,11 @@ body {
|
||||||
a,
|
a,
|
||||||
a:visited {
|
a:visited {
|
||||||
color: color(orange, 600);
|
color: color(orange, 600);
|
||||||
|
|
||||||
@media (prefers-color-scheme: dark) {
|
@media (prefers-color-scheme: dark) {
|
||||||
color: color(orange, 300);
|
color: color(orange, 300);
|
||||||
}
|
}
|
||||||
|
|
||||||
transition: 0.1s ease;
|
transition: 0.1s ease;
|
||||||
|
|
||||||
&:hover {
|
&:hover {
|
||||||
|
@ -76,6 +78,7 @@ hr {
|
||||||
margin: 1em 0;
|
margin: 1em 0;
|
||||||
border: 0;
|
border: 0;
|
||||||
border-bottom: 1px solid color(gray, 100);
|
border-bottom: 1px solid color(gray, 100);
|
||||||
|
|
||||||
@media (prefers-color-scheme: dark) {
|
@media (prefers-color-scheme: dark) {
|
||||||
border-color: color(gray, 900);
|
border-color: color(gray, 900);
|
||||||
}
|
}
|
||||||
|
@ -90,6 +93,7 @@ nav {
|
||||||
|
|
||||||
a {
|
a {
|
||||||
transition: 0.1s ease;
|
transition: 0.1s ease;
|
||||||
|
|
||||||
&:hover {
|
&:hover {
|
||||||
opacity: 0.6;
|
opacity: 0.6;
|
||||||
}
|
}
|
||||||
|
@ -98,14 +102,17 @@ nav {
|
||||||
#site_title {
|
#site_title {
|
||||||
margin: 0;
|
margin: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
#site_title a {
|
#site_title a {
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
gap: 10px;
|
gap: 10px;
|
||||||
color: color(gray, 950);
|
color: color(gray, 950);
|
||||||
|
|
||||||
@media (prefers-color-scheme: dark) {
|
@media (prefers-color-scheme: dark) {
|
||||||
color: $white;
|
color: $white;
|
||||||
}
|
}
|
||||||
|
|
||||||
font-size: 16px;
|
font-size: 16px;
|
||||||
font-weight: 700;
|
font-weight: 700;
|
||||||
letter-spacing: 2px;
|
letter-spacing: 2px;
|
||||||
|
@ -113,9 +120,11 @@ nav {
|
||||||
text-decoration: none;
|
text-decoration: none;
|
||||||
text-transform: uppercase;
|
text-transform: uppercase;
|
||||||
}
|
}
|
||||||
|
|
||||||
.links a {
|
.links a {
|
||||||
margin-left: 1em;
|
margin-left: 1em;
|
||||||
color: color(gray, 800);
|
color: color(gray, 800);
|
||||||
|
|
||||||
@media (prefers-color-scheme: dark) {
|
@media (prefers-color-scheme: dark) {
|
||||||
color: color(gray, 200);
|
color: color(gray, 200);
|
||||||
}
|
}
|
||||||
|
@ -123,6 +132,7 @@ nav {
|
||||||
}
|
}
|
||||||
|
|
||||||
.content {
|
.content {
|
||||||
|
|
||||||
ol,
|
ol,
|
||||||
ul {
|
ul {
|
||||||
padding-left: 2em;
|
padding-left: 2em;
|
||||||
|
@ -153,6 +163,7 @@ nav {
|
||||||
|
|
||||||
.page_title {
|
.page_title {
|
||||||
margin: 1.5em 0;
|
margin: 1.5em 0;
|
||||||
|
|
||||||
@media (max-width: $tablet) {
|
@media (max-width: $tablet) {
|
||||||
margin: 0.5em 0;
|
margin: 0.5em 0;
|
||||||
}
|
}
|
||||||
|
@ -166,6 +177,7 @@ nav {
|
||||||
.post {
|
.post {
|
||||||
display: flex;
|
display: flex;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
|
|
||||||
@media (max-width: $tablet) {
|
@media (max-width: $tablet) {
|
||||||
flex-flow: column;
|
flex-flow: column;
|
||||||
}
|
}
|
||||||
|
@ -178,12 +190,15 @@ nav {
|
||||||
|
|
||||||
.version_wrapper {
|
.version_wrapper {
|
||||||
flex-basis: 260px;
|
flex-basis: 260px;
|
||||||
|
|
||||||
@media (max-width: $container) {
|
@media (max-width: $container) {
|
||||||
flex-basis: 140px;
|
flex-basis: 140px;
|
||||||
}
|
}
|
||||||
|
|
||||||
flex-grow: 0;
|
flex-grow: 0;
|
||||||
flex-shrink: 0;
|
flex-shrink: 0;
|
||||||
margin: 4.5em 0 0 0;
|
margin: 4.5em 0 0 0;
|
||||||
|
|
||||||
@media (max-width: $tablet) {
|
@media (max-width: $tablet) {
|
||||||
flex-basis: 0;
|
flex-basis: 0;
|
||||||
margin-top: 2em;
|
margin-top: 2em;
|
||||||
|
@ -192,6 +207,7 @@ nav {
|
||||||
.version_info {
|
.version_info {
|
||||||
position: sticky;
|
position: sticky;
|
||||||
top: 1em;
|
top: 1em;
|
||||||
|
|
||||||
@media (max-width: $tablet) {
|
@media (max-width: $tablet) {
|
||||||
position: relative;
|
position: relative;
|
||||||
top: 0;
|
top: 0;
|
||||||
|
@ -217,26 +233,28 @@ nav {
|
||||||
margin-bottom: 8px;
|
margin-bottom: 8px;
|
||||||
padding: 4px 12px;
|
padding: 4px 12px;
|
||||||
color: $white;
|
color: $white;
|
||||||
background: linear-gradient(
|
background: linear-gradient(25deg,
|
||||||
25deg,
|
color(purple, 800),
|
||||||
color(purple, 800),
|
color(purple, 700),
|
||||||
color(purple, 700),
|
mix(color(purple, 500), color(orange, 500)),
|
||||||
mix(color(purple, 500), color(orange, 500)),
|
color(orange, 500));
|
||||||
color(orange, 500)
|
|
||||||
);
|
|
||||||
border-radius: 8px;
|
border-radius: 8px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.date {
|
.date {
|
||||||
clear: both;
|
clear: both;
|
||||||
|
|
||||||
@media (max-width: $tablet) {
|
@media (max-width: $tablet) {
|
||||||
display: inline;
|
display: inline;
|
||||||
margin-left: 1em;
|
margin-left: 1em;
|
||||||
}
|
}
|
||||||
|
|
||||||
color: color(gray, 800);
|
color: color(gray, 800);
|
||||||
|
|
||||||
@media (prefers-color-scheme: dark) {
|
@media (prefers-color-scheme: dark) {
|
||||||
color: color(gray, 200);
|
color: color(gray, 200);
|
||||||
}
|
}
|
||||||
|
|
||||||
font-family: $codeFont;
|
font-family: $codeFont;
|
||||||
font-size: $fontSizeSmall;
|
font-size: $fontSizeSmall;
|
||||||
}
|
}
|
||||||
|
@ -244,22 +262,28 @@ nav {
|
||||||
.content {
|
.content {
|
||||||
margin: 0;
|
margin: 0;
|
||||||
padding: 4em 0;
|
padding: 4em 0;
|
||||||
|
|
||||||
@media (max-width: $tablet) {
|
@media (max-width: $tablet) {
|
||||||
margin: 1em 0;
|
margin: 1em 0;
|
||||||
padding: 0 0 2em 0;
|
padding: 0 0 2em 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
border-bottom: 1px solid color(gray, 100);
|
border-bottom: 1px solid color(gray, 100);
|
||||||
|
|
||||||
@media (prefers-color-scheme: dark) {
|
@media (prefers-color-scheme: dark) {
|
||||||
border-color: color(gray, 900);
|
border-color: color(gray, 900);
|
||||||
}
|
}
|
||||||
|
|
||||||
*:first-child {
|
*:first-child {
|
||||||
margin-top: 0;
|
margin-top: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
img {
|
img {
|
||||||
max-width: 100%;
|
max-width: 100%;
|
||||||
height: auto;
|
height: auto;
|
||||||
border-radius: 12px;
|
border-radius: 12px;
|
||||||
border: 1px solid color(gray, 200);
|
border: 1px solid color(gray, 200);
|
||||||
|
|
||||||
@media (prefers-color-scheme: dark) {
|
@media (prefers-color-scheme: dark) {
|
||||||
border-color: color(gray, 800);
|
border-color: color(gray, 800);
|
||||||
}
|
}
|
||||||
|
@ -269,12 +293,15 @@ nav {
|
||||||
footer {
|
footer {
|
||||||
display: flex;
|
display: flex;
|
||||||
padding: 2em 0;
|
padding: 2em 0;
|
||||||
|
|
||||||
@media (max-width: $tablet) {
|
@media (max-width: $tablet) {
|
||||||
padding: 1em 0;
|
padding: 1em 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
color: color(gray, 500);
|
color: color(gray, 500);
|
||||||
justify-content: space-between;
|
justify-content: space-between;
|
||||||
border-top: 1px solid color(gray, 100);
|
border-top: 1px solid color(gray, 100);
|
||||||
|
|
||||||
@media (prefers-color-scheme: dark) {
|
@media (prefers-color-scheme: dark) {
|
||||||
border-color: color(gray, 900);
|
border-color: color(gray, 900);
|
||||||
}
|
}
|
||||||
|
@ -283,9 +310,10 @@ footer {
|
||||||
margin-left: 1em;
|
margin-left: 1em;
|
||||||
color: color(gray, 500);
|
color: color(gray, 500);
|
||||||
text-decoration: none;
|
text-decoration: none;
|
||||||
|
|
||||||
&:hover {
|
&:hover {
|
||||||
color: color(gray, 500);
|
color: color(gray, 500);
|
||||||
opacity: 0.6;
|
opacity: 0.6;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -7,9 +7,11 @@ body {
|
||||||
font-size: 18px;
|
font-size: 18px;
|
||||||
line-height: 1.65;
|
line-height: 1.65;
|
||||||
font-weight: 400;
|
font-weight: 400;
|
||||||
|
|
||||||
@media (prefers-color-scheme: dark) {
|
@media (prefers-color-scheme: dark) {
|
||||||
color: color(gray, 200);
|
color: color(gray, 200);
|
||||||
}
|
}
|
||||||
|
|
||||||
color: color(gray, 800);
|
color: color(gray, 800);
|
||||||
-webkit-font-smoothing: antialiased;
|
-webkit-font-smoothing: antialiased;
|
||||||
-moz-osx-font-smoothing: grayscale;
|
-moz-osx-font-smoothing: grayscale;
|
||||||
|
@ -23,9 +25,11 @@ h4,
|
||||||
h5 {
|
h5 {
|
||||||
line-height: 1.2;
|
line-height: 1.2;
|
||||||
margin: 1em 0 0.5em 0;
|
margin: 1em 0 0.5em 0;
|
||||||
|
|
||||||
@media (prefers-color-scheme: dark) {
|
@media (prefers-color-scheme: dark) {
|
||||||
color: $white;
|
color: $white;
|
||||||
}
|
}
|
||||||
|
|
||||||
color: color(gray, 950);
|
color: color(gray, 950);
|
||||||
font-weight: 700;
|
font-weight: 700;
|
||||||
}
|
}
|
||||||
|
@ -33,15 +37,19 @@ h5 {
|
||||||
h1 {
|
h1 {
|
||||||
font-size: 3.052em;
|
font-size: 3.052em;
|
||||||
}
|
}
|
||||||
|
|
||||||
h2 {
|
h2 {
|
||||||
font-size: 2.441em;
|
font-size: 2.441em;
|
||||||
}
|
}
|
||||||
|
|
||||||
h3 {
|
h3 {
|
||||||
font-size: 1.953em;
|
font-size: 1.953em;
|
||||||
}
|
}
|
||||||
|
|
||||||
h4 {
|
h4 {
|
||||||
font-size: 1.563em;
|
font-size: 1.563em;
|
||||||
}
|
}
|
||||||
|
|
||||||
h5 {
|
h5 {
|
||||||
font-size: 1.25em;
|
font-size: 1.25em;
|
||||||
}
|
}
|
||||||
|
@ -58,8 +66,10 @@ b,
|
||||||
strong {
|
strong {
|
||||||
font-weight: 700;
|
font-weight: 700;
|
||||||
color: #fff;
|
color: #fff;
|
||||||
|
|
||||||
@media (prefers-color-scheme: dark) {
|
@media (prefers-color-scheme: dark) {
|
||||||
color: $white;
|
color: $white;
|
||||||
}
|
}
|
||||||
|
|
||||||
color: color(gray, 950);
|
color: color(gray, 950);
|
||||||
}
|
}
|
Loading…
Reference in a new issue