diff --git a/Cargo.lock b/Cargo.lock index 86c3b14..3310815 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -4,9 +4,9 @@ version = 3 [[package]] name = "ab_glyph" -version = "0.2.23" +version = "0.2.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "80179d7dd5d7e8c285d67c4a1e652972a92de7475beddfb92028c76463b13225" +checksum = "6f90148830dac590fac7ccfe78ec4a8ea404c60f75a24e16407a71f0f40de775" dependencies = [ "ab_glyph_rasterizer", "owned_ttf_parser", @@ -124,9 +124,9 @@ dependencies = [ [[package]] name = "allocator-api2" -version = "0.2.16" +version = "0.2.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0942ffc6dcaadf03badf6e6a2d0228460359d5e34b57ccdc720b7382dfbd5ec5" +checksum = "5c6cb57a04249c6480766f7f7cef5467412af1490f8d1e243141daddada3264f" [[package]] name = "android-activity" @@ -164,6 +164,54 @@ dependencies = [ "libc", ] +[[package]] +name = "anstream" +version = "0.6.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d96bd03f33fe50a863e394ee9718a706f988b9079b20c3784fb726e7678b62fb" +dependencies = [ + "anstyle", + "anstyle-parse", + "anstyle-query", + "anstyle-wincon", + "colorchoice", + "utf8parse", +] + +[[package]] +name = "anstyle" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8901269c6307e8d93993578286ac0edf7f195079ffff5ebdeea6a59ffb7e36bc" + +[[package]] +name = "anstyle-parse" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c75ac65da39e5fe5ab759307499ddad880d724eed2f6ce5b5e8a26f4f387928c" +dependencies = [ + "utf8parse", +] + +[[package]] +name = "anstyle-query" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e28923312444cdd728e4738b3f9c9cac739500909bb3d3c94b43551b16517648" +dependencies = [ + "windows-sys 0.52.0", +] + +[[package]] +name = "anstyle-wincon" +version = "3.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1cd54b81ec8d6180e24654d0b371ad22fc3dd083b6ff8ba325b72e00c87660a7" +dependencies = [ + "anstyle", + "windows-sys 0.52.0", +] + [[package]] name = "arboard" version = "3.3.2" @@ -182,9 +230,9 @@ dependencies = [ [[package]] name = "arc-swap" -version = "1.7.0" +version = "1.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b3d0060af21e8d11a926981cc00c6c1541aa91dd64b9f881985c3da1094425f" +checksum = "69f7f8c3906b62b754cd5326047894316021dcfe5a194c8ea52bdd94934a3457" [[package]] name = "arrayvec" @@ -219,27 +267,26 @@ dependencies = [ [[package]] name = "async-channel" -version = "2.2.0" +version = "2.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f28243a43d821d11341ab73c80bed182dc015c514b951616cf79bd4af39af0c3" +checksum = "136d4d23bcc79e27423727b36823d86233aad06dfea531837b038394d11e9928" dependencies = [ "concurrent-queue", - "event-listener 5.2.0", - "event-listener-strategy 0.5.0", + "event-listener 5.3.0", + "event-listener-strategy 0.5.1", "futures-core", "pin-project-lite", ] [[package]] name = "async-executor" -version = "1.8.0" +version = "1.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "17ae5ebefcc48e7452b4987947920dac9450be1110cadf34d1b8c116bdbaf97c" +checksum = "b10202063978b3351199d68f8b22c4e47e4b1b822f8d43fd862d5ea8c006b29a" dependencies = [ - "async-lock 3.3.0", "async-task", "concurrent-queue", - "fastrand 2.0.1", + "fastrand 2.0.2", "futures-lite 2.3.0", "slab", ] @@ -288,7 +335,7 @@ dependencies = [ "futures-io", "futures-lite 2.3.0", "parking", - "polling 3.5.0", + "polling 3.6.0", "rustix 0.38.32", "slab", "tracing", @@ -346,7 +393,7 @@ checksum = "30c5ef0ede93efbf733c1a727f3b6b5a1060bbedd5600183e66f6e4be4af0ec5" dependencies = [ "proc-macro2", "quote", - "syn 2.0.53", + "syn 2.0.60", ] [[package]] @@ -375,13 +422,13 @@ checksum = "fbb36e985947064623dbd357f727af08ffd077f93d696782f3c56365fa2e2799" [[package]] name = "async-trait" -version = "0.1.78" +version = "0.1.80" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "461abc97219de0eaaf81fe3ef974a540158f3d079c2ab200f891f1a2ef201e85" +checksum = "c6fa2087f2753a7da8cc1c0dbfcf89579dd57458e36769de5ac750b4671737ca" dependencies = [ "proc-macro2", "quote", - "syn 2.0.53", + "syn 2.0.60", ] [[package]] @@ -440,9 +487,9 @@ dependencies = [ [[package]] name = "autocfg" -version = "1.1.0" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" +checksum = "f1fdabc7756949593fe60f30ec81974b613357de856987752631dea1e3394c80" [[package]] name = "base64" @@ -513,7 +560,7 @@ version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ae85a0696e7ea3b835a453750bf002770776609115e6d25c6d2ff28a8200f7e7" dependencies = [ - "objc-sys 0.3.2", + "objc-sys 0.3.3", ] [[package]] @@ -545,7 +592,7 @@ dependencies = [ "async-channel", "async-lock 3.3.0", "async-task", - "fastrand 2.0.1", + "fastrand 2.0.2", "futures-io", "futures-lite 2.3.0", "piper", @@ -554,9 +601,9 @@ dependencies = [ [[package]] name = "bumpalo" -version = "3.15.4" +version = "3.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ff69b9dd49fd426c69a0db9fc04dd934cdb6645ff000864d98f7e2af8830eaa" +checksum = "79296716171880943b8470b5f8d03aa55eb2e645a4874bdbb28adb49162e012c" [[package]] name = "bytemuck" @@ -575,7 +622,7 @@ checksum = "4da9a32f3fed317401fa3c862968128267c3106685286e15d5aaa3d7389c2f60" dependencies = [ "proc-macro2", "quote", - "syn 2.0.53", + "syn 2.0.60", ] [[package]] @@ -586,9 +633,9 @@ checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" [[package]] name = "bytes" -version = "1.5.0" +version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a2bd12c1caf447e69cd4528f47f94d203fd2582878ecb9e9465484c4148a8223" +checksum = "514de17de45fdb8dc022b1a7975556c53c86f9f0aa5f534b98977b171857c2c9" [[package]] name = "calloop" @@ -598,7 +645,7 @@ checksum = "fba7adb4dd5aa98e5553510223000e7148f621165ec5f9acd7113f6ca4995298" dependencies = [ "bitflags 2.5.0", "log", - "polling 3.5.0", + "polling 3.6.0", "rustix 0.38.32", "slab", "thiserror", @@ -618,9 +665,9 @@ dependencies = [ [[package]] name = "cc" -version = "1.0.90" +version = "1.0.94" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8cd6604a82acf3039f1144f54b8eb34e91ffba622051189e71b781822d5ee1f5" +checksum = "17f6e324229dc011159fcc089755d1e2e216a90d43a7dea6853ca740b84f35e7" dependencies = [ "jobserver", "libc", @@ -646,9 +693,9 @@ checksum = "fd16c4719339c4530435d38e511904438d07cce7950afa3718a84ac36c10e89e" [[package]] name = "clipboard-win" -version = "5.3.0" +version = "5.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d517d4b86184dbb111d3556a10f1c8a04da7428d2987bf1081602bf11c3aa9ee" +checksum = "79f4473f5144e20d9aceaf2972478f06ddf687831eafeeb434fbaf0acc4144ad" dependencies = [ "error-code", ] @@ -699,6 +746,12 @@ version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3d7b894f5411737b7867f4827955924d7c254fc9f4d91a6aad6b097804b1018b" +[[package]] +name = "colorchoice" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "acbf1af155f9b9ef647e42cdc158db4b64a1b61f743629225fde6f3e0be2a7c7" + [[package]] name = "com" version = "0.6.0" @@ -732,9 +785,9 @@ dependencies = [ [[package]] name = "combine" -version = "4.6.6" +version = "4.6.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "35ed6e9d84f0b51a7f52daf1c7d71dd136fd7a3f41a8462b8cdb8c78d920fad4" +checksum = "ba5a308b75df32fe02788e748662718f03fde005016435c444eea572398219fd" dependencies = [ "bytes", "memchr", @@ -773,9 +826,9 @@ checksum = "06ea2b9bc92be3c2baa9334a323ebca2d6f074ff852cd1d7b11064035cd3868f" [[package]] name = "core-graphics" -version = "0.23.1" +version = "0.23.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "970a29baf4110c26fedbc7f82107d42c23f7e88e404c4577ed73fe99ff85a212" +checksum = "c07782be35f9e1140080c6b96f0d44b739e2278479f64e02fdab4e32dfd8b081" dependencies = [ "bitflags 1.3.2", "core-foundation", @@ -798,12 +851,14 @@ dependencies = [ [[package]] name = "cosmic-jotdown" version = "0.1.0" -source = "git+https://git.nations.lol/fnmain/cosmic-jotdown#1207336fd313c970233ab332cf04683fbd7df693" dependencies = [ "cosmic-text", + "emath", + "image", "jotdown", "log", - "range-map", + "nominals", + "rangemap", ] [[package]] @@ -924,7 +979,7 @@ checksum = "377af281d8f23663862a7c84623bc5dcf7f8c44b13c7496a590bdc157f941a43" dependencies = [ "proc-macro2", "quote", - "syn 2.0.53", + "syn 2.0.60", "synstructure", ] @@ -975,15 +1030,15 @@ dependencies = [ [[package]] name = "downcast-rs" -version = "1.2.0" +version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ea835d29036a4087793836fa931b08837ad5e957da9e23886b29586fb9b6650" +checksum = "75b325c5dbd37f80359721ad39aca5a29fb04c89279657cffdda8736d0c0b9d2" [[package]] name = "ecolor" -version = "0.26.2" +version = "0.27.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "03cfe80b1890e1a8cdbffc6044d6872e814aaf6011835a2a5e2db0e5c5c4ef4e" +checksum = "20930a432bbd57a6d55e07976089708d4893f3d556cf42a0d79e9e321fa73b10" dependencies = [ "bytemuck", "serde", @@ -991,9 +1046,9 @@ dependencies = [ [[package]] name = "eframe" -version = "0.26.2" +version = "0.27.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c456c1bb6d13bf68b780257484703d750c70a23ff891ba35f4d6e23a4dbdf26f" +checksum = "020e2ccef6bbcec71dbc542f7eed64a5846fc3076727f5746da8fd307c91bab2" dependencies = [ "bytemuck", "cocoa", @@ -1023,9 +1078,9 @@ dependencies = [ [[package]] name = "egui" -version = "0.26.2" +version = "0.27.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "180f595432a5b615fc6b74afef3955249b86cfea72607b40740a4cd60d5297d0" +checksum = "584c5d1bf9a67b25778a3323af222dbe1a1feb532190e103901187f92c7fe29a" dependencies = [ "accesskit", "ahash", @@ -1038,7 +1093,7 @@ dependencies = [ [[package]] name = "egui-glyphon" version = "0.1.0" -source = "git+https://git.nations.lol/fnmain/egui-glyphon#3626c7e55d45734eff9b1b7df04349d97de77667" +source = "git+https://git.nations.lol/fnmain/egui-glyphon#e23ef74e3471383498885907781424ee36fcd833" dependencies = [ "egui", "egui-wgpu", @@ -1047,9 +1102,9 @@ dependencies = [ [[package]] name = "egui-wgpu" -version = "0.26.2" +version = "0.27.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "86f2d75e1e70228e7126f828bac05f9fe0e7ea88e9660c8cebe609bb114c61d4" +checksum = "469ff65843f88a702b731a1532b7d03b0e8e96d283e70f3a22b0e06c46cb9b37" dependencies = [ "bytemuck", "document-features", @@ -1065,9 +1120,9 @@ dependencies = [ [[package]] name = "egui-winit" -version = "0.26.2" +version = "0.27.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aa4d44f8d89f70d4480545eb2346b76ea88c3022e9f4706cebc799dbe8b004a2" +checksum = "2e3da0cbe020f341450c599b35b92de4af7b00abde85624fd16f09c885573609" dependencies = [ "accesskit_winit", "arboard", @@ -1082,9 +1137,9 @@ dependencies = [ [[package]] name = "egui_extras" -version = "0.26.2" +version = "0.27.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f4a6962241a76da5be5e64e41b851ee1c95fda11f76635522a3c82b119b5475" +checksum = "1b78779f35ded1a853786c9ce0b43fe1053e10a21ea3b23ebea411805ce41593" dependencies = [ "egui", "ehttp", @@ -1097,15 +1152,15 @@ dependencies = [ [[package]] name = "egui_glow" -version = "0.26.2" +version = "0.27.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a08e3be8728b4c59493dbfec041c657e6725bdeafdbd49aef3f1dbb9e551fa01" +checksum = "e0e5d975f3c86edc3d35b1db88bb27c15dde7c55d3b5af164968ab5ede3f44ca" dependencies = [ "bytemuck", "egui", "glow", "log", - "memoffset 0.9.0", + "memoffset 0.9.1", "wasm-bindgen", "web-sys", "winit", @@ -1113,9 +1168,9 @@ dependencies = [ [[package]] name = "ehttp" -version = "0.4.0" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e598cc2bfc28612f26426259ed99a978270e9433d63ae6d2843e30fb0974cd02" +checksum = "59a81c221a1e4dad06cb9c9deb19aea1193a5eea084e8cd42d869068132bf876" dependencies = [ "document-features", "js-sys", @@ -1127,15 +1182,15 @@ dependencies = [ [[package]] name = "either" -version = "1.10.0" +version = "1.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "11157ac094ffbdde99aa67b23417ebdd801842852b500e395a45a9c0aac03e4a" +checksum = "a47c1c47d2f5964e29c61246e81db715514cd532db6b5116a25ea3c03d6780a2" [[package]] name = "emath" -version = "0.26.2" +version = "0.27.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6916301ecf80448f786cdf3eb51d9dbdd831538732229d49119e2d4312eaaf09" +checksum = "e4c3a552cfca14630702449d35f41c84a0d15963273771c6059175a803620f3f" dependencies = [ "bytemuck", "serde", @@ -1170,7 +1225,7 @@ checksum = "92959a9e8d13eaa13b8ae8c7b583c3bf1669ca7a8e7708a088d12587ba86effc" dependencies = [ "proc-macro2", "quote", - "syn 2.0.53", + "syn 2.0.60", ] [[package]] @@ -1191,7 +1246,7 @@ checksum = "f282cfdfe92516eb26c2af8589c274c7c17681f5ecc03c18255fe741c6aa64eb" dependencies = [ "proc-macro2", "quote", - "syn 2.0.53", + "syn 2.0.60", ] [[package]] @@ -1212,7 +1267,7 @@ checksum = "5c785274071b1b420972453b306eeca06acf4633829db4223b58a2a8c5953bc4" dependencies = [ "proc-macro2", "quote", - "syn 2.0.53", + "syn 2.0.60", ] [[package]] @@ -1223,27 +1278,37 @@ checksum = "6fd000fd6988e73bbe993ea3db9b1aa64906ab88766d654973924340c8cddb42" dependencies = [ "proc-macro2", "quote", - "syn 2.0.53", + "syn 2.0.60", +] + +[[package]] +name = "env_filter" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a009aa4810eb158359dda09d0c87378e4bbb89b5a801f016885a4707ba24f7ea" +dependencies = [ + "log", + "regex", ] [[package]] name = "env_logger" -version = "0.10.2" +version = "0.11.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4cd405aab171cb85d6735e5c8d9db038c17d3ca007a4d2c25f337935c3d90580" +checksum = "38b35839ba51819680ba087cd351788c9a3c476841207e0b8cee0b04722343b9" dependencies = [ + "anstream", + "anstyle", + "env_filter", "humantime", - "is-terminal", "log", - "regex", - "termcolor", ] [[package]] name = "epaint" -version = "0.26.2" +version = "0.27.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77b9fdf617dd7f58b0c8e6e9e4a1281f730cde0831d40547da446b2bb76a47af" +checksum = "b381f8b149657a4acf837095351839f32cd5c4aec1817fc4df84e18d76334176" dependencies = [ "ab_glyph", "ahash", @@ -1327,9 +1392,9 @@ dependencies = [ [[package]] name = "event-listener" -version = "5.2.0" +version = "5.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b5fb89194fa3cad959b833185b3063ba881dbfc7030680b314250779fb4cc91" +checksum = "6d9944b8ca13534cdfb2800775f8dd4902ff3fc75a50101466decadfdf322a24" dependencies = [ "concurrent-queue", "parking", @@ -1348,11 +1413,11 @@ dependencies = [ [[package]] name = "event-listener-strategy" -version = "0.5.0" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "feedafcaa9b749175d5ac357452a9d41ea2911da598fde46ce1fe02c37751291" +checksum = "332f51cb23d20b0de8458b86580878211da09bcd4503cb579c225b3d124cabb3" dependencies = [ - "event-listener 5.2.0", + "event-listener 5.3.0", "pin-project-lite", ] @@ -1383,9 +1448,9 @@ dependencies = [ [[package]] name = "fastrand" -version = "2.0.1" +version = "2.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "25cbce373ec4653f1a01a31e8a5e5ec0c622dc27ff9c4e6606eefef5cbbed4a5" +checksum = "658bd65b1cf4c852a3cc96f18a8ce7b5640f6b703f905c7d74532294c2a63984" [[package]] name = "fdeflate" @@ -1417,9 +1482,12 @@ dependencies = [ [[package]] name = "font-types" -version = "0.4.3" +version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b7f6040d337bd44434ab21fc6509154edf2cece88b23758d9d64654c4e7730b" +checksum = "bd6784a76a9c2b136ea3b8462391e9328252e938eb706eb44d752723b4c3a533" +dependencies = [ + "bytemuck", +] [[package]] name = "fontconfig-parser" @@ -1462,7 +1530,7 @@ checksum = "1a5c6c585bc94aaf2c7b51dd4c2ba22680844aba4c687be581871a6f518c5742" dependencies = [ "proc-macro2", "quote", - "syn 2.0.53", + "syn 2.0.60", ] [[package]] @@ -1513,7 +1581,7 @@ version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "52527eb5074e35e9339c6b4e8d12600c7128b68fb25dcb9fa9dec18f7c25f3a5" dependencies = [ - "fastrand 2.0.1", + "fastrand 2.0.2", "futures-core", "futures-io", "parking", @@ -1570,9 +1638,9 @@ dependencies = [ [[package]] name = "getrandom" -version = "0.2.12" +version = "0.2.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "190092ea657667030ac6a35e305e62fc4dd69fd98ac98631e5d3a2b1575a12b5" +checksum = "94b22e06ecb0110981051723910cbf0b5f5e09a2062dd7663334ee79a9d1286c" dependencies = [ "cfg-if", "libc", @@ -1698,9 +1766,9 @@ dependencies = [ [[package]] name = "half" -version = "2.4.0" +version = "2.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5eceaaeec696539ddaf7b333340f1af35a5aa87ae3e4f3ead0532f72affab2e" +checksum = "6dd08c532ae367adf81c312a4580bc67f1d0fe8bc9c460520283f4c0ff277888" dependencies = [ "cfg-if", "crunchy", @@ -1805,9 +1873,9 @@ dependencies = [ [[package]] name = "indexmap" -version = "2.2.5" +version = "2.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b0b929d511467233429c45a44ac1dcaa21ba0f5ba11e4879e6ed28ddb4f9df4" +checksum = "168fb715dda47215e360912c096649d23d58bf392ac62f73919e831745e40f26" dependencies = [ "equivalent", "hashbrown", @@ -1833,17 +1901,6 @@ dependencies = [ "windows-sys 0.48.0", ] -[[package]] -name = "is-terminal" -version = "0.4.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f23ff5ef2b80d608d61efee834934d862cd92461afc0560dedf493e4c033738b" -dependencies = [ - "hermit-abi", - "libc", - "windows-sys 0.52.0", -] - [[package]] name = "jni" version = "0.21.1" @@ -1868,9 +1925,9 @@ checksum = "8eaf4bc02d17cbdd7ff4c7438cafcdf7fb9a4613313ad11b4f8fefe7d3fa0130" [[package]] name = "jobserver" -version = "0.1.28" +version = "0.1.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ab46a6e9526ddef3ae7f787c06f0f2600639ba80ea3eade3d8e670a2230f51d6" +checksum = "685a7d121ee3f65ae4fddd72b25a04bb36b6af81bc0828f7d5434c0fe60fa3a2" dependencies = [ "libc", ] @@ -1878,9 +1935,10 @@ dependencies = [ [[package]] name = "jotdown" version = "0.3.2" -source = "git+https://git.nations.lol/fnmain/jotdown#8239b2b51d2ad3517bb0e71440e7bcd5114e08d2" +source = "git+https://git.nations.lol/fnmain/jotdown#6aeae19bf5d2d3551ebb31c5a7b661657a2c4a69" dependencies = [ "databake", + "serde", ] [[package]] @@ -1956,7 +2014,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0c2a198fb6b0eada2a8df47933734e6d35d350665a33a3593d7164fa52c75c19" dependencies = [ "cfg-if", - "windows-targets 0.52.4", + "windows-targets 0.52.5", ] [[package]] @@ -2030,9 +2088,9 @@ dependencies = [ [[package]] name = "memchr" -version = "2.7.1" +version = "2.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "523dc4f511e55ab87b694dc30d0f820d60906ef06413f93d4d7a1385599cc149" +checksum = "6c8640c5d730cb13ebd907d8d04b52f55ac9a2eec55b440c8892f40d56c76c1d" [[package]] name = "memmap2" @@ -2054,9 +2112,9 @@ dependencies = [ [[package]] name = "memoffset" -version = "0.9.0" +version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a634b1c61a95585bd15607c6ab0c4e5b226e695ff2800ba0cdccddf208c406c" +checksum = "488016bfae457b036d996092f6cb448677611ce4449e970ceaf42695203f218a" dependencies = [ "autocfg", ] @@ -2170,6 +2228,12 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2bf50223579dc7cdcfb3bfcacf7069ff68243f8c363f62ffa99cf000a6b9c451" +[[package]] +name = "nominals" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bd4b6e50a0a7f2214e99ecf7f4a2c9cb9572e5817d96e37a6d31387961c23994" + [[package]] name = "num-traits" version = "0.2.18" @@ -2198,7 +2262,7 @@ dependencies = [ "proc-macro-crate 3.1.0", "proc-macro2", "quote", - "syn 2.0.53", + "syn 2.0.60", ] [[package]] @@ -2230,9 +2294,9 @@ checksum = "df3b9834c1e95694a05a828b59f55fa2afec6288359cda67146126b3f90a55d7" [[package]] name = "objc-sys" -version = "0.3.2" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c7c71324e4180d0899963fc83d9d241ac39e699609fc1025a850aadac8257459" +checksum = "da284c198fb9b7b0603f8635185e85fbd5b64ee154b1ed406d489077de2d6d60" [[package]] name = "objc2" @@ -2251,7 +2315,7 @@ version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "559c5a40fdd30eb5e344fbceacf7595a81e242529fb4e21cf5f43fb4f11ff98d" dependencies = [ - "objc-sys 0.3.2", + "objc-sys 0.3.3", "objc2-encode 3.0.0", ] @@ -2365,9 +2429,9 @@ checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" [[package]] name = "pin-project-lite" -version = "0.2.13" +version = "0.2.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8afb450f006bf6385ca15ef45d71d2288452bc3683ce2e2cacc0d18e4be60b58" +checksum = "bda66fc9667c18cb2758a2ac84d1167245054bcf85d5d1aaa6923f45801bdd02" [[package]] name = "pin-utils" @@ -2382,7 +2446,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "668d31b1c4eba19242f2088b2bf3316b82ca31082a8335764db4e083db7485d4" dependencies = [ "atomic-waker", - "fastrand 2.0.1", + "fastrand 2.0.2", "futures-io", ] @@ -2423,12 +2487,13 @@ dependencies = [ [[package]] name = "polling" -version = "3.5.0" +version = "3.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "24f040dee2588b4963afb4e420540439d126f73fdacf4a9c486a96d840bac3c9" +checksum = "e0c976a60b2d7e99d6f229e414670a9b85d13ac305cc6d1e9c134de58c5aaaf6" dependencies = [ "cfg-if", "concurrent-queue", + "hermit-abi", "pin-project-lite", "rustix 0.38.32", "tracing", @@ -2459,7 +2524,7 @@ dependencies = [ "jotdown", "keyframe", "log", - "range-map", + "rangemap", "wasm-bindgen", "wasm-bindgen-futures", "web-sys", @@ -2499,9 +2564,9 @@ dependencies = [ [[package]] name = "proc-macro2" -version = "1.0.79" +version = "1.0.81" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e835ff2298f5721608eb1a980ecaee1aef2c132bf95ecc026a11b7bf3c01c02e" +checksum = "3d1597b0c024618f09a9c3b8655b7e430397a36d23fdafec26d6965e9eec3eba" dependencies = [ "unicode-ident", ] @@ -2532,9 +2597,9 @@ dependencies = [ [[package]] name = "quote" -version = "1.0.35" +version = "1.0.36" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef" +checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7" dependencies = [ "proc-macro2", ] @@ -2575,15 +2640,6 @@ version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9c8a99fddc9f0ba0a85884b8d14e3592853e787d581ca1816c91349b10e4eeab" -[[package]] -name = "range-map" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "12a5a2d6c7039059af621472a4389be1215a816df61aa4d531cfe85264aee95f" -dependencies = [ - "num-traits", -] - [[package]] name = "rangemap" version = "1.5.1" @@ -2604,9 +2660,9 @@ checksum = "42a9830a0e1b9fb145ebb365b8bc4ccd75f290f98c0247deafbbe2c75cefb544" [[package]] name = "rayon" -version = "1.9.0" +version = "1.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e4963ed1bc86e4f3ee217022bd855b297cef07fb9eac5dfa1f788b220b49b3bd" +checksum = "b418a60154510ca1a002a752ca9714984e21e4241e804d32555251faf8b78ffa" dependencies = [ "either", "rayon-core", @@ -2624,10 +2680,11 @@ dependencies = [ [[package]] name = "read-fonts" -version = "0.16.0" +version = "0.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81c524658d3b77930a391f559756d91dbe829ab6cf4687083f615d395df99722" +checksum = "ea75b5ec052843434d263ef7a4c31cf86db5908c729694afb1ad3c884252a1b6" dependencies = [ + "bytemuck", "font-types", ] @@ -2651,9 +2708,9 @@ dependencies = [ [[package]] name = "regex" -version = "1.10.3" +version = "1.10.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b62dbe01f0b06f9d8dc7d49e05a0785f153b00b2c227856282f671e0318c9b15" +checksum = "c117dbdfde9c8308975b6a18d71f3f385c89461f7b3fb054288ecf2a2058ba4c" dependencies = [ "aho-corasick", "memchr", @@ -2674,9 +2731,9 @@ dependencies = [ [[package]] name = "regex-syntax" -version = "0.8.2" +version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f" +checksum = "adad44e29e4c806119491a7f06f03de4d1af22c3a680dd47f1e6e179439d1f56" [[package]] name = "renderdoc-sys" @@ -2740,9 +2797,9 @@ dependencies = [ [[package]] name = "rustls" -version = "0.22.2" +version = "0.22.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e87c9956bd9807afa1f77e0f7594af32566e830e088a5576d27c5b6f30f49d41" +checksum = "99008d7ad0bbbea527ec27bddbc0e432c5b87d8175178cee68d2eec9c4a1813c" dependencies = [ "log", "ring", @@ -2754,9 +2811,9 @@ dependencies = [ [[package]] name = "rustls-pki-types" -version = "1.3.1" +version = "1.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ede67b28608b4c60685c7d54122d4400d90f62b40caee7700e700380a390fa8" +checksum = "ecd36cc4259e3e4514335c4a138c6b43171a8d61d8f5c9348f9fc7529416f247" [[package]] name = "rustls-webpki" @@ -2815,33 +2872,33 @@ checksum = "58bf37232d3bb9a2c4e641ca2a11d83b5062066f88df7fed36c28772046d65ba" [[package]] name = "serde" -version = "1.0.197" +version = "1.0.198" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3fb1c873e1b9b056a4dc4c0c198b24c3ffa059243875552b2bd0933b1aee4ce2" +checksum = "9846a40c979031340571da2545a4e5b7c4163bdae79b301d5f86d03979451fcc" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.197" +version = "1.0.198" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7eb0b34b42edc17f6b7cac84a52a1c5f0e1bb2227e997ca9011ea3dd34e8610b" +checksum = "e88edab869b01783ba905e7d0153f9fc1a6505a96e4ad3018011eedb838566d9" dependencies = [ "proc-macro2", "quote", - "syn 2.0.53", + "syn 2.0.60", ] [[package]] name = "serde_repr" -version = "0.1.18" +version = "0.1.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b2e6b945e9d3df726b65d6ee24060aff8e3533d431f677a9695db04eff9dfdb" +checksum = "6c64451ba24fc7a6a2d60fc75dd9c83c90903b19028d4eff35e88fc1e86564e9" dependencies = [ "proc-macro2", "quote", - "syn 2.0.53", + "syn 2.0.60", ] [[package]] @@ -2890,9 +2947,9 @@ dependencies = [ [[package]] name = "smallvec" -version = "1.13.1" +version = "1.13.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e6ecd384b10a64542d77071bd64bd7b231f4ed5940fba55e98c3de13824cf3d7" +checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" [[package]] name = "smithay-client-toolkit" @@ -2987,9 +3044,9 @@ checksum = "f83ba502a3265efb76efb89b0a2f7782ad6f2675015d4ce37e4b547dda42b499" [[package]] name = "swash" -version = "0.1.13" +version = "0.1.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9af636fb90d39858650cae1088a37e2862dab4e874a0bb49d6dfb5b2dacf0e24" +checksum = "06ec889a8e0a6fcb91041996c8f1f6be0fe1a09e94478785e07c32ce2bca2d2b" dependencies = [ "read-fonts", "yazi", @@ -3009,9 +3066,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.53" +version = "2.0.60" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7383cd0e49fff4b6b90ca5670bfd3e9d6a733b3f90c686605aa7eec8c4996032" +checksum = "909518bc7b1c9b779f1bbf07f2929d35af9f0f37e47c6e9ef7f9dddc1e1821f3" dependencies = [ "proc-macro2", "quote", @@ -3026,7 +3083,7 @@ checksum = "c8af7666ab7b6390ab78131fb5b0fce11d6b7a6951602017c35fa82800708971" dependencies = [ "proc-macro2", "quote", - "syn 2.0.53", + "syn 2.0.60", ] [[package]] @@ -3045,7 +3102,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "85b77fafb263dd9d05cbeac119526425676db3784113aa9295c88498cbf8bff1" dependencies = [ "cfg-if", - "fastrand 2.0.1", + "fastrand 2.0.2", "rustix 0.38.32", "windows-sys 0.52.0", ] @@ -3076,7 +3133,7 @@ checksum = "c61f3ba182994efc43764a46c018c347bc492c79f024e705f46567b418f6d4f7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.53", + "syn 2.0.60", ] [[package]] @@ -3152,7 +3209,7 @@ checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.53", + "syn 2.0.60", ] [[package]] @@ -3191,7 +3248,7 @@ version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "89daebc3e6fd160ac4aa9fc8b3bf71e1f74fbf92367ae71fb83a037e8bf164b9" dependencies = [ - "memoffset 0.9.0", + "memoffset 0.9.1", "tempfile", "winapi", ] @@ -3308,6 +3365,12 @@ dependencies = [ "percent-encoding", ] +[[package]] +name = "utf8parse" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "711b9620af191e0cdc7468a8d14e709c3dcdb115b36f838e601583af800a370a" + [[package]] name = "version_check" version = "0.9.4" @@ -3357,7 +3420,7 @@ dependencies = [ "once_cell", "proc-macro2", "quote", - "syn 2.0.53", + "syn 2.0.60", "wasm-bindgen-shared", ] @@ -3391,7 +3454,7 @@ checksum = "e94f17b526d0a461a191c78ea52bbce64071ed5c04c9ffe424dcb38f74171bb7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.53", + "syn 2.0.60", "wasm-bindgen-backend", "wasm-bindgen-shared", ] @@ -3533,9 +3596,9 @@ dependencies = [ [[package]] name = "webbrowser" -version = "0.8.13" +version = "0.8.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d1b04c569c83a9bb971dd47ec6fd48753315f4bf989b9b04a2e7ca4d7f0dc950" +checksum = "db67ae75a9405634f5882791678772c94ff5f16a66535aae186e26aa0841fc8b" dependencies = [ "core-foundation", "home", @@ -3565,9 +3628,9 @@ checksum = "53a85b86a771b1c87058196170769dd264f66c0782acf1ae6cc51bfd64b39082" [[package]] name = "wgpu" -version = "0.19.3" +version = "0.19.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4b1213b52478a7631d6e387543ed8f642bc02c578ef4e3b49aca2a29a7df0cb" +checksum = "cbd7311dbd2abcfebaabf1841a2824ed7c8be443a0f29166e5d3c6a53a762c01" dependencies = [ "arrayvec", "cfg-if", @@ -3590,9 +3653,9 @@ dependencies = [ [[package]] name = "wgpu-core" -version = "0.19.3" +version = "0.19.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f9f6b033c2f00ae0bc8ea872c5989777c60bc241aac4e58b24774faa8b391f78" +checksum = "28b94525fc99ba9e5c9a9e24764f2bc29bad0911a7446c12f446a8277369bf3a" dependencies = [ "arrayvec", "bit-vec", @@ -3616,9 +3679,9 @@ dependencies = [ [[package]] name = "wgpu-hal" -version = "0.19.3" +version = "0.19.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49f972c280505ab52ffe17e94a7413d9d54b58af0114ab226b9fc4999a47082e" +checksum = "fc1a4924366df7ab41a5d8546d6534f1f33231aa5b3f72b9930e300f254e39c3" dependencies = [ "android_system_properties", "arrayvec", @@ -3672,9 +3735,9 @@ dependencies = [ [[package]] name = "widestring" -version = "1.0.2" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "653f141f39ec16bba3c5abe400a0c60da7468261cc2cbf36805022876bc721a8" +checksum = "7219d36b6eac893fa81e84ebe06485e7dcbb616177469b142df14f1f4deb1311" [[package]] name = "winapi" @@ -3725,7 +3788,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e48a53791691ab099e5e2ad123536d0fff50652600abaf43bbf952894110d0be" dependencies = [ "windows-core", - "windows-targets 0.52.4", + "windows-targets 0.52.5", ] [[package]] @@ -3734,7 +3797,7 @@ version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9" dependencies = [ - "windows-targets 0.52.4", + "windows-targets 0.52.5", ] [[package]] @@ -3783,7 +3846,7 @@ version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" dependencies = [ - "windows-targets 0.52.4", + "windows-targets 0.52.5", ] [[package]] @@ -3818,17 +3881,18 @@ dependencies = [ [[package]] name = "windows-targets" -version = "0.52.4" +version = "0.52.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7dd37b7e5ab9018759f893a1952c9420d060016fc19a472b4bb20d1bdd694d1b" +checksum = "6f0713a46559409d202e70e28227288446bf7841d3211583a4b53e3f6d96e7eb" dependencies = [ - "windows_aarch64_gnullvm 0.52.4", - "windows_aarch64_msvc 0.52.4", - "windows_i686_gnu 0.52.4", - "windows_i686_msvc 0.52.4", - "windows_x86_64_gnu 0.52.4", - "windows_x86_64_gnullvm 0.52.4", - "windows_x86_64_msvc 0.52.4", + "windows_aarch64_gnullvm 0.52.5", + "windows_aarch64_msvc 0.52.5", + "windows_i686_gnu 0.52.5", + "windows_i686_gnullvm", + "windows_i686_msvc 0.52.5", + "windows_x86_64_gnu 0.52.5", + "windows_x86_64_gnullvm 0.52.5", + "windows_x86_64_msvc 0.52.5", ] [[package]] @@ -3845,9 +3909,9 @@ checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" [[package]] name = "windows_aarch64_gnullvm" -version = "0.52.4" +version = "0.52.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bcf46cf4c365c6f2d1cc93ce535f2c8b244591df96ceee75d8e83deb70a9cac9" +checksum = "7088eed71e8b8dda258ecc8bac5fb1153c5cffaf2578fc8ff5d61e23578d3263" [[package]] name = "windows_aarch64_msvc" @@ -3863,9 +3927,9 @@ checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" [[package]] name = "windows_aarch64_msvc" -version = "0.52.4" +version = "0.52.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da9f259dd3bcf6990b55bffd094c4f7235817ba4ceebde8e6d11cd0c5633b675" +checksum = "9985fd1504e250c615ca5f281c3f7a6da76213ebd5ccc9561496568a2752afb6" [[package]] name = "windows_i686_gnu" @@ -3881,9 +3945,15 @@ checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" [[package]] name = "windows_i686_gnu" -version = "0.52.4" +version = "0.52.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b474d8268f99e0995f25b9f095bc7434632601028cf86590aea5c8a5cb7801d3" +checksum = "88ba073cf16d5372720ec942a8ccbf61626074c6d4dd2e745299726ce8b89670" + +[[package]] +name = "windows_i686_gnullvm" +version = "0.52.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87f4261229030a858f36b459e748ae97545d6f1ec60e5e0d6a3d32e0dc232ee9" [[package]] name = "windows_i686_msvc" @@ -3899,9 +3969,9 @@ checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" [[package]] name = "windows_i686_msvc" -version = "0.52.4" +version = "0.52.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1515e9a29e5bed743cb4415a9ecf5dfca648ce85ee42e15873c3cd8610ff8e02" +checksum = "db3c2bf3d13d5b658be73463284eaf12830ac9a26a90c717b7f771dfe97487bf" [[package]] name = "windows_x86_64_gnu" @@ -3917,9 +3987,9 @@ checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" [[package]] name = "windows_x86_64_gnu" -version = "0.52.4" +version = "0.52.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5eee091590e89cc02ad514ffe3ead9eb6b660aedca2183455434b93546371a03" +checksum = "4e4246f76bdeff09eb48875a0fd3e2af6aada79d409d33011886d3e1581517d9" [[package]] name = "windows_x86_64_gnullvm" @@ -3935,9 +4005,9 @@ checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" [[package]] name = "windows_x86_64_gnullvm" -version = "0.52.4" +version = "0.52.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77ca79f2451b49fa9e2af39f0747fe999fcda4f5e241b2898624dca97a1f2177" +checksum = "852298e482cd67c356ddd9570386e2862b5673c85bd5f88df9ab6802b334c596" [[package]] name = "windows_x86_64_msvc" @@ -3953,9 +4023,9 @@ checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" [[package]] name = "windows_x86_64_msvc" -version = "0.52.4" +version = "0.52.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32b752e52a2da0ddfbdbcc6fceadfeede4c939ed16d13e648833a61dfb611ed8" +checksum = "bec47e5bfd1bff0eeaf6d8b485cc1074891a197ab4225d504cb7a1ab88b02bf0" [[package]] name = "winit" @@ -4082,9 +4152,9 @@ checksum = "054a8e68b76250b253f671d1268cb7f1ae089ec35e195b2efb2a4e9a836d0621" [[package]] name = "xml-rs" -version = "0.8.19" +version = "0.8.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fcb9cbac069e033553e8bb871be2fbdffcab578eb25bd0f7c508cedc6dcd75a" +checksum = "791978798f0597cfc70478424c2b4fdc2b7a8024aaff78497ef00f24ef674193" [[package]] name = "yazi" @@ -4181,7 +4251,7 @@ checksum = "9ce1b18ccd8e73a9321186f97e46f9f04b778851177567b1975109d26a08d2a6" dependencies = [ "proc-macro2", "quote", - "syn 2.0.53", + "syn 2.0.60", ] [[package]] diff --git a/Cargo.toml b/Cargo.toml index e71064e..066d1cb 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -7,8 +7,10 @@ rust-version = "1.72" [dependencies] -cosmic-jotdown = { git = "https://git.nations.lol/fnmain/cosmic-jotdown" } -eframe = { version = "0.26.2", default-features = false, features = [ +# cosmic-jotdown = { git = "https://git.nations.lol/fnmain/cosmic-jotdown" } +cosmic-jotdown = {path = "../cosmic-jotdown"} +jotdown = { git = "https://git.nations.lol/fnmain/jotdown" } +eframe = { version = "0.27.2", default-features = false, features = [ "accesskit", # Make egui comptaible with screen readers. NOTE: adds a lot of dependencies. # "default_fonts", "wgpu", # Use the glow rendering backend. Alternative: "wgpu". @@ -16,17 +18,17 @@ eframe = { version = "0.26.2", default-features = false, features = [ "wayland", ] } egui-glyphon = { git = "https://git.nations.lol/fnmain/egui-glyphon" } -egui_extras = { version = "0.26.2", features = ["image", "http", "file"] } +egui_extras = { version = "0.27.2", features = ["image", "http", "file"] } encase = { version = "0.7.0", features = ["glam"] } glam = "0.25.0" -image = { version = "0.24.9", features = ["jpeg", "png"] } +image = { version = "0.24.9", features = ["jpeg", "png"], defaut-features = false } keyframe = { version = "1.1.1", default-features = false } log = "0.4" -range-map = "0.2.0" +rangemap = "1.5.1" # native: [target.'cfg(not(target_arch = "wasm32"))'.dependencies] -env_logger = "0.10" +env_logger = "0.11" # web: [target.'cfg(target_arch = "wasm32")'.dependencies] diff --git a/assets/images/me_hi.jpg b/assets/images/me_hi.jpg index 7e3adaf..468b955 100644 Binary files a/assets/images/me_hi.jpg and b/assets/images/me_hi.jpg differ diff --git a/src/about_me.jot b/src/about_me.jot index 6791fab..026d5bb 100644 --- a/src/about_me.jot +++ b/src/about_me.jot @@ -12,4 +12,4 @@ - I balance the time I spend at my computer with outdoor activities like, camping, hiking, and backpacking - I know how to both write code for computers, as well as whip them into shape when they start having problems. I am the IT guy in my family -\*Special thanks to _meico_ from Shadertoy for the GLSL version of your Spectrum Ring shader +\*Special thanks to _meico_ from Shadertoy for the GLSL version of your [Spectrum Ring shader](https://www.shadertoy.com/view/XssXWH) diff --git a/src/app.rs b/src/app.rs index e490cb7..35372fa 100644 --- a/src/app.rs +++ b/src/app.rs @@ -13,12 +13,11 @@ use std::sync::Arc; #[cfg(target_arch = "wasm32")] use arc_swap::ArcSwapAny; -use cosmic_jotdown::jotdown::{self, Event, ListKind}; -use cosmic_jotdown::{Indent, INDENT_AMOUNT}; +use cosmic_jotdown::Indent; use eframe::egui::mutex::{Mutex, RwLock}; use eframe::egui::{ self, lerp, Align2, Id, Image, ImageSize, ImageSource, LayerId, OpenUrl, Pos2, Rect, Rounding, - Sense, Stroke, Vec2, + Sense, Vec2, }; use eframe::egui_wgpu::{self, wgpu}; use egui::{Color32, Frame}; @@ -28,8 +27,9 @@ use egui_glyphon::{BufferWithTextArea, GlyphonRenderer, GlyphonRendererCallback} use encase::ShaderType; use glam::Mat2; use glyphon::{Buffer, FontSystem, Metrics}; +use jotdown::Event; use keyframe::functions; -use range_map::RangeMap; +use rangemap::RangeMap; use wgpu::util::DeviceExt; /// We derive Deserialize/Serialize so we can persist app state on shutdown. @@ -68,7 +68,7 @@ pub enum State { #[derive(Default)] pub struct ContextWindow { pub size: Vec2, - pub text: Vec<(Rect, Indent, ContextBlock)>, + pub text: Vec>, #[cfg(target_arch = "wasm32")] pub name: &'static str, } @@ -80,16 +80,6 @@ pub struct ContextIcon { pub name: &'static str, } -#[derive(Clone)] -pub enum ContextBlock { - Buffer(Arc>, Option>), - Image { - alt_text: Arc>, - image: Image<'static>, - hi_image: Image<'static>, - }, -} - const CONTEXT_METRICS: Metrics = Metrics::new(16.0, 18.0); const HOVER_TIME: f64 = 0.5; @@ -231,6 +221,14 @@ const NAME_PLATE: [&str; 3] = [ "My portfolio", ]; +pub struct ResolvedItem<'a> { + pub indent: Indent, + pub buffer: Arc>, + pub relative_bounds: Rect, + pub url_map: Option>>, + pub image_urls: Option<(String, String)>, +} + impl ContextWindow { pub fn set_content( &mut self, @@ -238,119 +236,34 @@ impl ContextWindow { #[cfg(target_arch = "wasm32")] transform: Option, #[cfg(target_arch = "wasm32")] name: Option<&'static str>, font_system: &mut FontSystem, - mut max_width: f32, + max_width: f32, #[cfg(target_arch = "wasm32")] states: &mut Vec, ) { self.size = Vec2::new(max_width / 1.5, 0.0); - let mut last_indent = None; - let mut last_image_size: Option = None; - max_width /= 1.5; - self.text = cosmic_jotdown::jotdown_into_buffers( - content.iter().cloned(), + let text = + cosmic_jotdown::jotdown_into_buffers(content.iter().cloned()).collect::>(); + + let (size, text) = cosmic_jotdown::resolve_paragraphs( + &text, + self.size, font_system, CONTEXT_METRICS, - max_width, - ) - .map(|buffer| { - let measurement = measure_buffer(&buffer.buffer, self.size); - let paragraph_height = if last_indent.is_none() || buffer.indent.modifier.is_none() { - CONTEXT_METRICS.line_height * 1.5 - } else { - 8.0 - }; - last_indent = buffer.indent.modifier; - let buffer = if let Some(url) = buffer.image_url { - let image; - let hi_image; - let url = url.split_once('#').unwrap(); - let size = url.1.split_once('x').unwrap(); - let size = Vec2::new(size.0.parse().unwrap(), size.1.parse().unwrap()); - #[cfg(target_arch = "wasm32")] - { - image = Image::from_uri(format!(concat!(env!("PHOST"), "/{}"), url.0)); - let split = url.0.rsplit_once('.').unwrap(); - hi_image = Image::from_uri(format!( - concat!(env!("PHOST"), "/{}_hi.{}"), - split.0, split.1 - )); - } - #[cfg(not(target_arch = "wasm32"))] - { - image = Image::from_uri(format!("file://assets/{}", url.0)); - let split = url.0.rsplit_once('.').unwrap(); - hi_image = Image::from_uri(format!("file://assets/{}_hi.{}", split.0, split.1)); - } - let mut res = ( - Rect::from_min_size( - Pos2::new(buffer.indent.indent, self.size.y + paragraph_height), - size, - ), - buffer.indent, - ContextBlock::Image { - alt_text: Arc::new(RwLock::new(buffer.buffer)), - image, - hi_image, - }, - ); - const IMAGE_PADDING: f32 = 8.0; - if let Some(last_size) = last_image_size.as_mut() { - let ls = *last_size; - last_size.x += size.x + IMAGE_PADDING; + None, + 1.0, + env!("PHOST"), + ); - if last_size.x > max_width { - self.size.y += last_size.y + paragraph_height; - last_size.x = size.x + IMAGE_PADDING; - last_size.y = size.y; - res.0 = Rect::from_min_size( - Pos2::new(buffer.indent.indent, self.size.y + paragraph_height), - size, - ); - } else { - last_size.y = last_size.y.max(size.y); - res.0 = res.0.translate(Vec2::new(ls.x, 0.0)); - } - } else { - if size.x > max_width { - let max_size = Vec2::new(max_width, size.y); - let new_size = ImageSize { - max_size, - ..Default::default() - } - .calc_size(max_size, size); - res.0 = Rect::from_min_size( - Pos2::new(buffer.indent.indent, self.size.y + paragraph_height), - new_size, - ); - self.size.y += new_size.y + paragraph_height; - } else { - last_image_size = Some(size + Vec2::new(IMAGE_PADDING, 0.0)); - } - } - res - } else { - if let Some(size) = last_image_size { - self.size.y += size.y + paragraph_height; - } - let res = ( - Rect::from_min_size( - Pos2::new(buffer.indent.indent, self.size.y + paragraph_height), - measurement.size(), - ), - buffer.indent, - ContextBlock::Buffer(Arc::new(RwLock::new(buffer.buffer)), buffer.url_map), - ); - last_image_size = None; - self.size.y += measurement.height() + paragraph_height; - res - }; - self.size.x = self.size.x.max(measurement.width()); - buffer - }) - .collect(); - - if let Some(size) = last_image_size { - self.size.y += size.y; - } + self.text = text + .into_iter() + .map(|t| ResolvedItem { + indent: t.indent, + buffer: Arc::new(RwLock::new(t.buffer)), + relative_bounds: t.relative_bounds, + url_map: t.url_map, + image_urls: t.image_urls, + }) + .collect(); + self.size = size; #[cfg(target_arch = "wasm32")] if let Some(name) = name { @@ -743,196 +656,173 @@ impl eframe::App for Portfolio { Rounding::same(25.0), Color32::BLACK.gamma_multiply(lerp(0.0..=0.5, zoom_view_opacity)), ); - self.window - .text - .iter() - .for_each(|context_block| match &context_block.2 { - ContextBlock::Buffer(buffer, url_map) => { - let text_rect = context_block.0.translate(rect.min.to_vec2()); - // ui.painter().debug_rect(text_rect, Color32::GREEN, ""); - if let Some(url_map) = url_map { - let text_response = ui.allocate_rect(text_rect, Sense::click()); - let mut buffer = buffer.write(); - let mut editor = - Editor::new(BufferRef::Borrowed(buffer.deref_mut())); - if text_response.hovered() - && ui.input(|i| i.raw_scroll_delta == Vec2::ZERO) - { - let mouse_pos = ui - .input(|i| i.pointer.latest_pos().unwrap_or_default()) - - text_rect.min.to_vec2(); + self.window.text.iter().for_each(|context_block| { + if let Some(image_urls) = &context_block.image_urls { + let image_rect = + context_block.relative_bounds.translate(rect.min.to_vec2()); - editor.action( - self.font_system.lock().deref_mut(), - glyphon::Action::Click { - x: mouse_pos.x as i32, - y: mouse_pos.y as i32 - 3, - }, - ); + let image_response = ui.allocate_rect(image_rect, Sense::click()); + let image_response_clicked = image_response.clicked(); - let mut location = editor.cursor(); - match location.affinity { - glyphon::Affinity::After => location.index += 1, - glyphon::Affinity::Before => {} - } + let time_offset = ui.memory_mut(|m| { + let time_offset = + m.data.get_temp_mut_or_default::(image_response.id); - if url_map.get(location.index).is_some() { - ctx.set_cursor_icon(egui::CursorIcon::PointingHand); - } - } - if text_response.clicked() && !self.image_zoomed { - let mouse_click = ui.input(|i| { - i.pointer.interact_pos().unwrap_or_default() - }) - text_rect.min.to_vec2(); - - editor.action( - self.font_system.lock().deref_mut(), - glyphon::Action::Click { - x: mouse_click.x as i32, - y: mouse_click.y as i32, - }, - ); - - let mut location = editor.cursor(); - match location.affinity { - glyphon::Affinity::After => location.index += 1, - glyphon::Affinity::Before => {} - } - if let Some(url) = url_map.get(location.index) { - link_clicked = true; - if url.starts_with('#') { - if let Some(icon) = CONTEXT_ICONS - .iter() - .find(|i| i.name == &url[1..]) - { - icon_link = Some(icon); - } - } else { - ui.ctx().open_url(OpenUrl::new_tab(url)); - } - // clicked = false; - } - } - } - buffers.push(BufferWithTextArea::new( - buffer.clone(), - text_rect, - zoom_view_opacity, - Color::rgb(255, 255, 255), - ui.ctx(), - )); - match context_block.1.modifier { - Some(ListKind::Unordered) => { - ui.painter().circle( - text_rect.min - + Vec2::new( - -INDENT_AMOUNT, - CONTEXT_METRICS.line_height / 2.0, - ), - 2.5, - Color32::WHITE.gamma_multiply(zoom_view_opacity), - Stroke::NONE, - ); - } - _ => {} + if image_response_clicked && !self.image_zoomed && self.zoomed { + link_clicked = true; + *time_offset = time; + self.last_image_zoomed = image_response.id; + self.image_zoomed = true; } + + *time_offset + }); + + if image_response.hovered() && !self.image_zoomed { + ui.ctx().set_cursor_icon(egui::CursorIcon::ZoomIn); } - ContextBlock::Image { - image, hi_image, .. - } => { - let image_rect = context_block.0.translate(rect.min.to_vec2()); - let image_response = ui.allocate_rect(image_rect, Sense::click()); - - let time_offset = ui.memory_mut(|m| { - let time_offset = - m.data.get_temp_mut_or_default::(image_response.id); - - if image_response.clicked() && !self.image_zoomed && self.zoomed - { - link_clicked = true; - *time_offset = time; - self.last_image_zoomed = image_response.id; - self.image_zoomed = true; + let fs_rect = Align2::CENTER_CENTER.align_size_within_rect( + { + let max_size = self.max_size.shrink(16.0).size(); + ImageSize { + max_size, + ..Default::default() } + .calc_size(max_size, image_rect.size()) + }, + self.max_size, + ); - *time_offset - }); - - if image_response.hovered() && !self.image_zoomed { - ui.ctx().set_cursor_icon(egui::CursorIcon::ZoomIn); - } - - let fs_rect = Align2::CENTER_CENTER.align_size_within_rect( - { - let max_size = self.max_size.shrink(16.0).size(); - ImageSize { - max_size, - ..Default::default() - } - .calc_size(max_size, image_rect.size()) - }, + if self.last_image_zoomed == image_response.id { + let ui = egui::Ui::new( + ui.ctx().clone(), + LayerId::debug(), + Id::new("image_zoom"), + self.max_size, self.max_size, ); - if self.last_image_zoomed == image_response.id { - let ui = egui::Ui::new( - ui.ctx().clone(), - LayerId::debug(), - Id::new("image_zoom"), - self.max_size, - self.max_size, - ); + let t = keyframe::ease_with_scaled_time( + functions::EaseInOutCubic, + if self.image_zoomed { 0.0 } else { 1.0 }, + if self.image_zoomed { 1.0 } else { 0.0 }, + time - time_offset, + 0.5, + ); - let t = keyframe::ease_with_scaled_time( + ui.painter().rect_filled( + ui.max_rect(), + Rounding::default(), + Color32::BLACK.gamma_multiply(keyframe::ease_with_scaled_time( functions::EaseInOutCubic, - if self.image_zoomed { 0.0 } else { 1.0 }, - if self.image_zoomed { 1.0 } else { 0.0 }, + if self.image_zoomed { 0.0 } else { 0.6 }, + if self.image_zoomed { 0.6 } else { 0.0 }, time - time_offset, 0.5, - ); + )), + ); - ui.painter().rect_filled( - ui.max_rect(), - Rounding::default(), - Color32::BLACK.gamma_multiply( + if t > 0.0 { + Image::from_uri(&image_urls.1) + } else { + Image::from_uri(&image_urls.0) + } + .tint(Color32::WHITE.gamma_multiply(zoom_view_opacity)) + .paint_at(&ui, image_rect.lerp_towards(&fs_rect, t)); + } else { + Image::from_uri(&image_urls.0) + .tint(Color32::WHITE.gamma_multiply(zoom_view_opacity)) + .paint_at( + ui, + image_rect.lerp_towards( + &fs_rect, keyframe::ease_with_scaled_time( functions::EaseInOutCubic, - if self.image_zoomed { 0.0 } else { 0.6 }, - if self.image_zoomed { 0.6 } else { 0.0 }, + 1.0, + 0.0, time - time_offset, 0.5, ), ), ); + } + } else { + let text_rect = + context_block.relative_bounds.translate(rect.min.to_vec2()); + // ui.painter().debug_rect(text_rect, Color32::GREEN, ""); + if let Some(url_map) = &context_block.url_map { + let text_response = ui.allocate_rect(text_rect, Sense::click()); + let mut buffer = context_block.buffer.write(); + let mut editor = + Editor::new(BufferRef::Borrowed(buffer.deref_mut())); + if text_response.hovered() + && ui.input(|i| i.raw_scroll_delta == Vec2::ZERO) + { + let mouse_pos = ui + .input(|i| i.pointer.latest_pos().unwrap_or_default()) + - text_rect.min.to_vec2(); - if t > 0.0 { - hi_image.clone() - } else { - image.clone() + editor.action( + self.font_system.lock().deref_mut(), + glyphon::Action::Click { + x: mouse_pos.x as i32, + y: mouse_pos.y as i32 - 3, + }, + ); + + let mut location = editor.cursor(); + match location.affinity { + glyphon::Affinity::After => location.index += 1, + glyphon::Affinity::Before => {} + } + + if url_map.get(&location.index).is_some() { + ctx.set_cursor_icon(egui::CursorIcon::PointingHand); + } + } + if text_response.clicked() && !self.image_zoomed { + let mouse_click = ui + .input(|i| i.pointer.interact_pos().unwrap_or_default()) + - text_rect.min.to_vec2(); + + editor.action( + self.font_system.lock().deref_mut(), + glyphon::Action::Click { + x: mouse_click.x as i32, + y: mouse_click.y as i32, + }, + ); + + let mut location = editor.cursor(); + match location.affinity { + glyphon::Affinity::After => location.index += 1, + glyphon::Affinity::Before => {} + } + if let Some(url) = url_map.get(&location.index) { + link_clicked = true; + if url.starts_with('#') { + if let Some(icon) = + CONTEXT_ICONS.iter().find(|i| i.name == &url[1..]) + { + icon_link = Some(icon); + } + } else { + ui.ctx().open_url(OpenUrl::new_tab(url)); + } + // clicked = false; } - .tint(Color32::WHITE.gamma_multiply(zoom_view_opacity)) - .paint_at(&ui, image_rect.lerp_towards(&fs_rect, t)); - } else { - image - .clone() - .tint(Color32::WHITE.gamma_multiply(zoom_view_opacity)) - .paint_at( - ui, - image_rect.lerp_towards( - &fs_rect, - keyframe::ease_with_scaled_time( - functions::EaseInOutCubic, - 1.0, - 0.0, - time - time_offset, - 0.5, - ), - ), - ); } } - }); + buffers.push(BufferWithTextArea::new( + context_block.buffer.clone(), + text_rect, + zoom_view_opacity, + Color::rgb(255, 255, 255), + ui.ctx(), + )); + } + }); } if self.zoomed { if ui.input(|i| i.pointer.any_click()) && !link_clicked {