polypush135

polypush135

I have made a simple static site using nimble publisher and followed along with the tut from fly.io Crafting your own Static Site Generator using Phoenix · The Phoenix Files

That said I have a simular build() function as from in the tut that just simply compiles the markdown files using earmark and so on with heex and then writes the to a given dir via File.write!

I’ve noticed that if I start a iex session or even run a cowboy server that if I call said build function while in IEx that it will not write anything different from when it started.

If I call recompile after I’ve made a change to a .md file but before I run said build() then it works. I assume this is because the other markdown files are still in memory even though I’ve edited a file, until I recompile that new edit wont be in memory. This is my assumption.

All of that is a non issue when calling from a mix task in a separate terminal session and build can be recalled and works as expected. Only time I see an unexpected behavor is when running the command from in iex or from a genserver that was watching files.

My question is: Is this assumption correct and what can I do about it?

Showing Posts 1 to 5

andyleclair

andyleclair

Yes, I think since NimblePublisher is storing the posts as a module attr, you’d need to recompile. I just ran into this issue myself! I was trying to code up a filesystem watcher just as I’m assuming you are.

I solved this for now by using System.cmd("mix", ["site.build"]) instead of Mix.Task.run("site.build").

jswanner

jswanner

What if you used rerun/2 instead?

mudasobwa

mudasobwa

Creator of Cure

The issue is reenabling tasks was kinda flawed and had been fixed days ago. The following would do:

Enum.each(~w|compile compile.all compile.elixir|, &Mix.Task.reenable/1)
Mix.Task.run("site.build")

On trunk we now have Mix.Task.Compiler.reenable(compilers: compilers) which would do, too.

andyleclair

andyleclair

rerun/2 also didn’t work for me. it would work to run the mix tasks, but because of the recompile, it wouldn’t work. . @mudasobwa do you know when that’s going to hit a point release?

mudasobwa

mudasobwa

Creator of Cure

v1.19 here is a PR https://github.com/elixir-lang/elixir/pull/13771#issuecomment-2564704542 merged.

— All posts loaded —

Where Next? Top

Trending in Questions Top

RSP87
I’m working on a project that simulates the bumbl example in the programming phoenix book. It acts almost like an email client. We have a...
New
RemyXRenard
I’m seeing that a list inside a Kino.DataTable will be interpreted as a charlist, even if the Kino.configure() is set to charlists: :as_l...
New
nseaSeb
Hello, I know there is an approach for handling lists that allows for optimized traversal, but I can’t recall the specific method (somet...
New
velrest
So my question is quite simple and i have found no conclusive answer on forum, google or AI. Should we use :erlang.float for Integer to ...
New
samoloth
Hi, I’ve just set up an application with ash_authentication. There is only magic link strategy for now, so there is no confirmation add o...
New
FlyingNoodle
If a change or preparation module uses Ash.Changeset.get_argument/2 or Ash.Query.get_argument/2 (or any of the other get_argument functio...
New
ryanwinchester
apply_graft/2 doesn’t rewrite an add_many sub-workflow’s deps on an add step. Grafted jobs cancel with “upstream job was deleted” Version...
New

Other Trending Topics Top

mudasobwa
I am happy to introduce the very α version of the new programming language compiled to BEAM. Welcome Cure. It has literally three kille...
New
marciok
Hi there! We created Gust: A task orchestrator inspired by Airflow. For those who have never heard about Aiflow, it’s a Python-based wor...
New
jimsynz
Beam Bots (or just BB for short) is a framework for building fault-tolerant robotics applications in Elixir using familiar OTP patterns. ...
New
Dmk
Xamal is a deployment tool for Elixir apps that deploys native releases to bare metal servers over SSH. It’s a port of GitHub - basecamp/...
New
Damirados
Hello everyone. After busy few months I am happy to announce v0.1.0 of Emerge & Solve. They are GUI (Emerge) and State management (S...
New
netoum
Corex is an accessible, unstyled UI component library for Phoenix that integrates Zag.js state machines using Vanilla JavaScript and Live...
New

We're in Beta

About us Mission Statement

Options

Thread Display Mode




Thread Preview

Skip Thread Previews