Add the SqlitePool to the AppState for Janky data storage

This commit is contained in:
R Tyler Croy 2023-01-28 14:49:02 -08:00
parent c736b2b5a2
commit 0a3b14b942
No known key found for this signature in database
GPG Key ID: E5C92681BEF6CEA2
3 changed files with 665 additions and 3 deletions

View File

@ -9,15 +9,18 @@ use async_std::sync::{Arc, RwLock};
use dotenv::dotenv;
use handlebars::Handlebars;
use log::*;
use sqlx::SqlitePool;
#[derive(Clone, Debug)]
pub struct AppState<'a> {
pub db: SqlitePool,
hb: Arc<RwLock<Handlebars<'a>>>,
}
impl AppState<'_> {
fn new() -> Self {
fn new(db: SqlitePool) -> Self {
Self {
db: db,
hb: Arc::new(RwLock::new(Handlebars::new())),
}
}
@ -85,8 +88,12 @@ async fn main() -> Result<(), tide::Error> {
pretty_env_logger::init();
dotenv().ok();
//let database_url = std::env::var("DATABASE_URL").expect("DATABASE_URL must be set");
let state = AppState::new();
let database_url = std::env::var("DATABASE_URL").unwrap_or(":memory:".to_string());
let state = AppState::new(
SqlitePool::connect(&database_url)
.await
.expect("Failed to open SqlitePool"),
);
state.register_templates().await;
let mut app = tide::with_state(state);

636
static/theme.css Normal file
View File

@ -0,0 +1,636 @@
[data-theme=dark], .app-theme-picker__picker[data-theme=dark] {
--dark-theme-bg-black: hsl(240, 6%, 10%);
--dark-theme-bg-dark: #222;
--dark-theme-bg-medium: #2d2b2b;
--dark-theme-bg-dark-grey: #333;
--dark-theme-bg-medium-grey: #444;
--dark-theme-bg-light-grey: #555;
--dark-theme-bg-very-light-grey: #444;
--background: hsl(240, 6%, 13%);
--very-light-grey: var(--dark-theme-bg-very-light-grey);
--light-grey: var(--dark-theme-bg-medium);
--medium-grey: var(--dark-theme-bg-medium-grey);
--white: var(--dark-theme-bg-dark-grey);
--black: var(--dark-theme-bg-light-grey);
--primary: #53c1ff;
/* Text */
--text-color: rgb(250, 250, 255);
--text-color-secondary: rgb(160, 160, 165);
--call-to-action-text-color: var(--dark-theme-bg-medium);
--call-to-action-link-color: var(--call-to-action-text-color);
/* Alerts */
--alert-success-text-color: #fff;
--alert-success-bg-color: #007e33;
--alert-success-border-color: var(--alert-success-bg-color);
--alert-info-text-color: #fff;
--alert-info-bg-color: #0099cc;
--alert-info-border-color: var(--alert-info-bg-color);
--alert-warning-text-color: #fff;
--alert-warning-bg-color: #ff8800;
--alert-warning-border-color: var(--alert-warning-bg-color);
--alert-danger-text-color: #fff;
--alert-danger-bg-color: #cc0000;
--alert-danger-border-color: var(--alert-danger-bg-color);
/* Buttons */
--btn-primary-bg: #53c1ff;
--btn-secondary-bg: var(--dark-theme-bg-dark);
--btn-secondary-color: var(--btn-primary-color);
--btn-link-bg--hover: var(--dark-theme-bg-dark-grey);
--btn-link-bg--active: var(--dark-theme-bg-dark-grey);
/* Help area */
--help-area-bg-color: var(--dark-theme-bg-dark-grey);
--configure-job-help-area-bg-color: var(--dark-theme-bg-dark);
/* Header */
--logo-bg: var(--dark-theme-bg-dark);
--brand-link-color: var(--primary);
--header-link-color: var(--text-color);
--header-link-color-active: var(--text-color);
--header-bg-classic: #000;
--search-bg: #4d545d;
--search-input-color: var(--text-color);
/* Breadcrumbs */
--breadcrumbs-bg: var(--dark-theme-bg-black);
--breadcrumbs-bg-color--hover: var(--dark-theme-bg-dark);
--breadcrumbs-text-color: var(--text-color);
--breadcrumbs-item-bg-color--hover: var(--dark-theme-bg-dark);
--breadcrumbs-border: var(--dark-theme-bg-dark-grey);
--breadcrumbs-bar-background: hsl(240, 6%, 9%, 0.8);
/* Footer */
--footer-background: hsl(240, 6%, 9%, 0.8);
/* Tooltips */
--tooltip-background: hsl(240, 6%, 23%);
--tooltip-backdrop-filter: contrast(0.6) saturate(4) brightness(0.4) blur(15px);
--tooltip-box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.05),
0 0 8px 2px rgba(0, 0, 30, 0.05),
0 0 1px 1px rgba(0, 0, 20, 0.025),
0 10px 20px rgba(0, 0, 20, 0.15);
/* Dropdowns */
--dropdown-backdrop-filter: contrast(0.85) saturate(2) brightness(0.7) blur(20px);
--dropdown-box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.05),
0 0 8px 2px rgba(0, 0, 30, 0.05),
0 0 1px 1px rgba(0, 0, 20, 0.025),
0 10px 20px rgba(0, 0, 20, 0.3);
/* Links */
--link-color: #53c1ff;
--link-visited-color: #53c1ff;
/* Table */
--table-background: var(--dark-theme-bg-black);
--table-header-foreground: rgb(240, 240, 245);
--table-body-background: var(--background);
--table-body-foreground: rgb(240, 240, 245);
/* Deprecated */
--bigtable-header-bg: var(--dark-theme-bg-black);
--bigtable-header-border-color: var(--dark-theme-bg-dark-grey);
--bigtable-header-text-color: var(--text-color);
--bigtable-row-border-color: var(--dark-theme-bg-dark-grey);
--even-row-color: #020202;
--table-striped-bg--hover: var(--dark-theme-bg-dark-grey);
/* Pane widget */
--pane-border-color: var(--dark-theme-bg-dark-grey);
--pane-header-border-color: var(--dark-theme-bg-dark-grey);
--pane-header-color: var(--dark-theme-bg-black);
/* Tab bar */
--tabs-background: var(--dark-theme-bg-black);
--tabs-item-background: transparent;
--tabs-item-background--hover: rgba(255, 255, 255, 0.05);
--tabs-item-background--active: rgba(255, 255, 255, 0.1);
--tabs-item-background--selected: rgba(255, 255, 255, 0.05);
/* Deprecated */
--tab-link-border-color: var(--dark-theme-bg-dark-grey);
--tab-link-text-color: #999;
--tab-link-checked-bg: var(--dark-theme-bg-black);
--tab-link-checked-text-color: var(--primary);
--tab-link-bg--hover: var(--dark-theme-bg-dark-grey);
--tab-link-bg--active: var(--dark-theme-bg-dark-grey);
/* Side panel */
--panel-header-bg-color: var(--dark-theme-bg-black);
--panel-border-color: rgb(50, 50, 55);
--panel-border-color--hover: var(--dark-theme-bg-black);
--task-link-bg-color--hover: var(--dark-theme-bg-medium-grey);
/* Form */
--input-color: rgb(40, 40, 42);
--input-border: rgb(120, 120, 130);
--input-border-hover: rgb(140, 140, 150);
--focus-input-border: #4bbeff;
--focus-input-glow: rgba(43, 116, 160, 0.4);
--pre-background: var(--dark-theme-bg-black);
--selection-color: rgba(75, 190, 255, 0.5);
--header-search-border: var(--dark-theme-bg-dark-grey);
--input-hidden-password-bg-color: var(--input-color);
/* Text area handle */
--text-area-handle-border: var(--dark-theme-bg-dark-grey);
--text-area-handle-bg-color: var(--text-area-handle-border);
/* Pop out menus */
--menu-bg-color: var(--dark-theme-bg-medium);
--menu-text-color: var(--text-color);
--menu-selected-color: var(--dark-theme-bg-dark);
--menu-box-shadow: none;
/* Manage component */
--manage-option-bg-color--hover: var(--dark-theme-bg-light-grey);
--manage-option-bg-color--active: var(--dark-theme-bg-light-grey);
--manage-option-border-color: var(--dark-theme-bg-light-grey);
/* Add form widget */
--light-bg-color: var(--dark-theme-bg-medium);
--light-bg-color--hover: var(--dark-theme-bg-dark);
--bright-bg-color: var(--dark-theme-bg-dark-grey);
--brightest-bg-color: var(--input-color);
--add-item-btn-decorator-border-color: var(--dark-theme-bg-dark-grey);
--add-item-categories-bg-color--hover: var(--dark-theme-bg-dark-grey);
--add-item-btn-decorator-bg-color: var(--dark-theme-bg-dark-grey);
--configure-job-bottom-sticker-bg-color: var(--dark-theme-bg-dark-grey);
--configure-job-bottom-sticker-border-color: var(--dark-theme-bg-dark-grey);
/* Plugin manager */
--plugin-manager-bg-color-already-upgraded: var(--dark-theme-bg-medium);
--plugin-manager-category-link-bg-color: #5d5b5b;
--plugin-manager-category-link-bg-color--hover: var(--dark-theme-bg-dark-grey);
--plugin-manager-category-link-border-color--hover: var(--dark-theme-bg-black);
--plugin-manager-category-text-color: var(--text-color);
--plugin-manager-category-link-color--hover: #a5a3a3;
--plugin-manager-unavailable-bg-color: var(--dark-theme-bg-medium);
--plugin-manager-unavailable-label-color: var(--text-color);
/* Auto complete */
--auto-complete-bg-color--prehighlight: var(--primary);
}
[data-theme=dark] body, .app-theme-picker__picker[data-theme=dark] body {
color-scheme: dark;
}
[data-theme=dark] {
--light-blue: #8cc6ff;
--blue: hsl(210deg, 100%, 55%);
--dark-blue: #0054a8;
--light-brown: #d1b9a0;
--brown: hsl(30deg, 35%, 45%);
--dark-brown: #5d452d;
--light-cyan: #b3e6ff;
--cyan: hsl(200deg, 100%, 70%);
--dark-cyan: #008fd6;
--light-green: #9bf1b0;
--green: hsl(135deg, 75%, 55%);
--dark-green: #159335;
--light-indigo: #b3a6f2;
--indigo: hsl(250deg, 75%, 60%);
--dark-indigo: #2e17a1;
--light-orange: #ffca80;
--orange: hsl(35deg, 100%, 50%);
--dark-orange: #995900;
--light-pink: #ff99aa;
--pink: hsl(350deg, 100%, 60%);
--dark-pink: #b8001f;
--light-purple: #daa1f7;
--purple: hsl(280deg, 85%, 60%);
--dark-purple: #760eaa;
--light-red: #ffa299;
--red: hsl(5deg, 100%, 60%);
--dark-red: #b80f00;
--light-yellow: #ffec8c;
--yellow: hsl(50deg, 100%, 55%);
--dark-yellow: #a88c00;
}
[data-theme=dark] #jenkins .cm-s-default {
font-family: Consolas, Menlo, Monaco, "Lucida Console", "Liberation Mono", "DejaVu Sans Mono", "Bitstream Vera Sans Mono", "Courier New", monospace, serif;
}
[data-theme=dark] #jenkins .cm-s-default.CodeMirror {
background: #2B2B2B;
color: #A9B7C6;
}
[data-theme=dark] #jenkins .cm-s-default span.cm-meta {
color: #BBB529;
}
[data-theme=dark] #jenkins .cm-s-default span.cm-number {
color: #6897BB;
}
[data-theme=dark] #jenkins .cm-s-default span.cm-keyword {
color: #CC7832;
line-height: 1em;
font-weight: bold;
}
[data-theme=dark] #jenkins .cm-s-default span.cm-def {
color: #A9B7C6;
font-style: italic;
}
[data-theme=dark] #jenkins .cm-s-default span.cm-variable {
color: #A9B7C6;
}
[data-theme=dark] #jenkins .cm-s-default span.cm-variable-2 {
color: #A9B7C6;
}
[data-theme=dark] #jenkins .cm-s-default span.cm-variable-3 {
color: #9876AA;
}
[data-theme=dark] #jenkins .cm-s-default span.cm-type {
color: #AABBCC;
font-weight: bold;
}
[data-theme=dark] #jenkins .cm-s-default span.cm-property {
color: #FFC66D;
}
[data-theme=dark] #jenkins .cm-s-default span.cm-operator {
color: #A9B7C6;
}
[data-theme=dark] #jenkins .cm-s-default span.cm-string {
color: #6A8759;
}
[data-theme=dark] #jenkins .cm-s-default span.cm-string-2 {
color: #6A8759;
}
[data-theme=dark] #jenkins .cm-s-default span.cm-comment {
color: #61A151;
font-style: italic;
}
[data-theme=dark] #jenkins .cm-s-default span.cm-link {
color: #CC7832;
}
[data-theme=dark] #jenkins .cm-s-default span.cm-atom {
color: #CC7832;
}
[data-theme=dark] #jenkins .cm-s-default span.cm-error {
color: #BC3F3C;
}
[data-theme=dark] #jenkins .cm-s-default span.cm-tag {
color: #629755;
font-weight: bold;
font-style: italic;
text-decoration: underline;
}
[data-theme=dark] #jenkins .cm-s-default span.cm-attribute {
color: #6897bb;
}
[data-theme=dark] #jenkins .cm-s-default span.cm-qualifier {
color: #6A8759;
}
[data-theme=dark] #jenkins .cm-s-default span.cm-bracket {
color: #A9B7C6;
}
[data-theme=dark] #jenkins .cm-s-default span.cm-builtin {
color: #FF9E59;
}
[data-theme=dark] #jenkins .cm-s-default span.cm-special {
color: #FF9E59;
}
[data-theme=dark] #jenkins .cm-s-default span.cm-matchhighlight {
color: #FFFFFF;
background-color: rgba(50, 89, 48, 0.7);
font-weight: normal;
}
[data-theme=dark] #jenkins .cm-s-default span.cm-searching {
color: #FFFFFF;
background-color: rgba(61, 115, 59, 0.7);
font-weight: normal;
}
[data-theme=dark] #jenkins .cm-s-default .CodeMirror-cursor {
border-left: 1px solid #A9B7C6;
}
[data-theme=dark] #jenkins .cm-s-default .CodeMirror-activeline-background {
background: #323232;
}
[data-theme=dark] #jenkins .cm-s-default .CodeMirror-gutter {
background: #313335;
border-right: 1px solid #313335;
}
[data-theme=dark] #jenkins .cm-s-default .CodeMirror-guttermarker {
color: #FFEE80;
}
[data-theme=dark] #jenkins .cm-s-default .CodeMirror-guttermarker-subtle {
color: #D0D0D0;
}
[data-theme=dark] #jenkins .cm-s-default .CodeMirrir-linenumber {
color: #606366;
}
[data-theme=dark] #jenkins .cm-s-default .CodeMirror-matchingbracket {
background-color: #3B514D;
color: #FFEF28 !important;
font-weight: bold;
}
[data-theme=dark] #jenkins .cm-s-default div.CodeMirror-selected {
background: #214283;
}
[data-theme=dark] #jenkins .CodeMirror-hints.default {
font-family: Menlo, Monaco, Consolas, "Courier New", monospace;
color: #9C9E9E;
background-color: #3B3E3F !important;
}
[data-theme=dark] #jenkins .CodeMirror-hints.default .CodeMirror-hint-active {
background-color: #494D4E !important;
color: #9C9E9E !important;
}
@media (prefers-color-scheme: dark) {
[data-theme=dark-system], .app-theme-picker__picker[data-theme=dark-system] {
--dark-theme-bg-black: hsl(240, 6%, 10%);
--dark-theme-bg-dark: #222;
--dark-theme-bg-medium: #2d2b2b;
--dark-theme-bg-dark-grey: #333;
--dark-theme-bg-medium-grey: #444;
--dark-theme-bg-light-grey: #555;
--dark-theme-bg-very-light-grey: #444;
--background: hsl(240, 6%, 13%);
--very-light-grey: var(--dark-theme-bg-very-light-grey);
--light-grey: var(--dark-theme-bg-medium);
--medium-grey: var(--dark-theme-bg-medium-grey);
--white: var(--dark-theme-bg-dark-grey);
--black: var(--dark-theme-bg-light-grey);
--primary: #53c1ff;
/* Text */
--text-color: rgb(250, 250, 255);
--text-color-secondary: rgb(160, 160, 165);
--call-to-action-text-color: var(--dark-theme-bg-medium);
--call-to-action-link-color: var(--call-to-action-text-color);
/* Alerts */
--alert-success-text-color: #fff;
--alert-success-bg-color: #007e33;
--alert-success-border-color: var(--alert-success-bg-color);
--alert-info-text-color: #fff;
--alert-info-bg-color: #0099cc;
--alert-info-border-color: var(--alert-info-bg-color);
--alert-warning-text-color: #fff;
--alert-warning-bg-color: #ff8800;
--alert-warning-border-color: var(--alert-warning-bg-color);
--alert-danger-text-color: #fff;
--alert-danger-bg-color: #cc0000;
--alert-danger-border-color: var(--alert-danger-bg-color);
/* Buttons */
--btn-primary-bg: #53c1ff;
--btn-secondary-bg: var(--dark-theme-bg-dark);
--btn-secondary-color: var(--btn-primary-color);
--btn-link-bg--hover: var(--dark-theme-bg-dark-grey);
--btn-link-bg--active: var(--dark-theme-bg-dark-grey);
/* Help area */
--help-area-bg-color: var(--dark-theme-bg-dark-grey);
--configure-job-help-area-bg-color: var(--dark-theme-bg-dark);
/* Header */
--logo-bg: var(--dark-theme-bg-dark);
--brand-link-color: var(--primary);
--header-link-color: var(--text-color);
--header-link-color-active: var(--text-color);
--header-bg-classic: #000;
--search-bg: #4d545d;
--search-input-color: var(--text-color);
/* Breadcrumbs */
--breadcrumbs-bg: var(--dark-theme-bg-black);
--breadcrumbs-bg-color--hover: var(--dark-theme-bg-dark);
--breadcrumbs-text-color: var(--text-color);
--breadcrumbs-item-bg-color--hover: var(--dark-theme-bg-dark);
--breadcrumbs-border: var(--dark-theme-bg-dark-grey);
--breadcrumbs-bar-background: hsl(240, 6%, 9%, 0.8);
/* Footer */
--footer-background: hsl(240, 6%, 9%, 0.8);
/* Tooltips */
--tooltip-background: hsl(240, 6%, 23%);
--tooltip-backdrop-filter: contrast(0.6) saturate(4) brightness(0.4) blur(15px);
--tooltip-box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.05),
0 0 8px 2px rgba(0, 0, 30, 0.05),
0 0 1px 1px rgba(0, 0, 20, 0.025),
0 10px 20px rgba(0, 0, 20, 0.15);
/* Dropdowns */
--dropdown-backdrop-filter: contrast(0.85) saturate(2) brightness(0.7) blur(20px);
--dropdown-box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.05),
0 0 8px 2px rgba(0, 0, 30, 0.05),
0 0 1px 1px rgba(0, 0, 20, 0.025),
0 10px 20px rgba(0, 0, 20, 0.3);
/* Links */
--link-color: #53c1ff;
--link-visited-color: #53c1ff;
/* Table */
--table-background: var(--dark-theme-bg-black);
--table-header-foreground: rgb(240, 240, 245);
--table-body-background: var(--background);
--table-body-foreground: rgb(240, 240, 245);
/* Deprecated */
--bigtable-header-bg: var(--dark-theme-bg-black);
--bigtable-header-border-color: var(--dark-theme-bg-dark-grey);
--bigtable-header-text-color: var(--text-color);
--bigtable-row-border-color: var(--dark-theme-bg-dark-grey);
--even-row-color: #020202;
--table-striped-bg--hover: var(--dark-theme-bg-dark-grey);
/* Pane widget */
--pane-border-color: var(--dark-theme-bg-dark-grey);
--pane-header-border-color: var(--dark-theme-bg-dark-grey);
--pane-header-color: var(--dark-theme-bg-black);
/* Tab bar */
--tabs-background: var(--dark-theme-bg-black);
--tabs-item-background: transparent;
--tabs-item-background--hover: rgba(255, 255, 255, 0.05);
--tabs-item-background--active: rgba(255, 255, 255, 0.1);
--tabs-item-background--selected: rgba(255, 255, 255, 0.05);
/* Deprecated */
--tab-link-border-color: var(--dark-theme-bg-dark-grey);
--tab-link-text-color: #999;
--tab-link-checked-bg: var(--dark-theme-bg-black);
--tab-link-checked-text-color: var(--primary);
--tab-link-bg--hover: var(--dark-theme-bg-dark-grey);
--tab-link-bg--active: var(--dark-theme-bg-dark-grey);
/* Side panel */
--panel-header-bg-color: var(--dark-theme-bg-black);
--panel-border-color: rgb(50, 50, 55);
--panel-border-color--hover: var(--dark-theme-bg-black);
--task-link-bg-color--hover: var(--dark-theme-bg-medium-grey);
/* Form */
--input-color: rgb(40, 40, 42);
--input-border: rgb(120, 120, 130);
--input-border-hover: rgb(140, 140, 150);
--focus-input-border: #4bbeff;
--focus-input-glow: rgba(43, 116, 160, 0.4);
--pre-background: var(--dark-theme-bg-black);
--selection-color: rgba(75, 190, 255, 0.5);
--header-search-border: var(--dark-theme-bg-dark-grey);
--input-hidden-password-bg-color: var(--input-color);
/* Text area handle */
--text-area-handle-border: var(--dark-theme-bg-dark-grey);
--text-area-handle-bg-color: var(--text-area-handle-border);
/* Pop out menus */
--menu-bg-color: var(--dark-theme-bg-medium);
--menu-text-color: var(--text-color);
--menu-selected-color: var(--dark-theme-bg-dark);
--menu-box-shadow: none;
/* Manage component */
--manage-option-bg-color--hover: var(--dark-theme-bg-light-grey);
--manage-option-bg-color--active: var(--dark-theme-bg-light-grey);
--manage-option-border-color: var(--dark-theme-bg-light-grey);
/* Add form widget */
--light-bg-color: var(--dark-theme-bg-medium);
--light-bg-color--hover: var(--dark-theme-bg-dark);
--bright-bg-color: var(--dark-theme-bg-dark-grey);
--brightest-bg-color: var(--input-color);
--add-item-btn-decorator-border-color: var(--dark-theme-bg-dark-grey);
--add-item-categories-bg-color--hover: var(--dark-theme-bg-dark-grey);
--add-item-btn-decorator-bg-color: var(--dark-theme-bg-dark-grey);
--configure-job-bottom-sticker-bg-color: var(--dark-theme-bg-dark-grey);
--configure-job-bottom-sticker-border-color: var(--dark-theme-bg-dark-grey);
/* Plugin manager */
--plugin-manager-bg-color-already-upgraded: var(--dark-theme-bg-medium);
--plugin-manager-category-link-bg-color: #5d5b5b;
--plugin-manager-category-link-bg-color--hover: var(--dark-theme-bg-dark-grey);
--plugin-manager-category-link-border-color--hover: var(--dark-theme-bg-black);
--plugin-manager-category-text-color: var(--text-color);
--plugin-manager-category-link-color--hover: #a5a3a3;
--plugin-manager-unavailable-bg-color: var(--dark-theme-bg-medium);
--plugin-manager-unavailable-label-color: var(--text-color);
/* Auto complete */
--auto-complete-bg-color--prehighlight: var(--primary);
}
[data-theme=dark-system] body, .app-theme-picker__picker[data-theme=dark-system] body {
color-scheme: dark;
}
[data-theme=dark-system] {
--light-blue: #8cc6ff;
--blue: hsl(210deg, 100%, 55%);
--dark-blue: #0054a8;
--light-brown: #d1b9a0;
--brown: hsl(30deg, 35%, 45%);
--dark-brown: #5d452d;
--light-cyan: #b3e6ff;
--cyan: hsl(200deg, 100%, 70%);
--dark-cyan: #008fd6;
--light-green: #9bf1b0;
--green: hsl(135deg, 75%, 55%);
--dark-green: #159335;
--light-indigo: #b3a6f2;
--indigo: hsl(250deg, 75%, 60%);
--dark-indigo: #2e17a1;
--light-orange: #ffca80;
--orange: hsl(35deg, 100%, 50%);
--dark-orange: #995900;
--light-pink: #ff99aa;
--pink: hsl(350deg, 100%, 60%);
--dark-pink: #b8001f;
--light-purple: #daa1f7;
--purple: hsl(280deg, 85%, 60%);
--dark-purple: #760eaa;
--light-red: #ffa299;
--red: hsl(5deg, 100%, 60%);
--dark-red: #b80f00;
--light-yellow: #ffec8c;
--yellow: hsl(50deg, 100%, 55%);
--dark-yellow: #a88c00;
}
[data-theme=dark-system] #jenkins .cm-s-default {
font-family: Consolas, Menlo, Monaco, "Lucida Console", "Liberation Mono", "DejaVu Sans Mono", "Bitstream Vera Sans Mono", "Courier New", monospace, serif;
}
[data-theme=dark-system] #jenkins .cm-s-default.CodeMirror {
background: #2B2B2B;
color: #A9B7C6;
}
[data-theme=dark-system] #jenkins .cm-s-default span.cm-meta {
color: #BBB529;
}
[data-theme=dark-system] #jenkins .cm-s-default span.cm-number {
color: #6897BB;
}
[data-theme=dark-system] #jenkins .cm-s-default span.cm-keyword {
color: #CC7832;
line-height: 1em;
font-weight: bold;
}
[data-theme=dark-system] #jenkins .cm-s-default span.cm-def {
color: #A9B7C6;
font-style: italic;
}
[data-theme=dark-system] #jenkins .cm-s-default span.cm-variable {
color: #A9B7C6;
}
[data-theme=dark-system] #jenkins .cm-s-default span.cm-variable-2 {
color: #A9B7C6;
}
[data-theme=dark-system] #jenkins .cm-s-default span.cm-variable-3 {
color: #9876AA;
}
[data-theme=dark-system] #jenkins .cm-s-default span.cm-type {
color: #AABBCC;
font-weight: bold;
}
[data-theme=dark-system] #jenkins .cm-s-default span.cm-property {
color: #FFC66D;
}
[data-theme=dark-system] #jenkins .cm-s-default span.cm-operator {
color: #A9B7C6;
}
[data-theme=dark-system] #jenkins .cm-s-default span.cm-string {
color: #6A8759;
}
[data-theme=dark-system] #jenkins .cm-s-default span.cm-string-2 {
color: #6A8759;
}
[data-theme=dark-system] #jenkins .cm-s-default span.cm-comment {
color: #61A151;
font-style: italic;
}
[data-theme=dark-system] #jenkins .cm-s-default span.cm-link {
color: #CC7832;
}
[data-theme=dark-system] #jenkins .cm-s-default span.cm-atom {
color: #CC7832;
}
[data-theme=dark-system] #jenkins .cm-s-default span.cm-error {
color: #BC3F3C;
}
[data-theme=dark-system] #jenkins .cm-s-default span.cm-tag {
color: #629755;
font-weight: bold;
font-style: italic;
text-decoration: underline;
}
[data-theme=dark-system] #jenkins .cm-s-default span.cm-attribute {
color: #6897bb;
}
[data-theme=dark-system] #jenkins .cm-s-default span.cm-qualifier {
color: #6A8759;
}
[data-theme=dark-system] #jenkins .cm-s-default span.cm-bracket {
color: #A9B7C6;
}
[data-theme=dark-system] #jenkins .cm-s-default span.cm-builtin {
color: #FF9E59;
}
[data-theme=dark-system] #jenkins .cm-s-default span.cm-special {
color: #FF9E59;
}
[data-theme=dark-system] #jenkins .cm-s-default span.cm-matchhighlight {
color: #FFFFFF;
background-color: rgba(50, 89, 48, 0.7);
font-weight: normal;
}
[data-theme=dark-system] #jenkins .cm-s-default span.cm-searching {
color: #FFFFFF;
background-color: rgba(61, 115, 59, 0.7);
font-weight: normal;
}
[data-theme=dark-system] #jenkins .cm-s-default .CodeMirror-cursor {
border-left: 1px solid #A9B7C6;
}
[data-theme=dark-system] #jenkins .cm-s-default .CodeMirror-activeline-background {
background: #323232;
}
[data-theme=dark-system] #jenkins .cm-s-default .CodeMirror-gutter {
background: #313335;
border-right: 1px solid #313335;
}
[data-theme=dark-system] #jenkins .cm-s-default .CodeMirror-guttermarker {
color: #FFEE80;
}
[data-theme=dark-system] #jenkins .cm-s-default .CodeMirror-guttermarker-subtle {
color: #D0D0D0;
}
[data-theme=dark-system] #jenkins .cm-s-default .CodeMirrir-linenumber {
color: #606366;
}
[data-theme=dark-system] #jenkins .cm-s-default .CodeMirror-matchingbracket {
background-color: #3B514D;
color: #FFEF28 !important;
font-weight: bold;
}
[data-theme=dark-system] #jenkins .cm-s-default div.CodeMirror-selected {
background: #214283;
}
[data-theme=dark-system] #jenkins .CodeMirror-hints.default {
font-family: Menlo, Monaco, Consolas, "Courier New", monospace;
color: #9C9E9E;
background-color: #3B3E3F !important;
}
[data-theme=dark-system] #jenkins .CodeMirror-hints.default .CodeMirror-hint-active {
background-color: #494D4E !important;
color: #9C9E9E !important;
}
}
/*# sourceMappingURL=theme.css.map */

19
views/index.hbs Normal file
View File

@ -0,0 +1,19 @@
<!doctype html>
<html lang="en">
<head>
<title>Janky</title>
<link type="text/css" rel="stylesheet" href="/theme.css"/>
</head>
<body class="text-center">
<div class="cover-container d-flex h-100 p-3 mx-auto flex-column">
<main role="main" class="inner cover">
<p>
This is so Janky
</p>
</main>
</div>
</body>
</html>