About Stacks Guru

Stacks Guru is born from the need to search the vast number of videos out there on stacks built for Stacks Pro and the Stacks 5 plugin for Rapidweaver.

We have scraped over 500 videos to get the transcripts for each in order to make the spoken word searchable.

Please use this free tool to help you learn and discover the awesome power that Stacks and the stacks made for Stacks have to offer.

Stacks Guru

Video Reference

Externals Demo thumbnail

Externals Demo

08/23/2022
How to manage the Stacks Externals in your RapidWeaver project.How to manage the Stacks Externals in your RapidWeaver project.

Transcript

00:01 hey folks this is isaiah from your head
00:03 software
00:05 today we're going to be talking about
00:06 externals um
00:08 and uh
00:11 yeah there's been a little bit of
00:13 hubbub on the forum about externals and
00:16 how they can kind of
00:19 migrate from one project to another
00:22 sometimes without you looking
00:24 and
00:25 yeah tend to inflate the size of a
00:27 project especially if the externals have
00:30 lots of image data or maybe even other
00:33 externals inside of them
00:36 so today i'd like to do a little
00:38 demonstration to show you
00:41 how externals
00:43 can jump from one project to another uh
00:46 why they jump from one project to
00:48 another
00:49 and
00:50 lastly what you can do about it of
00:52 course that
00:55 that's the most important thing okay so
00:58 um
01:01 let me first uh show you what i have so
01:03 um
01:04 you can see
01:06 nothing on my sleeves so to speak
01:09 can see
01:09 what we're starting with as our project
01:12 here
01:13 i have a little test project called test
01:15 external
01:16 saved here
01:18 just on my desktop
01:20 and i've gone ahead and removed all of
01:23 the external files themselves so
01:27 there aren't any
01:28 outside externals externals can live as
01:31 part of the project or
01:34 actually as a file
01:37 and if they exist as a file that's a way
01:40 that you can share them with a colleague
01:42 or
01:43 move them one from one project to
01:45 another
01:46 but you can also just share the project
01:49 itself
01:50 the project itself contains
01:53 those externals like in this case i have
01:56 two externals here as part of this
01:58 project oops i double clicked
02:02 and
02:03 i also have some other externals
02:06 so there's five more externals in this
02:08 project
02:10 that we're not using right now
02:14 stacks doesn't remove them immediately
02:17 when you
02:18 stop using an external
02:21 it saves them until
02:23 you
02:24 take some manual action to
02:27 eliminate them from the file
02:29 and it does this just in case you need
02:31 to use them again
02:33 but also in cases like you delete and
02:36 then undo
02:38 so even if you delete save and then undo
02:44 that external will still go on living
02:46 even though you've
02:47 saved the project without it in it
02:51 so
02:52 yeah in that case stack saves it to sort
02:56 of a third place
02:58 that exists
02:59 in between all of the files
03:02 and i can show you how to eliminate
03:05 externals completely from your project
03:08 um if you want to do that too
03:11 so uh
03:12 first off though let's show you why
03:15 externals
03:17 jump from one project to another
03:19 okay so to do this demonstration i want
03:22 to start stacks in a way
03:25 that these externals have not loaded
03:27 into memory
03:29 and we'll do that by going to this third
03:31 page here it's a blog page
03:34 without any blog entries
03:36 so um just to keep it simple here i'm
03:39 going to uh save the project in this
03:42 state
03:43 so um it's saved on this blog page
03:46 and then i'm going to quit rapidweaver
03:49 entirely
03:51 i'm doing that so that um not only are
03:53 those stacks not loaded but
03:57 not only are those externals not loaded
03:59 but stacks isn't even loaded at all
04:03 okay so now i'm going to open up my
04:05 project
04:08 we're still on the blog page
04:10 and notice
04:12 we have not yet
04:14 loaded stacks at all so stacks
04:17 is kind of
04:19 it exists
04:20 as a plug-in but rapidweaver hasn't
04:23 activated it yet so it doesn't know
04:26 about externals it doesn't know the
04:28 universe exists at all
04:31 now we're going to
04:33 create a new project and i'm going to
04:35 basically uh
04:37 try to create something similar so we'll
04:40 start with a blog page an empty blog
04:42 page and i will save this um and we'll
04:45 just call it test
24:48 so there it is is in the finder
04:54 and
04:55 i'm going to copy over this no externals
04:57 page just going to drag and drop
05:00 so that made a copy and notice we made a
05:03 copy that data
05:05 migrated from one project to another
05:07 the stacks data from that page
05:10 and stacks never loaded
05:13 stacks never even had the chance to say
05:15 yes or no good or bad
05:18 i didn't get to watch that
05:21 that data migrate
05:23 it has no say in it whatsoever
05:26 it's part of
05:28 the rapidweaver
05:30 projects and
05:32 rapidweaver can move that data around
05:34 and even save it to a new project
05:36 without
05:37 ever loading stacks
05:41 into memory and
05:43 making stacks run as as a
05:46 a program itself
05:49 all right so i'm gonna save that project
05:52 and uh we won't say this one we'll just
05:54 leave that one as is
05:56 and we'll quit
05:57 okay so now i'm gonna open up this um
06:00 second project we created
06:03 so the question is did the stax data
06:06 migrate i hope so um
06:09 i haven't done this before so uh yeah it
06:12 should um so here we go
06:15 we click on the no externals page and we
06:18 have uh our stax data
06:20 with references to um well these are
06:23 just built-in ones but it could have
06:25 references even to third-party stacks
06:27 and that data will migrate whether
06:30 stacks likes it or not um rapidweaver
06:32 did all the work
06:34 and stacks just went along for the ride
06:38 but it looks like it worked um and
06:40 furthermore it didn't bring any
06:42 externals along with it so
06:45 the externals from that other project
06:47 didn't come along for the ride because
06:49 they exist only as that on that
06:51 externals page
06:53 this page which didn't have any
06:55 externals on it and never has um
06:58 it never acquired those externals so
07:01 when i migrated the data
07:04 it didn't come along
07:06 all right so i'm going to save it again
07:09 on this blog page quit
07:11 and
07:13 we're going to do the same experiment
07:15 again
07:16 this time with externals and hopefully
07:19 the externals will come along for the
07:20 ride okay so we're going to open up our
07:24 other page here
07:26 so
07:27 now we're going to duplicate the has
07:29 externals page
07:31 and
07:32 boom we'll put it right there
07:34 again i'm going to save this
07:38 and close it and not save this one
07:43 leave that one as is and quit okay so uh
07:48 we migrated that page um
07:51 again stacks
07:52 wasn't loaded at the time it doesn't
07:54 know whether that page migrated or not
07:58 but hopefully that externals data
08:01 exists as part of that page and came
08:03 along for the ride so here we go
08:07 it looks like we got what we wanted
08:10 our externals are here and here and even
08:14 uh the extras
08:16 that had existed as part of this page in
08:19 the past they came along for the ride
08:20 too
08:22 so stacks
08:24 is storing that data along with this
08:26 page
08:28 and when that page migrates
08:30 even though stacks wasn't even running
08:33 that data came along for the ride
08:36 now
08:38 in this case that was great that was
08:39 what we intended to happen um
08:43 but uh
08:46 you'll notice that there was a lot of
08:48 automatic behavior there
08:51 and
08:52 staxx is behaving very conservatively um
08:56 it has uh seven stacks of which you're
08:59 only using two right now
09:02 but because you copied the page that has
09:05 had those stacks in the past
09:08 the other five came along for the ride
09:10 too
09:12 in this case that's what we intended but
09:15 a lot of times
09:17 that happens and you didn't intend it
09:21 it can be a little bit difficult to get
09:23 rid of data
09:24 uh once it's there so
09:27 um i'm gonna try to do one more
09:29 demonstration here and again i haven't
09:32 done this so
09:33 um
09:34 i'm kind of winging it here i set these
09:36 projects up
09:37 hoping that they would work in this way
09:39 but um
09:41 not 100 certain that this is going to
09:43 happen because
09:44 there's a lot of complex automatic
09:46 behavior here and even for me the guy
09:48 that wrote it um i wrote it like
09:51 years ago
09:54 i'm not
09:55 100 certain i remember every last little
09:58 detail of when
10:00 stacks will decide to copy uh
10:03 data along
10:04 with a project and when it won't um
10:08 there's lots of little corner cases that
10:11 um
10:12 i tried to take care of um to make sure
10:14 that data never gets deleted uh
10:19 yeah and it can be difficult to exercise
10:21 them all
10:22 okay so
10:24 um
10:26 this time i'm going to open up this
10:27 project that has externals in it
10:31 and i'm also going to open up an empty
10:33 project
10:35 so this one has no externals it has
10:37 nothing in it in fact
10:40 um
10:42 but i'm going to do something with this
10:44 page with externals on it so i'm gonna
10:47 put an external here
10:49 maybe delete it
10:50 and
10:51 then i'm gonna come back to this page
10:53 and i'm gonna make a change
10:59 i thought that would have done it
11:02 maybe it did um i'm gonna save a copy of
11:05 that and we'll quit
11:08 like i said i might need to do this a
11:09 couple times um
11:12 it can be difficult to um
11:14 get it right yeah no i didn't i didn't
11:16 get it okay so let's try it in the other
11:19 order so i have the empty page here
11:22 and let's open up the one with externals
11:25 in it
11:27 yeah that did it
11:28 okay so now we'll make a change
11:33 and we'll save the project
11:36 quit
11:38 and i'll open up my theoretically empty
11:41 project
11:42 and notice i didn't purposefully
11:46 um
11:46 make any changes i didn't even touch an
11:49 external that time
11:51 but
11:52 because of the order that i loaded them
11:55 in and some other factors i'm sure
11:58 stax decided that the best thing
12:02 was just in case
12:05 to move the stacks to move the externals
12:07 also to this project
12:10 because something could have happened
12:11 behind its back when it wasn't looking
12:13 um
12:14 obviously
12:16 it shouldn't have happened in this case
12:18 there was only one page we didn't
12:20 actually do anything um stacks is
12:22 behaving over overly
12:25 overly conservatively
12:27 um
12:28 and uh
12:30 yeah the externals migrated to what
12:32 shouldn't
12:34 a project that shouldn't
12:35 have
12:36 them
12:38 so
12:39 if this happens
12:41 to your project it happens a lot of
12:43 times when people
12:46 view demo projects that come with stacks
12:49 or
12:50 some people have purchased a sort of a
12:53 template system from a developer who
12:55 sets everything up and they provide some
12:58 externals or maybe accidentally provide
13:00 some externals
13:02 and those externals have come in that
13:04 project and you open that up along with
13:07 uh your project file
13:10 maybe even just to have a look and
13:12 suddenly you've gained
13:14 25 megabytes of of external data
13:18 so how do you get rid of it so um
13:21 the first thing i'm going to tell you to
13:23 do is uh
13:25 start
13:27 by um quitting rapidly
13:29 so
13:31 once rapidweaver is open and stacks is
13:34 running
13:37 the stacks library sort of exists in
13:39 memory and it's not going to unload
13:42 until you quit rapidweaver
13:44 the stacks library kind of exists
13:46 between pages it's not part of one page
13:48 or another page and so it's just going
13:51 to hang out in memory until you quit so
13:55 the first thing to do is quit the second
13:56 thing to do
13:58 is
13:59 make sure your externals folder is empty
14:01 now
14:02 if there are externals that you're using
14:04 um
14:05 you'll want to make sure that you save a
14:07 copy of those too i don't want you to
14:09 actually lose data that you intend to
14:12 keep
14:13 so um but if you just want to get rid of
14:16 them all
14:17 um
14:18 yeah
14:19 nuke this folder
14:21 uh throw it all to the trash or or just
14:23 move it to a safe place um
14:26 now
14:27 let's open up our project that we would
14:29 like to
14:31 clean the externals from
14:36 so the second uh
14:38 part of this
14:40 process um after we've we've removed uh
14:44 all the externals
14:47 and
14:48 we've also um
14:50 you know quit and restarted rapidweaver
14:54 we've only opened
14:55 the project that we're focusing on we
14:58 haven't opened any other projects at all
15:02 and you notice we have those those uh
15:04 seven externals none of which we want
15:08 so we're gonna tell stacks now
15:10 to just get rid of them so we select
15:12 them all well we can just go to the
15:14 external area and select everything
15:17 there
15:18 and then i'm going to control click on
15:20 it um
15:22 you can also use you know that
15:25 gear bit button there but control click
15:27 works too um
15:30 or or right click
15:31 and
15:32 i'm going to say remove from library
15:36 and it will say
15:38 this will remove the parsers from the
15:39 library but not from your document so um
15:43 if
15:44 uh
15:45 if those externals exist
15:48 somewhere else in your document like on
15:50 another page
15:51 or
15:52 inside of a partial on another page i
15:55 mean they can be anywhere right um
15:57 stacks is going to save them there too
16:01 but if the only place they existed was
16:03 in the library there
16:05 and then that is the case here because
16:07 we only have this one page
16:10 then we're going to save the project
16:12 like this
16:15 and we'll quit
16:17 and now
16:18 hopefully those uh
16:20 those externals don't exist um
16:23 inside of that project they don't exist
16:26 in the finder
16:28 that should be it i i hope um
16:31 like i said i haven't done this demo so
16:34 uh
16:35 let's see let's see if um
16:38 it actually works
16:40 so um yeah it looks like uh
16:43 we got away with it um so
16:45 uh we have our same document um but this
16:49 time no externals
16:53 so uh what have we learned we've learned
16:55 um
16:56 number one that externals can jump from
16:59 one project to another if you have those
17:01 projects both open at the same time
17:04 especially
17:05 if you load a project that has a lot of
17:08 externals into it and you look at the
17:11 pages where those externals are used or
17:14 where they have been used in the past
17:17 then
17:18 once those externals are inside of the
17:21 library
17:23 they will they can migrate from one
17:25 project to another they they don't
17:27 always stacks
17:29 does it when it thinks um it should
17:33 but in some cases it's not even when
17:36 stax has loaded so that external data
17:40 can exist
17:43 inside of a page
17:45 and even just one rapidweaver is moving
17:47 that data around from one project to
17:50 another even without stacks running at
17:52 all
17:55 that project that data can
17:58 jump from one project to another or be
18:00 removed even um when stax isn't looking
18:04 so
18:05 for that reason stax behaves
18:08 very conservatively
18:10 and whenever it thinks
18:12 data might need to be in another project
18:17 it will save it as part of that project
18:19 too
18:23 now the last thing we we did was
18:27 we removed
18:28 the external data and we did that by
18:32 first
18:33 eliminating it from our document we're
18:34 not using these externals second we
18:38 uh emptied out our externals folder
18:43 and lastly we selected those files and
18:45 chose remove from library
18:47 so that removed them from all three
18:49 places they're not in the page
18:52 they're not in the finder
18:54 they're not in the library once you've
18:56 removed them from all three places you
18:58 save the project and that project will
19:00 be free of externals
19:04 all right so um
19:06 that is probably way more about
19:08 externals than you uh ever hope to learn
19:11 i hope everybody learns something
19:13 interesting um and uh
19:17 yeah until next time um
19:19 be sure to check out uh
19:22 our new version of stacks that comes out
19:24 soon um i don't know if you've noticed
19:26 it we were using it um during this whole
19:29 demo um we have a new stacks folder
19:33 and some really fun stuff
19:35 uh
19:37 like
19:39 new smart projects
19:41 that allow you to
19:43 um
19:45 customize how your uh
19:47 your library exists
19:50 along with some other
19:51 you know fun stuff
19:53 um that
19:54 maybe we haven't had in the past um
19:58 anyway uh
20:00 check that out and um
20:03 let me know what you think
20:05 i'll talk to you later"}]
Search the page
0