generated from nhcarrigan/template
Compare commits
43 Commits
b8650dfa73
...
main
Author | SHA1 | Date | |
---|---|---|---|
c461453342
|
|||
49dd426ed9
|
|||
b179cc469b
|
|||
7252be5d02
|
|||
9583ac3076
|
|||
64c4bd4b9a
|
|||
f74b4cf43a
|
|||
90de31a17d
|
|||
ea060a775c
|
|||
1022316d35
|
|||
db7a34e975
|
|||
bd47ff2bb3
|
|||
0ec64ba2b0
|
|||
a7daa5093f
|
|||
6a95effaaf
|
|||
26136259d3
|
|||
dd5fa6f7a2
|
|||
38149e092e
|
|||
d562560dea
|
|||
05b0763366
|
|||
73a44b0bf9
|
|||
543edcf899
|
|||
7692d2a757 | |||
98d4757914
|
|||
7751e35283 | |||
3294fdc1e4
|
|||
92a42feb8d
|
|||
51ccfa5627
|
|||
d53423bd5d | |||
9b730e740e
|
|||
05a7784433
|
|||
9ce0f8271e
|
|||
144685e92c
|
|||
2d58bd6d6b
|
|||
f47c637edd
|
|||
e2bf180633
|
|||
2f1ff2969c
|
|||
cd0cf7c478
|
|||
43fa0f5643 | |||
7e3a9f64ac
|
|||
a7d906e150
|
|||
8509e6d62c
|
|||
40808b6dfe
|
@ -29,6 +29,12 @@
|
||||
"SonarQube",
|
||||
"Grype",
|
||||
"Syft",
|
||||
"Ghostty"
|
||||
"Ghostty",
|
||||
"Amberol",
|
||||
"Musicolet"
|
||||
],
|
||||
"words": [
|
||||
"Fediverse",
|
||||
"polycule"
|
||||
]
|
||||
}
|
||||
|
38
.gitea/workflows/ci.yml
Normal file
38
.gitea/workflows/ci.yml
Normal file
@ -0,0 +1,38 @@
|
||||
name: Node.js CI
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- main
|
||||
pull_request:
|
||||
branches:
|
||||
- main
|
||||
|
||||
jobs:
|
||||
lint:
|
||||
name: Lint and Test
|
||||
|
||||
steps:
|
||||
- name: Checkout Source Files
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Use Node.js v22
|
||||
uses: actions/setup-node@v4
|
||||
with:
|
||||
node-version: 22
|
||||
|
||||
- name: Setup pnpm
|
||||
uses: pnpm/action-setup@v2
|
||||
with:
|
||||
version: 9
|
||||
|
||||
- name: Install Dependencies
|
||||
run: pnpm install
|
||||
|
||||
- name: Lint Source Files
|
||||
run: pnpm run lint
|
||||
|
||||
- name: Verify Build
|
||||
run: pnpm run build
|
||||
|
||||
- name: Run Tests
|
||||
run: pnpm run test
|
34
.gitea/workflows/sonar.yml
Normal file
34
.gitea/workflows/sonar.yml
Normal file
@ -0,0 +1,34 @@
|
||||
name: Code Analysis
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- main
|
||||
|
||||
jobs:
|
||||
sonar:
|
||||
name: SonarQube
|
||||
|
||||
steps:
|
||||
- name: Checkout Source Files
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
fetch-depth: 0
|
||||
|
||||
- name: SonarCube Scan
|
||||
uses: SonarSource/sonarqube-scan-action@v4
|
||||
timeout-minutes: 10
|
||||
env:
|
||||
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}
|
||||
SONAR_HOST_URL: "https://quality.nhcarrigan.com"
|
||||
with:
|
||||
args: >
|
||||
-Dsonar.sources=.
|
||||
-Dsonar.projectKey=docs
|
||||
|
||||
- name: SonarQube Quality Gate check
|
||||
uses: sonarsource/sonarqube-quality-gate-action@v1
|
||||
with:
|
||||
pollingTimeoutSec: 600
|
||||
env:
|
||||
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}
|
||||
SONAR_HOST_URL: "https://quality.nhcarrigan.com"
|
6
.vscode/settings.json
vendored
Normal file
6
.vscode/settings.json
vendored
Normal file
@ -0,0 +1,6 @@
|
||||
{
|
||||
"sonarlint.connectedMode.project": {
|
||||
"connectionId": "Naomi",
|
||||
"projectKey": "docs"
|
||||
}
|
||||
}
|
149
astro.config.mjs
149
astro.config.mjs
@ -1,68 +1,103 @@
|
||||
import { defineConfig } from 'astro/config';
|
||||
import { defineConfig } from "astro/config";
|
||||
import starlight from "@astrojs/starlight";
|
||||
import { ExpressiveCodeTheme } from "@astrojs/starlight/expressive-code";
|
||||
import themeJson from "./src/styles/theme.json";
|
||||
import darkThemeJson from "./src/styles/theme-dark.json";
|
||||
|
||||
import { navigation } from "./src/components/navigation.ts";
|
||||
|
||||
const sakuraDreams = ExpressiveCodeTheme.fromJSONString(
|
||||
JSON.stringify(themeJson)
|
||||
);
|
||||
const sakuraDreamsDark = ExpressiveCodeTheme.fromJSONString(
|
||||
JSON.stringify(darkThemeJson)
|
||||
);
|
||||
|
||||
export default defineConfig({
|
||||
site: "https://docs.nhcarrigan.com",
|
||||
integrations: [starlight({
|
||||
components: {
|
||||
Footer: "./src/components/Footer.astro",
|
||||
ThemeSelect: "./src/components/ThemeSelect.astro",
|
||||
ThemeProvider: "./src/components/ThemeProvider.astro",
|
||||
},
|
||||
title: "NHCarrigan Docs",
|
||||
sidebar: navigation,
|
||||
tableOfContents: { minHeadingLevel: 2, maxHeadingLevel: 4},
|
||||
description: "This site contains all of the documentation related to NHCarrigan, its Policies, and its Projects.",
|
||||
editLink: {
|
||||
baseUrl: "https://codeberg.org/nhcarrigan/docs/_edit/main/",
|
||||
label: "Edit this page on Codeberg"
|
||||
},
|
||||
lastUpdated: true,
|
||||
social: {
|
||||
codeberg: "https://codeberg.org/nhcarrigan",
|
||||
github: "https://github.com/nhcarrigan",
|
||||
discord: "https://chat.nhcarrigan.com"
|
||||
},
|
||||
head: [
|
||||
{
|
||||
tag: "script",
|
||||
attrs: {
|
||||
type: "text/javascript",
|
||||
id: "hs-script-loader",
|
||||
async: true,
|
||||
defer: true,
|
||||
src: "https://js.hs-scripts.com/47086586.js"
|
||||
}
|
||||
integrations: [
|
||||
starlight({
|
||||
components: {
|
||||
Footer: "./src/components/Footer.astro",
|
||||
ThemeProvider: "./src/components/ThemeProvider.astro",
|
||||
},
|
||||
{
|
||||
tag: "script",
|
||||
attrs: {
|
||||
type: "text/javascript",
|
||||
id: "analytics",
|
||||
src: "https://analytics.nhcarrigan.com/js/script.file-downloads.outbound-links.js",
|
||||
defer: true,
|
||||
"data-domain": "nhcarrigan.com"
|
||||
}
|
||||
title: "NHCarrigan Docs",
|
||||
sidebar: navigation,
|
||||
tableOfContents: { minHeadingLevel: 2, maxHeadingLevel: 4 },
|
||||
description:
|
||||
"This site contains all of the documentation related to NHCarrigan, its Policies, and its Projects.",
|
||||
editLink: {
|
||||
baseUrl: "https://git.nhcarrigan.com/nhcarrigan/docs/_edit/main/",
|
||||
label: "Edit this page on Naomi's Self-hosted Git instance",
|
||||
},
|
||||
{
|
||||
tag: "script",
|
||||
content: "window.plausible = window.plausible || function() { (window.plausible.q = window.plausible.q || []).push(arguments) }"
|
||||
lastUpdated: true,
|
||||
social: {
|
||||
github: "https://git.nhcarrigan.com",
|
||||
discourse: "https://forum.nhcarrigan.com",
|
||||
mastodon: "https://fedi.nhcarrigan.com/@naomi",
|
||||
matrix: "https://matrix.nhcarrigan.com",
|
||||
rss: "https://irc.nhcarrigan.com",
|
||||
email: "mailto:contact@nhcarrigan.com",
|
||||
},
|
||||
{
|
||||
tag: "script",
|
||||
attrs: {
|
||||
type: "text/javascript",
|
||||
id: "trees",
|
||||
src: "https://widgets.tree-nation.com/js/widgets/v1/widgets.min.js?v=1.0",
|
||||
defer: true
|
||||
logo: {
|
||||
src: "./public/logo.png",
|
||||
alt: "NHCarrigan Logo",
|
||||
replacesTitle: true
|
||||
},
|
||||
head: [
|
||||
{
|
||||
tag: "script",
|
||||
attrs: {
|
||||
type: "text/javascript",
|
||||
id: "analytics",
|
||||
src: "https://analytics.nhcarrigan.com/js/script.file-downloads.outbound-links.js",
|
||||
defer: true,
|
||||
"data-domain": "nhcarrigan.com",
|
||||
"event-domain": "docs.nhcarrigan.com",
|
||||
},
|
||||
},
|
||||
{
|
||||
tag: "script",
|
||||
content:
|
||||
"window.plausible = window.plausible || function() { (window.plausible.q = window.plausible.q || []).push(arguments) }",
|
||||
},
|
||||
{
|
||||
tag: "script",
|
||||
attrs: {
|
||||
type: "text/javascript",
|
||||
id: "trees",
|
||||
src: "https://widgets.tree-nation.com/js/widgets/v1/widgets.min.js?v=1.0",
|
||||
defer: true,
|
||||
},
|
||||
},
|
||||
{
|
||||
tag: "link",
|
||||
attrs: {
|
||||
rel: "icon",
|
||||
href: "./public/logo.png",
|
||||
},
|
||||
},
|
||||
{
|
||||
tag: "script",
|
||||
attrs: {
|
||||
type: "text/javascript",
|
||||
src: "https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-3569924701890974",
|
||||
async: true,
|
||||
crossorigin: "anonymous",
|
||||
},
|
||||
},
|
||||
{
|
||||
tag: "meta",
|
||||
attrs: {
|
||||
property: "og:image",
|
||||
content: "https://cdn.nhcarrigan.com/og-image.png"
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
customCss: [
|
||||
"./src/styles/style.css",
|
||||
"./src/fonts/font-face.css"
|
||||
],
|
||||
})]
|
||||
],
|
||||
customCss: ["./src/styles/style.css", "./src/fonts/font-face.css"],
|
||||
expressiveCode: {
|
||||
themes: [sakuraDreams, sakuraDreamsDark],
|
||||
},
|
||||
}),
|
||||
],
|
||||
});
|
||||
|
13
package.json
13
package.json
@ -9,15 +9,16 @@
|
||||
"build": "astro build",
|
||||
"preview": "astro preview",
|
||||
"astro": "astro",
|
||||
"scan": "SONAR_TOKEN='op://Environment Variables - Development/SonarCloud/docs' op run -- sonar-scanner -Dsonar.organization=nhcarrigan -Dsonar.projectKey=nhcarrigan_docs -Dsonar.sources=. -Dsonar.host.url=https://sonarcloud.io"
|
||||
"scan": "SONAR_TOKEN='op://Environment Variables - Development/SonarCloud/docs' op run -- sonar-scanner -Dsonar.organization=nhcarrigan -Dsonar.projectKey=nhcarrigan_docs -Dsonar.sources=. -Dsonar.host.url=https://sonarcloud.io",
|
||||
"test": "echo 'No tests yet!' && exit 0"
|
||||
},
|
||||
"dependencies": {
|
||||
"@astrojs/check": "^0.9.3",
|
||||
"@astrojs/starlight": "^0.26.1",
|
||||
"astro": "^4.14.5",
|
||||
"typescript": "^5.5.4"
|
||||
"@astrojs/check": "^0.9.4",
|
||||
"@astrojs/starlight": "^0.32.0",
|
||||
"astro": "^5.3.0",
|
||||
"typescript": "^5.7.3"
|
||||
},
|
||||
"devDependencies": {
|
||||
"cspell": "8.17.0"
|
||||
"cspell": "8.17.3"
|
||||
}
|
||||
}
|
||||
|
3088
pnpm-lock.yaml
generated
3088
pnpm-lock.yaml
generated
File diff suppressed because it is too large
Load Diff
20399
public/favicon.svg
20399
public/favicon.svg
File diff suppressed because it is too large
Load Diff
Before Width: | Height: | Size: 749 B After Width: | Height: | Size: 1.0 MiB |
BIN
public/logo.png
Normal file
BIN
public/logo.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 1.2 MiB |
@ -10,7 +10,12 @@ import Pagination from "@astrojs/starlight/components/Pagination.astro";
|
||||
<LastUpdated {...Astro.props} />
|
||||
</div>
|
||||
<Pagination {...Astro.props} />
|
||||
<div id="extra-footer-content">
|
||||
<div id="tree-nation-offset-website"></div>
|
||||
<a href="https://buy.stripe.com/cN24iTfqu1j6b3afZ2" target="_blank" rel="noreferrer">
|
||||
<img src="https://cdn.nhcarrigan.com/donate.png" alt="Donate" style="width: 70px; height: 70px;">
|
||||
</a>
|
||||
</div>
|
||||
<script>
|
||||
TreeNationOffsetWebsite({
|
||||
code: "a17464e0cd351220",
|
||||
@ -18,13 +23,6 @@ import Pagination from "@astrojs/starlight/components/Pagination.astro";
|
||||
theme: "dark",
|
||||
}).render("#tree-nation-offset-website");
|
||||
</script>
|
||||
<video
|
||||
autoplay={true}
|
||||
loop={true}
|
||||
muted={true}
|
||||
playsinline={true}
|
||||
src="https://cdn.nhcarrigan.com/overlay.webm"
|
||||
style={{ pointerEvents: "none", position: "fixed", top: 0, left: 0, opacity: 0.25, zIndex:100, width: "100vw", height: "100vh"}}></video>
|
||||
</footer>
|
||||
|
||||
<style>
|
||||
|
@ -1,3 +1,43 @@
|
||||
---
|
||||
import { Icon } from "@astrojs/starlight/components";
|
||||
---
|
||||
|
||||
{/* This is intentionally inlined to avoid FOUC. */}
|
||||
<script is:inline>
|
||||
document.documentElement.dataset.theme = "light";
|
||||
const analytics = document.getElementById('analytics');
|
||||
const title = document.querySelector('title');
|
||||
analytics.setAttribute('event-page', title.innerText ?? "NHCarrigan Docs");
|
||||
analytics.setAttribute('event-path', window.location.pathname);
|
||||
window.StarlightThemeProvider = (() => {
|
||||
const storedTheme =
|
||||
typeof localStorage !== 'undefined' && localStorage.getItem('starlight-theme');
|
||||
const theme =
|
||||
storedTheme ||
|
||||
(window.matchMedia('(prefers-color-scheme: light)').matches ? 'light' : 'dark');
|
||||
document.documentElement.dataset.theme = theme === 'light' ? 'light' : 'dark';
|
||||
console.log(document.documentElement)
|
||||
return {
|
||||
updatePickers(theme = storedTheme || 'auto') {
|
||||
document.querySelectorAll('starlight-theme-select').forEach((picker) => {
|
||||
const select = picker.querySelector('select');
|
||||
if (select) select.value = theme;
|
||||
/** @type {HTMLTemplateElement | null} */
|
||||
const tmpl = document.querySelector(`#theme-icons`);
|
||||
const newIcon = tmpl && tmpl.content.querySelector('.' + theme);
|
||||
if (newIcon) {
|
||||
const oldIcon = picker.querySelector('svg.label-icon');
|
||||
if (oldIcon) {
|
||||
oldIcon.replaceChildren(...newIcon.cloneNode(true).childNodes);
|
||||
}
|
||||
}
|
||||
});
|
||||
},
|
||||
};
|
||||
})();
|
||||
</script>
|
||||
|
||||
<template id="theme-icons">
|
||||
<Icon name="sun" class="light" />
|
||||
<Icon name="moon" class="dark" />
|
||||
<Icon name="laptop" class="auto" />
|
||||
</template>
|
@ -4,112 +4,112 @@ export const navigation = [
|
||||
items: [
|
||||
{
|
||||
label: "Mission Statement",
|
||||
link: "/about/mission"
|
||||
link: "/about/mission",
|
||||
},
|
||||
{
|
||||
label: "Sustainability",
|
||||
link: "/about/sustainability"
|
||||
link: "/about/sustainability",
|
||||
},
|
||||
{
|
||||
label: "Hire us!",
|
||||
link: "/about/hire"
|
||||
link: "/about/hire",
|
||||
},
|
||||
{
|
||||
label: "Support Our Work 💜",
|
||||
link: "/about/donate"
|
||||
link: "/about/donate",
|
||||
},
|
||||
{
|
||||
label: "Contact",
|
||||
link: "/about/contact"
|
||||
link: "/about/contact",
|
||||
},
|
||||
{
|
||||
label: "Mentorship",
|
||||
link: "/about/mentorship"
|
||||
}
|
||||
]
|
||||
link: "/about/mentorship",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
label: "Legal Information",
|
||||
items: [
|
||||
{
|
||||
label: "Terms of Service",
|
||||
link: "/legal/terms"
|
||||
link: "/legal/terms",
|
||||
},
|
||||
{
|
||||
label: "Privacy Policy",
|
||||
link: "/legal/privacy"
|
||||
link: "/legal/privacy",
|
||||
},
|
||||
{
|
||||
label: "Software License",
|
||||
link: "/legal/license"
|
||||
link: "/legal/license",
|
||||
},
|
||||
{
|
||||
label: "Security Policy",
|
||||
link: "/legal/security"
|
||||
link: "/legal/security",
|
||||
},
|
||||
{
|
||||
label: "DMCA and Copyright",
|
||||
link: "/legal/dmca"
|
||||
link: "/legal/dmca",
|
||||
},
|
||||
{
|
||||
label: "Subprocessors List",
|
||||
link: "/legal/subprocessors"
|
||||
link: "/legal/subprocessors",
|
||||
},
|
||||
{
|
||||
label: "Government Actions",
|
||||
link: "/legal/government"
|
||||
}
|
||||
]
|
||||
link: "/legal/government",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
label: "Community Policies",
|
||||
items: [
|
||||
{
|
||||
label: "Code of Conduct",
|
||||
link: "/community/coc"
|
||||
link: "/community/coc",
|
||||
},
|
||||
{
|
||||
label: "Community Guidelines",
|
||||
link: "/community/guide"
|
||||
link: "/community/guide",
|
||||
},
|
||||
{
|
||||
label: "Appeal a Sanction",
|
||||
link: "/community/appeal"
|
||||
}
|
||||
]
|
||||
link: "/community/appeal",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
label: "Development Documentation",
|
||||
items: [
|
||||
{
|
||||
label: "Contributing Guide",
|
||||
link: "/dev/contributing"
|
||||
link: "/dev/contributing",
|
||||
},
|
||||
{
|
||||
label: "Contributor Covenant",
|
||||
link: "/dev/covenant"
|
||||
link: "/dev/covenant",
|
||||
},
|
||||
{
|
||||
label: "Style Guide",
|
||||
link: "/dev/style"
|
||||
link: "/dev/style",
|
||||
},
|
||||
{
|
||||
label: "Issue/PR Labels",
|
||||
link: "/dev/labels"
|
||||
link: "/dev/labels",
|
||||
},
|
||||
{
|
||||
label: "Development Environment",
|
||||
link: "/dev/environment"
|
||||
link: "/dev/environment",
|
||||
},
|
||||
{
|
||||
label: "Server Setup",
|
||||
link: "/dev/servers"
|
||||
link: "/dev/servers",
|
||||
},
|
||||
{
|
||||
label: "VTubing Setup",
|
||||
link: "/dev/vtubing"
|
||||
}
|
||||
]
|
||||
link: "/dev/vtubing",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
label: "Project Documentation",
|
||||
@ -117,41 +117,37 @@ export const navigation = [
|
||||
{
|
||||
label: "ESLint Config",
|
||||
link: "/projects/eslint-config",
|
||||
badge: { text: "v5.1.0", variant: "tip"}
|
||||
badge: { text: "v5.1.0", variant: "tip" },
|
||||
},
|
||||
{
|
||||
label: "Task Bot",
|
||||
link: "/projects/task-bot",
|
||||
badge: { text: "v1.0.0", variant: "tip"}
|
||||
},
|
||||
{
|
||||
label: "Translation Bot",
|
||||
link: "/projects/translation-bot",
|
||||
badge: { text: "v1.0.0", variant: "tip"}
|
||||
},
|
||||
{
|
||||
label: "NaomiAI",
|
||||
link: "/projects/naomiai",
|
||||
badge: { text: "v1.0.0", variant: "tip"}
|
||||
},
|
||||
{
|
||||
label: "AltGenerator",
|
||||
link: "/projects/alt-gen",
|
||||
badge: { text: "v1.0.0", variant: "tip"}
|
||||
}
|
||||
].sort((a, b) => a.label.localeCompare(b.label))
|
||||
].sort((a, b) => a.label.localeCompare(b.label)),
|
||||
},
|
||||
{
|
||||
label: "Staff Guidelines",
|
||||
items: [
|
||||
{
|
||||
label: "Staff Handbook",
|
||||
link: "/staff/handbook"
|
||||
link: "/staff/handbook",
|
||||
},
|
||||
{
|
||||
label: "Join our Team",
|
||||
link: "/staff/apply"
|
||||
link: "/staff/apply",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
label: "Miscellaneous Documents",
|
||||
items: [
|
||||
{
|
||||
label: "Managing Local Music",
|
||||
link: "/misc/music",
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
label: "Sitemap",
|
||||
link: "https://sitemap.nhcarrigan.com",
|
||||
attrs: {
|
||||
target: "_blank",
|
||||
}
|
||||
}
|
||||
]
|
||||
];
|
||||
|
@ -2,21 +2,64 @@
|
||||
title: Contact Policy
|
||||
---
|
||||
|
||||
:::tip
|
||||
We maintain a full list of all officially-owned social media accounts. You can view those accounts at https://cdn.nhcarrigan.com/socials.txt.
|
||||
|
||||
<details>
|
||||
<summary>Verification Instructions</summary>
|
||||
|
||||
To verify the authenticity of that document, grab our SSH key from https://git.nhcarrigan.com/naomi.keys and save it locally. ADD `naomi@nhcarrigan.com ` TO THE BEGINNING OF THIS SIGNATURE FILE. It should look like `naomi@nhcarrigan.com ssh-rsa <key string>`.
|
||||
|
||||
Save the list of socials locally locally.
|
||||
|
||||
Copy and save this signature locally:
|
||||
|
||||
```
|
||||
-----BEGIN SSH SIGNATURE-----
|
||||
U1NIU0lHAAAAAQAAAhcAAAAHc3NoLXJzYQAAAAMBAAEAAAIBAMU5uZawMgDZj3m5jw9WZ6
|
||||
ltOSMbYQWnfo9NyccKL8xiVoGVU9PxzSLEuPpczAZpNaKLD5JqhJ2zXN/9YVF+R3wq6NZY
|
||||
tCDTET02HShOEXTsfChEi+LVi4Brr1OY5Jo1pPViNfm4IintA1yTkCQtyQwrq/lWFvlc/B
|
||||
mS0Sn3ogEJCp0FxXYXrBfo6ujveKoYKiIBxRlHN4D13Mu00KDvufeEUqtJ42m5fNf/dKJU
|
||||
7H3Hb7e9l3IuUJeiBC8fb0tTx7E9pg6ivaH6KM8tVGK+U77LK3qzXWICutWGAg1GlMQNsd
|
||||
17sa03NB4tE12cXIVLCSPUo9Wlt+8BYNNvO14JrCJzQ4/mzBDSsUu2NKdAj4rYaoUW742/
|
||||
KnPdhfmjOpMFIW53IjldmAs5sixH8u6DrMR1Ge+goOcdwGpHGdl4c4Pkyr6gesdLIDwpE4
|
||||
sf5ea0XB23JqTDU2e7AusUzTwc4coUGPrrOBTVJI2NSJSS/eUEiGUMhUBYOTtcbnJEnHQb
|
||||
Nw0sDi+8gqFLdJU6pl7NFWt8HrRKCU4g86DGO9Ym5j2MJNw3looFPjr4eNqbd0Xvnh3Hes
|
||||
bXTcDO+fT9vceJx/fT4ulE23GLiT5B0Pir8uVGaytKXTRLjBx9op7NrsvxYABQ2Z8Kp4Ck
|
||||
nTpTU75OikmKTNPltPk5sfIN5SAd0HWPAAAAB3NvY2lhbHMAAAAAAAAABnNoYTUxMgAAAh
|
||||
QAAAAMcnNhLXNoYTItNTEyAAACAHLoLzpT0ArzK3eLg3bA921wrf3Pcoxye3735O7zbOOK
|
||||
jRoGgdprpXg5S5IkxEW/FARGlFX4G9nr+OTduNhBLRWwxcvRCYgGk2iRMydHzaslK0tAtN
|
||||
tz+uT5kxn+7Iky0oGvYhgXXYtbjV4QSyu6Og5VpDCluEj8c9mZx/y3/FEBfIdFSok9IqY1
|
||||
FyD7o20/pe/ZUnC90gR610F6uN67pp5NIuyFb1efnKVip99Ti3+zJ8QV/2YIyvcn+olRMj
|
||||
CoLARgxf+VMg0B+KVnT2rbSnxarG46ttl2YUPAPMgS8/P1RlrTk9bVvx6XD08R5xEcnv7o
|
||||
wS9iKxaBCHan8Wm7C5DpDmHYupQ/fj10b4ZIddf28JCPuCciHD4fvITa/ImMKTN+UqPWgO
|
||||
rBNk92TAE/ByaWcfhJDmvH4wi7HWaaumrFktN7CH1XKcYcKPlzALExAj6BtHCMWyQpgiiu
|
||||
VmS5IF/Q5nIDJ1ZOcUNlM3/joYcxXbMa5ZutRvJMnj08wLDweI6I6Q3S8gqY/nTRSwFfjV
|
||||
93VEI5Yso5mCZp16+vCegn90NlQ6jCPxc1HdytQFpcjPuQbMLdzxQpZ1WE62SoVhzVuLTn
|
||||
YpQLFsegssSDM/A1z54dgN9HI8lRNW8cxXXLKSIjDTYnk3W5dUaqW/JCttPmDcUd16YT8r
|
||||
JPPjuDt7Fb
|
||||
-----END SSH SIGNATURE-----
|
||||
```
|
||||
|
||||
Then run:
|
||||
|
||||
```
|
||||
ssh-keygen -Y verify -f /path/to/saved/key -I naomi@nhcarrigan.com -n socials -s /path/to/saved/signature < /path/to/saved/list
|
||||
```
|
||||
|
||||
</details>
|
||||
:::
|
||||
|
||||
## 1. Support and Communication Channels
|
||||
|
||||
### 1.1 Public Support Channels
|
||||
|
||||
:::tip
|
||||
We have a ticket system within our Discord server which allows for private communication with the staff team.
|
||||
This is considered a public support platform and is not billed!
|
||||
:::
|
||||
|
||||
We offer FREE support through several PUBLIC channels, including:
|
||||
|
||||
- Community Forums
|
||||
- Public GitHub Issues
|
||||
- Open Discord Servers
|
||||
- Social Media Platforms
|
||||
- Public Repository Issues
|
||||
- Open IRC Channels
|
||||
- Custom Fediverse Instance
|
||||
|
||||
These channels are ideal for:
|
||||
|
||||
@ -49,118 +92,50 @@ Our platforms offer various ways to engage with our projects and community:
|
||||
|
||||
Below, you'll find a comprehensive list of our official communication platforms. Each platform serves specific purposes and caters to different types of interactions. Please choose the most appropriate channel for your needs to ensure the fastest and most effective response.
|
||||
|
||||
## 2. Account Verification
|
||||
### 1.5 Contact Form
|
||||
|
||||
### 2.1 List of Verified Accounts
|
||||
We offer a [contact form](https://forms.nhcarrigan.com/form/HyqoJ9Th5QDiOn_GPLNIRhe1a5ON7mDQf-O_ukM6R4g) for direct, low-priority communication requests.
|
||||
|
||||
We maintain a comprehensive list of all our verified accounts across different platforms. This list is regularly updated to reflect any changes or additions to our official online presence.
|
||||
It is often faster to reach out through one of the above platforms, and best to consider this contact form as a backup in the event of a severe outage.
|
||||
|
||||
- View our verified accounts: https://cdn.nhcarrigan.com/socials.txt
|
||||
## 2. Communication Platforms
|
||||
|
||||
### 2.2 GPG Key for Verification
|
||||
### 2.1. Forum
|
||||
|
||||
To ensure the integrity of our verified accounts list, we use GPG (GNU Privacy Guard) encryption. You can download our public GPG key to verify the authenticity of the list.
|
||||
Our self-hosted forum allows for more long-form communication, which is ideal for support queries and in-depth conversations.
|
||||
|
||||
- Download our GPG key: https://cdn.nhcarrigan.com/key.pgp
|
||||
|
||||
### 2.3 Verification Process
|
||||
|
||||
Follow these steps to verify the integrity of our verified accounts list:
|
||||
|
||||
- Download both the verified accounts list and our GPG key from the links provided above.
|
||||
- Open a terminal or command prompt on your system.
|
||||
- Navigate to the directory where you saved the files.
|
||||
- Run the following command:
|
||||
|
||||
```
|
||||
gpg -f /path/to/key --verify /path/to/socials
|
||||
```
|
||||
|
||||
Replace `/path/to/key` with the path to the downloaded GPG key file, and `/path/to/socials` with the path to the downloaded verified accounts list.
|
||||
|
||||
If the verification is successful, you'll see a message confirming the signature is valid.
|
||||
|
||||
### 2.4 Importance of Verification
|
||||
|
||||
Verifying our accounts helps you:
|
||||
|
||||
- Avoid impersonation attempts
|
||||
- Ensure you're interacting with official channels
|
||||
- Protect yourself from potential scams or misinformation
|
||||
|
||||
### 2.5 Reporting Suspicious Accounts
|
||||
|
||||
If you encounter an account claiming to represent us but not listed in our verified accounts:
|
||||
|
||||
- Do not engage with or share sensitive information with the account
|
||||
- Report the suspicious account to us immediately through one of our verified channels
|
||||
- If possible, report the account to the platform it's on for impersonation
|
||||
|
||||
### 2.6 Staying Updated
|
||||
|
||||
We recommend checking our verified accounts list periodically, as we may add new official accounts or remove outdated ones. Always use the verification process to ensure you have the most current and authentic list.
|
||||
|
||||
## 3. Real-Time Communication Platforms
|
||||
|
||||
### 3.1 Discord Server
|
||||
|
||||
Our Discord server is the primary and most active platform for real-time communication.
|
||||
|
||||
- Join Link: https://chat.naomi.lgbt
|
||||
- Join Link: https://forum.nhcarrigan.com
|
||||
- Features:
|
||||
- Fastest response times
|
||||
- Multiple topic-specific channels
|
||||
- Voice chat capabilities
|
||||
- Integration with our projects and bots
|
||||
- Best for: Quick support, community discussions, and live collaboration
|
||||
- Quick response times
|
||||
- Threaded conversations
|
||||
- Persistent and indexed posts
|
||||
- Best for: Support queries
|
||||
|
||||
### 3.2 Matrix Space
|
||||
### 2.2. Code Repositories
|
||||
|
||||
For those who prefer an open-source alternative to Discord, we maintain a Matrix space.
|
||||
Our code repositories are all self-hosted. Sign-ups are open for anyone who wants to file an issue or comment on a discussion, but making code contributions is restricted to our core team.
|
||||
|
||||
- Join Link: https://matrix.to/#/#naomis:matrix.org
|
||||
- Link: https://git.nhcarrigan.com
|
||||
- Features:
|
||||
- Decentralized and open-source
|
||||
- End-to-end encryption for private messages
|
||||
- Cross-platform compatibility
|
||||
- Best for: Privacy-conscious users and those who prefer open protocols
|
||||
- Issue tracking
|
||||
- Source code for all of our products
|
||||
- Best for: Filing tickets on our software.
|
||||
|
||||
### 3.3 IRC Channels
|
||||
|
||||
For users who prefer traditional IRC, we maintain channels on LiberaChat.
|
||||
|
||||
- Network: LiberaChat
|
||||
- Channels:
|
||||
- #nhcarrigan - Main support and discussion channel
|
||||
- #nhcarrigan-chat - Casual conversation and community chat
|
||||
- Connection Guide: LiberaChat Connection Guide
|
||||
- Features:
|
||||
- Lightweight and accessible from various clients
|
||||
- Suitable for users with limited bandwidth
|
||||
- Familiar interface for long-time internet users
|
||||
- Best for: Users comfortable with traditional IRC interfaces and those seeking a minimal, text-based chat experience
|
||||
|
||||
### 3.4 Platform Choice Guidelines
|
||||
|
||||
- Discord: Recommended for most users, especially those seeking quick responses or community interaction.
|
||||
- Matrix: Ideal for users prioritizing privacy and open-source solutions.
|
||||
- IRC: Best for those who prefer a classic, lightweight chat experience or are using older hardware.
|
||||
|
||||
### 3.5 Etiquette and Best Practices
|
||||
### 2.3. Etiquette and Best Practices
|
||||
|
||||
- Please be respectful and follow the community guidelines on all platforms.
|
||||
- Use appropriate channels or rooms for your queries to ensure the fastest response.
|
||||
- Before asking a question, check if it has been answered in pinned messages or FAQs.
|
||||
- When seeking help, provide as much relevant information as possible.
|
||||
|
||||
## 4. Announcements and Updates
|
||||
## 3. Announcements and Updates
|
||||
|
||||
### 4.1 Reddit Board
|
||||
### 3.1 Announcements Page
|
||||
|
||||
Our Reddit board serves as the primary hub for official announcements and updates.
|
||||
We have a dedicated forum category where we post all of our organisational updates.
|
||||
|
||||
- URL: https://www.reddit.com/r/nhcarrigan/
|
||||
- Nature: This board is read-only.
|
||||
- URL: https://announcements.nhcarrigan.com
|
||||
- Nature: You can reply to announcement threads to discuss the announcement.
|
||||
- Content:
|
||||
- Project updates and new releases
|
||||
- Important community announcements
|
||||
@ -168,53 +143,29 @@ Our Reddit board serves as the primary hub for official announcements and update
|
||||
- Major policy changes
|
||||
- Best for: Comprehensive, detailed announcements and long-form updates
|
||||
|
||||
### 4.2 Social Media Platforms
|
||||
### 3.2 Blog
|
||||
|
||||
For more frequent and concise updates, we cross-post select announcements to our social media accounts.
|
||||
Our blog contains more personal posts and updates.
|
||||
|
||||
#### 4.2.1 Twitter
|
||||
|
||||
- Account: @naomi_lgbt
|
||||
- URL: https://blog.nhcarrigan.com
|
||||
- Nature: This board is read-only.
|
||||
- Content:
|
||||
- Brief announcements and updates
|
||||
- Quick tips and insights
|
||||
- Community engagement
|
||||
- Personal life updates
|
||||
- Random musings
|
||||
- Cool insights into our decision making processes
|
||||
- Best for: People who want more insight into the team behind NHCarrigan.
|
||||
|
||||
#### 4.2.2 Mastodon
|
||||
### 3.3 Interacting with Announcements
|
||||
|
||||
- Account: @naomi_lgbt@mastodon.social
|
||||
- Content:
|
||||
- Similar to Twitter
|
||||
- Greater focus on personal activities
|
||||
All of our announcements are read-only, but you can discuss them in any of our platforms mentioned in Section 1!
|
||||
|
||||
### 4.3 Interacting with Announcements
|
||||
### 3.6 Historical Announcements
|
||||
|
||||
- Reddit: The board is read-only. For questions or discussions about announcements, please use our Discord server or other interactive platforms.
|
||||
- Twitter and Mastodon: You can reply to posts or @mention us with questions or comments. We encourage community engagement on these platforms.
|
||||
All announcements on our board are archived and remain accessible for future reference.
|
||||
|
||||
### 4.4 Best Practices for Staying Informed
|
||||
## 4. Professional Engagement and Portfolio
|
||||
|
||||
- Subscribe to Multiple Channels: Each platform may have slightly different content. Following multiple channels ensures you don't miss any important updates.
|
||||
- Enable Notifications: Consider enabling notifications for critical updates on your preferred platform.
|
||||
- Regular Check-ins: If you prefer not to use notifications, we recommend checking these channels regularly, especially before starting work on or with our projects.
|
||||
- Cross-Reference: Major announcements will typically be posted across all platforms. If you see something important on one channel, you can cross-reference it on others for any additional details.
|
||||
|
||||
### 4.5 Emergency or Critical Updates
|
||||
|
||||
For time-sensitive or critical announcements:
|
||||
|
||||
- We will use all available channels to ensure maximum reach.
|
||||
- Such announcements will be clearly marked as urgent or critical.
|
||||
- We may use additional notification methods (e.g., email for registered users) for extremely critical updates.
|
||||
|
||||
### 4.6 Historical Announcements
|
||||
|
||||
- All announcements on our Reddit board are archived and remain accessible for future reference.
|
||||
- While social media posts may have limited visibility over time, all major announcements will be permanently available on Reddit.
|
||||
|
||||
## 5. Professional Engagement and Portfolio
|
||||
|
||||
### 5.1 LinkedIn Profile
|
||||
### 4.1 LinkedIn Profile
|
||||
|
||||
LinkedIn serves as our primary professional networking platform.
|
||||
|
||||
@ -228,11 +179,11 @@ LinkedIn serves as our primary professional networking platform.
|
||||
- Professional collaborators
|
||||
- Industry peers
|
||||
|
||||
#### 5.1.1 Connecting on LinkedIn
|
||||
#### 4.1.1 Connecting on LinkedIn
|
||||
|
||||
When sending a connection request, please include a brief message explaining your interest. We typically respond to LinkedIn messages within 2-3 business days.
|
||||
|
||||
### 5.2 Peerlist Profile
|
||||
### 4.2 Peerlist Profile
|
||||
|
||||
As an alternative to LinkedIn, we maintain a presence on Peerlist, a platform focused on tech professionals.
|
||||
|
||||
@ -246,11 +197,11 @@ As an alternative to LinkedIn, we maintain a presence on Peerlist, a platform fo
|
||||
- Fellow developers and engineers
|
||||
- Open-source collaborators
|
||||
|
||||
#### 5.2.1 Engaging on Peerlist
|
||||
#### 4.2.1 Engaging on Peerlist
|
||||
|
||||
Feel free to explore our projects and contributions on Peerlist. You can leave comments or questions on specific items in our portfolio.
|
||||
|
||||
### 5.3 Professional Inquiries
|
||||
### 4.3 Professional Inquiries
|
||||
|
||||
When reaching out for professional reasons, please consider the following:
|
||||
|
||||
@ -258,27 +209,23 @@ When reaching out for professional reasons, please consider the following:
|
||||
- Relevant Background: Provide brief context about yourself or your company.
|
||||
- Specific Questions: If you have particular queries, include them in your initial message.
|
||||
|
||||
### 5.4 Services
|
||||
### 4.4 Services
|
||||
|
||||
For details about our services and past work, visit our portfolio: https://nhcarrigan.com
|
||||
If you're interested in hiring us to perform some work for you, fill out the form at https://forms.nhcarrigan.com/form/XRlQjeu8CbMrTA-v0IPOxlUPEPitLKXTWg70UUCIORA.
|
||||
|
||||
### 5.5 Speaking Engagements and Events
|
||||
### 4.5 Speaking Engagements and Events
|
||||
|
||||
If you're interested in having us speak at your event or contribute to your publication:
|
||||
If you're interested in having us speak at your event or contribute to your publication, fill out the form at https://forms.nhcarrigan.com/form/Xqap3Q8hazzJd4Rrp9OOs9ip8Pa7C9zOVThlyFoPCbU.
|
||||
|
||||
- Check our LinkedIn or Peerlist profiles for recent talks or articles.
|
||||
- Reach out with specific details about your event or publication.
|
||||
- Provide information about the audience, topic, and any other relevant details.
|
||||
|
||||
### 5.6 Keeping Professional Connections Updated
|
||||
### 4.6 Keeping Professional Connections Updated
|
||||
|
||||
We regularly update our professional profiles with new projects, skills, and achievements. Follow us on these platforms to stay informed about our professional journey and potential opportunities for collaboration.
|
||||
|
||||
## 6. One-on-One Sessions
|
||||
## 5. One-on-One Sessions
|
||||
|
||||
We offer personalized, one-on-one sessions to cater to various needs, from casual conversations to in-depth consultations. Book your session through our Topmate profile.
|
||||
|
||||
### 6.1 Coffee Chat
|
||||
### 5.1 Coffee Chat - $50
|
||||
|
||||
A casual, informal conversation to connect and share ideas.
|
||||
|
||||
@ -292,7 +239,7 @@ A casual, informal conversation to connect and share ideas.
|
||||
- Professionals seeking to expand their network
|
||||
- Anyone interested in a friendly chat about tech and open source
|
||||
|
||||
### 6.2 Consulting Session
|
||||
### 5.2 Consulting Session - $100
|
||||
|
||||
A focused, one-on-one session to discuss potential new projects and align our services with your needs.
|
||||
|
||||
@ -306,7 +253,7 @@ A focused, one-on-one session to discuss potential new projects and align our se
|
||||
- Project managers seeking technical guidance
|
||||
- Startups needing expert input on their tech stack
|
||||
|
||||
### 6.3 Mentorship Session
|
||||
### 5.3 Mentorship Session - $200
|
||||
|
||||
An in-depth, personalized session focused on long-term professional growth and skill development.
|
||||
|
||||
@ -320,30 +267,28 @@ An in-depth, personalized session focused on long-term professional growth and s
|
||||
- Professionals looking to transition into tech
|
||||
- Anyone seeking structured, long-term professional development
|
||||
|
||||
### 6.4 How to Book a Session:
|
||||
### 5.4 How to Book a Session:
|
||||
|
||||
- Visit one of:
|
||||
- Our Topmate profile: https://topmate.io/nhcarrigan
|
||||
- Our Fiverr profile: https://www.fiverr.com/nhcarrigan
|
||||
- Select the type of session you need (Coffee Chat, Consulting, or Mentorship)
|
||||
- Select an available time slot
|
||||
- Complete the booking process and payment
|
||||
- Complete the [meeting request form](https://forms.nhcarrigan.com/form/uUKZiJSDm6847iDOlpZkD5QF7cAjoTbTm0F4T0EdW0I)
|
||||
- Wait for an email to schedule a time
|
||||
- Once a time is agreed upon, you will receive an invoice via email.
|
||||
- The invoice MUST be paid at least 24 hours prior to your session.
|
||||
|
||||
### 6.5 Preparing for Your Session:
|
||||
### 5.5 Preparing for Your Session:
|
||||
|
||||
- Coffee Chat: Come with topics you'd like to discuss or questions about the industry
|
||||
- Consulting: Prepare a clear description of your problem or project, and any relevant code or documentation
|
||||
- Mentorship: Outline your career goals and areas where you'd like to improve
|
||||
|
||||
### 6.6 Additional Information:
|
||||
### 5.6 Additional Information:
|
||||
|
||||
- All sessions are conducted virtually via a video call in our Discord server.
|
||||
- All sessions are conducted virtually via a video call over Zoom or Google Meet.
|
||||
- Payment is required at the time of booking
|
||||
- Rescheduling is possible with at least 24 hours notice
|
||||
|
||||
For any questions about these sessions or to discuss a different type of engagement, please reach out through our preferred contact methods listed in previous sections.
|
||||
|
||||
## 7. Email Communication
|
||||
## 6. Email Communication
|
||||
|
||||
:::caution
|
||||
Email communication is considered a paid service and will be invoiced at $25 per email we receive.
|
||||
@ -351,7 +296,7 @@ Email communication is considered a paid service and will be invoiced at $25 per
|
||||
|
||||
We offer several email addresses for specific types of inquiries. Please use the appropriate email address to ensure your message reaches the right team and receives the most efficient response.
|
||||
|
||||
### 7.1 General Inquiries
|
||||
### 6.1 General Inquiries
|
||||
|
||||
- Email: contact@nhcarrigan.com
|
||||
- Use for:
|
||||
@ -360,7 +305,7 @@ We offer several email addresses for specific types of inquiries. Please use the
|
||||
- Media or press inquiries
|
||||
- Any queries that don't fit other categories
|
||||
|
||||
### 7.2 Billing and Financial Matters
|
||||
### 6.2 Billing and Financial Matters
|
||||
|
||||
- Email: billing@nhcarrigan.com
|
||||
- Use for:
|
||||
@ -369,7 +314,7 @@ We offer several email addresses for specific types of inquiries. Please use the
|
||||
- Refund requests
|
||||
- Updating billing information
|
||||
|
||||
### 7.3 Technical Support
|
||||
### 6.3 Technical Support
|
||||
|
||||
- Email: support@nhcarrigan.com
|
||||
- Use for:
|
||||
@ -377,7 +322,7 @@ We offer several email addresses for specific types of inquiries. Please use the
|
||||
- Reporting bugs or technical issues
|
||||
- Documentation clarifications
|
||||
|
||||
### 7.4 Privacy Concerns
|
||||
### 6.4 Privacy Concerns
|
||||
|
||||
- Email: privacy@nhcarrigan.com
|
||||
- Use for:
|
||||
@ -386,7 +331,7 @@ We offer several email addresses for specific types of inquiries. Please use the
|
||||
- Reporting potential privacy breaches
|
||||
- Opting out of data collection (where applicable)
|
||||
|
||||
### 7.5 Security Matters
|
||||
### 6.5 Security Matters
|
||||
|
||||
- Email: security@nhcarrigan.com
|
||||
- Use for:
|
||||
@ -394,7 +339,7 @@ We offer several email addresses for specific types of inquiries. Please use the
|
||||
- Questions about our security practices
|
||||
- Concerns about potential security breaches
|
||||
|
||||
### 7.6 Legal Inquiries
|
||||
### 6.6 Legal Inquiries
|
||||
|
||||
- Email: legal@nhcarrigan.com
|
||||
- Use for:
|
||||
@ -403,7 +348,7 @@ We offer several email addresses for specific types of inquiries. Please use the
|
||||
- Requests for legal documentation
|
||||
- Formal notices or communications
|
||||
|
||||
### 7.7 Feedback and Suggestions
|
||||
### 6.7 Feedback and Suggestions
|
||||
|
||||
- Email: feedback@nhcarrigan.com
|
||||
- Use for:
|
||||
@ -412,7 +357,51 @@ We offer several email addresses for specific types of inquiries. Please use the
|
||||
- Sharing your experience with our services
|
||||
- Offering ideas for future developments
|
||||
|
||||
### 7.8 Email Communication Guidelines
|
||||
### 6.8 Press/Media Inquiries
|
||||
|
||||
- Email: press@nhcarrigan.com
|
||||
- Use for:
|
||||
- Requesting comment regarding news
|
||||
- Scheduling interviews for your media outlet
|
||||
- Attribution requests in academic articles
|
||||
|
||||
### 6.9 Event Requests
|
||||
|
||||
- Email: events@nhcarrigan.com
|
||||
- Use for:
|
||||
- Requesting our appearance at your event
|
||||
- Speaking engagement opportunities
|
||||
- Workshop or training session requests
|
||||
- Event sponsorship inquiries
|
||||
|
||||
### 6.10 Marketing Inquiries
|
||||
|
||||
- Email: marketing@nhcarrigan.com
|
||||
- Use for:
|
||||
- Marketing collaboration proposals
|
||||
- Brand partnership opportunities
|
||||
- Advertising inquiries
|
||||
- Content licensing requests
|
||||
|
||||
### 6.11 Career Information
|
||||
|
||||
- Email: careers@nhcarrigan.com
|
||||
- Use for:
|
||||
- Sending your resume to inquire about opportunities to work with us
|
||||
- Questions about open positions
|
||||
- Inquiries
|
||||
- Following up on job applications
|
||||
|
||||
### 6.12 Partnerships
|
||||
|
||||
- Email: partners@nhcarrigan.com
|
||||
- Use for:
|
||||
- Requesting a collaboration between our organisation and yours
|
||||
- Sponsorship opportunities for our work
|
||||
- Brand ambassador programmes
|
||||
- Product placement or sponsored content inquiries
|
||||
|
||||
### 6.13 Email Communication Guidelines
|
||||
|
||||
- Subject Line: Please use a clear, concise subject line that summarizes your inquiry.
|
||||
- Content: Provide all relevant details in your initial email to expedite the response process.
|
||||
@ -420,21 +409,22 @@ We offer several email addresses for specific types of inquiries. Please use the
|
||||
- Response Time: We aim to respond to all emails within 2 business days. Complex inquiries may require additional time.
|
||||
- Follow-ups: If you haven't received a response after 3 business days, feel free to send a polite follow-up.
|
||||
|
||||
### 7.9 Email Privacy and Security
|
||||
### 6.14 Email Privacy and Security
|
||||
|
||||
All email communications are treated as confidential.
|
||||
|
||||
We do not share your email address or the content of your messages with third parties unless:
|
||||
|
||||
- Required by law; OR
|
||||
- As part of a public warning related to a violation of our Code of Conduct
|
||||
|
||||
### 7.10 Spam and Unsolicited Emails
|
||||
### 6.15 Spam and Unsolicited Emails
|
||||
|
||||
We have a strict no-spam policy. If you receive any unsolicited emails claiming to be from us, please report them to security@nhcarrigan.com.
|
||||
|
||||
By using the appropriate email address for your inquiry, you help us provide you with the most efficient and accurate response possible. If you're unsure which email to use, feel free to send your inquiry to contact@nhcarrigan.com, and we'll direct it to the appropriate team.
|
||||
|
||||
### 7.11 Acceptable Use and Consequences
|
||||
### 6.16 Acceptable Use and Consequences
|
||||
|
||||
We are committed to maintaining a respectful and productive communication environment. To ensure this:
|
||||
|
||||
@ -453,59 +443,57 @@ We reserve the right to report serious abuses to relevant authorities if necessa
|
||||
|
||||
By communicating with us via email, you agree to adhere to these guidelines and understand the consequences of misuse.
|
||||
|
||||
## 8. Direct Messages
|
||||
## 7. Direct Messages
|
||||
|
||||
:::caution
|
||||
Direct messages (DMs) are considered a paid service and will be invoiced at $25 per message we receive.
|
||||
:::
|
||||
|
||||
### 8.1 Direct Message Policy
|
||||
### 7.1 Direct Message Policy
|
||||
|
||||
We offer direct messaging as a premium, personalized communication channel. However, to manage our time effectively and ensure the highest quality of service, we have implemented the following policy for direct messages:
|
||||
|
||||
- Each direct message received will be invoiced at $25.
|
||||
- This applies to all platforms where direct messaging is available, including but not limited to:
|
||||
- Discord
|
||||
- Twitter
|
||||
- LinkedIn
|
||||
- Any other social media or communication platforms
|
||||
- This applies to all platforms where direct messaging is available.
|
||||
|
||||
### 8.2 Purpose and Use
|
||||
### 7.2 Purpose and Use
|
||||
|
||||
Direct messages should be used for:
|
||||
|
||||
- Urgent matters that cannot be addressed through public channels
|
||||
- Sensitive information that shouldn't be shared publicly
|
||||
- Personalized support or consultation requests
|
||||
|
||||
### 8.3 Invoicing and Payment
|
||||
### 7.3 Invoicing and Payment
|
||||
|
||||
- An invoice will be generated for each direct message received.
|
||||
- Payment is required before a response will be provided.
|
||||
- Invoices will be sent to you via the direct message channel on the platform where the direct message was received.
|
||||
|
||||
### 8.4 Response Time
|
||||
### 7.4 Response Time
|
||||
|
||||
- Once payment is received, we aim to respond to direct messages within 1-2 business days.
|
||||
- Complex inquiries may require additional time, which will be communicated to you.
|
||||
|
||||
### 8.5 Refund Policy
|
||||
### 7.5 Refund Policy
|
||||
|
||||
- Due to the immediate nature of the service, refunds for direct messages are not typically offered.
|
||||
- In exceptional circumstances, refund requests will be considered on a case-by-case basis.
|
||||
|
||||
### 8.6 Appropriate Use
|
||||
### 7.6 Appropriate Use
|
||||
|
||||
- Direct messages should be used responsibly and for legitimate purposes only.
|
||||
- Abusive, harassing, or spam messages will not be tolerated and may result in blocking or reporting to the platform.
|
||||
|
||||
### 8.7 Alternatives
|
||||
### 7.7 Alternatives
|
||||
|
||||
We encourage users to consider the following alternatives before sending a direct message:
|
||||
|
||||
- Use our public support channels for general inquiries (see Section 1.1)
|
||||
- Check our FAQ or documentation for commonly asked questions
|
||||
- Post in our community forums for non-urgent matters
|
||||
|
||||
### 8.8 Consent and Acknowledgment
|
||||
### 7.8 Consent and Acknowledgment
|
||||
|
||||
By sending a direct message, you acknowledge that you have read and agreed to this policy, including the fee structure and invoicing process.
|
||||
|
||||
|
@ -20,31 +20,9 @@ We are passionate about creating and maintaining free-to-use projects and provid
|
||||
|
||||
## 3. Ways to Support
|
||||
|
||||
We offer several platforms for monthly donations, allowing you to choose the one that works best for you:
|
||||
You can make a $5 monthly donation via https://buy.stripe.com/cN24iTfqu1j6b3afZ2
|
||||
|
||||
### 3.1 Discord
|
||||
- Join our community and support us directly
|
||||
- Link: [https://chat.naomi.lgbt](https://chat.naomi.lgbt)
|
||||
|
||||
### 3.2 Ko-Fi
|
||||
- Perfect for one-time or recurring donations
|
||||
- Link: [https://ko-fi.com/nhcarrigan](https://ko-fi.com/nhcarrigan)
|
||||
|
||||
### 3.3 Patreon
|
||||
- For those who prefer tier-based support
|
||||
- Link: [https://www.patreon.com/nhcarrigan](https://www.patreon.com/nhcarrigan)
|
||||
|
||||
### 3.4 GitHub Sponsors
|
||||
- Support us directly on the platform where we contribute
|
||||
- Link: [https://github.com/sponsors/naomi-lgbt](https://github.com/sponsors/naomi-lgbt)
|
||||
|
||||
### 3.5 Topmate
|
||||
- One-off donations through our meeting booking platform
|
||||
- Link: [https://topmate.io/nhcarrigan/1294986](https://topmate.io/nhcarrigan/1294986)
|
||||
|
||||
### 3.6 Gumroad
|
||||
- Subscription access directly through a booking platform
|
||||
- Link: [https://nhcarrigan.gumroad.com/l/donate](https://nhcarrigan.gumroad.com/l/donate)
|
||||
Or, if you'd like to make a one-off donation: https://donate.stripe.com/8wMcPp1zE8Ly2wEcMR
|
||||
|
||||
## 4. Other Ways to Help
|
||||
|
||||
@ -60,7 +38,6 @@ For any questions about donations or to discuss other support options, please co
|
||||
|
||||
## 6. Perks
|
||||
|
||||
Once you have donated, make sure to join our [Discord community](https://chat.nhcarrigan.com)! In there, you can open a ticket where we'll confirm you are the user who made the donation. Upon confirmation, you'll receive:
|
||||
Once you have donated, make sure to join our [community](https://forum.nhcarrigan.com)! Once there, DM Naomi to request access to our special supporters subforum!
|
||||
|
||||
- A permanent special role recognising your support
|
||||
- Access to our [private development notes](https://notes.nhcarrigan.com), which gives you a sneak peek into our roadmap and future plans
|
||||
You can also request access to our [private development notes](https://notes.nhcarrigan.com), which gives you a sneak peek into our roadmap and future plans. You'll need to provide an email address so we can add you to the access list.
|
||||
|
@ -25,8 +25,6 @@ For those with a well-defined product idea or seeking a quick review of their co
|
||||
- Duration: 15 minutes
|
||||
- Outcome: Rapid insights and direction for your project
|
||||
|
||||
Book via [Topmate](https://topmate.io/nhcarrigan/913917), [Gumroad](https://nhcarrigan.gumroad.com/l/chat), [Fiverr](https://www.fiverr.com/nhcarrigan/schedule-a-30-minute-one-on-one-with-you-to-discuss-your-consulting-needs), [Patreon](https://www.patreon.com/nhcarrigan/shop/quick-sync-622924), [Ko-fi](https://ko-fi.com/s/8ff29882b1), or directly through [Discord](https://discord.com/channels/1146133490933436476/shop/1303095252995014767).
|
||||
|
||||
### 2.2. In-Depth Consultation (30 minutes)
|
||||
|
||||
For more complex, long-term, or in-depth projects, we recommend booking an in-depth consultation.
|
||||
@ -35,8 +33,6 @@ For more complex, long-term, or in-depth projects, we recommend booking an in-de
|
||||
- Duration: 30 minutes
|
||||
- Outcome: Comprehensive project assessment and tailored recommendations
|
||||
|
||||
Book via [Topmate](https://topmate.io/nhcarrigan/913920), [Gumroad](https://nhcarrigan.gumroad.com/l/consulting), [Fiverr](https://www.fiverr.com/nhcarrigan/schedule-a-30-minute-one-on-one-with-you-to-discuss-your-consulting-needs), [Patreon](https://www.patreon.com/nhcarrigan/shop/consulting-session-622928), [Ko-fi](https://ko-fi.com/s/542dedd6e4), or directly through [Discord](https://discord.com/channels/1146133490933436476/shop/1235463041613824040).
|
||||
|
||||
### 2.3. Mentorship Session (60 minutes)
|
||||
|
||||
:::tip
|
||||
@ -49,8 +45,6 @@ For those seeking personalized guidance and skill development, we offer a full m
|
||||
- Duration: 60 minutes
|
||||
- Outcome: Personalized learning path, hands-on projects, and ongoing support
|
||||
|
||||
Book via [Topmate](https://topmate.io/nhcarrigan/913921), [Gumroad](https://nhcarrigan.gumroad.com/l/mentorship), [Fiverr](https://www.fiverr.com/nhcarrigan/schedule-a-30-minute-one-on-one-with-you-to-discuss-your-consulting-needs), [Patreon](https://www.patreon.com/nhcarrigan/shop/mentorship-session-622930), [Ko-fi](https://ko-fi.com/s/4c6c4d3e0d), or directly through [Discord](https://discord.com/channels/1146133490933436476/shop/1303095415935209583)
|
||||
|
||||
## 3. Why Choose Us?
|
||||
|
||||
- **Expertise**: Years of experience in development and community management
|
||||
@ -60,8 +54,6 @@ Book via [Topmate](https://topmate.io/nhcarrigan/913921), [Gumroad](https://nhca
|
||||
|
||||
## 4. Ready to Get Started?
|
||||
|
||||
1. For a quick discussion: [Book a 15-minute sync](https://topmate.io/nhcarrigan/913917)
|
||||
2. For in-depth consultations: [Schedule a 30-minute slot](https://topmate.io/nhcarrigan/913920)
|
||||
3. For ongoing mentorship: [Explore our mentorship package](https://topmate.io/nhcarrigan/913932)
|
||||
Submit a [commission request](https://forms.nhcarrigan.com/form/XRlQjeu8CbMrTA-v0IPOxlUPEPitLKXTWg70UUCIORA)!
|
||||
|
||||
Not sure which option is right for you? Feel free to contact us with any questions. We're excited to explore how we can help bring your ideas to life and contribute to your success!
|
||||
|
@ -10,14 +10,7 @@ These Terms and Conditions (“Terms”) outline the Programme provided by NHCar
|
||||
|
||||
### 1.1. Enrolment
|
||||
|
||||
You may enrol in the Programme via one of the following platforms:
|
||||
|
||||
- [Gumroad](https://nhcarrigan.gumroad.com/l/programme)
|
||||
- [Topmate](https://topmate.io/nhcarrigan/958795)
|
||||
- [Fiverr](https://www.fiverr.com/nhcarrigan/grant-you-access-to-our-mentorship-programme)
|
||||
- [Discord](https://chat.nhcarrigan.com)
|
||||
- [Patreon](https://patreon.com/nhcarrigan)
|
||||
- [Ko-fi](https://ko-fi.com/nhcarrigan)
|
||||
To enrol in the Programme, [fill out the application](https://forms.nhcarrigan.com/form/gNv4NYZmdiMWpkUcnknII2yYCvnYNGAmabG5O5He9Mo).
|
||||
|
||||
## 2. Programme Services
|
||||
|
||||
|
@ -20,13 +20,13 @@ Prior to submitting an appeal, please ensure you have the following information
|
||||
4. A clear and concise explanation of why you believe the moderation decision was erroneous or disproportionate.
|
||||
5. A statement detailing your motivations for seeking reinstatement and the potential positive contributions you intend to make to our community.
|
||||
|
||||
Please note that incomplete or inadequately prepared appeals may be summarily dismissed. You can [find your sanction in our logs](https://logs.nhcarrigan.com) to review.
|
||||
Please note that incomplete or inadequately prepared appeals may be summarily dismissed. You can [find your sanction in our logs](https://moderation.nhcarrigan.com) to review.
|
||||
|
||||
## 2. Appeal Submission Process
|
||||
|
||||
To submit your appeal, please complete the form available at the following link:
|
||||
|
||||
[Submit a Sanction Appeal](https://nhcarrigan.com/appeal)
|
||||
[Submit a Sanction Appeal](https://forms.nhcarrigan.com/form/l3PC15yalSWjdZASTQvGo22q_uj_7OtXAhZdcW35ev8)
|
||||
|
||||
## 3. Important Disclaimers
|
||||
|
||||
|
@ -172,7 +172,7 @@ If you encounter any issues during setup:
|
||||
2. Search for similar issues in the project's issue tracker.
|
||||
3. If the problem persists, open a new issue with detailed information about the problem and steps to reproduce it.
|
||||
|
||||
You can also reach out to us in our Discord server: https://chat.nhcarrigan.com
|
||||
You can also reach out to us on our forum: https://forum.nhcarrigan.com
|
||||
|
||||
## 4. Claiming an Issue
|
||||
|
||||
@ -357,7 +357,7 @@ Before submitting a pull request:
|
||||
1. Ensure all tests pass.
|
||||
1. Review your changes and commit history.
|
||||
|
||||
If you're unsure about any part of the process or need help, don't hesitate to ask in our [chat server](https://chat.nhcarrigan.com). Our community is here to support you!
|
||||
If you're unsure about any part of the process or need help, don't hesitate to ask in our [forum](https://forum.nhcarrigan.com). Our community is here to support you!
|
||||
|
||||
## 6. Submitting a Pull Request
|
||||
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -8,7 +8,7 @@ We use very specific labels to help categorise our issues. This page explains wh
|
||||
|
||||
These are the most important. These labels indicate who is encouraged to make a pull request to resolve the issue.
|
||||
|
||||
### 1.1. `good first issue`
|
||||
### 1.1. `contribute: good first issue`
|
||||
|
||||
#### 1.1.1. Purpose
|
||||
|
||||
@ -22,7 +22,7 @@ Does not require prior knowledge of the codebase. Issues with this label should
|
||||
|
||||
Contributors are responsible for ensuring their work complies with the project's licensing terms and contribution guidelines.
|
||||
|
||||
### 1.2. `help wanted`
|
||||
### 1.2. `contribute: help wanted`
|
||||
|
||||
#### 1.2.1. Purpose
|
||||
|
||||
@ -36,7 +36,7 @@ Typically assumes prior experience with the codebase. As such, issues may not in
|
||||
|
||||
Contributors should review and adhere to the project's contribution guidelines and code of conduct before submitting work on these issues.
|
||||
|
||||
### 1.3. `🔒 staff only`
|
||||
### 1.3. `contribute: staff only`
|
||||
|
||||
#### 1.3.1. Purpose
|
||||
|
||||
@ -58,7 +58,7 @@ Labels are assigned based on the project maintainers' best judgment but may not
|
||||
|
||||
These labels indicate the scope of the work required to resolve the issue.
|
||||
|
||||
### 2.1. `💻 aspect: code`
|
||||
### 2.1. `aspect: code`
|
||||
|
||||
#### 2.1.1. Purpose
|
||||
|
||||
@ -72,7 +72,7 @@ Involves direct modification to the project's source code. Familiarity with the
|
||||
|
||||
Contributors must ensure their code changes comply with the project's coding standards, license terms, and any applicable software patents or copyrights.
|
||||
|
||||
### 2.2. `🤖 aspect: dx`
|
||||
### 2.2. `aspect: dx`
|
||||
|
||||
#### 2.2.1. Purpose
|
||||
|
||||
@ -86,7 +86,7 @@ May include changes to automated tests, development dependencies, build processe
|
||||
|
||||
Changes to tooling or dependencies must be compatible with the project's overall licensing strategy and not introduce conflicts with existing terms.
|
||||
|
||||
### 2.3. `🕹 aspect: interface`
|
||||
### 2.3. `aspect: interface`
|
||||
|
||||
#### 2.3.1. Purpose
|
||||
|
||||
@ -100,7 +100,7 @@ May require changes in the code, particularly in front-end components. Can inclu
|
||||
|
||||
Contributors must ensure they have the necessary rights to any visual assets introduced or modified. Changes should comply with accessibility standards and regulations where applicable.
|
||||
|
||||
### 2.4. `📄 aspect: text`
|
||||
### 2.4. `aspect: text`
|
||||
|
||||
#### 2.4.1. Purpose
|
||||
|
||||
@ -122,7 +122,7 @@ Aspect labels are assigned based on the primary focus of the issue but may not e
|
||||
|
||||
These labels indicate the primary objective of the issue, reflecting our project's modular approach. They help contributors understand the nature and scope of the changes they'll be making.
|
||||
|
||||
### 3.1. `⭐ goal: addition`
|
||||
### 3.1. `goal: addition`
|
||||
|
||||
#### 3.1.1. Purpose
|
||||
|
||||
@ -136,7 +136,7 @@ Typically involves creating new code files. Understanding of how different modul
|
||||
|
||||
Contributors must ensure that new features do not infringe on existing patents or copyrights. New code should be compatible with the project's existing license. If introducing third-party libraries or dependencies, their licenses must be compatible with the project's license.
|
||||
|
||||
### 3.2. `🛠 goal: fix`
|
||||
### 3.2. `goal: fix`
|
||||
|
||||
#### 3.2.1. Purpose
|
||||
|
||||
@ -150,7 +150,7 @@ Typically involves editing code within existing files. Scope should be kept to t
|
||||
|
||||
Bug fixes should not introduce new legal issues or licensing conflicts. Contributors should document the nature of the bug and the fix for future reference and potential legal compliance (e.g., security vulnerabilities).
|
||||
|
||||
### 3.3. `✨ goal: improvement`
|
||||
### 3.3. `goal: improvement`
|
||||
|
||||
#### 3.3.1. Purpose
|
||||
|
||||
@ -172,7 +172,7 @@ While goal labels provide guidance on the nature of the task, the actual work re
|
||||
|
||||
Priority labels indicate the importance assigned to specific issues by the project maintainers. These labels help guide resource allocation and set expectations for resolution timeframes.
|
||||
|
||||
### 4.1. `🟥 priority: critical`
|
||||
### 4.1. `priority: critical`
|
||||
|
||||
#### 4.1.1. Purpose
|
||||
|
||||
@ -186,7 +186,7 @@ Require urgent resolution to restore project functionality. Experience with the
|
||||
|
||||
May involve security vulnerabilities or critical bugs that could lead to legal liabilities if not addressed promptly. Resolution of these issues may need to be reported to relevant stakeholders or authorities in certain cases (e.g., data protection regulators for security breaches).
|
||||
|
||||
### 4.2. `🟧 priority: high`
|
||||
### 4.2. `priority: high`
|
||||
|
||||
#### 4.2.1. Purpose
|
||||
|
||||
@ -200,7 +200,7 @@ Not critical for current project operation but blocking future progress. Require
|
||||
|
||||
May involve compliance deadlines or contractual obligations that need to be met. Could impact project timelines, potentially affecting agreements with stakeholders or clients.
|
||||
|
||||
### 4.3. `🟨 priority: medium`
|
||||
### 4.3. `priority: medium`
|
||||
|
||||
#### 4.3.1. Purpose
|
||||
|
||||
@ -214,7 +214,7 @@ Important for project improvement but not critical for current functionality. Sh
|
||||
|
||||
May involve improvements to user experience or accessibility, which could have legal implications if neglected long-term. Could relate to optimizations that affect performance guarantees or service level agreements.
|
||||
|
||||
### 4.4. `🟩 priority: low`
|
||||
### 4.4. `priority: low`
|
||||
|
||||
#### 4.4.1. Purpose
|
||||
|
||||
@ -228,7 +228,7 @@ Desirable improvements or minor issues that don't significantly impact project f
|
||||
|
||||
While not urgent, neglecting these issues over time could lead to technical debt or gradual degradation of project quality, potentially affecting long-term compliance or user satisfaction.
|
||||
|
||||
### 4.5. `🟪 priority: none`
|
||||
### 4.5. `priority: none`
|
||||
|
||||
#### 4.5.1. Purpose
|
||||
|
||||
@ -250,7 +250,7 @@ Priority labels reflect the project maintainers' current assessment and may be s
|
||||
|
||||
Status labels indicate the current stage of an issue in the project lifecycle. These labels help manage workflow and set expectations for contributors and users.
|
||||
|
||||
### 5.1. `🚦 status: awaiting triage`
|
||||
### 5.1. `status: awaiting triage`
|
||||
|
||||
#### 5.1.1. Purpose
|
||||
|
||||
@ -264,7 +264,7 @@ Should be applied to issues when they are opened.
|
||||
|
||||
Contributors should be aware that engaging with these issues is at their own discretion, as the project team has not yet evaluated them. Maintainers should establish a reasonable timeframe for initial triage to manage expectations and potential liability.
|
||||
|
||||
### 5.2. `🚧 status: blocked`
|
||||
### 5.2. `status: blocked`
|
||||
|
||||
#### 5.2.1. Purpose
|
||||
|
||||
@ -273,11 +273,12 @@ Indicates issues with a planned resolution that depend on the completion of anot
|
||||
#### 5.2.2. Characteristics
|
||||
|
||||
Not yet ready for work but expected to be addressed in the future.
|
||||
|
||||
#### 5.2.3. Expectations
|
||||
|
||||
Maintainers should clearly document dependencies to avoid potential conflicts or misunderstandings. Regular review of blocked issues is advisable to prevent indefinite delays that could impact project timelines or contractual obligations.
|
||||
|
||||
### 5.3. `⛔️ status: discarded`
|
||||
### 5.3. `status: discarded`
|
||||
|
||||
#### 5.3.1. Purpose
|
||||
|
||||
@ -291,7 +292,7 @@ Typically applied to feature requests that don't align with project goals.
|
||||
|
||||
Clearly communicate the rationale for discarding issues to manage user expectations and maintain transparency. Ensure that discarded issues don't conflict with any promised features or contractual obligations.
|
||||
|
||||
### 5.4. `🙅 status: discontinued`
|
||||
### 5.4. `status: discontinued`
|
||||
|
||||
#### 5.4.1. Purpose
|
||||
|
||||
@ -305,7 +306,7 @@ Indicates no new features will be added, but bug fixes and support continue.
|
||||
|
||||
Clearly communicate the project's maintenance status to manage user expectations and potential liability. Ensure that discontinuation doesn't breach any ongoing support agreements or licenses.
|
||||
|
||||
### 5.5. `🏷 status: label work required`
|
||||
### 5.5. `status: label work required`
|
||||
|
||||
#### 5.5.1. Purpose
|
||||
|
||||
@ -319,7 +320,7 @@ May have ongoing discussions but lack appropriate classification.
|
||||
|
||||
Proper labeling is crucial for efficient project management and may have implications for compliance tracking and reporting. Establish clear guidelines for labeling to ensure consistency and avoid potential misunderstandings.
|
||||
|
||||
### 5.6. `🏁 status: ready for dev`
|
||||
### 5.6. `status: ready for dev`
|
||||
|
||||
#### 5.6.1. Purpose
|
||||
|
||||
@ -333,7 +334,7 @@ May have an assigned contributor who has expressed interest.
|
||||
|
||||
Clearly communicate contribution guidelines and any legal requirements (e.g., Contributor Covenant) to potential contributors. Ensure that collaborative efforts are managed in compliance with project licenses and contributor agreements.
|
||||
|
||||
### 5.7. `🧹 status: ticket work required`
|
||||
### 5.7. `status: ticket work required`
|
||||
|
||||
#### 5.7.1. Purpose
|
||||
|
||||
@ -355,7 +356,7 @@ Status labels reflect the current assessment of the project team and may change
|
||||
|
||||
Conversation labels indicate that an issue has received initial maintainer attention but requires further discussion or information before proceeding. These labels help manage communication and ensure all necessary information is gathered before taking action.
|
||||
|
||||
### 6.1. `💬 talk: discussion`
|
||||
### 6.1. `talk: discussion`
|
||||
|
||||
#### 6.1.1. Purpose
|
||||
|
||||
@ -369,7 +370,7 @@ Ongoing dialogue between maintainers, contributors, and/or users. May involve de
|
||||
|
||||
Ensure discussions remain constructive and adhere to the project's code of conduct. Be cautious about making commitments or promises during discussions that could create legal obligations. Document key decisions and rationales to maintain transparency and provide a record for future reference.
|
||||
|
||||
### 6.2. `❓ talk: question`
|
||||
### 6.2. `talk: question`
|
||||
|
||||
#### 6.2.1. Purpose
|
||||
|
||||
@ -391,7 +392,7 @@ Conversation labels indicate ongoing dialogue and do not guarantee that an issue
|
||||
|
||||
Pull Request (PR) labels are used to indicate the current status of pull requests and guide contributors through the review and merge process.
|
||||
|
||||
### 7.1. `⚠️ pull: merge conflict`
|
||||
### 7.1. `pull: merge conflict`
|
||||
|
||||
#### 7.1.1. Purpose
|
||||
|
||||
@ -405,7 +406,7 @@ Conflicts need to be resolved before the PR can be reviewed or merged. May requi
|
||||
|
||||
Clearly communicate the responsibility for resolving conflicts (e.g., whether it's the contributor's or maintainer's role). Ensure that conflict resolution doesn't introduce unintended changes or legal issues (e.g., license conflicts).
|
||||
|
||||
### 7.2. `🔍 pull: ready for review`
|
||||
### 7.2. `pull: ready for review`
|
||||
|
||||
#### 7.2.1. Purpose
|
||||
|
||||
@ -419,7 +420,7 @@ PR has been submitted as complete and ready for evaluation. Maintainers should p
|
||||
|
||||
Ensure contributors understand that "ready for review" doesn't guarantee acceptance or merging. Maintain clear review criteria and communicate them to contributors.
|
||||
|
||||
### 7.3. `⏫ pull: requires update`
|
||||
### 7.3. `pull: requires update`
|
||||
|
||||
#### 7.3.1. Purpose
|
||||
|
||||
@ -439,7 +440,7 @@ The presence of these labels does not guarantee that a pull request will be merg
|
||||
|
||||
## 8. Continuous Improvement
|
||||
|
||||
We encourage all project participants to provide feedback on our labeling system. If you have suggestions for improvements or notice any inconsistencies, please reach out to us in our [chat server](https://chat.nhcarrigan.com).
|
||||
We encourage all project participants to provide feedback on our labeling system. If you have suggestions for improvements or notice any inconsistencies, please reach out to us in our [forums](https://forum.nhcarrigan.com).
|
||||
|
||||
## 9. Legal Notice
|
||||
|
||||
|
@ -164,7 +164,7 @@ If You distribute or make available Our Software to others, You are responsible
|
||||
|
||||
#### 2.1.4. Reporting Harmful Usage
|
||||
|
||||
If You become aware of any use of Our Software that violates this "Do No Harm" principle, You are encouraged to report it to Us immediately through Discord: https://chat.nhcarrigan.com
|
||||
If You become aware of any use of Our Software that violates this "Do No Harm" principle, You are encouraged to report it to Us immediately through our forums: https://forum.nhcarrigan.com
|
||||
|
||||
#### 2.1.5. Consequences of Violation
|
||||
|
||||
@ -209,7 +209,7 @@ We reserve the right to enforce the Code of Conduct at Our discretion. Enforceme
|
||||
|
||||
#### 2.2.7. Updates to Code of Conduct
|
||||
|
||||
Users are responsible for staying informed about any updates to Our Code of Conduct. Significant changes will be communicated through our Discord server: https://chat.nhcarrigan.com
|
||||
Users are responsible for staying informed about any updates to Our Code of Conduct.
|
||||
|
||||
### 2.3. Source Control
|
||||
|
||||
@ -1206,7 +1206,7 @@ Appeals must be submitted in writing and will be reviewed at Our discretion.
|
||||
|
||||
## 16. License Versions
|
||||
|
||||
Versioning of this license is managed through git. You may view the version history [in these commits](https://codeberg.org/nhcarrigan/docs/commits/branch/main/LICENSE.md).
|
||||
Versioning of this license is managed through git. You may view the version history [in these commits](https://git.nhcarrigan.com/nhcarrigan/docs/commits/branch/main/LICENSE.md).
|
||||
|
||||
### 16.1 Future License Changes
|
||||
|
||||
@ -1279,7 +1279,7 @@ Previous versions of the License will remain accessible in the commit history fo
|
||||
|
||||
## 17. Contact
|
||||
|
||||
If you have questions about this License, We may be reached in Our [chat server](https://chat.nhcarrigan.com).
|
||||
If you have questions about this License, We may be reached in Our [forum](https://forum.nhcarrigan.com).
|
||||
|
||||
### 17.1 Communication Channels
|
||||
|
||||
@ -1290,7 +1290,7 @@ Our chat server is the primary method for License-related inquiries.
|
||||
#### 17.1.2 Additional Contact Methods
|
||||
|
||||
- Email: `license@nhcarrigan.com`
|
||||
- Issue Tracker: https://codeberg.org/nhcarrigan/docs/issues
|
||||
- Issue Tracker: https://git.nhcarrigan.com/nhcarrigan/docs/issues
|
||||
|
||||
### 17.2 Response Times
|
||||
|
||||
|
@ -28,61 +28,13 @@ By accessing, using, or continuing to use our Services, you explicitly acknowled
|
||||
|
||||
The effective date of the current version of this policy will be clearly stated at the beginning of the document. Each revision will be numbered or dated for easy reference.
|
||||
|
||||
## 2. Error Logging and Transparency
|
||||
## 2. Data Collection, Documentation, and User Rights
|
||||
|
||||
### 2.1. Public Error Logging
|
||||
|
||||
In alignment with our commitment to open source principles, we maintain a policy of transparency regarding application errors and issues. All errors encountered in our Services are logged publicly in our Discord community.
|
||||
|
||||
### 2.2. Content of Error Logs
|
||||
|
||||
Error logs may include, but are not limited to:
|
||||
|
||||
- Timestamp of the error
|
||||
- Error type and description
|
||||
- Relevant application or service name
|
||||
- Non-personally identifiable technical details necessary for troubleshooting
|
||||
- General user actions that led to the error (without specific user identification)
|
||||
|
||||
### 2.3. Potentially Included Information
|
||||
|
||||
While we strive to minimize inclusion of personal or sensitive information, error logs may sometimes contain:
|
||||
|
||||
- User IDs or usernames (in hashed or partially redacted form)
|
||||
- IP addresses (in hashed or partially redacted form)
|
||||
- Device information
|
||||
- Other technical data relevant to the error
|
||||
|
||||
### 2.4. Access to Error Logs
|
||||
|
||||
We strongly recommend that all users join our Discord community prior to using our applications. This allows you to:
|
||||
|
||||
- Review the types of information being logged
|
||||
- Understand the frequency and nature of errors
|
||||
- Participate in discussions about bugs and improvements
|
||||
|
||||
### 2.5. Discord Community Access
|
||||
|
||||
To join our Discord community and access the error logs, please use the following link: https://chat.nhcarrigan.com
|
||||
|
||||
### 2.6. Opt-Out and Data Removal
|
||||
|
||||
If you have concerns about information appearing in error logs:
|
||||
|
||||
- You may opt-out of using our Services
|
||||
- You can contact us to request removal of specific log entries, subject to our data retention policies
|
||||
|
||||
### 2.7. Continuous Improvement
|
||||
|
||||
Public error logging helps us maintain transparency, quickly identify and resolve issues, and continually improve our Services. We appreciate our users' understanding and participation in this process.
|
||||
|
||||
## 3. Data Collection, Documentation, and User Rights
|
||||
|
||||
### 3.1. Data Collection Practices
|
||||
### 2.1. Data Collection Practices
|
||||
|
||||
We strive to collect only the data necessary for the proper functioning and improvement of our Services. However, the scope of data collection may change as our Services evolve.
|
||||
|
||||
### 3.2. Documentation Efforts
|
||||
### 2.2. Documentation Efforts
|
||||
|
||||
We make every effort to maintain accurate and up-to-date documentation regarding our data collection practices. This includes:
|
||||
|
||||
@ -90,7 +42,7 @@ We make every effort to maintain accurate and up-to-date documentation regarding
|
||||
- Timely updates to our privacy policy and related documentation
|
||||
- Clear communication about significant changes in data collection
|
||||
|
||||
### 3.3. Potential Undocumented Data Collection
|
||||
### 2.3. Potential Undocumented Data Collection
|
||||
|
||||
Despite our best efforts, it is possible that at any given time, an application or Service may collect data that is not explicitly documented. This may occur due to:
|
||||
|
||||
@ -98,13 +50,13 @@ Despite our best efforts, it is possible that at any given time, an application
|
||||
- Technical issues or bugs
|
||||
- Third-party integrations or dependencies
|
||||
|
||||
### 3.4. General Data Rights
|
||||
### 2.4. General Data Rights
|
||||
|
||||
Regardless of whether specific data collection is documented, users have the following rights:
|
||||
|
||||
#### 3.4.1. Right to Access:
|
||||
#### 2.4.1. Right to Access:
|
||||
|
||||
At any time, you may request a complete copy of your data stored by one of our applications. Requests must be done via our [support server](https://chat.nhcarrigan.com) from the Discord account the data belongs to. This ensures that a user cannot impersonate you and request your data. We may request additional identifying information, depending on the structure of the data collected by the application.
|
||||
At any time, you may request a complete copy of your data stored by one of our applications. Requests must be done via `privacy@nhcarrigan.com` from the email address the data belongs to. This ensures that a user cannot impersonate you and request your data. We may request additional identifying information, depending on the structure of the data collected by the application.
|
||||
|
||||
#### 3.4.2. Right to Rectification:
|
||||
|
||||
@ -112,7 +64,7 @@ You may request corrections to any inaccurate data we hold about you.
|
||||
|
||||
#### 3.4.3. Right to Erasure:
|
||||
|
||||
At any time, you may request complete removal of your stored data. Requests must be done via our [support server](https://chat.nhcarrigan.com) from the Discord account the data belongs to. This ensures that a user cannot impersonate you and request your data. We may request additional identifying information, depending on the structure of the data collected by the application.
|
||||
At any time, you may request complete removal of your stored data. Requests must be done via `privacy@nhcarrigan.com` from the email address the data belongs to. This ensures that a user cannot impersonate you and request your data. We may request additional identifying information, depending on the structure of the data collected by the application.
|
||||
|
||||
This will **not** opt you out of future data collection unless specifically requested. We reserve the right to refuse removal requests when the data are necessary for specific functionality of the app, in circumstances where removing your data would compromise the functionality for all users.
|
||||
|
||||
@ -130,7 +82,7 @@ You may request a copy of your data in a structured, commonly used, and machine-
|
||||
|
||||
To exercise any of these rights or to inquire about data we may hold:
|
||||
|
||||
- Contact us through our discord server: https://chat.nhcarrigan.com
|
||||
- Contact us through `privacy@nhcarrigan.com`.
|
||||
- Be prepared to verify your identity to protect the security of your information
|
||||
|
||||
### 3.6. Opting Out of Data Collection
|
||||
@ -238,9 +190,9 @@ We regularly review and update our data handling practices to ensure the highest
|
||||
|
||||
We value transparency and are committed to addressing any questions or concerns you may have regarding our privacy practices. There are several ways to reach us:
|
||||
|
||||
### 6.1. Discord Support Server
|
||||
### 6.1. Forum
|
||||
|
||||
For immediate assistance and community support, join our Discord server: https://chat.nhcarrigan.com
|
||||
For immediate assistance and community support, join our forum: https://forum.nhcarrigan.com
|
||||
|
||||
### 6.2. Email Contact
|
||||
|
||||
@ -279,7 +231,7 @@ If you are unable to use Discord or email, please visit our website for addition
|
||||
|
||||
### 6.8. Updates and Notifications
|
||||
|
||||
If you wish to receive updates about changes to our privacy policy or data practices, please join our Discord server: https://chat.nhcarrigan.com
|
||||
If you wish to receive updates about changes to our privacy policy or data practices, please bookmark this page.
|
||||
|
||||
### 6.9. Legal Inquiries
|
||||
|
||||
|
@ -20,8 +20,7 @@ This policy applies to all applications, services, and systems maintained by our
|
||||
|
||||
If you discover a security vulnerability within any of our applications or systems, please report it through one of the following secure channels:
|
||||
|
||||
1. Create a private ticket on our [support server](https://chat.nhcarrigan.com)
|
||||
2. Send an email to `security@nhcarrigan.com`
|
||||
1. Send an email to `security@nhcarrigan.com`
|
||||
|
||||
### 3.2 Public Disclosure Prohibition
|
||||
|
||||
|
@ -12,13 +12,11 @@ These entities directly store, manage, or handle our application data.
|
||||
|
||||
| Entity | Data Processed |
|
||||
| ------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| Anthropic | Any data provided to our AI-powered applications such as the AltGenerator Discord bot. |
|
||||
| DigitalOcean | Any data transmitted over the network to and from our applications. |
|
||||
| Discord | Any information related to usage logging and errors posted in our community. |
|
||||
| HubSpot | Data submitted to our Contact, Sales Inquiry, Sanction Appeals, Newsletter Sign-up, and Staff Application forms, as well as data transmitted via our embedded chat widgets. |
|
||||
| MongoDB | Any data provided to our applications when you interact with them. |
|
||||
| ProtonMail | Any information transmitted to and from our `nhcarrigan.com` email addresses. |
|
||||
| Stripe | Information provided during the identity and age verification processes necessary to access certain applications and community channels. |
|
||||
| Stripe | Information provided during the identity and age verification processes necessary to access certain applications and community channels, and payment information for invoices. |
|
||||
|
||||
### 1.2. Secondary Subprocessors
|
||||
|
||||
|
@ -1151,7 +1151,7 @@ Email: terms@nhcarrigan.com
|
||||
For other inquiries or concerns, you may also reach us through the following channels:
|
||||
|
||||
Email: contact@nhcarrigan.com
|
||||
Discord: https://chat.nhcarrigan.com
|
||||
Forum: https://forum.nhcarrigan.com
|
||||
|
||||
### 19.3 Business Hours
|
||||
|
||||
|
39
src/content/docs/misc/music.md
Normal file
39
src/content/docs/misc/music.md
Normal file
@ -0,0 +1,39 @@
|
||||
---
|
||||
title: Downloading and Editing Music
|
||||
---
|
||||
|
||||
This serves as our documentation for how we manage our local music libraries on Linux.
|
||||
|
||||
## Acquiring Music
|
||||
|
||||
You are welcome to use any method you wish to *LEGALLY* acquire music. We would never encourage the criminal act of piracy. But maybe you're an artist and you want to archive or back up your own music - in that case, here you go:
|
||||
|
||||
```bash
|
||||
yt-dlp -x --audio-format mp3 <url> --cookies-from-browser firefox
|
||||
```
|
||||
|
||||
Omit the `--cookies-from-browser firefox` if you do not need authentication (auth is required for age-restricted content, for example).
|
||||
|
||||
## Editing Metadata
|
||||
|
||||
The specific meta tags you may need to set will vary depending on the music software you use. We have confirmed that `TIT2` is read as the title and `TPE1` is read as the artist when using Amberol on Linux and Musicolet on Android. Using `-t` and `-a` might work.
|
||||
|
||||
```bash
|
||||
id3v2 "/path/to/song" --TIT2 "Song Title" --TPE1 "Song Artist"
|
||||
```
|
||||
|
||||
## Adding Cover Image
|
||||
|
||||
Download the image (we have confirmed JPEGs work) that you want to apply to the song, then run:
|
||||
|
||||
```bash
|
||||
eyeD3 --add-image="/path/to/img":FRONT_COVER "/path/to/mp3"
|
||||
```
|
||||
|
||||
## Copying to Android Locally
|
||||
|
||||
You'll need to replace your paths and your device ID to match your local setup, but:
|
||||
|
||||
```bash
|
||||
adb -s 192.168.12.105:5555 push music/* /storage/self/primary/Music
|
||||
```
|
@ -1,89 +0,0 @@
|
||||
---
|
||||
title: AltGenerator
|
||||
---
|
||||
|
||||
AltGenerator (hereinafter the "Application") is a wrapper around Anthropic's Claude model that allows you to sumbit an image to the LLM and receive descriptive alt-text.
|
||||
|
||||
## 1. User Documentation
|
||||
|
||||
:::caution[Note]
|
||||
We offer free access to this bot within [our Discord server](https://chat.nhcarrigan.com).
|
||||
|
||||
For the bot to respond to you in other servers, or via DMs, you will need to subscribe.
|
||||
:::
|
||||
|
||||
This section is for those interacting with a live instance of the Application.
|
||||
|
||||
To interact with the Application, you must send a message (in a server channel it can see and respond to, or in a direct message with the bot). The content of your message **must start with** a mention (or ping) of the bot.
|
||||
|
||||
If you are using the Application outside of our server, and have not subscribed, you will be met with a prompt to subscribe:
|
||||
|
||||

|
||||
|
||||
Otherwise, the bot will respond to your query. Note that the bot does NOT look at the text content of your message, only image attachments.
|
||||
|
||||

|
||||
|
||||
To cut down on costs and provide this service at an affordable rate to you, the Application does not track any conversation history. Each message you send is treated as an isolated query and receives a response independent of any prior interactions.
|
||||
|
||||
## 2. Technical Documentation
|
||||
|
||||
This section is for those interested in running their own instance of the Application.
|
||||
|
||||
In order to host your own instance of this application, you will need to complete a few steps.
|
||||
|
||||
### 2.1. Discord Application
|
||||
|
||||
First, you will need to go through the [Discord Developer Portal](https://discord.com/developers/applications) to set up a new Discord Bot account. The bot will not need any privileged intents.
|
||||
|
||||
Once you have the bot set up, save the token in 1password and update the `DISCORD_TOKEN` secret reference in `prod.env`.
|
||||
|
||||
You'll also need to set up a Discord webhook for debug logs. Save the URL in 1password and update the `DEBUG_HOOK` secret reference in `prod.env`.
|
||||
|
||||
### 2.2. Anthropic
|
||||
|
||||
You will need to register for an [Anthropic API account](https://console.anthropic.com). Note that this is NOT the same as a paid Claude account - they are independent services with independent billing.
|
||||
|
||||
Under the `Billing` tab, you'll need to load some credits. There is no free tier for this API.
|
||||
|
||||
Under the `API Keys` tab, generate an API key for your workspace. Save the key in 1password and update the `ANTHROPIC_TOKEN` secret reference in `prod.env`.
|
||||
|
||||
### 2.3. Monetisation
|
||||
|
||||
Whether you wish to enable monetisation or not, you'll want to update the logic in `src/index.ts` around line 239 to reflect the behaviour and values relevant to your instance.
|
||||
|
||||
For example, you may need to update the SKU in the button with the SKU for your application, or remove the entitlement logic entirely and offer the service for free.
|
||||
|
||||
### 2.4. Running the Application
|
||||
|
||||
Once you have the Application on a [configured server](/dev/servers), you'll need to run the following commands:
|
||||
|
||||
```bash
|
||||
pnpm install #install the dependencies
|
||||
pnpm build #compile the typescript into javascript
|
||||
OP_SERVICE_ACCOUNT_TOKEN=<key> pm2 start 'pnpm start' --name 'naomiai' #start the app as a PM2 process
|
||||
```
|
||||
|
||||
If you have configured everything correctly, you'll be all set!
|
||||
|
||||
## 3. Legal Documentation
|
||||
|
||||
This section is for expansions to our legal policies specific to the Application.
|
||||
|
||||
### 3.1. Privacy Policy
|
||||
|
||||
The Application does not use Discord's Message Content intent. This means that it cannot see the content of ANY message you send unless you explicitly ping the bot (or have DMed the bot directly).
|
||||
|
||||
We do not store any data related to the use of this Application.
|
||||
|
||||
The image files you consensually submit to the Application as part of normal usage are sent to Anthropic to generate the LLM response. Messages are sent anonymously, and not tied to your user account. However, the files may be processed in accordance with Anthropic's Terms and Privacy Policies.
|
||||
|
||||
Your UUID is logged in our support server, with the quantity and cost of tokens consumed in your interaction with the Application. No message content or other information is logged, and these data are solely used to track usage metrics and identify a need to adjust costs.
|
||||
|
||||
## 4. Contributing Documentation
|
||||
|
||||
:::note
|
||||
This section is coming soon!
|
||||
:::
|
||||
|
||||
This section is for documentation related to contributing to the Application's codebase.
|
@ -181,4 +181,4 @@ If you instead see a failed run with ESlint errors (not linter errors, but packa
|
||||
|
||||
Once that has passed successfully (including resolving any linter flags), you can proceed to running `pnpm test` to ensure the existing unit tests pass (and any tests you added to cover new plugins).
|
||||
|
||||
As always, feel free to reach out to us in [Discord](https://chat.nhcarrigan.com) if you have any questions!~
|
||||
As always, feel free to reach out to us on the [forum](https://forum.nhcarrigan.com) if you have any questions!~
|
||||
|
@ -1,89 +0,0 @@
|
||||
---
|
||||
title: NaomiAI
|
||||
---
|
||||
|
||||
NaomiAI, also known as Anthropic Bot, (hereinafter the "Application") is a wrapper around Anthropic's Claude model that allows you to ask questions to the LLM directly through Discord. The Application is designed to respond as if it was a magical girl.
|
||||
|
||||
## 1. User Documentation
|
||||
|
||||
:::caution[Note]
|
||||
We offer free access to this bot within [our Discord server](https://chat.nhcarrigan.com).
|
||||
|
||||
For the bot to respond to you in other servers, or via DMs, you will need to subscribe.
|
||||
:::
|
||||
|
||||
This section is for those interacting with a live instance of the Application.
|
||||
|
||||
To interact with the Application, you must send a message (in a server channel it can see and respond to, or in a direct message with the bot). The content of your message **must start with** a mention (or ping) of the bot.
|
||||
|
||||
If you are using the Application outside of our server, and have not subscribed, you will be met with a prompt to subscribe:
|
||||
|
||||

|
||||
|
||||
Otherwise, the bot will respond to your query:
|
||||
|
||||

|
||||
|
||||
To cut down on costs and provide this service at an affordable rate to you, the Application does not track any conversation history. Each message you send is treated as an isolated query and receives a response independent of any prior interactions.
|
||||
|
||||
## 2. Technical Documentation
|
||||
|
||||
This section is for those interested in running their own instance of the Application.
|
||||
|
||||
In order to host your own instance of this application, you will need to complete a few steps.
|
||||
|
||||
### 2.1. Discord Application
|
||||
|
||||
First, you will need to go through the [Discord Developer Portal](https://discord.com/developers/applications) to set up a new Discord Bot account. The bot will not need any privileged intents.
|
||||
|
||||
Once you have the bot set up, save the token in 1password and update the `DISCORD_TOKEN` secret reference in `prod.env`.
|
||||
|
||||
You'll also need to set up a Discord webhook for debug logs. Save the URL in 1password and update the `DEBUG_HOOK` secret reference in `prod.env`.
|
||||
|
||||
### 2.2. Anthropic
|
||||
|
||||
You will need to register for an [Anthropic API account](https://console.anthropic.com). Note that this is NOT the same as a paid Claude account - they are independent services with independent billing.
|
||||
|
||||
Under the `Billing` tab, you'll need to load some credits. There is no free tier for this API.
|
||||
|
||||
Under the `API Keys` tab, generate an API key for your workspace. Save the key in 1password and update the `ANTHROPIC_TOKEN` secret reference in `prod.env`.
|
||||
|
||||
### 2.3. Monetisation
|
||||
|
||||
Whether you wish to enable monetisation or not, you'll want to update the logic in `src/index.ts` around line 239 to reflect the behaviour and values relevant to your instance.
|
||||
|
||||
For example, you may need to update the SKU in the button with the SKU for your application, or remove the entitlement logic entirely and offer the service for free.
|
||||
|
||||
### 2.4. Running the Application
|
||||
|
||||
Once you have the Application on a [configured server](/dev/servers), you'll need to run the following commands:
|
||||
|
||||
```bash
|
||||
pnpm install #install the dependencies
|
||||
pnpm build #compile the typescript into javascript
|
||||
OP_SERVICE_ACCOUNT_TOKEN=<key> pm2 start 'pnpm start' --name 'naomiai' #start the app as a PM2 process
|
||||
```
|
||||
|
||||
If you have configured everything correctly, you'll be all set!
|
||||
|
||||
## 3. Legal Documentation
|
||||
|
||||
This section is for expansions to our legal policies specific to the Application.
|
||||
|
||||
### 3.1. Privacy Policy
|
||||
|
||||
The Application does not use Discord's Message Content intent. This means that it cannot see the content of ANY message you send unless you explicitly ping the bot (or have DMed the bot directly).
|
||||
|
||||
We do not store any data related to the use of this Application.
|
||||
|
||||
The messages you consensually submit to the Application as part of normal usage are sent to Anthropic to generate the LLM response. Messages are sent anonymously, and not tied to your user account. However, the content of the message may be processed in accordance with Anthropic's Terms and Privacy Policies.
|
||||
|
||||
Your UUID is logged in our support server, with the quantity and cost of tokens consumed in your interaction with the Application. No message content or other information is logged, and these data are solely used to track usage metrics and identify a need to adjust costs.
|
||||
|
||||
## 4. Contributing Documentation
|
||||
|
||||
:::note
|
||||
This section is coming soon!
|
||||
:::
|
||||
|
||||
This section is for documentation related to contributing to the Application's codebase.
|
@ -1,303 +0,0 @@
|
||||
---
|
||||
title: Task Bot
|
||||
---
|
||||
|
||||
Task Bot (hereinafter the "Application") is a user-installable Discord application which allows you to manage your tasks anywhere on Discord: in a server, in a direct message with the bot, in direct messages with your friends... The possibilities are endless.
|
||||
|
||||
Task management with this bot is an individual feature. If you need server-level task management, such as for a development team, please reach out to us in our support server to discuss pricing.
|
||||
|
||||
## 1. User Documentation
|
||||
|
||||
This section is for those interacting with a live instance of the Application.
|
||||
|
||||
### 1.1. User Interactivity
|
||||
|
||||
Interaction with the Application is done through a series of slash commands ("Commands") exposed via Discord's native UI. The primary function of the Application is to allow users to create and manage "tasks", or records of objectives that must be completed.
|
||||
|
||||
#### 1.1.1. `assign` Command
|
||||
|
||||
:::note
|
||||
This command is only available on guild-level private instances.
|
||||
:::
|
||||
|
||||
The `/assign` command allows you to assign a specific Discord user to a task. A task may have multiple assignees.
|
||||
|
||||

|
||||
|
||||
##### 1.1.1.1. Required Arguments
|
||||
|
||||
- `task`: An integer greater than 0, which is the unique identifier of the task you want to edit.
|
||||
- `assignee`: The user to assign to (or unassign from) a ticket.
|
||||
|
||||
##### 1.1.1.2. Optional Arguments
|
||||
|
||||
- `null`
|
||||
|
||||
##### 1.1.1.3. Execution
|
||||
|
||||
Once the command has been called, a database query will be made to confirm a task exists with the given `task` ID.
|
||||
|
||||
If a task does not exist, you will be notified.
|
||||
|
||||
If a task does exist, the Application will determine whether the `assignee` has been added to the task previously or not. If the `assignee` is already on the task, they will be removed. If they are not on the task, they will be assigned. You will be shown a confirmation message indicating which action the Application performed.
|
||||
|
||||
#### 1.1.2. `complete` Command
|
||||
|
||||
The `/complete` command allows you to mark a task as completed. Once completed, a task can not be uncompleted. It can still be modified and deleted.
|
||||
|
||||

|
||||
|
||||
##### 1.1.2.1. Required Arguments
|
||||
|
||||
- `task`: An integer greater than 0, which is the unique identifier of the task you want to edit.
|
||||
|
||||
##### 1.1.2.2. Optional Arguments
|
||||
|
||||
- `null`
|
||||
|
||||
##### 1.1.2.3. Execution
|
||||
|
||||
Once the command has been called, a database query will be made to confirm a task exists with the given `task` ID.
|
||||
|
||||
If a task does not exist, you will be notified.
|
||||
|
||||
If a task does exist, the Application will mark the task as completed and inform you of the success.
|
||||
|
||||
#### 1.1.3. `create` Command
|
||||
|
||||
The `/create` command allows you to create a new task.
|
||||
|
||||

|
||||
|
||||
##### 1.1.2.1. Required Arguments
|
||||
|
||||
- `null`
|
||||
|
||||
##### 1.1.2.2. Optional Arguments
|
||||
|
||||
- `null`
|
||||
|
||||
##### 1.1.2.3. Execution
|
||||
|
||||
Once the command has been called, the Application will construct and show a Discord-powered modal form. There are three fields you must complete.
|
||||
|
||||

|
||||
|
||||
- `TITLE`: The title of the task. This should be a short summary.
|
||||
- `DESCRIPTION`: The description of the task. This may be longer, and supports multiple lines.
|
||||
- `DUE DATE`: The date the task is due. This must be a format that can be parsed, such as `September 1, 2000`.
|
||||
|
||||
:::caution
|
||||
If the Application cannot parse your `DUE DATE` value, it will fall back to the current date. You can edit this with the `/update` command.
|
||||
:::
|
||||
|
||||
When you submit the modal form, the Application will insert a new task into the database and assign it an incremental ID. It will provide this ID to you as confirmation.
|
||||
|
||||
#### 1.1.4. `delete` Command
|
||||
|
||||
The `/delete` command allows you to "delete" a task from the database. The task record will remain present, as the incremental ID logic requires records to persist. All information will be scrubbed from the task and replaced with default values.
|
||||
|
||||
:::danger
|
||||
Deleting a task is a very destructive action. You will not be able to undo it. Our support team will not be able to undo it. The data will be purged from our records.
|
||||
:::
|
||||
|
||||

|
||||
|
||||
##### 1.1.4.1. Required Arguments
|
||||
|
||||
- `task`: The numerical identifier of the task you wish to delete.
|
||||
|
||||
##### 1.1.4.2. Optional Arguments
|
||||
|
||||
- `null`
|
||||
|
||||
##### 1.1.4.3. Execution
|
||||
|
||||
Once the command has been called, a database query will be made to confirm a task exists with the given `task` ID.
|
||||
|
||||
If a task does not exist, you will be notified.
|
||||
|
||||
If a task does exist, the Application will mark the task as `deleted`, and set the following default values:
|
||||
|
||||
```json
|
||||
{
|
||||
"assignees": [],
|
||||
"deleted": true,
|
||||
"description": "This task has been deleted.",
|
||||
"dueAt": Date,
|
||||
"priority": "deleted",
|
||||
"tags": [],
|
||||
"title": "Deleted Task",
|
||||
|
||||
}
|
||||
```
|
||||
|
||||
You will receive confirmation when the deletion is complete.
|
||||
|
||||
#### 1.1.5. `list` Command
|
||||
|
||||
The `list` command allows you to view your tasks, optionally applying filters to narrow the results.
|
||||
|
||||

|
||||
|
||||
##### 1.1.5.1. Required Arguments
|
||||
|
||||
- `null`
|
||||
|
||||
##### 1.1.5.2. Optional Arguments
|
||||
|
||||
- `priority`: Only show tasks which are at this priority level. If omitted, will show all priorities.
|
||||
- `tag`: Only show tasks whose tags include this tag. If omitted, will not restrict query by any tags.
|
||||
- `completed`: Show either complete or incomplete tasks. If omitted, will show incomplete tasks.
|
||||
|
||||
**Guild-level private instances** will also be able to filter by `assignee`.
|
||||
|
||||
##### 1.1.5.3. Execution
|
||||
|
||||
The Application will construct your selected filters into a database query and use that to fetch the tasks.
|
||||
|
||||
If your query returns no tasks, the Application will notify you to adjust your filters. Otherwise, you will receive a list of task titles and IDs.
|
||||
|
||||
#### 1.1.6. `priority` Command
|
||||
|
||||
The priority command allows you to modify the priority level of a task. A task may have one of the following priorities: `Low`, `Medium`, `High`, `Critial`, and `None`.
|
||||
|
||||

|
||||
|
||||
##### 1.1.6.1. Required Arguments
|
||||
|
||||
- `null`
|
||||
|
||||
##### 1.1.6.2. Optional Arguments
|
||||
|
||||
- `null`
|
||||
|
||||
##### 1.1.6.3. Execution
|
||||
|
||||
Once the command has been called, a database query will be made to confirm a task exists with the given `task` ID.
|
||||
|
||||
If a task does not exist, you will be notified.
|
||||
|
||||
If a task does exist, the Application will update the `priority` field and send you a confirmation.
|
||||
|
||||
#### 1.1.7. `tag` Command
|
||||
|
||||
The `/tag` command allows you to assign a specific tag to a task. A task may have multiple tags.
|
||||
|
||||

|
||||
|
||||
##### 1.1.7.1. Required Arguments
|
||||
|
||||
- `task`: An integer greater than 0, which is the unique identifier of the task you want to edit.
|
||||
- `tag`: The case-sensitive tag to apply.
|
||||
|
||||
##### 1.1.7.2. Optional Arguments
|
||||
|
||||
- `null`
|
||||
|
||||
##### 1.1.7.3. Execution
|
||||
|
||||
Once the command has been called, a database query will be made to confirm a task exists with the given `task` ID.
|
||||
|
||||
If a task does not exist, you will be notified.
|
||||
|
||||
If a task does exist, the Application will determine whether the `tag` has been added to the task previously or not. If the `tag` is already on the task, it will be removed. If it is not on the task, it will be added. You will be shown a confirmation message indicating which action the Application performed.
|
||||
|
||||
#### 1.1.8. `update` Command
|
||||
|
||||
The `/update` command allows you to update an existing task.
|
||||
|
||||

|
||||
|
||||
##### 1.1.8.1. Required Arguments
|
||||
|
||||
- `null`
|
||||
|
||||
##### 1.1.8.2. Optional Arguments
|
||||
|
||||
- `null`
|
||||
|
||||
##### 1.1.8.3. Execution
|
||||
|
||||
Once the command has been called, the Application will construct and show a Discord-powered modal form. There is one field you MUST complete, and three fields you MAY complete.
|
||||
|
||||

|
||||
|
||||
- `TASK NUMBER`: The numerical identifier of the task you wish to update.
|
||||
- `TITLE`: The title of the task. This should be a short summary.
|
||||
- `DESCRIPTION`: The description of the task. This may be longer, and supports multiple lines.
|
||||
- `DUE DATE`: The date the task is due. This must be a format that can be parsed, such as `September 1, 2000`.
|
||||
|
||||
If you do not want to update a field, leave it blank and the Application will not modify it.
|
||||
|
||||
:::caution
|
||||
If the Application cannot parse your `DUE DATE` value, it will fall back to the current date.
|
||||
:::
|
||||
|
||||
When you submit the modal form, the Application will construct an update query from your fields. It will then try to update the task in the database, using the ID you provide. If it fails to find a record with that ID, it will notify you. Otherwise, it will send a confirmation message.
|
||||
|
||||
#### 1.1.9. `view` Command
|
||||
|
||||
The view command allows you to query a task by its ID and see all the information on that task.
|
||||
|
||||

|
||||
|
||||
##### 1.1.9.1. Required Arguments
|
||||
|
||||
- `id`: The numerical ID of the task you wish to view.
|
||||
|
||||
##### 1.1.9.2. Optional Arguments
|
||||
|
||||
- `null`
|
||||
|
||||
##### 1.1.9.3. Execution
|
||||
|
||||
When you run the command, the bot will fetch the task matching your specified ID from the database. If no task is found, the bot will notify you.
|
||||
|
||||

|
||||
|
||||
Otherwise, the bot will display an embed containing all of the information about that task.
|
||||
|
||||
### 1.2. User Access Permissions
|
||||
|
||||
:::danger
|
||||
The Application does not perform any permission validation against users calling commands. All commands are available to all users.
|
||||
:::
|
||||
|
||||
:::note
|
||||
User-access permissions are only available on guild-level private instances. The user-level public application will only allow you to manage tasks you have created.
|
||||
:::
|
||||
|
||||
If you need to restrict access to specific commands based on a user's permission levels, you can do so through Discord's native UI.
|
||||
|
||||

|
||||
|
||||
This functionality will allow you to hide commands from users with or without specific roles, or grant scoped access to individual commands and channels. For more instructions on how to leverage this tool, please review [Discord's support article for command permissions](https://support.discord.com/hc/en-us/articles/4644915651095-Command-Permissions).
|
||||
|
||||
### 1.3. Application Access Permissions
|
||||
|
||||
The Application should not require any specific Discord permissions to function in your community.
|
||||
|
||||
### 1.4. Errors
|
||||
|
||||
We strive to deliver reliable and quality applications, but we are not perfect. If the Application generates an error, it will provide you with a Snowflake ID and a link to [our support server](https://chat.nhcarrigan.com).
|
||||
|
||||
When you join the server and share the ID with us, we will be able to look up the specific log and determine the cause of the error.
|
||||
|
||||
Note that not all errors are caused by the Application. Errors can occur for many reasons, including misconfigured permissions on the user side, external platform outages, and more. Our support team will be happy to assist you with any errors that you encounter, but we kindly ask that you demonstrate patience toward our team (many of whom are volunteers).
|
||||
|
||||
## 2. Technical Documentation
|
||||
|
||||
:::note
|
||||
This section is coming soon!
|
||||
:::
|
||||
|
||||
This section is for those interested in running their own instance of the Application.
|
||||
|
||||
## 3. Legal Documentation
|
||||
|
||||
:::note
|
||||
This section is coming soon!
|
||||
:::
|
||||
|
||||
This section is for expansions to our legal policies specific to the Application.
|
@ -1,117 +0,0 @@
|
||||
---
|
||||
title: Translation Bot
|
||||
---
|
||||
|
||||
Translation Bot (hereinafter the "Application") is a multi-platform application that allows quick and seamless translation of user messages.
|
||||
|
||||
## 1. User Documentation
|
||||
|
||||
This section is for those interacting with a live instance of the application.
|
||||
|
||||
### 1.1. Discord Integration
|
||||
|
||||
The Application is available as a user-installable Discord integration. Once installed, it becomes available for you to use in any server.
|
||||
|
||||
:::tip
|
||||
The command names and descriptions should all be localised to the language you have your Discord client set to.
|
||||
:::
|
||||
|
||||
All interactions with this Application are "ephemeral", meaning that only you will see the result. This leaves you free to use the Application in whatever way you need without disrupting your colleagues.
|
||||
|
||||
[Install the Discord integration](https://discord.com/oauth2/authorize?client_id=1293778694292115457)
|
||||
|
||||
#### 1.1.1. Setting Your Language
|
||||
|
||||

|
||||
|
||||
The `/language` command allows you to configure your target language. The language you set here will be the language messages are translated into.
|
||||
|
||||

|
||||
|
||||
#### 1.1.2. Translating Messages
|
||||
|
||||

|
||||
|
||||
To translate a message, right click on the message to open the context menu. Select the `translate` command, and the bot will translate the message you selected.
|
||||
|
||||

|
||||
|
||||
### 1.2. Slack Integration
|
||||
|
||||
The Application is available as a workspace-level Slack integration. Once installed, it becomes available for anyone to use in the workspace.
|
||||
|
||||
All interactions with this Application are "ephemeral", meaning that only you will see the result. This leaves you free to use the Application in whatever way you need without disrupting your colleagues.
|
||||
|
||||
[Install the Slack integration](https://trans-slack.nhcarrigan.com/slack/install)
|
||||
|
||||
#### 1.2.1. Setting Your Language
|
||||
|
||||

|
||||
|
||||
The `/lang` command allows you to configure your target language. The language you set here will be the language messages are translated into.
|
||||
|
||||

|
||||
|
||||
#### 1.1.2. Translating Messages
|
||||
|
||||

|
||||
|
||||
To translate a message, right click on the message to open the context menu. Select `More message actions`, then the `translate` command, and the bot will translate the message you selected.
|
||||
|
||||

|
||||
|
||||
### 1.3. Language Codes
|
||||
|
||||
The commands to toggle your language require a two-character language code. You may refer to the table below to identify the code for your language.
|
||||
|
||||
:::note
|
||||
The list of languages we support is determined by the languages supported on each platform AND the languages supported by our translation service.
|
||||
:::
|
||||
|
||||
| Language | Code |
|
||||
| --------------------- | ---- |
|
||||
| English | "en" |
|
||||
| Bulgarian | "bg" |
|
||||
| Czech | "cs" |
|
||||
| Danish | "da" |
|
||||
| German | "de" |
|
||||
| Greek | "el" |
|
||||
| Spanish | "es" |
|
||||
| Finnish | "fi" |
|
||||
| French | "fr" |
|
||||
| Hindi | "hi" |
|
||||
| Hungarian | "hu" |
|
||||
| Italian | "it" |
|
||||
| Japanese | "ja" |
|
||||
| Korean | "ko" |
|
||||
| Lithuanian | "lt" |
|
||||
| Dutch | "nl" |
|
||||
| Norwegian | "no" |
|
||||
| Polish | "pl" |
|
||||
| Portuguese | "pt" |
|
||||
| Romanian | "ro" |
|
||||
| Russian | "ru" |
|
||||
| Swedish | "sv" |
|
||||
| Thai | "th" |
|
||||
| Turkish | "tr" |
|
||||
| Ukrainian | "uk" |
|
||||
| Chinese (Simplified) | "zh" |
|
||||
| Chinese (Traditional) | "zt" |
|
||||
|
||||
## 2. Technical Documentation
|
||||
|
||||
:::note
|
||||
This section is coming soon!
|
||||
:::
|
||||
|
||||
This section is for those interested in running their own instance of the Application.
|
||||
|
||||
## 3. Legal Documentation
|
||||
|
||||
This section is for expansions to our legal policies specific to the Application.
|
||||
|
||||
### 3.1. Data Collection
|
||||
|
||||
The only Data the Application collects and stores is a map of your unique identifier (UUID) for each platform and the target language you have selected for the platform.
|
||||
|
||||
Message data and contents are NEVER stored by our application.
|
@ -8,7 +8,7 @@ Unless explicitly stated otherwise in a separate written agreement, all position
|
||||
|
||||
## 2. Application Process
|
||||
|
||||
If you feel ready to apply to join our team, please complete the [application form](https://nhcarrigan.com/apply).
|
||||
If you feel ready to apply to join our team, please complete the [application form](https://forms.nhcarrigan.com/form/PEpB3gA79gxP8wmfEf4zou96opkpUTjssTcaeYjhoi8).
|
||||
|
||||
## 3. Legal Disclaimer
|
||||
|
||||
|
@ -132,550 +132,22 @@ Know when and how to escalate issues:
|
||||
- Identify situations that require input from administrators.
|
||||
- Follow established procedures for escalating complex or sensitive matters.
|
||||
|
||||
### 2.2 Discord Moderation Guidelines
|
||||
### 2.5 Sanction Logging
|
||||
|
||||
#### 2.2.1 General Principles
|
||||
All moderation actions you take must be logged via our [web form](https://moderation.nhcarrigan.com/log).
|
||||
|
||||
- Always approach situations calmly and objectively.
|
||||
- Escalate gradually: Start with the least severe action necessary and progress as needed.
|
||||
- Document all moderation actions using the mod bot for consistency and future reference.
|
||||
|
||||
#### 2.2.2 Warning a Member
|
||||
|
||||
Use warnings for minor infractions or first-time offences.
|
||||
|
||||
**When to Warn:**
|
||||
- Mild spam (e.g., posting the same message a few times)
|
||||
- Non-discriminatory insults (e.g., "You're a jerk")
|
||||
- Minor rule violations
|
||||
|
||||
**How to Warn:**
|
||||
Use the mod bot command:
|
||||
```txt
|
||||
/warn @user [reason for warning]
|
||||
```
|
||||
|
||||
**Follow-up:**
|
||||
- Monitor the member's behavior after the warning.
|
||||
- If behavior improves, no further action is needed.
|
||||
- If issues persist, consider stronger measures.
|
||||
|
||||
#### 2.2.3 Kicking a Member
|
||||
|
||||
Kicking is a temporary removal that allows the member to rejoin.
|
||||
|
||||
**When to Kick:**
|
||||
- Repeated minor infractions after warnings
|
||||
- Arguing with moderators
|
||||
- Moderate spam
|
||||
- Non-severe rule violations
|
||||
|
||||
**How to Kick:**
|
||||
Use the mod bot command:
|
||||
```txt
|
||||
/kick @user [reason for kick]
|
||||
```
|
||||
|
||||
**Follow-up:**
|
||||
- Monitor if the user returns and their subsequent behavior.
|
||||
- Be prepared to take stronger action if issues continue upon their return.
|
||||
|
||||
#### 2.2.4 Banning a Member
|
||||
|
||||
Banning is the most severe action and should be used judiciously.
|
||||
|
||||
**When to Ban:**
|
||||
- Severe rule violations
|
||||
- Repeated offences after warnings and kicks
|
||||
- Malicious actions (e.g., raiding, doxxing, severe harassment)
|
||||
|
||||
**How to Ban:**
|
||||
Use the mod bot command:
|
||||
```txt
|
||||
/ban @user [reason for ban]
|
||||
```
|
||||
|
||||
**Important Considerations:**
|
||||
- Discord bans are IP-specific.
|
||||
- The member cannot rejoin until the ban is lifted.
|
||||
- Always double-check the user and reason before banning.
|
||||
- For permanent bans, consult with administrators.
|
||||
|
||||
#### 2.2.5 Moderation Best Practices
|
||||
|
||||
1. **Communication:** Clearly explain the reason for moderation actions to the affected member when possible.
|
||||
|
||||
2. **Consistency:** Apply rules uniformly to all members.
|
||||
|
||||
3. **Documentation:** Always use the mod bot for actions to ensure proper logging.
|
||||
|
||||
4. **Discretion:** Use your judgment. Context matters in deciding appropriate actions.
|
||||
|
||||
5. **Team Coordination:** Discuss unclear situations with fellow moderators.
|
||||
|
||||
6. **Appeals Process:** Be aware of the process for members to appeal moderation decisions.
|
||||
|
||||
7. **Continuous Learning:** Stay updated on any changes to community guidelines or moderation policies.
|
||||
|
||||
### 2.3 Twitch Moderation
|
||||
|
||||
#### 2.3.1 General Responsibilities
|
||||
|
||||
- Monitor chat actively during live streams.
|
||||
- Enforce our community rules and Twitch's Terms of Service.
|
||||
- Assist viewers with questions and foster a welcoming atmosphere.
|
||||
- Support the streamer by managing chat flow and addressing issues promptly.
|
||||
|
||||
#### 2.3.2 Chat Moderation Tools
|
||||
|
||||
Familiarize yourself with Twitch's built-in moderation tools:
|
||||
|
||||
1. **Timeout:** Temporarily prevents a user from chatting.
|
||||
2. **Ban:** Permanently removes a user from the channel.
|
||||
3. **Delete Message:** Removes a single message from chat.
|
||||
4. **Slow Mode:** Limits how often users can send messages.
|
||||
5. **Followers-Only Mode:** Restricts chat to followers.
|
||||
6. **Subscribers-Only Mode:** Limits chat to subscribers.
|
||||
7. **Unique-Chat Mode:** Prevents users from posting duplicate messages.
|
||||
|
||||
#### 2.3.3 Moderation Actions
|
||||
|
||||
##### 2.3.3.1 Warnings
|
||||
|
||||
- For minor infractions, start with a verbal warning in chat.
|
||||
- Use clear, concise language to explain the issue.
|
||||
|
||||
Example: "@User, please avoid spamming emotes. Next time may result in a timeout."
|
||||
|
||||
##### 2.3.3.2 Timeouts
|
||||
|
||||
Use timeouts for more serious or repeated minor offences.
|
||||
|
||||
- First offence: 5-minute timeout
|
||||
- Second offence: 10-minute timeout
|
||||
- Third offence: 30-minute timeout
|
||||
|
||||
To timeout: `/timeout @username [duration]`
|
||||
|
||||
##### 2.3.3.3 Bans
|
||||
|
||||
Reserve bans for severe violations or persistent problematic behavior.
|
||||
|
||||
To ban: `/ban @username`
|
||||
|
||||
Always document the reason for bans in your moderator notes or designated channel.
|
||||
|
||||
#### 2.3.4 Specific Situations
|
||||
|
||||
1. **Spam:** Use timeouts, increasing duration for repeat offences.
|
||||
2. **Hate Speech/Discrimination:** Immediate ban and report to Twitch.
|
||||
3. **Excessive Backseat Gaming:** Start with a warning, then short timeout if it continues.
|
||||
4. **Spoilers:** Delete message and issue a warning.
|
||||
5. **Self-Promotion:** Remove message and warn. Timeout for repeated offences.
|
||||
6. **Bot Attacks:** Enable followers-only or subscribers-only mode temporarily.
|
||||
|
||||
#### 2.3.5 Communication
|
||||
|
||||
- Coordinate with other moderators via a separate chat or Discord channel.
|
||||
- Inform the streamer of any significant issues or decisions made during the stream.
|
||||
- Be prepared to explain moderation actions if questioned by viewers.
|
||||
|
||||
#### 2.3.6 Raids and Hosting
|
||||
|
||||
- Welcome incoming raids positively.
|
||||
- Be extra vigilant during raids to catch any potential influx of rule-breaking behavior.
|
||||
- Assist in shouting out and thanking raiders/hosts as appropriate.
|
||||
|
||||
#### 2.3.7 Clips and Highlights
|
||||
|
||||
- Monitor clips created during streams for any inappropriate content.
|
||||
- Report or delete any clips that violate our guidelines or Twitch ToS.
|
||||
|
||||
#### 2.3.8 Post-Stream Duties
|
||||
|
||||
- Review any user reports or issues that occurred during the stream.
|
||||
- Discuss any notable incidents or concerns with the moderation team.
|
||||
- Provide feedback or suggestions for improving stream moderation.
|
||||
|
||||
### 2.4 Reddit Moderation
|
||||
|
||||
#### 2.4.1 General Responsibilities
|
||||
|
||||
- Regularly check the moderation queue for reported posts and comments.
|
||||
- Enforce subreddit rules and Reddit's content policy.
|
||||
- Engage with the community to encourage positive interactions.
|
||||
- Collaborate with other moderators to maintain consistency.
|
||||
|
||||
#### 2.4.2 Moderation Tools
|
||||
|
||||
Familiarize yourself with Reddit's moderation tools:
|
||||
|
||||
1. **Remove:** Takes down a post or comment from public view.
|
||||
2. **Spam:** Removes content and marks it as spam.
|
||||
3. **Approve:** Manually approves content, overriding auto-mod actions.
|
||||
4. **Lock:** Prevents further comments on a post.
|
||||
5. **Sticky:** Pins important posts to the top of the subreddit.
|
||||
6. **Distinguish:** Marks your comment as coming from a moderator.
|
||||
7. **Ban:** Prevents a user from posting or commenting in the subreddit.
|
||||
|
||||
#### 2.4.3 Moderation Actions
|
||||
|
||||
##### 2.4.3.1 Content Removal
|
||||
|
||||
- Remove posts and comments that violate subreddit rules or Reddit's content policy.
|
||||
- Always provide a reason for removal, using removal reasons or commenting.
|
||||
|
||||
##### 2.4.3.2 User Warnings
|
||||
|
||||
- For minor infractions, issue a warning via modmail or comment.
|
||||
- Document warnings in mod notes for future reference.
|
||||
|
||||
##### 2.4.3.3 Temporary Bans
|
||||
|
||||
- Use for repeated minor offences or more serious rule violations.
|
||||
- Typical durations: 3 days, 7 days, 14 days, 30 days.
|
||||
- Always include the reason and duration in the ban message.
|
||||
|
||||
##### 2.4.3.4 Permanent Bans
|
||||
|
||||
- Reserve for severe violations or persistent problematic behavior.
|
||||
- Always provide a clear reason in the ban message.
|
||||
- Allow for appeal process through modmail.
|
||||
|
||||
#### 2.4.4 Specific Situations
|
||||
|
||||
1. **Spam:** Remove and mark as spam. Temp ban for repeated offences.
|
||||
2. **Harassment:** Remove, warn, and escalate to temp or permanent ban as needed.
|
||||
3. **Off-topic Posts:** Remove and direct users to appropriate subreddits.
|
||||
4. **Reposts:** Remove recent reposts, with a comment explaining the removal.
|
||||
5. **Trolling:** Remove comments, warn, and ban for persistent behavior.
|
||||
6. **Vote Manipulation:** Report to Reddit admins and remove content.
|
||||
|
||||
#### 2.4.5 AutoModerator
|
||||
|
||||
- Familiarize yourself with our AutoModerator configuration.
|
||||
- Regularly review and update AutoMod rules as needed.
|
||||
- Check the moderation log to ensure AutoMod is functioning correctly.
|
||||
|
||||
#### 2.4.6 Flair Management
|
||||
|
||||
- Ensure posts have the proper flair.
|
||||
- Assist users with setting up user flairs if applicable.
|
||||
|
||||
#### 2.4.7 Modmail
|
||||
|
||||
- Respond to modmail inquiries promptly and professionally.
|
||||
- Use templates for common responses to ensure consistency.
|
||||
- Escalate complex issues to admins when necessary.
|
||||
|
||||
#### 2.4.8 Community Engagement
|
||||
|
||||
- Participate in discussions to set a positive example.
|
||||
- Use distinguish feature judiciously when speaking officially as a moderator.
|
||||
- Create and maintain community resources (FAQ, wiki, etc.).
|
||||
|
||||
#### 2.4.9 Coordinating with the Mod Team
|
||||
|
||||
- Use private moderator channels or subreddits for team discussions.
|
||||
- Participate in periodic mod team meetings or discussions.
|
||||
- Propose and discuss potential rule or policy changes.
|
||||
|
||||
#### 2.4.10 Handling Sensitive Content
|
||||
|
||||
- Remove adult-only content.
|
||||
- For controversial topics, monitor discussions closely and lock if necessary.
|
||||
- Report any illegal content to Reddit admins immediately.
|
||||
|
||||
### 2.5 Codeberg Moderation
|
||||
|
||||
#### 2.5.1 General Responsibilities
|
||||
|
||||
- Monitor repository activities, including issues, pull requests, and discussions.
|
||||
- Enforce our organization's code of conduct and Codeberg's terms of service.
|
||||
- Assist contributors with questions and foster a welcoming atmosphere for new participants.
|
||||
- Manage repository settings and access controls.
|
||||
|
||||
#### 2.5.2 Moderation Tools
|
||||
|
||||
Familiarize yourself with Codeberg's moderation features:
|
||||
|
||||
1. **Issue Management:** Open, close, label, and moderate issues.
|
||||
2. **Pull Request Review:** Review, comment on, and merge or reject pull requests.
|
||||
3. **Commit Management:** Revert or cherry-pick commits if necessary.
|
||||
4. **User Management:** Manage collaborator access and block problematic users.
|
||||
5. **Repository Settings:** Adjust visibility, branch protection, and other settings.
|
||||
|
||||
#### 2.5.3 Moderation Actions
|
||||
|
||||
##### 2.5.3.1 Issue and Pull Request Moderation
|
||||
|
||||
- Review and triage new issues and pull requests promptly.
|
||||
- Apply appropriate labels for categorization and priority.
|
||||
- Close or merge after thorough review and discussion.
|
||||
|
||||
##### 2.5.3.2 Comment Moderation
|
||||
|
||||
- Remove inappropriate or off-topic comments.
|
||||
- Provide warnings for minor infractions.
|
||||
- Lock discussions that become unproductive or violate guidelines.
|
||||
|
||||
##### 2.5.3.3 User Management
|
||||
|
||||
- Grant appropriate access levels to contributors.
|
||||
- Temporarily restrict access for users violating guidelines.
|
||||
- Block persistent offenders after warnings and temporary restrictions.
|
||||
|
||||
#### 2.5.4 Specific Situations
|
||||
|
||||
1. **Spam:** Remove spam content and warn the user. Block for repeated offences.
|
||||
2. **Harassment:** Remove offending content, warn the user, and escalate to blocking if behavior persists.
|
||||
3. **Off-topic Discussions:** Redirect to appropriate channels or close if irrelevant.
|
||||
4. **Code of Conduct Violations:** Address promptly, following the enforcement guidelines in the CoC.
|
||||
5. **Licensing Issues:** Ensure all contributions comply with the project's license. Remove any content that violates licensing terms.
|
||||
|
||||
#### 2.5.5 Repository Management
|
||||
|
||||
- Regularly review and update repository descriptions and README files.
|
||||
- Manage branch protection rules to maintain code quality.
|
||||
|
||||
#### 2.5.6 Collaboration and Communication
|
||||
|
||||
- Use repository discussions or a designated communication channel for project-related conversations.
|
||||
- Clearly communicate decisions and reasoning behind moderation actions.
|
||||
- Encourage constructive feedback and open dialogue among contributors.
|
||||
|
||||
#### 2.5.7 Pull Request Review Process
|
||||
|
||||
- Establish and communicate clear guidelines for PR submissions.
|
||||
- Conduct thorough code reviews, focusing on both functionality and style.
|
||||
- Provide constructive feedback and guidance, especially for new contributors.
|
||||
- Ensure all checks (e.g., tests, linting) pass before merging.
|
||||
|
||||
#### 2.5.8 Security Management
|
||||
|
||||
- Monitor and address security vulnerabilities promptly.
|
||||
- Manage responsible disclosure of security issues.
|
||||
- Regularly update dependencies to patch known vulnerabilities.
|
||||
|
||||
#### 2.5.9 Community Building
|
||||
|
||||
- Recognize and appreciate valuable contributions.
|
||||
- Organize periodic community events or sprints to boost engagement.
|
||||
- Maintain a welcoming atmosphere for contributors of all experience levels.
|
||||
|
||||
#### 2.5.10 Documentation
|
||||
|
||||
- Ensure project documentation is comprehensive and up-to-date.
|
||||
- Encourage contributors to improve documentation alongside code changes.
|
||||
- Maintain clear guidelines for project structure, coding standards, and contribution processes.
|
||||
|
||||
### 2.6 IRC Moderation
|
||||
|
||||
#### 2.6.1 General Responsibilities
|
||||
|
||||
- Monitor channel activities continuously while online.
|
||||
- Enforce channel rules and network policies.
|
||||
- Assist users with questions and foster a welcoming atmosphere.
|
||||
- Manage channel modes and user privileges as needed.
|
||||
|
||||
#### 2.6.2 IRC-Specific Moderation Tools
|
||||
|
||||
Familiarize yourself with these essential IRC commands:
|
||||
|
||||
1. `/kick <nick> [reason]`: Remove a user from the channel temporarily.
|
||||
2. `/ban <mask>`: Ban a user or hostmask from the channel.
|
||||
3. `/mute <nick>`: Prevent a user from speaking in the channel.
|
||||
4. `/topic`: Set or modify the channel topic.
|
||||
5. `/mode`: Change channel modes (e.g., moderated, invite-only).
|
||||
|
||||
#### 2.6.3 Moderation Actions
|
||||
|
||||
##### 2.6.3.1 Warnings
|
||||
|
||||
For minor infractions, start with a verbal warning in the channel.
|
||||
|
||||
Example: "Username, please avoid using excessive caps. It's considered shouting."
|
||||
|
||||
##### 2.6.3.2 Kicks
|
||||
|
||||
Use kicks for more serious or repeated minor offences.
|
||||
|
||||
To kick: `/kick username Reason for kick`
|
||||
|
||||
##### 2.6.3.3 Bans
|
||||
|
||||
Reserve bans for severe violations or persistent problematic behavior.
|
||||
|
||||
To ban: `/ban username*!*@*`
|
||||
|
||||
Always document the reason for bans in your moderation logs.
|
||||
|
||||
#### 2.6.4 Specific Situations
|
||||
|
||||
1. **Spam**: Use kicks, escalating to short-term bans for repeat offences.
|
||||
2. **Offensive Language**: Warn, then kick. Ban for repeated offences.
|
||||
3. **Flooding**: Mute temporarily, kick if behavior continues.
|
||||
4. **Off-topic Discussions**: Gently redirect to appropriate channels.
|
||||
5. **Bot Attacks**: Set channel to moderated mode (+m) temporarily.
|
||||
|
||||
#### 2.6.5 Channel Management
|
||||
|
||||
- Regularly update channel topics with important information or rules.
|
||||
- Manage channel modes to maintain order (e.g., +m for moderated discussions).
|
||||
- Coordinate with other ops to ensure consistent coverage and enforcement.
|
||||
|
||||
#### 2.6.6 User Support
|
||||
|
||||
- Be responsive to user queries about channel rules or IRC usage.
|
||||
- Guide new users on proper IRC etiquette and our community standards.
|
||||
|
||||
#### 2.6.7 Logging and Reporting
|
||||
|
||||
- Maintain logs of significant moderation actions for team review.
|
||||
- Report any serious incidents or patterns to admins.
|
||||
|
||||
### 2.7 Slack Moderation
|
||||
|
||||
#### 2.7.1 General Responsibilities
|
||||
|
||||
- Monitor channel activities across public channels.
|
||||
- Enforce workspace rules and Slack's terms of service.
|
||||
- Assist users with questions and foster a collaborative atmosphere.
|
||||
- Manage channel settings and user permissions as needed.
|
||||
|
||||
#### 2.7.2 Slack-Specific Moderation Tools
|
||||
|
||||
Familiarize yourself with these essential Slack moderation features:
|
||||
|
||||
1. Message deletion: Remove inappropriate messages.
|
||||
2. User management: Adjust user roles and permissions.
|
||||
3. Channel management: Create, archive, or modify channel settings.
|
||||
4. Workspace settings: Configure global settings for the workspace.
|
||||
|
||||
#### 2.7.3 Moderation Actions
|
||||
|
||||
##### 2.7.3.1 Warnings
|
||||
|
||||
For minor infractions, start with a private message to the user.
|
||||
|
||||
Example: "Hi [Username], please remember to use threads for extended discussions to keep the main channel clear. Thanks!"
|
||||
|
||||
##### 2.7.3.2 Message Removal
|
||||
|
||||
Use message deletion for content that violates workspace rules.
|
||||
|
||||
##### 2.7.3.3 Restricting Privileges
|
||||
|
||||
For repeated offences, consider restricting user privileges temporarily.
|
||||
|
||||
##### 2.7.3.4 Removing Users
|
||||
|
||||
In severe cases, remove users from the workspace. This should be a last resort.
|
||||
|
||||
#### 2.7.4 Specific Situations
|
||||
|
||||
1. **Off-topic discussions**: Gently redirect to appropriate channels.
|
||||
2. **Inappropriate content**: Remove the content and privately message the user.
|
||||
3. **Spam**: Delete spam messages and restrict user privileges if persistent.
|
||||
4. **Heated arguments**: Intervene privately to de-escalate and remind users of conduct guidelines.
|
||||
5. **Sensitive information sharing**: Quickly remove any posts containing sensitive data and follow up with the user.
|
||||
|
||||
#### 2.7.5 Channel Management
|
||||
|
||||
- Regularly review and update channel purposes and topics.
|
||||
- Archive inactive channels to keep the workspace organized.
|
||||
- Ensure channels have appropriate permissions set.
|
||||
|
||||
#### 2.7.6 User Support
|
||||
|
||||
- Be responsive to user queries about workspace rules or Slack usage.
|
||||
- Guide new users on Slack etiquette and our community standards.
|
||||
- Assist with general troubleshooting of Slack features.
|
||||
|
||||
#### 2.7.7 Logging and Reporting
|
||||
|
||||
- Utilize Slack's built-in logs for auditing purposes.
|
||||
- Report any serious incidents or patterns to admins.
|
||||
|
||||
#### 2.7.8 Integration Management
|
||||
|
||||
- Monitor and manage third-party app integrations to ensure they're used appropriately.
|
||||
- Be prepared to troubleshoot or disable problematic integrations.
|
||||
|
||||
|
||||
### 2.8 Matrix Moderation
|
||||
|
||||
#### 2.8.1 General Responsibilities
|
||||
|
||||
- Monitor room activities across our Matrix spaces.
|
||||
- Enforce room rules and the Matrix.org Terms of Service.
|
||||
- Assist users with questions and foster an inclusive atmosphere.
|
||||
- Manage room settings and user power levels as needed.
|
||||
|
||||
#### 2.8.2 Matrix-Specific Moderation Tools
|
||||
|
||||
Familiarize yourself with these essential Matrix moderation features:
|
||||
|
||||
1. Redaction: Remove inappropriate messages.
|
||||
1. Kick/Ban: Remove users temporarily or permanently from rooms.
|
||||
1. Room settings: Modify room join rules, visibility, and other parameters.
|
||||
|
||||
#### 2.8.3 Moderation Actions
|
||||
|
||||
##### 2.8.3.1 Warnings
|
||||
|
||||
For minor infractions, start with a private message to the user.
|
||||
|
||||
Example: "Hi @username:domain.com, please remember to stay on-topic in #general. Thanks for your cooperation!"
|
||||
|
||||
##### 2.8.3.2 Message Redaction
|
||||
|
||||
Use redaction for content that violates room rules or Matrix ToS.
|
||||
|
||||
##### 2.8.3.3 Kicks and Bans
|
||||
|
||||
In severe cases, kick or ban users from the room. Use bans sparingly and for serious violations.
|
||||
|
||||
#### 2.8.4 Specific Situations
|
||||
|
||||
1. **Spam**: Redact spam messages and lower user power level if persistent.
|
||||
2. **Offensive content**: Redact the content and privately message the user.
|
||||
3. **Off-topic discussions**: Gently redirect to appropriate rooms or spaces.
|
||||
4. **Bridged content issues**: Address issues specific to bridged networks (e.g., IRC, Discord) appropriately.
|
||||
5. **End-to-end encrypted rooms**: Be aware of limitations in moderating e2ee rooms.
|
||||
|
||||
#### 2.8.5 Room Management
|
||||
|
||||
- Regularly review and update room topics and info.
|
||||
- Manage room aliases and directory visibility.
|
||||
- Ensure rooms have appropriate power level settings.
|
||||
|
||||
#### 2.8.6 User Support
|
||||
|
||||
- Be responsive to user queries about room rules or Matrix usage.
|
||||
- Guide new users on Matrix etiquette and our community standards.
|
||||
- Assist with general troubleshooting of Matrix clients and features.
|
||||
|
||||
#### 2.8.7 Logging and Reporting
|
||||
|
||||
- Utilize Matrix's event logs for auditing purposes where necessary.
|
||||
- Report any serious incidents or patterns to admins.
|
||||
|
||||
#### 2.8.8 Federation Management
|
||||
|
||||
- Be aware of federation status with other homeservers.
|
||||
- Know how to contact admins of other homeservers if inter-server issues arise.
|
||||
If you have not been granted a token, please notify Naomi and she will generate one for you.
|
||||
|
||||
## 3. Working With Fellow Moderators
|
||||
|
||||
### 3.1 Communication Channels
|
||||
|
||||
#### 3.1.1 Primary Communication Platform
|
||||
- Discord serves as our primary communication hub for the moderation team.
|
||||
- A private `#staff-chat` channel is available for internal discussions.
|
||||
- Our forum as our primary communication hub for the moderation team.
|
||||
- A private `staff` category is available for internal discussions.
|
||||
|
||||
#### 3.1.2 Use of Staff Chat
|
||||
- Utilize the `#staff-chat` channel for:
|
||||
- Utilize the `staff` channel for:
|
||||
- Discussing concerns
|
||||
- Seeking advice on handling situations
|
||||
- Requesting assistance with ongoing issues
|
||||
@ -733,177 +205,115 @@ In severe cases, kick or ban users from the room. Use bans sparingly and for ser
|
||||
- Suggest improvements to moderation processes or team communication.
|
||||
- Participate in any team training or development activities.
|
||||
|
||||
## 4. Logging Sanctions
|
||||
## 4. User Support
|
||||
|
||||
### 4.1 Discord Sanctions
|
||||
|
||||
- Moderation actions on Discord are automatically logged by our system.
|
||||
- No additional manual logging is required for Discord-specific actions.
|
||||
|
||||
### 4.2 Sanctions on Other Platforms
|
||||
|
||||
For all platforms other than Discord, manual logging is necessary:
|
||||
|
||||
#### 4.2.1 Logging Channel
|
||||
- Use the `#mod-logs` channel in our Discord community for logging all non-Discord sanctions.
|
||||
|
||||
#### 4.2.2 Required Information
|
||||
When logging a sanction, include the following details:
|
||||
|
||||
1. Platform: Specify the platform where the action was taken (e.g., Twitch, Reddit, Codeberg).
|
||||
2. Username: Provide the exact username or handle of the sanctioned member.
|
||||
3. Reason: Clearly state the reason for the sanction, referencing specific rule violations if applicable.
|
||||
4. Evidence: Include or describe any relevant evidence supporting the action taken.
|
||||
5. Action Taken: Specify the type of sanction (e.g., warning, temporary ban, permanent ban).
|
||||
6. Duration: For temporary sanctions, note the duration.
|
||||
|
||||
#### 4.2.3 Logging Format
|
||||
Use the following format for consistency:
|
||||
|
||||
```
|
||||
Platform: [Platform Name]
|
||||
User: [Username]
|
||||
Action: [Type of Sanction]
|
||||
Duration: [If applicable]
|
||||
Reason: [Detailed explanation]
|
||||
Evidence: [Description or link to evidence]
|
||||
```
|
||||
|
||||
### 4.3 Best Practices for Sanction Logging
|
||||
|
||||
1. **Timeliness**: Log the sanction as soon as possible after taking action.
|
||||
2. **Objectivity**: Stick to facts and avoid personal opinions in the log.
|
||||
3. **Clarity**: Ensure your log entry is clear and understandable to other moderators.
|
||||
4. **Completeness**: Include all relevant information, even if it seems minor.
|
||||
5. **Confidentiality**: Do not share logs outside of the moderation team.
|
||||
|
||||
### 4.4 Using Logged Information
|
||||
|
||||
- Regularly review logs to identify patterns or recurring issues.
|
||||
- Use logged information to ensure consistent application of rules across platforms.
|
||||
- Refer to logs when discussing moderation strategies or updating community guidelines.
|
||||
|
||||
### 4.5 Correcting or Updating Logs
|
||||
|
||||
- If you need to correct or update a logged sanction, do so in the same channel.
|
||||
- Clearly mark your message as an update or correction to a previous log entry.
|
||||
|
||||
### 4.6 Reviewing Logs
|
||||
|
||||
- Administrators should periodically review sanction logs to ensure:
|
||||
- Consistency in moderation across the team
|
||||
- Proper documentation of all actions
|
||||
- Identification of any trends or areas needing attention
|
||||
|
||||
## 5. User Support
|
||||
|
||||
### 3.1 Role in User Experience
|
||||
### 4.1 Role in User Experience
|
||||
|
||||
As a member of our team, you play a crucial role in ensuring a positive and smooth user experience across all our platforms. Your ability to provide timely and accurate support is essential to our community's satisfaction and growth.
|
||||
|
||||
### 5.2 Knowledge Base
|
||||
### 4.2 Knowledge Base
|
||||
|
||||
- Familiarize yourself with most of our projects to answer a wide range of questions.
|
||||
- Stay updated on recent changes or updates to our projects.
|
||||
- Utilize available resources (documentation, FAQs, wikis) to assist users effectively.
|
||||
|
||||
### 5.3 Handling User Inquiries
|
||||
### 4.3 Handling User Inquiries
|
||||
|
||||
#### 5.3.1 Immediate Assistance
|
||||
#### 4.3.1 Immediate Assistance
|
||||
- Respond promptly to users seeking help on any of our platforms.
|
||||
- Provide clear, concise answers to questions you're confident about.
|
||||
|
||||
#### 5.3.2 Complex Inquiries
|
||||
#### 4.3.2 Complex Inquiries
|
||||
- For questions you're unsure about, don't hesitate to seek help.
|
||||
- Inform the user that you're looking into their issue to manage expectations.
|
||||
|
||||
### 5.4 Collaborative Problem-Solving
|
||||
### 4.4 Collaborative Problem-Solving
|
||||
|
||||
- Utilize the staff chat in Discord for discussing complex user questions.
|
||||
- Engage with fellow staff members to collaboratively find solutions.
|
||||
- Share knowledge and insights to improve the team's overall support capabilities.
|
||||
|
||||
### 5.5 Follow-up
|
||||
### 4.5 Follow-up
|
||||
|
||||
- After providing a solution, check if the user's issue has been fully resolved.
|
||||
- Encourage users to reach out again if they need further assistance.
|
||||
|
||||
### 5.6 Continuous Improvement
|
||||
### 4.6 Continuous Improvement
|
||||
|
||||
- Keep track of common user issues and suggest improvements to our documentation or user interfaces.
|
||||
- Share insights gained from user interactions with the rest of the team to enhance our overall support quality.
|
||||
|
||||
## 6. Contributor Support
|
||||
## 5. Contributor Support
|
||||
|
||||
### 6.1 Welcoming New Contributors
|
||||
### 5.1 Welcoming New Contributors
|
||||
|
||||
- Greet new contributors warmly when they show interest in our projects.
|
||||
- Provide guidance on where to find our contribution guidelines and code of conduct.
|
||||
- Offer assistance in identifying suitable first issues or tasks for newcomers.
|
||||
|
||||
### 6.2 Technical Assistance
|
||||
### 5.2 Technical Assistance
|
||||
|
||||
- Help contributors set up their development environments.
|
||||
- Provide explanations or resources for understanding our project structure and coding standards.
|
||||
- Assist with version control (e.g. git) usage if needed.
|
||||
|
||||
### 6.3 Code Review Support
|
||||
### 5.3 Code Review Support
|
||||
|
||||
- Offer constructive feedback on pull requests or proposed changes.
|
||||
- Explain the reasoning behind any requested modifications.
|
||||
- Guide contributors through the process of updating their submissions.
|
||||
|
||||
### 6.4 Documentation Support
|
||||
### 5.4 Documentation Support
|
||||
|
||||
- Assist contributors in locating or updating project documentation.
|
||||
- Encourage and guide contributors who wish to improve our documentation.
|
||||
- Provide feedback on proposed documentation changes.
|
||||
|
||||
### 6.5 Issue Clarification
|
||||
### 5.5 Issue Clarification
|
||||
|
||||
- Help contributors understand the scope and requirements of open issues.
|
||||
- Provide additional context or clarification on feature requests or bug reports.
|
||||
|
||||
### 6.6 Communication Channels
|
||||
### 5.6 Communication Channels
|
||||
|
||||
- Direct contributors to appropriate communication channels (e.g., mailing lists, chat rooms, forums) for project-specific discussions.
|
||||
- Monitor these channels to provide timely responses to contributor queries.
|
||||
|
||||
### 6.7 Mentoring
|
||||
### 5.7 Mentoring
|
||||
|
||||
- Offer mentorship to promising contributors who show consistent interest.
|
||||
- Provide guidance on best practices, advanced topics, and project goals.
|
||||
|
||||
### 6.8 Recognition and Encouragement
|
||||
### 5.8 Recognition and Encouragement
|
||||
|
||||
- Acknowledge and thank contributors for their efforts, regardless of the outcome.
|
||||
- Highlight significant contributions in project updates or community announcements.
|
||||
|
||||
### 6.9 Conflict Resolution
|
||||
### 5.9 Conflict Resolution
|
||||
|
||||
- Mediate any disagreements between contributors professionally and impartially.
|
||||
- Ensure discussions remain constructive and aligned with our code of conduct.
|
||||
|
||||
### 6.10 Continuous Improvement
|
||||
### 5.10 Continuous Improvement
|
||||
|
||||
- Regularly review and update our contribution processes based on feedback.
|
||||
- Seek input from contributors on how to improve their experience.
|
||||
|
||||
## 7. Cross-Platform Access
|
||||
## 6. Cross-Platform Access
|
||||
|
||||
### 7.1 Eligibility for Cross-Platform Roles
|
||||
### 6.1 Eligibility for Cross-Platform Roles
|
||||
|
||||
- Once you have been selected for a staff position on any of our platforms, you become eligible to request staff access on additional platforms.
|
||||
- This opportunity is open to all current staff members in good standing.
|
||||
|
||||
### 7.2 Requesting Additional Platform Access
|
||||
### 6.2 Requesting Additional Platform Access
|
||||
|
||||
- If you wish to expand your staff role to other platforms:
|
||||
- Express your interest to an admin or through the designated channel for such requests.
|
||||
- Specify which additional platform(s) you'd like to moderate.
|
||||
- Briefly explain why you're interested in moderating these additional platforms.
|
||||
|
||||
### 7.3 Approval Process
|
||||
### 6.3 Approval Process
|
||||
|
||||
- Requests for additional platform access will be reviewed by the admin team.
|
||||
- Factors considered in the approval process may include:
|
||||
@ -911,29 +321,29 @@ As a member of our team, you play a crucial role in ensuring a positive and smoo
|
||||
- Your familiarity with the requested platform
|
||||
- The current staffing needs on that platform
|
||||
|
||||
### 7.4 Training and Onboarding
|
||||
### 6.4 Training and Onboarding
|
||||
|
||||
- If approved for a cross-platform role, you may be required to undergo platform-specific training.
|
||||
- Familiarize yourself with any unique rules or moderation tools for the new platform.
|
||||
|
||||
### 7.5 Responsibilities of Cross-Platform Staff
|
||||
### 6.5 Responsibilities of Cross-Platform Staff
|
||||
|
||||
- Maintain consistency in rule enforcement across all platforms you moderate.
|
||||
- Be aware of platform-specific nuances and adjust your approach accordingly.
|
||||
- Help bridge communication between different platform teams.
|
||||
|
||||
### 7.6 Benefits of Cross-Platform Moderation
|
||||
### 6.6 Benefits of Cross-Platform Moderation
|
||||
|
||||
- Provides a more cohesive user experience across our community's various platforms.
|
||||
- Allows for more efficient sharing of information and moderation strategies.
|
||||
- Enhances your skills and versatility as a moderator.
|
||||
|
||||
### 7.7 Balancing Responsibilities
|
||||
### 6.7 Balancing Responsibilities
|
||||
|
||||
- Ensure that taking on additional platforms does not negatively impact your performance on your original platform.
|
||||
- Communicate with the moderation team if you feel overwhelmed or need to scale back your responsibilities.
|
||||
|
||||
### 7.8 Periodic Review
|
||||
### 6.8 Periodic Review
|
||||
|
||||
- Your cross-platform roles will be periodically reviewed to ensure effective moderation across all assigned platforms.
|
||||
- Feedback and additional training may be provided as needed.
|
||||
|
@ -1,7 +1,13 @@
|
||||
:root {
|
||||
--primary-color: #04624f;
|
||||
--background-color: #abfcecdd;
|
||||
--sl-color-text-accent: #04624f;
|
||||
--primary-color: #2a0a18;
|
||||
--background-color: #ffb6c1ee;
|
||||
--sl-color-text-accent: #2a0a18;
|
||||
}
|
||||
|
||||
html[data-theme="dark"] {
|
||||
--primary-color: #ffb6c1;
|
||||
--background-color: #2a0a18ee;
|
||||
--sl-color-text-accent: #ffb6c1;
|
||||
}
|
||||
|
||||
.main-frame::before {
|
||||
@ -15,7 +21,6 @@
|
||||
position: fixed;
|
||||
top: 0;
|
||||
left: 0;
|
||||
right: 0;
|
||||
bottom: 0;
|
||||
opacity: 1;
|
||||
pointer-events: none;
|
||||
@ -72,6 +77,10 @@ footer > div > p {
|
||||
color: var(--primary-color) !important;
|
||||
}
|
||||
|
||||
starlight-theme-select, starlight-theme-select > label {
|
||||
color: var(--primary-color) !important;
|
||||
}
|
||||
|
||||
.social-icons::after {
|
||||
display: none;
|
||||
}
|
||||
@ -93,3 +102,15 @@ footer > div > p {
|
||||
color: var(--background-color) !important;
|
||||
background-color: var(--primary-color) !important;
|
||||
}
|
||||
|
||||
#extra-footer-content {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
align-items: center;
|
||||
justify-content: space-evenly;
|
||||
}
|
||||
|
||||
#tree-nation-offset-website {
|
||||
display: inline;
|
||||
margin: 0 !important;
|
||||
}
|
425
src/styles/theme-dark.json
Normal file
425
src/styles/theme-dark.json
Normal file
@ -0,0 +1,425 @@
|
||||
{
|
||||
"$schema": "vscode://schemas/color-theme",
|
||||
"type": "dark",
|
||||
"colors": {
|
||||
"activityBar.background": "#3a0d22",
|
||||
"activityBar.foreground": "#ffb6c1",
|
||||
"activityBarBadge.background": "#ff69b4",
|
||||
"activityBarBadge.foreground": "#000000",
|
||||
"button.background": "#ff69b4",
|
||||
"button.foreground": "#000000",
|
||||
"dropdown.background": "#4a112a",
|
||||
"dropdown.foreground": "#ffb6c1",
|
||||
"editor.background": "#2a0a18",
|
||||
"editor.foreground": "#ffb6c1",
|
||||
"editor.lineHighlightBackground": "#1073cf2d",
|
||||
"editor.lineHighlightBorder": "#9fced11f",
|
||||
"editor.selectionBackground": "#e35a8f",
|
||||
"editor.selectionHighlightBackground": "#e35a8f80",
|
||||
"editor.wordHighlightBackground": "#e35a8f80",
|
||||
"editorCursor.foreground": "#ff69b4",
|
||||
"editorGroupHeader.tabsBackground": "#3a0d22",
|
||||
"editorWhitespace.foreground": "#4a112a",
|
||||
"focusBorder": "#ff69b4",
|
||||
"input.background": "#3a0d22",
|
||||
"input.foreground": "#ffb6c1",
|
||||
"input.placeholderForeground": "#e35a8f",
|
||||
"list.activeSelectionBackground": "#4a112a",
|
||||
"list.activeSelectionForeground": "#ffb6c1",
|
||||
"list.hoverBackground": "#3a0d22",
|
||||
"list.hoverForeground": "#ffb6c1",
|
||||
"sideBar.background": "#3a0d22",
|
||||
"sideBar.foreground": "#ffb6c1",
|
||||
"sideBarTitle.foreground": "#ff69b4",
|
||||
"statusBar.background": "#4a112a",
|
||||
"statusBar.foreground": "#ffb6c1",
|
||||
"statusBar.noFolderBackground": "#2a0a18",
|
||||
"tab.activeBackground": "#3a0d22",
|
||||
"tab.activeForeground": "#ffb6c1",
|
||||
"tab.inactiveBackground": "#4a112a",
|
||||
"tab.inactiveForeground": "#e35a8f",
|
||||
"terminal.ansiBlack": "#4a112a",
|
||||
"terminal.ansiBlue": "#c96385",
|
||||
"terminal.ansiBrightBlack": "#3a0d22",
|
||||
"terminal.ansiBrightBlue": "#d87093",
|
||||
"terminal.ansiBrightCyan": "#ffafc5",
|
||||
"terminal.ansiBrightGreen": "#ff77a8",
|
||||
"terminal.ansiBrightMagenta": "#ff85a2",
|
||||
"terminal.ansiBrightRed": "#ff1493",
|
||||
"terminal.ansiBrightWhite": "#fff5f7",
|
||||
"terminal.ansiBrightYellow": "#ffb6c1",
|
||||
"terminal.ansiCyan": "#ff9aac",
|
||||
"terminal.ansiGreen": "#e35a8f",
|
||||
"terminal.ansiMagenta": "#e35a8f",
|
||||
"terminal.ansiRed": "#ff69b4",
|
||||
"terminal.ansiWhite": "#ffd1dc",
|
||||
"terminal.ansiYellow": "#d45a88",
|
||||
"terminal.background": "#2a0a18",
|
||||
"terminal.foreground": "#ffb6c1",
|
||||
"titleBar.activeBackground": "#4a112a",
|
||||
"titleBar.activeForeground": "#ffb6c1"
|
||||
},
|
||||
"tokenColors": [
|
||||
{
|
||||
"scope": [
|
||||
"comment",
|
||||
"punctuation.definition.comment"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#E5A3B5",
|
||||
"fontStyle": "italic"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": [
|
||||
"string",
|
||||
"string.quoted.single",
|
||||
"string.quoted.double",
|
||||
"string.quoted.triple",
|
||||
"string.template",
|
||||
"constant.character",
|
||||
"constant.other.symbol"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#FF69B4"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": [
|
||||
"constant.numeric",
|
||||
"constant.language",
|
||||
"constant.character.escape",
|
||||
"constant.other",
|
||||
"support.constant"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#C96385"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": [
|
||||
"variable",
|
||||
"variable.other",
|
||||
"variable.parameter",
|
||||
"variable.language",
|
||||
"variable.object.property"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#D87093"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": [
|
||||
"keyword",
|
||||
"keyword.control",
|
||||
"keyword.operator",
|
||||
"keyword.other",
|
||||
"storage.type",
|
||||
"storage.modifier",
|
||||
"punctuation.decorator"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#E35A8F"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": [
|
||||
"entity.name.function",
|
||||
"entity.name.method",
|
||||
"support.function",
|
||||
"meta.function-call",
|
||||
"meta.method-call",
|
||||
"meta.function.dart"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#D45A88"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": [
|
||||
"entity.name.type",
|
||||
"entity.name.class",
|
||||
"entity.name.struct",
|
||||
"entity.name.enum",
|
||||
"entity.name.union",
|
||||
"entity.name.trait",
|
||||
"entity.name.interface",
|
||||
"support.class",
|
||||
"support.type",
|
||||
"meta.return-type"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#FF77A8",
|
||||
"fontStyle": "bold"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": [
|
||||
"meta.decorator",
|
||||
"meta.annotation",
|
||||
"punctuation.definition.annotation"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#C96385"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": [
|
||||
"entity.name.tag",
|
||||
"punctuation.definition.tag"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#E35A8F"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": [
|
||||
"entity.other.attribute-name",
|
||||
"entity.other.attribute-name.html",
|
||||
"entity.other.attribute-name.css",
|
||||
"support.type.property-name.css",
|
||||
"entity.other.attribute-name.class"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#FF77A8"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": [
|
||||
"support.type.primitive",
|
||||
"support.type.builtin",
|
||||
"keyword.type",
|
||||
"storage.type.primitive",
|
||||
"storage.type.built-in",
|
||||
"support.type.primitive.dart"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#FF77A8"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": [
|
||||
"string.regexp",
|
||||
"constant.character.escape.regex"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#FF69B4"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": [
|
||||
"markup.heading",
|
||||
"entity.name.section"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#D45A88",
|
||||
"fontStyle": "bold"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": [
|
||||
"markup.bold"
|
||||
],
|
||||
"settings": {
|
||||
"fontStyle": "bold"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": [
|
||||
"markup.italic"
|
||||
],
|
||||
"settings": {
|
||||
"fontStyle": "italic"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": [
|
||||
"markup.inline.raw",
|
||||
"markup.fenced_code",
|
||||
"markup.raw"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#FF69B4"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": [
|
||||
"support.type.property-name.json",
|
||||
"support.type.property-name.jsonc"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#FF77A8"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": [
|
||||
"keyword.operator.expression",
|
||||
"keyword.operator.new",
|
||||
"keyword.operator.optional",
|
||||
"keyword.operator.comparison",
|
||||
"keyword.operator.arithmetic",
|
||||
"keyword.operator.assignment",
|
||||
"keyword.operator.logical"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#E35A8F"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": [
|
||||
"meta.embedded",
|
||||
"source.groovy.embedded",
|
||||
"meta.template.expression"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#D87093"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": [
|
||||
"meta.object-literal.key",
|
||||
"variable.object.property",
|
||||
"variable.other.property",
|
||||
"variable.other.object.property"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#FF77A8"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": [
|
||||
"support.variable.property",
|
||||
"support.variable.object.process",
|
||||
"support.variable.object.node"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#FF77A8"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": [
|
||||
"source.rust storage.type.rust",
|
||||
"source.rust entity.name.type.rust",
|
||||
"source.rust entity.name.type.struct.rust"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#FF77A8"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": [
|
||||
"source.rust keyword.operator",
|
||||
"source.rust keyword.operator.arithmetic",
|
||||
"source.rust keyword.operator.logical"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#E35A8F"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": [
|
||||
"source.python support.type.python",
|
||||
"source.python support.function.builtin.python"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#D45A88"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": [
|
||||
"source.cs entity.name.type.class.cs",
|
||||
"source.cs storage.type.cs"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#FF77A8"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": [
|
||||
"source.dart support.class.dart",
|
||||
"source.dart support.type.dart"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#FF77A8"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": [
|
||||
"source.prisma keyword.operator",
|
||||
"source.prisma constant.language",
|
||||
"source.prisma keyword.type"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#E35A8F"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": [
|
||||
"source.graphql support.type",
|
||||
"source.graphql constant.character"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#FF77A8"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": [
|
||||
"source.sql keyword.other",
|
||||
"source.sql storage.type"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#E35A8F"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": [
|
||||
"meta.jsx.children",
|
||||
"meta.embedded.block.tsx",
|
||||
"meta.embedded.block.jsx"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#D87093"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": [
|
||||
"meta.decorator.ts",
|
||||
"meta.decorator.tsx",
|
||||
"meta.decorator.angular"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#C96385"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "ref.matchtext",
|
||||
"settings": {
|
||||
"foreground": "#FFFFFF"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "token.info-token",
|
||||
"settings": {
|
||||
"foreground": "#6796E6"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "token.warn-token",
|
||||
"settings": {
|
||||
"foreground": "#CD9731"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "token.error-token",
|
||||
"settings": {
|
||||
"foreground": "#F44747"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "token.debug-token",
|
||||
"settings": {
|
||||
"foreground": "#B267E6"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
419
src/styles/theme.json
Normal file
419
src/styles/theme.json
Normal file
@ -0,0 +1,419 @@
|
||||
{
|
||||
"$schema": "vscode://schemas/color-theme",
|
||||
"type": "light",
|
||||
"colors": {
|
||||
"activityBar.background": "#ffd6e0",
|
||||
"activityBar.foreground": "#d87093",
|
||||
"activityBarBadge.background": "#ff69b4",
|
||||
"activityBarBadge.foreground": "#ffffff",
|
||||
"button.background": "#ff69b4",
|
||||
"button.foreground": "#ffffff",
|
||||
"dropdown.background": "#fff0f5",
|
||||
"dropdown.foreground": "#d87093",
|
||||
"editor.background": "#ffefef",
|
||||
"editor.foreground": "#d87093",
|
||||
"editor.lineHighlightBackground": "#1073cf2d",
|
||||
"editor.lineHighlightBorder": "#9fced11f",
|
||||
"editor.selectionBackground": "#ffb6c1",
|
||||
"editor.selectionHighlightBackground": "#ffb6c180",
|
||||
"editor.wordHighlightBackground": "#ffb6c180",
|
||||
"editorCursor.foreground": "#ff69b4",
|
||||
"editorGroupHeader.tabsBackground": "#ffe4e8",
|
||||
"editorWhitespace.foreground": "#ffe4e8",
|
||||
"focusBorder": "#ff69b4",
|
||||
"input.background": "#fff0f5",
|
||||
"input.foreground": "#d87093",
|
||||
"input.placeholderForeground": "#ff77a8",
|
||||
"list.activeSelectionBackground": "#ffefef",
|
||||
"list.activeSelectionForeground": "#d87093",
|
||||
"list.hoverBackground": "#fff0f5",
|
||||
"list.hoverForeground": "#d87093",
|
||||
"sideBar.background": "#fff0f5",
|
||||
"sideBar.foreground": "#d87093",
|
||||
"sideBarTitle.foreground": "#ff69b4",
|
||||
"statusBar.background": "#ffd6e0",
|
||||
"statusBar.foreground": "#d87093",
|
||||
"statusBar.noFolderBackground": "#ffefef",
|
||||
"tab.activeBackground": "#ffefef",
|
||||
"tab.activeForeground": "#d87093",
|
||||
"tab.inactiveBackground": "#ffd6e0",
|
||||
"tab.inactiveForeground": "#ff77a8",
|
||||
"terminal.ansiBlack": "#ffe4e8",
|
||||
"terminal.ansiBlue": "#db7093",
|
||||
"terminal.ansiBrightBlack": "#ffefef",
|
||||
"terminal.ansiBrightBlue": "#f08080",
|
||||
"terminal.ansiBrightCyan": "#ffc0cb",
|
||||
"terminal.ansiBrightGreen": "#ff77a8",
|
||||
"terminal.ansiBrightMagenta": "#ff9aac",
|
||||
"terminal.ansiBrightRed": "#ff0066",
|
||||
"terminal.ansiBrightWhite": "#fff5f7",
|
||||
"terminal.ansiBrightYellow": "#ffa6c9",
|
||||
"terminal.ansiCyan": "#ffafc5",
|
||||
"terminal.ansiGreen": "#ff69b4",
|
||||
"terminal.ansiMagenta": "#ff85a2",
|
||||
"terminal.ansiRed": "#ff1493",
|
||||
"terminal.ansiWhite": "#ffd1dc",
|
||||
"terminal.ansiYellow": "#ffb6c1",
|
||||
"terminal.background": "#ffefef",
|
||||
"terminal.foreground": "#d87093",
|
||||
"titleBar.activeBackground": "#ffd6e0",
|
||||
"titleBar.activeForeground": "#d87093"
|
||||
},
|
||||
"tokenColors": [
|
||||
{
|
||||
"scope": [
|
||||
"comment",
|
||||
"punctuation.definition.comment"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#E5A3B5",
|
||||
"fontStyle": "italic"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": [
|
||||
"string",
|
||||
"string.quoted.single",
|
||||
"string.quoted.double",
|
||||
"string.quoted.triple",
|
||||
"string.template",
|
||||
"constant.character",
|
||||
"constant.other.symbol"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#FF69B4"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": [
|
||||
"constant.numeric",
|
||||
"constant.language",
|
||||
"constant.character.escape",
|
||||
"constant.other",
|
||||
"support.constant"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#C96385"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": [
|
||||
"variable",
|
||||
"variable.other",
|
||||
"variable.parameter",
|
||||
"variable.language",
|
||||
"variable.object.property"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#D87093"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": [
|
||||
"keyword",
|
||||
"keyword.control",
|
||||
"keyword.operator",
|
||||
"keyword.other",
|
||||
"storage.type",
|
||||
"storage.modifier",
|
||||
"punctuation.decorator"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#E35A8F"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": [
|
||||
"entity.name.function",
|
||||
"entity.name.method",
|
||||
"support.function",
|
||||
"meta.function-call",
|
||||
"meta.method-call",
|
||||
"meta.function.dart"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#D45A88"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": [
|
||||
"entity.name.type",
|
||||
"entity.name.class",
|
||||
"entity.name.struct",
|
||||
"entity.name.enum",
|
||||
"entity.name.union",
|
||||
"entity.name.trait",
|
||||
"entity.name.interface",
|
||||
"support.class",
|
||||
"support.type",
|
||||
"meta.return-type"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#FF77A8",
|
||||
"fontStyle": "bold"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": [
|
||||
"meta.decorator",
|
||||
"meta.annotation",
|
||||
"punctuation.definition.annotation"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#C96385"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": [
|
||||
"entity.name.tag",
|
||||
"punctuation.definition.tag"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#E35A8F"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": [
|
||||
"entity.other.attribute-name",
|
||||
"entity.other.attribute-name.html",
|
||||
"entity.other.attribute-name.css",
|
||||
"support.type.property-name.css",
|
||||
"entity.other.attribute-name.class"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#FF77A8"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": [
|
||||
"support.type.primitive",
|
||||
"support.type.builtin",
|
||||
"keyword.type",
|
||||
"storage.type.primitive",
|
||||
"storage.type.built-in",
|
||||
"support.type.primitive.dart"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#FF77A8"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": [
|
||||
"string.regexp",
|
||||
"constant.character.escape.regex"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#FF69B4"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": [
|
||||
"markup.heading",
|
||||
"entity.name.section"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#D45A88",
|
||||
"fontStyle": "bold"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": [
|
||||
"markup.bold"
|
||||
],
|
||||
"settings": {
|
||||
"fontStyle": "bold"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": [
|
||||
"markup.italic"
|
||||
],
|
||||
"settings": {
|
||||
"fontStyle": "italic"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": [
|
||||
"markup.inline.raw",
|
||||
"markup.fenced_code",
|
||||
"markup.raw"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#FF69B4"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": [
|
||||
"support.type.property-name.json",
|
||||
"support.type.property-name.jsonc"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#FF77A8"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": [
|
||||
"keyword.operator.expression",
|
||||
"keyword.operator.new",
|
||||
"keyword.operator.optional",
|
||||
"keyword.operator.comparison",
|
||||
"keyword.operator.arithmetic",
|
||||
"keyword.operator.assignment",
|
||||
"keyword.operator.logical"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#E35A8F"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": [
|
||||
"meta.embedded",
|
||||
"source.groovy.embedded",
|
||||
"meta.template.expression"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#D87093"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": [
|
||||
"meta.object-literal.key",
|
||||
"variable.object.property",
|
||||
"variable.other.property",
|
||||
"variable.other.object.property"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#FF77A8"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": [
|
||||
"support.variable.property",
|
||||
"support.variable.object.process",
|
||||
"support.variable.object.node"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#FF77A8"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": [
|
||||
"source.rust storage.type.rust",
|
||||
"source.rust entity.name.type.rust",
|
||||
"source.rust entity.name.type.struct.rust"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#FF77A8"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": [
|
||||
"source.rust keyword.operator",
|
||||
"source.rust keyword.operator.arithmetic",
|
||||
"source.rust keyword.operator.logical"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#E35A8F"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": [
|
||||
"source.python support.type.python",
|
||||
"source.python support.function.builtin.python"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#D45A88"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": [
|
||||
"source.cs entity.name.type.class.cs",
|
||||
"source.cs storage.type.cs"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#FF77A8"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": [
|
||||
"source.dart support.class.dart",
|
||||
"source.dart support.type.dart"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#FF77A8"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": [
|
||||
"source.prisma keyword.operator",
|
||||
"source.prisma constant.language",
|
||||
"source.prisma keyword.type"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#E35A8F"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": [
|
||||
"source.graphql support.type",
|
||||
"source.graphql constant.character"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#FF77A8"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": [
|
||||
"source.sql keyword.other",
|
||||
"source.sql storage.type"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#E35A8F"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": [
|
||||
"meta.jsx.children",
|
||||
"meta.embedded.block.tsx",
|
||||
"meta.embedded.block.jsx"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#D87093"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": [
|
||||
"meta.decorator.ts",
|
||||
"meta.decorator.tsx",
|
||||
"meta.decorator.angular"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#C96385"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "token.info-token",
|
||||
"settings": {
|
||||
"foreground": "#316BCD"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "token.warn-token",
|
||||
"settings": {
|
||||
"foreground": "#CD9731"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "token.error-token",
|
||||
"settings": {
|
||||
"foreground": "#CD3131"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "token.debug-token",
|
||||
"settings": {
|
||||
"foreground": "#800080"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
Reference in New Issue
Block a user