From 639c8e881588a2e4ba31c618bd06c8cc980ac2db Mon Sep 17 00:00:00 2001 From: rami Date: Sat, 15 Jun 2024 15:15:13 -0400 Subject: [PATCH] Updated blog --- .gitignore | 1 + Makefile | 9 ++-- README.md | 1 + crow_all.h => include/crow_all.h | 0 main.cpp | 89 +++++++++++++++++++------------ static/blog.png | Bin 0 -> 10990 bytes static/gitea.png | Bin 0 -> 50334 bytes static/pencil.png | Bin 0 -> 13446 bytes static/style.css | 64 ++++++++++++++++++++++ static/tile.png | Bin 0 -> 4521 bytes templates/index.html | 36 ++++++++++--- templates/post.txt | 1 + templates/posts.html | 37 +++++++++++-- templates/template.html | 67 +++++++---------------- 14 files changed, 209 insertions(+), 96 deletions(-) create mode 100644 README.md rename crow_all.h => include/crow_all.h (100%) create mode 100644 static/blog.png create mode 100644 static/gitea.png create mode 100644 static/pencil.png create mode 100644 static/style.css create mode 100644 static/tile.png create mode 100644 templates/post.txt diff --git a/.gitignore b/.gitignore index b33f817..dc5c6fc 100644 --- a/.gitignore +++ b/.gitignore @@ -2,3 +2,4 @@ server posts/ compile_commands.json +.cache diff --git a/Makefile b/Makefile index f0eb8a3..4f35430 100755 --- a/Makefile +++ b/Makefile @@ -1,9 +1,9 @@ CC := g++ -CFLAGS := -Wall -g -std=c++23 +CFLAGS := -Wall -g -std=c++23 -I./include/ TARGET := server -LIBPATHS := -LIBS := +LIBPATHS := +LIBS := -lcurl SRCS := $(wildcard *.cpp) OBJS := $(patsubst %.cpp, %.o, $(SRCS)) @@ -18,3 +18,6 @@ clean: all: run run: $(TARGET) ./$(TARGET) +pch: include/crow_all.h.gch +include/crow_all.h.gch: include/crow_all.h + $(CC) $(CFLAGS) -lpthread -c $< -o $@ diff --git a/README.md b/README.md new file mode 100644 index 0000000..4b13c63 --- /dev/null +++ b/README.md @@ -0,0 +1 @@ +I'm going to rewrite this in rust when I learn it diff --git a/crow_all.h b/include/crow_all.h similarity index 100% rename from crow_all.h rename to include/crow_all.h diff --git a/main.cpp b/main.cpp index f22c8c2..9c60a6c 100755 --- a/main.cpp +++ b/main.cpp @@ -1,8 +1,9 @@ +#include #include #include #include #include -#include "crow_all.h" +#include std::string exec(const std::string &cmd) { std::array buffer; @@ -17,36 +18,58 @@ std::string exec(const std::string &cmd) { return result; } -int main() { - crow::SimpleApp app; - - CROW_ROUTE(app, "/")([](){ - return crow::mustache::load_text("index.html"); - }); - - CROW_ROUTE(app, "/contact")([](){ - return crow::mustache::load_text("contact.html"); - }); - - CROW_ROUTE(app, "/blog")([](){ - std::string posts = ""; - std::filesystem::path postsDir("posts"); - for (auto const& entry : std::filesystem::directory_iterator{postsDir}) { - posts.append("
  • "); - posts.append(entry.path().filename()); - posts.append("
  • "); - } - - auto page = crow::mustache::load("posts.html"); - crow::mustache::context ctx( {{"posts", posts}} ); - return page.render(ctx); - }); - - CROW_ROUTE(app, "/blog/")([](const std::string &name){ - return exec("pandoc --standalone --template templates/template.html ./posts/" + name); - }); - - app.port(8080).multithreaded().run(); +std::string url_decode(const std::string& encoded) { + int output_length; + const auto decoded_value = curl_easy_unescape(nullptr, encoded.c_str(), static_cast(encoded.length()), &output_length); + std::string result(decoded_value, output_length); + curl_free(decoded_value); + return result; +} + +std::string process_file(const std::filesystem::path &path) { + return exec("pandoc --template='templates/post.txt' -t plain '" + path.string() + "'");; +} + +namespace route { + std::string root() { + return crow::mustache::load_text("index.html"); + } + + crow::mustache::rendered_template blog() { + std::string posts = ""; + std::filesystem::path postsDir("posts"); + std::vector> futures; + for (auto const& entry : std::filesystem::directory_iterator{postsDir}) { + futures.emplace_back(std::async(std::launch::async, process_file, entry.path())); + } + + + for (auto& future : futures) { + posts += future.get(); + } + + auto page = crow::mustache::load("posts.html"); + crow::mustache::context ctx( {{"posts", posts}} ); + return page.render(ctx); + } + + std::string post(const std::string &name) { + std::string decoded_name = url_decode(name); + if (std::filesystem::exists("posts/" + decoded_name)) + return exec("pandoc --standalone --template templates/template.html './posts/" + decoded_name + "'"); + else + return std::string("

    Not found

    "); + } +}; + +int main() { + crow::SimpleApp app; + + CROW_ROUTE(app, "/")(route::root); + + CROW_ROUTE(app, "/blog")(route::blog); + + CROW_ROUTE(app, "/blog/")(route::post); + + app.port(8080).multithreaded().run(); } diff --git a/static/blog.png b/static/blog.png new file mode 100644 index 0000000000000000000000000000000000000000..8ad02e512c8ff59d514aebbc9777a0d98e7fef65 GIT binary patch literal 10990 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Ν3)2_Cb2Cs%C+thd6kC69 z-ru^r{`gT8oE<8pQOy>C{ZcrpY!bb&iy;$iw}H^Mw8p{}-8Ngn&m-k*S^@r2LMKz2 zZqo}M>`=8}_B&?mZObx^?hJBokt`n^o^w;u>2!chF(HPdN`=a-G&||UslLFk0WCeY zGUY}cDNZ-)8w_9on-QiK|Bf3?*AFhSQQjC?75H@IdL}RVv=**uXu69Kt);i|lMOVq zZ{p9UD}L)(;p4|P{A$5Pe`!5$JfE?po?Oo)CpB*BIjHiDr0J_UpWVW|C(oA%KQURt$QoXVJESU~UYo7x|U+{`vfbcNn@n2Zbcqc5BKP&3F!1oYZtRr3 zqhh)D&8`&Udr@|aJGLq1!OQ_ugmz+kU%j)sdlf4Lu-50Y6BDA}lsV@vMhJHn?jFgY zj0fqJ)qp*?EBV~XFu=-rMhx6>M~7!3cIR`zr#p#TW{*?$QzK^IFGZNiDW&+Blr@ql z|4?V4#D654T;~KAps?@))K0+#s0s(bQ^m+<9Q*ic=d1}*9I=Z%;^$QK+QwBKIF8C8 zw7YOeJHy;X5X)UMzwS{l6WrkAKYP)DpV*3Op`qFHM)5M<92t7lh_JAQ&HENhsdMpO z$CV_>?-@xt=S)fyLMk1x=P#%}NGpl&>+qOP0l@>H)0&(!B)@j3^Uahh2+v5G97>wB zYR*|BqoL>LTKB3rCFsHMv9%eSd+f>-P{$Ejgf^neO1_-^LbrOnDG;8^PHAG+*dDg{ zQpz!{(KS)9XS*on_Dh(kOhcZJHbzxofX^?OfXh>C$C1v_MN8Q^KSE&Ytg@h=ceFsnu89&JuCez z4G)E7Y@YyN74=|~J~*L-u4{e|EnIEe8gm++qAf#)YnDl`U5x5-O%>L|{eC{#rb$mh zs`$l~>|g1EtAu1r%(m2A1)1VA39rcTDxxi>G?k*Y2&cBOrvN_MW8l`OqI|InSu5!3 zI0k*W-2clYLrY4U)>kOk@;VCMZd~qvk5GwVtjp`Sy8So+XcH=0OA-&~0mc3^7B(lX zTHr0ot^Pr^bOJK;cVs|7Y}r*)uw4(i-b`jiwn&xVqOd#U^7Gzd(D!N*4bAtN^AB6r zq^Xd!do*{;x4iVdmj42Se%`#F!2eK0*GLUdweuOTF;zm(b>FWd+kJ0e&HbrK#(0N~=Z``5~?{=fe(4%A}q literal 0 HcmV?d00001 diff --git a/static/gitea.png b/static/gitea.png new file mode 100644 index 0000000000000000000000000000000000000000..9dd87b3a2ef50ca10162d97633762d436a86cbc6 GIT binary patch literal 50334 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 TI8QkXZh#Q?bW}_4JPH0^xbya2 literal 0 HcmV?d00001 diff --git a/static/pencil.png b/static/pencil.png new file mode 100644 index 0000000000000000000000000000000000000000..24a77a7dfe0beba46294e41f0c96574cf1acd69e GIT binary patch literal 13446 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 literal 0 HcmV?d00001 diff --git a/static/style.css b/static/style.css new file mode 100644 index 0000000..f8a7303 --- /dev/null +++ b/static/style.css @@ -0,0 +1,64 @@ +@import url('https://fonts.googleapis.com/css2?family=Ubuntu+Mono:ital,wght@0,400;0,700;1,400;1,700&family=Ubuntu:ital,wght@0,300;0,400;0,500;0,700;1,300;1,400;1,500;1,700&display=swap'); + +* { + font-family: "Ubuntu", sans-serif; +} + +::selection { + background: #e67e80; + color: #232a2e; +} + +body { + margin: 0; + padding: 0; + background: url(/static/tile.png); + color: #d3c6aa; + font-family: sans-serif; + display: flex; + justify-content: center; + align-items: center; +} + +a { + color: #d699b6; +} + +.sourceCode code { + font-family: "Ubuntu Mono", monospace; +} + +code { + background: #232a2e; + font-family: "Ubuntu Mono", monospace; + overflow-y: scroll; +} + +.sourceCode { + background: #232a2e; + overflow-y: scroll; + padding: 10px; +} +html,body{min-height: 100vh;} +#wrapper { + width: 50%; + min-height: 100vh; + background: #2d353b; + padding: 0px 30px 0px 30px; + line-height: 1.5; +} + +.title { + display: flex; + flex-direction: row; + justify-content: space-between; + align-items: center; +} + +.date { + font-family: "Ubuntu Mono", monospace; +} + +.back { + font-size: 20px; +} diff --git a/static/tile.png b/static/tile.png new file mode 100644 index 0000000000000000000000000000000000000000..05c3466571de1f612d07873d4712ef42af8ccf42 GIT binary patch literal 4521 zcmeHKdvp}l8J`UVLc$|S6N~~fE)M~jotfR)$BbDpWCOb;8}e8%v{*BbyPJ{Son?2D zY|@s5SbU|5CG{wZ=mC$k6`IF6L8W3S(pHbPtp~7_7NjK#9)V32i?!DDo7v5hv>r9* z)c-Pj?%q4!{e8cC@9%#1+r9T!R;-$qeM2^eVbeTrS2fgaTFIIO->)p=Ux%s})q4CM z&k`&PUZ!A}VIpSGFi;F5+8Krk*aWb(K*@);hSACmhRig6R;qm;*cYWR8PKK;8Q3(a zABJLvb^+A8plDB){&7P~V;inldAyal*+f$&ivxTpGs96fj%IM$#!*(zYQu^yZwc1GsQ*?%)Y`ZKCL=lI`pLiQnvCAKhW8n{mFc{k_@u zuILH6N=p*a@BQk}A3ZSZx{7B9=QA}=b-0eGv+ulm(swB5C*OJUYTum8zEj5!zeN=9 ze{bdb_&Uc+Rc{q0vS!r3==$cz?vu)^hOJ$X>+DYtt z=ZEcsk9BuF+*RLtzRLdhXF67QRNpI27xNdma!JpUeVu#DZ@a6?yfHCr=p&*sf7`;= zCzssg=p8uv{&juEJC0RbcJF=X^_sOW4*mYvZ_6u~gWqjG+j3yv)w~O*wzj;{`|>v8 zxy>05-TcB*+rJmQCcj&Anot;~rw_JFz zbcndJ&({0Nx6fZO2v26lBjkqj1jkjC9ls8g}>ScFJ6xFm;_{5ftA}bk} zFUu~Db3hP6Dv!rQ!ElU=JB>Oo2W`zv8gU(>Zgd)JAwEi#D8d;NW1@(%xZG$qF3ZM? zqmrMicCAcNz?;)puc{G_B%7L=OidP(5)F_v%d#Y8Ce3C75JapwtnzUp9Gj<6Bsp9t zCPw9mDl1`JjxQCTAjtMf)uNMhPQ(hv>m%aKG91yKl~F&LE|HKcZu(jJ-w0XY=W zy+G_yNLBV<6KmAmv>tsqBPRmxY2H!j;kD~vKzY5KOA#Bi>3LjEqc%P#DWWWKdXu$_ zl9jiJ1Z{<_U>G|hcni%ER+gu2e!IxpDQX0jCmd7xu!uA&AUDatW2YIvgOwP97Ay?G zSRHnP7tIXe5RhG9dBH5$&aS8;w9oE8? zMiH+nQJt%&UqC{_BVeST01;=adOMu zaty|A)=kM1Rf9Gq-;%FESwBiRt{)1H7n4hf@r_8*=LuZNF0q~u2M}bBRJab?<x{JAg-*mjk5VIe#D5Q*<*@dZQ`S-Bmg>sRuG>0FAu&*->Ai- z(M|P8+XWDeplk%q3=77l1S3-mCbgU~yy9Z=e>5r90V9$O_$6(SydW2n>13GFOiMdo z!;Ny6$?E^J8qJbh?yCs?LL-0Nc)mh%m*7_i587J+fH>hYFMzA$NeLFTOw&Dfg< z_vRLltHc*Sb?J0ZUOQFPRyBC?=vY-Gb#}8Mncm-GE~g+rH@KaAN9D_uq4T^QX?{H~uuY&K)|@bna93@jnK3 z{d)Jug>@}|_{%`ooF7y#9D3r>v&RE%uXZMKA6tB8U~&#_|L63!Et@l!dN=<#D|*YB zQ){~y%ekL~r#_z%JpGTmTJyx5uQUNHV{EYL2j1`7bnKDPo8iF?2Y+^X>bbhi?#zor zGhcZ5#Pw}%!^KV8oa?a9>OMUE%fy*0_5E2#GTR8u@MSXm*DTIP)=au(<=gWX&3+Su O$5U3}`uU2w_WuC-ZuRQ` literal 0 HcmV?d00001 diff --git a/templates/index.html b/templates/index.html index b1fa640..9144152 100755 --- a/templates/index.html +++ b/templates/index.html @@ -6,14 +6,32 @@ - ramik.dev + + +
    +

    All my posts:

    +
    +
      + {{& posts }} +
    +
    + + diff --git a/templates/template.html b/templates/template.html index dbf8d4d..7bf9c1f 100644 --- a/templates/template.html +++ b/templates/template.html @@ -1,56 +1,25 @@ - - - - - - - $title$ + + + + + + + $title$ -
    - $body$ -
    +
    +
    + .. +

    + $title$ +

    + $date$ +
    +
    + $body$ +