From: jxnshi Date: Mon, 2 Dec 2024 16:02:47 +0000 (+0100) Subject: First commit X-Git-Url: https://jxnshi.xyz/repos?a=commitdiff_plain;h=5ff54ee406f14bacf0de28072c161bc29e73ea8e;p=jxnshi.xyz.git First commit --- 5ff54ee406f14bacf0de28072c161bc29e73ea8e diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..9284511 --- /dev/null +++ b/.gitignore @@ -0,0 +1,5 @@ +zig-out/ +zig-cache/ +*.core +.jetzig +.zig-cache/ diff --git a/build.zig b/build.zig new file mode 100644 index 0000000..dd9564e --- /dev/null +++ b/build.zig @@ -0,0 +1,53 @@ +const std = @import("std"); +const jetzig = @import("jetzig"); + +pub fn build(b: *std.Build) !void { + const target = b.standardTargetOptions(.{}); + const optimize = b.standardOptimizeOption(.{}); + + const exe = b.addExecutable(.{ + .name = "jxnshi.xyz", + .root_source_file = b.path("src/main.zig"), + .target = target, + .optimize = optimize, + }); + + // Example Dependency + // ------------------- + // const iguanas_dep = b.dependency("iguanas", .{ .optimize = optimize, .target = target }); + // exe.root_module.addImport("iguanas", iguanas_dep.module("iguanas")); + + // ^ Add all dependencies before `jetzig.jetzigInit()` ^ + + try jetzig.jetzigInit(b, exe, .{}); + + b.installArtifact(exe); + + const run_cmd = b.addRunArtifact(exe); + run_cmd.step.dependOn(b.getInstallStep()); + + if (b.args) |args| run_cmd.addArgs(args); + + const run_step = b.step("run", "Run the app"); + run_step.dependOn(&run_cmd.step); + + const lib_unit_tests = b.addTest(.{ + .root_source_file = b.path("src/main.zig"), + .target = target, + .optimize = optimize, + }); + + const run_lib_unit_tests = b.addRunArtifact(lib_unit_tests); + + const exe_unit_tests = b.addTest(.{ + .root_source_file = b.path("src/main.zig"), + .target = target, + .optimize = optimize, + }); + + const run_exe_unit_tests = b.addRunArtifact(exe_unit_tests); + + const test_step = b.step("test", "Run unit tests"); + test_step.dependOn(&run_lib_unit_tests.step); + test_step.dependOn(&run_exe_unit_tests.step); +} diff --git a/build.zig.zon b/build.zig.zon new file mode 100644 index 0000000..07196b1 --- /dev/null +++ b/build.zig.zon @@ -0,0 +1,39 @@ +.{ + // This is the default name used by packages depending on this one. For + // example, when a user runs `zig fetch --save `, this field is used + // as the key in the `dependencies` table. Although the user can choose a + // different name, most users will stick with this provided value. + // + // It is redundant to include "zig" in this name because it is already + // within the Zig package namespace. + .name = "jxnshi.xyz", + + // This is a [Semantic Version](https://semver.org/). + // In a future version of Zig it will be used for package deduplication. + .version = "0.0.0", + + // This field is optional. + // This is currently advisory only; Zig does not yet do anything + // with this value. + //.minimum_zig_version = "0.11.0", + + // This field is optional. + // Each dependency must either provide a `url` and `hash`, or a `path`. + // `zig build --fetch` can be used to fetch all dependencies of a package, recursively. + // Once all dependencies are fetched, `zig build` no longer requires + // internet connectivity. + .dependencies = .{ + .jetzig = .{ + .url = "https://github.com/jetzig-framework/jetzig/archive/d219a3ce8354d1acb24dfa9ad4b046b966790d06.tar.gz", + .hash = "122059a07eb46b2fc3dccc320e1508c19358f1823c8c323333f1a35a427216851520", + }, + }, + .paths = .{ + "build.zig", + "build.zig.zon", + "src", + // For example... + //"LICENSE", + //"README.md", + }, +} diff --git a/private/le-monde-de-ponpon/chapter-3.md b/private/le-monde-de-ponpon/chapter-3.md new file mode 100644 index 0000000..1740579 --- /dev/null +++ b/private/le-monde-de-ponpon/chapter-3.md @@ -0,0 +1,152 @@ +## Chapitre 3: Grand maman serait d'accord. + +Une fois la notification cliquée, Ponpon se rendit compte que c'était juste un +post avec des chats. Les chats c'est très bien hein, mais bon, ça fait moyen +moyen avancer l'histoire quoi. Puis elle réalisa qu'elle regardait le post d'en +dessous. Celui au dessus c'était pas du tout des chats. + +Ponpon écarquilla les yeux. +— HérisonLand, cria-t-elle avant de sauter partout dans sa chambre. + +Malgré le nom qui pourrait porter à confusion, il ne s'agit pas d'un parc +d'attraction, mais bien d'un magasin dédié aux hérissons. Il était juste à côté, +à deux rues de chez elle, et en plus il était ouvert ce dimanche +exeptionnellement à l'occasion de l'ouverture ! + +Ponpon enfilla ses chaussures à scratch, prête à partir s'aventurer à +HérissonLand. Elle sorite alors avant de se rendre compte qu'il faisait nuit et +qu'on était vraiment pas dimanche mais bien samedi soir. + +Elle rerentra alors et sa mère l'interpela. +— C'est prêt si tu veux manger Ponpon. +— Oh, on mange quoi ? +— Des pâtes aux beurres. +Ahhh, des pâtes au beurre, le plât préféré de Ponpon. +— Ouaiiis ! Trop bien ! +Ponpon couru s'installer à table. +— Maman ! Maman ! Demain y a un HérissonLand qui ouvre pas loin. +— HérissonLand, répéta la mère de Ponpon sur un ton intérogatif avant de prendre +une bouchée de pâte. C'est pas le magasin dont tu me parlait la dernière fois ? +— Si si si. Ils ont plein de trucs, genre des costumes rigolo pour les +hérissons, et des gamelles aussi, et des jouets ! +— J'vais enfin pouvoir récupérer l'assiette qu'on a fillé à Raymond. +— Heuu... Bah si y a des gamelles moui. Faudra en parler à Raymond. +— Tu sais que cette assiette appartenait à ton arrière grand mère ? +— J'suis sûre que grand maman serait d'accord, dit Ponpon la bouche pleine. + +Ponpon avala sa dernière bouchée, se leva et déposa son assiette dans l'évier +avant de retourner dans sa chambre, toujours en courant bien sûr. + +Le lendemain, Ponpon prit la route de HérissonLand. Elle entra dans le magasin +et commença à scanner les articles avec ses yeux. Elle vit ce qu'elle avait +énuméré à sa mère le soir d'avant, c'est à dire "des costumes rigolo pour les +hérissons, et des gamelles aussi, et des jouets", mais elle vit aussi des roues +pour hérissons. Vous me direz "Bah des roues pour hamsters quoi", non ! Je vous +arrête tout de suite ! Ce sont des roues pour hérissons. + +A côté de tout ça, il y avait aussi des croquettes pour hérissons, mais Ponpon +avait déjà essayé et rien y fait, Raymond préfère celles pour chat. + +Si ça ne tenait qu'à Ponpon, elle aurait pris un article de chaque, cependant +certaines experiences passées ont fait prendre la décision à sa mère de ne +donner à Ponpon qu'un billet de 5€ pour son premier passage à HérissonLand. + +Ponpon décida de se replier sur une gamelle et se dirigea en direction de la +caisse. +— Bonjouuur, dit Ponpon en souriant. +Elle posa la gamelle sur le contoir. +— Ca sera 2€ s'il vous plait. + +Ponpon mit la main dans sa poche et sortit un billet de 5€. Le billet cependant +ne fini pas sa course sur le contoir mais bien par terre. Ponpon ramassa le +billet et le posa sur le contoir. + +Ouf, tout s'est bien fini... :). Un client rentra, ce qui en ouvrant les portes +du magasin causa un appel d'air qui fit s'envoler le billet qui sortit du +magasin. Il se posa un peu plus loin devant l'entrée du magasin. Ponpon se +baissa pour le ramasser, mais le billet farceur ne se laissa pas faire et reprit +son envol. + +Ponpon fronça les sourcils et poursuivit le billet. Cette course poursuite dura +au moins deux bonnes minutes. Le billet n'avait pas l'air décidé à se diriger +vers le sol. Il attérit malgré tout... juste pas au sol. Ce poti blageur c'était +trouvé une place cosy en haut d'un lampadaire. +— Tu te crois malin monsieur le billet, dit Ponpon en brandissant son poing +en direction du fauteur de trouble. + +Ponpon courut vers le lampadaire, s'y accrocha, leva les pieds du sol et +commança son ascension du lampadaire. + +Arrivée au bout, elle tendit le bras vers le billet, ses doigts n'étaient qu'à +quelques centimères de son objectif. +— Je peux vous aider ? +Ponpon tourna la tête et vit une femme qui devait avoir vers la quarantaine. +— Huh ? Heu nan, merci ! J'essayais juste de récupérer mon billet. +Ponpon se tourna alors pour pointer le billet en question du doigt, mais la +place qui était avait occupée par le billet était maintenant vacante. Ponpon +regarda alors aux alentours et vit le billet, dans les airs, se dirigeant vers +les toits des maisons. + +A ce moment précis, les éspoirs de Ponpon de revoir se billet était annihilés. +Ponpon soupira. +— Vous- Vous avez vu ! +— Oui, le billet s'est envolé. +Ponpon se laissa glisser le long du lampadaire avant de s'allonger au sol. +— Tu vas bien ? +La dame qui juste avant vouvoyait Ponpon, à comme par instinct commencé à la +tutoyer. +— C'était l'argent pour HérissonLand... +La dame commença à fouiller dans son sac et sortit son porte feuille. +— Je peux te donner... +Elle regarda dans son portefeuille et sortit un billet qu'elle tendit à Ponpon. +— 10€ si tu veux. +— Ehhh... c'est gentil mais je sais pas si je peux accepter. +— T'inquiètes pas. Tu me remboursera plus tard. +— Heu... ok. +Ponpon prit le billet, n'ayant toute fois pas l'air très à l'aise d'accépter de +l'argent. +— Merci madame. +La dame rengea son portefeuille. +— Tu peux m'appeler Amélie. +Ponpon se corrigea. +— Merci Amélie. +— De rien. +Amélie reprit son chemin. +— Au revoir, lui dit Ponpon. +Amélie se retourna et sourit. +— Au revoir ! + +Ponpon revînt chez elle les bras chargés. Elle avait pris la gamelle qu'elle +comptait prendre initialement, mais elle s'est également laissé tenter par un +jouet qui couine et une nouvelle couverture pour Raymond. +— T'as acheté tout ça juste avec 5€, demanda la mère de Ponpon qui lisait un +livre sur le canapé avant l'arrivée de Ponpon. +— Nan nan nan ! C'est une dame qui m'a donné de l'argent. +— De l'argent ? Pourquoi ? +— Oui, mon billet s'est envolé et j'ai pas réussi à le récupérer, du coup elle +m'a donné de 10€. +— Ok. Heureusement qu'elle t'a donné que 10€. +— Ah ? Pourquoi, demanda Ponpon en examinant avec sa main libre la gamelle +qu'elle venait d'acheter. +— Je dois vraiment te rappeler la dernière fois que je t'ai laissé gérer un +budget ? +— Tu parles de quand tu m'as laissé faire les courses et que je suis revenue +avec des Kinder Bueno ? +— Précisément. +— Mais c'était y a lonnngtemps ça ! +— Ponpon... tu es revenue avec 50€ de Kinder Bueno. +— Mais c'est pas ma faute ! C'est trop bon aussiii ! + +La mère de Ponpon roula des yeux mais tout de même avec un sourir sur son visage +avant de retourner à son livre. Ponpon elle partit dans sa chambre pour montrer +toutes les belles choses qu'elle avait prit pour Raymond le hérisson. + +Elle installa la couverture à côté de Raymond qui posé dans son ancienne +couverture. Ou du moins ce que Ponpon aurait voulu être son ancienne couverture, +car Raymond n'avait pas l'air décidé à bouger de la couverture auquelle il avait +été habitué pendant si longtemps. +— Aller grosse patate ! Faut aller sur l'autre, dit Ponpon accroupie devant +Raymond, pointant la nouvelle couverture. + +Mais Raymond ne céda pas. Ponpon se relevé, comprenant que c'était peine perdue +et s'allongea sur son lit derrière elle. diff --git a/public/404.html b/public/404.html new file mode 100644 index 0000000..0f2abd2 --- /dev/null +++ b/public/404.html @@ -0,0 +1,14 @@ + + + + jxnshi.xyz + + + + + +
+

Lost in outter space.

