Massive Bloat

I’ve been very busy prepping a new upgrade to Stacks, so I’m afraid I’ve missed a lot of the chatter here. So first off, let me apologize for that.

But after reading a few of the posts here I can see that some folks are definitely confused about what’s going on and why.

So I’ve made a little video about Externals that I hope answers at least a few of the questions here. I tried to cover three things:

  • What exactly is going on
  • Why it happens
  • What you can do to manage it

Even though I’m moving pretty fast, it’s a complex topic and talking about it in detail takes some time – so it is a 20 minute video. But do take the time to watch, I hope it has enough detail that everyone will learn a little bit they didn’t know.

But let me also say I’m sorry this part of the Stacks experience is a bit confusing. When I designed some of these things RapidWeaver worked a bit differently and in a way that made it easier for Stacks to keep track of where something like an External or a Partial was was needed and where it wasn’t.

In today’s RapidWeaver only parts of a project are active at any one time. This is great as it allows projects to open in a fraction of the time – but comes with a hitch – sometimes the project can change even when Stacks is not yet active.

I demonstrate this is the video. Hopefully it’s clear why Stacks sometimes behaves conservatively to preserve data even in cases where you didn’t expect it to.

And finally I demonstrate how to eliminate unwanted externals from your project once and for all. But please be aware this can be quite a bit more difficult on a large project where there are many pages that have Externals data stored in them.
If you follow along and still can’t seem to get rid of some pesky externals data – send me a copy of your project and I’ll see what I can do.

I should also say that Partails, Externals, and Templates all behave slightly different in these cases. Templates, because they’re locked down, we can make some assumptions there. Partials live in only a single document, so we never have to worry if they’re needed in another project file.

But externals, with their super-power of being able to be shared from project to project – saved and sent to colleagues – this super power comes with a super weakness too: we must always worry that the data is needed in any open file and migrate it whenever there’s any chance of that.

For that reason you need to be a little bit careful when you use externals yourself or share them with others – because they may jump from project to project or move along with pages where you didn’t intend for them to move.

Lastly, I think it’s worth mentioning that I’ve been working on a Stacks app for later this year. One of the advantages of Stacks owning the whole app is that cases like Externals can be managed a bit more smoothly. Stacks always knows every page that needs a externals and can easily decides whether the data should be migrated from one project to another. Because the project files were designed from the ground up to work with complex data we can manage all this data in a way that makes sense and doesn’t require so much duplication.

13 Likes