generated from nhcarrigan/template
feat: back up things
Security Scan and Upload / Security & DefectDojo Upload (push) Successful in 1m41s
Security Scan and Upload / Security & DefectDojo Upload (push) Successful in 1m41s
This commit is contained in:
+119
@@ -0,0 +1,119 @@
|
||||
APP_NAME = NHCarrigan
|
||||
RUN_MODE = prod
|
||||
RUN_USER = git
|
||||
WORK_PATH = /data/gitea
|
||||
|
||||
[admin]
|
||||
DISABLE_REGULAR_ORG_CREATION=true
|
||||
|
||||
[repository]
|
||||
ROOT = /data/git/repositories
|
||||
MAX_CREATION_LIMIT = 0
|
||||
|
||||
[repository.local]
|
||||
LOCAL_COPY_PATH = /data/gitea/tmp/local-repo
|
||||
|
||||
[repository.upload]
|
||||
TEMP_PATH = /data/gitea/uploads
|
||||
|
||||
[server]
|
||||
APP_DATA_PATH = /data/gitea
|
||||
DOMAIN = git.nhcarrigan.com
|
||||
SSH_DOMAIN = git.nhcarrigan.com
|
||||
HTTP_PORT = 3000
|
||||
ROOT_URL = https://git.nhcarrigan.com/
|
||||
DISABLE_SSH = false
|
||||
SSH_PORT = 22
|
||||
SSH_LISTEN_PORT = 22
|
||||
LFS_START_SERVER = true
|
||||
LFS_JWT_SECRET =
|
||||
OFFLINE_MODE = true
|
||||
MAX_GIT_UPLOAD_SIZE = 5000
|
||||
|
||||
[database]
|
||||
PATH = /data/gitea/gitea.db
|
||||
DB_TYPE = sqlite3
|
||||
HOST = localhost:3306
|
||||
NAME = gitea
|
||||
USER = root
|
||||
PASSWD =
|
||||
LOG_SQL = false
|
||||
SCHEMA =
|
||||
SSL_MODE = disable
|
||||
|
||||
[indexer]
|
||||
ISSUE_INDEXER_PATH = /data/gitea/indexers/issues.bleve
|
||||
|
||||
[session]
|
||||
PROVIDER_CONFIG = /data/gitea/sessions
|
||||
PROVIDER = file
|
||||
|
||||
[picture]
|
||||
AVATAR_UPLOAD_PATH = /data/gitea/avatars
|
||||
REPOSITORY_AVATAR_UPLOAD_PATH = /data/gitea/repo-avatars
|
||||
AVATAR_MAX_FILE_SIZE = 5242880
|
||||
|
||||
[attachment]
|
||||
PATH = /data/gitea/attachments
|
||||
|
||||
[log]
|
||||
MODE = console
|
||||
LEVEL = info
|
||||
ROOT_PATH = /data/gitea/log
|
||||
|
||||
[security]
|
||||
INSTALL_LOCK = true
|
||||
SECRET_KEY =
|
||||
REVERSE_PROXY_LIMIT = 1
|
||||
REVERSE_PROXY_TRUSTED_PROXIES = *
|
||||
INTERNAL_TOKEN =
|
||||
PASSWORD_HASH_ALGO = pbkdf2
|
||||
|
||||
[service]
|
||||
DISABLE_REGISTRATION = true
|
||||
REQUIRE_SIGNIN_VIEW = false
|
||||
REGISTER_EMAIL_CONFIRM = false
|
||||
REGISTER_MANUAL_CONFIRM = true
|
||||
ENABLE_NOTIFY_MAIL = false
|
||||
ALLOW_ONLY_EXTERNAL_REGISTRATION = false
|
||||
ENABLE_CAPTCHA = true
|
||||
CAPTCHA_TYPE = recaptcha
|
||||
RECAPTCHA_SECRET =
|
||||
RECAPTCHA_SITEKEY =
|
||||
DEFAULT_KEEP_EMAIL_PRIVATE = false
|
||||
DEFAULT_ALLOW_CREATE_ORGANIZATION = false
|
||||
DEFAULT_ENABLE_TIMETRACKING = true
|
||||
NO_REPLY_ADDRESS = noreply.nhcarrigan.com
|
||||
DEFAULT_USER_IS_RESTRICTED = true
|
||||
|
||||
[lfs]
|
||||
PATH = /data/git/lfs
|
||||
|
||||
[mailer]
|
||||
ENABLED = true
|
||||
FROM = noreply@nhcarrigan.com
|
||||
PROTOCOL = smtps
|
||||
SMTP_ADDR = mail.nhcarrigan.com
|
||||
SMTP_PORT = 465
|
||||
USER = noreply@nhcarrigan.com
|
||||
PASSWD =
|
||||
|
||||
[openid]
|
||||
ENABLE_OPENID_SIGNIN = false
|
||||
ENABLE_OPENID_SIGNUP = false
|
||||
|
||||
[cron.update_checker]
|
||||
ENABLED = true
|
||||
|
||||
[repository.pull-request]
|
||||
DEFAULT_MERGE_STYLE = squash
|
||||
|
||||
[repository.signing]
|
||||
DEFAULT_TRUST_MODEL = committer
|
||||
|
||||
[oauth2]
|
||||
JWT_SECRET =
|
||||
|
||||
[ui]
|
||||
DEFAULT_THEME = trans-pride
|
||||
THEMES = trans-pride,trans-pride-dark
|
||||
@@ -0,0 +1,468 @@
|
||||
/* Trans Wrath - A dark mode variant of Trans Pride for Gitea */
|
||||
|
||||
@font-face {
|
||||
font-family: 'Vampyr';
|
||||
src: url('https://cdn.nhcarrigan.com/fonts/vampyr.ttf') format('truetype');
|
||||
}
|
||||
|
||||
:root {
|
||||
--fonts-regular: "Vampyr" !important;
|
||||
--fonts-proportional: "Vampyr" !important;
|
||||
--fonts-monospace: "Vampyr" !important;
|
||||
--fonts-emoji: "Vampyr" !important;
|
||||
--is-dark-theme: true;
|
||||
|
||||
/* Primary (pinks) */
|
||||
--color-primary: #ff6b94; /* flag pink pop */
|
||||
--color-primary-dark: #ff3b6f; /* deeper pink for hover/active */
|
||||
--color-primary-light: #ffb6c1; /* soft pink for subtle accents */
|
||||
--color-primary-very-light: #3a1a2a; /* dim pink-plum for muted fills */
|
||||
|
||||
/* Main Text & Background */
|
||||
--color-text: #ffe6ee; /* near-white with pink warmth */
|
||||
--color-text-light: #ffd1dc; /* lighter/paler text */
|
||||
--color-text-dark: #ffc0cb; /* headings/links emphasis */
|
||||
--color-body: #2a0a18; /* your existing plum base */
|
||||
|
||||
/* UI (blues for contrast = trans stripes!) */
|
||||
--color-secondary: #3b6ea8; /* medium trans-blue */
|
||||
--color-secondary-dark: #2d5a8b; /* hover/active */
|
||||
--color-secondary-light: #4f84c2; /* borders/badges */
|
||||
|
||||
/* State Colors */
|
||||
--color-success: #87cefa; /* sky blue success */
|
||||
--color-success-dark: #5dade2;
|
||||
--color-success-light: #add8e6;
|
||||
--color-danger: #ff4f7a; /* pinkish red */
|
||||
--color-danger-dark: #ff2f66;
|
||||
--color-danger-light: #ff7fa1;
|
||||
--color-warning: #ffc3a0; /* peach pairs nicely */
|
||||
--color-warning-dark: #ffb78f;
|
||||
--color-warning-light: #ffd4b7;
|
||||
--color-info: #5dade2; /* bright info blue */
|
||||
--color-info-dark: #3f8ecb;
|
||||
--color-info-light: #87c7f1;
|
||||
|
||||
/* Other UI Elements */
|
||||
--color-menu: #2a0a18;
|
||||
--color-card: #241624; /* slightly darker than body */
|
||||
--color-markup-table-row: #2f1b30; /* alternating rows */
|
||||
--color-markup-code-block: #2f1b30; /* code blocks */
|
||||
--color-button: #ff6b94; /* primary buttons = pink */
|
||||
--color-border: #3a2847; /* muted plum border */
|
||||
--color-input-border: #4f84c2; /* blue focus ring vibe */
|
||||
--color-input-background: #241624;
|
||||
--color-small-accent: #add8e6; /* tiny blue sparkles */
|
||||
|
||||
/* Diff Colors (trans-tinted, still readable) */
|
||||
--color-diff-add-line: #162235; /* blue-tinted add */
|
||||
--color-diff-add-word: #203149;
|
||||
--color-diff-del-line: #2a1620; /* pink-tinted delete */
|
||||
--color-diff-del-word: #3b2030;
|
||||
--color-diff-section: #1e1b2a; /* neutral section bg */
|
||||
|
||||
/* Code Syntax Highlighting (blue + pink duo) */
|
||||
--color-code-keyword: #1e90ff; /* keywords = trans blue */
|
||||
--color-code-function: #ff3b6f; /* functions = deep pink */
|
||||
--color-code-string: #ff9aac; /* strings = soft pink */
|
||||
--color-code-number: #5dade2; /* numbers = bright blue */
|
||||
--color-code-comment: #c79bb1; /* gentle mauve comment */
|
||||
--color-code-type: #87cefa; /* types = sky blue */
|
||||
|
||||
--vscode-editor-background: #151a28; /* cooler dark editor well */
|
||||
--color-footer: #2a0a18;
|
||||
--color-nav-bg: #2a0a18;
|
||||
}
|
||||
|
||||
|
||||
/* Header */
|
||||
.ui.menu.inverted {
|
||||
background-color: var(--color-secondary);
|
||||
color: var(--color-text);
|
||||
}
|
||||
|
||||
.ui.secondary.menu .item {
|
||||
color: var(--color-text);
|
||||
}
|
||||
|
||||
.ui.secondary.menu .active.item {
|
||||
background-color: var(--color-primary-very-light);
|
||||
}
|
||||
|
||||
/* Repository header */
|
||||
.repository.header {
|
||||
background-color: var(--color-menu);
|
||||
}
|
||||
|
||||
/* Buttons */
|
||||
.ui.primary.button {
|
||||
background-color: var(--color-primary);
|
||||
}
|
||||
|
||||
.ui.primary.button:hover {
|
||||
background-color: var(--color-primary-dark);
|
||||
}
|
||||
|
||||
.ui.basic.button {
|
||||
box-shadow: 0 0 0 1px var(--color-border) inset;
|
||||
color: var(--color-text) !important;
|
||||
}
|
||||
|
||||
.ui.basic.button:hover {
|
||||
background-color: var(--color-primary-very-light) !important;
|
||||
color: var(--color-text-dark) !important;
|
||||
}
|
||||
|
||||
/* Tabs */
|
||||
.ui.tabular.menu .item {
|
||||
color: var(--color-text-light);
|
||||
}
|
||||
|
||||
.ui.tabular.menu .active.item {
|
||||
background-color: var(--color-primary-very-light);
|
||||
color: var(--color-text);
|
||||
border-color: var(--color-border);
|
||||
}
|
||||
|
||||
/* Tables */
|
||||
.ui.table thead th {
|
||||
background: var(--color-menu);
|
||||
color: var(--color-text);
|
||||
}
|
||||
|
||||
.ui.table {
|
||||
border-color: var(--color-border);
|
||||
}
|
||||
|
||||
/* Form inputs */
|
||||
.ui.input input {
|
||||
background-color: var(--color-input-background);
|
||||
border-color: var(--color-input-border);
|
||||
color: var(--color-text);
|
||||
}
|
||||
|
||||
.ui.input input:focus {
|
||||
border-color: var(--color-primary);
|
||||
}
|
||||
|
||||
/* Labels */
|
||||
.ui.label {
|
||||
background-color: var(--color-primary-very-light);
|
||||
color: var(--color-text);
|
||||
}
|
||||
|
||||
/* Markdown Content */
|
||||
.markdown:not(code) {
|
||||
color: var(--color-text);
|
||||
}
|
||||
|
||||
.markdown code, .markdown pre {
|
||||
background-color: var(--color-markup-code-block);
|
||||
border-color: var(--color-border);
|
||||
}
|
||||
|
||||
/* Sidebar */
|
||||
.ui.vertical.menu {
|
||||
background-color: var(--color-menu);
|
||||
}
|
||||
|
||||
.ui.vertical.menu .item {
|
||||
color: var(--color-text);
|
||||
}
|
||||
|
||||
.ui.vertical.menu .active.item {
|
||||
background-color: var(--color-primary-very-light);
|
||||
}
|
||||
|
||||
/* Status tags */
|
||||
.ui.green.label {
|
||||
background-color: var(--color-success) !important;
|
||||
color: var(--color-body) !important;
|
||||
}
|
||||
|
||||
.ui.red.label {
|
||||
background-color: var(--color-danger) !important;
|
||||
color: var(--color-body) !important;
|
||||
}
|
||||
|
||||
.ui.yellow.label {
|
||||
background-color: var(--color-warning) !important;
|
||||
color: var(--color-text-dark) !important;
|
||||
}
|
||||
|
||||
.ui.blue.label {
|
||||
background-color: var(--color-info) !important;
|
||||
color: var(--color-body) !important;
|
||||
}
|
||||
|
||||
/* Dashboard cards */
|
||||
.dashboard-card {
|
||||
background-color: var(--color-card);
|
||||
border-color: var(--color-border);
|
||||
}
|
||||
|
||||
/* Timeline and activities */
|
||||
.timeline-item {
|
||||
border-color: var(--color-border);
|
||||
}
|
||||
|
||||
.timeline-item .badge {
|
||||
background-color: var(--color-primary-very-light);
|
||||
color: var(--color-text);
|
||||
}
|
||||
|
||||
/* Code diff view */
|
||||
.diff-file-box .code-diff-split .add-code {
|
||||
background-color: var(--color-diff-add-line);
|
||||
}
|
||||
|
||||
.diff-file-box .code-diff-split .del-code {
|
||||
background-color: var(--color-diff-del-line);
|
||||
}
|
||||
|
||||
.diff-file-box .code-diff-split .add-code .add-line {
|
||||
background-color: var(--color-diff-add-word);
|
||||
}
|
||||
|
||||
.diff-file-box .code-diff-split .del-code .del-line {
|
||||
background-color: var(--color-diff-del-word);
|
||||
}
|
||||
|
||||
.monaco-editor, .monaco-diff-editor, .monaco-component, .monaco-editor-background, .monaco-editor .margin {
|
||||
background: var(--vscode-editor-background) !important;
|
||||
}
|
||||
|
||||
.monaco-editor {
|
||||
--vscode-editor-selectionBackground: var(--color-primary) !important;
|
||||
--vscode-editor-inactiveSelectionBackground: var(--color-primary) !important;
|
||||
--vscode-editor-lineHighlightBackground: var(--color-primary) !important;
|
||||
}
|
||||
|
||||
.monaco-editor .view-overlays .current-line {
|
||||
background-color: var(--color-primary) !important;
|
||||
}
|
||||
|
||||
.monaco-editor .margin {
|
||||
background-color: transparent !important;
|
||||
}
|
||||
|
||||
.monaco-editor .margin-view-overlays .current-line-margin {
|
||||
background-color: var(--color-primary) !important;
|
||||
}
|
||||
|
||||
.active-line-number {
|
||||
background-color: transparent !important;
|
||||
}
|
||||
/* Scrollbar */
|
||||
::-webkit-scrollbar-thumb {
|
||||
background: var(--color-primary-light);
|
||||
}
|
||||
|
||||
::-webkit-scrollbar-thumb:hover {
|
||||
background: var(--color-primary);
|
||||
}
|
||||
|
||||
::-webkit-scrollbar-track {
|
||||
background: var(--color-primary-very-light);
|
||||
}
|
||||
|
||||
body::before {
|
||||
background: url(https://cdn.nhcarrigan.com/background.png);
|
||||
background-size: cover;
|
||||
background-position: center;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
z-index: -100;
|
||||
content: "";
|
||||
position: fixed;
|
||||
top: 0;
|
||||
left: 0;
|
||||
right: 0;
|
||||
bottom: 0;
|
||||
opacity: 1;
|
||||
pointer-events: none;
|
||||
}
|
||||
|
||||
body::after {
|
||||
background: var(--color-body);
|
||||
opacity: 0.8;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
z-index: -50;
|
||||
content: "";
|
||||
position: fixed;
|
||||
top: 0;
|
||||
left: 0;
|
||||
right: 0;
|
||||
bottom: 0;
|
||||
pointer-events: none;
|
||||
}
|
||||
|
||||
html {
|
||||
cursor: url('https://cdn.nhcarrigan.com/cursors/cursor.cur'), auto;
|
||||
font-family: "Vampyr";
|
||||
}
|
||||
|
||||
a, button, .button, .dropdown {
|
||||
cursor: url('https://cdn.nhcarrigan.com/cursors/pointer.cur'), pointer !important;
|
||||
}
|
||||
|
||||
#tree-nation-offset-website {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
}
|
||||
@media screen and (max-width: 885px) {
|
||||
#tree-nation-offset-website {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
|
||||
footer {
|
||||
width: 100%;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
color: var(--foreground);
|
||||
background-color: var(--background);
|
||||
position: fixed;
|
||||
bottom: 0;
|
||||
height: 75px;
|
||||
padding: 0 10px;
|
||||
}
|
||||
|
||||
@media (max-width: 880px) {
|
||||
.page-footer {
|
||||
flex-direction: row;
|
||||
}
|
||||
}
|
||||
|
||||
#navbar {
|
||||
position: fixed;
|
||||
top: 0;
|
||||
height: 50px;
|
||||
width: 100%;
|
||||
z-index: 1;
|
||||
}
|
||||
|
||||
.page-content {
|
||||
margin-top: 50px;
|
||||
}
|
||||
|
||||
*::selection {
|
||||
color: var(--color-body) !important;
|
||||
background: var(--color-text) !important;
|
||||
}
|
||||
|
||||
@media screen and (max-width: 768px) {
|
||||
|
||||
.navbar-right > .item {
|
||||
justify-content: right !important;
|
||||
width: 50% !important;
|
||||
right: 0 !important;
|
||||
margin-right: 0 !important;
|
||||
margin-left: auto !important;
|
||||
background: var(--color-nav-bg) !important;
|
||||
}
|
||||
|
||||
.navbar-left > .item {
|
||||
justify-content: left !important;
|
||||
width: 50% !important;
|
||||
left: 0 !important;
|
||||
margin-left: 0 !important;
|
||||
margin-right: auto !important;
|
||||
background: var(--color-nav-bg) !important;
|
||||
}
|
||||
}
|
||||
|
||||
.home a {
|
||||
text-decoration: underline !important;
|
||||
}
|
||||
|
||||
.home ul {
|
||||
list-style-type: none !important;
|
||||
padding-left: 0 !important;
|
||||
}
|
||||
|
||||
|
||||
#show-socials-button {
|
||||
background: none;
|
||||
border: none;
|
||||
cursor: url('https://cdn.nhcarrigan.com/cursors/pointer.cur'), pointer;
|
||||
color: var(--color-text);
|
||||
font-size: 1rem;
|
||||
}
|
||||
#show-socials-button > i {
|
||||
font-size: 1.5rem;
|
||||
}
|
||||
#social-list {
|
||||
position: absolute;
|
||||
bottom: 75px;
|
||||
left: 0;
|
||||
right: 0;
|
||||
width: 100vw;
|
||||
max-width: 400px;
|
||||
padding: 10px;
|
||||
background-color: var(--header_background);
|
||||
color: var(--color-text);
|
||||
border-radius: 10px;
|
||||
border: 1px solid var(--color-text);
|
||||
display: none;
|
||||
z-index: 1000;
|
||||
}
|
||||
.social-list-item {
|
||||
padding: 10px;
|
||||
}
|
||||
.social-list-item > a {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
text-decoration: none;
|
||||
}
|
||||
.social-list-divider {
|
||||
border: 0.5px solid var(--color-text);
|
||||
}
|
||||
.social-list-item:hover {
|
||||
background-color: var(--color-text);
|
||||
color: var(--header_background);
|
||||
}
|
||||
#show-socials-button {
|
||||
background: none;
|
||||
border: none;
|
||||
cursor: url('https://cdn.nhcarrigan.com/cursors/pointer.cur'), pointer;
|
||||
color: var(--color-text);
|
||||
font-size: 1rem;
|
||||
}
|
||||
#show-socials-button > i {
|
||||
font-size: 1.5rem;
|
||||
}
|
||||
#social-list {
|
||||
position: absolute;
|
||||
bottom: 75px;
|
||||
left: 0;
|
||||
right: 0;
|
||||
width: 100vw;
|
||||
max-width: 400px;
|
||||
padding: 10px;
|
||||
background-color: var(--header_background);
|
||||
color: var(--color-text);
|
||||
border-radius: 10px;
|
||||
border: 1px solid var(--color-text);
|
||||
display: none;
|
||||
z-index: 1000;
|
||||
}
|
||||
.social-list-item {
|
||||
padding: 10px;
|
||||
}
|
||||
.social-list-item > a {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
text-decoration: none;
|
||||
}
|
||||
.social-list-divider {
|
||||
border: 0.5px solid var(--color-text);
|
||||
}
|
||||
.social-list-item:hover {
|
||||
background-color: var(--color-text);
|
||||
color: var(--header_background);
|
||||
}
|
||||
@@ -0,0 +1,468 @@
|
||||
/* Trans Pride - A light theme for Gitea */
|
||||
|
||||
@font-face {
|
||||
font-family: 'Vampyr';
|
||||
src: url('https://cdn.nhcarrigan.com/fonts/vampyr.ttf') format('truetype');
|
||||
}
|
||||
|
||||
:root {
|
||||
--is-dark-theme: false;
|
||||
--fonts-regular: "Vampyr" !important;
|
||||
--fonts-proportional: "Vampyr" !important;
|
||||
--fonts-monospace: "Vampyr" !important;
|
||||
--fonts-emoji: "Vampyr" !important;
|
||||
/* Primary (pinks) */
|
||||
--color-primary: #ff6b94; /* flag pink pop */
|
||||
--color-primary-dark: #db7093; /* medium pink for hover/active */
|
||||
--color-primary-light: #ffc0cb; /* soft pastel pink */
|
||||
--color-primary-very-light: #ffe6ee;/* pale pink background fills */
|
||||
|
||||
/* Main Text & Background */
|
||||
--color-text: #2a0a18; /* deep plum text */
|
||||
--color-text-light: #4d2037; /* muted variant */
|
||||
--color-text-dark: #000000; /* headings/strong */
|
||||
--color-body: #DAFFFC; /* almost white with pink tint */
|
||||
|
||||
/* UI (trans blues for balance) */
|
||||
--color-secondary: #87cefa; /* sky blue */
|
||||
--color-secondary-dark: #5dade2; /* medium bright blue */
|
||||
--color-secondary-light: #add8e6; /* pastel blue */
|
||||
|
||||
/* State Colors */
|
||||
--color-success: #5dade2; /* success = strong blue */
|
||||
--color-success-dark: #1e90ff;
|
||||
--color-success-light: #87cefa;
|
||||
--color-danger: #ff4f7a; /* pinkish red */
|
||||
--color-danger-dark: #ff2f66;
|
||||
--color-danger-light: #ff7fa1;
|
||||
--color-warning: #ffb347; /* warm orange */
|
||||
--color-warning-dark: #ff9f1a;
|
||||
--color-warning-light: #ffd699;
|
||||
--color-info: #1e90ff; /* crisp blue */
|
||||
--color-info-dark: #187bcd;
|
||||
--color-info-light: #87cefa;
|
||||
|
||||
/* Other UI Elements */
|
||||
--color-menu: #fff9fb;
|
||||
--color-card: #ffffff; /* pure white cards */
|
||||
--color-markup-table-row: #f5f9ff; /* faint blue row */
|
||||
--color-markup-code-block: #fff0f6; /* faint pink block */
|
||||
--color-button: #ff6b94; /* primary = pink */
|
||||
--color-border: #ffd1dc; /* pale pink border */
|
||||
--color-input-border: #add8e6; /* soft blue border */
|
||||
--color-input-background: #ffffff;
|
||||
--color-small-accent: #87cefa; /* tiny blue accent */
|
||||
|
||||
/* Diff Colors (soft pink/blue tints) */
|
||||
--color-diff-add-line: #e6f6ff; /* pale blue add */
|
||||
--color-diff-add-word: #cceeff;
|
||||
--color-diff-del-line: #ffe6f0; /* pale pink delete */
|
||||
--color-diff-del-word: #ffccd9;
|
||||
--color-diff-section: #f0f6ff;
|
||||
|
||||
/* Code Syntax Highlighting (balanced) */
|
||||
--color-code-keyword: #1e90ff; /* keywords = bright blue */
|
||||
--color-code-function: #ff3b6f; /* functions = hot pink */
|
||||
--color-code-string: #db7093; /* strings = medium pink */
|
||||
--color-code-number: #5dade2; /* numbers = medium blue */
|
||||
--color-code-comment: #8a6b78; /* muted plum comment */
|
||||
--color-code-type: #87cefa; /* types = sky blue */
|
||||
|
||||
--vscode-editor-background: #fff9fb;/* soft background */
|
||||
--color-footer: #DAFFFC;
|
||||
--color-nav-bg: #DAFFFC;
|
||||
}
|
||||
|
||||
|
||||
/* Header */
|
||||
.ui.menu.inverted {
|
||||
background-color: var(--color-secondary);
|
||||
color: var(--color-text);
|
||||
}
|
||||
|
||||
.ui.secondary.menu .item {
|
||||
color: var(--color-text);
|
||||
}
|
||||
|
||||
.ui.secondary.menu .active.item {
|
||||
background-color: var(--color-primary-very-light);
|
||||
}
|
||||
|
||||
/* Repository header */
|
||||
.repository.header {
|
||||
background-color: var(--color-menu);
|
||||
}
|
||||
|
||||
/* Buttons */
|
||||
.ui.primary.button {
|
||||
background-color: var(--color-primary);
|
||||
}
|
||||
|
||||
.ui.primary.button:hover {
|
||||
background-color: var(--color-primary-dark);
|
||||
}
|
||||
|
||||
.ui.basic.button {
|
||||
box-shadow: 0 0 0 1px var(--color-border) inset;
|
||||
color: var(--color-text) !important;
|
||||
}
|
||||
|
||||
.ui.basic.button:hover {
|
||||
background-color: var(--color-primary-very-light) !important;
|
||||
color: var(--color-text-dark) !important;
|
||||
}
|
||||
|
||||
/* Tabs */
|
||||
.ui.tabular.menu .item {
|
||||
color: var(--color-text-light);
|
||||
}
|
||||
|
||||
.ui.tabular.menu .active.item {
|
||||
background-color: var(--color-primary-very-light);
|
||||
color: var(--color-text);
|
||||
border-color: var(--color-border);
|
||||
}
|
||||
|
||||
/* Tables */
|
||||
.ui.table thead th {
|
||||
background: var(--color-menu);
|
||||
color: var(--color-text);
|
||||
}
|
||||
|
||||
.ui.table {
|
||||
border-color: var(--color-border);
|
||||
}
|
||||
|
||||
/* Form inputs */
|
||||
.ui.input input {
|
||||
background-color: var(--color-input-background);
|
||||
border-color: var(--color-input-border);
|
||||
color: var(--color-text);
|
||||
}
|
||||
|
||||
.ui.input input:focus {
|
||||
border-color: var(--color-primary);
|
||||
}
|
||||
|
||||
/* Labels */
|
||||
.ui.label {
|
||||
background-color: var(--color-primary-very-light);
|
||||
color: var(--color-text);
|
||||
}
|
||||
|
||||
/* Markdown Content */
|
||||
.markdown:not(code) {
|
||||
color: var(--color-text);
|
||||
}
|
||||
|
||||
.markdown code, .markdown pre {
|
||||
background-color: var(--color-markup-code-block);
|
||||
border-color: var(--color-border);
|
||||
}
|
||||
|
||||
/* Sidebar */
|
||||
.ui.vertical.menu {
|
||||
background-color: var(--color-menu);
|
||||
}
|
||||
|
||||
.ui.vertical.menu .item {
|
||||
color: var(--color-text);
|
||||
}
|
||||
|
||||
.ui.vertical.menu .active.item {
|
||||
background-color: var(--color-primary-very-light);
|
||||
}
|
||||
|
||||
/* Status tags */
|
||||
.ui.green.label {
|
||||
background-color: var(--color-success) !important;
|
||||
color: var(--color-body) !important;
|
||||
}
|
||||
|
||||
.ui.red.label {
|
||||
background-color: var(--color-danger) !important;
|
||||
color: var(--color-body) !important;
|
||||
}
|
||||
|
||||
.ui.yellow.label {
|
||||
background-color: var(--color-warning) !important;
|
||||
color: var(--color-text-dark) !important;
|
||||
}
|
||||
|
||||
.ui.blue.label {
|
||||
background-color: var(--color-info) !important;
|
||||
color: var(--color-body) !important;
|
||||
}
|
||||
|
||||
/* Dashboard cards */
|
||||
.dashboard-card {
|
||||
background-color: var(--color-card);
|
||||
border-color: var(--color-border);
|
||||
}
|
||||
|
||||
/* Timeline and activities */
|
||||
.timeline-item {
|
||||
border-color: var(--color-border);
|
||||
}
|
||||
|
||||
.timeline-item .badge {
|
||||
background-color: var(--color-primary-very-light);
|
||||
color: var(--color-text);
|
||||
}
|
||||
|
||||
/* Code diff view */
|
||||
.diff-file-box .code-diff-split .add-code {
|
||||
background-color: var(--color-diff-add-line);
|
||||
}
|
||||
|
||||
.diff-file-box .code-diff-split .del-code {
|
||||
background-color: var(--color-diff-del-line);
|
||||
}
|
||||
|
||||
.diff-file-box .code-diff-split .add-code .add-line {
|
||||
background-color: var(--color-diff-add-word);
|
||||
}
|
||||
|
||||
.diff-file-box .code-diff-split .del-code .del-line {
|
||||
background-color: var(--color-diff-del-word);
|
||||
}
|
||||
|
||||
.monaco-editor, .monaco-diff-editor, .monaco-component, .monaco-editor-background, .monaco-editor .margin {
|
||||
background: #fff5f8 !important;
|
||||
}
|
||||
|
||||
.monaco-editor {
|
||||
--vscode-editor-selectionBackground: var(--color-primary) !important;
|
||||
--vscode-editor-inactiveSelectionBackground: var(--color-primary) !important;
|
||||
--vscode-editor-lineHighlightBackground: var(--color-primary) !important;
|
||||
}
|
||||
|
||||
.monaco-editor .view-overlays .current-line {
|
||||
background-color: var(--color-primary) !important;
|
||||
}
|
||||
|
||||
.monaco-editor .margin {
|
||||
background-color: transparent !important;
|
||||
}
|
||||
|
||||
.monaco-editor .margin-view-overlays .current-line-margin {
|
||||
background-color: var(--color-primary) !important;
|
||||
}
|
||||
|
||||
.active-line-number {
|
||||
background-color: transparent !important;
|
||||
}
|
||||
|
||||
/* Scrollbar */
|
||||
::-webkit-scrollbar-thumb {
|
||||
background: var(--color-primary-light);
|
||||
}
|
||||
|
||||
::-webkit-scrollbar-thumb:hover {
|
||||
background: var(--color-primary);
|
||||
}
|
||||
|
||||
::-webkit-scrollbar-track {
|
||||
background: var(--color-primary-very-light);
|
||||
}
|
||||
|
||||
body::before {
|
||||
background: url(https://cdn.nhcarrigan.com/background.png);
|
||||
background-size: cover;
|
||||
background-position: center;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
z-index: -100;
|
||||
content: "";
|
||||
position: fixed;
|
||||
top: 0;
|
||||
left: 0;
|
||||
right: 0;
|
||||
bottom: 0;
|
||||
opacity: 1;
|
||||
pointer-events: none;
|
||||
}
|
||||
|
||||
body::after {
|
||||
background: var(--color-body);
|
||||
opacity: 0.8;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
z-index: -50;
|
||||
content: "";
|
||||
position: fixed;
|
||||
top: 0;
|
||||
left: 0;
|
||||
right: 0;
|
||||
bottom: 0;
|
||||
pointer-events: none;
|
||||
}
|
||||
|
||||
html {
|
||||
cursor: url('https://cdn.nhcarrigan.com/cursors/cursor.cur'), auto;
|
||||
font-family: "Vampyr";
|
||||
}
|
||||
|
||||
a, button, .button, .dropdown {
|
||||
cursor: url('https://cdn.nhcarrigan.com/cursors/pointer.cur'), pointer !important;
|
||||
}
|
||||
|
||||
#tree-nation-offset-website {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
}
|
||||
@media screen and (max-width: 885px) {
|
||||
#tree-nation-offset-website {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
|
||||
footer {
|
||||
width: 100%;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
color: var(--foreground);
|
||||
background-color: var(--background);
|
||||
position: fixed;
|
||||
bottom: 0;
|
||||
height: 75px;
|
||||
padding: 0 10px;
|
||||
}
|
||||
|
||||
@media (max-width: 880px) {
|
||||
.page-footer {
|
||||
flex-direction: row;
|
||||
}
|
||||
}
|
||||
|
||||
#navbar {
|
||||
position: fixed;
|
||||
top: 0;
|
||||
height: 50px;
|
||||
width: 100%;
|
||||
z-index: 1;
|
||||
}
|
||||
|
||||
.page-content {
|
||||
margin-top: 50px;
|
||||
}
|
||||
|
||||
*::selection {
|
||||
color: var(--color-body) !important;
|
||||
background: var(--color-text) !important;
|
||||
}
|
||||
|
||||
@media screen and (max-width: 768px) {
|
||||
|
||||
.navbar-right > .item {
|
||||
justify-content: right !important;
|
||||
width: 50% !important;
|
||||
right: 0 !important;
|
||||
margin-right: 0 !important;
|
||||
margin-left: auto !important;
|
||||
background: var(--color-nav-bg) !important;
|
||||
}
|
||||
|
||||
.navbar-left > .item {
|
||||
justify-content: left !important;
|
||||
width: 50% !important;
|
||||
left: 0 !important;
|
||||
margin-left: 0 !important;
|
||||
margin-right: auto !important;
|
||||
background: var(--color-nav-bg) !important;
|
||||
}
|
||||
}
|
||||
|
||||
.home a {
|
||||
text-decoration: underline !important;
|
||||
}
|
||||
|
||||
.home ul {
|
||||
list-style-type: none !important;
|
||||
padding-left: 0 !important;
|
||||
}
|
||||
|
||||
|
||||
#show-socials-button {
|
||||
background: none;
|
||||
border: none;
|
||||
cursor: url('https://cdn.nhcarrigan.com/cursors/pointer.cur'), pointer;
|
||||
color: var(--color-text);
|
||||
font-size: 1rem;
|
||||
}
|
||||
#show-socials-button > i {
|
||||
font-size: 1.5rem;
|
||||
}
|
||||
#social-list {
|
||||
position: absolute;
|
||||
bottom: 75px;
|
||||
left: 0;
|
||||
right: 0;
|
||||
width: 100vw;
|
||||
max-width: 400px;
|
||||
padding: 10px;
|
||||
background-color: var(--header_background);
|
||||
color: var(--color-text);
|
||||
border-radius: 10px;
|
||||
border: 1px solid var(--color-text);
|
||||
display: none;
|
||||
z-index: 1000;
|
||||
}
|
||||
.social-list-item {
|
||||
padding: 10px;
|
||||
}
|
||||
.social-list-item > a {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
text-decoration: none;
|
||||
}
|
||||
.social-list-divider {
|
||||
border: 0.5px solid var(--color-text);
|
||||
}
|
||||
.social-list-item:hover {
|
||||
background-color: var(--color-text);
|
||||
color: var(--header_background);
|
||||
}
|
||||
#show-socials-button {
|
||||
background: none;
|
||||
border: none;
|
||||
cursor: url('https://cdn.nhcarrigan.com/cursors/pointer.cur'), pointer;
|
||||
color: var(--color-text);
|
||||
font-size: 1rem;
|
||||
}
|
||||
#show-socials-button > i {
|
||||
font-size: 1.5rem;
|
||||
}
|
||||
#social-list {
|
||||
position: absolute;
|
||||
bottom: 75px;
|
||||
left: 0;
|
||||
right: 0;
|
||||
width: 100vw;
|
||||
max-width: 400px;
|
||||
padding: 10px;
|
||||
background-color: var(--header_background);
|
||||
color: var(--color-text);
|
||||
border-radius: 10px;
|
||||
border: 1px solid var(--color-text);
|
||||
display: none;
|
||||
z-index: 1000;
|
||||
}
|
||||
.social-list-item {
|
||||
padding: 10px;
|
||||
}
|
||||
.social-list-item > a {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
text-decoration: none;
|
||||
}
|
||||
.social-list-divider {
|
||||
border: 0.5px solid var(--color-text);
|
||||
}
|
||||
.social-list-item:hover {
|
||||
background-color: var(--color-text);
|
||||
color: var(--header_background);
|
||||
}
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 6.0 MiB |
File diff suppressed because it is too large
Load Diff
|
After Width: | Height: | Size: 4.5 MiB |
Binary file not shown.
|
After Width: | Height: | Size: 6.0 MiB |
File diff suppressed because it is too large
Load Diff
|
After Width: | Height: | Size: 4.5 MiB |
@@ -0,0 +1,94 @@
|
||||
<footer class="page-footer" role="group" aria-label="{{ctx.Locale.Tr "aria.footer"}}">
|
||||
<p>© <a href="https://nhcarrigan.com" target="_blank">Naomi Carrigan</a></p>
|
||||
<button id="show-socials-button" type="button">
|
||||
<i class="fa-solid fa-share-nodes"></i> Connect with Us
|
||||
</button>
|
||||
<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 id="tree-nation-offset-website"></div>
|
||||
</div>
|
||||
<div id="social-list">
|
||||
<div class="social-list-item">
|
||||
<a href="https://chat.nhcarrigan.com" target="_blank" rel="noreferrer">
|
||||
<i class="fa-brands fa-discord"></i><span>Join our Discord~!</span>
|
||||
</a>
|
||||
</div>
|
||||
<hr class="social-list-divider" />
|
||||
<div class="social-list-item">
|
||||
<a href="https://bsky.app/profile/nhcarrigan.com" target="_blank" rel="noreferrer">
|
||||
<i class="fa-brands fa-bluesky"></i><span>Follow us on Bluesky~!</span>
|
||||
</a>
|
||||
</div>
|
||||
<hr class="social-list-divider" />
|
||||
<div class="social-list-item">
|
||||
<a href="https://www.linkedin.com/company/nhcarrigan" target="_blank" rel="noreferrer">
|
||||
<i class="fa-brands fa-linkedin"></i><span>Connect with us on LinkedIn~!</span>
|
||||
</a>
|
||||
</div>
|
||||
<hr class="social-list-divider" />
|
||||
<div class="social-list-item">
|
||||
<a href="https://www.reddit.com/r/nhcarrigan/" target="_blank" rel="noreferrer">
|
||||
<i class="fa-brands fa-reddit"></i><span>Join our subreddit~!</span>
|
||||
</a>
|
||||
</div>
|
||||
<hr class="social-list-divider" />
|
||||
<div class="social-list-item">
|
||||
<a href="https://www.youtube.com/@naomilgbt" target="_blank" rel="noreferrer">
|
||||
<i class="fa-brands fa-youtube"></i><span>Subscribe to our YouTube~!</span>
|
||||
</a>
|
||||
</div>
|
||||
<hr class="social-list-divider" />
|
||||
<div class="social-list-item">
|
||||
<a href="https://twitch.tv/naomilgbt" target="_blank" rel="noreferrer">
|
||||
<i class="fa-brands fa-twitch"></i><span>Subscribe to our Twitch~!</span>
|
||||
</a>
|
||||
</div>
|
||||
<hr class="social-list-divider" />
|
||||
<div class="social-list-item">
|
||||
<a href="https://x.com/nhcarrigan1" target="_blank" rel="noreferrer">
|
||||
<i class="fa-brands fa-twitter"></i><span>We are even on Twitter~!</span>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</footer>
|
||||
<script>
|
||||
const showSocialsButton = document.querySelector(
|
||||
"#show-socials-button",
|
||||
);
|
||||
const socialList = document.querySelector("#social-list");
|
||||
const toggleSocials = () => {
|
||||
if (!socialList) {
|
||||
throw new Error("Social list element not found.");
|
||||
}
|
||||
if (socialList.style.display === "block") {
|
||||
socialList.style.display = "none";
|
||||
showSocialsButton?.setAttribute("aria-expanded", "false");
|
||||
showSocialsButton?.setAttribute("aria-label", "Show Socials");
|
||||
return;
|
||||
}
|
||||
socialList.style.display = "block";
|
||||
showSocialsButton?.setAttribute("aria-expanded", "true");
|
||||
showSocialsButton?.setAttribute("aria-label", "Hide Socials");
|
||||
};
|
||||
showSocialsButton?.addEventListener("click", toggleSocials);
|
||||
</script>
|
||||
<script src="https://widgets.tree-nation.com/js/widgets/v1/widgets.min.js?v=1.0"></script>
|
||||
<script>
|
||||
const interval = setInterval(() => {
|
||||
const tree = document.querySelector("#tree-nation-offset-website");
|
||||
if (!tree) {
|
||||
console.log("DOM has not hydrated yet, cannot load TreeNation badge.");
|
||||
return;
|
||||
}
|
||||
TreeNationOffsetWebsite({
|
||||
code: "a17464e0cd351220",
|
||||
lang: "en",
|
||||
theme: "dark",
|
||||
}).render("#tree-nation-offset-website");
|
||||
clearInterval(interval);
|
||||
}, 1000);
|
||||
</script>
|
||||
<script src="{{AssetUrlPrefix}}/js/index.js?v={{AssetVersion}}" onerror="alert('Failed to load asset files from ' + this.src + '. Please make sure the asset files can be accessed.')"></script>
|
||||
</body>
|
||||
</html
|
||||
@@ -0,0 +1 @@
|
||||
<a class="item" href="{{AppSubUrl}}/nhcarrigan">Public Repositories</a>
|
||||
@@ -0,0 +1,14 @@
|
||||
<script async src="https://analytics.nhcarrigan.com/js/pa-YUXAn1vhhRttySUAw_LMN.js"></script>
|
||||
<script>
|
||||
window.plausible=window.plausible||function(){(plausible.q=plausible.q||[]).push(arguments)},plausible.init=plausible.init||function(i){plausible.o=i||{}};
|
||||
plausible.init({
|
||||
customProperties: {
|
||||
domain: "git.nhcarrigan.com",
|
||||
page: document.querySelector("title")?.innerText ?? "Unknown Gitea Page",
|
||||
path: window.location.pathname,
|
||||
},
|
||||
})
|
||||
</script>
|
||||
<script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-3569924701890974"
|
||||
crossorigin="anonymous"></script>
|
||||
<script src="https://kit.fontawesome.com/f949111719.js"></script>
|
||||
@@ -0,0 +1,28 @@
|
||||
{{template "base/head" .}}
|
||||
<div role="main" aria-label="{{if .IsSigned}}{{ctx.Locale.Tr "dashboard"}}{{else}}{{ctx.Locale.Tr "home"}}{{end}}" class="page-content home">
|
||||
<div class="tw-mb-8 tw-px-8">
|
||||
<div class="center">
|
||||
<img class="logo" width="220" src="https://cdn.nhcarrigan.com/logo.png" alt="{{ctx.Locale.Tr "logo"}}" />
|
||||
<div class="hero">
|
||||
<h1 class="ui icon header title">
|
||||
{{AppName}}
|
||||
</h1>
|
||||
<h2>Code Repositories</h2>
|
||||
<p>Welcome to our custom Gitea instance! Please check out our <a href="https://git.nhcarrigan.com/nhcarrigan">organisation page</a> for more information.</p>
|
||||
<p>To report bugs or propose features, you should NOT come here. Instead, use the appropriate forum channels in our <a href="https://chat.nhcarrigan.com">Discord community</a>. Our team will triage your tickets there, and if accepted they will be added to the issue tracker for the project here.
|
||||
<p>If you'd like to contribute code, you'll need to <a href="https://forms.nhcarrigan.com/form/PEpB3gA79gxP8wmfEf4zou96opkpUTjssTcaeYjhoi8">join our volunteer team</a> to get access. We restrict both registration and repository/org creation, so you'll be working off of our repos directly.</p>
|
||||
<p>This policy ensures that we can focus our limited resources on delivering you the best products.</p>
|
||||
<h2>Other Repositories</h2>
|
||||
<p>You can find our works across these five organisations:</p>
|
||||
<ul>
|
||||
<li><a href="{{AppSubUrl}}/nhcarrigan">Public Repositories</a></li>
|
||||
<li><a href="{{AppSubUrl}}/nhcarrigan-private">Private Repositories</a></li>
|
||||
<li><a href="{{AppSubUrl}}/nhcarrigan-games">Game Development</a></li>
|
||||
<li><a class="item" href="{{AppSubUrl}}/naomi">Naomi Carrigan</a></li>
|
||||
<li><a class="item" href="{{AppSubUrl}}/nhcarrigan-archive">Archive</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{{template "base/footer" .}}
|
||||
@@ -0,0 +1,28 @@
|
||||
{{template "base/head" .}}
|
||||
<div role="main" aria-label="{{if .IsSigned}}{{ctx.Locale.Tr "dashboard"}}{{else}}{{ctx.Locale.Tr "home"}}{{end}}" class="page-content home">
|
||||
{{template "base/alert" .}}
|
||||
<div class="tw-mb-8 tw-px-8">
|
||||
<div class="center">
|
||||
<img class="logo" width="220" src="https://cdn.nhcarrigan.com/logo.png" alt="{{ctx.Locale.Tr "logo"}}" />
|
||||
<div class="hero">
|
||||
<h1 class="ui icon header title">
|
||||
{{AppName}}
|
||||
</h1>
|
||||
<h2>Code Repositories</h2>
|
||||
<p>Welcome to our custom Gitea instance! Please check out our <a href="https://git.nhcarrigan.com/nhcarrigan">organisation page</a> for more information.</p>
|
||||
<p>To report bugs or propose features, you should NOT come here. Instead, use the appropriate forum channels in our <a href="https://chat.nhcarrigan.com">Discord community</a>. Our team will triage your tickets there, and if accepted they will be added to the issue tracker for the project here.
|
||||
<p>If you'd like to contribute code, you'll need to <a href="https://forms.nhcarrigan.com/form/PEpB3gA79gxP8wmfEf4zou96opkpUTjssTcaeYjhoi8">join our volunteer team</a> to get access. We restrict both registration and repository/org creation, so you'll be working off of our repos directly.</p> <p>This policy ensures that we can focus our limited resources on delivering you the best products.</p>
|
||||
<h2>Other Repositories</h2>
|
||||
<p>You can find our works across these five organisations:</p>
|
||||
<ul>
|
||||
<li><a href="{{AppSubUrl}}/nhcarrigan">Public Repositories</a></li>
|
||||
<li><a href="{{AppSubUrl}}/nhcarrigan-private">Private Repositories</a></li>
|
||||
<li><a href="{{AppSubUrl}}/nhcarrigan-games">Game Development</a></li>
|
||||
<li><a class="item" href="{{AppSubUrl}}/naomi">Naomi Carrigan</a></li>
|
||||
<li><a class="item" href="{{AppSubUrl}}/nhcarrigan-archive">Archive</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{{template "base/footer" .}}
|
||||
Reference in New Issue
Block a user