+
+ + diff --git a/public/background.webp b/public/background.webp new file mode 100644 index 0000000..73bc0c7 Binary files /dev/null and b/public/background.webp differ diff --git a/public/basis33.ttf b/public/basis33.ttf new file mode 100644 index 0000000..b20255b Binary files /dev/null and b/public/basis33.ttf differ diff --git a/public/monero-logo.webp b/public/monero-logo.webp new file mode 100644 index 0000000..7b2ffa2 Binary files /dev/null and b/public/monero-logo.webp differ diff --git a/public/style.css b/public/style.css new file mode 100644 index 0000000..21d9b4c --- /dev/null +++ b/public/style.css @@ -0,0 +1,71 @@ +@font-face { + font-family: "basis33"; + src: url("/basis33.ttf"); +} + +* { + color: white; + font-family: "basis33"; + margin: 0; + padding: 0; + text-decoration: none; +} + +body { + display: flex; + justify-content: center; + background-color: black; + padding: 30px; +} + +ul, ol { + padding-left: 18px; +} + +p { + width: 100%; +} + +p, li { + font-size: 120%; +} + +a:hover { + color: lightgray; +} + +.break-word { + word-break: break-all; +} + +.center { + width: auto; +} + +.isle { + display: flex; + flex-direction: column; + align-items: center; + background-color: black; + border: 2px solid white; + padding: 20px; + gap: 20px; +} + +#main-div { + display: flex; + flex-direction: column; + gap: 20px; + max-width: 800px; +} + +#donation-div { + display: grid; + grid-template: "a b" "c d"; + max-width: 280px; + gap: 10px; +} + +#donation-title { + font-size: 200%; +} diff --git a/public/xmr-qr-code.webp b/public/xmr-qr-code.webp new file mode 100644 index 0000000..f7030c5 Binary files /dev/null and b/public/xmr-qr-code.webp differ diff --git a/src/app/views/books.zig b/src/app/views/books.zig new file mode 100644 index 0000000..84c5f44 --- /dev/null +++ b/src/app/views/books.zig @@ -0,0 +1,8 @@ +const std = @import("std"); +const jetzig = @import("jetzig"); + +pub const layout = "main"; + +pub fn index(request: *jetzig.Request, _: *jetzig.Data) !jetzig.View { + return request.render(.ok); +} diff --git a/src/app/views/books/index.zmpl b/src/app/views/books/index.zmpl new file mode 100644 index 0000000..cde0741 --- /dev/null +++ b/src/app/views/books/index.zmpl @@ -0,0 +1,6 @@ +
+

My books!

+ +
diff --git a/src/app/views/books/le-monde-de-ponpon.zig b/src/app/views/books/le-monde-de-ponpon.zig new file mode 100644 index 0000000..84c5f44 --- /dev/null +++ b/src/app/views/books/le-monde-de-ponpon.zig @@ -0,0 +1,8 @@ +const std = @import("std"); +const jetzig = @import("jetzig"); + +pub const layout = "main"; + +pub fn index(request: *jetzig.Request, _: *jetzig.Data) !jetzig.View { + return request.render(.ok); +} diff --git a/src/app/views/books/le-monde-de-ponpon/chapter-1-v1.zig b/src/app/views/books/le-monde-de-ponpon/chapter-1-v1.zig new file mode 100644 index 0000000..84c5f44 --- /dev/null +++ b/src/app/views/books/le-monde-de-ponpon/chapter-1-v1.zig @@ -0,0 +1,8 @@ +const std = @import("std"); +const jetzig = @import("jetzig"); + +pub const layout = "main"; + +pub fn index(request: *jetzig.Request, _: *jetzig.Data) !jetzig.View { + return request.render(.ok); +} diff --git a/src/app/views/books/le-monde-de-ponpon/chapter-1-v1/content.md b/src/app/views/books/le-monde-de-ponpon/chapter-1-v1/content.md new file mode 100644 index 0000000..7a78c2f --- /dev/null +++ b/src/app/views/books/le-monde-de-ponpon/chapter-1-v1/content.md @@ -0,0 +1,99 @@ +## Chapitre 1: Rentrée des classes. Point d'intérogation. + +Ce jour là c'était la rentrée pour Ponpon (ça se prononce ponne ponne) ! Elle +faisait sa première année en étude d'art dans l'université de sa ville, +l'université Jean-Jacobin. Carrément elle s'était reveillée juste avant que son +reveil sonne tellement elle avait hâte. Elle reremplit la gamelle de Raymond, +son hérisson de compagnie et fila dans la cuisine pour prendre le petit déjeuner +avec sa maman. Ponpon avait une cuisine avec un contoir, en mode la cuisine et +le salon c'est la même pièce comme dans BoJack. Ponpon au petit déjeuner elle +prenait des pop tarts au réglisse avec un grand verre de jus d'orange pour un +max de vitamines. "Alors Ponpon, prête pour cette rentrée ?" demanda sa mère. +"Oui maman !" repondit Ponpon en levant les bras au ciel. Elle reprit une +posture normale, tapa un cros dans sa pop tart et commença à yap à propos de +l'université. Sa mère qui étonnamment arrivait à suivre le ramble de Ponpon, ce +qui pour quelconque mortel est un exercice éprouvant. + +Ponpon vit quelque chose passer à travers la fenêtre derrière sa mère. C'était +le bus pour l'uni omg ! Ponpon poussa un cri de terreur et se précipita vers +son sac à dos qui était en fait un sac à dos grenouille. Puis elle se rua vers +la porte avant de sortir en faisant des grands gêstes au conducteur du bus qui +heureusement l'avait vu et s'arrêta. Elle entra dans le bus et s'assit à la +première place de libre qu'elle vit en posant son sac à dos sur ses genoux. +"Sympa ton sac." lui dit la fille à côté d'elle. "Merci !" répondit Ponpon. +"Toi aussi tu vas au lycée Jean-Jacobin ?" demanda cette dernière à la fille +inconue. "Oui. J'ai vraiment hâte ! Même si je suis un peu stressée." +repondit-t-elle. "Oh ? Stressé ? Pourquoi ?" demanda Ponpon n'ayant pas l'air +de connaitre la notion de stress. "Et bien, je suis toujours stressée quand je +découvre un nouvelle établissement que je ne connais pas. Le fait de rencontrer +de nouvelles personnes, tout ça." répondit la fille à côté de Ponpon. "Tu +stresses de rencontrer des gens ? Pourtant c'est toi qui a commencé à me +parler." indiqua Ponpon. "Oui, c'est plus facile pour moi de parler avec qu'une +seule personne." répondit la jeune fille. "Oui je vois." dit Ponpon les mains +derrières la tête regardant en face d'elle, puis elle dit "Oh et en fait, moi +c'est Ponpon, et toi c'est comment ?". "Ponpon ?" se demanda la jeune fille +étonnée par ce prénom bien peu commun qu'est celui de notre personnage +principal. Elle reprit ses ésprits et répondit "Heuu... Oui, pardon ! Moi c'est +Julie.". "Peut-être qu'on sera dans la même classe Julie !" dit Ponpon. "Oui +j'espère !" répondit Julie. "Ponpon ? C'est pas... l'univerté !" s'écria Julie +en pointant du doigt par la fenêtre. "Ahhhhh ! Si si si si si !" s'excalama +Ponpon en allant regarder l'université s'éloigner par la fenêtre à l'opposé de +là où elles étaient assisies malgré qu'il y avait des gens assis devant la +fenêtre. "Ehhhhhh... C'est pas grave." dit Ponpon avant de retourner s'assoire à +sa place. Ponpon avait l'air de s'être remise rapidement du fait d'avoir loupé +l'arrêt. Julie cependant était tétanisée. Ponpon passa sa main devant son visage +en esperant une réponse de sa part "Julie ?". Devant l'absence de réponse, elle +n'insista pas. Julie se reveilla d'un coup et agrippa la manche de Ponpon et +secoua Ponpon en s'écriant "Ahhhh ! On a raté l'arrêt !". "Ehhhh !" dit Ponpon +pendant que Julie raconte pourquoi le fait d'avoir raté l'arrêt c'est super +grave et qu'à cause de ça elle va être renvoyée et elle aura pas son diplôme et +elle va finir poubelleuse. "Juliiie ! Arrête de me secoueeer !" dit Ponpon. +Julie s'arrêta immédiatement et s'excusa "Pardon ! Pardon !". "Julie tu vas pas +finir poubelleuse t'inquiètes paaas." dit Ponpon en essayant de se remettre de +cette secousse intense dignue de La Vienne Dynamique, l'attraction du +Futuroscope là. "Oui ! Tu as raison ! On a juste à s'arrêter au prochain +arrêt !" dit Julie. "Oui, t'as tout compris !" dit Ponpon en tenant Julie par +les épaules. "Sinon j't'ai parlé de mon hérisson Raymond ?" dit Ponpon. + +Julie et Ponpon arrivèrent éssoufflées devant l'université. "J'arrive pas... à +croire... qu'on a loupé l'arrêt... deux fois !" dit Julie à bout de souffle. +"Je suis désolééee... ! Quand je commence... à parler... de Raymond... je +m'arrête plus !" répondit Ponpon. Elles entrèrent dans l'université (un peu en +retard on va pas se mentir) et se présentèrent à l'accueil. "Bonjouuur !" dit +Ponpon à la dame de l'accueil qui avait l'air d'être à peine plus âgée que +Ponpon et Julie. "Bonjour les filles, comment je peux vous aider ?" +demanda-t-elle. "Heu... Oui ! C'est la rentrée pour nous, on ne sait pas trop +où aller." répondit Ponpon. "Vous êtes en retard faudra vous dépêcher ! Vous +allez là où y a les panneaux au mur là bas et vous cherchez votre classe." dit +la dame de l'accueil en pointant les panneaux en question du doigt. Les filles +courrurent vers les panneaux en pensant bien à remercier la dame de l'accueil +et commencèrent à chercher leurs noms. "Julie... Julie... Julie Landré ! +Trouvé !" dit Julie. "Oh ! Est-ce que je suis dans ta classe ?" demanda Ponpon. +Julie chercha et répondit "Heuu... Nan on dirait pas". "Ehhhh... On pourra +toujours se voir pendant les pauses !". "Oui !" répondit Julie. Ponpon continua +de chercher son nom, avant d'arriver au bout de tout les panneaux. "Tu +trouves ?" demanda Julie. "Attends, attends ! Je dois l'avoir loupé." répondit +Ponpon avant de recommencer sa recherche depuis le début. Julie demanda à Ponpon +"Tu t'es bien inscrite ?". Ponpon baissa la tête et se remémora toutes les fois +où sa mère lui a dit de bien penser à s'inscrire telles des souvenirs de guerre. +"Tu as bien pensé à t'inscrire pour l'université Ponpon ?" lui avait dit sa +mère. "Je le ferais demain !" avait-t-elle alors répondu alors qu'elle jouait +avec Raymond le hérisson. "Oublie pas de t'inscrire pour l'uni Ponpon." lui +avait dit sa mère à nouveau plus tard dans la semaine. "Oui oui ! Demain +demain !" avait répondu Ponpon alors qu'elle était en train de maxi gamer sur +Fractal Block World. Ou encore cette fois où sa mère lui avait encore une fois +rappelé pendant qu'elle essayait de grimper à l'arbre du jardin pour aller +caresser Splooinky le chat du voisin. Ponpon se dématérialisa de l'espace et du +temps et réapparu alongée au sol. "Julie... J'ai oublié de m'inscrire..." dit +Ponpon dans un état second comme si elle avait vu un fantôme et qu'elle était +paralysée. "Quoiiii ?!" s'exclama Julie. "Mais tu vas faire comment ?" demanda +Julie à Ponpon qui était toujours au sol et qui n'avait l'air d'être présente +que physiquement, pour pas dire qu'elle était chockbar. "Ahhh !" Julie se +rappela qu'elle était en retard et qu'elle devait aller en classe. "Désolée, +désolée, désolée ! Je dois aller en classe !" dit Julie. Elle sortie un stylo +de son sac et écrivit sur la main de Ponpon. "Tiens ça c'est mon Skype. On se +voit ce soir si tu veux !" dit elle avant de partir en courant vers sa classe. +"A plus tard Ponpon !" dit Julie en faisant bye bye avec sa main à Ponpon. +Ponpon, toujours au sol. Elle ne bougeait pas. Elle a oublié de s'inscire quoi. +Alors que sa mère a fait que lui répéter. Elle est pas très smart la fille quand +même. "Hein ?!". Heuu... fin de chapitre ! "Ehhh ! Atten-". diff --git a/src/app/views/books/le-monde-de-ponpon/chapter-1-v1/index.zmpl b/src/app/views/books/le-monde-de-ponpon/chapter-1-v1/index.zmpl new file mode 100644 index 0000000..87b875d --- /dev/null +++ b/src/app/views/books/le-monde-de-ponpon/chapter-1-v1/index.zmpl @@ -0,0 +1,5 @@ +

Chapitre 1: Rentrée des classes. Point d'intérogation.

+ +

Ce jour là c'était la rentrée pour Ponpon (ça se prononce ponne ponne) ! Elle
faisait sa première année en étude d'art dans l'université de sa ville,
l'université Jean-Jacobin. Carrément elle s'était reveillée juste avant que son
reveil sonne tellement elle avait hâte. Elle reremplit la gamelle de Raymond,
son hérisson de compagnie et fila dans la cuisine pour prendre le petit déjeuner
avec sa maman. Ponpon avait une cuisine avec un contoir, en mode la cuisine et
le salon c'est la même pièce comme dans BoJack. Ponpon au petit déjeuner elle
prenait des pop tarts au réglisse avec un grand verre de jus d'orange pour un
max de vitamines. "Alors Ponpon, prête pour cette rentrée ?" demanda sa mère.
"Oui maman !" repondit Ponpon en levant les bras au ciel. Elle reprit une
posture normale, tapa un cros dans sa pop tart et commença à yap à propos de
l'université. Sa mère qui étonnamment arrivait à suivre le ramble de Ponpon, ce
qui pour quelconque mortel est un exercice éprouvant.

+

