mirror of
https://github.com/pxdg-afk/paxad.git
synced 2026-08-23 01:01:06 -04:00
Compare commits
30 Commits
a75ad2126b
...
dependabot
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
ac50e7aaa9 | ||
|
|
1427bcd616 | ||
|
|
252184e1e4 | ||
|
|
b5e3c2b762 | ||
|
|
8908ee8e1f | ||
|
|
120f6bef30 | ||
|
|
a2464a05ef | ||
|
|
d686ca3fe3 | ||
|
|
8b60e3a0a4 | ||
|
|
5098abcfdb | ||
|
|
03be7bd6c2 | ||
|
|
40f94955c3 | ||
|
|
6ec5232131 | ||
|
|
6db8955e2f | ||
|
|
9be061ff8f | ||
|
|
a8866448ab | ||
|
|
f9542e6238 | ||
|
|
4385c17f0c | ||
|
|
a67c128883 | ||
|
|
9b0de082e4 | ||
|
|
009eaa6714 | ||
|
|
3bb2a90ddf | ||
|
|
d8adef1b54 | ||
|
|
e1f0c97588 | ||
|
|
3e5055d189 | ||
|
|
09caf9499f | ||
|
|
8ac14a4df7 | ||
|
|
52bf85dd31 | ||
|
|
bac90ae0a3 | ||
|
|
bf5219800e |
8
.github/workflows/build-preview.yaml
vendored
8
.github/workflows/build-preview.yaml
vendored
@@ -11,17 +11,17 @@ jobs:
|
||||
runs-on: ubuntu-latest
|
||||
name: Build Preview
|
||||
steps:
|
||||
- uses: actions/checkout@v6
|
||||
- uses: actions/checkout@v7
|
||||
with:
|
||||
fetch-depth: 0
|
||||
|
||||
- name: Setup Node
|
||||
uses: actions/setup-node@v6
|
||||
uses: actions/setup-node@v7
|
||||
with:
|
||||
node-version: 22
|
||||
|
||||
- name: Cache dependencies
|
||||
uses: actions/cache@v5
|
||||
uses: actions/cache@v6
|
||||
with:
|
||||
path: ~/.npm
|
||||
key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }}
|
||||
@@ -29,7 +29,7 @@ jobs:
|
||||
${{ runner.os }}-node-
|
||||
|
||||
- name: Cache Quartz plugins
|
||||
uses: actions/cache@v5
|
||||
uses: actions/cache@v6
|
||||
with:
|
||||
path: .quartz/plugins
|
||||
key: ${{ runner.os }}-plugins-${{ hashFiles('quartz.lock.json') }}
|
||||
|
||||
12
.github/workflows/ci.yaml
vendored
12
.github/workflows/ci.yaml
vendored
@@ -19,17 +19,17 @@ jobs:
|
||||
permissions:
|
||||
contents: write
|
||||
steps:
|
||||
- uses: actions/checkout@v6
|
||||
- uses: actions/checkout@v7
|
||||
with:
|
||||
fetch-depth: 0
|
||||
|
||||
- name: Setup Node
|
||||
uses: actions/setup-node@v6
|
||||
uses: actions/setup-node@v7
|
||||
with:
|
||||
node-version: 24
|
||||
|
||||
- name: Cache dependencies
|
||||
uses: actions/cache@v5
|
||||
uses: actions/cache@v6
|
||||
with:
|
||||
path: ~/.npm
|
||||
key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }}
|
||||
@@ -37,7 +37,7 @@ jobs:
|
||||
${{ runner.os }}-node-
|
||||
|
||||
- name: Cache Quartz plugins
|
||||
uses: actions/cache@v5
|
||||
uses: actions/cache@v6
|
||||
with:
|
||||
path: .quartz/plugins
|
||||
key: ${{ runner.os }}-plugins-${{ hashFiles('quartz.lock.json') }}
|
||||
@@ -64,11 +64,11 @@ jobs:
|
||||
permissions:
|
||||
contents: write
|
||||
steps:
|
||||
- uses: actions/checkout@v6
|
||||
- uses: actions/checkout@v7
|
||||
with:
|
||||
fetch-depth: 0
|
||||
- name: Setup Node
|
||||
uses: actions/setup-node@v6
|
||||
uses: actions/setup-node@v7
|
||||
with:
|
||||
node-version: 24
|
||||
- name: Get package version
|
||||
|
||||
8
.github/workflows/deploy-v5.yaml
vendored
8
.github/workflows/deploy-v5.yaml
vendored
@@ -16,17 +16,17 @@ jobs:
|
||||
runs-on: ubuntu-latest
|
||||
name: Deploy v5 to Cloudflare Pages
|
||||
steps:
|
||||
- uses: actions/checkout@v6
|
||||
- uses: actions/checkout@v7
|
||||
with:
|
||||
fetch-depth: 0
|
||||
|
||||
- name: Setup Node
|
||||
uses: actions/setup-node@v6
|
||||
uses: actions/setup-node@v7
|
||||
with:
|
||||
node-version: 24
|
||||
|
||||
- name: Cache dependencies
|
||||
uses: actions/cache@v5
|
||||
uses: actions/cache@v6
|
||||
with:
|
||||
path: ~/.npm
|
||||
key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }}
|
||||
@@ -34,7 +34,7 @@ jobs:
|
||||
${{ runner.os }}-node-
|
||||
|
||||
- name: Cache Quartz plugins
|
||||
uses: actions/cache@v5
|
||||
uses: actions/cache@v6
|
||||
with:
|
||||
path: .quartz/plugins
|
||||
key: ${{ runner.os }}-plugins-${{ hashFiles('quartz.lock.json') }}
|
||||
|
||||
4
.github/workflows/docker-build-push.yaml
vendored
4
.github/workflows/docker-build-push.yaml
vendored
@@ -21,11 +21,11 @@ jobs:
|
||||
echo "OWNER_LOWERCASE=${OWNER,,}" >> ${GITHUB_ENV}
|
||||
env:
|
||||
OWNER: "${{ github.repository_owner }}"
|
||||
- uses: actions/checkout@v6
|
||||
- uses: actions/checkout@v7
|
||||
with:
|
||||
fetch-depth: 1
|
||||
- name: Inject slug/short variables
|
||||
uses: rlespinasse/github-slug-action@v5.6.0
|
||||
uses: rlespinasse/github-slug-action@v5.7.0
|
||||
- name: Set up QEMU
|
||||
uses: docker/setup-qemu-action@v4
|
||||
- name: Set up Docker Buildx
|
||||
|
||||
3
.gitignore
vendored
3
.gitignore
vendored
@@ -4,10 +4,11 @@ node_modules
|
||||
public
|
||||
prof
|
||||
tsconfig.tsbuildinfo
|
||||
.obsidian
|
||||
.quartz-cache
|
||||
private/
|
||||
.replit
|
||||
replit.nix
|
||||
.quartz/
|
||||
quartz/cli/tui/dist/
|
||||
.obsidian/workspace.json
|
||||
.trash/
|
||||
10
.obsidian/app.json
vendored
Normal file
10
.obsidian/app.json
vendored
Normal file
@@ -0,0 +1,10 @@
|
||||
{
|
||||
"userIgnoreFilters": [
|
||||
"docs",
|
||||
"public/",
|
||||
"quartz/",
|
||||
"node_modules/"
|
||||
],
|
||||
"showUnsupportedFiles": false,
|
||||
"promptDelete": false
|
||||
}
|
||||
5
.obsidian/appearance.json
vendored
Normal file
5
.obsidian/appearance.json
vendored
Normal file
@@ -0,0 +1,5 @@
|
||||
{
|
||||
"cssTheme": "Retroma",
|
||||
"textFontFamily": "Sono",
|
||||
"monospaceFontFamily": ""
|
||||
}
|
||||
6
.obsidian/community-plugins.json
vendored
Normal file
6
.obsidian/community-plugins.json
vendored
Normal file
@@ -0,0 +1,6 @@
|
||||
[
|
||||
"dataview",
|
||||
"quartz-syncer",
|
||||
"obsidian-style-settings",
|
||||
"obsidian-excalidraw-plugin"
|
||||
]
|
||||
33
.obsidian/core-plugins.json
vendored
Normal file
33
.obsidian/core-plugins.json
vendored
Normal file
@@ -0,0 +1,33 @@
|
||||
{
|
||||
"file-explorer": true,
|
||||
"global-search": true,
|
||||
"switcher": true,
|
||||
"graph": true,
|
||||
"backlink": true,
|
||||
"canvas": true,
|
||||
"outgoing-link": true,
|
||||
"tag-pane": true,
|
||||
"footnotes": false,
|
||||
"properties": true,
|
||||
"page-preview": true,
|
||||
"daily-notes": true,
|
||||
"templates": true,
|
||||
"note-composer": true,
|
||||
"command-palette": true,
|
||||
"slash-command": false,
|
||||
"editor-status": true,
|
||||
"bookmarks": true,
|
||||
"markdown-importer": false,
|
||||
"zk-prefixer": false,
|
||||
"random-note": false,
|
||||
"outline": true,
|
||||
"word-count": true,
|
||||
"slides": false,
|
||||
"audio-recorder": false,
|
||||
"workspaces": true,
|
||||
"file-recovery": true,
|
||||
"publish": false,
|
||||
"sync": false,
|
||||
"bases": true,
|
||||
"webviewer": false
|
||||
}
|
||||
20876
.obsidian/plugins/dataview/main.js
vendored
Normal file
20876
.obsidian/plugins/dataview/main.js
vendored
Normal file
File diff suppressed because one or more lines are too long
11
.obsidian/plugins/dataview/manifest.json
vendored
Normal file
11
.obsidian/plugins/dataview/manifest.json
vendored
Normal file
@@ -0,0 +1,11 @@
|
||||
{
|
||||
"id": "dataview",
|
||||
"name": "Dataview",
|
||||
"version": "0.5.68",
|
||||
"minAppVersion": "0.13.11",
|
||||
"description": "Complex data views for the data-obsessed.",
|
||||
"author": "Michael Brenan <blacksmithgu@gmail.com>",
|
||||
"authorUrl": "https://github.com/blacksmithgu",
|
||||
"helpUrl": "https://blacksmithgu.github.io/obsidian-dataview/",
|
||||
"isDesktopOnly": false
|
||||
}
|
||||
141
.obsidian/plugins/dataview/styles.css
vendored
Normal file
141
.obsidian/plugins/dataview/styles.css
vendored
Normal file
@@ -0,0 +1,141 @@
|
||||
.block-language-dataview {
|
||||
overflow-y: auto;
|
||||
}
|
||||
|
||||
/*****************/
|
||||
/** Table Views **/
|
||||
/*****************/
|
||||
|
||||
/* List View Default Styling; rendered internally as a table. */
|
||||
.table-view-table {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.table-view-table > thead > tr, .table-view-table > tbody > tr {
|
||||
margin-top: 1em;
|
||||
margin-bottom: 1em;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
.table-view-table > tbody > tr:hover {
|
||||
background-color: var(--table-row-background-hover);
|
||||
}
|
||||
|
||||
.table-view-table > thead > tr > th {
|
||||
font-weight: 700;
|
||||
font-size: larger;
|
||||
border-top: none;
|
||||
border-left: none;
|
||||
border-right: none;
|
||||
border-bottom: solid;
|
||||
|
||||
max-width: 100%;
|
||||
}
|
||||
|
||||
.table-view-table > tbody > tr > td {
|
||||
text-align: left;
|
||||
border: none;
|
||||
font-weight: 400;
|
||||
max-width: 100%;
|
||||
}
|
||||
|
||||
.table-view-table ul, .table-view-table ol {
|
||||
margin-block-start: 0.2em !important;
|
||||
margin-block-end: 0.2em !important;
|
||||
}
|
||||
|
||||
/** Rendered value styling for any view. */
|
||||
.dataview-result-list-root-ul {
|
||||
padding: 0em !important;
|
||||
margin: 0em !important;
|
||||
}
|
||||
|
||||
.dataview-result-list-ul {
|
||||
margin-block-start: 0.2em !important;
|
||||
margin-block-end: 0.2em !important;
|
||||
}
|
||||
|
||||
/** Generic grouping styling. */
|
||||
.dataview.result-group {
|
||||
padding-left: 8px;
|
||||
}
|
||||
|
||||
/*******************/
|
||||
/** Inline Fields **/
|
||||
/*******************/
|
||||
|
||||
.dataview.inline-field-key {
|
||||
padding-left: 8px;
|
||||
padding-right: 8px;
|
||||
font-family: var(--font-monospace);
|
||||
background-color: var(--background-primary-alt);
|
||||
color: var(--nav-item-color-selected);
|
||||
}
|
||||
|
||||
.dataview.inline-field-value {
|
||||
padding-left: 8px;
|
||||
padding-right: 8px;
|
||||
font-family: var(--font-monospace);
|
||||
background-color: var(--background-secondary-alt);
|
||||
color: var(--nav-item-color-selected);
|
||||
}
|
||||
|
||||
.dataview.inline-field-standalone-value {
|
||||
padding-left: 8px;
|
||||
padding-right: 8px;
|
||||
font-family: var(--font-monospace);
|
||||
background-color: var(--background-secondary-alt);
|
||||
color: var(--nav-item-color-selected);
|
||||
}
|
||||
|
||||
/***************/
|
||||
/** Task View **/
|
||||
/***************/
|
||||
|
||||
.dataview.task-list-item, .dataview.task-list-basic-item {
|
||||
margin-top: 3px;
|
||||
margin-bottom: 3px;
|
||||
transition: 0.4s;
|
||||
}
|
||||
|
||||
.dataview.task-list-item:hover, .dataview.task-list-basic-item:hover {
|
||||
background-color: var(--text-selection);
|
||||
box-shadow: -40px 0 0 var(--text-selection);
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
/*****************/
|
||||
/** Error Views **/
|
||||
/*****************/
|
||||
|
||||
div.dataview-error-box {
|
||||
width: 100%;
|
||||
min-height: 150px;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
border: 4px dashed var(--background-secondary);
|
||||
}
|
||||
|
||||
.dataview-error-message {
|
||||
color: var(--text-muted);
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
/*************************/
|
||||
/** Additional Metadata **/
|
||||
/*************************/
|
||||
|
||||
.dataview.small-text {
|
||||
font-size: smaller;
|
||||
color: var(--text-muted);
|
||||
margin-left: 3px;
|
||||
}
|
||||
|
||||
.dataview.small-text::before {
|
||||
content: "(";
|
||||
}
|
||||
|
||||
.dataview.small-text::after {
|
||||
content: ")";
|
||||
}
|
||||
1085
.obsidian/plugins/obsidian-excalidraw-plugin/data.json
vendored
Normal file
1085
.obsidian/plugins/obsidian-excalidraw-plugin/data.json
vendored
Normal file
File diff suppressed because it is too large
Load Diff
30
.obsidian/plugins/obsidian-excalidraw-plugin/main.js
vendored
Normal file
30
.obsidian/plugins/obsidian-excalidraw-plugin/main.js
vendored
Normal file
File diff suppressed because one or more lines are too long
12
.obsidian/plugins/obsidian-excalidraw-plugin/manifest.json
vendored
Normal file
12
.obsidian/plugins/obsidian-excalidraw-plugin/manifest.json
vendored
Normal file
@@ -0,0 +1,12 @@
|
||||
{
|
||||
"id": "obsidian-excalidraw-plugin",
|
||||
"name": "Excalidraw",
|
||||
"version": "2.25.2",
|
||||
"minAppVersion": "1.8.7",
|
||||
"description": "Sketch Your Mind. Edit and view Excalidraw drawings. Enter the world of 4D Visual PKM.",
|
||||
"author": "Zsolt Viczian",
|
||||
"authorUrl": "https://excalidraw-obsidian.online",
|
||||
"fundingUrl": "https://ko-fi.com/zsolt",
|
||||
"helpUrl": "https://github.com/zsviczian/obsidian-excalidraw-plugin#readme",
|
||||
"isDesktopOnly": false
|
||||
}
|
||||
1
.obsidian/plugins/obsidian-excalidraw-plugin/styles.css
vendored
Normal file
1
.obsidian/plugins/obsidian-excalidraw-plugin/styles.css
vendored
Normal file
File diff suppressed because one or more lines are too long
10
.obsidian/plugins/obsidian-style-settings/data.json
vendored
Normal file
10
.obsidian/plugins/obsidian-style-settings/data.json
vendored
Normal file
@@ -0,0 +1,10 @@
|
||||
{
|
||||
"retroma-obsidian-theme@@theme-font-selection": "default",
|
||||
"retroma-obsidian-theme@@theme-color-scheme-selection": "cs-monochromatic-colors",
|
||||
"retroma-obsidian-theme@@theme-variant": "Groovy",
|
||||
"retroma-obsidian-theme@@window-border-radius": "6px",
|
||||
"retroma-obsidian-theme@@button-border-radius": "6px",
|
||||
"retroma-obsidian-theme@@lightness-accent": 0.3,
|
||||
"retroma-obsidian-theme@@folder-border-stlye": "default",
|
||||
"retroma-obsidian-theme@@disable-checklist-done-decoration": true
|
||||
}
|
||||
165
.obsidian/plugins/obsidian-style-settings/main.js
vendored
Normal file
165
.obsidian/plugins/obsidian-style-settings/main.js
vendored
Normal file
File diff suppressed because one or more lines are too long
10
.obsidian/plugins/obsidian-style-settings/manifest.json
vendored
Normal file
10
.obsidian/plugins/obsidian-style-settings/manifest.json
vendored
Normal file
@@ -0,0 +1,10 @@
|
||||
{
|
||||
"id": "obsidian-style-settings",
|
||||
"name": "Style Settings",
|
||||
"version": "1.0.9",
|
||||
"minAppVersion": "0.11.5",
|
||||
"description": "Offers controls for adjusting theme, plugin, and snippet CSS variables.",
|
||||
"author": "mgmeyers",
|
||||
"authorUrl": "https://github.com/mgmeyers/obsidian-style-settings",
|
||||
"isDesktopOnly": false
|
||||
}
|
||||
243
.obsidian/plugins/obsidian-style-settings/styles.css
vendored
Normal file
243
.obsidian/plugins/obsidian-style-settings/styles.css
vendored
Normal file
File diff suppressed because one or more lines are too long
50
.obsidian/plugins/quartz-syncer/data.json
vendored
Normal file
50
.obsidian/plugins/quartz-syncer/data.json
vendored
Normal file
@@ -0,0 +1,50 @@
|
||||
{
|
||||
"git": {
|
||||
"remoteUrl": "https://github.com/pxdg-afk/paxad.git",
|
||||
"branch": "v5",
|
||||
"corsProxyUrl": "",
|
||||
"auth": {
|
||||
"type": "basic",
|
||||
"username": "pxdg-afk"
|
||||
},
|
||||
"providerHint": "github"
|
||||
},
|
||||
"vaultPath": "content/",
|
||||
"contentFolder": "content",
|
||||
"publishFrontmatterKey": "publish",
|
||||
"allNotesPublishableByDefault": false,
|
||||
"showCreatedTimestamp": true,
|
||||
"showUpdatedTimestamp": true,
|
||||
"showPublishedTimestamp": false,
|
||||
"usePermalink": false,
|
||||
"includeAllFrontmatter": false,
|
||||
"frontmatterFormat": "yaml",
|
||||
"createdTimestampKey": "created, created_at, date",
|
||||
"updatedTimestampKey": "modified, lastmod, updated, last-modified",
|
||||
"publishedTimestampKey": "published, publishDate, date",
|
||||
"timestampFormat": "MMM dd, yyyy h:mm a",
|
||||
"useCache": true,
|
||||
"syncCache": true,
|
||||
"persistCache": false,
|
||||
"cacheTimestamp": 0,
|
||||
"cache": "{}",
|
||||
"useAutoCardLink": false,
|
||||
"useDataview": true,
|
||||
"useDatacore": false,
|
||||
"useExcalidraw": false,
|
||||
"useFantasyStatblocks": false,
|
||||
"useBases": true,
|
||||
"useCanvas": true,
|
||||
"manageSyncerStyles": true,
|
||||
"lastUsedSettingsTab": "quartz",
|
||||
"noteSettingsIsInitialized": true,
|
||||
"pluginVersion": "1.15.3",
|
||||
"lastUpstreamCommitSha": "",
|
||||
"upgradeCheckStrategy": "version",
|
||||
"diffViewStyle": "auto",
|
||||
"ENABLE_DEVELOPER_TOOLS": false,
|
||||
"logLevel": {
|
||||
"value": 99,
|
||||
"name": "OFF"
|
||||
}
|
||||
}
|
||||
1297
.obsidian/plugins/quartz-syncer/main.js
vendored
Normal file
1297
.obsidian/plugins/quartz-syncer/main.js
vendored
Normal file
File diff suppressed because one or more lines are too long
15
.obsidian/plugins/quartz-syncer/manifest.json
vendored
Normal file
15
.obsidian/plugins/quartz-syncer/manifest.json
vendored
Normal file
@@ -0,0 +1,15 @@
|
||||
{
|
||||
"id": "quartz-syncer",
|
||||
"name": "Quartz Syncer",
|
||||
"version": "1.15.3",
|
||||
"minAppVersion": "1.12.4",
|
||||
"description": "Manage and publish your notes to Quartz, the fast, batteries-included static-site generator.",
|
||||
"author": "Emile Bangma",
|
||||
"authorUrl": "https://github.com/saberzero1",
|
||||
"fundingUrl": {
|
||||
"Buy Me a Coffee": "https://buymeacoffee.com/saberzero1",
|
||||
"GitHub Sponsor": "https://github.com/sponsors/saberzero1",
|
||||
"Ko-Fi": "https://ko-fi.com/saberzero1"
|
||||
},
|
||||
"isDesktopOnly": false
|
||||
}
|
||||
719
.obsidian/plugins/quartz-syncer/styles.css
vendored
Normal file
719
.obsidian/plugins/quartz-syncer/styles.css
vendored
Normal file
@@ -0,0 +1,719 @@
|
||||
/* Quartz Syncer Publication Center */
|
||||
.quartz-syncer-publisher-title-separator {
|
||||
margin-top: 0;
|
||||
margin-bottom: 15px;
|
||||
}
|
||||
|
||||
.quartz-syncer-publisher-footer-separator {
|
||||
margin-top: 15px;
|
||||
margin-bottom: 15px;
|
||||
}
|
||||
|
||||
.quartz-syncer-publisher-footer {
|
||||
display: flex;
|
||||
justify-content: flex-end;
|
||||
position: sticky;
|
||||
bottom: 0;
|
||||
}
|
||||
|
||||
.quartz-syncer-publisher-loading-msg {
|
||||
font-size: var(--font-ui-larger);
|
||||
display: flex;
|
||||
flex-grow: 0; /* Prevnets the loading message from stretching the container */
|
||||
align-items: center;
|
||||
flex-direction: column;
|
||||
}
|
||||
|
||||
.quartz-syncer-progress-bar-text {
|
||||
max-width: 100%;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
button.quartz-syncer-publisher-button {
|
||||
background-color: var(--interactive-accent);
|
||||
color: var(--text-on-accent);
|
||||
cursor: var(--cursor);
|
||||
font-weight: var(--font-bold);
|
||||
}
|
||||
|
||||
.quartz-syncer-publisher-loading-container {
|
||||
width: 100%;
|
||||
height: 5px;
|
||||
margin-top: 10px;
|
||||
}
|
||||
|
||||
.quartz-syncer-publisher-loading-bar {
|
||||
background-color: var(--interactive-accent);
|
||||
height: 100%;
|
||||
transition: all 0.5s ease-in-out;
|
||||
}
|
||||
|
||||
.quartz-syncer-publisher-published {
|
||||
color: var(--text-success, var(--color-green));
|
||||
}
|
||||
|
||||
.quartz-syncer-publisher-deleted {
|
||||
color: var(--text-error, var(--color-red));
|
||||
}
|
||||
|
||||
/* Quartz Syncer Diff View */
|
||||
.quartz-syncer-diff-modal {
|
||||
max-width: var(--modal-max-width, 100%);
|
||||
width: var(--modal-width, 100%);
|
||||
}
|
||||
|
||||
body.is-mobile .quartz-syncer-diff-modal {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
body.is-mobile .quartz-syncer-diff-view-container {
|
||||
overflow-x: auto;
|
||||
}
|
||||
|
||||
pre.quartz-syncer-diff-view {
|
||||
display: block;
|
||||
white-space: pre;
|
||||
overflow-wrap: break-word;
|
||||
width: fit-content;
|
||||
}
|
||||
|
||||
pre.quartz-syncer-diff-view.quartz-syncer-diff-added {
|
||||
background-color: rgb(
|
||||
var(--background-modifier-success-rgb, var(--color-green-rgb)),
|
||||
0.5
|
||||
);
|
||||
color: var(--text-on-accent);
|
||||
}
|
||||
|
||||
pre.quartz-syncer-diff-view.quartz-syncer-diff-removed {
|
||||
background-color: rgb(
|
||||
var(--background-modifier-error-rgb, var(--color-red-rgb)),
|
||||
0.5
|
||||
);
|
||||
color: var(--text-on-accent);
|
||||
}
|
||||
|
||||
.quartz-syncer-diff-line {
|
||||
white-space: pre;
|
||||
overflow-wrap: break-word;
|
||||
}
|
||||
|
||||
.quartz-syncer-diff-line-added {
|
||||
background-color: var(--text-success, var(--color-green));
|
||||
color: var(--text-on-accent);
|
||||
text-decoration: overline;
|
||||
}
|
||||
|
||||
.quartz-syncer-diff-line-removed {
|
||||
background-color: var(--text-error, var(--color-red));
|
||||
color: var(--text-on-accent);
|
||||
text-decoration: line-through;
|
||||
}
|
||||
|
||||
/* Quartz Syncer Tree Selectors */
|
||||
.quartz-syncer-modal-content ul {
|
||||
margin: 0;
|
||||
list-style: none;
|
||||
padding-left: 1.2rem;
|
||||
user-select: none;
|
||||
}
|
||||
|
||||
.quartz-syncer-modal-content li {
|
||||
margin: 0.2rem 0;
|
||||
}
|
||||
|
||||
.quartz-syncer-modal-content .no-arrow {
|
||||
padding-left: calc(var(--icon-size) + 2px);
|
||||
}
|
||||
|
||||
.quartz-syncer-modal-content .arrow {
|
||||
cursor: var(--cursor);
|
||||
display: inline-block;
|
||||
transition: transform 200ms;
|
||||
}
|
||||
|
||||
/* arrowDown svelte variable */
|
||||
.quartz-syncer-modal-content .arrowDown {
|
||||
transform: rotate(90deg);
|
||||
}
|
||||
|
||||
/* isRoot svelte variable */
|
||||
.quartz-syncer-modal-content ul.isRoot {
|
||||
padding-left: 0;
|
||||
}
|
||||
|
||||
.quartz-syncer-modal-content .root-header {
|
||||
font-weight: var(--font-bold);
|
||||
font-size: var(--font-ui-larger);
|
||||
}
|
||||
|
||||
input:indeterminate {
|
||||
background-color: var(--checkbox-color);
|
||||
border-color: var(--checkbox-color);
|
||||
}
|
||||
|
||||
input[type="checkbox"]:indeterminate::after {
|
||||
content: "";
|
||||
top: -1px;
|
||||
left: -1px;
|
||||
position: absolute;
|
||||
width: var(--checkbox-size);
|
||||
height: var(--checkbox-size);
|
||||
display: block;
|
||||
background-color: var(--checkbox-marker-color);
|
||||
mask-position: 52% 52%;
|
||||
mask-size: 65%;
|
||||
mask-repeat: no-repeat;
|
||||
mask-image: url('data:image/svg+xml; utf8,<svg fill="none" width="12px" height="12px" viewBox="0 0 32 32" id="icon" xmlns="http://www.w3.org/2000/svg"><rect fill="%23000000" x="4" y="4" width="24" height="24"/></svg>');
|
||||
}
|
||||
|
||||
.quartz-syncer-icon-diff {
|
||||
cursor: var(--cursor);
|
||||
display: inline-block;
|
||||
margin-left: 4px;
|
||||
}
|
||||
|
||||
/* File type badges */
|
||||
.quartz-syncer-file-badge {
|
||||
font-size: 9px;
|
||||
font-weight: var(--font-bold);
|
||||
padding: 1px 4px;
|
||||
border-radius: var(--radius-s);
|
||||
margin-left: 6px;
|
||||
text-transform: uppercase;
|
||||
vertical-align: middle;
|
||||
}
|
||||
|
||||
.quartz-syncer-badge-base {
|
||||
background-color: rgb(var(--color-purple-rgb, 147, 51, 234), 0.2);
|
||||
color: var(--text-accent, var(--color-purple, #9333ea));
|
||||
border: 1px solid rgb(var(--color-purple-rgb, 147, 51, 234), 0.3);
|
||||
}
|
||||
|
||||
.quartz-syncer-badge-canvas {
|
||||
background-color: rgb(var(--color-cyan-rgb, 6, 182, 212), 0.2);
|
||||
color: var(--text-accent, var(--color-cyan, #06b6d4));
|
||||
border: 1px solid rgb(var(--color-cyan-rgb, 6, 182, 212), 0.3);
|
||||
}
|
||||
|
||||
/* Quartz Syncer Settings */
|
||||
|
||||
.quartz-syncer-settings button:disabled,
|
||||
.quartz-syncer-publish-status-view button:disabled {
|
||||
pointer-events: none;
|
||||
opacity: 0.4;
|
||||
}
|
||||
|
||||
.quartz-syncer-publish-status-view ul {
|
||||
list-style-type: none;
|
||||
position: relative;
|
||||
margin-left: 5px;
|
||||
margin-top: 0;
|
||||
max-height: 250px;
|
||||
overflow: auto;
|
||||
}
|
||||
|
||||
.quartz-syncer-publish-status-view h2 {
|
||||
margin-top: 0;
|
||||
margin-bottom: 5px;
|
||||
}
|
||||
|
||||
.quartz-syncer-publish-status-view .collapsable {
|
||||
cursor: var(--cursor);
|
||||
margin-left: 10px;
|
||||
}
|
||||
|
||||
.quartz-syncer-settings-enabled
|
||||
> .setting-item-info
|
||||
> .setting-item-name::after {
|
||||
content: " (plugin enabled)";
|
||||
color: var(--text-success, var(--color-green));
|
||||
font-weight: var(--font-bold);
|
||||
}
|
||||
|
||||
.quartz-syncer-settings-disabled > .setting-item-info > .setting-item-name {
|
||||
color: var(--text-error, var(--color-red));
|
||||
}
|
||||
|
||||
.quartz-syncer-settings-disabled
|
||||
> .setting-item-info
|
||||
> .setting-item-name::after {
|
||||
content: " (plugin disabled)";
|
||||
color: var(--text-error, var(--color-red));
|
||||
font-weight: var(--font-bold);
|
||||
}
|
||||
|
||||
.quartz-syncer-settings-disabled > .setting-item-control > .checkbox-container {
|
||||
background-color: var(--text-error, var(--color-red));
|
||||
}
|
||||
|
||||
.quartz-syncer-settings .setting-item-heading {
|
||||
margin-top: var(--heading-spacing);
|
||||
}
|
||||
|
||||
.quartz-syncer-settings-description {
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
|
||||
.quartz-syncer-settings .svg-icon {
|
||||
margin-right: 10px;
|
||||
}
|
||||
|
||||
.quartz-syncer-navigation-item-icon > svg.svg-icon {
|
||||
margin-right: 0;
|
||||
}
|
||||
|
||||
.quartz-syncer-svg-icon {
|
||||
margin-right: 4px;
|
||||
}
|
||||
|
||||
/* GitHub connection status */
|
||||
.quartz-syncer-connection-status {
|
||||
font-weight: var(--font-bold);
|
||||
}
|
||||
|
||||
.quartz-syncer-connection-status-failed {
|
||||
color: var(--text-error, var(--color-red));
|
||||
}
|
||||
|
||||
.quartz-syncer-connection-status-success {
|
||||
color: var(--text-success, var(--color-green));
|
||||
}
|
||||
|
||||
.quartz-syncer-connection-status-pending {
|
||||
color: var(--text-warning, var(--color-orange));
|
||||
}
|
||||
|
||||
/* Cog animation */
|
||||
@keyframes quartz-syncer-rotate-animation {
|
||||
0% {
|
||||
transform: rotate(0deg);
|
||||
}
|
||||
|
||||
100% {
|
||||
transform: rotate(360deg);
|
||||
}
|
||||
}
|
||||
|
||||
.quartz-syncer-rotate {
|
||||
animation: quartz-syncer-rotate-animation 4s linear infinite;
|
||||
}
|
||||
|
||||
.quartz-syncer-cog {
|
||||
margin-left: 3px;
|
||||
}
|
||||
|
||||
.quartz-syncer-cog-big {
|
||||
width: 40px;
|
||||
height: 40px;
|
||||
}
|
||||
|
||||
/* Progress bar */
|
||||
.quartz-syncer-progress-bar-container {
|
||||
width: 100%;
|
||||
height: 40px;
|
||||
margin-top: 10px;
|
||||
}
|
||||
|
||||
/* Publication center */
|
||||
|
||||
.quartz-syncer-modal-content:first-child {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
/* Folder select */
|
||||
.quartz-syncer-settings .search-input-container::before {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.quartz-syncer-settings .search-input-container input {
|
||||
padding-inline-start: 0;
|
||||
padding: 4px 8px;
|
||||
}
|
||||
|
||||
.quartz-syncer-settings.quartz-syncer-desktop .search-input-container input {
|
||||
width: unset;
|
||||
}
|
||||
|
||||
/* Settings tabs */
|
||||
.quartz-syncer-navigation-item {
|
||||
cursor: var(--cursor);
|
||||
border: var(--border-width) solid var(--background-modifier-border);
|
||||
border-radius: var(--radius-m) var(--radius-m) var(--radius-s)
|
||||
var(--radius-s);
|
||||
font-weight: var(--font-bold);
|
||||
font-size: var(--font-text-size);
|
||||
display: flex;
|
||||
flex-shrink: 0;
|
||||
flex-direction: row;
|
||||
white-space: nowrap;
|
||||
padding: 4px 6px;
|
||||
align-items: center;
|
||||
gap: 4px;
|
||||
overflow: hidden;
|
||||
background-color: var(--background-secondary-alt);
|
||||
transition:
|
||||
color 0.25s ease-in-out,
|
||||
padding 0.25s ease-in-out,
|
||||
background-color 0.35s cubic-bezier(0.45, 0.25, 0.83, 0.67),
|
||||
max-width 0.35s cubic-bezier(0.57, 0.04, 0.58, 1);
|
||||
height: 32px;
|
||||
}
|
||||
|
||||
@media screen and (width <= 1325px) {
|
||||
.quartz-syncer-navigation-item.quartz-syncer-desktop {
|
||||
max-width: 32px;
|
||||
}
|
||||
}
|
||||
|
||||
@media screen and (width <= 800px) {
|
||||
.quartz-syncer-navigation-item.quartz-syncer-mobile {
|
||||
max-width: 32px;
|
||||
}
|
||||
}
|
||||
|
||||
.quartz-syncer-navigation-item-icon,
|
||||
.quartz-syncer-warning {
|
||||
padding-top: 5px;
|
||||
}
|
||||
|
||||
.quartz-syncer-navigation-item:hover {
|
||||
border-color: var(--interactive-accent-hover);
|
||||
border-bottom: 0;
|
||||
}
|
||||
|
||||
.quartz-syncer-navigation-item.quartz-syncer-navigation-item-active {
|
||||
background-color: var(--interactive-accent);
|
||||
color: var(--text-on-accent);
|
||||
padding: 4px 9px;
|
||||
max-width: 100%;
|
||||
border: var(--border-width) solid var(--background-modifier-border);
|
||||
border-radius: var(--radius-m) var(--radius-m) var(--radius-s)
|
||||
var(--radius-s);
|
||||
border-bottom: 0;
|
||||
transition:
|
||||
color 0.25s ease-in-out,
|
||||
padding 0.25s ease-in-out,
|
||||
background-color 0.35s cubic-bezier(0.45, 0.25, 0.83, 0.67),
|
||||
max-width 0.45s cubic-bezier(0.57, 0.04, 0.58, 1) 0.2s;
|
||||
}
|
||||
|
||||
.quartz-syncer-settings {
|
||||
transition: transform 400ms 0s;
|
||||
}
|
||||
|
||||
.quartz-syncer-setting-title {
|
||||
display: flex;
|
||||
align-items: baseline;
|
||||
justify-content: space-between;
|
||||
gap: 30px;
|
||||
}
|
||||
|
||||
.quartz-syncer-setting-title.quartz-syncer-mobile {
|
||||
justify-content: space-around;
|
||||
}
|
||||
|
||||
.quartz-syncer-setting-title h1 {
|
||||
font-weight: 900;
|
||||
margin-top: 6px;
|
||||
margin-bottom: 12px;
|
||||
}
|
||||
|
||||
.quartz-syncer-setting-header {
|
||||
margin-bottom: 24px;
|
||||
overflow: auto hidden;
|
||||
}
|
||||
|
||||
.quartz-syncer-setting-header .quartz-syncer-setting-tab-group {
|
||||
display: flex;
|
||||
align-items: flex-end;
|
||||
overflow-x: auto;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.quartz-syncer-setting-tab-group {
|
||||
margin-top: 6px;
|
||||
padding-left: 2px;
|
||||
padding-right: 2px;
|
||||
border-bottom: var(--border-width) solid var(--background-modifier-border);
|
||||
}
|
||||
|
||||
.quartz-syncer-setting-header .quartz-syncer-tab-settings {
|
||||
padding: 6px 12px;
|
||||
font-weight: 600;
|
||||
cursor: var(--cursor);
|
||||
white-space: nowrap;
|
||||
border-left: var(--border-width) solid var(--background-modifier-border);
|
||||
border-right: var(--border-width) solid var(--background-modifier-border);
|
||||
}
|
||||
|
||||
.quartz-syncer-setting-header .quartz-syncer-tab-settings:first-child {
|
||||
margin-left: 6px;
|
||||
}
|
||||
|
||||
.quartz-syncer-setting-header
|
||||
.quartz-syncer-tab-settings.quartz-syncer-tab-settings-active {
|
||||
border-bottom: var(--border-width) solid var(--background-primary);
|
||||
transform: translateY(2px);
|
||||
border-radius: var(--radius-s);
|
||||
border-left: var(--border-width) solid var(--background-modifier-border);
|
||||
border-top: var(--border-width) solid var(--background-modifier-border);
|
||||
border-right: var(--border-width) solid var(--background-modifier-border);
|
||||
}
|
||||
|
||||
.quartz-syncer-setting-content
|
||||
.quartz-syncer-tab-settings.quartz-syncer-tab-settings-active {
|
||||
display: block;
|
||||
}
|
||||
|
||||
.quartz-syncer-setting-content
|
||||
.quartz-syncer-tab-settings:not(.quartz-syncer-tab-settings-active) {
|
||||
display: none;
|
||||
}
|
||||
|
||||
body.is-phone
|
||||
.quartz-syncer-navigation-item:not(.quartz-syncer-navigation-item-active)
|
||||
> span:nth-child(2),
|
||||
body.is-tablet
|
||||
.quartz-syncer-navigation-item:not(.quartz-syncer-navigation-item-active)
|
||||
> span:nth-child(2),
|
||||
body.is-mobile
|
||||
.quartz-syncer-navigation-item:not(.quartz-syncer-navigation-item-active)
|
||||
> span:nth-child(2) {
|
||||
border: 0;
|
||||
height: 1px;
|
||||
margin: -1px;
|
||||
overflow: hidden;
|
||||
padding: 0;
|
||||
position: absolute;
|
||||
width: 1px;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
/* Token/Secret Storage UI */
|
||||
.quartz-syncer-token-container {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 8px;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.quartz-syncer-token-status {
|
||||
font-size: var(--font-ui-smaller);
|
||||
padding: 4px 8px;
|
||||
border-radius: var(--radius-s);
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
gap: 4px;
|
||||
}
|
||||
|
||||
.quartz-syncer-token-status::before {
|
||||
content: "";
|
||||
width: 8px;
|
||||
height: 8px;
|
||||
border-radius: 50%;
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
.quartz-syncer-token-status-set {
|
||||
background-color: rgb(var(--color-green-rgb), 0.15);
|
||||
color: var(--text-success, var(--color-green));
|
||||
}
|
||||
|
||||
.quartz-syncer-token-status-set::before {
|
||||
background-color: var(--text-success, var(--color-green));
|
||||
}
|
||||
|
||||
.quartz-syncer-token-status-unset {
|
||||
background-color: rgb(var(--color-orange-rgb), 0.15);
|
||||
color: var(--text-warning, var(--color-orange));
|
||||
}
|
||||
|
||||
.quartz-syncer-token-status-unset::before {
|
||||
background-color: var(--text-warning, var(--color-orange));
|
||||
}
|
||||
|
||||
.quartz-syncer-token-input-container {
|
||||
display: flex;
|
||||
gap: 4px;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.quartz-syncer-token-input {
|
||||
flex: 1;
|
||||
padding: 6px 10px;
|
||||
border: 1px solid var(--background-modifier-border);
|
||||
border-radius: var(--radius-s);
|
||||
background-color: var(--background-primary);
|
||||
color: var(--text-normal);
|
||||
font-family: var(--font-monospace);
|
||||
}
|
||||
|
||||
.quartz-syncer-token-input:focus {
|
||||
border-color: var(--interactive-accent);
|
||||
outline: none;
|
||||
}
|
||||
|
||||
.quartz-syncer-token-toggle {
|
||||
padding: 6px;
|
||||
border: none;
|
||||
background: transparent;
|
||||
cursor: var(--cursor);
|
||||
color: var(--text-muted);
|
||||
border-radius: var(--radius-s);
|
||||
}
|
||||
|
||||
.quartz-syncer-token-toggle:hover {
|
||||
color: var(--text-normal);
|
||||
background-color: var(--background-modifier-hover);
|
||||
}
|
||||
|
||||
.quartz-syncer-token-buttons {
|
||||
display: flex;
|
||||
gap: 8px;
|
||||
}
|
||||
|
||||
.quartz-syncer-token-buttons button {
|
||||
padding: 6px 12px;
|
||||
border-radius: var(--radius-s);
|
||||
cursor: var(--cursor);
|
||||
font-size: var(--font-ui-small);
|
||||
}
|
||||
|
||||
/* Plugin Browser Modal */
|
||||
.quartz-syncer-plugin-browser {
|
||||
width: 700px;
|
||||
max-width: 90vw;
|
||||
}
|
||||
|
||||
.quartz-syncer-plugin-browser .modal-content {
|
||||
max-height: 70vh;
|
||||
overflow-y: auto;
|
||||
padding: 0 16px 16px;
|
||||
}
|
||||
|
||||
.quartz-syncer-plugin-browser-loading {
|
||||
text-align: center;
|
||||
color: var(--text-muted);
|
||||
padding: 24px 0;
|
||||
}
|
||||
|
||||
.quartz-syncer-plugin-browser-controls {
|
||||
display: flex;
|
||||
gap: 8px;
|
||||
margin-bottom: 12px;
|
||||
position: sticky;
|
||||
top: 0;
|
||||
background: var(--modal-background);
|
||||
padding: 8px 0;
|
||||
z-index: 1;
|
||||
}
|
||||
|
||||
.quartz-syncer-plugin-browser-search {
|
||||
flex: 1;
|
||||
padding: 6px 10px;
|
||||
border: 1px solid var(--background-modifier-border);
|
||||
border-radius: var(--radius-s);
|
||||
background: var(--background-primary);
|
||||
color: var(--text-normal);
|
||||
font-size: var(--font-ui-small);
|
||||
}
|
||||
|
||||
.quartz-syncer-plugin-browser-tag-filter {
|
||||
padding: 6px 10px;
|
||||
border: 1px solid var(--background-modifier-border);
|
||||
border-radius: var(--radius-s);
|
||||
background: var(--background-primary);
|
||||
color: var(--text-normal);
|
||||
font-size: var(--font-ui-small);
|
||||
}
|
||||
|
||||
.quartz-syncer-plugin-browser-list {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 8px;
|
||||
}
|
||||
|
||||
.quartz-syncer-plugin-browser-empty {
|
||||
text-align: center;
|
||||
color: var(--text-muted);
|
||||
padding: 16px 0;
|
||||
}
|
||||
|
||||
.quartz-syncer-plugin-browser-card {
|
||||
border: 1px solid var(--background-modifier-border);
|
||||
border-radius: var(--radius-m);
|
||||
padding: 12px;
|
||||
}
|
||||
|
||||
.quartz-syncer-plugin-browser-card-header {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 8px;
|
||||
margin-bottom: 4px;
|
||||
}
|
||||
|
||||
.quartz-syncer-plugin-browser-card-name {
|
||||
font-weight: var(--font-bold);
|
||||
font-size: var(--font-ui-medium);
|
||||
}
|
||||
|
||||
.quartz-syncer-plugin-browser-badge-official {
|
||||
font-size: var(--font-ui-smaller);
|
||||
color: var(--text-on-accent);
|
||||
background: var(--interactive-accent);
|
||||
padding: 1px 6px;
|
||||
border-radius: var(--radius-s);
|
||||
}
|
||||
|
||||
.quartz-syncer-plugin-browser-card-desc {
|
||||
color: var(--text-muted);
|
||||
font-size: var(--font-ui-small);
|
||||
margin: 0 0 8px;
|
||||
}
|
||||
|
||||
.quartz-syncer-plugin-browser-card-footer {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
gap: 8px;
|
||||
}
|
||||
|
||||
.quartz-syncer-plugin-browser-card-tags {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
gap: 4px;
|
||||
}
|
||||
|
||||
.quartz-syncer-plugin-browser-tag {
|
||||
font-size: var(--font-ui-smaller);
|
||||
color: var(--text-muted);
|
||||
background: var(--background-secondary);
|
||||
padding: 1px 6px;
|
||||
border-radius: var(--radius-s);
|
||||
}
|
||||
|
||||
.quartz-syncer-plugin-browser-installed {
|
||||
font-size: var(--font-ui-small);
|
||||
color: var(--text-success);
|
||||
font-weight: var(--font-bold);
|
||||
}
|
||||
|
||||
.quartz-syncer-plugin-browser-install-btn {
|
||||
padding: 4px 12px;
|
||||
border-radius: var(--radius-s);
|
||||
background: var(--interactive-accent);
|
||||
color: var(--text-on-accent);
|
||||
cursor: var(--cursor);
|
||||
font-size: var(--font-ui-small);
|
||||
font-weight: var(--font-bold);
|
||||
border: none;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.quartz-syncer-plugin-browser-install-btn:disabled {
|
||||
opacity: 0.6;
|
||||
cursor: not-allowed;
|
||||
}
|
||||
7
.obsidian/themes/Dracula Official/manifest.json
vendored
Normal file
7
.obsidian/themes/Dracula Official/manifest.json
vendored
Normal file
@@ -0,0 +1,7 @@
|
||||
{
|
||||
"name": "Dracula Official",
|
||||
"version": "1.1.5",
|
||||
"minAppVersion": "0.16.0",
|
||||
"author": "Dracula",
|
||||
"authorUrl": "https://gitlab.com/chrismettal"
|
||||
}
|
||||
864
.obsidian/themes/Dracula Official/theme.css
vendored
Normal file
864
.obsidian/themes/Dracula Official/theme.css
vendored
Normal file
@@ -0,0 +1,864 @@
|
||||
.theme-dark,
|
||||
.theme-light{
|
||||
|
||||
/* Obsidian "Dark" import so light mode looks the same*/
|
||||
--color-scheme: dark;
|
||||
--highlight-mix-blend-mode: lighten;
|
||||
--mono-rgb-0: 0, 0, 0;
|
||||
--mono-rgb-100: 255, 255, 255;
|
||||
--color-red-rgb: 251, 70, 76;
|
||||
--color-red: #fb464c;
|
||||
--color-orange-rgb: 233, 151, 63;
|
||||
--color-orange: #e9973f;
|
||||
--color-yellow-rgb: 224, 222, 113;
|
||||
--color-yellow: #e0de71;
|
||||
--color-green-rgb: 68, 207, 110;
|
||||
--color-green: #44cf6e;
|
||||
--color-cyan-rgb: 83, 223, 221;
|
||||
--color-cyan: #53dfdd;
|
||||
--color-blue-rgb: 2, 122, 255;
|
||||
--color-blue: #027aff;
|
||||
--color-purple-rgb: 168, 130, 255;
|
||||
--color-purple: #a882ff;
|
||||
--color-pink-rgb: 250, 153, 205;
|
||||
--color-pink: #fa99cd;
|
||||
--color-base-00: #1e1e1e;
|
||||
--color-base-05: #212121;
|
||||
--color-base-10: #242424;
|
||||
--color-base-20: #262626;
|
||||
--color-base-25: #2a2a2a;
|
||||
--color-base-30: #363636;
|
||||
--color-base-35: #3f3f3f;
|
||||
--color-base-40: #555555;
|
||||
--color-base-50: #666666;
|
||||
--color-base-60: #999999;
|
||||
--color-base-70: #bababa;
|
||||
--color-base-100: #dadada;
|
||||
--color-accent-hsl: var(--accent-h), var(--accent-s), var(--accent-l);
|
||||
--color-accent: hsl(var(--accent-h), var(--accent-s), var(--accent-l));
|
||||
--color-accent-1: hsl(var(--accent-h), var(--accent-s), calc(var(--accent-l) - 3.8%));
|
||||
--color-accent-2: hsl(var(--accent-h), var(--accent-s), calc(var(--accent-l) + 3.8%));
|
||||
--background-modifier-form-field: var(--color-base-25);
|
||||
--interactive-normal: var(--color-base-30);
|
||||
--interactive-hover: var(--color-base-35);
|
||||
--background-modifier-box-shadow: rgba(0, 0, 0, 0.3);
|
||||
--background-modifier-cover: rgba(10, 10, 10, 0.4);
|
||||
--text-selection: hsla(var(--interactive-accent-hsl), 0.25);
|
||||
--input-shadow: inset 0 0.5px 0.5px 0.5px rgba(255, 255, 255, 0.09), 0 2px 4px 0 rgba(0,0,0,.15), 0 1px 1.5px 0 rgba(0,0,0,.1), 0 1px 2px 0 rgba(0,0,0,.2), 0 0 0 0 transparent;
|
||||
--input-shadow-hover: inset 0 0.5px 1px 0.5px rgba(255, 255, 255, 0.16), 0 2px 3px 0 rgba(0,0,0,.3), 0 1px 1.5px 0 rgba(0,0,0,.2), 0 1px 2px 0 rgba(0,0,0,.4), 0 0 0 0 transparent;
|
||||
--shadow-s: 0px 1px 2px rgba(0, 0, 0, 0.121), 0px 3.4px 6.7px rgba(0, 0, 0, 0.179), 0px 15px 30px rgba(0, 0, 0, 0.3);
|
||||
--shadow-l: 0px 1.8px 7.3px rgba(0, 0, 0, 0.071), 0px 6.3px 24.7px rgba(0, 0, 0, 0.112), 0px 30px 90px rgba(0, 0, 0, 0.2);
|
||||
--pdf-shadow: 0 0 0 1px var(--background-modifier-border);
|
||||
--pdf-thumbnail-shadow: 0 0 0 1px var(--background-modifier-border);
|
||||
|
||||
/* Actual Dracula colors*/
|
||||
--background-primary: #282a36;
|
||||
--background-primary-alt: #44475a;
|
||||
--background-secondary: #20212B;
|
||||
--background-secondary-alt: #282a36;
|
||||
--text-normal: #f8f8f2;
|
||||
--text-on-accent: #282a36;
|
||||
--text-title-h1: #bd93f9;
|
||||
--text-title-h2: #ffb86c;
|
||||
--text-title-h3: #50fa7b;
|
||||
--text-title-h4: #ff5555;
|
||||
--text-title-h5: #f1fa8c;
|
||||
--text-title-h6: #bd93f4;
|
||||
--canvas-color-1: 255, 85, 85;
|
||||
--canvas-color-2: 255, 184, 108;
|
||||
--canvas-color-3: 241, 250, 140;
|
||||
--canvas-color-4: 82, 250, 124;
|
||||
--canvas-color-5: 139, 233, 253;
|
||||
--canvas-color-6: 189, 147, 244;
|
||||
--text-link: var(--text-accent);
|
||||
--markup-code: #ffb86c;
|
||||
--text-tag: #50fa7b;
|
||||
--text-a: #ff79c6;
|
||||
--text-a-hover: #ff79c0;
|
||||
--text-mark: #f1fa8c;
|
||||
--interactive-accent: #50fa7b;
|
||||
--blockquote-border: #b294bb;
|
||||
--interactive-accent-rgb: #f1fa8c;
|
||||
--accent-h: 135;
|
||||
--accent-s: 94%;
|
||||
--accent-l: 65%;
|
||||
--titlebar-background-focused: var(--titlebar-background);
|
||||
|
||||
/* Dracula Code view*/
|
||||
--code-normal: #F8F8F2;
|
||||
--code-background: #20212B;
|
||||
--dracula-foreground: #F8F8F2;
|
||||
--dracula-Comment: #6272A4;
|
||||
--dracula-keyword: #FF79C6;
|
||||
--dracula-definition: #50FA7B;
|
||||
--dracula-variable: #F8F8F2; /*"variable" tags are used everywhere in code, but Dracula usually only uses orange color only for declaration inputs, thus white is less annoying to look at*/
|
||||
--dracula-number: #BD93F9;
|
||||
--dracula-function: #8BE9FD;
|
||||
--dracula-string: #F1FA8C;
|
||||
}
|
||||
|
||||
/* LINKS & BRACKETS */
|
||||
|
||||
/* link */
|
||||
|
||||
/* url's */
|
||||
|
||||
/* editor */
|
||||
|
||||
.cm-url {
|
||||
color: var(--text-link) !important;
|
||||
}
|
||||
|
||||
/* preview */
|
||||
|
||||
.external-link {
|
||||
color: var(--text-link) !important;
|
||||
}
|
||||
|
||||
|
||||
/* make external links italics to differentiate */
|
||||
|
||||
a:not(.internal-link) {
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
/* horizontal line in preview */
|
||||
|
||||
hr {
|
||||
background-color: var(--text-normal);
|
||||
border-color: var(--text-normal);
|
||||
}
|
||||
|
||||
.markdown-preview-view hr {
|
||||
background-color: var(--text-normal);
|
||||
border-color: var(--text-normal);
|
||||
}
|
||||
|
||||
.markdown-rendered hr {
|
||||
background-color: var(--text-normal);
|
||||
border-color: var(--text-normal);
|
||||
}
|
||||
|
||||
.markdown-embed {
|
||||
padding-left: 8px !important;
|
||||
padding-right: 4px !important;
|
||||
margin-left: 8px !important;
|
||||
margin-right: 4px !important;
|
||||
}
|
||||
|
||||
/* internal embedded link rendering in preview */
|
||||
|
||||
.markdown-embed-title {
|
||||
color: var(--text-link);
|
||||
}
|
||||
|
||||
|
||||
/* NAKED EMBEDS*/
|
||||
|
||||
/* But keeping Border and Scroll! */
|
||||
|
||||
.markdown-embed-title {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.markdown-preview-view .markdown-embed-content > :first-child {
|
||||
margin-top: 0;
|
||||
}
|
||||
|
||||
.markdown-preview-view .markdown-embed-content > :last-child {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
|
||||
|
||||
.markdown-embed-link {
|
||||
color: var(--text-a) !important;
|
||||
right: 2px !important;
|
||||
}
|
||||
|
||||
.markdown-embed-link:hover {
|
||||
color: var(--text-link) !important;
|
||||
}
|
||||
|
||||
/* NO FILE OPEN PAGE*/
|
||||
|
||||
.empty-state-title {
|
||||
color: var(--text-title-h1) !important;
|
||||
}
|
||||
|
||||
.empty-state-action {
|
||||
color: var(--text-muted) !important;
|
||||
}
|
||||
|
||||
.empty-state-action:hover {
|
||||
color: var(--text-normal) !important;
|
||||
}
|
||||
|
||||
/* GRAPH VIEW */
|
||||
|
||||
#graph-view-canvas .links {
|
||||
stroke: var(--interactive-accent-rgb) !important;
|
||||
}
|
||||
|
||||
/* CODEBLOCKS */
|
||||
|
||||
|
||||
/* code blocks in preview */
|
||||
|
||||
pre code {
|
||||
padding: 5px !important;
|
||||
color: var(--dracula-foreground);
|
||||
line-height: normal;
|
||||
display: block;
|
||||
background-color: var(--background-primary);
|
||||
}
|
||||
|
||||
.markdown-preview-view pre {
|
||||
padding: 0px !important;
|
||||
}
|
||||
|
||||
/* in-line code for editor and preview and code block for editor*/
|
||||
|
||||
.cm-inline-code {
|
||||
background-color: var(--background-primary-alt) !important;
|
||||
color: var(--dracula-foreground) !important;
|
||||
bottom: 0px !important;
|
||||
}
|
||||
|
||||
/* Code Appearance */
|
||||
|
||||
/* Editing view */
|
||||
|
||||
.CodeMirror-code span.cm-inline-code {
|
||||
color: var(--markup-code) !important;
|
||||
}
|
||||
|
||||
.cm-hmd-codeblock {
|
||||
color: var(--dracula-foreground);
|
||||
}
|
||||
|
||||
.cm-hmd-codeblock.cm-keyword {
|
||||
color: var(--dracula-keyword);
|
||||
}
|
||||
|
||||
.cm-def.cm-hmd-codeblock {
|
||||
color: var(--dracula-definition);
|
||||
}
|
||||
|
||||
.cm-hmd-codeblock.cm-variable {
|
||||
color: var(--dracula-variable);
|
||||
}
|
||||
|
||||
.cm-hmd-codeblock.cm-operator{
|
||||
color: var(--dracula-keyword);
|
||||
}
|
||||
|
||||
.cm-hmd-codeblock.cm-number {
|
||||
color: var(--dracula-number);
|
||||
}
|
||||
|
||||
.cm-builtin.cm-hmd-codeblock {
|
||||
color: var(--dracula-function);
|
||||
}
|
||||
|
||||
.cm-hmd-codeblock.cm-string {
|
||||
color: var(--dracula-string);
|
||||
}
|
||||
|
||||
.cm-hmd-codeblock.cm-comment {
|
||||
color: var(--dracula-Comment);
|
||||
}
|
||||
|
||||
/* Preview */
|
||||
|
||||
code {
|
||||
background-color: var(--background-primary);
|
||||
color: var(--dracula-foreground);
|
||||
}
|
||||
|
||||
.token.function {
|
||||
color: var(--dracula-definition);
|
||||
}
|
||||
|
||||
.token.operator {
|
||||
color: var(--dracula-keyword);
|
||||
}
|
||||
|
||||
.token.number {
|
||||
color: var(--dracula-number);
|
||||
}
|
||||
|
||||
.token.builtin {
|
||||
color: var(--dracula-function);
|
||||
}
|
||||
|
||||
.token.boolean {
|
||||
color: var(--dracula-number);
|
||||
}
|
||||
|
||||
.token.string {
|
||||
color: var(--dracula-string);
|
||||
}
|
||||
|
||||
/* Editor CodeBlock TEXT Appearance - */
|
||||
|
||||
.cm-s-obsidian pre.HyperMD-codeblock {
|
||||
color: var(--markup-code) !important;
|
||||
}
|
||||
|
||||
/* borders */
|
||||
|
||||
.cm-s-obsidian span.cm-inline-code {
|
||||
border: 1px solid #525660;
|
||||
border-radius: 4px;
|
||||
}
|
||||
|
||||
.cm-s-obsidian span.cm-formatting-code.cm-inline-code {
|
||||
border-right-width: 0;
|
||||
border-top-right-radius: 0;
|
||||
border-bottom-right-radius: 0;
|
||||
}
|
||||
|
||||
.cm-s-obsidian span.cm-formatting-code.cm-inline-code + span.cm-inline-code {
|
||||
border-right: none;
|
||||
border-left: none;
|
||||
border-radius: 0;
|
||||
}
|
||||
|
||||
.cm-s-obsidian
|
||||
span.cm-formatting-code.cm-inline-code
|
||||
+ span.cm-inline-code
|
||||
+ span.cm-formatting-code.cm-inline-code {
|
||||
border-left-width: 0;
|
||||
border-top-left-radius: 0;
|
||||
border-bottom-left-radius: 0;
|
||||
border-right-width: 1px;
|
||||
border-top-right-radius: 4px;
|
||||
border-bottom-right-radius: 4px;
|
||||
}
|
||||
|
||||
/* BLOCKQUOTES */
|
||||
|
||||
/* editor */
|
||||
|
||||
.cm-quote {
|
||||
color: var(--interactive-accent) !important;
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
/* preview */
|
||||
|
||||
blockquote {
|
||||
color: var(--interactive-accent) !important;
|
||||
font-style: italic;
|
||||
border-color: var(--blockquote-border) !important;
|
||||
}
|
||||
|
||||
/* IMAGES */
|
||||
|
||||
/* embedded images */
|
||||
|
||||
img {
|
||||
display: block;
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
}
|
||||
|
||||
/* TABLES */
|
||||
|
||||
th {
|
||||
border: 1px solid var(--background-primary-alt) !important;
|
||||
}
|
||||
|
||||
td {
|
||||
border: 1px solid var(--background-primary-alt) !important
|
||||
}
|
||||
|
||||
thead {
|
||||
border-bottom: 4px solid var(--background-primary-alt);
|
||||
}
|
||||
|
||||
.table {
|
||||
background-color: var(--background-secondary-alt);
|
||||
border: 1px solid var(--background-primary-alt);
|
||||
padding: 4px;
|
||||
line-height: normal;
|
||||
display: block;
|
||||
border-top-left-radius: 4px;
|
||||
border-top-right-radius: 4px;
|
||||
border-bottom-right-radius: 4px;
|
||||
border-bottom-left-radius: 4px;
|
||||
}
|
||||
|
||||
/* SIDEBAR & DOCK ETC. */
|
||||
|
||||
/* view action buttons */
|
||||
|
||||
.view-action {
|
||||
color: var(--text-muted) !important;
|
||||
text-decoration: none !important;
|
||||
}
|
||||
|
||||
.view-action:hover,
|
||||
.view-action.is-active {
|
||||
color: var(--text-normal) !important;
|
||||
}
|
||||
|
||||
.status-bar {
|
||||
background-color: var(--background-secondary-alt);
|
||||
}
|
||||
|
||||
.side-dock-ribbon-action {
|
||||
color: var(--text-muted) !important;
|
||||
}
|
||||
|
||||
.side-dock-ribbon-action:hover {
|
||||
color: var(--text-normal) !important;
|
||||
}
|
||||
|
||||
.workspace-tab-header {
|
||||
color: var(--text-muted) !important;
|
||||
text-decoration: none !important;
|
||||
}
|
||||
|
||||
.workspace-tab-header:hover {
|
||||
color: var(--text-normal) !important;
|
||||
}
|
||||
|
||||
button.mod-cta {
|
||||
background-color: var(--interactive-accent);
|
||||
color: var(--text-on-accent);
|
||||
}
|
||||
|
||||
.horizontal-tab-nav-item.is-active, .vertical-tab-nav-item.is-active {
|
||||
background-color: var(--interactive-accent);
|
||||
color: var(--text-normal);
|
||||
}
|
||||
|
||||
/* searchbar */
|
||||
|
||||
.side-dock-panels-container {
|
||||
background-color: var(--background-secondary-alt) !important;
|
||||
color: var(background-secondary-alt);
|
||||
}
|
||||
|
||||
/* icons at top of panes*/
|
||||
|
||||
.file-view-actions a {
|
||||
color: var(--text-muted) !important;
|
||||
}
|
||||
|
||||
.file-view-actions a:hover {
|
||||
color: var(--text-muted) !important;
|
||||
}
|
||||
|
||||
/* html tags in editor */
|
||||
|
||||
.cm-tag {
|
||||
color: var(--text-tag) !important;
|
||||
}
|
||||
|
||||
/* .side-dock-ribbon-tab,
|
||||
.side-dock-ribbon-action {} */
|
||||
|
||||
.side-dock-ribbon-tab.is-active {
|
||||
color: var(--interactive-accent) !important;
|
||||
}
|
||||
|
||||
.side-dock-ribbon-tab.is-active .side-dock-ribbon-tab-inner:hover {
|
||||
color: #6272a4 !important;
|
||||
background-color: var(--background-secondary);
|
||||
}
|
||||
|
||||
|
||||
.is-translucent .nav-file-title:not(.is-active) {
|
||||
background-color: transparent;
|
||||
}
|
||||
|
||||
.is-translucent .nav-folder-title {
|
||||
background-color: transparent;
|
||||
}
|
||||
|
||||
.nav-file-title:hover {
|
||||
color: var(--text-normal) !important;
|
||||
}
|
||||
|
||||
.nav-folder-title:hover {
|
||||
color: var(--text-normal) !important;
|
||||
}
|
||||
|
||||
.nav-action-button.is-active {
|
||||
background-color: var(--background-secondary-alt);
|
||||
}
|
||||
|
||||
.search-result-file-title {
|
||||
color: var(--text-a) !important;
|
||||
background-color: var(--background-secondary);
|
||||
}
|
||||
|
||||
.is-translucent .search-result-file-title {
|
||||
background-color: transparent;
|
||||
}
|
||||
|
||||
.search-result-file-matched-text {
|
||||
color: var(--text-link) !important;
|
||||
background-color: var(--background-secondary);
|
||||
}
|
||||
|
||||
/* .nav-file-tag {
|
||||
color: #59a2c5;
|
||||
} /* for the PNG text, but can't specifically target "PNG", just all of those filetype tags. */
|
||||
|
||||
.nav-file.is-active .nav-file-tag {
|
||||
color: var(--text-normal);
|
||||
}
|
||||
|
||||
/* hover actions on side dock navigation */
|
||||
|
||||
.side-dock-ribbon-tab:hover,
|
||||
.side-dock-ribbon-tab-inner:hover,
|
||||
.side-dock-ribbon-action:hover,
|
||||
.side-dock-ribbon-action.is-active:hover,
|
||||
.nav-action-button:hover,
|
||||
.side-dock-collapse-btn:hover {
|
||||
color: var(--text-normal);
|
||||
}
|
||||
|
||||
/* Hover color over tree item flairs */
|
||||
.tree-item-self:hover .tree-item-flair {
|
||||
background-color: var(--background-secondary);
|
||||
}
|
||||
|
||||
/* clean up side bar empty state (e.g. unlinked mentions) */
|
||||
|
||||
.search-empty-state {
|
||||
width: auto;
|
||||
padding-left: 15px;
|
||||
padding-right: 15px;
|
||||
line-height: normal;
|
||||
}
|
||||
|
||||
/* clean up side bar empty state (e.g. unlinked mentions) */
|
||||
|
||||
.search-empty-state {
|
||||
width: auto;
|
||||
padding-left: 10px;
|
||||
padding-right: 5px;
|
||||
line-height: normal;
|
||||
}
|
||||
|
||||
/* NORMAL TEXT OUTSIDE OF HEADINGS AND CODE */
|
||||
|
||||
/* preview */
|
||||
|
||||
.markdown-preview-view {
|
||||
color: var(--text-normal);
|
||||
padding-left: 8% !important;
|
||||
padding-right: 4% !important;
|
||||
}
|
||||
|
||||
.mod-single-child .markdown-preview-view {
|
||||
color: var(--text-normal);
|
||||
padding-left: 10% !important;
|
||||
padding-right: 10% !important;
|
||||
}
|
||||
|
||||
/* editor */
|
||||
|
||||
.cm-s-obsidian {
|
||||
color: var(--text-normal);
|
||||
padding-left: 8% !important;
|
||||
padding-right: 4% !important;
|
||||
}
|
||||
|
||||
.mod-single-child .cm-s-obsidian {
|
||||
color: var(--text-normal);
|
||||
padding-left: 8% !important;
|
||||
padding-right: 4% !important;
|
||||
}
|
||||
|
||||
/* HEADINGS */
|
||||
|
||||
/* preview */
|
||||
|
||||
.markdown-preview-view h1 {
|
||||
color: var(--text-title-h1);
|
||||
}
|
||||
|
||||
.markdown-preview-view h2 {
|
||||
color: var(--text-title-h2);
|
||||
}
|
||||
|
||||
.markdown-preview-view h3 {
|
||||
color: var(--text-title-h3);
|
||||
}
|
||||
|
||||
.markdown-preview-view h4 {
|
||||
color: var(--text-title-h4);
|
||||
}
|
||||
|
||||
.markdown-preview-view h5 {
|
||||
color: var(--text-title-h5);
|
||||
}
|
||||
|
||||
.markdown-preview-view h6 {
|
||||
color: var(--text-title-h6);
|
||||
}
|
||||
|
||||
/* editor */
|
||||
|
||||
.cm-header-1 {
|
||||
color: var(--text-title-h1);
|
||||
}
|
||||
|
||||
.cm-header-2 {
|
||||
color: var(--text-title-h2);
|
||||
}
|
||||
|
||||
.cm-header-3 {
|
||||
color: var(--text-title-h3);
|
||||
}
|
||||
|
||||
.cm-header-4 {
|
||||
color: var(--text-title-h4);
|
||||
}
|
||||
|
||||
.cm-header-5 {
|
||||
color: var(--text-title-h5);
|
||||
}
|
||||
|
||||
.cm-header-6 {
|
||||
color: var(--text-title-h6);
|
||||
}
|
||||
|
||||
/* TAGS */
|
||||
|
||||
/* preview */
|
||||
|
||||
a.tag {
|
||||
color: var(--text-tag);
|
||||
}
|
||||
|
||||
/* editor */
|
||||
|
||||
.cm-hashtag {
|
||||
color: var(--text-tag) !important;
|
||||
}
|
||||
|
||||
/* BOLD */
|
||||
|
||||
/* preview */
|
||||
|
||||
strong {
|
||||
color: var(--markup-code);
|
||||
}
|
||||
|
||||
/* editor */
|
||||
|
||||
.cm-strong {
|
||||
color: var(--markup-code);
|
||||
}
|
||||
|
||||
/* ITALICS */
|
||||
|
||||
/* preview */
|
||||
|
||||
em {
|
||||
color: var(--interactive-accent);
|
||||
}
|
||||
|
||||
/* editor */
|
||||
|
||||
.cm-em {
|
||||
color: var(--interactive-accent);
|
||||
}
|
||||
|
||||
/* HIGHLIGHT */
|
||||
|
||||
/* preview */
|
||||
|
||||
mark {
|
||||
color: var(--background-primary);
|
||||
background-color: var(--text-mark);
|
||||
padding-top: 1px;
|
||||
padding-bottom: 1px;
|
||||
}
|
||||
|
||||
/* editor */
|
||||
|
||||
.cm-highlight {
|
||||
color: var(--background-primary) !important;
|
||||
background-color: var(--text-mark) !important;
|
||||
padding-top: 1px;
|
||||
padding-bottom: 1px;
|
||||
}
|
||||
|
||||
/* COLLAPSED RIBBONS */
|
||||
|
||||
.workspace-ribbon.is-collapsed {
|
||||
background-color: var(--background-secondary-alt) !important;
|
||||
}
|
||||
|
||||
.workspace-ribbon.mod-right.is-collapsed {
|
||||
background-color: var(--background-secondary-alt) !important;
|
||||
}
|
||||
|
||||
.workspace-ribbon.mod-left.is-collapsed {
|
||||
background-color: var(--background-secondary-alt) !important;
|
||||
}
|
||||
|
||||
/* POPUP NOTIFICATION*/
|
||||
|
||||
.notice {
|
||||
color: var(--text-normal) !important;
|
||||
background-color: var(--blockquote-border) !important;
|
||||
}
|
||||
|
||||
/* UL, OL, BULLETS, CHECKBOXES & FOLDING ARROWS */
|
||||
|
||||
/* task lists */
|
||||
|
||||
.markdown-preview-view .task-list-item-checkbox {
|
||||
-webkit-appearance: none;
|
||||
top: 1.3px !important;
|
||||
right: 5px !important;
|
||||
box-sizing: border-box;
|
||||
border: 1px solid var(--accent-2);
|
||||
position: relative;
|
||||
width: 1.25em;
|
||||
height: 1.25em;
|
||||
margin: 0;
|
||||
box-shadow: 0 0 0.1em var(--interactive-accent);
|
||||
}
|
||||
|
||||
.markdown-preview-view .task-list-item-checkbox:checked::before {
|
||||
content: "✓";
|
||||
position: absolute;
|
||||
color: var(--interactive-accent);
|
||||
line-height: 1.25em;
|
||||
width: 1.2em;
|
||||
text-align: center;
|
||||
text-shadow: 0 0 0.5em var(--accent-2);
|
||||
}
|
||||
|
||||
.markdown-preview-view .task-list-item-checkbox {
|
||||
top: 0px;
|
||||
}
|
||||
|
||||
.checkbox-container {
|
||||
background-color: var(--background-primary-alt);
|
||||
border-radius: 14px;
|
||||
display: inline-block;
|
||||
position: relative;
|
||||
top: 4px;
|
||||
user-select: none;
|
||||
width: 42px;
|
||||
box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.15);
|
||||
transition: background 0.15s ease-in-out, box-shadow 0.15s ease-in-out,
|
||||
border 0.15s ease-in-out, opacity 0.15s ease-in-out,
|
||||
-webkit-box-shadow 0.15s ease-in-out;
|
||||
}
|
||||
|
||||
.checkbox-container.is-enabled {
|
||||
background-color: var(--interactive-accent);
|
||||
}
|
||||
|
||||
|
||||
.markdown-preview-view mark {
|
||||
color: var(--text-link);
|
||||
background-color: var(--background-primary-alt);
|
||||
}
|
||||
|
||||
.cm-formatting
|
||||
/* This is the color of header hashtags. Don't change. */
|
||||
|
||||
.cm-formatting-list-ul .cm-list-1
|
||||
/* This is the color of text in lists. Don't change. */
|
||||
|
||||
|
||||
/* Subtler code folding arrows */
|
||||
|
||||
.CodeMirror-foldgutter-folded:after,
|
||||
.CodeMirror-foldgutter-open:after {
|
||||
opacity: 0.5;
|
||||
color: var(--text-link);
|
||||
}
|
||||
|
||||
.CodeMirror-foldgutter-folded:hover:after,
|
||||
.CodeMirror-foldgutter-open:hover:after {
|
||||
opacity: 1;
|
||||
color: var(--text-link);
|
||||
}
|
||||
|
||||
.CodeMirror-foldgutter-folded:after {
|
||||
content: "\25BA";
|
||||
color: var(--text-link);
|
||||
}
|
||||
|
||||
.CodeMirror-foldgutter-open:after {
|
||||
content: "\25BC";
|
||||
}
|
||||
|
||||
/* Bullet Point Relationship Lines */
|
||||
|
||||
.cm-hmd-list-indent .cm-tab,
|
||||
ul ul {
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.cm-hmd-list-indent .cm-tab::before,
|
||||
ul ul::before {
|
||||
content: "";
|
||||
border-left: 1px solid;
|
||||
color: #92CDD6;
|
||||
position: absolute;
|
||||
}
|
||||
|
||||
.cm-hmd-list-indent .cm-tab::before {
|
||||
left: 0;
|
||||
top: -5px;
|
||||
bottom: -4px;
|
||||
}
|
||||
|
||||
ul ul::before {
|
||||
left: 0px;
|
||||
top: 0;
|
||||
bottom: 0;
|
||||
}
|
||||
|
||||
/* ul, li & ol colors in editor */
|
||||
|
||||
.cm-s-obsidian span.cm-formatting-list {
|
||||
color: #8abeb7;
|
||||
}
|
||||
|
||||
ol {
|
||||
display: block;
|
||||
list-style-type: decimal;
|
||||
margin-block-start: 1em;
|
||||
margin-block-end: 1em;
|
||||
margin-inline-start: 0px;
|
||||
margin-inline-end: 0px;
|
||||
padding-inline-start: 40px;
|
||||
}
|
||||
|
||||
.suggestion-highlight {
|
||||
color: var(--interactive-accent)!important;
|
||||
}
|
||||
|
||||
.is-selected {
|
||||
background-color: var(--blockquote-border)!important;
|
||||
}
|
||||
|
||||
@media print {
|
||||
@page {
|
||||
margin: 0mm 0mm 0mm 0mm;
|
||||
}
|
||||
.print .markdown-preview-view {
|
||||
-webkit-print-color-adjust: exact;
|
||||
background-color: #282a36;
|
||||
color: #f8f8f2;
|
||||
}
|
||||
.markdown-rendered code {
|
||||
color: #BABABA !important;
|
||||
}
|
||||
}
|
||||
7
.obsidian/themes/Retroma/manifest.json
vendored
Normal file
7
.obsidian/themes/Retroma/manifest.json
vendored
Normal file
@@ -0,0 +1,7 @@
|
||||
{
|
||||
"name": "Retroma",
|
||||
"version": "2.7.0",
|
||||
"minAppVersion": "1.0.0",
|
||||
"author": "emarpiee",
|
||||
"authorUrl": "https://github.com/emarpiee"
|
||||
}
|
||||
3602
.obsidian/themes/Retroma/theme.css
vendored
Normal file
3602
.obsidian/themes/Retroma/theme.css
vendored
Normal file
File diff suppressed because one or more lines are too long
8
.obsidian/types.json
vendored
Normal file
8
.obsidian/types.json
vendored
Normal file
@@ -0,0 +1,8 @@
|
||||
{
|
||||
"types": {
|
||||
"aliases": "aliases",
|
||||
"cssclasses": "multitext",
|
||||
"tags": "tags",
|
||||
"date": "date"
|
||||
}
|
||||
}
|
||||
214
.obsidian/workspace-mobile.json
vendored
Normal file
214
.obsidian/workspace-mobile.json
vendored
Normal file
@@ -0,0 +1,214 @@
|
||||
{
|
||||
"main": {
|
||||
"id": "f63c4a78c407c6ee",
|
||||
"type": "split",
|
||||
"children": [
|
||||
{
|
||||
"id": "4ec1346d537820b7",
|
||||
"type": "tabs",
|
||||
"children": [
|
||||
{
|
||||
"id": "714922bf5742788e",
|
||||
"type": "leaf",
|
||||
"state": {
|
||||
"type": "empty",
|
||||
"state": {},
|
||||
"icon": "lucide-file",
|
||||
"title": "New tab"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"direction": "vertical"
|
||||
},
|
||||
"left": {
|
||||
"id": "eabd2e6fc1013b38",
|
||||
"type": "mobile-drawer",
|
||||
"children": [
|
||||
{
|
||||
"id": "6657684f52cddfc9",
|
||||
"type": "leaf",
|
||||
"state": {
|
||||
"type": "file-explorer",
|
||||
"state": {
|
||||
"sortOrder": "alphabetical",
|
||||
"autoReveal": false
|
||||
},
|
||||
"icon": "lucide-folder-closed",
|
||||
"title": "Files"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "8f48f9854381bcb6",
|
||||
"type": "leaf",
|
||||
"state": {
|
||||
"type": "search",
|
||||
"state": {
|
||||
"query": "",
|
||||
"matchingCase": false,
|
||||
"explainSearch": false,
|
||||
"collapseAll": false,
|
||||
"extraContext": false,
|
||||
"sortOrder": "alphabetical"
|
||||
},
|
||||
"icon": "lucide-search",
|
||||
"title": "Search"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "6ae7238078845977",
|
||||
"type": "leaf",
|
||||
"state": {
|
||||
"type": "tag",
|
||||
"state": {
|
||||
"sortOrder": "frequency",
|
||||
"useHierarchy": true,
|
||||
"showSearch": false,
|
||||
"searchQuery": ""
|
||||
},
|
||||
"icon": "lucide-tags",
|
||||
"title": "Tags"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "3905e00a5003328d",
|
||||
"type": "leaf",
|
||||
"state": {
|
||||
"type": "all-properties",
|
||||
"state": {
|
||||
"sortOrder": "frequency",
|
||||
"showSearch": false,
|
||||
"searchQuery": ""
|
||||
},
|
||||
"icon": "lucide-archive",
|
||||
"title": "All properties"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "831343064e30b326",
|
||||
"type": "leaf",
|
||||
"state": {
|
||||
"type": "bookmarks",
|
||||
"state": {},
|
||||
"icon": "lucide-bookmark",
|
||||
"title": "Bookmarks"
|
||||
}
|
||||
}
|
||||
],
|
||||
"currentTab": 0
|
||||
},
|
||||
"right": {
|
||||
"id": "72e1b1e5491aed3a",
|
||||
"type": "mobile-drawer",
|
||||
"children": [
|
||||
{
|
||||
"id": "28d4fab0735b06c8",
|
||||
"type": "leaf",
|
||||
"state": {
|
||||
"type": "backlink",
|
||||
"state": {
|
||||
"collapseAll": false,
|
||||
"extraContext": false,
|
||||
"sortOrder": "alphabetical",
|
||||
"showSearch": false,
|
||||
"searchQuery": "",
|
||||
"backlinkCollapsed": false,
|
||||
"unlinkedCollapsed": true
|
||||
},
|
||||
"icon": "links-coming-in",
|
||||
"title": "Backlinks"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "d4b340ec1b27b852",
|
||||
"type": "leaf",
|
||||
"state": {
|
||||
"type": "outgoing-link",
|
||||
"state": {
|
||||
"linksCollapsed": false,
|
||||
"unlinkedCollapsed": true
|
||||
},
|
||||
"icon": "links-going-out",
|
||||
"title": "Outgoing links"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "d261f2caac317d8b",
|
||||
"type": "leaf",
|
||||
"state": {
|
||||
"type": "outline",
|
||||
"state": {
|
||||
"followCursor": false,
|
||||
"showSearch": false,
|
||||
"searchQuery": ""
|
||||
},
|
||||
"icon": "lucide-list",
|
||||
"title": "Outline"
|
||||
}
|
||||
}
|
||||
],
|
||||
"currentTab": 0
|
||||
},
|
||||
"left-ribbon": {
|
||||
"hiddenItems": {
|
||||
"switcher:Open quick switcher": false,
|
||||
"graph:Open graph view": false,
|
||||
"canvas:Create new canvas": false,
|
||||
"daily-notes:Open today's daily note": false,
|
||||
"templates:Insert template": false,
|
||||
"command-palette:Open command palette": false,
|
||||
"bases:Create new base": false
|
||||
}
|
||||
},
|
||||
"active": "714922bf5742788e",
|
||||
"lastOpenFiles": [
|
||||
"paxad/quartz/i18n/locales/de-DE.ts",
|
||||
"paxad/quartz/i18n/locales/id-ID.ts",
|
||||
"paxad/quartz/i18n/locales/ar-SA.ts",
|
||||
"paxad/quartz/i18n/locales/it-IT.ts",
|
||||
"paxad/quartz/i18n/locales/pl-PL.ts",
|
||||
"paxad/quartz/i18n/locales/uk-UA.ts",
|
||||
"paxad/quartz/i18n/locales/ru-RU.ts",
|
||||
"paxad/quartz/i18n/locales/ja-JP.ts",
|
||||
"paxad/quartz/i18n/locales/he-IL.ts",
|
||||
"paxad/quartz/i18n/locales/fi-FI.ts",
|
||||
"paxad/quartz/i18n/locales/kk-KZ.ts",
|
||||
"paxad/quartz/static/og-image.png",
|
||||
"paxad/quartz/static/icon.png",
|
||||
"paxad/docs/getting-started/installation.md",
|
||||
"paxad/docs/getting-started/upgrading.md",
|
||||
"paxad/docs/getting-started/migrating.md",
|
||||
"paxad/docs/getting-started/authoring-content.md",
|
||||
"paxad/docs/getting-started/index.md",
|
||||
"paxad/docs/getting-started/whats-new.md",
|
||||
"paxad/docs/tags/component.md",
|
||||
"paxad/docs/tags/plugin.md",
|
||||
"paxad/docs/cli/upgrade.md",
|
||||
"paxad/docs/cli/sync.md",
|
||||
"paxad/docs/cli/build.md",
|
||||
"paxad/docs/cli/create.md",
|
||||
"paxad/docs/cli/index.md",
|
||||
"paxad/docs/cli/restore.md",
|
||||
"paxad/docs/cli/tui.md",
|
||||
"paxad/docs/cli/plugin.md",
|
||||
"paxad/docs/features/Citations.md",
|
||||
"paxad/docs/features/RSS Feed.md",
|
||||
"paxad/docs/features/recent notes.md",
|
||||
"paxad/docs/features/wikilinks.md",
|
||||
"paxad/docs/features/OxHugo compatibility.md",
|
||||
"paxad/docs/features/Docker Support.md",
|
||||
"paxad/docs/features/Mermaid diagrams.md",
|
||||
"paxad/docs/features/table of contents.md",
|
||||
"paxad/docs/features/Canvas.md",
|
||||
"paxad/docs/images/giscus-discussion.png",
|
||||
"paxad/docs/images/github-quick-setup.png",
|
||||
"paxad/docs/images/dns records.png",
|
||||
"paxad/docs/images/giscus-results.png",
|
||||
"paxad/docs/images/social-image-preview-dark.png",
|
||||
"paxad/docs/images/giscus-repo.png",
|
||||
"paxad/docs/images/quartz-layout-mobile.png",
|
||||
"paxad/docs/images/quartz-layout-desktop.png",
|
||||
"paxad/docs/Canvas.canvas"
|
||||
]
|
||||
}
|
||||
1
.space/waypoints.json
Normal file
1
.space/waypoints.json
Normal file
@@ -0,0 +1 @@
|
||||
[{"name":"Home","sticker":"ui//home","paths":["/"]},{"sticker":"lucide//folder-git-2","name":"Site","paths":["content"]}]
|
||||
19
README.md
19
README.md
@@ -1,17 +1,4 @@
|
||||
# Quartz v5
|
||||
# pax.ad
|
||||
a digital garden that might be full of weeds
|
||||
|
||||
> “[One] who works with the door open gets all kinds of interruptions, but [they] also occasionally gets clues as to what the world is and what might be important.” — Richard Hamming
|
||||
|
||||
Quartz is a set of tools that helps you publish your [digital garden](https://jzhao.xyz/posts/networked-thought) and notes as a website for free.
|
||||
|
||||
🔗 Read the documentation and get started: https://quartz.jzhao.xyz/
|
||||
|
||||
[Join the Discord Community](https://discord.gg/cRFFHYye7t)
|
||||
|
||||
## Sponsors
|
||||
|
||||
<p align="center">
|
||||
<a href="https://github.com/sponsors/jackyzha0">
|
||||
<img src="https://cdn.jsdelivr.net/gh/jackyzha0/jackyzha0/sponsorkit/sponsors.svg" />
|
||||
</a>
|
||||
</p>
|
||||
running on [Quartz v5](https://quartz.jzhao.xyz/)
|
||||
|
||||
BIN
content/assets/dragon con map.png
Normal file
BIN
content/assets/dragon con map.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 2.0 MiB |
1
content/fnn/.space/def.json
Normal file
1
content/fnn/.space/def.json
Normal file
@@ -0,0 +1 @@
|
||||
{"_joins":[],"_contexts":[],"_links":[],"_sort":{"field":"rank","asc":false,"group":false,"recursive":false},"_template":"","_templateName":"","defaultSticker":"","defaultColor":"","readMode":false,"fullWidth":false}
|
||||
76
content/fnn/BARQ Public Statement.md
Normal file
76
content/fnn/BARQ Public Statement.md
Normal file
@@ -0,0 +1,76 @@
|
||||
---
|
||||
date: 2026-07-15
|
||||
publish: true
|
||||
tags:
|
||||
- furry
|
||||
- barq
|
||||
- babyfurs
|
||||
- furry-drama-cycle
|
||||
- anthrocon-2026
|
||||
---
|
||||
|
||||
Full text of the public statement, as posted to Twitter July 15, 2026, at 10:14 AM EDT:
|
||||
|
||||
> Apologies for the long wait.
|
||||
> We want to give some clarification on what happened last week with the posting and removal of our statements regarding Flame and the babyfur community.
|
||||
>
|
||||
> At Anthrocon, the BARQ!Cast held a panel where Flame was invited as a guest. After that panel we saw Flame making hateful comments toward the babyfur community on X. Because this goes against everything BARQ! stands for, we decided to quickly put out a statement distancing ourselves from Flame.
|
||||
>
|
||||
> This was agreed upon by our social media team and directors. Looking back at the first statement, we felt it was too vague. We decided to post a second one, which was also agreed upon by all involved.
|
||||
>
|
||||
> A day later we found out the second statement was only posted on Bluesky. We tried to fix that apparent mistake by posting it on X too. When our social media team noticed the new posts, they told us they hadn't posted it to X on purpose and in a panic, they deleted both statements from X and Bluesky.
|
||||
>
|
||||
> What followed was a lot of confusion, both within the team and our community. We decided to pause posting anything on this matter and discuss / reflect on what happened first. We found the biggest factor in this was that we never talked about who is responsible for what, and that some decisions were made without consulting the others who are involved.
|
||||
>
|
||||
> We want to make it clear we still stand behind both statements, and that babyfurs are part of the community and welcome on BARQ! just as every other furry. We agreed on clearer responsibilities and clear lines of communication to make sure this will not happen again.
|
||||
> Discrimination has no place on BARQ!
|
||||
>
|
||||
> - BARQ! Directors
|
||||
|
||||
Some things of note:
|
||||
|
||||
> Looking back at the first statement, we felt it was too vague. ==We decided to post a second one, which was also agreed upon by all involved.==
|
||||
|
||||
Was the *decision to make a post* agreed upon or the *content of the post itself*?
|
||||
|
||||
> A day later ==we found out the second statement was only posted on Bluesky. We tried to fix that apparent mistake by posting it on X too.==
|
||||
|
||||
So you okayed the post with the social media team, gave them the go-ahead on posting, but they independently chose to only post to Bluesky...
|
||||
|
||||
> \[... the social media team] told us ==they hadn't posted it to X on purpose== ...
|
||||
|
||||
...why? Were they attempting to tailor different messages for each platform? Why not just post the same message to both? It's a public statement disavowing a person with negative views toward a sizable segment of the community...wouldn't you want to post this literally everywhere?
|
||||
|
||||
> \[...] we ==never talked about who is responsible for what== ...
|
||||
|
||||
If I were working for your company on the social media team, I would think my team would be the ones responsible for...social media. Including making and releasing public statements that affect the company's public image. Otherwise, if there were a Public Relations person or department or a designated public company spokesperson, I'd defer to them.
|
||||
|
||||
> \[...] some decisions were made ==without consulting the others who are involved==.
|
||||
|
||||
Social media team's director went rogue and decided to only post the message to Bluesky because they didn't want to moderate the potential wave of negativity that posting the same exact message on X might cause?
|
||||
|
||||
p.s. Who is Flame anyway?
|
||||
|
||||

|
||||
|
||||
https://x.com/flamethefawn
|
||||
- 20
|
||||
|
||||
> this is the last time i'm going to speak on this issue, anything i have said is not a reflection on @barqOfficial as a company, it is strictly my own opinion.
|
||||
>
|
||||
> i stated in my initial apology that i regretted my wording and calling for violence, which is true i do regret that. i also would like to say that yes, i have made generalizations in response to generalizations and personal attacks made against me which was also not right. the world isn't black or white and i believe that i was wrong for letting that worldview bleed into my comments
|
||||
>
|
||||
> fuck pedophilia, wherever it lays. i see a glaring issue within the furry community with how we turn a blind eye to these predators that prey on our own community members. they are terrible people and it deeply upsets me.
|
||||
>
|
||||
> not every person who has an abdl kink or who is a babyfur is a bad person and i don't believe we should be violent towards people who are into things that you may not be into. i want to make my position clear on that.
|
||||
>
|
||||
> i am not sorry for having my own opinions, if you dissent them then that is totally fine as well. babyfurs and furries as a whole need to do better rooting out pedophilia, \[zoophilia], and other aspects of our community that are morally abhorrent
|
||||
> [source](https://x.com/flamethefawn/status/2077426761751756988)
|
||||
|
||||
> i think people don't realize how influential this new young wave of furries my age are, and how awesome the changes we are going to bring will be :3
|
||||
|
||||
not sure what this even means, but not sure i want to be here for it either.
|
||||
|
||||
i can see why there's a trend recently for new conventions to be 21+.
|
||||
|
||||
as long as you're not a puritanical dickhead, I think we'll get along fine. that "morally abhorrent" language veers mighty close to "degenerate" if you ask me. *but that's just my opinion.*
|
||||
76
content/fnn/TailTag App Discussion.md
Normal file
76
content/fnn/TailTag App Discussion.md
Normal file
@@ -0,0 +1,76 @@
|
||||
---
|
||||
publish: true
|
||||
aliases:
|
||||
- tailtag
|
||||
created: 2026-07-12T17:55:57.560-04:00
|
||||
modified: 2026-07-12T18:24:12.896-04:00
|
||||
tags:
|
||||
- furry
|
||||
- AI
|
||||
- vibe-coding
|
||||
description: "tl;dr: TailTag (fursuit \"catching\" app to promote socialization with suiters) had backend access open to normal users, some of whom were able to view other users' email addresses and private posts. The app is offline until patches can be applied."
|
||||
---
|
||||
|
||||
> [!warning] Update - 7/13/2026
|
||||
> Finn posted a [final response](https://x.com/FinnThePanther/status/2076675644755505535) and a [postmortem report](https://docs.google.com/document/d/17dEvlj6qy71u9dNB_yyk9bH6ywOdj5PpET3bqc8X-RI/edit?pli=1&tab=t.0#heading=h.8gfmgngubb2w) detailing what happened and the steps that will be taken to delete the app data. Finn says he will not move forward with rebuilding the application unless members of the community help out.
|
||||
|
||||
not a journalist, just a dog who went to school for it (kind of) and collated the work done by several others; links included with information as well as in footnotes below the article
|
||||
|
||||
[**TailTag**](https://www.playtailtag.com), a recently released furry social app, was breached on July 11, 2026, leading app creator Finn the Panther to shut down the app temporarily while security issues are being addressed.
|
||||
|
||||
> [!tip]+ sources, yo
|
||||
> super props & excellent thread discussing this incident:
|
||||
> [quat's (@highlysuspect.agency) thread about TailTag on bsky](https://bsky.app/profile/highlysuspect.agency/post/3mqhuc6bwds2r)
|
||||
|
||||
users were first made aware of the breach when they received a strange push notification from the app titled "IMPORTANT ANNOUNCEMENT" with the message body consisting primarily of "meows" and other cat noises.
|
||||
|
||||

|
||||
|
||||
Finn's response:
|
||||
|
||||

|
||||
|
||||

|
||||
|
||||
twitter user **@twnlink** did a lot of digging on this and discovered backend access was not entirely restricted to admins:
|
||||
|
||||

|
||||
|
||||
twitter user [**@Benaclejames**](https://x.com/Benaclejames) posted the following technical write-up of the vulnerabilities discovered on their Notion page: https://app.notion.com/p/TailTag-Vulnerabilities-39bd16d9d17180fa9279ec92bbe19549
|
||||
|
||||
[**@FloppyMinty**](https://x.com/FloppyMinty) was able to confirm the app's backend information was still publicly accessible as of June 12th.[^2] Finn did later state in a separate post that the applied fix to the notifications issue should have fixed the access control issues as well.[^6] while no user passwords were compromised, just about every other bit of personally identifiable information that users entered into the application is publicly accessible, including email addresses and photos.[^1] as of writing, other than the publicly disclosed accesses of backend information already mentioned, there is no evidence any others have accessed or posted any data from the application.
|
||||
|
||||
on July 12, 2026, Finn posted the following response:
|
||||
|
||||
> On July 11, 2026, an unauthorized individual created several TailTag accounts and exploited an overly permissive profile-access rule to retrieve their full user profile records via the publicly accessible TailTag domain. This profile-access rule, originally designed so you could see the profile of whose fursuit you caught, included general profile information, along with account and app preferences, and technical identifiers used to deliver push notifications. In addition, a separate control requiring server authorization before notifications could be delivered that was assumed to be on by default had not been enabled. Together, these issues allowed the individual to send an unauthorized notification that appeared to come from TailTag itself. Once the incident was identified, I disabled all notification delivery, enabled the additional authorization requirement, rotated the relevant credential, blocked the accounts involved, revoked their sessions, and restricted profile access. Based on my investigation, I found no evidence that passwords or login credentials were accessed or that the individual gained access to other users' accounts to remove or otherwise manipulate user data. Notifications remain disabled while I complete longer-term security improvements.
|
||||
>
|
||||
> As benign as the notification content was, this was still a serious design oversight that will not be taken lightly, and I personally apologize for both the unintended app behavior, but more importantly, the loss of trust in the security of TailTag. I got caught up in the excitement of getting this project out for all of you to play that I overlooked some important details regarding account access control that resulted in this compromise. I suggest changing your password if you haven't already and be wary of any emails that look suspicious or ask for you to log in with TailTag credentials. If you choose to delete your account due to this, your data will be removed with no questions asked.
|
||||
>
|
||||
> I am still confident in the value that TailTag brings to the community and do not have any immediate plans to shut it down. However, I will be moving much more carefully in its development, including pausing any feature work until I am confident in account security. If you have any questions, please reach out and I will answer them for you.
|
||||
>
|
||||
> Many valuable lessons were learned this weekend. I will be doing my best to not only prevent something like this from happening again, but to gain your trust back for this project. [^3]
|
||||
>
|
||||
> \[in later tweets in reply to this original image post]:
|
||||
> If you would like to assist with future security, access control, or any other parts of the app, please reach out. I am happy to discuss how you can help.[^4]
|
||||
|
||||
in the interim, TailTag has been **taken offline** until further notice.[^5]
|
||||
|
||||
most of the comments in response to Finn's own statement were questions about the amount of AI assistance used in the creation of the app. Finn did say "LLMs were involved in the implementation of designs \[he] wrote in English."[^7]
|
||||
|
||||
TailTag's website is still online as of writing. Updates to both the site and application are likely, though no timetable has been announced.
|
||||
|
||||
change your passwords, folks, you'll be alright.
|
||||
|
||||
[^1]: @BenacleJames: _TailTag Vulnerabilities_ - https://app.notion.com/p/TailTag-Vulnerabilities-39bd16d9d17180fa9279ec92bbe19549
|
||||
|
||||
[^2]: @FloppyMinty: "PSA: If you used TailTag, your email among other metadata has been compromised." https://x.com/FloppyMinty/status/2076320147233493306
|
||||
|
||||
[^3]: @FinnThePanther, X: "About yesterday's incident." https://x.com/FinnThePanther/status/2076351285415276672
|
||||
|
||||
[^4]: https://x.com/FinnThePanther/status/2076351646662345102
|
||||
|
||||
[^5]: https://x.com/FinnThePanther/status/2076401056414900312
|
||||
|
||||
[^6]: Finn said "the fix should have addressed this as well" a [couple of hours later](https://x.com/FinnThePanther/status/2076357929083801789)
|
||||
|
||||
[^7]: https://x.com/FinnThePanther/status/2076378180840239389
|
||||
5
content/fnn/fnn.md
Normal file
5
content/fnn/fnn.md
Normal file
@@ -0,0 +1,5 @@
|
||||
---
|
||||
publish: true
|
||||
---
|
||||
|
||||
idk. someone's gotta write this shit down, eh?
|
||||
34
content/hopefully helpful/Dragon Con map.md
Normal file
34
content/hopefully helpful/Dragon Con map.md
Normal file
@@ -0,0 +1,34 @@
|
||||
---
|
||||
title: Atlanta Hotel Area / Dragon Con Map
|
||||
tags:
|
||||
- map
|
||||
- Atlanta
|
||||
- dragon-con
|
||||
publish: true
|
||||
description: compiled by the generous users of r/dragoncon (particularly u/ghost_nugget2); hopefully a good reference for those in need of directions
|
||||
---
|
||||
![[dragon con map.png]]
|
||||
|
||||
# Good to know:
|
||||
- MARTA runs from the airport to the hotel district, coming up through Peachtree Center Mall.
|
||||
- the CVS in Peachtree Center Mall will likely be open later during Dragon Con due to the increased foot traffic
|
||||
- "Coke Fish Rights Park" is:
|
||||
- World of Coca-Cola (like $15/person, worth it if you haven't been)
|
||||
- Georgia Aquarium (can be pricey but there are also events held there during con)
|
||||
- Civil Rights Museum (also like $10~15/person, also worth it if you haven't been)
|
||||
- Centennial Olympic Park (just behind all this, dedicated to that time the Olympics were here)
|
||||
- Joystick Gamebar in the Peachtree Center Mall will be open late during Dragon Con
|
||||
- Metro Diner will usually also be open very late, if not 24-hours
|
||||
- the skybridge extending from Peachtree Center running parallel to John Portman has a set of stairs about midway through that you can walk down to get inside the street-level parking lot between Peachtree Center and the Courtland St Parking Deck.
|
||||
- the Registration line runs down the hill along Andrew Young then turns the corner and walks up Piedmont before entering the hotel at the back. there are usually food trucks in the Courtland Grand's parking lot with some decent options.
|
||||
- the carpool / valet area just in front of the Courtland is where people like to park their project cars (like an Ecto One or Batmobile) - especially if they have one that's going to be in the parade
|
||||
- if you make friends with a Hyatt Atrium Tower guest with a balcony overlooking Peachtree Street, you've pretty much got the best seats in the house for the parade (but it is also broadcast on DCTV and CW during)
|
||||
- DCTV is your friend if you're staying in one of the host hotels and can't/won't make it to a panel in time.
|
||||
- there is an *outdoor entrance to Trader Vic's* on the John Portman side. useful if you don't feel like waiting on an elevator or can't grab one of the 4 that actually go all the way down there.
|
||||
- **beware the liquor stores**. they know we're coming, and they jack up their prices during a convention because they know most of us are kind of a captive audience. but there's a Publix down the street a ways if you don't care about the harder stuff. just have your ID and don't try to get it before noon on Sunday.
|
||||
|
||||
The **secret food court** is in the Marquis tower you *don't* end up walking through on your way to the regular food court. You access it by taking the skybridge path from the Marriott toward the Hyatt, but turn right and walk through the Marquis building and across another skybridge to get there. these places don't tend to stay open too long and might not be open on the weekends, but if it's busy and you need lunch, it's an option.
|
||||
|
||||
> [!caution] Remember
|
||||
> You can no longer use the AmericasMart skybridges during the convention, at least since I last checked.
|
||||
|
||||
@@ -1,9 +1,23 @@
|
||||
---
|
||||
publish: true
|
||||
title: Welcome to Quartz
|
||||
created: 2026-07-07T21:16:18.689-04:00
|
||||
modified: 2026-07-07T22:02:38.825-04:00
|
||||
title: hi
|
||||
description: a digital garden, but it might be full of weeds
|
||||
created: 2026-07-07T22:59:17.843-04:00
|
||||
modified: 2026-07-07T23:02:06.833-04:00
|
||||
sticker: ""
|
||||
---
|
||||
> [!tip]- oh look
|
||||
> the [[Dragon Con map]]
|
||||
|
||||
> [!quote]
|
||||
> In the beginning, the Universe was created. This has made a lot of people very angry and been widely regarded as a bad move.
|
||||
> _-Douglas Adams, Hitchhiker's Guide to the Galaxy_
|
||||
|
||||
there exists, somewhere on this planet of ours, a group of individuals i'd call my tribe. where they dwell, i can't say.
|
||||
|
||||
all i know is that i'd like to meet them some day. i hope i do. i know i've already met some.
|
||||
|
||||
[[tv]] shows i'm keeping up with
|
||||
|
||||
or maybe you'd like to talk about [[Dune]]
|
||||
|
||||
This is a blank Quartz installation.
|
||||
See the [documentation](https://quartz.jzhao.xyz) for how to get started.
|
||||
|
||||
15
content/movies/Dune/Butlerian Jihad.md
Normal file
15
content/movies/Dune/Butlerian Jihad.md
Normal file
@@ -0,0 +1,15 @@
|
||||
---
|
||||
publish:
|
||||
tags:
|
||||
- dune/lore
|
||||
---
|
||||
|
||||
> Thou shalt not make a machine in the likeness of a human mind.
|
||||
> *Orange Catholic Bible*
|
||||
|
||||
Ask Gurney Halleck about what the OCB says about thinking machines. Remember, he's supposed to be a "warrior-poet" type character - equally skilled in combat and literature - with one of his favorite tomes being the *Orange Catholic Bible*, naturally. Of all the characters we interact with, he's the one who can quote entire passages verbatim.
|
||||
|
||||
It was the Butlerians who led the charge in the ancient war against the thinking machines. Remember: Paul's story begins in the year **10,191 A.G.** - that is, nearly 10,200 years *after* the formation of the Spacing Guild. Humanity's ability to exist in the vastness of space *relies* on the Spacing Guild's existence.
|
||||
|
||||
> The eye that looks ahead to the safe course is closed forever.
|
||||
|
||||
45
content/movies/Dune/Dune.md
Normal file
45
content/movies/Dune/Dune.md
Normal file
@@ -0,0 +1,45 @@
|
||||
---
|
||||
description: bless the Maker and His water, bless His comings and goings; may His passing cleanse the world
|
||||
publish: true
|
||||
tags:
|
||||
- movies
|
||||
- criticism
|
||||
- analysis
|
||||
- thoughts
|
||||
---
|
||||
*sietchposting with the Fedaykin*
|
||||
|
||||
i've got a lot of thoughts on *Dune*, but i'm not entirely sure how many of them are exactly...*original*.
|
||||
|
||||
anyway, here we go
|
||||
|
||||
# the three Dunes
|
||||
there are three *Dune*s.
|
||||
|
||||
## Dune (1984) - David Lynch
|
||||
the first, *Dune* (1984). David Lynch directed and gave quite a bit of art direction. Kyle MacLaughlan, Patrick Stewart, hell, even Jürgen Prochnow. poor Virginia was robbed, but at least she gives a great intro in the theatrical cut. "stylistic" is a light way of putting it. extremely chopped up for the theatrical cut because the studio complained it was too long. watch the **Spicediver** edit with the deleted stuff cut back in if you can - especially if you can find the one with the storyboard television intro.
|
||||
|
||||
biggest departure from the text in the Lynch version is the "weirding modules" they created to depict the "weirding way" the Bene Gesserit practice in the book. i'd always thought it was more about the whole *prana bindu* training regimen that allows them to have minute control of every individual muscle in their bodies. sort of like Neo's thing. ("I can do kung fu...") but this seems to have been a combination of the "secret Atreides battle tactics" and the weirding way; or someone at least thought it would look better in the movie.
|
||||
|
||||
## Frank Herbert's Dune & Children of Dune
|
||||
the second, *Frank Herbert's Dune* and *Children of Dune*, both Sci-Fi Channel productions. mini-series, both. "stupid hats Dune" as I refer to it. this Baron Harkonnen always ends his scenes in a rhyming couplet like he's in a Shakespearean drama but *doesn't* fly about like a parade balloon with a leak. this Jessica is a bit more confident and headstrong than Lynch's. because it's a miniseries, we get a lot more time to dig into the story and let things really play out. this is where we get our first depictions of the Count and Lady Fenring (of whom the Lady Fenring is a Bene Gesserit) and the "backup plan" to use Harkonnen's nephew (and heir) Feyd-Rautha to sire the *kwisatz haderach*.
|
||||
|
||||
we also get our first adaptation of *Dune: Messiah* and *Children of Dune*. these books give us the immediate fallout of Paul's coup, the plan set in motion by Lady Corrino, Irulan, the Tleilaxu face-dancer, and the Guild Navigator... and then the attempted interference with the ultimately successful births of Leto II and Ghanima Atreides, fraternal twins both born to Chani. She dies in childbirth, leaving Paul, Irulan, and Jessica to raise the children.
|
||||
|
||||
we also get early James McAvoy playing Leto II, who eventually turns into a giant sandworm after following a vision of his father out into the deep desert. (but that's more *God Emperor* territory)
|
||||
|
||||
the production values are...mixed, but the story is there, and is damn accurate to the text. if you watch after you've seen Lynch's version, you'll be able to pick out which lines are taken verbatim from the novel almost immediately. both Sci-Fi miniseries here would be the ones i'd show a literature class if *Dune* came up as a subject of study.
|
||||
|
||||
## Villeneuve's Dune Trilogy
|
||||
the third, Denis Villeneuve's *Dune*, *Dune: Part Two*, and upcoming *Dune: Part Three* (so inspired). much-hyped and much-memed. ("...LISAN AL-GAIB!!") Chalumet plays Paul closer to how i expect him to act for his age in the books. (he's supposed to be like 15 when they leave Caladan)
|
||||
|
||||
Villeneuve was honestly smart to cut the first movie in half so he could add more content, but the scenes he chooses to focus on are markedly different from the first two adaptations. both Lynch's and Sci-Fi's adaptations spend at least *some* time in the early story going over Shaddam IV's very obvious plan to send the Atreides to Arrakis with the intent of getting rid of them. Villeneuve chooses not to show the Emperor *at all* until the second film. we make a lot more out of the ceremony handing title and fief over to Leto than either of the other adaptations - and we name drop Kynes as Judge of the Change but don't explain what that means. Kynes also shuffles off this mortal coil more or less as depicted in the novel, which i definitely give props for. it seems at least somewhat *implied* that Chani is Liet's daughter, and that Liet was extremely high up in Fremen society, but not much is made of this, at least in the first two installments.
|
||||
|
||||
Villeneuve does manage to get a lot more out of Duncan Idaho and Gurney Halleck than other adaptations, but i think that was tied pretty heavily to both actors' star power. we don't get as much time with Dr. Yueh to establish that he's supposedly incapable of rendering his noble lords harm...so it's more of a betrayal and more shocking when he turns out to be the saboteur later on. we also get maybe one or two scenes with our Mentat, which is honestly a damn shame, both given the missed opportunity *and* the lost dramatic tension between him and Jessica. (he initially suspects her to be the Harkonnen spy, without knowing she is herself Harkonnen in ancestry)
|
||||
|
||||
# thoughts
|
||||
Paul is many things, most of which are thrust upon him by his parents. Chalumet's portrayal really does highlight the sheer weight of responsibility that *both* of his parents are laying on him - his father's desperate need for Paul to take responsibility for leading the house, and his mother's insistence he *master* the Bene Gesserit practices she thinks he'll need to stay alive. Both things do wind up benefitting him in the end, be it his seemingly innate ability to inspire others to his cause...or his Spice-enhanced prescience and reflexes making him extremely formidable in combat.
|
||||
|
||||
But it truly is that looming vision of roaming hoards of warriors chanting his name and burning the stars that keeps him up at night. It makes Villeneuve's Paul reluctant to take *any* responsibility in the sietch with his new Fremen tribe out of fear he'll wind up inspiring zealots. Stilgar proves this to be an inevitability, though I'll also point out that Villeneuve's adaptation is the only one I know of that actually portrays him as the religious fundamentalist zealot he really is. It's mainly through Chani's first few interactions with Paul that we come to understand just how radical Stilgar and his close followers can be.
|
||||
|
||||
I've also got quite a few thoughts about Villeneuve & Zendaya's Chani. I honestly think it's a breath of fresh air to have a Chani who actually *isn't* okay with the guy she fell in love with going all tyrannical and seizing power just like Arrakis' past oppressors. Paul's promises of "transforming the face of Arrakis" – by realizing the *actual* Fremen agenda of terraforming the planet and making it rain – *never come to fruition* because doing so would rob him of two things at once: spice and leverage. While Arrakis produces spice, all the Great Houses and Organizations of the Imperium are beholden to him and his whims. Without that stranglehold on such a crucial resource, Paul would only have the zealots to fight for him, and the rest of the Imperium wouldn't hesitate to wipe him out.
|
||||
@@ -1,15 +0,0 @@
|
||||
---
|
||||
publish: true
|
||||
title: others
|
||||
created: 2026-07-07T21:45:55.205-04:00
|
||||
modified: 2026-07-07T21:45:55.205-04:00
|
||||
tags:
|
||||
- socials
|
||||
- other-sites
|
||||
---
|
||||
|
||||
https://bsky.app/profile/pax.ad
|
||||
|
||||
https://bsky.app/profile/pax.dog
|
||||
|
||||
https://pax.dog
|
||||
@@ -1,12 +0,0 @@
|
||||
---
|
||||
publish: true
|
||||
title: Exchange Online
|
||||
created: 2026-07-07T22:03:31.074-04:00
|
||||
modified: 2026-07-07T22:05:08.080-04:00
|
||||
---
|
||||
|
||||
```powershell
|
||||
Get-Mailbox -Filter {AccountDisabled -eq $false} | Start-ManagedFolderAssistant -FullCrawl
|
||||
```
|
||||
|
||||
Run the **Managed Folder Assistant** for all the active mailboxes in the tenant.
|
||||
16
content/thoughts/on ai.md
Normal file
16
content/thoughts/on ai.md
Normal file
@@ -0,0 +1,16 @@
|
||||
---
|
||||
publish: true
|
||||
tags:
|
||||
- AI
|
||||
- art
|
||||
- tech
|
||||
---
|
||||
yesterday, my beautiful husband sent me a [video he saw online](https://fixupx.com/lepapillonblu2/status/2074621269534707943?s=46) that he swore "won the internet" for the day. it showed a single Patriot Front member running away from a group of protesters wearing full fursuits. the newscaster in the voiceover seemed to be rather excited about the whole thing, sounding a lot more like a race announcer than a newsreader. and for some reason, this was taking place on the streets of Washington, D.C., while throngs of people stood on the sidewalks just watching and recording with their phones. at first glance, a hilarious and somewhat cathartic video.
|
||||
|
||||
but it's a lie.
|
||||
|
||||
look closer at the lower-third graphics and you'll notice the text begins to garble and distort. the smaller newsticker underneath is all gibberish and unrecognizable glyphs. then let the rest sink in: the improbability of the situation, the fluid movements of the runners, the helicopter shot the news team is giving us ... it all seems artificial when you really sit down and dissect it.
|
||||
|
||||
don't get me wrong, this world has morphed and changed in ways i could never have predicted. no one figured that a group of politicians would confuse *The Handmaid's Tale* and *Idiocracy* with instruction manuals.
|
||||
|
||||
i guess it does say *something* that someone earnestly wished for that to happen badly enough they felt compelled to make an AI model create a fake video of it. would've been so much nicer and more cathartic if it were true.
|
||||
14
content/tv/tv.md
Normal file
14
content/tv/tv.md
Normal file
@@ -0,0 +1,14 @@
|
||||
---
|
||||
publish: true
|
||||
---
|
||||
**Right Now**
|
||||
- *[[Silo]]* - S3
|
||||
- *[[House of the Dragon]]*
|
||||
- [[The Vampire Lestat]] (*Interview with the Vampire* Season 3)
|
||||
|
||||
**where tf is**
|
||||
- [[Dune Prophecy]]
|
||||
- [[Neuromancer]]
|
||||
- [[Foundation]]
|
||||
- [[Doctor Who]]
|
||||
- [[Star Trek]]
|
||||
@@ -1,7 +0,0 @@
|
||||
---
|
||||
publish: true
|
||||
created: 2026-07-07T21:44:45.585-04:00
|
||||
modified: 2026-07-07T22:03:02.091-04:00
|
||||
---
|
||||
|
||||
something interesting
|
||||
@@ -1,6 +1,6 @@
|
||||
# yaml-language-server: $schema=./quartz/plugins/quartz-plugins.schema.json
|
||||
configuration:
|
||||
pageTitle: "pax.ad"
|
||||
pageTitle: pax.ad
|
||||
pageTitleSuffix: ""
|
||||
enableSPA: true
|
||||
enablePopovers: true
|
||||
@@ -9,14 +9,15 @@ configuration:
|
||||
locale: en-US
|
||||
baseUrl: pax.ad
|
||||
ignorePatterns:
|
||||
- private
|
||||
- templates
|
||||
- _private
|
||||
- _templates
|
||||
- .obsidian
|
||||
theme:
|
||||
fontOrigin: googleFonts
|
||||
cdnCaching: true
|
||||
typography:
|
||||
header: Corben
|
||||
title: Corben
|
||||
header: Sono
|
||||
body: Sono
|
||||
code: IBM Plex Mono
|
||||
colors:
|
||||
@@ -111,16 +112,16 @@ plugins:
|
||||
- source: github:quartz-community/fonts
|
||||
enabled: true
|
||||
options:
|
||||
useThemeFonts: false
|
||||
fontOrigin: googleFonts
|
||||
header: Corben
|
||||
body: Sono
|
||||
useThemeFonts: false
|
||||
header: Sono
|
||||
title: Corben
|
||||
interface: Sono
|
||||
code: IBM Plex Mono
|
||||
interface: Corben
|
||||
- source: github:quartz-community/remove-draft
|
||||
enabled: true
|
||||
- source: github:quartz-community/explicit-publish
|
||||
enabled: false
|
||||
enabled: true
|
||||
- source: github:quartz-community/unlisted-pages
|
||||
enabled: true
|
||||
options: {}
|
||||
@@ -232,8 +233,8 @@ plugins:
|
||||
enabled: true
|
||||
options:
|
||||
links:
|
||||
GitHub: https://github.com/jackyzha0/quartz
|
||||
Discord Community: https://discord.gg/cRFFHYye7t
|
||||
bsky: https://bsky.app/profile/pax.dog
|
||||
\@: at://did:plc:cde6mpfngdb4kylusjbxm5ir
|
||||
- source: github:quartz-community/recent-notes
|
||||
enabled: false
|
||||
- source: github:quartz-community/spacer
|
||||
@@ -271,7 +272,7 @@ plugins:
|
||||
subdir: plugin
|
||||
enabled: true
|
||||
options:
|
||||
theme: dracula-official
|
||||
theme: retroma.monochromatic
|
||||
- source: github:quartz-community/obsidian-plugin-excalidraw
|
||||
enabled: true
|
||||
options:
|
||||
|
||||
Reference in New Issue
Block a user