work
This commit is contained in:
parent
07f27f886d
commit
29564d7891
15 changed files with 449 additions and 75 deletions
3
.gitignore
vendored
3
.gitignore
vendored
|
@ -19,3 +19,6 @@ pnpm-debug.log*
|
|||
|
||||
# macOS-specific files
|
||||
.DS_Store
|
||||
src/pages/posts/.obsidian/
|
||||
.vscode
|
||||
src/pages/posts/.trash
|
||||
|
|
7
.gitmodules
vendored
7
.gitmodules
vendored
|
@ -1,3 +1,6 @@
|
|||
[submodule "src/styles/terminal-css"]
|
||||
path = src/styles/terminal-css
|
||||
url = git@github.com:ArgentumCation/terminal-css.git
|
||||
path = src/styles/terminal-css
|
||||
url = git@github.com:ArgentumCation/terminal-css.git
|
||||
[submodule "littlelink"]
|
||||
path = littlelink
|
||||
url = git@github.com:ArgentumCation/littlelink.git
|
||||
|
|
|
@ -3,7 +3,7 @@ import mdx from '@astrojs/mdx';
|
|||
|
||||
export default defineConfig({
|
||||
markdown: {
|
||||
syntaxHighlight: 'shiki',
|
||||
syntaxHighlight: false,
|
||||
shikiConfig: {
|
||||
theme: 'css-variables'
|
||||
}
|
||||
|
|
1
littlelink
Submodule
1
littlelink
Submodule
|
@ -0,0 +1 @@
|
|||
Subproject commit 0d65b55b253309e4571253cafb003698083da726
|
|
@ -13,6 +13,8 @@
|
|||
"@astrojs/mdx": "^0.18.1",
|
||||
"accessible-astro-components": "^1.6.5",
|
||||
"astro": "^2.0.18",
|
||||
"highlight.js": "^11.7.0",
|
||||
"highlightjs-line-numbers.js": "^2.8.0",
|
||||
"sass": "^1.59.3"
|
||||
}
|
||||
}
|
13
pnpm-lock.yaml
generated
13
pnpm-lock.yaml
generated
|
@ -4,12 +4,16 @@ specifiers:
|
|||
'@astrojs/mdx': ^0.18.1
|
||||
accessible-astro-components: ^1.6.5
|
||||
astro: ^2.0.18
|
||||
highlight.js: ^11.7.0
|
||||
highlightjs-line-numbers.js: ^2.8.0
|
||||
sass: ^1.59.3
|
||||
|
||||
dependencies:
|
||||
'@astrojs/mdx': 0.18.1_astro@2.1.2
|
||||
accessible-astro-components: 1.6.5
|
||||
astro: 2.1.2_sass@1.59.3
|
||||
highlight.js: 11.7.0
|
||||
highlightjs-line-numbers.js: 2.8.0
|
||||
sass: 1.59.3
|
||||
|
||||
packages:
|
||||
|
@ -1625,6 +1629,15 @@ packages:
|
|||
space-separated-tokens: 2.0.2
|
||||
dev: false
|
||||
|
||||
/highlight.js/11.7.0:
|
||||
resolution: {integrity: sha512-1rRqesRFhMO/PRF+G86evnyJkCgaZFOI+Z6kdj15TA18funfoqJXvgPCLSf0SWq3SRfg1j3HlDs8o4s3EGq1oQ==}
|
||||
engines: {node: '>=12.0.0'}
|
||||
dev: false
|
||||
|
||||
/highlightjs-line-numbers.js/2.8.0:
|
||||
resolution: {integrity: sha512-TEf1gw0c8mb8nan0QwliqS7obT4cpUd9hzsGzsZLweteNnWea/VIqy5/aQqsa5wnz9lnvmtAkS1ZtDTjB/goYQ==}
|
||||
dev: false
|
||||
|
||||
/html-escaper/3.0.3:
|
||||
resolution: {integrity: sha512-RuMffC89BOWQoY0WKGpIhn5gX3iI54O6nRA0yC124NYVtzjmFWBIiFd8M0x+ZdX0P9R4lADg1mgP8C7PxGOWuQ==}
|
||||
dev: false
|
||||
|
|
|
@ -2,7 +2,8 @@
|
|||
// Import the global.css file here so that it is included on
|
||||
// all pages through the use of the <BaseHead /> component.
|
||||
import "../styles/global.css";
|
||||
import "../styles/terminal-css/css/lunar-witch.css";
|
||||
import "../styles/terminal-css/lunar-witch.css";
|
||||
//import "../styles/terminal-css/base16-lunar-witch.css";
|
||||
const { title, description } = Astro.props;
|
||||
---
|
||||
|
||||
|
@ -15,7 +16,27 @@ const { title, description } = Astro.props;
|
|||
<title>{title}</title>
|
||||
<meta name="title" content={title} />
|
||||
<meta name="description" content={description} />
|
||||
<link
|
||||
href="https://cdn.jsdelivr.net/gh/owenversteeg/min@gh-pages/entireframework.min.css"
|
||||
rel="stylesheet"
|
||||
/>
|
||||
<script>
|
||||
import hljs from "highlight.js";
|
||||
hljs.highlightAll();
|
||||
</script>
|
||||
<style>
|
||||
:root {
|
||||
/* base00 :Background, black */
|
||||
/* base01 :Light Background*/
|
||||
/* base02 :Selection Background*/
|
||||
/* base03 :comments, bright black*/
|
||||
/* base04 :status bars, dark foreground*/
|
||||
/* base05 :Foreground, white */
|
||||
/* base06 :Light Foreground */
|
||||
/* base07 :Light Background?? */
|
||||
/* base08 :red*/
|
||||
/* base09 :orange*/
|
||||
/* base0A :yellow*/
|
||||
/* base0B :green*/
|
||||
/* base0C :aqua/cyan*/
|
||||
/* base0D :blue*/
|
||||
/* base0E :purple*/
|
||||
/* base0F :*/
|
||||
}
|
||||
</style>
|
||||
|
|
|
@ -3,5 +3,9 @@ const today = new Date();
|
|||
---
|
||||
|
||||
<footer>
|
||||
© {today.getFullYear()} ArgentumCation. All rights reserved.
|
||||
This work © {today.getFullYear()} by <a href="https://argentumcation.com"
|
||||
>ArgentumCation (Mira Velturu)</a
|
||||
> is licensed under <a
|
||||
href="http://creativecommons.org/licenses/by-nc-sa/4.0/">CC BY-NC-SA 4.0</a
|
||||
>
|
||||
</footer>
|
||||
|
|
|
@ -1,7 +1,15 @@
|
|||
<nav class="nav" tabindex="-1" onclick="this.focus()">
|
||||
<div class="container">
|
||||
<a class="pagename current" href="#">ArgentumCation</a>
|
||||
<a href="/">Home</a>
|
||||
<a href="/posts">Posts</a>
|
||||
</div>
|
||||
</nav>
|
||||
<div class="terminal-nav">
|
||||
<header class="terminal-logo">
|
||||
<div class="logo terminal-prompt"><a href="https://argentumcation.com" class="no-style">ArgentumCation</a></div>
|
||||
</header>
|
||||
<nav class="terminal-menu">
|
||||
<ul>
|
||||
<li>
|
||||
<a class="menu-item" href="https://links.argentumcation.com">Links</a>
|
||||
</li>
|
||||
<li>
|
||||
<a class="menu-item" href="https://argentumcation.com/posts">Posts</a>
|
||||
</li>
|
||||
</ul>
|
||||
</nav>
|
||||
</div>
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
---
|
||||
import Header from "../components/Header.astro";
|
||||
import Footer from "../components/Footer.astro";
|
||||
import BaseHead from "../components/BaseHead.astro";
|
||||
const { title } = Astro.props;
|
||||
---
|
||||
|
@ -10,11 +11,12 @@ const { title } = Astro.props;
|
|||
title={title}
|
||||
description="I don't know what I'm doing here either"
|
||||
/>
|
||||
<body>
|
||||
<body class="container">
|
||||
<Header />
|
||||
<main>
|
||||
<h1>{title}</h1>
|
||||
<slot />
|
||||
</main>
|
||||
<Footer />
|
||||
</body>
|
||||
</html>
|
||||
|
|
|
@ -12,7 +12,7 @@ const {
|
|||
<head>
|
||||
<BaseHead title={title} description={description} />
|
||||
</head>
|
||||
<body>
|
||||
<body class="container">
|
||||
<Header />
|
||||
<main>
|
||||
<article>
|
||||
|
|
|
@ -1,8 +1,13 @@
|
|||
---
|
||||
import BaseHead from "../components/BaseHead.astro";
|
||||
import Header from "../components/Header.astro";
|
||||
import Footer from "../components/Footer.astro";
|
||||
---
|
||||
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<BaseHead title="ArgentumCation" />
|
||||
<meta charset="utf-8" />
|
||||
<link rel="icon" type="image/svg+xml" href="/favicon.ico" />
|
||||
<meta name="viewport" content="width=device-width" /><meta
|
||||
|
@ -10,7 +15,12 @@
|
|||
content={Astro.generator}
|
||||
/><title>Astro</title></head
|
||||
>
|
||||
<body class="container">
|
||||
<Header />
|
||||
<main>
|
||||
<h1>ArgentumCation</h1>
|
||||
<p>Look I know it's a kinda shit homepage, I'm working on it.</p>
|
||||
</main>
|
||||
<Footer />
|
||||
</body>
|
||||
</html>
|
||||
<body>
|
||||
<h1>Astro</h1>
|
||||
</body>
|
||||
|
|
143
src/pages/posts/traefik-setup.mdx
Normal file
143
src/pages/posts/traefik-setup.mdx
Normal file
|
@ -0,0 +1,143 @@
|
|||
---
|
||||
title: "Getting up and running with Traefik"
|
||||
author: "ArgentumCation"
|
||||
layout: ../../layouts/Layout.astro
|
||||
pubDate: "03 Apr, 2023"
|
||||
slug: "traefik-setup"
|
||||
---
|
||||
|
||||
- Okay so you've got a server now and need a reverse proxy
|
||||
- Traefik is pretty decent at that, it'll set up your HTTPS certs and auto generate routes from your docker images
|
||||
- only problem is its an absolute bitch to set up
|
||||
- Here's a stripped down `docker-compose.yml` to give you an idea of how I have it set up
|
||||
- The end result should be a lighttpd server running on `blog.argentumcation.com`
|
||||
```yaml
|
||||
# Just setting some default values for my containers
|
||||
x-service_defaults:
|
||||
&service_defaults
|
||||
env_file: .env
|
||||
restart: unless-stopped
|
||||
extra_hosts:
|
||||
- host.docker.internal:host-gateway
|
||||
services:
|
||||
traefik:
|
||||
<<: *service_defaults
|
||||
container_name: traefik
|
||||
env_file:
|
||||
- .env
|
||||
# Cloudflare API token to add new paths
|
||||
- $ENV_DIR/traefik.secrets.env
|
||||
hostname: traefik
|
||||
image: traefik:latest
|
||||
labels:
|
||||
- traefik.http.services.traefik-docker.loadbalancer.server.port=8080
|
||||
# For the management interface
|
||||
- '8080:8080'
|
||||
# To let traefik receive incoming HTTP traffic
|
||||
- '80:80'
|
||||
# To let traefik receive incoming HTTPS traffic
|
||||
- '443:443'
|
||||
volumes:
|
||||
# This lets traefik see your docker services
|
||||
- $DOCKER_SOCK:/var/run/docker.sock:ro
|
||||
# Traefik Configs
|
||||
- $CONF_DIR/traefik/traefik.yml:/traefik.yml
|
||||
- $CONF_DIR/traefik/traefik_dynamic.yml:/etc/traefik/traefik_dynamic.yml
|
||||
# Let's Encrypt folder (for storing HTTPS cert related stuff)
|
||||
- $CONF_DIR/letsencrypt:/letsencrypt
|
||||
# Example container we're proxying with traefik
|
||||
lighttpd:
|
||||
<<: *service_defaults
|
||||
container_name: public_lighttpd
|
||||
image: sebp/lighttpd
|
||||
labels:
|
||||
# This is the hostname that traefik will proxy to this container
|
||||
- traefik.http.routers.lighttpd-docker.rule=Host(`blog.$PUBLIC`)
|
||||
# This is the port the container is listening on, often traefik can detect this
|
||||
# automatically, but we'll just be explicit here
|
||||
- traefik.http.services.lighttpd-docker.loadbalancer.server.port=80
|
||||
```
|
||||
- `traefik.secrets.env` contains my cloudflare API key so that Traefik can automatically add DNS routes
|
||||
- For reference, here's my `.env` file
|
||||
```sh
|
||||
# GENERAL
|
||||
PUBLIC=argentumcation.com
|
||||
TZ=America/New_York
|
||||
|
||||
#for container specific env vars
|
||||
ENV_DIR=./env
|
||||
|
||||
CONF_DIR=./config
|
||||
|
||||
DOCKER_DIR=/home/mira/docker
|
||||
DOCKER_SOCK=/var/run/docker.sock
|
||||
|
||||
# So my containers run as a non-root user
|
||||
UID=1000
|
||||
GID=1000
|
||||
PUID=1000
|
||||
PGID=1000
|
||||
USER_UID=1000
|
||||
USER_GID=1000
|
||||
```
|
||||
- And of course, the actual traefik configuration files:
|
||||
- `traefik.yml`:
|
||||
```yaml
|
||||
accessLog:
|
||||
filePath: ./traefik-access.log
|
||||
|
||||
api:
|
||||
dashboard: true
|
||||
debug: true
|
||||
insecure: true
|
||||
certificatesResolvers:
|
||||
letsencrypt:
|
||||
acme:
|
||||
dnschallenge:
|
||||
provider: cloudflare #look, I know, don't judge me
|
||||
email: [redacted]
|
||||
storage: /letsencrypt/acme.json
|
||||
entryPoints:
|
||||
web:
|
||||
address: ":80"
|
||||
forwardedHeaders:
|
||||
insecure: true
|
||||
http:
|
||||
middlewares:
|
||||
- https_redirect@file
|
||||
|
||||
websecure:
|
||||
address: ":443"
|
||||
forwardedHeaders:
|
||||
insecure: true
|
||||
http:
|
||||
tls:
|
||||
certresolver: letsencrypt
|
||||
domains:
|
||||
- main: argentumcation.com
|
||||
sans:
|
||||
- "*.argentumcation.com"
|
||||
log:
|
||||
level: INFO
|
||||
providers:
|
||||
docker:
|
||||
# Routes will be set to [container-name].argentumcation.com by default
|
||||
defaultRule: Host(`{{ index .Labels "com.docker.compose.service" }}.argentumcation.com`)
|
||||
endpoint: unix:///var/run/docker.sock
|
||||
exposedByDefault: true # exposes auto-discovered containers by default, not secure but I'm lazy
|
||||
network: docker_default
|
||||
watch: true
|
||||
file:
|
||||
directory: /etc/traefik/
|
||||
watch: true
|
||||
|
||||
```
|
||||
- `traefik-dynamic.yml`
|
||||
```yaml
|
||||
http:
|
||||
middlewares: #This should redirect incoming http connections to https
|
||||
https_redirect:
|
||||
redirectscheme:
|
||||
scheme: https
|
||||
permanent: true
|
||||
```
|
|
@ -1,65 +1,229 @@
|
|||
@import "https://unpkg.com/terminal.css@0.7.2/dist/terminal.min.css";
|
||||
:root {
|
||||
--astro-code-color-text: var(--fg);
|
||||
--astro-code-color-background: var(--black);
|
||||
--astro-code-token-constant: var(--red);
|
||||
--astro-code-token-string: var(--bright-green);
|
||||
--astro-code-token-comment: var(--bright-black);
|
||||
--astro-code-token-keyword: var(--bright-cyan);
|
||||
--astro-code-token-parameter: var(--bright-magenta);
|
||||
--astro-code-token-function: var(--bright-blue);
|
||||
--astro-code-token-string-expression: var(--bright-green);
|
||||
--astro-code-token-punctuation: var(--fg);
|
||||
--astro-code-token-link: var(--blue);
|
||||
/* Terminal Colors */
|
||||
--background-color: var(--base00, var(--background));
|
||||
--font-color: var(--base05, var(--foreground));
|
||||
--invert-font-color: var(--base00, var(--background));
|
||||
--primary-color: var(--base0D, var(--cyan));
|
||||
--secondary-color: var(--base0D, var(--cyan));
|
||||
--tertiary-color: var(--base0B, var(--green));
|
||||
--error-color: var(--base08, var(--red));
|
||||
--progress-bar-background: var(--base04, var(--blue));
|
||||
--progress-bar-fill: var(--base02, var(--cyan));
|
||||
--code-bg-color: var(--base00, var(--background));
|
||||
|
||||
/* Astro Config */
|
||||
--astro-code-color-text: var(--base05, --foreground);
|
||||
--astro-code-color-background: var(--base00, --background);
|
||||
--astro-code-token-constant: var(--base09, var(--orange, var(--cyan)));
|
||||
--astro-code-token-string: var(--base0B, --green);
|
||||
--astro-code-token-comment: var(--base03, --bright-black);
|
||||
--astro-code-token-keyword: var(--base0E, --magenta);
|
||||
--astro-code-token-parameter: var(--base08, --red);
|
||||
--astro-code-token-function: var(--base0D, --blue);
|
||||
--astro-code-token-string-expression: var(--base0B, --green);
|
||||
--astro-code-token-punctuation: var(--base05, --foreground);
|
||||
--astro-code-token-link: var(--base09, var(--orange, var(--cyan)));
|
||||
/*Fonts*/
|
||||
--mono-font-stack: Liga SFMono Nerd Font, Ubuntu, Menlo, Monaco, Cascadia Code,
|
||||
Lucida Console, Liberation Mono, DejaVu Sans Mono, Bitstream Vera Sans Mono,
|
||||
Courier New, monospace, serif;
|
||||
--font-stack: var(--mono-font-stack);
|
||||
}
|
||||
|
||||
footer {
|
||||
/* margin-top: 20vh; */
|
||||
padding: 0.5em;
|
||||
}
|
||||
|
||||
main {
|
||||
margin: 0 auto;
|
||||
padding: 1.5em;
|
||||
max-width: 75vmax;
|
||||
min-height: 100vh;
|
||||
}
|
||||
|
||||
code {
|
||||
counter-reset: step;
|
||||
counter-increment: step 0;
|
||||
}
|
||||
|
||||
code .line::before {
|
||||
content: counter(step);
|
||||
counter-increment: step;
|
||||
width: 1rem;
|
||||
margin-right: 1.5rem;
|
||||
display: inline-block;
|
||||
text-align: right;
|
||||
color: var(--bright-black);
|
||||
font-weight: bolder;
|
||||
}
|
||||
|
||||
article {
|
||||
margin: 0 auto;
|
||||
}
|
||||
|
||||
.nav {
|
||||
background: var(--bright-black) !important;
|
||||
color: var(--fg);
|
||||
pre code.hljs {
|
||||
display: block;
|
||||
overflow-x: auto;
|
||||
padding: 1em;
|
||||
}
|
||||
|
||||
.nav .current {
|
||||
background: var(--bright-black) !important;
|
||||
color: var(--fg);
|
||||
margin-bottom: 0.5em;
|
||||
code.hljs {
|
||||
padding: 3px 5px;
|
||||
}
|
||||
.nav a:hover {
|
||||
background: var(--bright-black) !important;
|
||||
color: var(--fg);
|
||||
|
||||
.hljs {
|
||||
color: var(--base05, var(--foreground));
|
||||
background: var(--base00, var(--background));
|
||||
}
|
||||
|
||||
.hljs::selection,
|
||||
.hljs ::selection {
|
||||
background-color: var(--base02, var(--cyan));
|
||||
color: var(--base05, var(--foreground));
|
||||
}
|
||||
|
||||
/* purposely do not highlight these things */
|
||||
.hljs-formula,
|
||||
.hljs-params,
|
||||
.hljs-property {
|
||||
}
|
||||
|
||||
/* base03 - var(--base03,) - Comments, Invisibles, Line Highlighting */
|
||||
.hljs-comment {
|
||||
color: var(--base03, var(--bright-black));
|
||||
}
|
||||
|
||||
/* base04 - var(--base04,) - Dark Foreground (Used for status bars) */
|
||||
.hljs-tag {
|
||||
color: var(--base04, var(--blue));
|
||||
}
|
||||
|
||||
/* base05 - var(--base05,) - Default Foreground, Caret, Delimiters, Operators */
|
||||
.hljs-subst,
|
||||
.hljs-punctuation,
|
||||
.hljs-operator {
|
||||
color: var(--base05, var(--foreground));
|
||||
}
|
||||
|
||||
.hljs-operator {
|
||||
opacity: 0.7;
|
||||
}
|
||||
|
||||
/* base08 - Variables, XML Tags, Markup Link Text, Markup Lists, Diff Deleted */
|
||||
.hljs-bullet,
|
||||
.hljs-variable,
|
||||
.hljs-template-variable,
|
||||
.hljs-selector-tag,
|
||||
.hljs-name,
|
||||
.hljs-deletion {
|
||||
color: var(--base08, var(--red));
|
||||
}
|
||||
|
||||
/* base09 - Integers, Boolean, Constants, XML Attributes, Markup Link Url */
|
||||
.hljs-symbol,
|
||||
.hljs-number,
|
||||
.hljs-link,
|
||||
.hljs-attr,
|
||||
.hljs-variable.constant_,
|
||||
.hljs-literal {
|
||||
color: var(--base09, var(--orange, var(--cyan)));
|
||||
}
|
||||
|
||||
/* base0A - Classes, Markup Bold, Search Text Background */
|
||||
.hljs-title,
|
||||
.hljs-class .hljs-title,
|
||||
.hljs-title.class_ {
|
||||
color: var(--base0A, var(--yellow));
|
||||
}
|
||||
|
||||
.hljs-strong {
|
||||
font-weight: bold;
|
||||
color: var(--base0A, var(--yellow));
|
||||
}
|
||||
|
||||
/* base0B - Strings, Inherited Class, Markup Code, Diff Inserted */
|
||||
.hljs-code,
|
||||
.hljs-addition,
|
||||
.hljs-title.class_.inherited__,
|
||||
.hljs-string {
|
||||
color: var(--base0B, var(--green));
|
||||
}
|
||||
|
||||
/* base0C - Support, Regular Expressions, Escape Characters, Markup Quotes */
|
||||
.hljs-built_in,
|
||||
.hljs-doctag, /* guessing */
|
||||
.hljs-quote,
|
||||
.hljs-keyword.hljs-atrule,
|
||||
.hljs-regexp {
|
||||
color: var(--base0C, var(--cyan));
|
||||
}
|
||||
|
||||
/* base0D - Functions, Methods, Attribute IDs, Headings */
|
||||
.hljs-function .hljs-title,
|
||||
.hljs-attribute,
|
||||
.ruby .hljs-property,
|
||||
.hljs-title.function_,
|
||||
.hljs-section {
|
||||
color: var(--base0D, var(--blue));
|
||||
}
|
||||
|
||||
/* base0E - Keywords, Storage, Selector, Markup Italic, Diff Changed */
|
||||
.hljs-type,
|
||||
/* .hljs-selector-id, */
|
||||
/* .hljs-selector-class, */
|
||||
/* .hljs-selector-attr, */
|
||||
/* .hljs-selector-pseudo, */
|
||||
.hljs-template-tag,
|
||||
.diff .hljs-meta,
|
||||
.hljs-keyword {
|
||||
color: var(--base0E, var(--magenta));
|
||||
}
|
||||
.hljs-emphasis {
|
||||
color: var(--base0E, var(--magenta));
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
/* base0F - Deprecated, Opening/Closing Embedded Language Tags, e.g. <?php ?> */
|
||||
.hljs-meta,
|
||||
/*
|
||||
prevent top level .keyword and .string scopes
|
||||
from leaking into meta by accident
|
||||
*/
|
||||
.hljs-meta .hljs-keyword,
|
||||
.hljs-meta .hljs-string {
|
||||
color: var(--base0F, var(--orange, var(--cyan)));
|
||||
}
|
||||
|
||||
.hljs-meta .hljs-keyword,
|
||||
/* for v10 compatible themes */
|
||||
.hljs-meta-keyword {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
code {
|
||||
background-color: var(--base03, var(--bright-black));
|
||||
}
|
||||
|
||||
footer {
|
||||
padding-bottom: 1em;
|
||||
}
|
||||
.astro-code {
|
||||
background-color: unset;
|
||||
padding: 0.5rem;
|
||||
}
|
||||
|
||||
main {
|
||||
min-height: 85vh;
|
||||
}
|
||||
|
||||
li:has(.card)::after {
|
||||
content: unset;
|
||||
}
|
||||
|
||||
ol {
|
||||
list-style-type: decimal;
|
||||
}
|
||||
ol ol {
|
||||
list-style-type: lower-alpha;
|
||||
}
|
||||
|
||||
ol ol ol {
|
||||
list-style-type: lower-roman;
|
||||
}
|
||||
|
||||
ol ol ol ol {
|
||||
list-style-type: simp-chinese-informal;
|
||||
}
|
||||
|
||||
ol ol ol ol ol {
|
||||
list-style-type: devanagari;
|
||||
}
|
||||
|
||||
ol ol ol ol ol ol {
|
||||
list-style-type: katakana;
|
||||
}
|
||||
|
||||
ol ol ol ol ol ol ol {
|
||||
list-style-type: lower-greek;
|
||||
}
|
||||
|
||||
ol ol ol ol ol ol ol ol {
|
||||
list-style-type: cjk-earthly-branch;
|
||||
}
|
||||
ol ol ol ol ol ol ol ol ol {
|
||||
list-style-type: cjk-heavenly-stem;
|
||||
}
|
||||
|
||||
ol ol ol ol ol ol ol ol ol ol {
|
||||
list-style-type: hebrew;
|
||||
}
|
||||
|
|
|
@ -1 +1 @@
|
|||
Subproject commit baa520f5374bb3fa0df59696c0bcb18024cfb728
|
||||
Subproject commit 1892e39f3d5fabd8f8f4232285ded1a88ed1430d
|
Loading…
Add table
Reference in a new issue