Ponpon vit quelque chose passer à travers la fenêtre derrière sa mère. C'était
le bus pour l'uni omg ! Ponpon poussa un cri de terreur et se précipita vers
son sac à dos qui était en fait un sac à dos grenouille. Puis elle se rua vers
la porte avant de sortir en faisant des grands gêstes au conducteur du bus qui
heureusement l'avait vu et s'arrêta. Elle entra dans le bus et s'assit à la
première place de libre qu'elle vit en posant son sac à dos sur ses genoux.
"Sympa ton sac." lui dit la fille à côté d'elle. "Merci !" répondit Ponpon.
"Toi aussi tu vas au lycée Jean-Jacobin ?" demanda cette dernière à la fille
inconue. "Oui. J'ai vraiment hâte ! Même si je suis un peu stressée."
repondit-t-elle. "Oh ? Stressé ? Pourquoi ?" demanda Ponpon n'ayant pas l'air
de connaitre la notion de stress. "Et bien, je suis toujours stressée quand je
découvre un nouvelle établissement que je ne connais pas. Le fait de rencontrer
de nouvelles personnes, tout ça." répondit la fille à côté de Ponpon. "Tu
stresses de rencontrer des gens ? Pourtant c'est toi qui a commencé à me
parler." indiqua Ponpon. "Oui, c'est plus facile pour moi de parler avec qu'une
seule personne." répondit la jeune fille. "Oui je vois." dit Ponpon les mains
derrières la tête regardant en face d'elle, puis elle dit "Oh et en fait, moi
c'est Ponpon, et toi c'est comment ?". "Ponpon ?" se demanda la jeune fille
étonnée par ce prénom bien peu commun qu'est celui de notre personnage
principal. Elle reprit ses ésprits et répondit "Heuu... Oui, pardon ! Moi c'est
Julie.". "Peut-être qu'on sera dans la même classe Julie !" dit Ponpon. "Oui
j'espère !" répondit Julie. "Ponpon ? C'est pas... l'univerté !" s'écria Julie
en pointant du doigt par la fenêtre. "Ahhhhh ! Si si si si si !" s'excalama
Ponpon en allant regarder l'université s'éloigner par la fenêtre à l'opposé de
là où elles étaient assisies malgré qu'il y avait des gens assis devant la
fenêtre. "Ehhhhhh... C'est pas grave." dit Ponpon avant de retourner s'assoire à
sa place. Ponpon avait l'air de s'être remise rapidement du fait d'avoir loupé
l'arrêt. Julie cependant était tétanisée. Ponpon passa sa main devant son visage
en esperant une réponse de sa part "Julie ?". Devant l'absence de réponse, elle
n'insista pas. Julie se reveilla d'un coup et agrippa la manche de Ponpon et
secoua Ponpon en s'écriant "Ahhhh ! On a raté l'arrêt !". "Ehhhh !" dit Ponpon
pendant que Julie raconte pourquoi le fait d'avoir raté l'arrêt c'est super
grave et qu'à cause de ça elle va être renvoyée et elle aura pas son diplôme et
elle va finir poubelleuse. "Juliiie ! Arrête de me secoueeer !" dit Ponpon.
Julie s'arrêta immédiatement et s'excusa "Pardon ! Pardon !". "Julie tu vas pas
finir poubelleuse t'inquiètes paaas." dit Ponpon en essayant de se remettre de
cette secousse intense dignue de La Vienne Dynamique, l'attraction du
Futuroscope là. "Oui ! Tu as raison ! On a juste à s'arrêter au prochain
arrêt !" dit Julie. "Oui, t'as tout compris !" dit Ponpon en tenant Julie par
les épaules. "Sinon j't'ai parlé de mon hérisson Raymond ?" dit Ponpon.

+

Julie et Ponpon arrivèrent éssoufflées devant l'université. "J'arrive pas... à
croire... qu'on a loupé l'arrêt... deux fois !" dit Julie à bout de souffle.
"Je suis désolééee... ! Quand je commence... à parler... de Raymond... je
m'arrête plus !" répondit Ponpon. Elles entrèrent dans l'université (un peu en
retard on va pas se mentir) et se présentèrent à l'accueil. "Bonjouuur !" dit
Ponpon à la dame de l'accueil qui avait l'air d'être à peine plus âgée que
Ponpon et Julie. "Bonjour les filles, comment je peux vous aider ?"
demanda-t-elle. "Heu... Oui ! C'est la rentrée pour nous, on ne sait pas trop
où aller." répondit Ponpon. "Vous êtes en retard faudra vous dépêcher ! Vous
allez là où y a les panneaux au mur là bas et vous cherchez votre classe." dit
la dame de l'accueil en pointant les panneaux en question du doigt. Les filles
courrurent vers les panneaux en pensant bien à remercier la dame de l'accueil
et commencèrent à chercher leurs noms. "Julie... Julie... Julie Landré !
Trouvé !" dit Julie. "Oh ! Est-ce que je suis dans ta classe ?" demanda Ponpon.
Julie chercha et répondit "Heuu... Nan on dirait pas". "Ehhhh... On pourra
toujours se voir pendant les pauses !". "Oui !" répondit Julie. Ponpon continua
de chercher son nom, avant d'arriver au bout de tout les panneaux. "Tu
trouves ?" demanda Julie. "Attends, attends ! Je dois l'avoir loupé." répondit
Ponpon avant de recommencer sa recherche depuis le début. Julie demanda à Ponpon
"Tu t'es bien inscrite ?". Ponpon baissa la tête et se remémora toutes les fois
où sa mère lui a dit de bien penser à s'inscrire telles des souvenirs de guerre.
"Tu as bien pensé à t'inscrire pour l'université Ponpon ?" lui avait dit sa
mère. "Je le ferais demain !" avait-t-elle alors répondu alors qu'elle jouait
avec Raymond le hérisson. "Oublie pas de t'inscrire pour l'uni Ponpon." lui
avait dit sa mère à nouveau plus tard dans la semaine. "Oui oui ! Demain
demain !" avait répondu Ponpon alors qu'elle était en train de maxi gamer sur
Fractal Block World. Ou encore cette fois où sa mère lui avait encore une fois
rappelé pendant qu'elle essayait de grimper à l'arbre du jardin pour aller
caresser Splooinky le chat du voisin. Ponpon se dématérialisa de l'espace et du
temps et réapparu alongée au sol. "Julie... J'ai oublié de m'inscrire..." dit
Ponpon dans un état second comme si elle avait vu un fantôme et qu'elle était
paralysée. "Quoiiii ?!" s'exclama Julie. "Mais tu vas faire comment ?" demanda
Julie à Ponpon qui était toujours au sol et qui n'avait l'air d'être présente
que physiquement, pour pas dire qu'elle était chockbar. "Ahhh !" Julie se
rappela qu'elle était en retard et qu'elle devait aller en classe. "Désolée,
désolée, désolée ! Je dois aller en classe !" dit Julie. Elle sortie un stylo
de son sac et écrivit sur la main de Ponpon. "Tiens ça c'est mon Skype. On se
voit ce soir si tu veux !" dit elle avant de partir en courant vers sa classe.
"A plus tard Ponpon !" dit Julie en faisant bye bye avec sa main à Ponpon.
Ponpon, toujours au sol. Elle ne bougeait pas. Elle a oublié de s'inscire quoi.
Alors que sa mère a fait que lui répéter. Elle est pas très smart la fille quand
même. "Hein ?!". Heuu... fin de chapitre ! "Ehhh ! Atten-".
\ No newline at end of file diff --git a/src/app/views/books/le-monde-de-ponpon/chapter-1.zig b/src/app/views/books/le-monde-de-ponpon/chapter-1.zig new file mode 100644 index 0000000..84c5f44 --- /dev/null +++ b/src/app/views/books/le-monde-de-ponpon/chapter-1.zig @@ -0,0 +1,8 @@ +const std = @import("std"); +const jetzig = @import("jetzig"); + +pub const layout = "main"; + +pub fn index(request: *jetzig.Request, _: *jetzig.Data) !jetzig.View { + return request.render(.ok); +} diff --git a/src/app/views/books/le-monde-de-ponpon/chapter-1/content.md b/src/app/views/books/le-monde-de-ponpon/chapter-1/content.md new file mode 100644 index 0000000..8ae559c --- /dev/null +++ b/src/app/views/books/le-monde-de-ponpon/chapter-1/content.md @@ -0,0 +1,184 @@ +## Chapitre 1: Pattes de hérisson. + +— Ahhh, s'écria Ponpon devant l'arbre de son jardin. +Sa mère sortie de la maison paniquée et rejoignit Ponpon devant l'arbre. +— Qu'est-ce qu'il y a Ponpon ?! +— C'est Raymond ! Il est encore grimpé dans l'arbre ! +— Encore ! Faudra vraiment que tu me dises comment il fait Ponpon. +— Maiiis j'te l'ai diiit ! C'est avec ses pattes de hérisson là ! + +Voyant que sa mère n'avait pas l'air convaincue, Ponpon essaya de détourner le +sujet de comment Raymond s'était retrouvé dans l'arbre en rappelant l'urgence de +la situation. +— Maman, maman ! Faut sauver Raymonnnd ! +La mère de Ponpon prit un instant pour réfléchir. +— Oh je sais, dit la mère de Ponpon avant de partir vers le garage et de +revenir avec un filet à papillon. On va l'attraper avec ça ! +— Un filet à papillon ? +— Mhm ! +La mère de Ponpon posa le filet sur Raymond et l'attrapa sous le regard faciné +de Ponpon avant de le poser dans l'herbe. +— Raymonnnd ! +— Ca m'a donné faim tout ça, pas toi Ponpon ? +— Si ! +Ponpon et sa mère (et Raymond aussi !) rentrairent manger. + +Ponpon remplit la gamelle de Raymond et installa la table pendant que sa mère +faisait réchauffer le reste d'hier soir. +— Tu me passes ton bol Ponpon ? +— Tout de suite, répondit Ponpon avant de tendre son bol à sa mère. +Cette dernière remplit le bol de Ponpon de soupe à l'oignon avant de se servir +un bol à son tour et de venir s'installer à table. +— Alors Ponpon, tu te sens comment pour cette rentrée ? +— J'ai trop hâte ! +Et oui ! Parce que cette aprèm c'était la rentrée pour Ponpon, elle faisait sa +première année en études d'art dans l'université de sa ville, l'université +Jean-Jacobin. Mais laissons Ponpon en dire plus à ce sujet. +— [...] et là y a une météorite qui tombe *prouachh* et y avait l'autre qui +laiçait un laser ! + +Hmm... il n'aura fallu que de quelque secondes à Ponpon pour commencer à +divaguer et que la conversation devienne incompréhensible. Et si on parlait de +Raymond, l'ami à pique de Ponpon. Peut-être qu'après cela la conversation va se +dénouer et on pourra suivre à nouveau ce qu'il ce dit. + +J'vous explique, Raymond c'est un giga squatteur. Ponpon elle a un composte vous +voyez, et du coup Raymond, ce gros gourmand il vennait se délécter de toutes les +bonnes choses que le composte avait à apporter. + +Puis un jour Ponpon en allant vider le composte, elle vit Raymond. Elle le prit +dans ses mains et dit "Toi je vais t'appeller Raymond !". Elle lui avait donné +un nom random qu'elle trouvait drôle juste parce que ça rimait. Depuis, Raymond +vivait chez Ponpon rent free. + +Oh ? Ponpon s'est levée en regardant frénétiquement par la fenêtre avec les +mains sur la tête. Ok, retourons un peu en arrière voir ce qui se passe. + +— [...] et là y a une météorite qui tombe *prouachh* et y avait l'autre qui +laiçait un laser ! +— Et t'as réussi à t'en sortir ? +— Oui mais c'était moins une ! +Ponpon vit passer quelque chose par la fenêtre derrière sa mère. C'était le bus +pour l'université ! +— Ahhhh, cria Ponpon. Le bus pour l'uni, dit-t-elle avant de se précipiter vers +son sac à dos grenouille qu'elle n'a pas changé depuis la primaire. + +— A ce soir maman, dit Ponpon avant de se ruer vers la porte et sortir en faisant +des grands gêstes au conducteur du bus. +Heureuseument, ce dernier vit Ponpon et s'arrêta. Elle entra dans le bus et +s'assit à la première place qu'elle vit et posa son sac sur ses genoux. + +— J'aime bien ton sac, dit la fille assise à côté de Ponpon sur un ton très +calme. +— Merci ! Toi aussi tu vas à Jean-Jacobin ? +— Mhm, dit la fille inconnue en hochant la tête. Elle baissa les yeux et regarda +le sac de Ponpon et dit, Ponpon ? +— Ahhhh ! Comment tu saiiiis ?! Tu lis dans les pensées ou quoi ? +— Je lisais juste ce qu'il y avait écrit sur ton sac, dit la fille inconnue en +pointant du doigt l'endroit en question. +— Ahh ! Oui oui oui, dit Ponpon une main derrière la tête. Ca se prononce ponne +ponne. Et toi c'est comment ? +— Moi c'est Julie. +— Peut-être qu'on sera dans la même classe Julie ! +— Mhm. +Julie sortie un bouquin de son sac et commença à lire. +— Oh ? Tu lis quoi, demanda Ponpon. +— *Zurich International Chess Tournament, 1953* +— Et ça parle de quoi ? +Ponpon se pencha sur le bouquin pour essayer d'en savoir un peu plus, mais ce +vit que des arrangement de lettres et de chiffres incompréhenssible, c6, Nc6, +xg4, Rxg4. +— Ca parle du plus grand tournoi d'échecs de tout les temps. +— D'échecs, se demanda Ponpon intriguée. Ponpon connaissait l'existe des échecs +mais n'en savait pas plus que ça sur ce sujet. +— Mhm. +— Et heu ça consiste en quoi ? +Julie ferma son bonquin et forma un arc-en-ciel avec ses mains +— Les échecs c'est une grande bataille, entre toi et ton adversaire. Où le but +est d'établir des stratégies pour gagner. +Julie sembla d'un coup intriguée par ce qu'il y avait derrière la fenêtre qui se +trouvait à l'opposé, derrière Ponpon. +— Owa ! Comme dans *Fractal Block World* ! L'autre fois j'étais dans la fleur +noire et y avait au moins [...] +— Ponpon, dit Julie pendant que Ponpon parlait de *Fractal Block World*. +— [...] 14 rats mineurs qui m'ont attaqués ! +— Ponpon. +— J'en avait jamais- huh, Ponpon s'arrêta. +— C'est pas l'université là bas, dit Julie en pointant du doigt l'université qui +s'éloignait par la fenêtre. +— Ahhhh ! Si si si, s'écria Ponpon avant de se précipiter vers la fenêtre en +question malgré la présence de gens et de regarder l'université s'égloigner. +Julie regardait Ponpon de loin, toujours assise à sa place avant que Ponpon +revienne s'assoir elle aussi. +— Pas grave ! On aura le prochain arrêt, dit Ponpon, oh Julie ! Je t'ai parlé +de Raymond ? + +Julie et Ponpon arrivèrent éssoufflées devant l'université. C'est la phrase que +j'aurais dit si Julie était éssoufflée elle aussi. La phrase correcte serait +plutôt que Ponpon est arrivée éssoufflée devant l'université, avec Julie +parfaitement en forme à ses côtés, trônant sur son overboard. + +Julie descendit de son hoverboard, le pliât et le rangea dans son sac avant de +se diriger vers l'université. Elle s'arrêta et se tourna vers Ponpon. +— Tu viens Ponpon, demanda Julie à Ponpon toujours essoufflée. +— J'ar... rive ! J'arrive, dit Ponpon avant de rejoindre Julie. +Julie et Ponpon se dirigeairent vers l'université. +— Deux fois... On a ratté l'arrêt deux fois..., dit Ponpon. +— Mhm. +Ponpon se tourna vers Julie et mit ses mains l'une contre l'autre en baissant la +tête. +— Désolée de t'avoir mise en retard, elle releva la tête et continua, quand je +parle de Raymond je ne peux plus m'arrêter ! +— T'inquiètes pas Ponpon, on est arrivées maintenant. +— Alors, tu m'en veux pas ? +— T'en vouloir ? J'ai passé un bon moment, c'est ce qui compte pour moi, dit +Julie avant de se retourner vers l'université et de continuer sa marche tel la +chad qu'elle est. +— Un bon moment ? Ca veut dire qu'on est amies, pensa Ponpon à voix haute avant +de se précipiter faire un câlin surpise à Julie. + +Ponpon et Julie entrèrent dans l'université. Devant elles, une jeune femme à +peine plus âgée qu'elles se tenait à l'accueil. +— Bonjour, dit la jeune femme avant de remarquer les sac dans le dos de +Ponpon et Julie, oh ? Vous êtes étudiantes ?". +— Oui, répondit Ponpon avec beaucoup d'entrain. +— Vous êtes en retard ! Dépêchez vous ! Allez chercher votre prénoms sur les +panneaux là bas pour savoir dans quelle classe vous êtes, dit la femme de +l'accueil en pointant les panneaux en question du doigt. +— Oh, d'accord ! Merci, dit Ponpon en se précipitant vers les panneaux +accompagnée de Julie. + +Elles commencèrent à chercher leur noms sur les panneaux. +— Trouvé, dit Julie à peine arrivée devant les panneaux. +— Déjà ?!, répondit Ponpon choquée. +— Mhm. +— Mais... Comment ?! +— Les prénoms sont rangés par ordre alphabétique. +— Je... oui. Ca fait sens, dit Ponpon une main sur le menton. Oh, on est dans +la même classe ? +Julie chercha dans les prénoms de sa classe. +— Heuu... nan on dirait pas. +— Ehhh... pas grave ! On pourra toujours se voir pendant les pauses ! +— Mhm. + +Ponpon continua de chercher son prénom parmis les panneaux avant d'arriver au +bout du dernier panneau. Julie regarda Ponpon intriguée. +— Attends, attends ! Je dois l'avoir loupé; dit Ponpon avant de recommencer sa +recherche depuis le début. +— Tu t'es bien inscrite ? + +Ponpon baissa la tête, la phrase de Julie resonnant dans sa tête, pendant +qu'elle se rememorait toute les fois où sa mère lui a dit de s'inscrire tels des +souvenirs de guerre. "Tu as bien pensé à t'inscrire pour l'université Ponpon ?" +lui avait dit sa mère. "Je le ferais demain !" avait-t-elle dit alors qu'elle +était dans le jardin avec Raymond le hérisson. "Oublie pas de t'inscrire pour +l'uni Ponpon." lui avait à nouveau dit sa mère. "Oui oui ! Demain !" avait +elle à nouveau répondue alors qu'elle jouait à *Fractal Block World*. + +Ponpon se dématerialisa de l'espace et du temps et réapparu allongée au sol. +Julie regarda Ponpon. "Ca va ?" demanda-t-elle. Ponpon ne répondit pas, elle +été comme paralysée. Julie passa sa main devant son visage avant de se rappeler +qu'elle était en retard en regardant vers les escaliers. "Je dois y aller +Ponpon." dit Julie. Elle sortie un feutre noir de son sac et écrivit sur la main +de Ponpon. "Tiens ça c'est mon Skype. On se voit ce soir si tu veux." dit Julie +avant de partir rejoindre sa classe. diff --git a/src/app/views/books/le-monde-de-ponpon/chapter-1/index.zmpl b/src/app/views/books/le-monde-de-ponpon/chapter-1/index.zmpl new file mode 100644 index 0000000..d6388d0 --- /dev/null +++ b/src/app/views/books/le-monde-de-ponpon/chapter-1/index.zmpl @@ -0,0 +1,19 @@ +

