diff --git a/README.md b/README.md index 514259a..c1bd6db 100644 --- a/README.md +++ b/README.md @@ -290,12 +290,12 @@ max_height = 500 # Visual adjustments -[formatting] +[style] # how bibliography references should be displayed bib_ref_display = '{{number}}' # the chosen theme for the document -# one of: GithubLight, SolarizedLight, OceanLight, SolarizedDark, OceanDark +# one of: GithubLight, SolarizedLight, OceanLight, SolarizedDark, OceanDark, MagicDark theme = 'GithubLight' # custom metadata diff --git a/src/format/assets/base.scss b/src/format/assets/base.scss index d058082..adf221c 100644 --- a/src/format/assets/base.scss +++ b/src/format/assets/base.scss @@ -1,5 +1,5 @@ body { - background-color: $background-color-variant-2; + background-color: $body-background; overflow-x: hidden; color: $primary-color; word-break: break-word; @@ -50,7 +50,7 @@ code { pre { font-family: "Fira Code", "Mono", monospace; padding: 0.8em 0.2em; - background-color: $background-color-variant-1 !important; + background-color: $code-background !important; border-radius: 0.25em; overflow: auto; } @@ -58,7 +58,7 @@ code { &.inlineCode { font-family: "Fira Code", monospace; border-radius: 0.1em; - background-color: $background-color-variant-1; + background-color: $code-background; padding: 0 0.1em; } } @@ -77,11 +77,11 @@ table { tr { &:nth-child(odd) { - background-color: $background-color-variant-2; + background-color: $table-background-alt; } &:nth-child(1) { - background-color: $background-color-variant-2; + background-color: $table-background-alt; font-weight: bold; border-bottom: 1px solid invert($background-color) } @@ -107,11 +107,11 @@ a { } .quote { - border-left: 0.3em solid $background-color-variant-3; + border-left: 0.3em solid $quote-background-alt; border-radius: 0.2em; padding-left: 1em; margin-left: 0; - background-color: $background-color-variant-1; + background-color: $quote-background; .metadata { font-style: italic; diff --git a/src/format/assets/dark-magic.scss b/src/format/assets/dark-magic.scss new file mode 100644 index 0000000..f1cac35 --- /dev/null +++ b/src/format/assets/dark-magic.scss @@ -0,0 +1,14 @@ +$background-color: #1e1d2c; +$background-color-variant-1: lighten($background-color, 7%); +$background-color-variant-2: lighten($background-color, 14%); +$background-color-variant-3: lighten($background-color, 21%); + +$primary-color: #EEE; +$primary-variant-1: darken($primary-color, 14%); +$secondary-color: #3aa7df; + +$body-background: darken($background-color, 5%); +$code-background: lighten($background-color, 5%); +$table-background-alt: $background-color-variant-2; +$quote-background: lighten($background-color-variant-1, 3%); +$quote-background-alt: $background-color-variant-3; \ No newline at end of file diff --git a/src/format/assets/dark-ocean.scss b/src/format/assets/dark-ocean.scss index 0411d68..510f274 100644 --- a/src/format/assets/dark-ocean.scss +++ b/src/format/assets/dark-ocean.scss @@ -2,6 +2,13 @@ $background-color: darken(#2b303b, 8%); $background-color-variant-1: lighten($background-color, 7%); $background-color-variant-2: lighten($background-color, 14%); $background-color-variant-3: lighten($background-color, 21%); + $primary-color: #EEE; $primary-variant-1: darken($primary-color, 14%); -$secondary-color: #3aa7df; \ No newline at end of file +$secondary-color: #3aa7df; + +$body-background: darken($background-color, 5%); +$code-background: $background-color-variant-1; +$table-background-alt: $background-color-variant-2; +$quote-background: lighten($background-color-variant-1, 3%); +$quote-background-alt: $background-color-variant-3; \ No newline at end of file diff --git a/src/format/assets/dark-solarized.scss b/src/format/assets/dark-solarized.scss index 8e0784f..a067a27 100644 --- a/src/format/assets/dark-solarized.scss +++ b/src/format/assets/dark-solarized.scss @@ -5,3 +5,9 @@ $background-color-variant-3: lighten($background-color, 21%); $primary-color: #EEE; $primary-variant-1: darken($primary-color, 14%); $secondary-color: #0096c9; + +$body-background: darken($background-color, 3%); +$code-background: $background-color-variant-1; +$table-background-alt: lighten($background-color, 10%); +$quote-background: lighten($background-color-variant-1, 3%); +$quote-background-alt: $background-color-variant-3; \ No newline at end of file diff --git a/src/format/assets/light-github.scss b/src/format/assets/light-github.scss index 2d53d91..05d74cb 100644 --- a/src/format/assets/light-github.scss +++ b/src/format/assets/light-github.scss @@ -4,4 +4,10 @@ $background-color-variant-2: darken($background-color, 14%); $background-color-variant-3: darken($background-color, 21%); $primary-color: #000; $primary-variant-1: lighten($primary-color, 14%); -$secondary-color: #00286a; \ No newline at end of file +$secondary-color: #00286a; + +$body-background: $background-color-variant-1; +$code-background: $background-color-variant-1; +$table-background-alt: $background-color-variant-2; +$quote-background: $background-color-variant-2; +$quote-background-alt: $background-color-variant-3; \ No newline at end of file diff --git a/src/format/assets/light-ocean.scss b/src/format/assets/light-ocean.scss index c1bf8b9..af7aef2 100644 --- a/src/format/assets/light-ocean.scss +++ b/src/format/assets/light-ocean.scss @@ -5,3 +5,9 @@ $background-color-variant-3: darken($background-color, 21%); $primary-color: #112; $primary-variant-1: lighten($primary-color, 14%); $secondary-color: #00348e; + +$body-background: $background-color-variant-1; +$code-background: $background-color-variant-1; +$table-background-alt: $background-color-variant-2; +$quote-background: $background-color-variant-2; +$quote-background-alt: $background-color-variant-3; \ No newline at end of file diff --git a/src/format/assets/light-solarized.scss b/src/format/assets/light-solarized.scss index eee3eb6..dcfbb87 100644 --- a/src/format/assets/light-solarized.scss +++ b/src/format/assets/light-solarized.scss @@ -5,3 +5,9 @@ $background-color-variant-3: darken($background-color, 12%); $primary-color: #112; $primary-variant-1: lighten($primary-color, 14%); $secondary-color: #2b61be; + +$body-background: $background-color-variant-1; +$code-background: $background-color-variant-1; +$table-background-alt: $background-color-variant-2; +$quote-background: $background-color-variant-2; +$quote-background-alt: $background-color-variant-3; \ No newline at end of file diff --git a/src/format/html/html_writer.rs b/src/format/html/html_writer.rs index 50c28ef..1a518b3 100644 --- a/src/format/html/html_writer.rs +++ b/src/format/html/html_writer.rs @@ -1,4 +1,4 @@ -use crate::settings::format_settings::Theme; +use crate::settings::style_settings::Theme; use std::io; use std::io::Write; diff --git a/src/format/style.rs b/src/format/style.rs index ef6f03d..c73eb9c 100644 --- a/src/format/style.rs +++ b/src/format/style.rs @@ -1,4 +1,4 @@ -use crate::settings::format_settings::Theme; +use crate::settings::style_settings::Theme; use std::time::Instant; use syntect::highlighting::ThemeSet; use syntect::parsing::SyntaxSet; @@ -12,6 +12,7 @@ pub fn get_css_for_theme(theme: Theme) -> String { Theme::SolarizedLight => include_str!("assets/light-solarized.scss"), Theme::OceanDark => include_str!("assets/dark-ocean.scss"), Theme::OceanLight => include_str!("assets/light-ocean.scss"), + Theme::MagicDark => include_str!("assets/dark-magic.scss"), }; let style = format!("{}\n{}", vars, include_str!("assets/base.scss")); @@ -33,6 +34,7 @@ pub fn get_code_theme_for_theme(theme: Theme) -> (syntect::highlighting::Theme, Theme::SolarizedLight => "Solarized (light)", Theme::OceanDark => "base16-ocean.dark", Theme::OceanLight => "base16-ocean.light", + Theme::MagicDark => "base16-ocean.dark", }; return (TS.themes[theme].clone(), PS.clone()); diff --git a/src/main.rs b/src/main.rs index 3bd88b6..ddb7d5c 100644 --- a/src/main.rs +++ b/src/main.rs @@ -207,10 +207,7 @@ fn render_format(opt: &RenderOptions, document: Document, writer: BufWriter) { - let mut writer = HTMLWriter::new( - Box::new(writer), - document.config.lock().formatting.theme.clone(), - ); + let mut writer = HTMLWriter::new(Box::new(writer), document.config.lock().style.theme.clone()); document.to_html(&mut writer).unwrap(); writer.flush().unwrap(); } diff --git a/src/parser/inline.rs b/src/parser/inline.rs index 5be3fa6..2665307 100644 --- a/src/parser/inline.rs +++ b/src/parser/inline.rs @@ -373,7 +373,7 @@ impl ParseInline for Parser { .document .config .lock() - .formatting + .style .bib_ref_display .clone(), ), diff --git a/src/settings/mod.rs b/src/settings/mod.rs index d742c03..a76cec0 100644 --- a/src/settings/mod.rs +++ b/src/settings/mod.rs @@ -1,10 +1,10 @@ use crate::elements::{Metadata, MetadataValue}; use crate::settings::feature_settings::FeatureSettings; -use crate::settings::format_settings::FormatSettings; use crate::settings::image_settings::ImageSettings; use crate::settings::import_settings::ImportSettings; use crate::settings::metadata_settings::MetadataSettings; use crate::settings::pdf_settings::PDFSettings; +use crate::settings::style_settings::StyleSettings; use config::{ConfigError, Source}; use serde::{Deserialize, Serialize}; use std::collections::HashMap; @@ -15,11 +15,11 @@ use std::mem; use std::path::PathBuf; pub mod feature_settings; -pub mod format_settings; pub mod image_settings; pub mod import_settings; pub mod metadata_settings; pub mod pdf_settings; +pub mod style_settings; pub type SettingsResult = Result; @@ -67,7 +67,7 @@ pub struct Settings { pub imports: ImportSettings, pub pdf: PDFSettings, pub images: ImageSettings, - pub formatting: FormatSettings, + pub style: StyleSettings, pub custom_attributes: HashMap, } diff --git a/src/settings/format_settings.rs b/src/settings/style_settings.rs similarity index 85% rename from src/settings/format_settings.rs rename to src/settings/style_settings.rs index 07b7748..c5b43d9 100644 --- a/src/settings/format_settings.rs +++ b/src/settings/style_settings.rs @@ -1,12 +1,12 @@ use serde::{Deserialize, Serialize}; #[derive(Serialize, Deserialize, Clone, Debug)] -pub struct FormatSettings { +pub struct StyleSettings { pub bib_ref_display: String, pub theme: Theme, } -impl Default for FormatSettings { +impl Default for StyleSettings { fn default() -> Self { Self { bib_ref_display: "{{number}}".to_string(), @@ -22,4 +22,5 @@ pub enum Theme { SolarizedLight, OceanDark, OceanLight, + MagicDark, }