From 6438d334cb195af23967f28f55e7bd207e1938db Mon Sep 17 00:00:00 2001 From: Christine Dodrill Date: Sun, 26 Jul 2020 23:12:01 -0400 Subject: [PATCH] fix atom/RSS feeds (#186) * fix atom feeds * also fix RSS feeds * add feeds fixed/flight journal post * fix tests --- Cargo.lock | 281 ++++++++---------- Cargo.toml | 7 +- ...-gemini-flight-journal-2020-07-26.markdown | 65 ++++ lib/patreon/src/lib.rs | 3 - src/app.rs | 38 +-- src/handlers/feeds.rs | 19 +- src/post/mod.rs | 52 +--- static/img/majc_preview.png | Bin 0 -> 129542 bytes templates/blog_atom.rs.xml | 26 ++ templates/blog_rss.rs.xml | 20 ++ templates/feeds.rs.html | 3 +- 11 files changed, 243 insertions(+), 271 deletions(-) create mode 100644 blog/feeds-fixed-gemini-flight-journal-2020-07-26.markdown create mode 100644 static/img/majc_preview.png create mode 100644 templates/blog_atom.rs.xml create mode 100644 templates/blog_rss.rs.xml diff --git a/Cargo.lock b/Cargo.lock index c159d6f..d9b87ab 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -68,9 +68,9 @@ dependencies = [ [[package]] name = "anyhow" -version = "1.0.31" +version = "1.0.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85bb70cc08ec97ca5450e6eba421deeea5f172c0fc61f78b5357b2a8e8be195f" +checksum = "6b602bfe940d21c130f3895acd65221e8a61270debe89d628b9cb4e3ccb8569b" [[package]] name = "arrayvec" @@ -79,18 +79,22 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cff77d8686867eceff3105329d4698d96c2391c176d5d03adc90c7389162b5b8" [[package]] -name = "atom_syndication" -version = "0.9.0" +name = "async-channel" +version = "1.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d0b2fa7aedc48c4fbe1d38b25c1462a6e7b962397f27a3a8d7cbb1c08f0008b" +checksum = "ee81ba99bee79f3c8ae114ae4baa7eaa326f63447cf2ec65e4393618b63f8770" dependencies = [ - "chrono", - "derive_builder", - "diligent-date-parser", - "quick-xml 0.18.1", - "serde", + "concurrent-queue", + "event-listener", + "futures-core", ] +[[package]] +name = "atomic-waker" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "065374052e7df7ee4047b1160cca5e1467a12351a40b3da123c870ba0b8eda2a" + [[package]] name = "atty" version = "0.2.14" @@ -169,12 +173,13 @@ dependencies = [ [[package]] name = "blocking" -version = "0.4.6" +version = "0.4.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d17efb70ce4421e351d61aafd90c16a20fb5bfe339fcdc32a86816280e62ce0" +checksum = "d2468ff7bf85066b4a3678fede6fe66db31846d753ff0adfbfab2c6a6e81612b" dependencies = [ - "futures-channel", - "futures-util", + "async-channel", + "atomic-waker", + "futures-lite", "once_cell", "parking", "waker-fn", @@ -220,6 +225,12 @@ version = "0.5.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0e4cec68f03f32e44924783795810fa50a7035d8c8ebe78580ad7e6c703fba38" +[[package]] +name = "cache-padded" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "631ae5198c9be5e753e5cc215e1bd73c2b466a3565173db433f52bb9d3e66dba" + [[package]] name = "cc" version = "1.0.58" @@ -262,7 +273,7 @@ dependencies = [ "ansi_term", "atty", "bitflags", - "strsim 0.8.0", + "strsim", "textwrap", "unicode-width", "vec_map", @@ -294,6 +305,15 @@ dependencies = [ "unicode_categories", ] +[[package]] +name = "concurrent-queue" +version = "1.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1582139bb74d97ef232c30bc236646017db06f13ee7cc01fa24c9e55640f86d4" +dependencies = [ + "cache-padded", +] + [[package]] name = "core-foundation" version = "0.7.0" @@ -319,66 +339,6 @@ dependencies = [ "cfg-if", ] -[[package]] -name = "darling" -version = "0.10.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d706e75d87e35569db781a9b5e2416cff1236a47ed380831f959382ccd5f858" -dependencies = [ - "darling_core", - "darling_macro", -] - -[[package]] -name = "darling_core" -version = "0.10.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0c960ae2da4de88a91b2d920c2a7233b400bc33cb28453a2987822d8392519b" -dependencies = [ - "fnv", - "ident_case", - "proc-macro2", - "quote", - "strsim 0.9.3", - "syn", -] - -[[package]] -name = "darling_macro" -version = "0.10.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d9b5a2f4ac4969822c62224815d069952656cadc7084fdca9751e6d959189b72" -dependencies = [ - "darling_core", - "quote", - "syn", -] - -[[package]] -name = "derive_builder" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a2658621297f2cf68762a6f7dc0bb7e1ff2cfd6583daef8ee0fed6f7ec468ec0" -dependencies = [ - "darling", - "derive_builder_core", - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "derive_builder_core" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2791ea3e372c8495c0bc2033991d76b512cd799d07491fbd6890124db9458bef" -dependencies = [ - "darling", - "proc-macro2", - "quote", - "syn", -] - [[package]] name = "dhall" version = "0.5.3" @@ -427,15 +387,6 @@ dependencies = [ "generic-array", ] -[[package]] -name = "diligent-date-parser" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28caca0eb64b9b22bdcab47424e0f7716af92d33ad035f765e5ec2b08cf14fcc" -dependencies = [ - "chrono", -] - [[package]] name = "doc-comment" version = "0.3.3" @@ -501,12 +452,24 @@ dependencies = [ "version_check 0.9.2", ] +[[package]] +name = "event-listener" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "829694371bd7bbc6aee17c4ff624aad8bf9f4dc06c6f9f6071eaa08c89530d10" + [[package]] name = "fake-simd" version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e88a8acf291dafb59c2d96e8f59828f3838bb1a70398823ade51a84de6a6deed" +[[package]] +name = "fastrand" +version = "1.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "36a9cb09840f81cd211e435d00a4e487edd263dc3c8ff815c32dd76ad668ebed" + [[package]] name = "fnv" version = "1.0.7" @@ -598,6 +561,21 @@ version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "de27142b013a8e869c14957e6d2edeef89e97c289e69d042ee3a49acd8b51789" +[[package]] +name = "futures-lite" +version = "0.1.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8cc8771bd1bb4c7be3c5f072a1d5e18086ef220f100a0a4efece41076e87b9f2" +dependencies = [ + "fastrand", + "futures-core", + "futures-io", + "memchr", + "parking", + "pin-project-lite", + "waker-fn", +] + [[package]] name = "futures-macro" version = "0.3.5" @@ -711,6 +689,15 @@ version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d36fab90f82edc3c747f9d438e06cf0a491055896f2a279638bb5beed6c40177" +[[package]] +name = "hashbrown" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "34f595585f103464d8d2f6e9864682d74c1601fed5e07d62b1c9058dba8246fb" +dependencies = [ + "autocfg 1.0.0", +] + [[package]] name = "headers" version = "0.3.2" @@ -824,12 +811,6 @@ dependencies = [ "tokio-tls", ] -[[package]] -name = "ident_case" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" - [[package]] name = "idna" version = "0.2.0" @@ -843,11 +824,12 @@ dependencies = [ [[package]] name = "indexmap" -version = "1.4.0" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c398b2b113b55809ceb9ee3e753fcbac793f1956663f3c36549c1346015c2afe" +checksum = "5b88cd59ee5f71fea89a62248fc8f387d44400cefe05ef548466d61ced9029a7" dependencies = [ "autocfg 1.0.0", + "hashbrown", ] [[package]] @@ -868,6 +850,12 @@ dependencies = [ "libc", ] +[[package]] +name = "ipnet" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "47be2f14c678be2fdcab04ab1171db51b2762ce6f0a8ee87c8dd4a04ed216135" + [[package]] name = "itertools" version = "0.9.0" @@ -885,9 +873,9 @@ checksum = "dc6f3ad7b9d11a0c00842ff8de1b60ee58661048eb8049ed33c73594f359d7e6" [[package]] name = "js-sys" -version = "0.3.41" +version = "0.3.42" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c4b9172132a62451e56142bff9afc91c8e4a4500aa5b847da36815b63bfda916" +checksum = "52732a3d3ad72c58ad2dc70624f9c17b46ecd0943b9a4f1ee37c4c18c5d983e2" dependencies = [ "wasm-bindgen", ] @@ -939,9 +927,9 @@ dependencies = [ [[package]] name = "libc" -version = "0.2.72" +version = "0.2.73" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a9f8082297d534141b30c8d39e9b1773713ab50fdbe4ff30f750d063b3bfd701" +checksum = "bd7d4bd64732af4bf3a67f367c27df8520ad7e230c5817b8ff485864d80242b9" [[package]] name = "libflate" @@ -1226,9 +1214,9 @@ dependencies = [ [[package]] name = "parking" -version = "1.0.4" +version = "1.0.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1efcee3c6d23b94012e240525f131c6abaa9e5eeb8f211002d93beec3b7be350" +checksum = "6cb300f271742d4a2a66c01b6b2fa0c83dfebd2e0bf11addb879a3547b4ed87c" [[package]] name = "patreon" @@ -1422,9 +1410,9 @@ dependencies = [ [[package]] name = "proc-macro-hack" -version = "0.5.16" +version = "0.5.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e0456befd48169b9f13ef0f0ad46d492cf9d2dbb918bcf38e01eed4ce3ec5e4" +checksum = "99c605b9a0adc77b7211c6b1f722dcb613d68d66859a44f3d485a6da332b0598" [[package]] name = "proc-macro-nested" @@ -1434,9 +1422,9 @@ checksum = "eba180dafb9038b050a4c280019bbedf9f2467b61e5d892dcad585bb57aadc5a" [[package]] name = "proc-macro2" -version = "1.0.18" +version = "1.0.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "beae6331a816b1f65d04c45b078fd8e6c93e8071771f41b8163255bbd8d7c8fa" +checksum = "04f5f085b5d71e2188cb8271e5da0161ad52c3f227a661a3c135fdf28e258b12" dependencies = [ "unicode-xid", ] @@ -1476,26 +1464,6 @@ version = "1.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0" -[[package]] -name = "quick-xml" -version = "0.17.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fe1e430bdcf30c9fdc25053b9c459bb1a4672af4617b6c783d7d91dc17c6bbb0" -dependencies = [ - "encoding_rs", - "memchr", -] - -[[package]] -name = "quick-xml" -version = "0.18.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3cc440ee4802a86e357165021e3e255a9143724da31db1e2ea540214c96a0f82" -dependencies = [ - "encoding_rs", - "memchr", -] - [[package]] name = "quote" version = "1.0.7" @@ -1696,9 +1664,9 @@ dependencies = [ [[package]] name = "reqwest" -version = "0.10.6" +version = "0.10.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b82c9238b305f26f53443e3a4bc8528d64b8d0bee408ec949eb7bf5635ec680" +checksum = "12427a5577082c24419c9c417db35cfeb65962efc7675bb6b0d5f1f9d315bfe6" dependencies = [ "base64 0.12.3", "bytes", @@ -1709,6 +1677,7 @@ dependencies = [ "http-body", "hyper", "hyper-tls", + "ipnet", "js-sys", "lazy_static", "log 0.4.11", @@ -1735,16 +1704,6 @@ version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cabe4fa914dec5870285fa7f71f602645da47c486e68486d2b4ceb4a343e90ac" -[[package]] -name = "rss" -version = "1.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "99979205510c60f80a119dedbabd0b8426517384edf205322f8bcd51796bcef9" -dependencies = [ - "derive_builder", - "quick-xml 0.17.2", -] - [[package]] name = "ructe" version = "0.11.4" @@ -1871,9 +1830,9 @@ dependencies = [ [[package]] name = "serde_json" -version = "1.0.56" +version = "1.0.57" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3433e879a558dde8b5e8feb2a04899cf34fdde1fafb894687e52105fc1162ac3" +checksum = "164eacbdb13512ec2745fb09d51fd5b22b0d65ed294a1dcf7285a360c80a675c" dependencies = [ "itoa", "ryu", @@ -1988,17 +1947,11 @@ version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8ea5119cdb4c55b55d432abb513a0429384878c15dde60cc77b1c99de1a95a6a" -[[package]] -name = "strsim" -version = "0.9.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6446ced80d6c486436db5c078dde11a9f73d42b57fb273121e160b84f63d894c" - [[package]] name = "syn" -version = "1.0.34" +version = "1.0.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "936cae2873c940d92e697597c5eee105fb570cd5689c695806f672883653349b" +checksum = "fb7f4c519df8c117855e19dd8cc851e89eb746fe7a73f0157e0d95fdec5369b0" dependencies = [ "proc-macro2", "quote", @@ -2084,9 +2037,9 @@ checksum = "53953d2d3a5ad81d9f844a32f14ebb121f50b650cd59d0ee2a07cf13c617efed" [[package]] name = "tokio" -version = "0.2.21" +version = "0.2.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d099fa27b9702bed751524694adbe393e18b36b204da91eb1cbbbbb4a5ee2d58" +checksum = "5d34ca54d84bf2b5b4d7d31e901a8464f7b60ac145a284fba25ceb801f2ddccd" dependencies = [ "bytes", "fnv", @@ -2157,9 +2110,9 @@ checksum = "e987b6bf443f4b5b3b6f38704195592cca41c5bb7aedd3c3693c7081f8289860" [[package]] name = "tracing" -version = "0.1.16" +version = "0.1.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c2e2a2de6b0d5cbb13fc21193a2296888eaab62b6044479aafb3c54c01c29fcd" +checksum = "dbdf4ccd1652592b01286a5dbe1e2a77d78afaa34beadd9872a5f7396f92aaa9" dependencies = [ "cfg-if", "log 0.4.11", @@ -2417,9 +2370,9 @@ checksum = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519" [[package]] name = "wasm-bindgen" -version = "0.2.64" +version = "0.2.65" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a634620115e4a229108b71bde263bb4220c483b3f07f5ba514ee8d15064c4c2" +checksum = "f3edbcc9536ab7eababcc6d2374a0b7bfe13a2b6d562c5e07f370456b1a8f33d" dependencies = [ "cfg-if", "serde", @@ -2429,9 +2382,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-backend" -version = "0.2.64" +version = "0.2.65" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3e53963b583d18a5aa3aaae4b4c1cb535218246131ba22a71f05b518098571df" +checksum = "89ed2fb8c84bfad20ea66b26a3743f3e7ba8735a69fe7d95118c33ec8fc1244d" dependencies = [ "bumpalo", "lazy_static", @@ -2444,9 +2397,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-futures" -version = "0.4.14" +version = "0.4.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dba48d66049d2a6cc8488702e7259ab7afc9043ad0dc5448444f46f2a453b362" +checksum = "41ad6e4e8b2b7f8c90b6e09a9b590ea15cb0d1dbe28502b5a405cd95d1981671" dependencies = [ "cfg-if", "js-sys", @@ -2456,9 +2409,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.64" +version = "0.2.65" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3fcfd5ef6eec85623b4c6e844293d4516470d8f19cd72d0d12246017eb9060b8" +checksum = "eb071268b031a64d92fc6cf691715ca5a40950694d8f683c5bb43db7c730929e" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -2466,9 +2419,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.64" +version = "0.2.65" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9adff9ee0e94b926ca81b57f57f86d5545cdcb1d259e21ec9bdd95b901754c75" +checksum = "cf592c807080719d1ff2f245a687cbadb3ed28b2077ed7084b47aba8b691f2c6" dependencies = [ "proc-macro2", "quote", @@ -2479,15 +2432,15 @@ dependencies = [ [[package]] name = "wasm-bindgen-shared" -version = "0.2.64" +version = "0.2.65" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f7b90ea6c632dd06fd765d44542e234d5e63d9bb917ecd64d79778a13bd79ae" +checksum = "72b6c0220ded549d63860c78c38f3bcc558d1ca3f4efa74942c536ddbbb55e87" [[package]] name = "web-sys" -version = "0.3.41" +version = "0.3.42" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "863539788676619aac1a23e2df3655e96b32b0e05eb72ca34ba045ad573c625d" +checksum = "8be2398f326b7ba09815d0b403095f34dd708579220d099caae89be0b32137b2" dependencies = [ "js-sys", "wasm-bindgen", @@ -2557,10 +2510,9 @@ dependencies = [ [[package]] name = "xesite" -version = "2.0.0" +version = "2.0.1" dependencies = [ "anyhow", - "atom_syndication", "chrono", "comrak", "envy", @@ -2576,7 +2528,6 @@ dependencies = [ "pretty_env_logger", "prometheus", "rand 0.7.3", - "rss", "ructe", "serde", "serde_dhall", diff --git a/Cargo.toml b/Cargo.toml index 00b810b..3d8e8da 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,15 +1,15 @@ [package] name = "xesite" -version = "2.0.0" +version = "2.0.1" authors = ["Christine Dodrill "] edition = "2018" build = "src/build.rs" +repository = "https://github.com/Xe/site" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [dependencies] anyhow = "1" -atom_syndication = { version = "0.9", features = ["with-serde"] } chrono = "0.4" comrak = "0.8" envy = "0.4" @@ -17,12 +17,11 @@ glob = "0.3" hyper = "0.13" kankyo = "0.3" lazy_static = "1.4" -log = "0" +log = "0.4" mime = "0.3.0" pretty_env_logger = "0" prometheus = { version = "0.9", default-features = false, features = ["process"] } rand = "0" -rss = "1" serde_dhall = "0.5.3" serde = { version = "1", features = ["derive"] } serde_yaml = "0.8" diff --git a/blog/feeds-fixed-gemini-flight-journal-2020-07-26.markdown b/blog/feeds-fixed-gemini-flight-journal-2020-07-26.markdown new file mode 100644 index 0000000..b420ee4 --- /dev/null +++ b/blog/feeds-fixed-gemini-flight-journal-2020-07-26.markdown @@ -0,0 +1,65 @@ +--- +title: RSS/Atom Feeds Fixed and Announcing my Flight Journal +date: 2020-07-26 +tags: + - gemini +--- + +# RSS/Atom Feeds Fixed and Announcing my Flight Journal + +I have released version 2.0.1 of this site's code. With it I have fixed the RSS +and Atom feed generation. For now I have had to sacrifice the post content being +in the feed, but I will bring it back as soon as possible. + +Victory badges: + +[![Valid Atom Feed](https://validator.w3.org/feed/images/valid-atom.png)](/blog.atom) +[![Valid RSS Feed](https://validator.w3.org/feed/images/valid-rss-rogers.png)](/blog.rss) + +Thanks to [W3Schools](https://www.w3schools.com/XML/xml_rss.asp) for having a +minimal example of an RSS feed and [this Flickr +image](https://www.flickr.com/photos/sepblog/3652359502/) for expanding it so I +can have the post dates be included too. + +## Flight Journal + +I have created a [Gemini](https://gemini.circumlunar.space) protocol server at +[gemini://cetacean.club](gemini://cetacean.club). Gemini is an exploration of +the space between [Gopher](https://en.wikipedia.org/wiki/Gopher_%28protocol%29) +and HTTP. Right now my site doesn't have much on it, but I have added its feed +to [my feeds page](/feeds). + +Please note that the content on this Gemini site is going to be of a much more +personal nature compared to the more professional kind of content I put on this +blog. Please keep this in mind before casting judgement or making any kind of +conclusions about me. + +If you don't have a Gemini client installed, you can view the site content +[here](https://portal.mozz.us/gemini/cetacean.club/). I plan to make a HTTP +frontend to this site once I get [Maj](https://tulpa.dev/cadey/maj) up and +functional. + +## Maj + +I have created a Gemini client and server framework for Rust programs called +[Maj](https://tulpa.dev/cadey/maj). Right now it includes the following +features: + +- Synchronous client +- Asynchronous server framework +- Gemini response parser +- `text/gemini` parser + +Additionally, I have a few projects in progress for the Maj ecosystem: + +- [majc](https://portal.mozz.us/gemini/cetacean.club/maj/majc.gmi) - an + interactive curses client for Gemini +- majd - An advanced reverse proxy and Lua handler daemon for people running + Gemini servers +- majsite - A simple example of the maj server framework in action + +I will write more about this in the future when I have more than just this +little preview of what is to come implemented. However, here's a screenshot of +majc rendering my flight journal: + +![majc preview image rendering cetacean.club](/static/img/majc_preview.png) diff --git a/lib/patreon/src/lib.rs b/lib/patreon/src/lib.rs index 07e6228..57e2c02 100644 --- a/lib/patreon/src/lib.rs +++ b/lib/patreon/src/lib.rs @@ -1,6 +1,3 @@ -#[macro_use] -extern crate log; - use serde::{Deserialize, Serialize}; use thiserror::Error; use chrono::prelude::*; diff --git a/src/app.rs b/src/app.rs index 7b5b377..5ffca7c 100644 --- a/src/app.rs +++ b/src/app.rs @@ -1,6 +1,5 @@ use crate::{post::Post, signalboost::Person}; use anyhow::Result; -use atom_syndication as atom; use comrak::{markdown_to_html, ComrakOptions}; use serde::Deserialize; use std::{fs, path::PathBuf}; @@ -65,8 +64,6 @@ pub struct State { pub talks: Vec, pub everything: Vec, pub jf: jsonfeed::Feed, - pub rf: rss::Channel, - pub af: atom::Feed, pub sitemap: Vec, pub patrons: Option, } @@ -93,9 +90,6 @@ pub async fn init(cfg: PathBuf) -> Result { everything.sort(); everything.reverse(); - let mut ri: Vec = vec![]; - let mut ai: Vec = vec![]; - let mut jfb = jsonfeed::Feed::builder() .title("Christine Dodrill's Blog") .description("My blog posts and rants about various technology things.") @@ -114,37 +108,8 @@ pub async fn init(cfg: PathBuf) -> Result { for post in &everything { let post = post.clone(); jfb = jfb.item(post.clone().into()); - ri.push(post.clone().into()); - ai.push(post.clone().into()); } - let af = { - let mut af = atom::FeedBuilder::default(); - af.title("Christine Dodrill's Blog"); - af.id("https://christine.website/blog"); - af.generator({ - let mut generator = atom::Generator::default(); - generator.set_value(env!("CARGO_PKG_NAME")); - generator.set_version(env!("CARGO_PKG_VERSION").to_string()); - generator.set_uri("https://github.com/Xe/site".to_string()); - - generator - }); - af.entries(ai); - - af.build().unwrap() - }; - - let rf = { - let mut rf = rss::ChannelBuilder::default(); - rf.title("Christine Dodrill's Blog"); - rf.link("https://christine.website/blog"); - rf.generator(crate::APPLICATION_NAME.to_string()); - rf.items(ri); - - rf.build().unwrap() - }; - let mut sm: Vec = vec![]; let smw = sitemap::writer::SiteMapWriter::new(&mut sm); let mut urlwriter = smw.start_urlset()?; @@ -173,8 +138,6 @@ pub async fn init(cfg: PathBuf) -> Result { talks: talks, everything: everything, jf: jfb.build(), - af: af, - rf: rf, sitemap: sm, patrons: patrons().await?, }) @@ -185,6 +148,7 @@ mod tests { use anyhow::Result; #[tokio::test] async fn init() -> Result<()> { + let _ = pretty_env_logger::try_init(); super::init("./config.dhall".into()).await?; Ok(()) } diff --git a/src/handlers/feeds.rs b/src/handlers/feeds.rs index 7d7db32..752b08c 100644 --- a/src/handlers/feeds.rs +++ b/src/handlers/feeds.rs @@ -1,7 +1,7 @@ -use crate::app::State; +use crate::{app::State, templates}; use lazy_static::lazy_static; use prometheus::{opts, register_int_counter_vec, IntCounterVec}; -use std::sync::Arc; +use std::{sync::Arc, io}; use warp::{http::Response, Rejection, Reply}; lazy_static! { @@ -20,9 +20,8 @@ pub async fn jsonfeed(state: Arc) -> Result { #[derive(Debug)] pub enum RenderError { - WriteAtom(atom_syndication::Error), - WriteRss(rss::Error), Build(warp::http::Error), + IO(io::Error), } impl warp::reject::Reject for RenderError {} @@ -31,10 +30,8 @@ pub async fn atom(state: Arc) -> Result { HIT_COUNTER.with_label_values(&["atom"]).inc(); let state = state.clone(); let mut buf = Vec::new(); - state - .af - .write_to(&mut buf) - .map_err(RenderError::WriteAtom) + templates::blog_atom_xml(&mut buf, state.everything.clone()) + .map_err(RenderError::IO) .map_err(warp::reject::custom)?; Response::builder() .status(200) @@ -48,10 +45,8 @@ pub async fn rss(state: Arc) -> Result { HIT_COUNTER.with_label_values(&["rss"]).inc(); let state = state.clone(); let mut buf = Vec::new(); - state - .rf - .write_to(&mut buf) - .map_err(RenderError::WriteRss) + templates::blog_rss_xml(&mut buf, state.everything.clone()) + .map_err(RenderError::IO) .map_err(warp::reject::custom)?; Response::builder() .status(200) diff --git a/src/post/mod.rs b/src/post/mod.rs index ca1f3b6..20f18e4 100644 --- a/src/post/mod.rs +++ b/src/post/mod.rs @@ -1,5 +1,4 @@ use anyhow::{anyhow, Result}; -use atom_syndication as atom; use chrono::prelude::*; use glob::glob; use std::{cmp::Ordering, fs}; @@ -53,54 +52,6 @@ impl Into for Post { } } -impl Into for Post { - fn into(self) -> atom::Entry { - let mut content = atom::ContentBuilder::default(); - - content.src(format!("https://christine.website/{}", self.link)); - content.content_type(Some("text/html;charset=utf-8".into())); - content.value(Some(xml::escape::escape_str_pcdata(&self.body_html).into())); - - let content = content.build().unwrap(); - - let mut result = atom::EntryBuilder::default(); - result.id(format!("https://christine.website/{}", self.link)); - result.contributors({ - let mut me = atom::Person::default(); - - me.set_name("Christine Dodrill"); - me.set_email("me@christine.website".to_string()); - me.set_uri("https://christine.website".to_string()); - - vec![me] - }); - result.title(self.front_matter.title); - let mut link = atom::Link::default(); - link.href = format!("https://christine.website/{}", self.link); - result.links(vec![link]); - result.content(content); - result.published(self.date); - - result.build().unwrap() - } -} - -impl Into for Post { - fn into(self) -> rss::Item { - let mut guid = rss::Guid::default(); - guid.set_value(format!("https://christine.website/{}", self.link)); - let mut result = rss::ItemBuilder::default(); - result.title(Some(self.front_matter.title)); - result.link(format!("https://christine.website/{}", self.link)); - result.guid(guid); - result.author(Some("me@christine.website (Christine Dodrill)".to_string())); - result.content(self.body_html); - result.pub_date(self.date.to_rfc2822()); - - result.build().unwrap() - } -} - impl Ord for Post { fn cmp(&self, other: &Self) -> Ordering { self.partial_cmp(&other).unwrap() @@ -160,18 +111,21 @@ mod tests { #[test] fn blog() -> Result<()> { + let _ = pretty_env_logger::try_init(); load("blog")?; Ok(()) } #[test] fn gallery() -> Result<()> { + let _ = pretty_env_logger::try_init(); load("gallery")?; Ok(()) } #[test] fn talks() -> Result<()> { + let _ = pretty_env_logger::try_init(); load("talks")?; Ok(()) } diff --git a/static/img/majc_preview.png b/static/img/majc_preview.png new file mode 100644 index 0000000000000000000000000000000000000000..596e777371747ec115db8c366b274768b04999e3 GIT binary patch literal 129542 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

_P= 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Ì!duULpz(KDN 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 literal 0 HcmV?d00001 diff --git a/templates/blog_atom.rs.xml b/templates/blog_atom.rs.xml new file mode 100644 index 0000000..c6fd32c --- /dev/null +++ b/templates/blog_atom.rs.xml @@ -0,0 +1,26 @@ +@use crate::post::Post; +@use chrono::Utc; + +@(posts: Vec) + + + + https://christine.website/blog.atom + Christine Dodrill's Blog + @Utc::now().to_rfc3339() + + Christine Dodrill + me@@christine.website + + + + @env!("CARGO_PKG_NAME") + @for post in posts { + + https://christine.website/@post.link + @post.front_matter.title + @post.date.to_rfc3339() + + + } + diff --git a/templates/blog_rss.rs.xml b/templates/blog_rss.rs.xml new file mode 100644 index 0000000..02b5ce0 --- /dev/null +++ b/templates/blog_rss.rs.xml @@ -0,0 +1,20 @@ +@use crate::post::Post; + +@(posts: Vec) + + + + Christine Dodrill's Blog + https://christine.website/blog + Tech, philosophy and more + @for post in posts { + + @post.front_matter.title + https://christine.website/@post.link + + @post.date.to_rfc2822() + + + } + + diff --git a/templates/feeds.rs.html b/templates/feeds.rs.html index bb825a0..797755c 100644 --- a/templates/feeds.rs.html +++ b/templates/feeds.rs.html @@ -7,9 +7,10 @@

Feeds

@:footer_html()