Chapitre 1: Pattes de hérisson.

+ +

— Ahhh, s'écria Ponpon devant l'arbre de son jardin.
Sa mère sortie de la maison paniquée et rejoignit Ponpon devant l'arbre.
— Qu'est-ce qu'il y a Ponpon ?!
— C'est Raymond ! Il est encore grimpé dans l'arbre !
— Encore ! Faudra vraiment que tu me dises comment il fait Ponpon.
— Maiiis j'te l'ai diiit ! C'est avec ses pattes de hérisson là !

+

Voyant que sa mère n'avait pas l'air convaincue, Ponpon essaya de détourner le
sujet de comment Raymond s'était retrouvé dans l'arbre en rappelant l'urgence de
la situation.
— Maman, maman ! Faut sauver Raymonnnd !
La mère de Ponpon prit un instant pour réfléchir.
— Oh je sais, dit la mère de Ponpon avant de partir vers le garage et de
revenir avec un filet à papillon. On va l'attraper avec ça !
— Un filet à papillon ?
— Mhm !
La mère de Ponpon posa le filet sur Raymond et l'attrapa sous le regard faciné
de Ponpon avant de le poser dans l'herbe.
— Raymonnnd !
— Ca m'a donné faim tout ça, pas toi Ponpon ?
— Si !
Ponpon et sa mère (et Raymond aussi !) rentrairent manger.

+

Ponpon remplit la gamelle de Raymond et installa la table pendant que sa mère
faisait réchauffer le reste d'hier soir.
— Tu me passes ton bol Ponpon ?
— Tout de suite, répondit Ponpon avant de tendre son bol à sa mère.
Cette dernière remplit le bol de Ponpon de soupe à l'oignon avant de se servir
un bol à son tour et de venir s'installer à table.
— Alors Ponpon, tu te sens comment pour cette rentrée ?
— J'ai trop hâte !
Et oui ! Parce que cette aprèm c'était la rentrée pour Ponpon, elle faisait sa
première année en études d'art dans l'université de sa ville, l'université
Jean-Jacobin. Mais laissons Ponpon en dire plus à ce sujet.
— [...] et là y a une météorite qui tombe *prouachh* et y avait l'autre qui
laiçait un laser !

+

Hmm... il n'aura fallu que de quelque secondes à Ponpon pour commencer à
divaguer et que la conversation devienne incompréhensible. Et si on parlait de
Raymond, l'ami à pique de Ponpon. Peut-être qu'après cela la conversation va se
dénouer et on pourra suivre à nouveau ce qu'il ce dit.

+

J'vous explique, Raymond c'est un giga squatteur. Ponpon elle a un composte vous
voyez, et du coup Raymond, ce gros gourmand il vennait se délécter de toutes les
bonnes choses que le composte avait à apporter.

+

Puis un jour Ponpon en allant vider le composte, elle vit Raymond. Elle le prit
dans ses mains et dit "Toi je vais t'appeller Raymond !". Elle lui avait donné
un nom random qu'elle trouvait drôle juste parce que ça rimait. Depuis, Raymond
vivait chez Ponpon rent free.

+

Oh ? Ponpon s'est levée en regardant frénétiquement par la fenêtre avec les
mains sur la tête. Ok, retourons un peu en arrière voir ce qui se passe.

+

— [...] et là y a une météorite qui tombe *prouachh* et y avait l'autre qui
laiçait un laser !
— Et t'as réussi à t'en sortir ?
— Oui mais c'était moins une !
Ponpon vit passer quelque chose par la fenêtre derrière sa mère. C'était le bus
pour l'université !
— Ahhhh, cria Ponpon. Le bus pour l'uni, dit-t-elle avant de se précipiter vers
son sac à dos grenouille qu'elle n'a pas changé depuis la primaire.

+

— A ce soir maman, dit Ponpon avant de se ruer vers la porte et sortir en faisant
des grands gêstes au conducteur du bus.
Heureuseument, ce dernier vit Ponpon et s'arrêta. Elle entra dans le bus et
s'assit à la première place qu'elle vit et posa son sac sur ses genoux.

+

— J'aime bien ton sac, dit la fille assise à côté de Ponpon sur un ton très
calme.
— Merci ! Toi aussi tu vas à Jean-Jacobin ?
— Mhm, dit la fille inconnue en hochant la tête. Elle baissa les yeux et regarda
le sac de Ponpon et dit, Ponpon ?
— Ahhhh ! Comment tu saiiiis ?! Tu lis dans les pensées ou quoi ?
— Je lisais juste ce qu'il y avait écrit sur ton sac, dit la fille inconnue en
pointant du doigt l'endroit en question.
— Ahh ! Oui oui oui, dit Ponpon une main derrière la tête. Ca se prononce ponne
ponne. Et toi c'est comment ?
— Moi c'est Julie.
— Peut-être qu'on sera dans la même classe Julie !
— Mhm.
Julie sortie un bouquin de son sac et commença à lire.
— Oh ? Tu lis quoi, demanda Ponpon.
— *Zurich International Chess Tournament, 1953*
— Et ça parle de quoi ?
Ponpon se pencha sur le bouquin pour essayer d'en savoir un peu plus, mais ce
vit que des arrangement de lettres et de chiffres incompréhenssible, c6, Nc6,
xg4, Rxg4.
— Ca parle du plus grand tournoi d'échecs de tout les temps.
— D'échecs, se demanda Ponpon intriguée. Ponpon connaissait l'existe des échecs
mais n'en savait pas plus que ça sur ce sujet.
— Mhm.
— Et heu ça consiste en quoi ?
Julie ferma son bonquin et forma un arc-en-ciel avec ses mains
— Les échecs c'est une grande bataille, entre toi et ton adversaire. Où le but
est d'établir des stratégies pour gagner.
Julie sembla d'un coup intriguée par ce qu'il y avait derrière la fenêtre qui se
trouvait à l'opposé, derrière Ponpon.
— Owa ! Comme dans *Fractal Block World* ! L'autre fois j'étais dans la fleur
noire et y avait au moins [...]
— Ponpon, dit Julie pendant que Ponpon parlait de *Fractal Block World*.
— [...] 14 rats mineurs qui m'ont attaqués !
— Ponpon.
— J'en avait jamais- huh, Ponpon s'arrêta.
— C'est pas l'université là bas, dit Julie en pointant du doigt l'université qui
s'éloignait par la fenêtre.
— Ahhhh ! Si si si, s'écria Ponpon avant de se précipiter vers la fenêtre en
question malgré la présence de gens et de regarder l'université s'égloigner.
Julie regardait Ponpon de loin, toujours assise à sa place avant que Ponpon
revienne s'assoir elle aussi.
— Pas grave ! On aura le prochain arrêt, dit Ponpon, oh Julie ! Je t'ai parlé
de Raymond ?

+

Julie et Ponpon arrivèrent éssoufflées devant l'université. C'est la phrase que
j'aurais dit si Julie était éssoufflée elle aussi. La phrase correcte serait
plutôt que Ponpon est arrivée éssoufflée devant l'université, avec Julie
parfaitement en forme à ses côtés, trônant sur son overboard.

+

Julie descendit de son hoverboard, le pliât et le rangea dans son sac avant de
se diriger vers l'université. Elle s'arrêta et se tourna vers Ponpon.
— Tu viens Ponpon, demanda Julie à Ponpon toujours essoufflée.
— J'ar... rive ! J'arrive, dit Ponpon avant de rejoindre Julie.
Julie et Ponpon se dirigeairent vers l'université.
— Deux fois... On a ratté l'arrêt deux fois..., dit Ponpon.
— Mhm.
Ponpon se tourna vers Julie et mit ses mains l'une contre l'autre en baissant la
tête.
— Désolée de t'avoir mise en retard, elle releva la tête et continua, quand je
parle de Raymond je ne peux plus m'arrêter !
— T'inquiètes pas Ponpon, on est arrivées maintenant.
— Alors, tu m'en veux pas ?
— T'en vouloir ? J'ai passé un bon moment, c'est ce qui compte pour moi, dit
Julie avant de se retourner vers l'université et de continuer sa marche tel la
chad qu'elle est.
— Un bon moment ? Ca veut dire qu'on est amies, pensa Ponpon à voix haute avant
de se précipiter faire un câlin surpise à Julie.

+

Ponpon et Julie entrèrent dans l'université. Devant elles, une jeune femme à
peine plus âgée qu'elles se tenait à l'accueil.
— Bonjour, dit la jeune femme avant de remarquer les sac dans le dos de
Ponpon et Julie, oh ? Vous êtes étudiantes ?".
— Oui, répondit Ponpon avec beaucoup d'entrain.
— Vous êtes en retard ! Dépêchez vous ! Allez chercher votre prénoms sur les
panneaux là bas pour savoir dans quelle classe vous êtes, dit la femme de
l'accueil en pointant les panneaux en question du doigt.
— Oh, d'accord ! Merci, dit Ponpon en se précipitant vers les panneaux
accompagnée de Julie.

