diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml new file mode 100644 index 0000000..985c9ea --- /dev/null +++ b/.github/FUNDING.yml @@ -0,0 +1 @@ +github: [typst] diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000..fe3508d --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,11 @@ +name: Continuous integration +on: [push, pull_request] + +jobs: + ci: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: dtolnay/rust-toolchain@stable + - run: cargo build + - run: cargo test diff --git a/Cargo.lock b/Cargo.lock new file mode 100644 index 0000000..b0bfd13 --- /dev/null +++ b/Cargo.lock @@ -0,0 +1,7 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 3 + +[[package]] +name = "codex" +version = "0.1.0" diff --git a/Cargo.toml b/Cargo.toml new file mode 100644 index 0000000..f21d3db --- /dev/null +++ b/Cargo.toml @@ -0,0 +1,11 @@ +[package] +name = "codex" +version = "0.1.0" +authors = ["The Typst Project Developers"] +edition = "2021" +description = "Human-friendly notation for Unicode symbols." +repository = "https://github.com/typst/codex" +readme = "README.md" +license = "Apache-2.0" +categories = ["encoding", "text-processing"] +keywords = ["unicode", "symbols"] diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..1b5ec8b --- /dev/null +++ b/LICENSE @@ -0,0 +1,176 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS diff --git a/README.md b/README.md new file mode 100644 index 0000000..0a00de4 --- /dev/null +++ b/README.md @@ -0,0 +1,8 @@ +# codex +[![Crates.io](https://img.shields.io/crates/v/codex.svg)](https://crates.io/crates/codex) +[![Documentation](https://docs.rs/codex/badge.svg)](https://docs.rs/codex) + +Human-friendly notation for Unicode symbols. + +## License +This crate is licensed under the Apache 2.0 license. diff --git a/build.rs b/build.rs new file mode 100644 index 0000000..2e2fd45 --- /dev/null +++ b/build.rs @@ -0,0 +1,198 @@ +use std::fmt::Write; +use std::iter::Peekable; +use std::path::Path; + +type StrResult = Result; + +/// A module of definitions. +struct Module<'a>(Vec<(&'a str, Def<'a>)>); + +impl<'a> Module<'a> { + fn new(mut list: Vec<(&'a str, Def<'a>)>) -> Self { + list.sort_by_key(|&(name, _)| name); + Self(list) + } +} + +/// A definition in a module. +enum Def<'a> { + Symbol(Symbol<'a>), + Module(Module<'a>), +} + +/// A symbol, either a leaf or with modifiers. +enum Symbol<'a> { + Single(char), + Multi(Vec<(&'a str, char)>), +} + +/// A single line during parsing. +#[derive(Debug, Copy, Clone)] +enum Line<'a> { + Blank, + ModuleStart(&'a str), + ModuleEnd, + Symbol(&'a str, Option), + Variant(&'a str, char), +} + +fn main() { + println!("cargo::rerun-if-changed=build.rs"); + + let mut buf = String::new(); + process(&mut buf, Path::new("src/modules/sym.txt"), "SYM", "Named general symbols."); + process(&mut buf, Path::new("src/modules/emoji.txt"), "EMOJI", "Named emoji."); + + let out = std::env::var_os("OUT_DIR").unwrap(); + let dest = Path::new(&out).join("out.rs"); + std::fs::write(&dest, buf).unwrap(); +} + +/// Processes a single file and turns it into a global module. +fn process(buf: &mut String, file: &Path, name: &str, desc: &str) { + println!("cargo::rerun-if-changed={}", file.display()); + + let text = std::fs::read_to_string(file).unwrap(); + let mut line_nr = 0; + let mut iter = text + .lines() + .inspect(|_| line_nr += 1) + .map(tokenize) + .filter(|line| !matches!(line, Ok(Line::Blank))) + .peekable(); + + let module = match parse(&mut iter) { + Ok(defs) => Module::new(defs), + Err(e) => { + let message = format!("{}:{}: {e}", file.display(), line_nr); + println!("cargo::warning={message}"); + std::process::exit(1); + } + }; + + write!(buf, "#[doc = {desc:?}] pub const {name}: Module = ").unwrap(); + encode(buf, &module); + buf.push_str(";"); +} + +/// Tokenizes and classifies a line. +fn tokenize(line: &str) -> StrResult { + // Strip comments. + let line = line.split_once("//").map_or(line, |(head, _)| head); + + // Ignore empty lines. + let line = line.trim(); + if line.is_empty() { + return Ok(Line::Blank); + } + + let (head, tail) = match line.split_once(' ') { + Some((a, b)) => (a, Some(b)), + None => (line, None), + }; + + Ok(if tail == Some("{") { + validate_ident(head)?; + Line::ModuleStart(head) + } else if head == "}" && tail.is_none() { + Line::ModuleEnd + } else if let Some(rest) = head.strip_prefix('.') { + for part in rest.split('.') { + validate_ident(part)?; + } + let c = decode_char(tail.ok_or("missing char")?)?; + Line::Variant(rest, c) + } else { + validate_ident(head)?; + let c = tail.map(decode_char).transpose()?; + Line::Symbol(head, c) + }) +} + +/// Ensures that a string is a valid identifier. In `codex`, we use very strict +/// rules and allow only alphabetic ASCII chars. +fn validate_ident(string: &str) -> StrResult<()> { + if !string.is_empty() && string.chars().all(|c| c.is_ascii_alphabetic()) { + return Ok(()); + } + Err(format!("invalid identifier: {string:?}")) +} + +/// Extracts either a single char or parses a U+XXXX escape. +fn decode_char(text: &str) -> StrResult { + if let Some(hex) = text.strip_prefix("U+") { + u32::from_str_radix(hex, 16) + .ok() + .and_then(|n| char::try_from(n).ok()) + .ok_or_else(|| format!("invalid unicode escape {text:?}")) + } else { + let mut chars = text.chars(); + match (chars.next(), chars.next()) { + (Some(c), None) => Ok(c), + _ => Err(format!("expected exactly one char, found {text:?}")), + } + } +} + +/// Turns a stream of lines into a list of definitions. +fn parse<'a>( + p: &mut Peekable>>>, +) -> StrResult)>> { + let mut defs = vec![]; + loop { + match p.next().transpose()? { + None | Some(Line::ModuleEnd) => break, + Some(Line::Symbol(name, c)) => { + let mut variants = vec![]; + while let Some(Line::Variant(name, c)) = p.peek().cloned().transpose()? { + variants.push((name, c)); + p.next(); + } + + println!("{c:?}, {variants:?}, {:?}", p.peek()); + let symbol = if variants.len() > 0 { + if let Some(c) = c { + variants.insert(0, ("", c)); + } + Symbol::Multi(variants) + } else { + let c = c.ok_or("symbol needs char or variants")?; + Symbol::Single(c) + }; + + defs.push((name, Def::Symbol(symbol))); + } + Some(Line::ModuleStart(name)) => { + let module_defs = parse(p)?; + defs.push((name, Def::Module(Module::new(module_defs)))); + } + other => return Err(format!("expected definition, found {other:?}")), + } + } + Ok(defs) +} + +/// Encodes a `Module` into Rust code. +fn encode(buf: &mut String, module: &Module) { + buf.push_str("Module(&["); + for (name, def) in &module.0 { + write!(buf, "({name:?},").unwrap(); + match def { + Def::Module(module) => { + buf.push_str("Def::Module("); + encode(buf, module); + buf.push_str(")"); + } + Def::Symbol(symbol) => { + buf.push_str("Def::Symbol(Symbol::"); + match symbol { + Symbol::Single(c) => write!(buf, "Single({c:?})").unwrap(), + Symbol::Multi(list) => write!(buf, "Multi(&{list:?})").unwrap(), + } + buf.push_str(")"); + } + } + buf.push_str("),"); + } + buf.push_str("])"); +} diff --git a/rustfmt.toml b/rustfmt.toml new file mode 100644 index 0000000..bb3238c --- /dev/null +++ b/rustfmt.toml @@ -0,0 +1,6 @@ +use_small_heuristics = "Max" +max_width = 90 +chain_width = 70 +struct_lit_width = 50 +use_field_init_shorthand = true +merge_derives = false diff --git a/src/lib.rs b/src/lib.rs new file mode 100644 index 0000000..bb6f3fc --- /dev/null +++ b/src/lib.rs @@ -0,0 +1,46 @@ +/*! +Human-friendly notation for Unicode symbols. +*/ + +/// A module of definitions. +#[derive(Debug, Copy, Clone, Eq, PartialEq)] +pub struct Module(&'static [(&'static str, Def)]); + +impl Module { + /// Try to get a definition from the module. + pub fn get(&self, name: &str) -> Option { + self.0 + .binary_search_by_key(&name, |(k, _)| k) + .ok() + .map(|i| self.0[i].1) + } + + /// Iterate over the module's definition. + pub fn iter(&self) -> impl Iterator { + self.0.iter().copied() + } +} + +/// A definition in a module. +#[derive(Debug, Copy, Clone, Eq, PartialEq)] +pub enum Def { + /// A symbol, potentially with modifiers. + Symbol(Symbol), + /// A nested module. + Module(Module), +} + +/// A symbol, either a leaf or with modifiers. +#[derive(Debug, Copy, Clone, Eq, PartialEq)] +pub enum Symbol { + /// A symbol without modifiers. + Single(char), + /// A symbol with named modifiers. The symbol defaults to its first variant. + Multi(&'static [(&'static str, char)]), +} + +/// A module that contains the other top-level modules. +pub const ROOT: Module = + Module(&[("sym", Def::Module(SYM)), ("emoji", Def::Module(EMOJI))]); + +include!(concat!(env!("OUT_DIR"), "/out.rs")); diff --git a/src/modules/emoji.txt b/src/modules/emoji.txt new file mode 100644 index 0000000..06df4ef --- /dev/null +++ b/src/modules/emoji.txt @@ -0,0 +1,1442 @@ +abacus ๐Ÿงฎ +abc ๐Ÿ”ค +abcd ๐Ÿ”ก +ABCD ๐Ÿ”  +accordion ๐Ÿช— +aesculapius โš• +airplane โœˆ + .landing ๐Ÿ›ฌ + .small ๐Ÿ›ฉ + .takeoff ๐Ÿ›ซ +alembic โš— +alien ๐Ÿ‘ฝ + .monster ๐Ÿ‘พ +ambulance ๐Ÿš‘ +amphora ๐Ÿบ +anchor โš“ +anger ๐Ÿ’ข +ant ๐Ÿœ +apple + .green ๐Ÿ + .red ๐ŸŽ +arm + .mech ๐Ÿฆพ + .muscle ๐Ÿ’ช + .selfie ๐Ÿคณ +arrow + .r.filled โžก + .r.hook โ†ช + .r.soon ๐Ÿ”œ + .l.filled โฌ… + .l.hook โ†ฉ + .l.back ๐Ÿ”™ + .l.end ๐Ÿ”š + .t.filled โฌ† + .t.curve โคด + .t.top ๐Ÿ” + .b.filled โฌ‡ + .b.curve โคต + .l.r โ†” + .l.r.on ๐Ÿ”› + .t.b โ†• + .bl โ†™ + .br โ†˜ + .tl โ†– + .tr โ†— +arrows + .cycle ๐Ÿ”„ +ast * + .box โœณ +atm ๐Ÿง +atom โš› +aubergine ๐Ÿ† +avocado ๐Ÿฅ‘ +axe ๐Ÿช“ +baby ๐Ÿ‘ถ + .angel ๐Ÿ‘ผ + .box ๐Ÿšผ +babybottle ๐Ÿผ +backpack ๐ŸŽ’ +bacon ๐Ÿฅ“ +badger ๐Ÿฆก +badminton ๐Ÿธ +bagel ๐Ÿฅฏ +baggageclaim ๐Ÿ›„ +baguette ๐Ÿฅ– +balloon ๐ŸŽˆ +ballot + .check โ˜‘ +ballotbox ๐Ÿ—ณ +banana ๐ŸŒ +banjo ๐Ÿช• +bank ๐Ÿฆ +barberpole ๐Ÿ’ˆ +baseball โšพ +basecap ๐Ÿงข +basket ๐Ÿงบ +basketball โ›น + .ball ๐Ÿ€ +bat ๐Ÿฆ‡ +bathtub ๐Ÿ›€ + .foam ๐Ÿ› +battery ๐Ÿ”‹ + .low ๐Ÿชซ +beach + .palm ๐Ÿ + .umbrella ๐Ÿ– +beads ๐Ÿ“ฟ +beans ๐Ÿซ˜ +bear ๐Ÿป +beaver ๐Ÿฆซ +bed ๐Ÿ› + .person ๐Ÿ›Œ +bee ๐Ÿ +beer ๐Ÿบ + .clink ๐Ÿป +beet ๐Ÿซœ +beetle ๐Ÿชฒ + .lady ๐Ÿž +bell ๐Ÿ”” + .ding ๐Ÿ›Ž + .not ๐Ÿ”• +bento ๐Ÿฑ +bicyclist ๐Ÿšด + .mountain ๐Ÿšต +bike ๐Ÿšฒ + .not ๐Ÿšณ +bikini ๐Ÿ‘™ +billiards ๐ŸŽฑ +bin ๐Ÿ—‘ +biohazard โ˜ฃ +bird ๐Ÿฆ +bison ๐Ÿฆฌ +blood ๐Ÿฉธ +blouse ๐Ÿ‘š +blowfish ๐Ÿก +blueberries ๐Ÿซ +boar ๐Ÿ— +boat + .sail โ›ต + .row ๐Ÿšฃ + .motor ๐Ÿ›ฅ + .speed ๐Ÿšค + .canoe ๐Ÿ›ถ +bolt ๐Ÿ”ฉ +bomb ๐Ÿ’ฃ +bone ๐Ÿฆด +book + .red ๐Ÿ“• + .blue ๐Ÿ“˜ + .green ๐Ÿ“— + .orange ๐Ÿ“™ + .spiral ๐Ÿ“’ + .open ๐Ÿ“– +bookmark ๐Ÿ”– +books ๐Ÿ“š +boomerang ๐Ÿชƒ +bordercontrol ๐Ÿ›‚ +bouquet ๐Ÿ’ +bow ๐Ÿน +bowl + .spoon ๐Ÿฅฃ + .steam ๐Ÿœ +bowling ๐ŸŽณ +boxing ๐ŸฅŠ +boy ๐Ÿ‘ฆ +brain ๐Ÿง  +bread ๐Ÿž +brick ๐Ÿงฑ +bride ๐Ÿ‘ฐ +bridge + .fog ๐ŸŒ + .night ๐ŸŒ‰ +briefcase ๐Ÿ’ผ +briefs ๐Ÿฉฒ +brightness + .high ๐Ÿ”† + .low ๐Ÿ”… +broccoli ๐Ÿฅฆ +broom ๐Ÿงน +brush ๐Ÿ–Œ +bubble + .speech.r ๐Ÿ’ฌ + .speech.l ๐Ÿ—จ + .thought ๐Ÿ’ญ + .anger.r ๐Ÿ—ฏ +bubbles ๐Ÿซง +bubbletea ๐Ÿง‹ +bucket ๐Ÿชฃ +buffalo + .water ๐Ÿƒ +bug ๐Ÿ› +builder ๐Ÿ‘ท +burger ๐Ÿ” +burrito ๐ŸŒฏ +bus ๐ŸšŒ + .front ๐Ÿš + .small ๐Ÿš + .stop ๐Ÿš + .trolley ๐ŸšŽ +butter ๐Ÿงˆ +butterfly ๐Ÿฆ‹ +button ๐Ÿ”ฒ + .alt ๐Ÿ”ณ + .radio ๐Ÿ”˜ +cabinet + .file ๐Ÿ—„ +cablecar ๐Ÿš  + .small ๐Ÿšก +cactus ๐ŸŒต +cake ๐ŸŽ‚ + .fish ๐Ÿฅ + .moon ๐Ÿฅฎ + .slice ๐Ÿฐ +calendar ๐Ÿ“… + .spiral ๐Ÿ—“ + .tearoff ๐Ÿ“† +camel ๐Ÿซ + .dromedar ๐Ÿช +camera ๐Ÿ“ท + .flash ๐Ÿ“ธ + .movie ๐ŸŽฅ + .movie.box ๐ŸŽฆ + .video ๐Ÿ“น +camping ๐Ÿ• +can ๐Ÿฅซ +candle ๐Ÿ•ฏ +candy ๐Ÿฌ +cane ๐Ÿฆฏ +car ๐Ÿš— + .front ๐Ÿš˜ + .pickup ๐Ÿ›ป + .police ๐Ÿš“ + .police.front ๐Ÿš” + .racing ๐ŸŽ + .rickshaw ๐Ÿ›บ + .suv ๐Ÿš™ +card + .credit ๐Ÿ’ณ + .id ๐Ÿชช +cardindex ๐Ÿ“‡ +carrot ๐Ÿฅ• +cart ๐Ÿ›’ +cassette ๐Ÿ“ผ +castle + .eu ๐Ÿฐ + .jp ๐Ÿฏ +cat ๐Ÿˆ + .face ๐Ÿฑ + .face.angry ๐Ÿ˜พ + .face.cry ๐Ÿ˜ฟ + .face.heart ๐Ÿ˜ป + .face.joy ๐Ÿ˜น + .face.kiss ๐Ÿ˜ฝ + .face.laugh ๐Ÿ˜ธ + .face.shock ๐Ÿ™€ + .face.smile ๐Ÿ˜บ + .face.smirk ๐Ÿ˜ผ +chain ๐Ÿ”— +chains โ›“ +chair ๐Ÿช‘ +champagne ๐Ÿพ +chart + .bar ๐Ÿ“Š + .up ๐Ÿ“ˆ + .down ๐Ÿ“‰ + .yen.up ๐Ÿ’น +checkmark + .heavy โœ” + .box โœ… +cheese ๐Ÿง€ +cherries ๐Ÿ’ +chess โ™Ÿ +chestnut ๐ŸŒฐ +chicken ๐Ÿ” + .baby ๐Ÿฅ + .baby.egg ๐Ÿฃ + .baby.head ๐Ÿค + .leg ๐Ÿ— + .male ๐Ÿ“ +child ๐Ÿง’ +chipmunk ๐Ÿฟ +chocolate ๐Ÿซ +chopsticks ๐Ÿฅข +church โ›ช + .love ๐Ÿ’’ +cigarette ๐Ÿšฌ + .not ๐Ÿšญ +circle + .black โšซ + .blue ๐Ÿ”ต + .brown ๐ŸŸค + .green ๐ŸŸข + .orange ๐ŸŸ  + .purple ๐ŸŸฃ + .white โšช + .red ๐Ÿ”ด + .yellow ๐ŸŸก + .stroked โญ• +circus ๐ŸŽช +city ๐Ÿ™ + .dusk ๐ŸŒ† + .night ๐ŸŒƒ + .sunset ๐ŸŒ‡ +clamp ๐Ÿ—œ +clapperboard ๐ŸŽฌ +climbing ๐Ÿง— +clip ๐Ÿ“Ž +clipboard ๐Ÿ“‹ +clips ๐Ÿ–‡ +clock + .one ๐Ÿ• + .one.thirty ๐Ÿ•œ + .two ๐Ÿ•‘ + .two.thirty ๐Ÿ• + .three ๐Ÿ•’ + .three.thirty ๐Ÿ•ž + .four ๐Ÿ•“ + .four.thirty ๐Ÿ•Ÿ + .five ๐Ÿ•” + .five.thirty ๐Ÿ•  + .six ๐Ÿ•• + .six.thirty ๐Ÿ•ก + .seven ๐Ÿ•– + .seven.thirty ๐Ÿ•ข + .eight ๐Ÿ•— + .eight.thirty ๐Ÿ•ฃ + .nine ๐Ÿ•˜ + .nine.thirty ๐Ÿ•ค + .ten ๐Ÿ•™ + .ten.thirty ๐Ÿ•ฅ + .eleven ๐Ÿ•š + .eleven.thirty ๐Ÿ•ฆ + .twelve ๐Ÿ•› + .twelve.thirty ๐Ÿ•ง + .alarm โฐ + .old ๐Ÿ•ฐ + .timer โฒ +cloud โ˜ + .dust ๐Ÿ’จ + .rain ๐ŸŒง + .snow ๐ŸŒจ + .storm โ›ˆ + .sun โ›… + .sun.hidden ๐ŸŒฅ + .sun.rain ๐ŸŒฆ + .thunder ๐ŸŒฉ +coat ๐Ÿงฅ + .lab ๐Ÿฅผ +cockroach ๐Ÿชณ +cocktail + .martini ๐Ÿธ + .tropical ๐Ÿน +coconut ๐Ÿฅฅ +coffee โ˜• +coffin โšฐ +coin ๐Ÿช™ +comet โ˜„ +compass ๐Ÿงญ +computer ๐Ÿ–ฅ +computermouse ๐Ÿ–ฑ +confetti ๐ŸŽŠ +construction ๐Ÿšง +controller ๐ŸŽฎ +cookie ๐Ÿช + .fortune ๐Ÿฅ  +cooking ๐Ÿณ +cool ๐Ÿ†’ +copyright ยฉ +coral ๐Ÿชธ +corn ๐ŸŒฝ +couch ๐Ÿ›‹ +couple ๐Ÿ’‘ +cow ๐Ÿ„ + .face ๐Ÿฎ +crab ๐Ÿฆ€ +crane ๐Ÿ— +crayon ๐Ÿ– +cricket ๐Ÿฆ— +cricketbat ๐Ÿ +crocodile ๐ŸŠ +croissant ๐Ÿฅ +crossmark โŒ + .box โŽ +crown ๐Ÿ‘‘ +crutch ๐Ÿฉผ +crystal ๐Ÿ”ฎ +cucumber ๐Ÿฅ’ +cup + .straw ๐Ÿฅค +cupcake ๐Ÿง +curling ๐ŸฅŒ +curry ๐Ÿ› +custard ๐Ÿฎ +customs ๐Ÿ›ƒ +cutlery ๐Ÿด +cyclone ๐ŸŒ€ +dancing + .man ๐Ÿ•บ + .woman ๐Ÿ’ƒ + .women.bunny ๐Ÿ‘ฏ +darts ๐ŸŽฏ +dash + .wave.double ใ€ฐ +deer ๐ŸฆŒ +desert ๐Ÿœ +detective ๐Ÿ•ต +diamond + .blue ๐Ÿ”ท + .blue.small ๐Ÿ”น + .orange ๐Ÿ”ถ + .orange.small ๐Ÿ”ธ + .dot ๐Ÿ’  +die ๐ŸŽฒ +dino + .pod ๐Ÿฆ• + .rex ๐Ÿฆ– +disc + .cd ๐Ÿ’ฟ + .dvd ๐Ÿ“€ + .mini ๐Ÿ’ฝ +discoball ๐Ÿชฉ +diving ๐Ÿคฟ +dodo ๐Ÿฆค +dog ๐Ÿ• + .face ๐Ÿถ + .guide ๐Ÿฆฎ + .poodle ๐Ÿฉ +dollar ๐Ÿ’ฒ +dolphin ๐Ÿฌ +donut ๐Ÿฉ +door ๐Ÿšช +dove + .peace ๐Ÿ•Š +dragon ๐Ÿ‰ + .face ๐Ÿฒ +dress ๐Ÿ‘— + .kimono ๐Ÿ‘˜ + .sari ๐Ÿฅป +drop ๐Ÿ’ง +drops ๐Ÿ’ฆ +drum ๐Ÿฅ + .big ๐Ÿช˜ +duck ๐Ÿฆ† +dumpling ๐ŸฅŸ +eagle ๐Ÿฆ… +ear ๐Ÿ‘‚ + .aid ๐Ÿฆป +egg ๐Ÿฅš +eighteen + .not ๐Ÿ”ž +elephant ๐Ÿ˜ +elevator ๐Ÿ›— +elf ๐Ÿง +email ๐Ÿ“ง +excl โ— + .white โ• + .double โ€ผ + .quest โ‰ +explosion ๐Ÿ’ฅ +extinguisher ๐Ÿงฏ +eye ๐Ÿ‘ +eyes ๐Ÿ‘€ +face + .grin ๐Ÿ˜€ + .angry ๐Ÿ˜  + .angry.red ๐Ÿ˜ก + .anguish ๐Ÿ˜ง + .astonish ๐Ÿ˜ฒ + .bandage ๐Ÿค• + .beam ๐Ÿ˜ + .blank ๐Ÿ˜ถ + .clown ๐Ÿคก + .cold ๐Ÿฅถ + .concern ๐Ÿ˜ฆ + .cool ๐Ÿ˜Ž + .cover ๐Ÿคญ + .cowboy ๐Ÿค  + .cry ๐Ÿ˜ญ + .devil.smile ๐Ÿ˜ˆ + .devil.frown ๐Ÿ‘ฟ + .diagonal ๐Ÿซค + .disguise ๐Ÿฅธ + .distress ๐Ÿ˜ซ + .dizzy ๐Ÿ˜ต + .dotted ๐Ÿซฅ + .down ๐Ÿ˜ž + .down.sweat ๐Ÿ˜“ + .drool ๐Ÿคค + .explode ๐Ÿคฏ + .eyeroll ๐Ÿ™„ + .friendly โ˜บ + .fear ๐Ÿ˜จ + .fear.sweat ๐Ÿ˜ฐ + .fever ๐Ÿค’ + .flush ๐Ÿ˜ณ + .frown โ˜น + .frown.slight ๐Ÿ™ + .frust ๐Ÿ˜ฃ + .goofy ๐Ÿคช + .halo ๐Ÿ˜‡ + .happy ๐Ÿ˜Š + .heart ๐Ÿ˜ + .hearts ๐Ÿฅฐ + .heat ๐Ÿฅต + .hug ๐Ÿค— + .inv ๐Ÿ™ƒ + .joy ๐Ÿ˜‚ + .kiss ๐Ÿ˜— + .kiss.smile ๐Ÿ˜™ + .kiss.heart ๐Ÿ˜˜ + .kiss.blush ๐Ÿ˜š + .lick ๐Ÿ˜‹ + .lie ๐Ÿคฅ + .mask ๐Ÿ˜ท + .meh ๐Ÿ˜’ + .melt ๐Ÿซ  + .money ๐Ÿค‘ + .monocle ๐Ÿง + .nausea ๐Ÿคข + .nerd ๐Ÿค“ + .neutral ๐Ÿ˜ + .open ๐Ÿ˜ƒ + .party ๐Ÿฅณ + .peek ๐Ÿซฃ + .plead ๐Ÿฅบ + .relief ๐Ÿ˜Œ + .rofl ๐Ÿคฃ + .sad ๐Ÿ˜” + .salute ๐Ÿซก + .shock ๐Ÿ˜ฑ + .shush ๐Ÿคซ + .skeptic ๐Ÿคจ + .sleep ๐Ÿ˜ด + .sleepy ๐Ÿ˜ช + .smile ๐Ÿ˜„ + .smile.slight ๐Ÿ™‚ + .smile.sweat ๐Ÿ˜… + .smile.tear ๐Ÿฅฒ + .smirk ๐Ÿ˜ + .sneeze ๐Ÿคง + .speak.not ๐Ÿซข + .squint ๐Ÿ˜† + .stars ๐Ÿคฉ + .straight ๐Ÿ˜‘ + .suffer ๐Ÿ˜– + .surprise ๐Ÿ˜ฏ + .symbols ๐Ÿคฌ + .tear ๐Ÿ˜ข + .tear.relief ๐Ÿ˜ฅ + .tear.withheld ๐Ÿฅน + .teeth ๐Ÿ˜ฌ + .think ๐Ÿค” + .tired ๐Ÿซฉ + .tongue ๐Ÿ˜› + .tongue.squint ๐Ÿ˜ + .tongue.wink ๐Ÿ˜œ + .triumph ๐Ÿ˜ค + .unhappy ๐Ÿ˜• + .vomit ๐Ÿคฎ + .weary ๐Ÿ˜ฉ + .wink ๐Ÿ˜‰ + .woozy ๐Ÿฅด + .worry ๐Ÿ˜Ÿ + .wow ๐Ÿ˜ฎ + .yawn ๐Ÿฅฑ + .zip ๐Ÿค +factory ๐Ÿญ +fairy ๐Ÿงš +faith + .christ โœ + .dharma โ˜ธ + .islam โ˜ช + .judaism โœก + .menorah ๐Ÿ•Ž + .om ๐Ÿ•‰ + .orthodox โ˜ฆ + .peace โ˜ฎ + .star.dot ๐Ÿ”ฏ + .worship ๐Ÿ› + .yinyang โ˜ฏ +falafel ๐Ÿง† +family ๐Ÿ‘ช +fax ๐Ÿ“  +feather ๐Ÿชถ +feeding + .breast ๐Ÿคฑ +fencing ๐Ÿคบ +ferriswheel ๐ŸŽก +filebox ๐Ÿ—ƒ +filedividers ๐Ÿ—‚ +film ๐ŸŽž +finger + .r ๐Ÿ‘‰ + .l ๐Ÿ‘ˆ + .t ๐Ÿ‘† + .t.alt โ˜ + .b ๐Ÿ‘‡ + .front ๐Ÿซต + .m ๐Ÿ–• +fingerprint ๐Ÿซ† +fingers + .cross ๐Ÿคž + .pinch ๐ŸคŒ + .snap ๐Ÿซฐ +fire ๐Ÿ”ฅ +firecracker ๐Ÿงจ +fireengine ๐Ÿš’ +fireworks ๐ŸŽ† +fish ๐ŸŸ + .tropical ๐Ÿ  +fishing ๐ŸŽฃ +fist + .front ๐Ÿ‘Š + .r ๐Ÿคœ + .l ๐Ÿค› + .raised โœŠ +flag + .black ๐Ÿด + .white ๐Ÿณ + .goal ๐Ÿ + .golf โ›ณ + .red ๐Ÿšฉ +flags + .jp.crossed ๐ŸŽŒ +flamingo ๐Ÿฆฉ +flashlight ๐Ÿ”ฆ +flatbread ๐Ÿซ“ +fleur โšœ +floppy ๐Ÿ’พ +flower + .hibiscus ๐ŸŒบ + .lotus ๐Ÿชท + .pink ๐ŸŒธ + .rose ๐ŸŒน + .sun ๐ŸŒป + .tulip ๐ŸŒท + .white ๐Ÿ’ฎ + .wilted ๐Ÿฅ€ + .yellow ๐ŸŒผ +fly ๐Ÿชฐ +fog ๐ŸŒซ +folder ๐Ÿ“ + .open ๐Ÿ“‚ +fondue ๐Ÿซ• +foot ๐Ÿฆถ +football โšฝ + .am ๐Ÿˆ +forex ๐Ÿ’ฑ +fountain โ›ฒ +fox ๐ŸฆŠ +free ๐Ÿ†“ +fries ๐ŸŸ +frisbee ๐Ÿฅ +frog + .face ๐Ÿธ +fuelpump โ›ฝ +garlic ๐Ÿง„ +gear โš™ +gem ๐Ÿ’Ž +genie ๐Ÿงž +ghost ๐Ÿ‘ป +giraffe ๐Ÿฆ’ +girl ๐Ÿ‘ง +glass + .clink ๐Ÿฅ‚ + .milk ๐Ÿฅ› + .pour ๐Ÿซ— + .tumbler ๐Ÿฅƒ +glasses ๐Ÿ‘“ + .sun ๐Ÿ•ถ +globe + .am ๐ŸŒŽ + .as.au ๐ŸŒ + .eu.af ๐ŸŒ + .meridian ๐ŸŒ +gloves ๐Ÿงค +goal ๐Ÿฅ… +goat ๐Ÿ +goggles ๐Ÿฅฝ +golfing ๐ŸŒ +gorilla ๐Ÿฆ +grapes ๐Ÿ‡ +guard + .man ๐Ÿ’‚ +guitar ๐ŸŽธ +gymnastics ๐Ÿคธ +haircut ๐Ÿ’‡ +hammer ๐Ÿ”จ + .pick โš’ + .wrench ๐Ÿ›  +hamsa ๐Ÿชฌ +hamster + .face ๐Ÿน +hand + .raised โœ‹ + .raised.alt ๐Ÿคš + .r ๐Ÿซฑ + .l ๐Ÿซฒ + .t ๐Ÿซด + .b ๐Ÿซณ + .ok ๐Ÿ‘Œ + .call ๐Ÿค™ + .love ๐ŸคŸ + .part ๐Ÿ–– + .peace โœŒ + .pinch ๐Ÿค + .rock ๐Ÿค˜ + .splay ๐Ÿ– + .wave ๐Ÿ‘‹ + .write โœ +handbag ๐Ÿ‘œ +handball ๐Ÿคพ +handholding + .man.man ๐Ÿ‘ฌ + .woman.man ๐Ÿ‘ซ + .woman.woman ๐Ÿ‘ญ +hands + .folded ๐Ÿ™ + .palms ๐Ÿคฒ + .clap ๐Ÿ‘ + .heart ๐Ÿซถ + .open ๐Ÿ‘ + .raised ๐Ÿ™Œ + .shake ๐Ÿค +harp ๐Ÿช‰ +hash # +hat + .ribbon ๐Ÿ‘’ + .top ๐ŸŽฉ +headphone ๐ŸŽง +heart โค + .arrow ๐Ÿ’˜ + .beat ๐Ÿ’“ + .black ๐Ÿ–ค + .blue ๐Ÿ’™ + .box ๐Ÿ’Ÿ + .broken ๐Ÿ’” + .brown ๐ŸคŽ + .double ๐Ÿ’• + .excl โฃ + .green ๐Ÿ’š + .grow ๐Ÿ’— + .orange ๐Ÿงก + .purple ๐Ÿ’œ + .real ๐Ÿซ€ + .revolve ๐Ÿ’ž + .ribbon ๐Ÿ’ + .spark ๐Ÿ’– + .white ๐Ÿค + .yellow ๐Ÿ’› +hedgehog ๐Ÿฆ” +helicopter ๐Ÿš +helix ๐Ÿงฌ +helmet + .cross โ›‘ + .military ๐Ÿช– +hippo ๐Ÿฆ› +hockey ๐Ÿ‘ +hole ๐Ÿ•ณ +honey ๐Ÿฏ +hongbao ๐Ÿงง +hook ๐Ÿช +horn + .postal ๐Ÿ“ฏ +horse ๐ŸŽ + .carousel ๐ŸŽ  + .face ๐Ÿด + .race ๐Ÿ‡ +hospital ๐Ÿฅ +hotdog ๐ŸŒญ +hotel ๐Ÿจ + .love ๐Ÿฉ +hotspring โ™จ +hourglass โŒ› + .flow โณ +house ๐Ÿ  + .derelict ๐Ÿš + .garden ๐Ÿก + .multiple ๐Ÿ˜ +hundred ๐Ÿ’ฏ +hut ๐Ÿ›– +ice ๐ŸงŠ +icecream ๐Ÿจ + .shaved ๐Ÿง + .soft ๐Ÿฆ +icehockey ๐Ÿ’ +id ๐Ÿ†” +info โ„น +izakaya ๐Ÿฎ +jar ๐Ÿซ™ +jeans ๐Ÿ‘– +jigsaw ๐Ÿงฉ +joystick ๐Ÿ•น +juggling ๐Ÿคน +juice ๐Ÿงƒ +kaaba ๐Ÿ•‹ +kadomatsu ๐ŸŽ +kangaroo ๐Ÿฆ˜ +gachi ๐Ÿˆท +go ๐Ÿˆด +hi ใŠ™ +ka ๐Ÿ‰‘ +kachi ๐Ÿˆน +kara ๐Ÿˆณ +kon ๐Ÿˆฒ +man ๐Ÿ‘จ + .box ๐Ÿšน + .crown ๐Ÿคด + .guapimao ๐Ÿ‘ฒ + .levitate ๐Ÿ•ด + .old ๐Ÿ‘ด + .pregnant ๐Ÿซƒ + .turban ๐Ÿ‘ณ + .tuxedo ๐Ÿคต +muryo ๐Ÿˆš +shin ๐Ÿˆธ +shuku ใŠ— +toku ๐Ÿ‰ +yo ๐Ÿˆบ +yubi ๐Ÿˆฏ +yuryo ๐Ÿˆถ +koko ๐Ÿˆ +sa ๐Ÿˆ‚ +kebab ๐Ÿฅ™ +key ๐Ÿ”‘ + .old ๐Ÿ— +keyboard โŒจ +kiss ๐Ÿ’ +kissmark ๐Ÿ’‹ +kite ๐Ÿช +kiwi ๐Ÿฅ +knife ๐Ÿ”ช + .dagger ๐Ÿ—ก +knot ๐Ÿชข +koala ๐Ÿจ +koinobori ๐ŸŽ +label ๐Ÿท +lacrosse ๐Ÿฅ +ladder ๐Ÿชœ +lamp + .diya ๐Ÿช” +laptop ๐Ÿ’ป +a ๐Ÿ…ฐ +ab ๐Ÿ†Ž +b ๐Ÿ…ฑ +cl ๐Ÿ†‘ +o ๐Ÿ…พ +leaf + .clover.three โ˜˜ + .clover.four ๐Ÿ€ + .fall ๐Ÿ‚ + .herb ๐ŸŒฟ + .maple ๐Ÿ + .wind ๐Ÿƒ +leftluggage ๐Ÿ›… +leg ๐Ÿฆต + .mech ๐Ÿฆฟ +lemon ๐Ÿ‹ +leopard ๐Ÿ† +letter + .love ๐Ÿ’Œ +liberty ๐Ÿ—ฝ +lightbulb ๐Ÿ’ก +lightning โšก +lion ๐Ÿฆ +lipstick ๐Ÿ’„ +litter ๐Ÿšฎ + .not ๐Ÿšฏ +lizard ๐ŸฆŽ +llama ๐Ÿฆ™ +lobster ๐Ÿฆž +lock ๐Ÿ”’ + .key ๐Ÿ” + .open ๐Ÿ”“ + .pen ๐Ÿ” +lollipop ๐Ÿญ +lotion ๐Ÿงด +luggage ๐Ÿงณ +lungs ๐Ÿซ +mage ๐Ÿง™ +magnet ๐Ÿงฒ +magnify + .r ๐Ÿ”Ž + .l ๐Ÿ” +mahjong + .dragon.red ๐Ÿ€„ +mail โœ‰ + .arrow ๐Ÿ“ฉ +mailbox + .closed.empty ๐Ÿ“ช + .closed.full ๐Ÿ“ซ + .open.empty ๐Ÿ“ญ + .open.full ๐Ÿ“ฌ +mammoth ๐Ÿฆฃ +mango ๐Ÿฅญ +map + .world ๐Ÿ—บ + .jp ๐Ÿ—พ +martialarts ๐Ÿฅ‹ +masks ๐ŸŽญ +mate ๐Ÿง‰ +matryoshka ๐Ÿช† +meat ๐Ÿฅฉ + .bone ๐Ÿ– +medal + .first ๐Ÿฅ‡ + .second ๐Ÿฅˆ + .third ๐Ÿฅ‰ + .sports ๐Ÿ… + .military ๐ŸŽ– +megaphone ๐Ÿ“ข + .simple ๐Ÿ“ฃ +melon ๐Ÿˆ +merperson ๐Ÿงœ +metro โ“‚ +microbe ๐Ÿฆ  +microphone ๐ŸŽค + .studio ๐ŸŽ™ +microscope ๐Ÿ”ฌ +milkyway ๐ŸŒŒ +mirror ๐Ÿชž +mixer ๐ŸŽ› +money + .bag ๐Ÿ’ฐ + .dollar ๐Ÿ’ต + .euro ๐Ÿ’ถ + .pound ๐Ÿ’ท + .yen ๐Ÿ’ด + .wings ๐Ÿ’ธ +monkey ๐Ÿ’ + .face ๐Ÿต + .hear.not ๐Ÿ™‰ + .see.not ๐Ÿ™ˆ + .speak.not ๐Ÿ™Š +moon + .crescent ๐ŸŒ™ + .full ๐ŸŒ• + .full.face ๐ŸŒ + .new ๐ŸŒ‘ + .new.face ๐ŸŒš + .wane.one ๐ŸŒ– + .wane.two ๐ŸŒ— + .wane.three.face ๐ŸŒœ + .wane.three ๐ŸŒ˜ + .wax.one ๐ŸŒ’ + .wax.two ๐ŸŒ“ + .wax.two.face ๐ŸŒ› + .wax.three ๐ŸŒ” +mortarboard ๐ŸŽ“ +mosque ๐Ÿ•Œ +mosquito ๐ŸฆŸ +motorcycle ๐Ÿ +motorway ๐Ÿ›ฃ +mountain โ›ฐ + .fuji ๐Ÿ—ป + .snow ๐Ÿ” + .sunrise ๐ŸŒ„ +mouse ๐Ÿ + .face ๐Ÿญ +mousetrap ๐Ÿชค +mouth ๐Ÿ‘„ + .bite ๐Ÿซฆ +moyai ๐Ÿ—ฟ +museum ๐Ÿ› +mushroom ๐Ÿ„ +musicalscore ๐ŸŽผ +nails + .polish ๐Ÿ’… +namebadge ๐Ÿ“› +nazar ๐Ÿงฟ +necktie ๐Ÿ‘” +needle ๐Ÿชก +nest + .empty ๐Ÿชน + .eggs ๐Ÿชบ +new ๐Ÿ†• +newspaper ๐Ÿ“ฐ + .rolled ๐Ÿ—ž +ng ๐Ÿ†– +ningyo ๐ŸŽŽ +ninja ๐Ÿฅท +noentry โ›” +nose ๐Ÿ‘ƒ +notebook ๐Ÿ““ + .deco ๐Ÿ“” +notepad ๐Ÿ—’ +notes ๐ŸŽต + .triple ๐ŸŽถ +numbers ๐Ÿ”ข +octopus ๐Ÿ™ +office ๐Ÿข +oil ๐Ÿ›ข +ok ๐Ÿ†— +olive ๐Ÿซ’ +oni ๐Ÿ‘น +onion ๐Ÿง… +orangutan ๐Ÿฆง +otter ๐Ÿฆฆ +owl ๐Ÿฆ‰ +ox ๐Ÿ‚ +oyster ๐Ÿฆช +package ๐Ÿ“ฆ +paella ๐Ÿฅ˜ +page ๐Ÿ“„ + .curl ๐Ÿ“ƒ + .pencil ๐Ÿ“ +pager ๐Ÿ“Ÿ +pages + .tabs ๐Ÿ“‘ +painting ๐Ÿ–ผ +palette ๐ŸŽจ +pancakes ๐Ÿฅž +panda ๐Ÿผ +parachute ๐Ÿช‚ +park ๐Ÿž +parking ๐Ÿ…ฟ +parrot ๐Ÿฆœ +partalteration ใ€ฝ +party ๐ŸŽ‰ +peach ๐Ÿ‘ +peacock ๐Ÿฆš +peanuts ๐Ÿฅœ +pear ๐Ÿ +pedestrian ๐Ÿšถ + .not ๐Ÿšท +pen + .ball ๐Ÿ–Š + .fountain ๐Ÿ–‹ +pencil โœ +penguin ๐Ÿง +pepper ๐Ÿซ‘ + .hot ๐ŸŒถ +person ๐Ÿง‘ + .angry ๐Ÿ™Ž + .beard ๐Ÿง” + .blonde ๐Ÿ‘ฑ + .bow ๐Ÿ™‡ + .crown ๐Ÿซ… + .deaf ๐Ÿง + .facepalm ๐Ÿคฆ + .frown ๐Ÿ™ + .hijab ๐Ÿง• + .kneel ๐ŸงŽ + .lotus ๐Ÿง˜ + .massage ๐Ÿ’† + .no ๐Ÿ™… + .ok ๐Ÿ™† + .old ๐Ÿง“ + .pregnant ๐Ÿซ„ + .raise ๐Ÿ™‹ + .sassy ๐Ÿ’ + .shrug ๐Ÿคท + .stand ๐Ÿง + .steam ๐Ÿง– +petri ๐Ÿงซ +phone ๐Ÿ“ฑ + .arrow ๐Ÿ“ฒ + .classic โ˜Ž + .not ๐Ÿ“ต + .off ๐Ÿ“ด + .receiver ๐Ÿ“ž + .signal ๐Ÿ“ถ + .vibrate ๐Ÿ“ณ +piano ๐ŸŽน +pick โ› +pie ๐Ÿฅง +pig ๐Ÿ– + .face ๐Ÿท + .nose ๐Ÿฝ +pill ๐Ÿ’Š +pin ๐Ÿ“Œ + .round ๐Ÿ“ +pinata ๐Ÿช… +pineapple ๐Ÿ +pingpong ๐Ÿ“ +pistol ๐Ÿ”ซ +pizza ๐Ÿ• +placard ๐Ÿชง +planet ๐Ÿช +plant ๐Ÿชด +plaster ๐Ÿฉน +plate + .cutlery ๐Ÿฝ +playback + .down โฌ + .eject โ + .forward โฉ + .pause โธ + .record โบ + .repeat ๐Ÿ” + .repeat.once ๐Ÿ”‚ + .repeat.v ๐Ÿ”ƒ + .restart โฎ + .rewind โช + .shuffle ๐Ÿ”€ + .skip โญ + .stop โน + .toggle โฏ + .up โซ +playingcard + .flower ๐ŸŽด + .joker ๐Ÿƒ +plunger ๐Ÿช  +policeofficer ๐Ÿ‘ฎ +poo ๐Ÿ’ฉ +popcorn ๐Ÿฟ +post + .eu ๐Ÿค + .jp ๐Ÿฃ +postbox ๐Ÿ“ฎ +potato ๐Ÿฅ” + .sweet ๐Ÿ  +pouch ๐Ÿ‘ +powerplug ๐Ÿ”Œ +present ๐ŸŽ +pretzel ๐Ÿฅจ +printer ๐Ÿ–จ +prints + .foot ๐Ÿ‘ฃ + .paw ๐Ÿพ +prohibited ๐Ÿšซ +projector ๐Ÿ“ฝ +pumpkin + .lantern ๐ŸŽƒ +purse ๐Ÿ‘› +quest โ“ + .white โ” +rabbit ๐Ÿ‡ + .face ๐Ÿฐ +raccoon ๐Ÿฆ +radio ๐Ÿ“ป +radioactive โ˜ข +railway ๐Ÿ›ค +rainbow ๐ŸŒˆ +ram ๐Ÿ +rat ๐Ÿ€ +razor ๐Ÿช’ +receipt ๐Ÿงพ +recycling โ™ป +reg ยฎ +restroom ๐Ÿšป +rhino ๐Ÿฆ +ribbon ๐ŸŽ€ + .remind ๐ŸŽ— +rice ๐Ÿš + .cracker ๐Ÿ˜ + .ear ๐ŸŒพ + .onigiri ๐Ÿ™ +ring ๐Ÿ’ +ringbuoy ๐Ÿ›Ÿ +robot ๐Ÿค– +rock ๐Ÿชจ +rocket ๐Ÿš€ +rollercoaster ๐ŸŽข +rosette ๐Ÿต +rugby ๐Ÿ‰ +ruler ๐Ÿ“ + .triangle ๐Ÿ“ +running ๐Ÿƒ +safetypin ๐Ÿงท +safetyvest ๐Ÿฆบ +sake ๐Ÿถ +salad ๐Ÿฅ— +salt ๐Ÿง‚ +sandwich ๐Ÿฅช +santa + .man ๐ŸŽ… + .woman ๐Ÿคถ +satdish ๐Ÿ“ก +satellite ๐Ÿ›ฐ +saw ๐Ÿชš +saxophone ๐ŸŽท +scales โš– +scarf ๐Ÿงฃ +school ๐Ÿซ +scissors โœ‚ +scooter ๐Ÿ›ด + .motor ๐Ÿ›ต +scorpion ๐Ÿฆ‚ +screwdriver ๐Ÿช› +scroll ๐Ÿ“œ +seal ๐Ÿฆญ +seat ๐Ÿ’บ +seedling ๐ŸŒฑ +shark ๐Ÿฆˆ +sheep ๐Ÿ‘ +shell + .spiral ๐Ÿš +shield ๐Ÿ›ก +ship ๐Ÿšข + .cruise ๐Ÿ›ณ + .ferry โ›ด +shirt + .sports ๐ŸŽฝ + .t ๐Ÿ‘• +shoe ๐Ÿ‘ž + .ballet ๐Ÿฉฐ + .flat ๐Ÿฅฟ + .heel ๐Ÿ‘  + .hike ๐Ÿฅพ + .ice โ›ธ + .roller ๐Ÿ›ผ + .sandal.heel ๐Ÿ‘ก + .ski ๐ŸŽฟ + .sneaker ๐Ÿ‘Ÿ + .tall ๐Ÿ‘ข + .thong ๐Ÿฉด +shopping ๐Ÿ› +shorts ๐Ÿฉณ +shoshinsha ๐Ÿ”ฐ +shovel ๐Ÿช +shower ๐Ÿšฟ +shrimp ๐Ÿฆ + .fried ๐Ÿค +shrine โ›ฉ +sign + .crossing ๐Ÿšธ + .stop ๐Ÿ›‘ +silhouette ๐Ÿ‘ค + .double ๐Ÿ‘ฅ + .hug ๐Ÿซ‚ + .speak ๐Ÿ—ฃ +siren ๐Ÿšจ +skateboard ๐Ÿ›น +skewer + .dango ๐Ÿก + .oden ๐Ÿข +skiing โ›ท +skull ๐Ÿ’€ + .bones โ˜  +skunk ๐Ÿฆจ +sled ๐Ÿ›ท +slide ๐Ÿ› +slider ๐ŸŽš +sloth ๐Ÿฆฅ +slots ๐ŸŽฐ +snail ๐ŸŒ +snake ๐Ÿ +snowboarding ๐Ÿ‚ +snowflake โ„ +snowman โ›„ + .snow โ˜ƒ +soap ๐Ÿงผ +socks ๐Ÿงฆ +softball ๐ŸฅŽ +sos ๐Ÿ†˜ +soup ๐Ÿฒ +spaghetti ๐Ÿ +sparkle + .box โ‡ +sparkler ๐ŸŽ‡ +sparkles โœจ +speaker ๐Ÿ”ˆ + .not ๐Ÿ”‡ + .wave ๐Ÿ”‰ + .waves ๐Ÿ”Š +spider ๐Ÿ•ท +spiderweb ๐Ÿ•ธ +spinach ๐Ÿฅฌ +splatter ๐ŸซŸ +sponge ๐Ÿงฝ +spoon ๐Ÿฅ„ +square + .black โฌ› + .black.tiny โ–ช + .black.small โ—พ + .black.medium โ—ผ + .white โฌœ + .white.tiny โ–ซ + .white.small โ—ฝ + .white.medium โ—ป + .blue ๐ŸŸฆ + .brown ๐ŸŸซ + .green ๐ŸŸฉ + .orange ๐ŸŸง + .purple ๐ŸŸช + .red ๐ŸŸฅ + .yellow ๐ŸŸจ +squid ๐Ÿฆ‘ +stadium ๐ŸŸ +star โญ + .arc ๐Ÿ’ซ + .box โœด + .glow ๐ŸŒŸ + .shoot ๐ŸŒ  +stethoscope ๐Ÿฉบ +store + .big ๐Ÿฌ + .small ๐Ÿช +strawberry ๐Ÿ“ +suit + .club โ™ฃ + .diamond โ™ฆ + .heart โ™ฅ + .spade โ™  +sun โ˜€ + .cloud ๐ŸŒค + .face ๐ŸŒž +sunrise ๐ŸŒ… +superhero ๐Ÿฆธ +supervillain ๐Ÿฆน +surfing ๐Ÿ„ +sushi ๐Ÿฃ +swan ๐Ÿฆข +swimming ๐ŸŠ +swimsuit ๐Ÿฉฑ +swords โš” +symbols ๐Ÿ”ฃ +synagogue ๐Ÿ• +syringe ๐Ÿ’‰ +taco ๐ŸŒฎ +takeout ๐Ÿฅก +tamale ๐Ÿซ” +tanabata ๐ŸŽ‹ +tangerine ๐ŸŠ +tap ๐Ÿšฐ + .not ๐Ÿšฑ +taxi ๐Ÿš• + .front ๐Ÿš– +teacup ๐Ÿต +teapot ๐Ÿซ– +teddy ๐Ÿงธ +telescope ๐Ÿ”ญ +temple ๐Ÿ›• +ten ๐Ÿ”Ÿ +tengu ๐Ÿ‘บ +tennis ๐ŸŽพ +tent โ›บ +testtube ๐Ÿงช +thermometer ๐ŸŒก +thread ๐Ÿงต +thumb + .up ๐Ÿ‘ + .down ๐Ÿ‘Ž +ticket + .event ๐ŸŽŸ + .travel ๐ŸŽซ +tiger ๐Ÿ… + .face ๐Ÿฏ +tm โ„ข +toilet ๐Ÿšฝ +toiletpaper ๐Ÿงป +tomato ๐Ÿ… +tombstone ๐Ÿชฆ +tongue ๐Ÿ‘… +toolbox ๐Ÿงฐ +tooth ๐Ÿฆท +toothbrush ๐Ÿชฅ +tornado ๐ŸŒช +tower + .tokyo ๐Ÿ—ผ +trackball ๐Ÿ–ฒ +tractor ๐Ÿšœ +trafficlight + .v ๐Ÿšฆ + .h ๐Ÿšฅ +train ๐Ÿš† + .car ๐Ÿšƒ + .light ๐Ÿšˆ + .metro ๐Ÿš‡ + .mono ๐Ÿš + .mountain ๐Ÿšž + .speed ๐Ÿš„ + .speed.bullet ๐Ÿš… + .steam ๐Ÿš‚ + .stop ๐Ÿš‰ + .suspend ๐ŸšŸ + .tram ๐ŸšŠ + .tram.car ๐Ÿš‹ +transgender โšง +tray + .inbox ๐Ÿ“ฅ + .mail ๐Ÿ“จ + .outbox ๐Ÿ“ค +tree + .deciduous ๐ŸŒณ + .evergreen ๐ŸŒฒ + .leafless ๐Ÿชพ + .palm ๐ŸŒด + .xmas ๐ŸŽ„ +triangle + .r โ–ถ + .l โ—€ + .t ๐Ÿ”ผ + .b ๐Ÿ”ฝ + .t.red ๐Ÿ”บ + .b.red ๐Ÿ”ป +trident ๐Ÿ”ฑ +troll ๐ŸงŒ +trophy ๐Ÿ† +truck ๐Ÿšš + .trailer ๐Ÿš› +trumpet ๐ŸŽบ +tsukimi ๐ŸŽ‘ +turkey ๐Ÿฆƒ +turtle ๐Ÿข +tv ๐Ÿ“บ +ufo ๐Ÿ›ธ +umbrella + .open โ˜‚ + .closed ๐ŸŒ‚ + .rain โ˜” + .sun โ›ฑ +unicorn ๐Ÿฆ„ +unknown ๐Ÿฆณ +up ๐Ÿ†™ +urn โšฑ +vampire ๐Ÿง› +violin ๐ŸŽป +volcano ๐ŸŒ‹ +volleyball ๐Ÿ +vs ๐Ÿ†š +waffle ๐Ÿง‡ +wand ๐Ÿช„ +warning โš  +watch โŒš + .stop โฑ +watermelon ๐Ÿ‰ +waterpolo ๐Ÿคฝ +wave ๐ŸŒŠ +wc ๐Ÿšพ +weightlifting ๐Ÿ‹ +whale ๐Ÿ‹ + .spout ๐Ÿณ +wheel ๐Ÿ›ž +wheelchair ๐Ÿฆฝ + .box โ™ฟ + .motor ๐Ÿฆผ +wind ๐ŸŒฌ +windchime ๐ŸŽ +window ๐ŸชŸ +wine ๐Ÿท +wolf ๐Ÿบ +woman ๐Ÿ‘ฉ + .box ๐Ÿšบ + .crown ๐Ÿ‘ธ + .old ๐Ÿ‘ต + .pregnant ๐Ÿคฐ +wood ๐Ÿชต +worm ๐Ÿชฑ +wrench ๐Ÿ”ง +wrestling ๐Ÿคผ +xray ๐Ÿฉป +yarn ๐Ÿงถ +yoyo ๐Ÿช€ +zebra ๐Ÿฆ“ +zodiac + .aquarius โ™’ + .aries โ™ˆ + .cancer โ™‹ + .capri โ™‘ + .gemini โ™Š + .leo โ™Œ + .libra โ™Ž + .ophi โ›Ž + .pisces โ™“ + .sagit โ™ + .scorpio โ™ + .taurus โ™‰ + .virgo โ™ +zombie ๐ŸงŸ +zzz ๐Ÿ’ค diff --git a/src/modules/sym.txt b/src/modules/sym.txt new file mode 100644 index 0000000..c590495 --- /dev/null +++ b/src/modules/sym.txt @@ -0,0 +1,1028 @@ +// Control. +wj U+2060 +zwj U+200D +zwnj U+200C +zws U+200B +lrm U+200E +rlm U+200F + +// Spaces. +space U+20 + .nobreak U+A0 + .nobreak.narrow U+202F + .en U+2002 + .quad U+2003 + .third U+2004 + .quarter U+2005 + .sixth U+2006 + .med U+205F + .fig U+2007 + .punct U+2008 + .thin U+2009 + .hair U+200A + +// Delimiters. +paren + .l ( + .l.double โฆ… + .r ) + .r.double โฆ† + .t โœ + .b โ +brace + .l U+7B + .l.double โฆƒ + .r U+7D + .r.double โฆ„ + .t โž + .b โŸ +bracket + .l [ + .l.double โŸฆ + .r ] + .r.double โŸง + .t โŽด + .b โŽต +shell + .l โฒ + .l.double โŸฌ + .r โณ + .r.double โŸญ + .t โ  + .b โก +bar + .v | + .v.double โ€– + .v.triple โฆ€ + .v.broken ยฆ + .v.circle โฆถ + .h โ€• +fence + .l โง˜ + .l.double โงš + .r โง™ + .r.double โง› + .dotted โฆ™ +angle โˆ  + .l โŸจ + .l.curly โงผ + .l.dot โฆ‘ + .l.double ใ€Š + .r โŸฉ + .r.curly โงฝ + .r.dot โฆ’ + .r.double ใ€‹ + .acute โฆŸ + .arc โˆก + .arc.rev โฆ› + .oblique โฆฆ + .rev โฆฃ + .right โˆŸ + .right.rev โฏพ + .right.arc โŠพ + .right.dot โฆ + .right.sq โฆœ + .s โฆž + .spatial โŸ€ + .spheric โˆข + .spheric.rev โฆ  + .spheric.top โฆก +ceil + .l โŒˆ + .r โŒ‰ +floor + .l โŒŠ + .r โŒ‹ +amp & + .inv โ…‹ + +// Punctuation. +ast + .op โˆ— + .basic * + .low โŽ + .double โ‘ + .triple โ‚ + .small ๏นก + .circle โŠ› + .square โง† +at @ +backslash \ + .circle โฆธ + .not โงท +co โ„… +colon : + .double โˆท + .eq โ‰” + .double.eq โฉด +comma , +dagger โ€  + .double โ€ก +dash + .en โ€“ + .em โ€” + .em.two โธบ + .em.three โธป + .fig โ€’ + .wave ใ€œ + .colon โˆน + .circle โŠ + .wave.double ใ€ฐ +dot + .op โ‹… + .basic U+2E + .c ยท + .circle โŠ™ + .circle.big โจ€ + .square โŠก + .double ยจ + .triple U+20DB + .quad U+20DC +excl ! + .double โ€ผ + .inv ยก + .quest โ‰ +quest ? + .double โ‡ + .excl โˆ + .inv ยฟ +interrobang โ€ฝ +hash # +hyph โ€ + .minus U+2D + .nobreak U+2011 + .point โ€ง + .soft U+AD +numero โ„– +percent % +permille โ€ฐ +pilcrow ยถ + .rev โ‹ +section ยง +semi ; + .rev โ +slash / + .double โซฝ + .triple โซป + .big โงธ +dots + .h.c โ‹ฏ + .h โ€ฆ + .v โ‹ฎ + .down โ‹ฑ + .up โ‹ฐ +tilde + .op โˆผ + .basic ~ + .dot โฉช + .eq โ‰ƒ + .eq.not โ‰„ + .eq.rev โ‹ + .equiv โ‰… + .equiv.not โ‰‡ + .nequiv โ‰† + .not โ‰ + .rev โˆฝ + .rev.equiv โ‰Œ + .triple โ‰‹ + +// Accents, quotes, and primes. +acute ยด + .double ห +breve ห˜ +caret โ€ธ +caron ห‡ +hat ^ +diaer ยจ +grave ` +macron ยฏ +quote + .double " + .single ' + .l.double โ€œ + .l.single โ€˜ + .r.double โ€ + .r.single โ€™ + .angle.l.double ยซ + .angle.l.single โ€น + .angle.r.double ยป + .angle.r.single โ€บ + .high.double โ€Ÿ + .high.single โ€› + .low.double โ€ž + .low.single โ€š +prime โ€ฒ + .rev โ€ต + .double โ€ณ + .double.rev โ€ถ + .triple โ€ด + .triple.rev โ€ท + .quad โ— + +// https://en.wikipedia.org/wiki/List_of_mathematical_symbols_by_subject + +// Arithmetic. +plus + + .circle โŠ• + .circle.arrow โŸด + .circle.big โจ + .dot โˆ” + .double โงบ + .minus ยฑ + .small ๏นข + .square โŠž + .triangle โจน + .triple โงป +minus โˆ’ + .circle โŠ– + .dot โˆธ + .plus โˆ“ + .square โŠŸ + .tilde โ‰‚ + .triangle โจบ +div รท + .circle โจธ +times ร— + .big โจ‰ + .circle โŠ— + .circle.big โจ‚ + .div โ‹‡ + .three.l โ‹‹ + .three.r โ‹Œ + .l โ‹‰ + .r โ‹Š + .square โŠ  + .triangle โจป +ratio โˆถ + +// Relations. +eq = + .star โ‰› + .circle โŠœ + .colon โ‰• + .def โ‰ + .delta โ‰œ + .equi โ‰š + .est โ‰™ + .gt โ‹ + .lt โ‹œ + .m โ‰ž + .not โ‰  + .prec โ‹ž + .quest โ‰Ÿ + .small ๏นฆ + .succ โ‹Ÿ + .triple โ‰ก + .triple.not โ‰ข + .quad โ‰ฃ +gt > + .circle โง + .dot โ‹— + .approx โช† + .double โ‰ซ + .eq โ‰ฅ + .eq.slant โฉพ + .eq.lt โ‹› + .eq.not โ‰ฑ + .equiv โ‰ง + .lt โ‰ท + .lt.not โ‰น + .neq โชˆ + .napprox โชŠ + .nequiv โ‰ฉ + .not โ‰ฏ + .ntilde โ‹ง + .small ๏นฅ + .tilde โ‰ณ + .tilde.not โ‰ต + .tri โŠณ + .tri.eq โŠต + .tri.eq.not โ‹ญ + .tri.not โ‹ซ + .triple โ‹™ + .triple.nested โซธ +lt < + .circle โง€ + .dot โ‹– + .approx โช… + .double โ‰ช + .eq โ‰ค + .eq.slant โฉฝ + .eq.gt โ‹š + .eq.not โ‰ฐ + .equiv โ‰ฆ + .gt โ‰ถ + .gt.not โ‰ธ + .neq โช‡ + .napprox โช‰ + .nequiv โ‰จ + .not โ‰ฎ + .ntilde โ‹ฆ + .small ๏นค + .tilde โ‰ฒ + .tilde.not โ‰ด + .tri โŠฒ + .tri.eq โŠด + .tri.eq.not โ‹ฌ + .tri.not โ‹ช + .triple โ‹˜ + .triple.nested โซท +approx โ‰ˆ + .eq โ‰Š + .not โ‰‰ +prec โ‰บ + .approx โชท + .curly.eq โ‰ผ + .curly.eq.not โ‹  + .double โชป + .eq โชฏ + .equiv โชณ + .napprox โชน + .neq โชฑ + .nequiv โชต + .not โŠ€ + .ntilde โ‹จ + .tilde โ‰พ +succ โ‰ป + .approx โชธ + .curly.eq โ‰ฝ + .curly.eq.not โ‹ก + .double โชผ + .eq โชฐ + .equiv โชด + .napprox โชบ + .neq โชฒ + .nequiv โชถ + .not โŠ + .ntilde โ‹ฉ + .tilde โ‰ฟ +equiv โ‰ก + .not โ‰ข +prop โˆ +original โŠถ +image โŠท +asymp โ‰ + .not โ‰ญ + +// Set theory. +emptyset โˆ… + .arrow.r โฆณ + .arrow.l โฆด + .bar โฆฑ + .circle โฆฒ + .rev โฆฐ +nothing โˆ… + .arrow.r โฆณ + .arrow.l โฆด + .bar โฆฑ + .circle โฆฒ + .rev โฆฐ +without โˆ– +complement โˆ +in โˆˆ + .not โˆ‰ + .rev โˆ‹ + .rev.not โˆŒ + .rev.small โˆ + .small โˆŠ +subset โŠ‚ + .dot โชฝ + .double โ‹ + .eq โŠ† + .eq.not โŠˆ + .eq.sq โŠ‘ + .eq.sq.not โ‹ข + .neq โŠŠ + .not โŠ„ + .sq โŠ + .sq.neq โ‹ค +supset โŠƒ + .dot โชพ + .double โ‹‘ + .eq โŠ‡ + .eq.not โŠ‰ + .eq.sq โŠ’ + .eq.sq.not โ‹ฃ + .neq โŠ‹ + .not โŠ… + .sq โŠ + .sq.neq โ‹ฅ +union โˆช + .arrow โŠŒ + .big โ‹ƒ + .dot โŠ + .dot.big โจƒ + .double โ‹“ + .minus โฉ + .or โฉ… + .plus โŠŽ + .plus.big โจ„ + .sq โŠ” + .sq.big โจ† + .sq.double โฉ +sect โˆฉ + .and โฉ„ + .big โ‹‚ + .dot โฉ€ + .double โ‹’ + .sq โŠ“ + .sq.big โจ… + .sq.double โฉŽ + +// Calculus. +infinity โˆž + .bar โงž + .incomplete โงœ + .tie โง +oo โˆž +partial โˆ‚ +gradient โˆ‡ +nabla โˆ‡ +sum โˆ‘ + .integral โจ‹ +product โˆ + .co โˆ +integral โˆซ + .arrow.hook โจ— + .ccw โจ‘ + .cont โˆฎ + .cont.ccw โˆณ + .cont.cw โˆฒ + .cw โˆฑ + .dash โจ + .dash.double โจŽ + .double โˆฌ + .quad โจŒ + .sect โจ™ + .slash โจ + .square โจ– + .surf โˆฏ + .times โจ˜ + .triple โˆญ + .union โจš + .vol โˆฐ +laplace โˆ† + +// Logic. +forall โˆ€ +exists โˆƒ + .not โˆ„ +top โŠค +bot โŠฅ +not ยฌ +and โˆง + .big โ‹€ + .curly โ‹ + .dot โŸ‘ + .double โฉ“ +or โˆจ + .big โ‹ + .curly โ‹Ž + .dot โŸ‡ + .double โฉ” +xor โŠ• + .big โจ +models โŠง +forces โŠฉ + .not โŠฎ +therefore โˆด +because โˆต +qed โˆŽ + +// Function and category theory. +compose โˆ˜ +convolve โˆ— +multimap โŠธ + .double โงŸ + +// Game theory. +tiny โงพ +miny โงฟ + +// Number theory. +divides โˆฃ + .not โˆค + +// Algebra. +wreath โ‰€ + +// Geometry. +parallel โˆฅ + .struck โซฒ + .circle โฆท + .eq โ‹• + .equiv โฉจ + .not โˆฆ + .slanted.eq โงฃ + .slanted.eq.tilde โงค + .slanted.equiv โงฅ + .tilde โซณ +perp โŸ‚ + .circle โฆน + +// Miscellaneous Technical. +diameter โŒ€ +join โจ + .r โŸ– + .l โŸ• + .l.r โŸ— +degree ยฐ + .c โ„ƒ + .f โ„‰ +smash โจณ + +// Currency. +bitcoin โ‚ฟ +dollar $ +euro โ‚ฌ +franc โ‚ฃ +lira โ‚บ +peso โ‚ฑ +pound ยฃ +ruble โ‚ฝ +rupee โ‚น +won โ‚ฉ +yen ยฅ + +// Miscellaneous. +ballot โ˜ + .cross โ˜’ + .check โ˜‘ + .check.heavy ๐Ÿ—น +checkmark โœ“ + .light ๐Ÿ—ธ + .heavy โœ” +crossmark โœ— + .heavy โœ˜ +floral โฆ + .l โ˜™ + .r โง +refmark โ€ป +copyright ยฉ + .sound โ„— +copyleft ๐Ÿ„ฏ +trademark โ„ข + .registered ยฎ + .service โ„  +maltese โœ  +suit + .club.filled โ™ฃ + .club.stroked โ™ง + .diamond.filled โ™ฆ + .diamond.stroked โ™ข + .heart.filled โ™ฅ + .heart.stroked โ™ก + .spade.filled โ™  + .spade.stroked โ™ค + +// Music. +note + .up ๐ŸŽœ + .down ๐ŸŽ + .whole ๐… + .half ๐…ž + .quarter ๐…Ÿ + .quarter.alt โ™ฉ + .eighth ๐…  + .eighth.alt โ™ช + .eighth.beamed โ™ซ + .sixteenth ๐…ก + .sixteenth.beamed โ™ฌ + .grace ๐†• + .grace.slash ๐†” +rest + .whole ๐„ป + .multiple ๐„บ + .multiple.measure ๐„ฉ + .half ๐„ผ + .quarter ๐„ฝ + .eighth ๐„พ + .sixteenth ๐„ฟ +natural โ™ฎ + .t ๐„ฎ + .b ๐„ฏ +flat โ™ญ + .t ๐„ฌ + .b ๐„ญ + .double ๐„ซ + .quarter ๐„ณ +sharp โ™ฏ + .t ๐„ฐ + .b ๐„ฑ + .double ๐„ช + .quarter ๐„ฒ + +// Shapes. +bullet โ€ข +circle + .stroked โ—‹ + .stroked.tiny โˆ˜ + .stroked.small โšฌ + .stroked.big โ—ฏ + .filled โ— + .filled.tiny โฆ + .filled.small โˆ™ + .filled.big โฌค + .dotted โ—Œ + .nested โŠš +ellipse + .stroked.h โฌญ + .stroked.v โฌฏ + .filled.h โฌฌ + .filled.v โฌฎ +triangle + .stroked.t โ–ณ + .stroked.b โ–ฝ + .stroked.r โ–ท + .stroked.l โ— + .stroked.bl โ—บ + .stroked.br โ—ฟ + .stroked.tl โ—ธ + .stroked.tr โ—น + .stroked.small.t โ–ต + .stroked.small.b โ–ฟ + .stroked.small.r โ–น + .stroked.small.l โ—ƒ + .stroked.rounded ๐Ÿ›† + .stroked.nested โŸ + .stroked.dot โ—ฌ + .filled.t โ–ฒ + .filled.b โ–ผ + .filled.r โ–ถ + .filled.l โ—€ + .filled.bl โ—ฃ + .filled.br โ—ข + .filled.tl โ—ค + .filled.tr โ—ฅ + .filled.small.t โ–ด + .filled.small.b โ–พ + .filled.small.r โ–ธ + .filled.small.l โ—‚ +square + .stroked โ–ก + .stroked.tiny โ–ซ + .stroked.small โ—ฝ + .stroked.medium โ—ป + .stroked.big โฌœ + .stroked.dotted โฌš + .stroked.rounded โ–ข + .filled โ–  + .filled.tiny โ–ช + .filled.small โ—พ + .filled.medium โ—ผ + .filled.big โฌ› +rect + .stroked.h โ–ญ + .stroked.v โ–ฏ + .filled.h โ–ฌ + .filled.v โ–ฎ +penta + .stroked โฌ  + .filled โฌŸ +hexa + .stroked โฌก + .filled โฌข +diamond + .stroked โ—‡ + .stroked.small โ‹„ + .stroked.medium โฌฆ + .stroked.dot โŸ + .filled โ—† + .filled.medium โฌฅ + .filled.small โฌฉ +lozenge + .stroked โ—Š + .stroked.small โฌซ + .stroked.medium โฌจ + .filled โงซ + .filled.small โฌช + .filled.medium โฌง +parallelogram + .stroked โ–ฑ + .filled โ–ฐ +star + .op โ‹† + .stroked โ˜† + .filled โ˜… + +// Arrows, harpoons, and tacks. +arrow + .r โ†’ + .r.long.bar โŸผ + .r.bar โ†ฆ + .r.curve โคท + .r.turn โฎŽ + .r.dashed โ‡ข + .r.dotted โค‘ + .r.double โ‡’ + .r.double.bar โค‡ + .r.double.long โŸน + .r.double.long.bar โŸพ + .r.double.not โ‡ + .r.filled โžก + .r.hook โ†ช + .r.long โŸถ + .r.long.squiggly โŸฟ + .r.loop โ†ฌ + .r.not โ†› + .r.quad โญ† + .r.squiggly โ‡ + .r.stop โ‡ฅ + .r.stroked โ‡จ + .r.tail โ†ฃ + .r.tilde โฅฒ + .r.triple โ‡› + .r.twohead.bar โค… + .r.twohead โ†  + .r.wave โ† + .l โ† + .l.bar โ†ค + .l.curve โคถ + .l.turn โฎŒ + .l.dashed โ‡  + .l.dotted โฌธ + .l.double โ‡ + .l.double.bar โค† + .l.double.long โŸธ + .l.double.long.bar โŸฝ + .l.double.not โ‡ + .l.filled โฌ… + .l.hook โ†ฉ + .l.long โŸต + .l.long.bar โŸป + .l.long.squiggly โฌณ + .l.loop โ†ซ + .l.not โ†š + .l.quad โญ… + .l.squiggly โ‡œ + .l.stop โ‡ค + .l.stroked โ‡ฆ + .l.tail โ†ข + .l.tilde โญ‰ + .l.triple โ‡š + .l.twohead.bar โฌถ + .l.twohead โ†ž + .l.wave โ†œ + .t โ†‘ + .t.bar โ†ฅ + .t.curve โคด + .t.turn โฎ + .t.dashed โ‡ก + .t.double โ‡‘ + .t.filled โฌ† + .t.quad โŸฐ + .t.stop โค’ + .t.stroked โ‡ง + .t.triple โคŠ + .t.twohead โ†Ÿ + .b โ†“ + .b.bar โ†ง + .b.curve โคต + .b.turn โฎ + .b.dashed โ‡ฃ + .b.double โ‡“ + .b.filled โฌ‡ + .b.quad โŸฑ + .b.stop โค“ + .b.stroked โ‡ฉ + .b.triple โค‹ + .b.twohead โ†ก + .l.r โ†” + .l.r.double โ‡” + .l.r.double.long โŸบ + .l.r.double.not โ‡Ž + .l.r.filled โฌŒ + .l.r.long โŸท + .l.r.not โ†ฎ + .l.r.stroked โฌ„ + .l.r.wave โ†ญ + .t.b โ†• + .t.b.double โ‡• + .t.b.filled โฌ + .t.b.stroked โ‡ณ + .tr โ†— + .tr.double โ‡— + .tr.filled โฌˆ + .tr.hook โคค + .tr.stroked โฌ€ + .br โ†˜ + .br.double โ‡˜ + .br.filled โฌŠ + .br.hook โคฅ + .br.stroked โฌ‚ + .tl โ†– + .tl.double โ‡– + .tl.filled โฌ‰ + .tl.hook โคฃ + .tl.stroked โฌ + .bl โ†™ + .bl.double โ‡™ + .bl.filled โฌ‹ + .bl.hook โคฆ + .bl.stroked โฌƒ + .tl.br โคก + .tr.bl โคข + .ccw โ†บ + .ccw.half โ†ถ + .cw โ†ป + .cw.half โ†ท + .zigzag โ†ฏ +arrows + .rr โ‡‰ + .ll โ‡‡ + .tt โ‡ˆ + .bb โ‡Š + .lr โ‡† + .lr.stop โ†น + .rl โ‡„ + .tb โ‡… + .bt โ‡ต + .rrr โ‡ถ + .lll โฌฑ +arrowhead + .t โŒƒ + .b โŒ„ +harpoon + .rt โ‡€ + .rt.bar โฅ› + .rt.stop โฅ“ + .rb โ‡ + .rb.bar โฅŸ + .rb.stop โฅ— + .lt โ†ผ + .lt.bar โฅš + .lt.stop โฅ’ + .lb โ†ฝ + .lb.bar โฅž + .lb.stop โฅ– + .tl โ†ฟ + .tl.bar โฅ  + .tl.stop โฅ˜ + .tr โ†พ + .tr.bar โฅœ + .tr.stop โฅ” + .bl โ‡ƒ + .bl.bar โฅก + .bl.stop โฅ™ + .br โ‡‚ + .br.bar โฅ + .br.stop โฅ• + .lt.rt โฅŽ + .lb.rb โฅ + .lb.rt โฅ‹ + .lt.rb โฅŠ + .tl.bl โฅ‘ + .tr.br โฅ + .tl.br โฅ + .tr.bl โฅŒ +harpoons + .rtrb โฅค + .blbr โฅฅ + .bltr โฅฏ + .lbrb โฅง + .ltlb โฅข + .ltrb โ‡‹ + .ltrt โฅฆ + .rblb โฅฉ + .rtlb โ‡Œ + .rtlt โฅจ + .tlbr โฅฎ + .tltr โฅฃ +tack + .r โŠข + .r.not โŠฌ + .r.long โŸ + .r.short โŠฆ + .r.double โŠจ + .r.double.not โŠญ + .l โŠฃ + .l.long โŸž + .l.short โซž + .l.double โซค + .t โŠฅ + .t.big โŸ˜ + .t.double โซซ + .t.short โซ  + .b โŠค + .b.big โŸ™ + .b.double โซช + .b.short โซŸ + .l.r โŸ› + +// Lowercase Greek. +alpha ฮฑ +beta ฮฒ + .alt ฯ +chi ฯ‡ +delta ฮด +epsilon ฮต + .alt ฯต +eta ฮท +gamma ฮณ +iota ฮน +kai ฯ— +kappa ฮบ + .alt ฯฐ +lambda ฮป +mu ฮผ +nu ฮฝ +ohm โ„ฆ + .inv โ„ง +omega ฯ‰ +omicron ฮฟ +phi ฯ† + .alt ฯ• +pi ฯ€ + .alt ฯ– +psi ฯˆ +rho ฯ + .alt ฯฑ +sigma ฯƒ + .alt ฯ‚ +tau ฯ„ +theta ฮธ + .alt ฯ‘ +upsilon ฯ… +xi ฮพ +zeta ฮถ + +// Uppercase Greek. +Alpha ฮ‘ +Beta ฮ’ +Chi ฮง +Delta ฮ” +Epsilon ฮ• +Eta ฮ— +Gamma ฮ“ +Iota ฮ™ +Kai ฯ +Kappa ฮš +Lambda ฮ› +Mu ฮœ +Nu ฮ +Omega ฮฉ +Omicron ฮŸ +Phi ฮฆ +Pi ฮ  +Psi ฮจ +Rho ฮก +Sigma ฮฃ +Tau ฮค +Theta ฮ˜ +Upsilon ฮฅ +Xi ฮž +Zeta ฮ– + +// Hebrew. +// In math, the following symbols are replaced with corresponding characters +// from Letterlike Symbols. +// See https://github.com/typst/typst/pull/3375. +aleph ื +alef ื +beth ื‘ +bet ื‘ +gimmel ื’ +gimel ื’ +daleth ื“ +dalet ื“ +shin ืฉ + +// Double-struck. +AA ๐”ธ +BB ๐”น +CC โ„‚ +DD ๐”ป +EE ๐”ผ +FF ๐”ฝ +GG ๐”พ +HH โ„ +II ๐•€ +JJ ๐• +KK ๐•‚ +LL ๐•ƒ +MM ๐•„ +NN โ„• +OO ๐•† +PP โ„™ +QQ โ„š +RR โ„ +SS ๐•Š +TT ๐•‹ +UU ๐•Œ +VV ๐• +WW ๐•Ž +XX ๐• +YY ๐• +ZZ โ„ค + +// Miscellaneous letter-likes. +ell โ„“ +planck โ„Ž + .reduce โ„ +angstrom โ„ซ +kelvin โ„ช +Re โ„œ +Im โ„‘ +dotless + .i ฤฑ + .j ศท