From b8e736af45a5912c5ba51aa226bead23244437f8 Mon Sep 17 00:00:00 2001 From: Mark Date: Sat, 25 Mar 2023 21:38:59 -0700 Subject: [PATCH] Branding --- README.md | 35 +++--- misc/banner.png | Bin 0 -> 38932 bytes misc/daisy.svg | 279 ++++++++++++++++++++++++++++++++++++++++++++++++ src/main.rs | 9 +- 4 files changed, 306 insertions(+), 17 deletions(-) create mode 100644 misc/banner.png create mode 100644 misc/daisy.svg diff --git a/README.md b/README.md index 1f0caf7..8b9312f 100644 --- a/README.md +++ b/README.md @@ -1,34 +1,45 @@ -## For 1.0 release +![](./misc/banner.png) + +A high-precision partially-symbolic calculator with support for units, derivatives, and more. + +# Warning +This is nowhere near complete. Stay tuned. + + +# TODO + + +## Before For 1.0 release - Tests - Branding - - Replace &str with strings - - Named parameters for Tokens + - Replace strings with &str? - Function application - Commands - Arrows to move cursor - - -## Etc - -# General - Documentation + - Versioning + + +## General - CLI Options - Compile to WASM => webapp -# Internals +## Internals - Non-recursive treeify - Print any expression - Copy expression, print with result -# Features +## Features - Variable definitions - Function definitions - Rational datatype - Units - Dice - Derivatives - - Mini CAS + - MiniCAS - Complex numbers + - Config file + - History to file -# Prompt +## Prompt - Live syntax/output \ No newline at end of file diff --git a/misc/banner.png b/misc/banner.png new file mode 100644 index 0000000000000000000000000000000000000000..a17b81e94f49e695e617b74f6c66f0f18b95d194 GIT binary patch literal 38932 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 literal 0 HcmV?d00001 diff --git a/misc/daisy.svg b/misc/daisy.svg new file mode 100644 index 0000000..870a554 --- /dev/null +++ b/misc/daisy.svg @@ -0,0 +1,279 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Daisy + + + + + + + + + + + + + Daisy + + + + + + + + + + + + + + Daisy + + + diff --git a/src/main.rs b/src/main.rs index 85245d8..408ff4a 100644 --- a/src/main.rs +++ b/src/main.rs @@ -19,12 +19,12 @@ use crate::parser::Token; ###### @@@@@@ # ##@@ @ ## #@ @@ - #@@@@@@@@@@@# + @@@@@@@@@@@@@ @@ @# ## @ @@## # @@@@@@ ###### - Mariposa 0.0.1 + Daisy 0.0.1 */ #[inline(always)] fn draw_greeter(stdout: &mut RawTerminal) -> Result<(), std::io::Error> { @@ -34,12 +34,11 @@ fn draw_greeter(stdout: &mut RawTerminal) -> Result<(), std::io {a} ###### {b} @@@@@@\r\n \ {a}# ##{b}@@ @\r\n \ {a}## #{b}@ @@\r\n \ - {a} #{b}@@@@@@@@@@@{a}#\r\n \ + {a} {b}@@@@@@@@@@@@@{a}\r\n \ {b}@@ @{a}# ##\r\n \ {b}@ @@{a}## #\r\n \ {b} @@@@@@ {a} ###### {r}\r\n \ - \n \ - {t}Mariposa{r} {v}0.0.1{r}\r\n\n", + \n {t}Daisy{r} {v}v0.0.0{r}\r\n\n", a = color::Fg(color::Magenta), b = color::Fg(color::White), t = format!("{}{}", color::Fg(color::White), style::Bold),