+

Elles commencèrent à chercher leur noms sur les panneaux.
— Trouvé, dit Julie à peine arrivée devant les panneaux.
— Déjà ?!, répondit Ponpon choquée.
— Mhm.
— Mais... Comment ?!
— Les prénoms sont rangés par ordre alphabétique.
— Je... oui. Ca fait sens, dit Ponpon une main sur le menton. Oh, on est dans
la même classe ?
Julie chercha dans les prénoms de sa classe.
— Heuu... nan on dirait pas.
— Ehhh... pas grave ! On pourra toujours se voir pendant les pauses !
— Mhm.

+

Ponpon continua de chercher son prénom parmis les panneaux avant d'arriver au
bout du dernier panneau. Julie regarda Ponpon intriguée.
— Attends, attends ! Je dois l'avoir loupé; dit Ponpon avant de recommencer sa
recherche depuis le début.
— Tu t'es bien inscrite ?

+

Ponpon baissa la tête, la phrase de Julie resonnant dans sa tête, pendant
qu'elle se rememorait toute les fois où sa mère lui a dit de s'inscrire tels des
souvenirs de guerre. "Tu as bien pensé à t'inscrire pour l'université Ponpon ?"
lui avait dit sa mère. "Je le ferais demain !" avait-t-elle dit alors qu'elle
était dans le jardin avec Raymond le hérisson. "Oublie pas de t'inscrire pour
l'uni Ponpon." lui avait à nouveau dit sa mère. "Oui oui ! Demain !" avait
elle à nouveau répondue alors qu'elle jouait à *Fractal Block World*.

+

Ponpon se dématerialisa de l'espace et du temps et réapparu allongée au sol.
Julie regarda Ponpon. "Ca va ?" demanda-t-elle. Ponpon ne répondit pas, elle
été comme paralysée. Julie passa sa main devant son visage avant de se rappeler
qu'elle était en retard en regardant vers les escaliers. "Je dois y aller
Ponpon." dit Julie. Elle sortie un feutre noir de son sac et écrivit sur la main
de Ponpon. "Tiens ça c'est mon Skype. On se voit ce soir si tu veux." dit Julie
avant de partir rejoindre sa classe.
\ No newline at end of file diff --git a/src/app/views/books/le-monde-de-ponpon/chapter-2.zig b/src/app/views/books/le-monde-de-ponpon/chapter-2.zig new file mode 100644 index 0000000..84c5f44 --- /dev/null +++ b/src/app/views/books/le-monde-de-ponpon/chapter-2.zig @@ -0,0 +1,8 @@ +const std = @import("std"); +const jetzig = @import("jetzig"); + +pub const layout = "main"; + +pub fn index(request: *jetzig.Request, _: *jetzig.Data) !jetzig.View { + return request.render(.ok); +} diff --git a/src/app/views/books/le-monde-de-ponpon/chapter-2/content.md b/src/app/views/books/le-monde-de-ponpon/chapter-2/content.md new file mode 100644 index 0000000..84235c4 --- /dev/null +++ b/src/app/views/books/le-monde-de-ponpon/chapter-2/content.md @@ -0,0 +1,188 @@ +## Chapitre 2: Omg des Crackeos ! + +Ponpon était sur son ordinateur, les volets fermés telle une véritable gameuse. +Elle jouait à son jeu favori, *Fractal Block World*. Elle fini sa canette de +*Monster* avant de la jeter dans un sac poubelle à côté de son bureau. Cette +dernière rentra à peine dans le sac. Ponpon comprit alors qu'il était temps de +déscendre ce sac pour laisser place au prochain. En passant la porte elle passa +à côté de Raymond qui été devenu grassouillet du fait que Ponpon laissait le +paquet de croquette à sa disposition H24. J'vous l'avais dit que c'était un +gros gourmand. + +En sortant de sa chambre, Ponpon reçut une notif Facebook, ce qu'elle n'avait +pas l'air d'avoir remarqué. + +Elle descendit, le sac poubelle à la main et sortie le mettre dans la cours. +Elle vit une personne au loin, un visage famillier ? Ponpon plissait les yeux. +"Omg ce Julie !" se dit Ponpon dans sa tête. +— Julie ? T'habites dans le coin, demanda Ponpon intriguée. +— Mhm. J'habite un peu plus loin dans le quartier. +— Tu vas quelque part ? +— Oui. Je vais à mon club d'échecs. +— Oh je vois. T'y vas souvent ? Je t'ai jamais vu passer par ici. +— Oui. Tout les weekends. Tu m'as jamais vu passer ? Pourtant je passes tout le +temps par ici. +Ponpon se rappela que ça faisait maintenant un mois qu'elle ne sortait pas et +qu'elle vivait dans sa chambre les volets fermés. +— Ah ah, oui je vois eheh." dit Ponpon une main derrière la tête "Et bien +heuu... amuses toi bien ! +— Merci. + +Julie reprit sa route sous le regard de Ponpon puis s'arrêta et se tourna vers +Ponpon. +— Tu veux venir, demanda-t-elle. +— Venir ? Au club d'échecs ? +— Mhm. +— Heuu... je sais pas. Tu sais j'y connais rien moi aux échecs. +— Comme tu veux. +Julie repris sa route. Ponpon prit le temps de réfléchir. Elle se dit que +peut-être ça serait bien de sortir pour une fois. Elle pourra toujours jouer à +Fractal Block World plus tard. +— Julie. +Julie se tourna vers Ponpon. +— Hm ? +— Je veux bien venir finalement ! +— D'accord, dit Julie en hochant légèrement la tête. +Ponpon rejoignit Julie et ensemble elles allèrent au club d'echecs. La mère de +Ponpon fit un sourir bienveillant en observant la scène par la fenêtre. + +La marche fut d'abord silencieuse, puis Ponpon engagea la conversation. +— Heuu... Alors, vous apprenez quoi en cours ? +— Hm. On dessine beaucoup en ce moment. Là on apprend la perspective. +— Oh ok je vois, dit Ponpon regardeant un peu ailleurs. +Le silence revint un instant et cette fois ci Julie fut celle qui le brisa. +— Et toi Ponpon. Tu fais quoi de tes journées ? +— Heu moi ? Moi je... je heu. +— Hm ? +— Je joue à Fractal Block World." répondit-t-elle en baissant la tête. +— Intéressant. +— Intéressant ? Comment ça ? +— Ce niveau de dévotion que tu as pour ce jeu. Je trouve ça... intéressant. +— Ah ? Je l'ai jamais vu comme ça. +— Mhm. +Ponpon réfléchit à ce que Julie avait dit. + +Une fois arrivées, Ponpon lu le nom de l'enseigne à voix haute. +— Chez... Chek &... Matt ? C'est ici ? +— Mhm. +— Oh. Ok. + +Julie et Ponpon rentrèrent dans le club d'échecs. Ponpon qui était d'habitude à +l'aise en toute circonstances était là très calme. Il faut dire que le club +était lui même très calme. + +Julie s'installa à une table pendant que Ponpon observait les parties des gens +autour d'elle. +— Tu viens Ponpon ? +— Ah heu oui ! J'arrive, dit Ponpon avant de s'installer à la table à son tour. + +Ponpon regarda le plateau en plissant les yeux l'air perdu. +— Tu ne connais pas du tout les règles ? +— Heu... Nan. +Julie posa son doigt sur un pion et commença à expliquer les règles du jeu. +— Ca c'est le pion, il avance d'une case à part en début de partie où il peut +avancer de deux cases. +— Uhu, dit Ponpon le regard toujours rivé sur le plateau mais les pensées +ailleurs. + +Ponpon avait un peu faim. Elle commença à se demander si elle avait pris son +goûter. Oui elle en était sûre, elle avait prit son goûter, car pour Ponpon le +goûter c'est sacré. Mais qu'avait t'elle bien pu prendre se demanda-t-elle. Elle +commença à réfléchir, une main sur le menton toujours en fixant le plateau +d'échecs. Ah oui se souvint-t-elle. Elle avait pris des chips à la crevettes. + +— Et enfin, ça c'est la reine, elle peut se déplacer comme la tour et le fou. +Tu as des questions ? +— Huh ? +Ponpon se souvint qu'elle était actuellement dans un club d'échecs en face de +Julie qui lui expliquait les règles des échècs. +— T'avais l'air très concentrée sur le plateau. Tu réfléchissais déjà à des +stratégies ? +— Des stratégies ? Ah nan je me demandais juste si j'avais pris mon gouter +aujourd'hui eheh. +— Et alors ? +— Alors ? Alors quoi, se demanda Ponpon l'air surprise. +— Tu as pris ton goûter ? +— "Ahhh ! Oui oui je l'ai pris. Mais j'avoue que j'ai encore un peu faim. +— Il y a une épicerie à côté, on peut y aller si tu veux. +— Heu... le ventre de Ponpon fit un maxi boucan. Oui je veux bien. + +Ponpon et Julie se levèrent de la table avant de sortir de Chez Chek & Matt et +de se rendre en direction de l'épicerie. Arrivées devant le rayon goûter, elles +chercherent la perle rare. +— Omg des *Crackeo*s, s'éxclama Ponpon. +— Hm ? +Julie n'avait pas l'air de comprendre l'engoument de Ponpon. Ponpon agripa +Julie par les épaules. +— C'est le goûter ultime Julie ! Une harmonie parfaite entre le biscuit et la +crème ! +Julie resta sans réponse, n'ayant pas l'air de coire en l'existence d'un gouter +ultime. +— Tu verras Julie ! Fais moi confiance ! + +Après avoir fait la propaganda des *Crackeo*s, Ponpon passa à la caisse +acompagnée de Julie avant de sortir, leur goûter en main, et de s'installer sur +un banc à proximité. Ponpon ouvrit le paquet et tendit un biscuit à Julie. +— Tiens. +Ponpon fixa Julie pour ne pas perdre une miette de la réaction de Julie à son +premier *Crackeo*. + +Julie croqua dans le cracks et ses yeux s'illuminèrent sans pour autant laisser +paraître d'émotion. Julie se tourna vers Ponpon. +— En effet c'est... Julie fixa le biscuit avant de se tourner vers Ponpon. Très +bon. +— J'te l'avais dit ! + +Ponpon vit un chat gris sortir au coin de la rue. +— Le chat ! Le chat ! +Mais une fois que Ponpon se leva pour essayer de l'approcher, il rebroussa +chemin, ce qui ne découragea pas Ponpon qui partie à sa recherche. Quand elle +arriva à l'intersetion, elle tourna la tête et fit surprise par l'absence de +chat. Elle regarda à gauche et à droite, mais peu importe où son regard se +portait, aucun chat en vue. Julie rejoignit Ponpon avec un pas beaucoup plus +calme, contrairement à Ponpon qui elle avait sprinté. +— Julie, y avait bien un chat ? +— Heu pour être honnête, je n'ai pas fait attention. +— Oh, bizzare. +Ponpon marqua un temps d'arrêt. +— Tu veux retourner faire des échecs ? +Julie regarda l'heure sur son téléphone. +— J'aimerais beaucoup mais demain c'est l'anniversaire de mon petit frère et je +dois aider maman pour la décoration. +— Oh d'accord je vois ! Une prochaine fois peut-être ! +— Oui. +— Bon weekend Julie ! Oh et garde les *Crakeo*s, je te les laisse, dit Ponpon +avant de prendre le chemin vers sa maison. +Julie regarda le paquet de *Crakeo*s. +— Merci. Bon weekend Ponpon. + +Ponpon rentra chez elle et enleva ses chaussures dans l'entrée avant de +rejoindre sa mère qui sculptait de l'argile dans le salon. Ponpon se mit +derrière l'épaule de sa mère les mains derrière le dos. +— Tu scupltes quoi ? +— Je sculpte un chat. Pour l'ajouter à ma collection, la mère de Ponpon pointa +la collection en question qui se trouvait à l'autre bout de la pièce. +— Ohhh. Ponpon pris un temps avant sa prochaine phrase. En parlant de chat. J'ai +vu un chat aujourd'hui. J'ai essayé de le poursuivre mais il a disparu, dit +Ponpon un peu deçue. +— Un chat comme ça, demanda la mère de Ponpon en parlant de sa sculpture. +— Oui ! Il était gris aussi. +— Hm... la mère de Ponpon posa une main sur son menton avant de reprendre sa +sculpture. Il me semble que les voisins ont un chat gris aisso. C'est peut-être +lui. +— Tu penses ? C'est la première fois que je le vois. +La mère de Ponpon se tourna vers Ponpon. +— En même temps on ne peut pas dire que tu sortes beaucoup, dit-t-elle en +souriant. +— Oui c'est vrai ehehn, répondit Ponpon. Oh ! Faut que j'aille nourir Raymond le +hérisson ! + +Ponpon courut dans les escaliers avant d'arriver dans sa chambre. Puis elle se +mit devant une couverture qu'elle avait disposait au sol, autrement dit, le spot +préféré de Raymond qui passait sa vie ici. Ponpon vit Raymond rassasié, en train +de dormir sur sa couverture. +— J'avais oublié que t'avais accès au croquettes quand tu voulais toi. + +Ponpon tourna la tête vers l'écran de son ordinateur et remarqua une mention +Facebook, chose qui n'arrive jamais. Elle s'assit à sa chaise de bureau et +cliqua sur la notification. diff --git a/src/app/views/books/le-monde-de-ponpon/chapter-2/index.zmpl b/src/app/views/books/le-monde-de-ponpon/chapter-2/index.zmpl new file mode 100644 index 0000000..4438abf --- /dev/null +++ b/src/app/views/books/le-monde-de-ponpon/chapter-2/index.zmpl @@ -0,0 +1,20 @@ +

Chapitre 2: Omg des Crackeos !

+ +

