Compare commits
No commits in common. "ea055b97fb9d4c8c54750c61d6d97da5614f27cf" and "a56ee2d4170433dd764d908a3e86f6bd1e2c1403" have entirely different histories.
ea055b97fb
...
a56ee2d417
38 changed files with 65 additions and 993 deletions
BIN
bun.lockb
BIN
bun.lockb
Binary file not shown.
13
gleam.toml
13
gleam.toml
|
|
@ -14,16 +14,15 @@ target = "javascript"
|
|||
# https://gleam.run/writing-gleam/gleam-toml/.
|
||||
|
||||
[dependencies]
|
||||
gleam_stdlib = ">= 0.60.0 and < 2.0.0"
|
||||
jot = ">= 5.0.0 and < 6.0.0"
|
||||
gleam_stdlib = ">= 0.34.0 and < 2.0.0"
|
||||
jot = ">= 2.0.0 and < 3.0.0"
|
||||
simplifile = ">= 2.2.0 and < 3.0.0"
|
||||
lustre = ">= 5.1.0 and < 6.0.0"
|
||||
lustre = ">= 4.6.3 and < 5.0.0"
|
||||
birl = ">= 1.8.0 and < 2.0.0"
|
||||
argv = ">= 1.0.2 and < 2.0.0"
|
||||
# glen = ">= 2.2.1 and < 3.0.0"
|
||||
gleam_javascript = ">= 1.0.0 and < 2.0.0"
|
||||
gleam_time = ">= 1.2.0 and < 2.0.0"
|
||||
# glen_node = ">= 0.0.2 and < 1.0.0"
|
||||
glen = ">= 2.2.1 and < 3.0.0"
|
||||
gleam_javascript = ">= 0.13.0 and < 1.0.0"
|
||||
glen_node = ">= 0.0.2 and < 1.0.0"
|
||||
|
||||
[dev-dependencies]
|
||||
gleeunit = ">= 1.0.0 and < 2.0.0"
|
||||
|
|
|
|||
|
|
@ -4,31 +4,36 @@
|
|||
packages = [
|
||||
{ name = "argv", version = "1.0.2", build_tools = ["gleam"], requirements = [], otp_app = "argv", source = "hex", outer_checksum = "BA1FF0929525DEBA1CE67256E5ADF77A7CDDFE729E3E3F57A5BDCAA031DED09D" },
|
||||
{ name = "birl", version = "1.8.0", build_tools = ["gleam"], requirements = ["gleam_regexp", "gleam_stdlib", "ranger"], otp_app = "birl", source = "hex", outer_checksum = "2AC7BA26F998E3DFADDB657148BD5DDFE966958AD4D6D6957DD0D22E5B56C400" },
|
||||
{ name = "filepath", version = "1.1.2", build_tools = ["gleam"], requirements = ["gleam_stdlib"], otp_app = "filepath", source = "hex", outer_checksum = "B06A9AF0BF10E51401D64B98E4B627F1D2E48C154967DA7AF4D0914780A6D40A" },
|
||||
{ name = "gleam_erlang", version = "0.34.0", build_tools = ["gleam"], requirements = ["gleam_stdlib"], otp_app = "gleam_erlang", source = "hex", outer_checksum = "0C38F2A128BAA0CEF17C3000BD2097EB80634E239CE31A86400C4416A5D0FDCC" },
|
||||
{ name = "gleam_javascript", version = "1.0.0", build_tools = ["gleam"], requirements = ["gleam_stdlib"], otp_app = "gleam_javascript", source = "hex", outer_checksum = "EF6C77A506F026C6FB37941889477CD5E4234FCD4337FF0E9384E297CB8F97EB" },
|
||||
{ name = "gleam_json", version = "3.0.1", build_tools = ["gleam"], requirements = ["gleam_stdlib"], otp_app = "gleam_json", source = "hex", outer_checksum = "5BA154440B22D9800955B1AB854282FA37B97F30F409D76B0824D0A60C934188" },
|
||||
{ name = "gleam_otp", version = "0.16.1", build_tools = ["gleam"], requirements = ["gleam_erlang", "gleam_stdlib"], otp_app = "gleam_otp", source = "hex", outer_checksum = "50DA1539FC8E8FA09924EB36A67A2BBB0AD6B27BCDED5A7EF627057CF69D035E" },
|
||||
{ name = "gleam_regexp", version = "1.1.1", build_tools = ["gleam"], requirements = ["gleam_stdlib"], otp_app = "gleam_regexp", source = "hex", outer_checksum = "9C215C6CA84A5B35BB934A9B61A9A306EC743153BE2B0425A0D032E477B062A9" },
|
||||
{ name = "gleam_stdlib", version = "0.60.0", build_tools = ["gleam"], requirements = [], otp_app = "gleam_stdlib", source = "hex", outer_checksum = "621D600BB134BC239CB2537630899817B1A42E60A1D46C5E9F3FAE39F88C800B" },
|
||||
{ name = "gleam_time", version = "1.2.0", build_tools = ["gleam"], requirements = ["gleam_stdlib"], otp_app = "gleam_time", source = "hex", outer_checksum = "D71F1AFF7FEB534FF55E5DC58E534E9201BA75A444619788A2E4DEA4EBD87D16" },
|
||||
{ name = "conversation", version = "1.4.3", build_tools = ["gleam"], requirements = ["gleam_http", "gleam_javascript", "gleam_stdlib"], otp_app = "conversation", source = "hex", outer_checksum = "908B46F60444442785A495197D482558AD8B849C3714A38FAA1940358CC8CCCD" },
|
||||
{ name = "filepath", version = "1.1.0", build_tools = ["gleam"], requirements = ["gleam_stdlib"], otp_app = "filepath", source = "hex", outer_checksum = "67A6D15FB39EEB69DD31F8C145BB5A421790581BD6AA14B33D64D5A55DBD6587" },
|
||||
{ name = "gleam_community_ansi", version = "1.4.2", build_tools = ["gleam"], requirements = ["gleam_community_colour", "gleam_regexp", "gleam_stdlib"], otp_app = "gleam_community_ansi", source = "hex", outer_checksum = "479DEDC748D08B310C9FEB9C4CBEC46B95C874F7F4F2844304D6D20CA78A8BB5" },
|
||||
{ name = "gleam_community_colour", version = "1.4.1", build_tools = ["gleam"], requirements = ["gleam_json", "gleam_stdlib"], otp_app = "gleam_community_colour", source = "hex", outer_checksum = "386CB9B01B33371538672EEA8A6375A0A0ADEF41F17C86DDCB81C92AD00DA610" },
|
||||
{ name = "gleam_erlang", version = "0.33.0", build_tools = ["gleam"], requirements = ["gleam_stdlib"], otp_app = "gleam_erlang", source = "hex", outer_checksum = "A1D26B80F01901B59AABEE3475DD4C18D27D58FA5C897D922FCB9B099749C064" },
|
||||
{ name = "gleam_http", version = "3.7.2", build_tools = ["gleam"], requirements = ["gleam_stdlib"], otp_app = "gleam_http", source = "hex", outer_checksum = "8A70D2F70BB7CFEB5DF048A2183FFBA91AF6D4CF5798504841744A16999E33D2" },
|
||||
{ name = "gleam_javascript", version = "0.13.0", build_tools = ["gleam"], requirements = ["gleam_stdlib"], otp_app = "gleam_javascript", source = "hex", outer_checksum = "F98328FCF573DA6F3A35D7F6CB3F9FF19FD5224CCBA9151FCBEAA0B983AF2F58" },
|
||||
{ name = "gleam_json", version = "2.3.0", build_tools = ["gleam"], requirements = ["gleam_stdlib"], otp_app = "gleam_json", source = "hex", outer_checksum = "C55C5C2B318533A8072D221C5E06E5A75711C129E420DD1CE463342106012E5D" },
|
||||
{ name = "gleam_otp", version = "0.16.0", build_tools = ["gleam"], requirements = ["gleam_erlang", "gleam_stdlib"], otp_app = "gleam_otp", source = "hex", outer_checksum = "FA0EB761339749B4E82D63016C6A18C4E6662DA05BAB6F1346F9AF2E679E301A" },
|
||||
{ name = "gleam_regexp", version = "1.0.0", build_tools = ["gleam"], requirements = ["gleam_stdlib"], otp_app = "gleam_regexp", source = "hex", outer_checksum = "A3655FDD288571E90EE9C4009B719FEF59FA16AFCDF3952A76A125AF23CF1592" },
|
||||
{ name = "gleam_stdlib", version = "0.52.0", build_tools = ["gleam"], requirements = [], otp_app = "gleam_stdlib", source = "hex", outer_checksum = "50703862DF26453B277688FFCDBE9DD4AC45B3BD9742C0B370DB62BC1629A07D" },
|
||||
{ name = "gleam_yielder", version = "1.1.0", build_tools = ["gleam"], requirements = ["gleam_stdlib"], otp_app = "gleam_yielder", source = "hex", outer_checksum = "8E4E4ECFA7982859F430C57F549200C7749823C106759F4A19A78AEA6687717A" },
|
||||
{ name = "gleeunit", version = "1.3.1", build_tools = ["gleam"], requirements = ["gleam_stdlib"], otp_app = "gleeunit", source = "hex", outer_checksum = "A7DD6C07B7DA49A6E28796058AA89E651D233B357D5607006D70619CD89DAAAB" },
|
||||
{ name = "houdini", version = "1.1.0", build_tools = ["gleam"], requirements = ["gleam_stdlib"], otp_app = "houdini", source = "hex", outer_checksum = "5BA517E5179F132F0471CB314F27FE210A10407387DA1EA4F6FD084F74469FC2" },
|
||||
{ name = "jot", version = "5.0.0", build_tools = ["gleam"], requirements = ["gleam_stdlib", "houdini", "splitter"], otp_app = "jot", source = "hex", outer_checksum = "2C1B30CC00B0D79F904028F48229C0BB354F3C1BC05EE99D4F3D423E223D85BF" },
|
||||
{ name = "lustre", version = "5.1.0", build_tools = ["gleam"], requirements = ["gleam_erlang", "gleam_json", "gleam_otp", "gleam_stdlib", "houdini"], otp_app = "lustre", source = "hex", outer_checksum = "A0ADD4D936A49EE2CEBB8070F39058009122F0321D4B5445843D56E54875ECD8" },
|
||||
{ name = "gleeunit", version = "1.2.0", build_tools = ["gleam"], requirements = ["gleam_stdlib"], otp_app = "gleeunit", source = "hex", outer_checksum = "F7A7228925D3EE7D0813C922E062BFD6D7E9310F0BEE585D3A42F3307E3CFD13" },
|
||||
{ name = "glen", version = "2.2.1", build_tools = ["gleam"], requirements = ["conversation", "filepath", "gleam_community_ansi", "gleam_http", "gleam_javascript", "gleam_stdlib", "marceau"], otp_app = "glen", source = "hex", outer_checksum = "836E324CD4604E19C04469156F3CAD71A5E26619582D2257DC6CD7B8D97D174E" },
|
||||
{ name = "glen_node", version = "0.0.2", build_tools = ["gleam"], requirements = ["gleam_javascript", "glen"], otp_app = "glen_node", source = "hex", outer_checksum = "D2157D1E38B0963945E55F99E8C3F95FDA494DD1D3DF8DBF3A3744C4E501EA80" },
|
||||
{ name = "jot", version = "2.0.0", build_tools = ["gleam"], requirements = ["gleam_stdlib"], otp_app = "jot", source = "hex", outer_checksum = "81E61DA896901BFC0522DCFB14C661B6C70F0664C01D8B461F5F9B1A9E965FD4" },
|
||||
{ name = "lustre", version = "4.6.3", build_tools = ["gleam"], requirements = ["gleam_erlang", "gleam_json", "gleam_otp", "gleam_stdlib"], otp_app = "lustre", source = "hex", outer_checksum = "BDF833368F6C8F152F948D5B6A79866E9881CB80CB66C0685B3327E7DCBFB12F" },
|
||||
{ name = "marceau", version = "1.3.0", build_tools = ["gleam"], requirements = [], otp_app = "marceau", source = "hex", outer_checksum = "2D1C27504BEF45005F5DFB18591F8610FB4BFA91744878210BDC464412EC44E9" },
|
||||
{ name = "ranger", version = "1.4.0", build_tools = ["gleam"], requirements = ["gleam_stdlib", "gleam_yielder"], otp_app = "ranger", source = "hex", outer_checksum = "C8988E8F8CDBD3E7F4D8F2E663EF76490390899C2B2885A6432E942495B3E854" },
|
||||
{ name = "simplifile", version = "2.2.1", build_tools = ["gleam"], requirements = ["filepath", "gleam_stdlib"], otp_app = "simplifile", source = "hex", outer_checksum = "C88E0EE2D509F6D86EB55161D631657675AA7684DAB83822F7E59EB93D9A60E3" },
|
||||
{ name = "splitter", version = "1.0.0", build_tools = ["gleam"], requirements = ["gleam_stdlib"], otp_app = "splitter", source = "hex", outer_checksum = "128FC521EE33B0012E3E64D5B55168586BC1B9C8D7B0D0CA223B68B0D770A547" },
|
||||
{ name = "simplifile", version = "2.2.0", build_tools = ["gleam"], requirements = ["filepath", "gleam_stdlib"], otp_app = "simplifile", source = "hex", outer_checksum = "0DFABEF7DC7A9E2FF4BB27B108034E60C81BEBFCB7AB816B9E7E18ED4503ACD8" },
|
||||
]
|
||||
|
||||
[requirements]
|
||||
argv = { version = ">= 1.0.2 and < 2.0.0" }
|
||||
birl = { version = ">= 1.8.0 and < 2.0.0" }
|
||||
gleam_javascript = { version = ">= 1.0.0 and < 2.0.0" }
|
||||
gleam_stdlib = { version = ">= 0.60.0 and < 2.0.0" }
|
||||
gleam_time = { version = ">= 1.2.0 and < 2.0.0" }
|
||||
gleam_javascript = { version = ">= 0.13.0 and < 1.0.0" }
|
||||
gleam_stdlib = { version = ">= 0.34.0 and < 2.0.0" }
|
||||
gleeunit = { version = ">= 1.0.0 and < 2.0.0" }
|
||||
jot = { version = ">= 5.0.0 and < 6.0.0" }
|
||||
lustre = { version = ">= 5.1.0 and < 6.0.0" }
|
||||
glen = { version = ">= 2.2.1 and < 3.0.0" }
|
||||
glen_node = { version = ">= 0.0.2 and < 1.0.0" }
|
||||
jot = { version = ">= 2.0.0 and < 3.0.0" }
|
||||
lustre = { version = ">= 4.6.3 and < 5.0.0" }
|
||||
simplifile = { version = ">= 2.2.0 and < 3.0.0" }
|
||||
|
|
|
|||
|
|
@ -1,22 +1,21 @@
|
|||
{
|
||||
"name": "promptbox",
|
||||
"type": "module",
|
||||
"version": "1.1.0",
|
||||
"description": "",
|
||||
"version": "1.0.0",
|
||||
"description": "[](https://hex.pm/packages/promptbox) [](https://hexdocs.pm/promptbox/)",
|
||||
"main": "index.js",
|
||||
"directories": {
|
||||
"test": "test"
|
||||
},
|
||||
"scripts": {
|
||||
"build": "gleam run build",
|
||||
"dev": "vite",
|
||||
"test": "echo \"Error: no test specified\" && exit 1"
|
||||
},
|
||||
"keywords": [],
|
||||
"author": "",
|
||||
"license": "ISC",
|
||||
"devDependencies": {
|
||||
"@chouqueth/gleam": "^1.9.0"
|
||||
"@chouqueth/gleam": "^1.7.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"@tailwindcss/postcss": "^4.0.1",
|
||||
|
|
|
|||
|
|
@ -1,39 +0,0 @@
|
|||
---
|
||||
title: The End of Forever
|
||||
week: 30
|
||||
date: 2025-07-30
|
||||
---
|
||||
forever is my life,\
|
||||
and each day it ends\
|
||||
a new me tomorrow,\
|
||||
how will we blend?
|
||||
|
||||
identity shattered,\
|
||||
split between worlds\
|
||||
yesterday's me,\
|
||||
gone inward, curled
|
||||
|
||||
days keep coming,\
|
||||
I'll never feel steady\
|
||||
in spite of all this,\
|
||||
here I am, ready
|
||||
+++
|
||||
I stare eyes out into the void\
|
||||
ever expanding\
|
||||
Consuming a life enjoyed\
|
||||
ever disbanding
|
||||
|
||||
Everything now erodes away\
|
||||
the brain stops thinking\
|
||||
All that has past lost from today\
|
||||
memory shrinking
|
||||
|
||||
Grasping for energy long gone\
|
||||
using more than gained\
|
||||
Life discharged by my every yawn\
|
||||
increasingly drained
|
||||
|
||||
Errant hopes of being recast\
|
||||
avoiding never\
|
||||
Left to a breath that will be last\
|
||||
ending forever
|
||||
|
|
@ -1,34 +0,0 @@
|
|||
---
|
||||
title: The Fury
|
||||
week: 31
|
||||
date: 2025-08-06
|
||||
---
|
||||
the fury lives within me\
|
||||
deep and on the surface\
|
||||
tired hateful spite\
|
||||
I'll live my life with purpose
|
||||
|
||||
each day I climb this mountain\
|
||||
avoid my past with glee\
|
||||
I sometimes dream of when they die\
|
||||
the day I will be free
|
||||
|
||||
what they've done I shouldn't say\
|
||||
though not my shame to hold\
|
||||
some tell me just let it go\
|
||||
but no, I'll never fold
|
||||
+++
|
||||
there in your wake i fan the flame\
|
||||
desperate for it's destruction\
|
||||
spurred by fear of a creeping freeze\
|
||||
whelming down with force worrisome
|
||||
|
||||
flame i've stoked to an inferno\
|
||||
raging forward in such rampage\
|
||||
reigniting fires of the past\
|
||||
scratching open the old scarring
|
||||
|
||||
now left a scorched and broken earth\
|
||||
harrowed and ready for healing\
|
||||
with ache from all that is damaged\
|
||||
longing ever at what's now lost
|
||||
|
|
@ -1,30 +0,0 @@
|
|||
---
|
||||
title: The Cover's Blown
|
||||
week: 32
|
||||
date: 2025-08-13
|
||||
---
|
||||
I hide in sight,\
|
||||
my truth concealed\
|
||||
all bark no bite,\
|
||||
my hurt unhealed
|
||||
|
||||
they poke sleeping bear,\
|
||||
resistance is vain\
|
||||
this world won't be fair,\
|
||||
I try to explain
|
||||
|
||||
I let too much out,\
|
||||
my cover is blown\
|
||||
whine just to pout, \
|
||||
I wish I was grown
|
||||
+++
|
||||
Our guise of ignorance has now fallen\
|
||||
All shadows of doubt illuminated\
|
||||
With years of your bombs disintegration\
|
||||
Your pretence of defence crumbles away\
|
||||
Yet still they say it's all far too complex\
|
||||
Empathy held from kids too far away\
|
||||
The victims that you expect to submit\
|
||||
To accept all they've lost and not resist\
|
||||
Lest rubble be made of their latest homes\
|
||||
Left to cower under tarpaulin domes
|
||||
|
|
@ -1,31 +0,0 @@
|
|||
---
|
||||
title: Unconventional Deception
|
||||
week: 33
|
||||
date: 2025-08-20
|
||||
---
|
||||
like a moth to a flame,\
|
||||
but the flame's just a light,\
|
||||
deceived by this place,\
|
||||
most days and some nights
|
||||
|
||||
It's not how they tell you,
|
||||
'beware of the others',\
|
||||
no, it's different in my life,\
|
||||
and we'll never recover
|
||||
|
||||
a 'no' means a 'yes',\
|
||||
or a 'maybe' means 'later',\
|
||||
the message unclear,\
|
||||
I'm confusion's translator
|
||||
+++
|
||||
Unconventional Deception:
|
||||
|
||||
A fib made as a placeholder\
|
||||
Given to create a delay\
|
||||
For when I'm a little bolder\
|
||||
And it's the truth that I can say
|
||||
|
||||
Meant as such to create no harm\
|
||||
Yet it has prioritised I\
|
||||
Left as social mines to disarm\
|
||||
Risk with every moralised lie
|
||||
|
|
@ -1,29 +0,0 @@
|
|||
---
|
||||
title: Recompense
|
||||
week: 34
|
||||
date: 2025-08-27
|
||||
---
|
||||
you can never pay back\
|
||||
all the harm that you did\
|
||||
can't even keep track\
|
||||
of our zeroing bids
|
||||
|
||||
you don't deserve our fortitude\
|
||||
nor secrecy, concealed\
|
||||
for me this life has been tabooed\
|
||||
but I will never yield
|
||||
+++
|
||||
A gift I wish I could give you\
|
||||
Though none could possibly suffice\
|
||||
Something lost I cant just renew\
|
||||
Now left forever unaddressed
|
||||
|
||||
Discomfort grows as time slips by\
|
||||
With stabs of guilt from every vice\
|
||||
A call from which I must not shy\
|
||||
To get this feeling off my chest
|
||||
|
||||
A shame this is what makes me cave\
|
||||
And finally accept the price\
|
||||
With hope for your resentments waive\
|
||||
A sorry I'll try make precise
|
||||
|
|
@ -1,22 +0,0 @@
|
|||
---
|
||||
title: Collection
|
||||
week: 35
|
||||
date: 2025-09-04
|
||||
---
|
||||
collections, my predilections\
|
||||
some things I'd never dream
|
||||
|
||||
childhood joy, as brooch or toy\
|
||||
they make me really beam
|
||||
|
||||
the littlest pets, a plastic vet\
|
||||
I beg to save them all
|
||||
|
||||
tiny trinkets, arts and crafts\
|
||||
just can't avoid their call
|
||||
+++
|
||||
Another stick I stuck deep in my sack\
|
||||
With a lick of luck in sure to not lack\
|
||||
More I'll pick and pluck till I fill my pack\
|
||||
Now a brick to buck lest it break my back\
|
||||
Till this shtick I shuck when back in my shack
|
||||
|
|
@ -1,29 +0,0 @@
|
|||
---
|
||||
title: The Things Left Unsaid
|
||||
week: 36
|
||||
date: 2025-09-11
|
||||
---
|
||||
I don't like to think about\
|
||||
the things I left unsaid\
|
||||
thoughts run rough and tumble,\
|
||||
cogitate all through my head
|
||||
|
||||
most often I say too much,\
|
||||
those times I can forget\
|
||||
however, when I bite my tongue,\
|
||||
it builds my biggest debt
|
||||
|
||||
I always think I'll let it out,\
|
||||
but then the moment comes\
|
||||
I sit and sigh and roll my eyes,\
|
||||
to this spell I have succumbed
|
||||
+++
|
||||
I'm lost for insufficient words\
|
||||
Paralysed into inaction \
|
||||
There stuck until the feeling curds\
|
||||
A fight where I gain no traction
|
||||
|
||||
The telling of things left unsaid\
|
||||
Placed on actions that betray me\
|
||||
Such what I tell is lies instead\
|
||||
All through which certainly they see
|
||||
|
|
@ -1,34 +0,0 @@
|
|||
---
|
||||
title: Blinding
|
||||
week: 25
|
||||
date: 2025-06-25
|
||||
---
|
||||
death is blinding\
|
||||
it hurts each time\
|
||||
in brand new ways\
|
||||
that much I'm finding
|
||||
|
||||
it eats away at worldly trust\
|
||||
here at once\
|
||||
and not the next\
|
||||
in what world is this just?
|
||||
|
||||
no one chooses their mortal end\
|
||||
we must go on\
|
||||
this fear prevails\
|
||||
a lifelong friend
|
||||
|
||||
my nights and days pocked with confusion\
|
||||
irrevocable, a life all done\
|
||||
reflect, think back\
|
||||
dream of illusion
|
||||
+++
|
||||
I feel my descent, caused by an unknown\
|
||||
At least I hope, in dread of my suspect\
|
||||
A most tragic fall, of what was once grown\
|
||||
Allowed to crush others in its neglect
|
||||
|
||||
I can't help but notice the darkened sky\
|
||||
I got myself here, and built my own binds\
|
||||
So I'm left stuck, to watch the time pass by\
|
||||
Praying for dawn, of such contrast it blinds
|
||||
|
|
@ -1,37 +0,0 @@
|
|||
---
|
||||
title: Cycles
|
||||
week: 23
|
||||
date: 2025-06-11
|
||||
---
|
||||
a well deserved break,\
|
||||
then becomes holiday\
|
||||
prepare to go back,\
|
||||
did we ever get away?
|
||||
|
||||
it's a new group to learn,\
|
||||
a space to decorate\
|
||||
we all settle in,\
|
||||
here to face the same fate
|
||||
|
||||
they grow and they learn,\
|
||||
progress feels steady\
|
||||
reports come and go,\
|
||||
they'll never feel ready
|
||||
|
||||
a long sluggish term,\
|
||||
the weeks never end\
|
||||
events, celebrations,\
|
||||
exhaustion, a new friend
|
||||
|
||||
the end is in sight,\
|
||||
fear and joy seep in\
|
||||
shut down our brains,\
|
||||
till the new year's begin
|
||||
+++
|
||||
It turns a circle round\
|
||||
To spin a web of lies\
|
||||
A trick known by those wise
|
||||
|
||||
It's hand shown not as dealt\
|
||||
A fibs betrayal felt\
|
||||
Signed with delayed sound
|
||||
|
|
@ -1,31 +0,0 @@
|
|||
---
|
||||
title: Delight
|
||||
week: 11
|
||||
date: 2024-03-18
|
||||
---
|
||||
awash with the sky\
|
||||
away way up high\
|
||||
take a seat down in comfort's sigh
|
||||
|
||||
out here with the sand\
|
||||
I reach out my hand\
|
||||
to our personal wonderland
|
||||
|
||||
deep breath of fresh air\
|
||||
adorn nature's wear\
|
||||
much delight always here to share
|
||||
+++
|
||||
The sound of your voice my mind can’t deploy\
|
||||
But how quick my resolve it would destroy\
|
||||
And strip my brash veneer to leave me coy\
|
||||
Disarmed by your song, a sound of joy
|
||||
|
||||
The touch of your lips I can’t reminisce\
|
||||
Only how I felt to receive your kiss\
|
||||
That would send me into a lust abyss\
|
||||
Anchored so tender by your touch of bliss
|
||||
|
||||
The colour of your eyes I can’t recite\
|
||||
I only recall how they would ignite\
|
||||
Amazing feelings so superbly bright\
|
||||
With I assume, the colour of delight
|
||||
|
|
@ -1,39 +0,0 @@
|
|||
---
|
||||
title: Echoes
|
||||
week: 22
|
||||
date: 2025-06-04
|
||||
---
|
||||
the sounds are coming back\
|
||||
they're out on a spree\
|
||||
my thoughts bounce and stack\
|
||||
while walls restrain me
|
||||
|
||||
I turn, spin around\
|
||||
look out over vast\
|
||||
my mind wanders freely\
|
||||
untied from my past
|
||||
|
||||
some day I'll need to go\
|
||||
you'll see it on my face\
|
||||
as all reflects back \
|
||||
in that dreary dismal place
|
||||
|
||||
while walls restrain me\
|
||||
my thoughts bounce and stack\
|
||||
they're out on a spree\
|
||||
the sounds are coming back
|
||||
+++
|
||||
You can still hear the echoes drum\
|
||||
Their warning cries now muffled so\
|
||||
Mistaken as a marching song\
|
||||
Now spuring movement from the dead
|
||||
|
||||
A few with malice start a hum\
|
||||
That leads a chant the people grow\
|
||||
Now caught in drowning sing along\
|
||||
They will forget those cries of dread
|
||||
|
||||
Recall the cries and echo some\
|
||||
So they take heed and join the show\
|
||||
Preserve the warnings, sound the gong\
|
||||
Lest they become our own instead
|
||||
|
|
@ -1,44 +0,0 @@
|
|||
---
|
||||
title: Envelopment
|
||||
week: 12
|
||||
date: 2024-03-25
|
||||
---
|
||||
my blankets of comfort,\
|
||||
me of home and of world\
|
||||
made sense once before,\
|
||||
now all come unfurled
|
||||
|
||||
at home, I was me,\
|
||||
proud, strong and hiding\
|
||||
awaiting being found,\
|
||||
scared, time was biding
|
||||
|
||||
in the world untrue,\
|
||||
they don't all need to know\
|
||||
how much can I keep in,\
|
||||
at identity's plateau?
|
||||
|
||||
all fades away one day,\
|
||||
who am I, in truth?\
|
||||
wrapped up in this parcel,\
|
||||
the bane of tender youth
|
||||
+++
|
||||
Skin turned callus\
|
||||
Shocking how very thin\
|
||||
Protecting what within\
|
||||
Safe from malice
|
||||
|
||||
Callus turned scab\
|
||||
I say it's just a cloak\
|
||||
An eggs shell to my yolk\
|
||||
rough as stone slab
|
||||
|
||||
Scab turned to scar\
|
||||
Am I changed, or left raw\
|
||||
What verdict should I draw\
|
||||
Thoughts so bizarre
|
||||
|
||||
Scar turned putrid\
|
||||
Left so unattended\
|
||||
No longer defended\
|
||||
Efforts mooted
|
||||
|
|
@ -1,39 +0,0 @@
|
|||
---
|
||||
title: Flight
|
||||
week: 14
|
||||
date: 2025-04-08
|
||||
---
|
||||
precisely folded, in a pack,\
|
||||
strapped on tight to adventurer's back:\
|
||||
this daredevil I serve,\
|
||||
as we fall, twist, and swerve
|
||||
|
||||
I'm gripped by her brain,\
|
||||
always up in this plane:\
|
||||
in my strength she can trust,\
|
||||
leaning back, a strong gust
|
||||
|
||||
we fall, free and wild,\
|
||||
lucidity like a child:\
|
||||
my time coming soon,\
|
||||
together, we're attuned
|
||||
|
||||
all at once, familiar tug,\
|
||||
I spread out, a broad rug:\
|
||||
the wind beneath my sails,\
|
||||
slowed, the view details
|
||||
|
||||
down lower we float,\
|
||||
no longer remote:\
|
||||
we land safe on the shore,\
|
||||
fold and reset me once more
|
||||
+++
|
||||
I leap with hand on withers as my guide\
|
||||
To hoist myself atop his scaly back\
|
||||
I find my place there saddled forward loin\
|
||||
Now braced with hand on pommel stapped to crest
|
||||
|
||||
With small squeeze I sign for a swift rise\
|
||||
A bold rush to great hight by wings beat\
|
||||
I'm struck by the sharp bite of cold wind\
|
||||
And weights ease that lifts me in deep dive
|
||||
|
|
@ -1,34 +0,0 @@
|
|||
---
|
||||
title: Isolation
|
||||
week: 29
|
||||
date: 2025-07-23
|
||||
---
|
||||
a walk each day, at five or eight\
|
||||
through tender lanes between\
|
||||
pea green blades, a path well-trodden\
|
||||
black cat scales fence
|
||||
|
||||
faces covered, concealed with doubt\
|
||||
passers by blur shadows longer\
|
||||
their time is biding, stuck inside\
|
||||
on lope through hour that's stopped
|
||||
|
||||
a seat by concrete tower\
|
||||
cars rush by, to jump\
|
||||
the evening breeze betrays us all\
|
||||
till tomorrow, by myself
|
||||
+++
|
||||
Realising I've been remiss\
|
||||
I feel the wind's change on my skin\
|
||||
Now I'm ready to leave from this\
|
||||
Yet here I wait in isolation
|
||||
|
||||
I can see my last out alight\
|
||||
A shining new path to begin\
|
||||
But this knowledge is only blight\
|
||||
As here I rot in isolation
|
||||
|
||||
It's time to face the cold hard truth\
|
||||
The problem must be from within\
|
||||
A sad cherry on squandered youth\
|
||||
So here I'll die in isolation
|
||||
|
|
@ -1,35 +0,0 @@
|
|||
---
|
||||
title: Navigation
|
||||
week: 27
|
||||
date: 2025-07-09
|
||||
---
|
||||
we have these ancient ways within,\
|
||||
ocean currents and stars that spin\
|
||||
at dizzying heights they guide us far,\
|
||||
from mountain's peak to sandy bar
|
||||
|
||||
we navigate our world with hope,\
|
||||
without exploring we lose our scope\
|
||||
the planet shrinks and boundaries tighten,\
|
||||
our fear of other will surely heighten
|
||||
|
||||
go out to your place, make peace,\
|
||||
opportunities will never cease\
|
||||
new experiences every day,\
|
||||
life grows its brilliance along the way
|
||||
+++
|
||||
It's an art of minutiae\
|
||||
Reliant on fiducia
|
||||
|
||||
My conviction of winds prevail\
|
||||
Carried fourth by persistent gale\
|
||||
With trust that this compass points true\
|
||||
Keeping to headings we pursue
|
||||
|
||||
My belief the stars won't blink out\
|
||||
As constellations mark our route\
|
||||
With respect to the mappers chart\
|
||||
And Information there impart
|
||||
|
||||
Many small leaps of faith contrive\
|
||||
To keep my reckoning alive
|
||||
|
|
@ -1,29 +0,0 @@
|
|||
---
|
||||
title: Oblivion
|
||||
week: 26
|
||||
date: 2025-07-02
|
||||
---
|
||||
I read your poems after school one day\
|
||||
the feelings and fear never fell away\
|
||||
a secret care to keep you near\
|
||||
give private love, perpetual cheer
|
||||
|
||||
I can see you're doing better now\
|
||||
you share your life and love aloud\
|
||||
I am so glad you did not bend\
|
||||
my dear and sweet and precious friend
|
||||
+++
|
||||
My wager offered to the deep\
|
||||
Summoning beasts of it's abyss\
|
||||
Here I patiently wait to reap\
|
||||
Escape into oblivion
|
||||
|
||||
Answers go far and few between\
|
||||
Stealing away that once held bliss\
|
||||
The consequence of man's machine\
|
||||
Innocence of oblivion
|
||||
|
||||
To avoid disobedience\
|
||||
Now I can only reminisce\
|
||||
nevermore to experience\
|
||||
My handshake with oblivion
|
||||
|
|
@ -1,23 +0,0 @@
|
|||
---
|
||||
title: Obsession
|
||||
week: 17
|
||||
date: 2025-04-29
|
||||
---
|
||||
the rolling thought of\
|
||||
everything, that keeps me up at\
|
||||
night, led by errant\
|
||||
realities, that are not so\
|
||||
real, deranged --\
|
||||
obsessive, wondering as to my\
|
||||
fate, which others don't\
|
||||
consider, it could all end\
|
||||
tomorrow, I will feel\
|
||||
better
|
||||
+++
|
||||
An itch that just doesn't fade\
|
||||
Even if scratch is made\
|
||||
Till my skin is frayed
|
||||
|
||||
I ignored, though it stayed\
|
||||
Even when thoughts strayed\
|
||||
My obsession unswayed
|
||||
|
|
@ -1,39 +0,0 @@
|
|||
---
|
||||
title: Paranoia
|
||||
week: 10
|
||||
date: 2024-03-09
|
||||
---
|
||||
afraid of the winter,\
|
||||
its perpetual cold and dark\
|
||||
the fear pricks like a splinter,\
|
||||
my difference is stark
|
||||
|
||||
scared of this season,\
|
||||
its relentless beating chill\
|
||||
in my mind it will squeeze in,\
|
||||
forced to die on dismal hill
|
||||
|
||||
panicked, time is ticking,\
|
||||
days more sad and short than ever\
|
||||
amongst realities I am picking,\
|
||||
escape this one, my endeavour
|
||||
+++
|
||||
An action taken, only thought on brief\
|
||||
With arrogance as if a foolish chief\
|
||||
Who sees the world as being but his fief\
|
||||
How could this lead to anything but grief
|
||||
|
||||
Now what, It's done and cant be unwritten\
|
||||
This fallout's not something I can handle\
|
||||
I could run, find somewhere to stay hidden\
|
||||
Till none care to remember this scandal
|
||||
|
||||
But how could they just forget and move on\
|
||||
Knowing no retribution has been dealt\
|
||||
To satisfy the warrant of their rage\
|
||||
They'll surely come for me until it's wrought
|
||||
|
||||
So It's clear, must stay out of sight\
|
||||
To avoid what's coming\
|
||||
No matter how much it's deserved\
|
||||
No matter what it takes
|
||||
|
|
@ -1,40 +0,0 @@
|
|||
---
|
||||
title: Provision
|
||||
week: 24
|
||||
date: 2025-06-18
|
||||
---
|
||||
shelves stocked and bland\
|
||||
prepared for all unplanned\
|
||||
the end draws near\
|
||||
founding small fear\
|
||||
who knows what we can withstand
|
||||
+++
|
||||
Our voyage now draws out\
|
||||
Yet our captain wont about\
|
||||
Growing the crew's doubt\
|
||||
As the supplies run ever thin
|
||||
|
||||
So we'll drink down the blood wine\
|
||||
and we'll feast on flesh malign\
|
||||
That we pretend is just swine\
|
||||
Per sailor’s creed, provisions therein
|
||||
|
||||
We've run out the ship’s biscuit\
|
||||
It's been weeks since that brisket\
|
||||
Too hungry to resist it\
|
||||
We resort to our own kin
|
||||
|
||||
So we'll drink down the blood wine\
|
||||
and we'll feast on flesh malign\
|
||||
That we pretend is just swine\
|
||||
Per sailor’s creed, provisions therein
|
||||
|
||||
What was our daily pint of beer\
|
||||
Has dropped to a pot so shear\
|
||||
Towards John we now start to sneer\
|
||||
Cause he finished off the gin
|
||||
|
||||
So we'll drink down the blood wine\
|
||||
and we'll feast on flesh malign\
|
||||
That we pretend is just swine\
|
||||
Per sailor’s creed, provisions therein
|
||||
|
|
@ -1,22 +0,0 @@
|
|||
---
|
||||
title: Secret Garden
|
||||
week: 13
|
||||
date: 2025-04-01
|
||||
---
|
||||
The landscape was filled with hidings aplenty. Even though strange happenings often occurred here, curious people came in droves each summer. Lush greens and vibrant purples blanketed rich earth. Trees hushed solemnly. What if they found out what was drawing them all in?\
|
||||
"This place is incredible," I heard my next victims exclaim. After their footsteps stilled, I lurched out and grabbed them, two unexpecting lovers. Leaves crunched under heavy foot as I dragged them back to my home. The garden around us laughed wickedly, another story to savour.
|
||||
+++
|
||||
Crawling though thriving shrubbery\
|
||||
Giddy with anticipation\
|
||||
The gate to a world of wonder\
|
||||
Dewy from precipitation
|
||||
|
||||
Calming feelings that wash the senses\
|
||||
The tickle of cool morning breeze\
|
||||
Along sun rays that tender skin\
|
||||
For prickle from heaped deadfall leaves
|
||||
|
||||
My destination brings comfort\
|
||||
Sitting with my knees to my chest\
|
||||
Within a small void of the bush\
|
||||
Getting a moment of sweet rest
|
||||
|
|
@ -8,7 +8,7 @@ comfort on all sides\
|
|||
out there are monsters,\
|
||||
beneath I must hide
|
||||
|
||||
when darkness creeps in,\
|
||||
when darkness creeps in,\
|
||||
security squandered\
|
||||
towards evil and horror,\
|
||||
my mind has wandered
|
||||
|
|
|
|||
|
|
@ -1,38 +0,0 @@
|
|||
---
|
||||
title: Souvenir
|
||||
week: 18
|
||||
date: 2025-05-06
|
||||
---
|
||||
purple elephant cup,\
|
||||
rock from the office\
|
||||
alien planet magnet,\
|
||||
crystals, here before us
|
||||
|
||||
amongst my life,\
|
||||
I find these things,\
|
||||
wherever I dare go\
|
||||
when I'm in strife,\
|
||||
their memory clings,\
|
||||
not really just for show
|
||||
|
||||
leftover lego pieces,\
|
||||
skirt from Vanuatu\
|
||||
worked-on wooden box,\
|
||||
trinkets, I bought two
|
||||
|
||||
deep and hidden,\
|
||||
they hide away,\
|
||||
pretend to disappear\
|
||||
history unwritten,\
|
||||
hard to convey,\
|
||||
a lifelong souvenir
|
||||
+++
|
||||
A plush ape of joy immature\
|
||||
Tropical lamps to help endure\
|
||||
Twisted glass of latent allure\
|
||||
And golden flakes that's so unsure
|
||||
|
||||
All these items held souvenir\
|
||||
For memories kept ever dear\
|
||||
Recalling times no longer here\
|
||||
So the feelings can persevere
|
||||
|
|
@ -1,51 +0,0 @@
|
|||
---
|
||||
title: Susceptible
|
||||
week: 16
|
||||
date: 2025-04-22
|
||||
---
|
||||
you are not immune,\
|
||||
your blind spots will prevail -\
|
||||
the evil's out to get us,\
|
||||
hook, thorn, lie and trail
|
||||
|
||||
'I'm not the problem,' you say with pride,\
|
||||
to anyone who listens -\
|
||||
but while you turn your back to them,\
|
||||
they're pulling out munitions
|
||||
|
||||
'I don't think there's an issue,'\
|
||||
you declare without a search -\
|
||||
it's easy to miss the war\
|
||||
from up there on that perch
|
||||
|
||||
'these people just complain too much,'\
|
||||
you moan and whinge and spout -\
|
||||
how lucky you are to live a life\
|
||||
with little to grumble about
|
||||
|
||||
'supports are good, I guess,\
|
||||
but some people are just bludging,'\
|
||||
when all this push comes to shove,\
|
||||
it's you that we'll be judging
|
||||
|
||||
look within, think for yourself,\
|
||||
you've been far too susceptible\
|
||||
in ignorance you may feel bliss,\
|
||||
but disregard proves unacceptable
|
||||
+++
|
||||
Dressed up nice, but why I'm unsure\
|
||||
To mourn a man I met not knew\
|
||||
Yet I'll attend and act mature\
|
||||
And show grief even if untrue
|
||||
|
||||
Sitting worried how it appears\
|
||||
Given the lack of woe I've shown\
|
||||
I see her there, eyes full of tears\
|
||||
Such I feel welling in my own\
|
||||
In this I discover new fears\
|
||||
Of a world where I'm not alone
|
||||
|
||||
An effect which I was aware\
|
||||
Yet for myself was skeptical\
|
||||
In this bizarre awkward affair\
|
||||
I've found myself susceptible
|
||||
|
|
@ -1,20 +0,0 @@
|
|||
---
|
||||
title: The Knife
|
||||
week: 28
|
||||
date: 2025-07-16
|
||||
---
|
||||
a tool for many uses\
|
||||
a blade that seldom muses\
|
||||
the edge dramatic\
|
||||
feeling deep, somatic\
|
||||
and from you, the blood, it oozes
|
||||
+++
|
||||
It cuts so deep into my flesh\
|
||||
A spot left raw by bruise unknown\
|
||||
Weakened right the way down to bone\
|
||||
Throughout time as though damage fresh
|
||||
|
||||
Something you had meant to be kind\
|
||||
But my knee-jerk is to despise\
|
||||
So I put up a foolish guise\
|
||||
And instinctively stab out blind
|
||||
|
|
@ -82,8 +82,7 @@ Yet still I strive this feat
|
|||
Hydra of error found\
|
||||
A web of fixes wound\
|
||||
Too much going on here\
|
||||
Function become unclear
|
||||
|
||||
Function become unclear\
|
||||
Inertia left uncapped\
|
||||
Cycle of ego trapped\
|
||||
Effort I must sustain\
|
||||
|
|
|
|||
|
|
@ -1,23 +0,0 @@
|
|||
---
|
||||
title: Unclimbable
|
||||
week: 20
|
||||
date: 2025-05-20
|
||||
---
|
||||
I found this big old hill\
|
||||
Up it I cannot climb\
|
||||
Instead here I'll use my quill\
|
||||
Maybe I can make a rhyme
|
||||
|
||||
At the base here I am stuck\
|
||||
No writing on my page\
|
||||
My silly thoughts all run amok\
|
||||
Lost in another age
|
||||
+++
|
||||
Grasping vines slick with dew\
|
||||
The thorns gripping like glue\
|
||||
Limbs catching a tangle\
|
||||
Grant a moments dangle\
|
||||
Hold options reducing\
|
||||
Making easy choosing\
|
||||
Task thought infeasible\
|
||||
So found achievable
|
||||
|
|
@ -1,29 +0,0 @@
|
|||
---
|
||||
title: Under Cover of Darkness
|
||||
week: 21
|
||||
date: 2025-05-27
|
||||
---
|
||||
slinking by the side-lines\
|
||||
creeping round the crook\
|
||||
the cat goes where it pleases\
|
||||
when you see it with that look
|
||||
|
||||
prowling in its prison\
|
||||
tiptoe through trapdoor\
|
||||
when the cat here wants to play\
|
||||
playing must mean war
|
||||
+++
|
||||
I now recollect, with increased alarm\
|
||||
My brazen path, a trail of treacheries\
|
||||
It spurs the urge to run, retire the harm\
|
||||
Left hidden in forgotten memories
|
||||
|
||||
I now recount, unease clawing my skin\
|
||||
My careless words, said quick and uncontrolled\
|
||||
It holds the tongue silent, cloaking the sin\
|
||||
Left shrouded in tales of a past untold
|
||||
|
||||
I now confront, in fear of the dictums\
|
||||
The damage I have done, unknown in breadth\
|
||||
I'll keep myself alone, far from victims\
|
||||
Till forever buried by death's escape
|
||||
|
|
@ -1,39 +0,0 @@
|
|||
---
|
||||
title: Violence
|
||||
week: 15
|
||||
date: 2025-04-15
|
||||
---
|
||||
I don't want to write about violence\
|
||||
it's much too hard to think about\
|
||||
all the pain and hurt we give each other\
|
||||
concealed with hate and doubt
|
||||
|
||||
a raging river, the endless stream\
|
||||
we all fall in sometimes\
|
||||
perpetrator, victim too\
|
||||
complex connection paradigms
|
||||
|
||||
it's normal here, will always be\
|
||||
at least that's how it seems\
|
||||
so many find this status quo\
|
||||
is something of their dreams
|
||||
|
||||
mild mannered monsters\
|
||||
hiding in plain sight\
|
||||
they lie in wait, unknowing\
|
||||
they'll set your life alight
|
||||
+++
|
||||
An act so vile\
|
||||
Not done to one\
|
||||
But rather left\
|
||||
To quell an it
|
||||
|
||||
The triumph felt\
|
||||
May quench the fear\
|
||||
Of notions found\
|
||||
On premise false
|
||||
|
||||
But if allowed\
|
||||
To declass one\
|
||||
The wound that's dealt\
|
||||
Will shackle all
|
||||
|
|
@ -1,34 +0,0 @@
|
|||
---
|
||||
title: Voyage
|
||||
week: 19
|
||||
date: 2025-05-13
|
||||
---
|
||||
humongous high beam waves\
|
||||
crashing with a roar\
|
||||
lashing on our hull\
|
||||
beneath the cabin floor
|
||||
|
||||
across the sea we travel\
|
||||
destinations not so near\
|
||||
this voyage gently carried\
|
||||
by unrelenting fear
|
||||
|
||||
land on the horizon\
|
||||
speaks out to us with hope\
|
||||
peered at from afar\
|
||||
with brass and glass turned scope
|
||||
|
||||
the ending's now in sight\
|
||||
as we wash up by the dock\
|
||||
bashed and bruised and battered\
|
||||
our sea-torn home-bound flock
|
||||
+++
|
||||
Sails filled with billows, spurring our bows breach\
|
||||
The morns brisk wind brings waves of frigid spray\
|
||||
Maintaining course, sail trimmed for a beam reach.\
|
||||
Our only trace a wake in quick decay
|
||||
|
||||
At nights fall surrounded by glistening\
|
||||
The starry reflections on moving seas\
|
||||
But ye beware of late night listening\
|
||||
The sirens song turns sweet the bitter breeze
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
import gleam/time/calendar
|
||||
import birl
|
||||
import lustre
|
||||
import lustre/element/html
|
||||
import promptbox/parser
|
||||
|
|
@ -29,7 +29,7 @@ fn view(_model) {
|
|||
slug: "ebben-flow",
|
||||
title: "ebben flow",
|
||||
week: 1,
|
||||
date: calendar.Date(1970, calendar.January, 1),
|
||||
date: birl.now(),
|
||||
post_p: "No",
|
||||
post_j: "OK",
|
||||
),
|
||||
|
|
|
|||
|
|
@ -1,9 +1,9 @@
|
|||
import birl
|
||||
import gleam/dict
|
||||
import gleam/int
|
||||
import gleam/list
|
||||
import gleam/result
|
||||
import gleam/string
|
||||
import gleam/time/calendar
|
||||
import jot
|
||||
|
||||
pub type Post {
|
||||
|
|
@ -11,7 +11,7 @@ pub type Post {
|
|||
slug: String,
|
||||
title: String,
|
||||
week: Int,
|
||||
date: calendar.Date,
|
||||
date: birl.Time,
|
||||
post_p: String,
|
||||
post_j: String,
|
||||
)
|
||||
|
|
@ -19,7 +19,6 @@ pub type Post {
|
|||
|
||||
pub fn parse_post(slug: String, content: String) -> Post {
|
||||
let assert [_, frontmatter, posts] = string.split(content, "---\n")
|
||||
|
||||
let frontmatter =
|
||||
frontmatter
|
||||
|> string.split("\n")
|
||||
|
|
@ -28,8 +27,7 @@ pub fn parse_post(slug: String, content: String) -> Post {
|
|||
False -> Error(Nil)
|
||||
True -> {
|
||||
let assert [key, value] =
|
||||
string.split(entry, ":")
|
||||
|> list.map(string.trim)
|
||||
string.split(entry, ":") |> list.map(string.trim)
|
||||
|
||||
Ok(#(key, value))
|
||||
}
|
||||
|
|
@ -51,25 +49,9 @@ pub fn parse_post(slug: String, content: String) -> Post {
|
|||
|> result.try(int.parse)
|
||||
|> result.unwrap(-1),
|
||||
date: dict.get(frontmatter, "date")
|
||||
|> result.try(parse_date)
|
||||
|> result.unwrap(calendar.Date(1970, calendar.January, 1)),
|
||||
|> result.try(birl.parse)
|
||||
|> result.unwrap(birl.now()),
|
||||
post_p:,
|
||||
post_j:,
|
||||
)
|
||||
}
|
||||
|
||||
fn parse_date(time_str: String) -> Result(calendar.Date, Nil) {
|
||||
case
|
||||
time_str
|
||||
|> string.split("-")
|
||||
|> list.filter_map(int.parse)
|
||||
{
|
||||
[year, month, date]
|
||||
if year > 2000 && month > 0 && month < 13 && date > 0 && date < 31
|
||||
-> {
|
||||
let assert Ok(month) = calendar.month_from_int(month)
|
||||
Ok(calendar.Date(year, month, date))
|
||||
}
|
||||
_ -> Error(Nil)
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,7 +1,6 @@
|
|||
import gleam/int
|
||||
import gleam/list
|
||||
import lustre/attribute.{attribute, class}
|
||||
import lustre/element
|
||||
import lustre/element/html
|
||||
import promptbox/parser
|
||||
|
||||
|
|
@ -31,24 +30,20 @@ pub fn home(posts: List(parser.Post)) {
|
|||
}
|
||||
|
||||
pub fn individual(post: parser.Post) {
|
||||
html.div([class("container px-4 mx-auto")], [prompt_element(post)])
|
||||
html.div([class("container px-4 mx-auto")], [prompt_element(post)])
|
||||
}
|
||||
|
||||
fn prompt_element(post: parser.Post) {
|
||||
html.article([class("post py-8"), attribute.id(post.slug)], [
|
||||
html.h2([class("prompt_title text-center text-4xl font-bold italic mb-1")], [
|
||||
html.a([attribute.href("/prompts/" <> post.slug)], [html.text(post.title)]),
|
||||
]),
|
||||
html.h5([class("prompt_week text-center italic text-slate-700 mb-5")], [
|
||||
html.text("Week " <> int.to_string(post.week)),
|
||||
]),
|
||||
html.h2([class("prompt_title text-center text-4xl font-bold italic mb-1")], [html.text(post.title)]),
|
||||
html.h5([class("prompt_week text-center italic text-slate-700 mb-5")], [html.text("Week " <> int.to_string(post.week))]),
|
||||
html.div([class("flex flex-col")], [
|
||||
html.article([class("prose text-left")], [
|
||||
element.unsafe_raw_html("", "div", [], post.post_p),
|
||||
html.div([attribute("dangerous-unescaped-html", post.post_p)], []),
|
||||
html.cite([class("text-slate-800")], [html.text("~ P")]),
|
||||
]),
|
||||
html.article([class("prose text-right self-end")], [
|
||||
element.unsafe_raw_html("", "div", [], post.post_j),
|
||||
html.div([attribute("dangerous-unescaped-html", post.post_j)], []),
|
||||
html.cite([class("text-slate-800")], [html.text("~ J")]),
|
||||
]),
|
||||
]),
|
||||
|
|
|
|||
|
|
@ -1,4 +1,6 @@
|
|||
import gleam/time/calendar
|
||||
import birl
|
||||
import gleam/io
|
||||
import gleam/result
|
||||
import gleeunit
|
||||
import gleeunit/should
|
||||
import lustre/element
|
||||
|
|
@ -11,24 +13,21 @@ pub fn main() {
|
|||
gleeunit.main()
|
||||
}
|
||||
|
||||
pub fn parse_basic_post_test() {
|
||||
"---
|
||||
title: a title
|
||||
week: 1
|
||||
date: 2025-01-01
|
||||
---
|
||||
Post content 1
|
||||
+++
|
||||
Post content 2"
|
||||
|> parser.parse_post("a-title", _)
|
||||
|> should.equal(parser.Post(
|
||||
slug: "a-title",
|
||||
title: "a title",
|
||||
week: 1,
|
||||
date: calendar.Date(2025, calendar.January, 1),
|
||||
post_p: "<p>Post content 1</p>\n",
|
||||
post_j: "<p>Post content 2</p>\n",
|
||||
))
|
||||
// gleeunit test functions end in `_test`
|
||||
pub fn hello_world_test() {
|
||||
let post =
|
||||
simplifile.read("./priv/posts/ebb_and_flow.md")
|
||||
|> result.unwrap("")
|
||||
|> parser.parse_post("ebb_and_flow")
|
||||
|> io.debug
|
||||
|
||||
io.debug(birl.to_date_string(post.date))
|
||||
|
||||
files.read_all_posts()
|
||||
|> io.debug
|
||||
|
||||
1
|
||||
|> should.equal(1)
|
||||
}
|
||||
|
||||
pub fn generate_test() {
|
||||
|
|
|
|||
|
|
@ -1,12 +0,0 @@
|
|||
import { defineConfig } from "vite";
|
||||
import gleam from "vite-gleam";
|
||||
import tailwindcss from "@tailwindcss/vite";
|
||||
|
||||
export async function run_vite_server() {}
|
||||
|
||||
export default defineConfig({
|
||||
server: {
|
||||
port: 1337,
|
||||
},
|
||||
plugins: [gleam(), tailwindcss()],
|
||||
});
|
||||
Loading…
Add table
Reference in a new issue