Ponpon était sur son ordinateur, les volets fermés telle une véritable gameuse.
Elle jouait à son jeu favori, *Fractal Block World*. Elle fini sa canette de
*Monster* avant de la jeter dans un sac poubelle à côté de son bureau. Cette
dernière rentra à peine dans le sac. Ponpon comprit alors qu'il était temps de
déscendre ce sac pour laisser place au prochain. En passant la porte elle passa
à côté de Raymond qui été devenu grassouillet du fait que Ponpon laissait le
paquet de croquette à sa disposition H24. J'vous l'avais dit que c'était un
gros gourmand.

+

En sortant de sa chambre, Ponpon reçut une notif Facebook, ce qu'elle n'avait
pas l'air d'avoir remarqué.

+

Elle descendit, le sac poubelle à la main et sortie le mettre dans la cours.
Elle vit une personne au loin, un visage famillier ? Ponpon plissait les yeux.
"Omg ce Julie !" se dit Ponpon dans sa tête.
— Julie ? T'habites dans le coin, demanda Ponpon intriguée.
— Mhm. J'habite un peu plus loin dans le quartier.
— Tu vas quelque part ?
— Oui. Je vais à mon club d'échecs.
— Oh je vois. T'y vas souvent ? Je t'ai jamais vu passer par ici.
— Oui. Tout les weekends. Tu m'as jamais vu passer ? Pourtant je passes tout le
temps par ici.
Ponpon se rappela que ça faisait maintenant un mois qu'elle ne sortait pas et
qu'elle vivait dans sa chambre les volets fermés.
— Ah ah, oui je vois eheh." dit Ponpon une main derrière la tête "Et bien
heuu... amuses toi bien !
— Merci.

+

Julie reprit sa route sous le regard de Ponpon puis s'arrêta et se tourna vers
Ponpon.
— Tu veux venir, demanda-t-elle.
— Venir ? Au club d'échecs ?
— Mhm.
— Heuu... je sais pas. Tu sais j'y connais rien moi aux échecs.
— Comme tu veux.
Julie repris sa route. Ponpon prit le temps de réfléchir. Elle se dit que
peut-être ça serait bien de sortir pour une fois. Elle pourra toujours jouer à
Fractal Block World plus tard.
— Julie.
Julie se tourna vers Ponpon.
— Hm ?
— Je veux bien venir finalement !
— D'accord, dit Julie en hochant légèrement la tête.
Ponpon rejoignit Julie et ensemble elles allèrent au club d'echecs. La mère de
Ponpon fit un sourir bienveillant en observant la scène par la fenêtre.

+

La marche fut d'abord silencieuse, puis Ponpon engagea la conversation.
— Heuu... Alors, vous apprenez quoi en cours ?
— Hm. On dessine beaucoup en ce moment. Là on apprend la perspective.
— Oh ok je vois, dit Ponpon regardeant un peu ailleurs.
Le silence revint un instant et cette fois ci Julie fut celle qui le brisa.
— Et toi Ponpon. Tu fais quoi de tes journées ?
— Heu moi ? Moi je... je heu.
— Hm ?
— Je joue à Fractal Block World." répondit-t-elle en baissant la tête.
— Intéressant.
— Intéressant ? Comment ça ?
— Ce niveau de dévotion que tu as pour ce jeu. Je trouve ça... intéressant.
— Ah ? Je l'ai jamais vu comme ça.
— Mhm.
Ponpon réfléchit à ce que Julie avait dit.

+

Une fois arrivées, Ponpon lu le nom de l'enseigne à voix haute.
— Chez... Chek &... Matt ? C'est ici ?
— Mhm.
— Oh. Ok.

+

Julie et Ponpon rentrèrent dans le club d'échecs. Ponpon qui était d'habitude à
l'aise en toute circonstances était là très calme. Il faut dire que le club
était lui même très calme.

+

Julie s'installa à une table pendant que Ponpon observait les parties des gens
autour d'elle.
— Tu viens Ponpon ?
— Ah heu oui ! J'arrive, dit Ponpon avant de s'installer à la table à son tour.

+

Ponpon regarda le plateau en plissant les yeux l'air perdu.
— Tu ne connais pas du tout les règles ?
— Heu... Nan.
Julie posa son doigt sur un pion et commença à expliquer les règles du jeu.
— Ca c'est le pion, il avance d'une case à part en début de partie où il peut
avancer de deux cases.
— Uhu, dit Ponpon le regard toujours rivé sur le plateau mais les pensées
ailleurs.

+

Ponpon avait un peu faim. Elle commença à se demander si elle avait pris son
goûter. Oui elle en était sûre, elle avait prit son goûter, car pour Ponpon le
goûter c'est sacré. Mais qu'avait t'elle bien pu prendre se demanda-t-elle. Elle
commença à réfléchir, une main sur le menton toujours en fixant le plateau
d'échecs. Ah oui se souvint-t-elle. Elle avait pris des chips à la crevettes.

+

— Et enfin, ça c'est la reine, elle peut se déplacer comme la tour et le fou.
Tu as des questions ?
— Huh ?
Ponpon se souvint qu'elle était actuellement dans un club d'échecs en face de
Julie qui lui expliquait les règles des échècs.
— T'avais l'air très concentrée sur le plateau. Tu réfléchissais déjà à des
stratégies ?
— Des stratégies ? Ah nan je me demandais juste si j'avais pris mon gouter
aujourd'hui eheh.
— Et alors ?
— Alors ? Alors quoi, se demanda Ponpon l'air surprise.
— Tu as pris ton goûter ?
— "Ahhh ! Oui oui je l'ai pris. Mais j'avoue que j'ai encore un peu faim.
— Il y a une épicerie à côté, on peut y aller si tu veux.
— Heu... le ventre de Ponpon fit un maxi boucan. Oui je veux bien.

+

Ponpon et Julie se levèrent de la table avant de sortir de Chez Chek & Matt et
de se rendre en direction de l'épicerie. Arrivées devant le rayon goûter, elles
chercherent la perle rare.
— Omg des *Crackeo*s, s'éxclama Ponpon.
— Hm ?
Julie n'avait pas l'air de comprendre l'engoument de Ponpon. Ponpon agripa
Julie par les épaules.
— C'est le goûter ultime Julie ! Une harmonie parfaite entre le biscuit et la
crème !
Julie resta sans réponse, n'ayant pas l'air de coire en l'existence d'un gouter
ultime.
— Tu verras Julie ! Fais moi confiance !

+

Après avoir fait la propaganda des *Crackeo*s, Ponpon passa à la caisse
acompagnée de Julie avant de sortir, leur goûter en main, et de s'installer sur
un banc à proximité. Ponpon ouvrit le paquet et tendit un biscuit à Julie.
— Tiens.
Ponpon fixa Julie pour ne pas perdre une miette de la réaction de Julie à son
premier *Crackeo*.

+

Julie croqua dans le cracks et ses yeux s'illuminèrent sans pour autant laisser
paraître d'émotion. Julie se tourna vers Ponpon.
— En effet c'est... Julie fixa le biscuit avant de se tourner vers Ponpon. Très
bon.
— J'te l'avais dit !

+

Ponpon vit un chat gris sortir au coin de la rue.
— Le chat ! Le chat !
Mais une fois que Ponpon se leva pour essayer de l'approcher, il rebroussa
chemin, ce qui ne découragea pas Ponpon qui partie à sa recherche. Quand elle
arriva à l'intersetion, elle tourna la tête et fit surprise par l'absence de
chat. Elle regarda à gauche et à droite, mais peu importe où son regard se
portait, aucun chat en vue. Julie rejoignit Ponpon avec un pas beaucoup plus
calme, contrairement à Ponpon qui elle avait sprinté.
— Julie, y avait bien un chat ?
— Heu pour être honnête, je n'ai pas fait attention.
— Oh, bizzare.
Ponpon marqua un temps d'arrêt.
— Tu veux retourner faire des échecs ?
Julie regarda l'heure sur son téléphone.
— J'aimerais beaucoup mais demain c'est l'anniversaire de mon petit frère et je
dois aider maman pour la décoration.
— Oh d'accord je vois ! Une prochaine fois peut-être !
— Oui.
— Bon weekend Julie ! Oh et garde les *Crakeo*s, je te les laisse, dit Ponpon
avant de prendre le chemin vers sa maison.
Julie regarda le paquet de *Crakeo*s.
— Merci. Bon weekend Ponpon.

+

Ponpon rentra chez elle et enleva ses chaussures dans l'entrée avant de
rejoindre sa mère qui sculptait de l'argile dans le salon. Ponpon se mit
derrière l'épaule de sa mère les mains derrière le dos.
— Tu scupltes quoi ?
— Je sculpte un chat. Pour l'ajouter à ma collection, la mère de Ponpon pointa
la collection en question qui se trouvait à l'autre bout de la pièce.
— Ohhh. Ponpon pris un temps avant sa prochaine phrase. En parlant de chat. J'ai
vu un chat aujourd'hui. J'ai essayé de le poursuivre mais il a disparu, dit
Ponpon un peu deçue.
— Un chat comme ça, demanda la mère de Ponpon en parlant de sa sculpture.
— Oui ! Il était gris aussi.
— Hm... la mère de Ponpon posa une main sur son menton avant de reprendre sa
sculpture. Il me semble que les voisins ont un chat gris aisso. C'est peut-être
lui.
— Tu penses ? C'est la première fois que je le vois.
La mère de Ponpon se tourna vers Ponpon.
— En même temps on ne peut pas dire que tu sortes beaucoup, dit-t-elle en
souriant.
— Oui c'est vrai ehehn, répondit Ponpon. Oh ! Faut que j'aille nourir Raymond le
hérisson !

+

Ponpon courut dans les escaliers avant d'arriver dans sa chambre. Puis elle se
mit devant une couverture qu'elle avait disposait au sol, autrement dit, le spot
préféré de Raymond qui passait sa vie ici. Ponpon vit Raymond rassasié, en train
de dormir sur sa couverture.
— J'avais oublié que t'avais accès au croquettes quand tu voulais toi.

+

Ponpon tourna la tête vers l'écran de son ordinateur et remarqua une mention
Facebook, chose qui n'arrive jamais. Elle s'assit à sa chaise de bureau et
cliqua sur la notification.
\ No newline at end of file diff --git a/src/app/views/books/le-monde-de-ponpon/chapter-3.zig b/src/app/views/books/le-monde-de-ponpon/chapter-3.zig new file mode 100644 index 0000000..84c5f44 --- /dev/null +++ b/src/app/views/books/le-monde-de-ponpon/chapter-3.zig @@ -0,0 +1,8 @@ +const std = @import("std"); +const jetzig = @import("jetzig"); + +pub const layout = "main"; + +pub fn index(request: *jetzig.Request, _: *jetzig.Data) !jetzig.View { + return request.render(.ok); +} diff --git a/src/app/views/books/le-monde-de-ponpon/chapter-3/content.md b/src/app/views/books/le-monde-de-ponpon/chapter-3/content.md new file mode 100644 index 0000000..d6ef59d --- /dev/null +++ b/src/app/views/books/le-monde-de-ponpon/chapter-3/content.md @@ -0,0 +1,151 @@ +## Chapitre 3: Grand maman serait d'accord. + +Une fois la notification cliquée, Ponpon se rendit compte que c'était juste un +post avec des chats. Les chats c'est très bien hein, mais bon, ça fait moyen +moyen avancer l'histoire quoi. Puis elle réalisa qu'elle regardait le post d'en +dessous. Celui au dessus c'était pas du tout des chats. + +Ponpon écarquilla les yeux. +— HérisonLand, cria-t-elle avant de sauter partout dans sa chambre. + +Malgré le nom qui pourrait porter à confusion, il ne s'agit pas d'un parc +d'attraction, mais bien d'un magasin dédié aux hérissons. Il était juste à côté, +à deux rues de chez elle, et en plus il était ouvert ce dimanche +exeptionnellement à l'occasion de l'ouverture ! + +Ponpon enfilla ses chaussures à scratch, prête à partir s'aventurer à +HérissonLand. Elle sorite alors avant de se rendre compte qu'il faisait nuit et +qu'on était vraiment pas dimanche mais bien samedi soir. + +Elle rerentra alors et sa mère l'interpela. +— C'est prêt si tu veux manger Ponpon. +— Oh, on mange quoi ? +— Des pâtes aux beurres. +Ahhh, des pâtes au beurre, le plât préféré de Ponpon. +— Ouaiiis ! Trop bien ! +Ponpon couru s'installer à table. +— Maman ! Maman ! Demain y a un HérissonLand qui ouvre pas loin. +— HérissonLand, répéta la mère de Ponpon sur un ton intérogatif avant de prendre +une bouchée de pâte. C'est pas le magasin dont tu me parlait la dernière fois ? +— Si si si. Ils ont plein de trucs, genre des costumes rigolo pour les +hérissons, et des gamelles aussi, et des jouets ! +— J'vais enfin pouvoir récupérer l'assiette qu'on a fillé à Raymond. +— Heuu... Bah si y a des gamelles moui. Faudra en parler à Raymond. +— Tu sais que cette assiette appartenait à ton arrière grand mère ? +— J'suis sûre que grand maman serait d'accord, dit Ponpon la bouche pleine. + +Ponpon avala sa dernière bouchée, se leva et déposa son assiette dans l'évier +avant de retourner dans sa chambre, toujours en courant bien sûr. + +Le lendemain, Ponpon prit la route de HérissonLand. Elle entra dans le magasin +et commença à scanner les articles avec ses yeux. Elle vit ce qu'elle avait +énuméré à sa mère le soir d'avant, c'est à dire "des costumes rigolo pour les +hérissons, et des gamelles aussi, et des jouets", mais elle vit aussi des roues +pour hérissons. Vous me direz "Bah des roues pour hamsters quoi", non ! Je vous +arrête tout de suite ! Ce sont des roues pour hérissons. + +A côté de tout ça, il y avait aussi des croquettes pour hérissons, mais Ponpon +avait déjà essayé et rien y fait, Raymond préfère celles pour chat. + +Si ça ne tenait qu'à Ponpon, elle aurait pris un article de chaque, cependant +certaines experiences passées ont fait prendre la décision à sa mère de ne +donner à Ponpon qu'un billet de 5€ pour son premier passage à HérissonLand. + +Ponpon décida de se replier sur une gamelle et se dirigea en direction de la +caisse. +— Bonjouuur, dit Ponpon en souriant. +Elle posa la gamelle sur le contoir. +— Ca sera 2€ s'il vous plait. + +Ponpon mit la main dans sa poche et sortit un billet de 5€. Le billet cependant +ne fini pas sa course sur le contoir mais bien par terre. Ponpon ramassa le +billet et le posa sur le contoir. Ouf, tout s'est bien fini... :). + +Un client rentra, ce qui en ouvrant les portes du magasin causa un appel d'air +qui fit s'envoler le billet qui sortit du magasin. Il se posa un peu plus loin +devant l'entrée du magasin. Ponpon se baissa pour le ramasser, mais le billet +farceur ne se laissa pas faire et reprit son envol. + +Ponpon fronça les sourcils et poursuivit le billet. Cette course poursuite dura +au moins deux bonnes minutes. Le billet n'avait pas l'air décidé à se diriger +vers le sol. Il attérit malgré tout... juste pas au sol. Ce poti blageur c'était +trouvé une place cosy en haut d'un lampadaire. +— Tu te crois malin monsieur le billet, dit Ponpon en brandissant son poing +en direction du fauteur de trouble. + +Ponpon courut vers le lampadaire, s'y accrocha, leva les pieds du sol et +commança son ascension du lampadaire. + +Arrivée au bout, elle tendit le bras vers le billet, ses doigts n'étaient qu'à +quelques centimères de son objectif. +— Je peux vous aider ? +Ponpon tourna la tête et vit une femme qui devait avoir vers la quarantaine. +— Huh ? Heu nan, merci ! J'essayais juste de récupérer mon billet. +Ponpon se tourna alors pour pointer le billet en question du doigt, mais la +place qui était avait occupée par le billet était maintenant vacante. Ponpon +regarda alors aux alentours et vit le billet, dans les airs, se dirigeant vers +les toits des maisons. + +A ce moment précis, les éspoirs de Ponpon de revoir se billet était annihilés. +Ponpon soupira. +— Vous- Vous avez vu ! +— Oui, le billet s'est envolé. +Ponpon se laissa glisser le long du lampadaire avant de s'allonger au sol. +— Tu vas bien ? +La dame qui juste avant vouvoyait Ponpon, à comme par instinct commencé à la +tutoyer. +— C'était l'argent pour HérissonLand... +La dame commença à fouiller dans son sac et sortit son porte feuille. +— Je peux te donner... +Elle regarda dans son portefeuille et sortit un billet qu'elle tendit à Ponpon. +— 10€ si tu veux. +— Ehhh... c'est gentil mais je sais pas si je peux accepter. +— T'inquiètes pas. Tu me remboursera plus tard. +— Heu... ok. +Ponpon prit le billet, n'ayant toute fois pas l'air très à l'aise d'accépter de +l'argent. +— Merci madame. +La dame rengea son portefeuille. +— Tu peux m'appeler Amélie. +Ponpon se corrigea. +— Merci Amélie. +— De rien. +Amélie reprit son chemin. +— Au revoir, lui dit Ponpon. +Amélie se retourna et sourit. +— Au revoir ! + +Ponpon revînt chez elle les bras chargés. Elle avait pris la gamelle qu'elle +comptait prendre initialement, mais elle s'est également laissé tenter par un +jouet qui couine et une nouvelle couverture pour Raymond. +— T'as acheté tout ça juste avec 5€, demanda la mère de Ponpon qui lisait un +livre sur le canapé avant l'arrivée de Ponpon. +— Nan nan nan ! C'est une dame qui m'a donné de l'argent. +— De l'argent ? Pourquoi ? +— Oui, mon billet s'est envolé et j'ai pas réussi à le récupérer, du coup elle +m'a donné de 10€. +— Ok. Heureusement qu'elle t'a donné que 10€. +— Ah ? Pourquoi, demanda Ponpon en examinant avec sa main libre la gamelle +qu'elle venait d'acheter. +— Je dois vraiment te rappeler la dernière fois que je t'ai laissé gérer un +budget ? +— Tu parles de quand tu m'as laissé faire les courses et que je suis revenue +avec des *Kinder Bueno* ? +— Précisément. +— Mais c'était y a lonnngtemps ça ! +— Ponpon... tu es revenue avec 50€ de *Kinder Bueno*. +— Mais c'est pas ma faute ! C'est trop bon aussiii ! + +La mère de Ponpon roula des yeux mais tout de même avec un sourir sur son visage +avant de retourner à son livre. Ponpon elle partit dans sa chambre pour montrer +toutes les belles choses qu'elle avait prit pour Raymond le hérisson. + +Elle installa la couverture à côté de Raymond qui posé dans son ancienne +couverture. Ou du moins ce que Ponpon aurait voulu être son ancienne couverture, +car Raymond n'avait pas l'air décidé à bouger de la couverture auquelle il avait +été habitué pendant si longtemps. +— Aller grosse patate ! Faut aller sur l'autre, dit Ponpon accroupie devant +Raymond, pointant la nouvelle couverture. + +Mais Raymond ne céda pas. Ponpon se relevé, comprenant que c'était peine perdue +et s'allongea sur son lit derrière elle. diff --git a/src/app/views/books/le-monde-de-ponpon/chapter-3/index.zmpl b/src/app/views/books/le-monde-de-ponpon/chapter-3/index.zmpl new file mode 100644 index 0000000..aadb6bf --- /dev/null +++ b/src/app/views/books/le-monde-de-ponpon/chapter-3/index.zmpl @@ -0,0 +1,22 @@ +

Chapitre 3: Grand maman serait d'accord.

+ +

Une fois la notification cliquée, Ponpon se rendit compte que c'était juste un
post avec des chats. Les chats c'est très bien hein, mais bon, ça fait moyen
moyen avancer l'histoire quoi. Puis elle réalisa qu'elle regardait le post d'en
dessous. Celui au dessus c'était pas du tout des chats.

+

Ponpon écarquilla les yeux.
— HérisonLand, cria-t-elle avant de sauter partout dans sa chambre.

+

Malgré le nom qui pourrait porter à confusion, il ne s'agit pas d'un parc
d'attraction, mais bien d'un magasin dédié aux hérissons. Il était juste à côté,
à deux rues de chez elle, et en plus il était ouvert ce dimanche
exeptionnellement à l'occasion de l'ouverture !

+

Ponpon enfilla ses chaussures à scratch, prête à partir s'aventurer à
HérissonLand. Elle sorite alors avant de se rendre compte qu'il faisait nuit et
qu'on était vraiment pas dimanche mais bien samedi soir.

+

Elle rerentra alors et sa mère l'interpela.
— C'est prêt si tu veux manger Ponpon.
— Oh, on mange quoi ?
— Des pâtes aux beurres.
Ahhh, des pâtes au beurre, le plât préféré de Ponpon.
— Ouaiiis ! Trop bien !
Ponpon couru s'installer à table.
— Maman ! Maman ! Demain y a un HérissonLand qui ouvre pas loin.
— HérissonLand, répéta la mère de Ponpon sur un ton intérogatif avant de prendre
une bouchée de pâte. C'est pas le magasin dont tu me parlait la dernière fois ?
— Si si si. Ils ont plein de trucs, genre des costumes rigolo pour les
hérissons, et des gamelles aussi, et des jouets !
— J'vais enfin pouvoir récupérer l'assiette qu'on a fillé à Raymond.
— Heuu... Bah si y a des gamelles moui. Faudra en parler à Raymond.
— Tu sais que cette assiette appartenait à ton arrière grand mère ?
— J'suis sûre que grand maman serait d'accord, dit Ponpon la bouche pleine.

+

Ponpon avala sa dernière bouchée, se leva et déposa son assiette dans l'évier
avant de retourner dans sa chambre, toujours en courant bien sûr.

+

Le lendemain, Ponpon prit la route de HérissonLand. Elle entra dans le magasin
et commença à scanner les articles avec ses yeux. Elle vit ce qu'elle avait
énuméré à sa mère le soir d'avant, c'est à dire "des costumes rigolo pour les
hérissons, et des gamelles aussi, et des jouets", mais elle vit aussi des roues
pour hérissons. Vous me direz "Bah des roues pour hamsters quoi", non ! Je vous
arrête tout de suite ! Ce sont des roues pour hérissons.

+

A côté de tout ça, il y avait aussi des croquettes pour hérissons, mais Ponpon
avait déjà essayé et rien y fait, Raymond préfère celles pour chat.

+

Si ça ne tenait qu'à Ponpon, elle aurait pris un article de chaque, cependant
certaines experiences passées ont fait prendre la décision à sa mère de ne
donner à Ponpon qu'un billet de 5€ pour son premier passage à HérissonLand.

+

Ponpon décida de se replier sur une gamelle et se dirigea en direction de la
caisse.
— Bonjouuur, dit Ponpon en souriant.
Elle posa la gamelle sur le contoir.
— Ca sera 2€ s'il vous plait.

+

Ponpon mit la main dans sa poche et sortit un billet de 5€. Le billet cependant
ne fini pas sa course sur le contoir mais bien par terre. Ponpon ramassa le
billet et le posa sur le contoir. Ouf, tout s'est bien fini... :).

+

Un client rentra, ce qui en ouvrant les portes du magasin causa un appel d'air
qui fit s'envoler le billet qui sortit du magasin. Il se posa un peu plus loin
devant l'entrée du magasin. Ponpon se baissa pour le ramasser, mais le billet
farceur ne se laissa pas faire et reprit son envol.

+

Ponpon fronça les sourcils et poursuivit le billet. Cette course poursuite dura
au moins deux bonnes minutes. Le billet n'avait pas l'air décidé à se diriger
vers le sol. Il attérit malgré tout... juste pas au sol. Ce poti blageur c'était
trouvé une place cosy en haut d'un lampadaire.
— Tu te crois malin monsieur le billet, dit Ponpon en brandissant son poing
en direction du fauteur de trouble.

+

Ponpon courut vers le lampadaire, s'y accrocha, leva les pieds du sol et
commança son ascension du lampadaire.

+

Arrivée au bout, elle tendit le bras vers le billet, ses doigts n'étaient qu'à
quelques centimères de son objectif.
— Je peux vous aider ?
Ponpon tourna la tête et vit une femme qui devait avoir vers la quarantaine.
— Huh ? Heu nan, merci ! J'essayais juste de récupérer mon billet.
Ponpon se tourna alors pour pointer le billet en question du doigt, mais la
place qui était avait occupée par le billet était maintenant vacante. Ponpon
regarda alors aux alentours et vit le billet, dans les airs, se dirigeant vers
les toits des maisons.

+

A ce moment précis, les éspoirs de Ponpon de revoir se billet était annihilés.
Ponpon soupira.
— Vous- Vous avez vu !
— Oui, le billet s'est envolé.
Ponpon se laissa glisser le long du lampadaire avant de s'allonger au sol.
— Tu vas bien ?
La dame qui juste avant vouvoyait Ponpon, à comme par instinct commencé à la
tutoyer.
— C'était l'argent pour HérissonLand...
La dame commença à fouiller dans son sac et sortit son porte feuille.
— Je peux te donner...
Elle regarda dans son portefeuille et sortit un billet qu'elle tendit à Ponpon.
— 10€ si tu veux.
— Ehhh... c'est gentil mais je sais pas si je peux accepter.
— T'inquiètes pas. Tu me remboursera plus tard.
— Heu... ok.
Ponpon prit le billet, n'ayant toute fois pas l'air très à l'aise d'accépter de
l'argent.
— Merci madame.
La dame rengea son portefeuille.
— Tu peux m'appeler Amélie.
Ponpon se corrigea.
— Merci Amélie.
— De rien.
Amélie reprit son chemin.
— Au revoir, lui dit Ponpon.
Amélie se retourna et sourit.
— Au revoir !

+

Ponpon revînt chez elle les bras chargés. Elle avait pris la gamelle qu'elle
comptait prendre initialement, mais elle s'est également laissé tenter par un
jouet qui couine et une nouvelle couverture pour Raymond.
— T'as acheté tout ça juste avec 5€, demanda la mère de Ponpon qui lisait un
livre sur le canapé avant l'arrivée de Ponpon.
— Nan nan nan ! C'est une dame qui m'a donné de l'argent.
— De l'argent ? Pourquoi ?
— Oui, mon billet s'est envolé et j'ai pas réussi à le récupérer, du coup elle
m'a donné de 10€.
— Ok. Heureusement qu'elle t'a donné que 10€.
— Ah ? Pourquoi, demanda Ponpon en examinant avec sa main libre la gamelle
qu'elle venait d'acheter.
— Je dois vraiment te rappeler la dernière fois que je t'ai laissé gérer un
budget ?
— Tu parles de quand tu m'as laissé faire les courses et que je suis revenue
avec des *Kinder Bueno* ?
— Précisément.
— Mais c'était y a lonnngtemps ça !
— Ponpon... tu es revenue avec 50€ de *Kinder Bueno*.
— Mais c'est pas ma faute ! C'est trop bon aussiii !

+

La mère de Ponpon roula des yeux mais tout de même avec un sourir sur son visage
avant de retourner à son livre. Ponpon elle partit dans sa chambre pour montrer
toutes les belles choses qu'elle avait prit pour Raymond le hérisson.

+

Elle installa la couverture à côté de Raymond qui posé dans son ancienne
couverture. Ou du moins ce que Ponpon aurait voulu être son ancienne couverture,
car Raymond n'avait pas l'air décidé à bouger de la couverture auquelle il avait
été habitué pendant si longtemps.
— Aller grosse patate ! Faut aller sur l'autre, dit Ponpon accroupie devant
Raymond, pointant la nouvelle couverture.

+

Mais Raymond ne céda pas. Ponpon se relevé, comprenant que c'était peine perdue
et s'allongea sur son lit derrière elle.
\ No newline at end of file diff --git a/src/app/views/books/le-monde-de-ponpon/index.zmpl b/src/app/views/books/le-monde-de-ponpon/index.zmpl new file mode 100644 index 0000000..1c33cc4 --- /dev/null +++ b/src/app/views/books/le-monde-de-ponpon/index.zmpl @@ -0,0 +1,12 @@ +

+

Current

+
    +
  1. Chapitre 1: Pattes de hérisson.
  2. +
  3. Chapitre 2: Omg des Crackeos !
  4. +
  5. Chapitre 2: Grand maman serait d'accord.
  6. +
+

Old versions

+ +
diff --git a/src/app/views/layouts/main.zmpl b/src/app/views/layouts/main.zmpl new file mode 100644 index 0000000..27e65d9 --- /dev/null +++ b/src/app/views/layouts/main.zmpl @@ -0,0 +1,60 @@ + + + + jxnshi.xyz + + + + + +
+

jxnshi.xyz

+
+
+

Projects

+ +
+
+
+ {{zmpl.content}} +
+
+
+

Beta 1.7.3 Minecraft Server

+

jxnshi.xyz

+
+
+
+
+
+ + [monero-logo.webp] + +
+

Monero donation

+ [xmr-qr-code.webp] +

8AHjMsMYAdJX8NFjxDecYT6g5w2rNGUkpVtJ367MPpPuFK4c1v1Bqwm2r6wVxkRYrjiUaa53kMyEuZPBPEXGYqbUPipW5PB

+
+
+
+

+ -----BEGIN PGP PUBLIC KEY BLOCK-----
+
+ mDMEZzy33BYJKwYBBAHaRw8BAQdAqiVwQsuChro7Xi0hf9TBgjPX7fb/rIqej1+v
+ KLGMzF+0Bmp4bnNoaYiTBBMWCgA7FiEE5ZFtAKicTqmN2ibwCI6UnD1b2FsFAmc8
+ t9wCGwMFCwkIBwICIgIGFQoJCAsCBBYCAwECHgcCF4AACgkQCI6UnD1b2FsqZgD/
+ RjrmTqRRBUjDyZ+Of+kSpeOBtpqyIvVwD7vl2M8/7rYA/1xib2aWV/l5xgbh2hAP
+ XFXMkaT+U3mQGcYUPBiD2lEFuDgEZzy33BIKKwYBBAGXVQEFAQEHQIlkb35USt8C
+ fKhr0dhiLdnzFnnQCfpwijhxzTJ8K+wuAwEIB4h4BBgWCgAgFiEE5ZFtAKicTqmN
+ 2ibwCI6UnD1b2FsFAmc8t9wCGwwACgkQCI6UnD1b2FtYbgD9Gz2ySaDvhtF3yngw
+ uR4s1wh2fWxXepMcb5S4OBRFkEQBAJ9ZXjrgfEJ/H1rUeRMCbCsGz/MlofS/2qdh
+ ZSLiyWEN
+ =1cWT
+ -----END PGP PUBLIC KEY BLOCK-----
+

+
+
+ + diff --git a/src/app/views/root.zig b/src/app/views/root.zig new file mode 100644 index 0000000..84c5f44 --- /dev/null +++ b/src/app/views/root.zig @@ -0,0 +1,8 @@ +const std = @import("std"); +const jetzig = @import("jetzig"); + +pub const layout = "main"; + +pub fn index(request: *jetzig.Request, _: *jetzig.Data) !jetzig.View { + return request.render(.ok); +} diff --git a/src/app/views/root/index.zmpl b/src/app/views/root/index.zmpl new file mode 100644 index 0000000..e83bda5 --- /dev/null +++ b/src/app/views/root/index.zmpl @@ -0,0 +1,5 @@ +

+ Welcome to my website! Here I post my projects, you can check them out in + the projects tab. If you like what I do you can support me with a Monero + donation. +

diff --git a/src/main.zig b/src/main.zig new file mode 100644 index 0000000..fb7789d --- /dev/null +++ b/src/main.zig @@ -0,0 +1,226 @@ +const std = @import("std"); +const builtin = @import("builtin"); + +const jetzig = @import("jetzig"); +const zmd = @import("zmd"); + +pub const routes = @import("routes"); +pub const static = @import("static"); + +const markdownToHtml = @import("md_to_html.zig").markdownToHtml; + +// Override default settings in `jetzig.config` here: +pub const jetzig_options = struct { + /// Middleware chain. Add any custom middleware here, or use middleware provided in + /// `jetzig.middleware` (e.g. `jetzig.middleware.HtmxMiddleware`). + pub const middleware: []const type = &.{ + // jetzig.middleware.HtmxMiddleware, + // jetzig.middleware.CompressionMiddleware, + // @import("app/middleware/DemoMiddleware.zig"), + }; + + // Maximum bytes to allow in request body. + pub const max_bytes_request_body: usize = std.math.pow(usize, 2, 16); + + // Maximum filesize for `public/` content. + pub const max_bytes_public_content: usize = std.math.pow(usize, 2, 20); + + // Maximum filesize for `static/` content (applies only to apps using `jetzig.http.StaticRequest`). + pub const max_bytes_static_content: usize = std.math.pow(usize, 2, 18); + + // Maximum length of a header name. There is no limit imposed by the HTTP specification but + // AWS load balancers reference 40 as a limit so we use that as a baseline: + // https://docs.aws.amazon.com/elasticloadbalancing/latest/APIReference/API_HttpHeaderConditionConfig.html + // This can be increased if needed. + pub const max_bytes_header_name: u16 = 40; + + /// Maximum number of `multipart/form-data`-encoded fields to accept per request. + pub const max_multipart_form_fields: usize = 20; + + // Log message buffer size. Log messages exceeding this size spill to heap with degraded + // performance. Log messages should aim to fit in the message buffer. + pub const log_message_buffer_len: usize = 4096; + + // Maximum log pool size. When a log buffer is no longer required it is returned to a pool + // for recycling. When logging i/o is slow, a high volume of requests will result in this + // pool growing. When the pool size reaches the maximum value defined here, log events are + // freed instead of recycled. + pub const max_log_pool_len: usize = 256; + + // Number of request threads. Defaults to number of detected CPUs. + pub const thread_count: ?u16 = null; + + // Number of response worker threads. + pub const worker_count: u16 = 4; + + // Total number of connections managed by worker threads. + pub const max_connections: u16 = 512; + + // Per-thread stack memory to use before spilling into request arena (possibly with allocations). + pub const buffer_size: usize = 64 * 1024; + + // The size of each item in the available memory pool used by requests for rendering. + // Total retained allocation: `worker_count * max_connections`. + pub const arena_size: usize = 1024 * 1024; + + // Path relative to cwd() to serve public content from. Symlinks are not followed. + pub const public_content_path = "public"; + + // HTTP buffer. Must be large enough to store all headers. This should typically not be modified. + pub const http_buffer_size: usize = std.math.pow(usize, 2, 16); + + // The number of worker threads to spawn on startup for processing Jobs (NOT the number of + // HTTP server worker threads). + pub const job_worker_threads: usize = 4; + + // Duration before looking for more Jobs when the queue is found to be empty, in + // milliseconds. + pub const job_worker_sleep_interval_ms: usize = 10; + + /// Key-value store options. Set backend to `.file` to use a file-based store. + /// When using `.file` backend, you must also set `.file_options`. + /// The key-value store is exposed as `request.store` in views and is also available in as + /// `env.store` in all jobs/mailers. + pub const store: jetzig.kv.Store.KVOptions = .{ + .backend = .memory, + // .backend = .file, + // .file_options = .{ + // .path = "/path/to/jetkv-store.db", + // .truncate = false, // Set to `true` to clear the store on each server launch. + // .address_space_size = jetzig.jetkv.JetKV.FileBackend.addressSpace(4096), + // }, + }; + + /// Job queue options. Identical to `store` options, but allows using different + /// backends (e.g. `.memory` for key-value store, `.file` for jobs queue. + /// The job queue is managed internally by Jetzig. + pub const job_queue: jetzig.kv.Store.KVOptions = .{ + .backend = .memory, + // .backend = .file, + // .file_options = .{ + // .path = "/path/to/jetkv-queue.db", + // .truncate = false, // Set to `true` to clear the store on each server launch. + // .address_space_size = jetzig.jetkv.JetKV.FileBackend.addressSpace(4096), + // }, + }; + + /// Cache options. Identical to `store` options, but allows using different + /// backends (e.g. `.memory` for key-value store, `.file` for cache. + pub const cache: jetzig.kv.Store.KVOptions = .{ + .backend = .memory, + // .backend = .file, + // .file_options = .{ + // .path = "/path/to/jetkv-cache.db", + // .truncate = false, // Set to `true` to clear the store on each server launch. + // .address_space_size = jetzig.jetkv.JetKV.FileBackend.addressSpace(4096), + // }, + }; + + /// SMTP configuration for Jetzig Mail. It is recommended to use a local SMTP relay, + /// e.g.: https://github.com/juanluisbaptiste/docker-postfix + // pub const smtp: jetzig.mail.SMTPConfig = .{ + // .port = 25, + // .encryption = .none, // .insecure, .none, .tls, .start_tls + // .host = "localhost", + // .username = null, + // .password = null, + // }; + + /// Force email delivery in development mode (instead of printing email body to logger). + pub const force_development_email_delivery = false; + + // Set custom fragments for rendering markdown templates. Any values will fall back to + // defaults provided by Zmd (https://github.com/jetzig-framework/zmd/blob/main/src/zmd/html.zig). + pub const markdown_fragments = struct { + pub const root = .{ + "
", + "
", + }; + pub const h1 = .{ + "

", + "

", + }; + pub const h2 = .{ + "

", + "

", + }; + pub const h3 = .{ + "

", + "

", + }; + pub const paragraph = .{ + "

", + "

", + }; + pub const code = .{ + "", + "", + }; + + pub const unordered_list = .{ + "
    ", + "
", + }; + + pub const ordered_list = .{ + "
    ", + "
", + }; + + pub fn block(allocator: std.mem.Allocator, node: zmd.Node) ![]const u8 { + return try std.fmt.allocPrint(allocator, + \\
{s}
+ , .{ node.meta, node.content }); + } + + pub fn link(allocator: std.mem.Allocator, node: zmd.Node) ![]const u8 { + return try std.fmt.allocPrint(allocator, + \\{1s} + , .{ node.href.?, node.title.? }); + } + }; +}; + +pub fn init(app: *jetzig.App) !void { + _ = app; + // Example custom route: + // app.route(.GET, "/custom/:id/foo/bar", @import("app/views/custom/foo.zig"), .bar); +} + +pub fn main() !void { + var gpa = std.heap.GeneralPurposeAllocator(.{}){}; + const allocator = if (builtin.mode == .Debug) gpa.allocator() else std.heap.c_allocator; + defer if (builtin.mode == .Debug) std.debug.assert(gpa.deinit() == .ok); + + const markdowns = .{ + "app/views/books/le-monde-de-ponpon/chapter-1/", + "app/views/books/le-monde-de-ponpon/chapter-2/", + "app/views/books/le-monde-de-ponpon/chapter-3/", + + "app/views/books/le-monde-de-ponpon/chapter-1-v1/", + }; + + inline for (markdowns) |markdown| { + const content = @embedFile(markdown ++ "content.md"); + + var html_content = std.ArrayList(u8).init(allocator); + defer html_content.deinit(); + + const html_content_writer = html_content.writer(); + + var content_stream = std.io.fixedBufferStream(content); + const content_reader = content_stream.reader(); + + try markdownToHtml(html_content_writer.any(), content_reader.any()); + + const file = try std.fs.cwd().createFile("src/" ++ markdown ++ "index.zmpl", .{}); + defer file.close(); + + try file.writeAll(html_content.items); + } + + var app = try jetzig.init(allocator); + defer app.deinit(); + + try app.start(routes, .{}); +} diff --git a/src/md_to_html.zig b/src/md_to_html.zig new file mode 100644 index 0000000..7baf41b --- /dev/null +++ b/src/md_to_html.zig @@ -0,0 +1,59 @@ +const std = @import("std"); + +const HtmlTag = enum { none, title, para }; + +fn setTag(writer: std.io.AnyWriter, tag: *HtmlTag, value: HtmlTag) !void { + if (tag.* == .para) { + try writer.writeAll("

"); + } + + tag.* = value; +} + +pub fn markdownToHtml(writer: std.io.AnyWriter, reader: std.io.AnyReader) !void { + var in_tag = HtmlTag.none; + var title_depth: u8 = 0; + var prev_char: u8 = 0; + + while (reader.readByte()) |char| { + defer prev_char = char; + + if (char == '#') { + try setTag(writer, &in_tag, .title); + title_depth += 1; + + continue; + } else if (in_tag == .title and char == '\n') { + try std.fmt.format(writer, "\n", .{title_depth}); + + try setTag(writer, &in_tag, .none); + title_depth = 0; + + continue; + } + + if (prev_char == '#') { + try std.fmt.format(writer, "", .{title_depth}); + } + + if (in_tag == .none and char != '\n') { + try writer.writeAll("

"); + in_tag = .para; + } + + if (prev_char == '\n' and char == '\n') { + try setTag(writer, &in_tag, .none); + } + + if (char == '\n' and in_tag == .para) { + try writer.writeAll("
"); + continue; + } + + try writer.writeByte(char); + } else |err| { + if (err != error.EndOfStream) { + return err; + } + } +}