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

Leave a Tip!

Every little bit helps to keep this going. I'll be doing my very best to keep up with the likes of Joe when it comes all the videos he posts!

Externals Demo thumbnail

Externals Demo

How to manage the Stacks Externals in your RapidWeaver project.How to manage the Stacks Externals in your RapidWeaver project.

Categories: Demo

Transcript

0:01 hey folks this is isaiah from your head
0:03 software
0:05 today we're going to be talking about
0:06 externals um
0:08 and uh
0:11 yeah there's been a little bit of
0:13 hubbub on the forum about externals and
0:16 how they can kind of
0:19 migrate from one project to another
0:22 sometimes without you looking
0:24 and
0:25 yeah tend to inflate the size of a
0:27 project especially if the externals have
0:30 lots of image data or maybe even other
0:33 externals inside of them
0:36 so today i'd like to do a little
0:38 demonstration to show you
0:41 how externals
0:43 can jump from one project to another uh
0:46 why they jump from one project to
0:48 another
0:49 and
0:50 lastly what you can do about it of
0:52 course that
0:55 that's the most important thing okay so
0:58 um
1:01 let me first uh show you what i have so
1:03 um
1:04 you can see
1:06 nothing on my sleeves so to speak
1:09 can see
1:09 what we're starting with as our project
1:12 here
1:13 i have a little test project called test
1:15 external
1:16 saved here
1:18 just on my desktop
1:20 and i've gone ahead and removed all of
1:23 the external files themselves so
1:27 there aren't any
1:28 outside externals externals can live as
1:31 part of the project or
1:34 actually as a file
1:37 and if they exist as a file that's a way
1:40 that you can share them with a colleague
1:42 or
1:43 move them one from one project to
1:45 another
1:46 but you can also just share the project
1:49 itself
1:50 the project itself contains
1:53 those externals like in this case i have
1:56 two externals here as part of this
1:58 project oops i double clicked
2:02 and
2:03 i also have some other externals
2:06 so there's five more externals in this
2:08 project
2:10 that we're not using right now
2:14 stacks doesn't remove them immediately
2:17 when you
2:18 stop using an external
2:21 it saves them until
2:23 you
2:24 take some manual action to
2:27 eliminate them from the file
2:29 and it does this just in case you need
2:31 to use them again
2:33 but also in cases like you delete and
2:36 then undo
2:38 so even if you delete save and then undo
2:44 that external will still go on living
2:46 even though you've
2:47 saved the project without it in it
2:51 so
2:52 yeah in that case stack saves it to sort
2:56 of a third place
2:58 that exists
2:59 in between all of the files
3:02 and i can show you how to eliminate
3:05 externals completely from your project
3:08 um if you want to do that too
3:11 so uh
3:12 first off though let's show you why
3:15 externals
3:17 jump from one project to another
3:19 okay so to do this demonstration i want
3:22 to start stacks in a way
3:25 that these externals have not loaded
3:27 into memory
3:29 and we'll do that by going to this third
3:31 page here it's a blog page
3:34 without any blog entries
3:36 so um just to keep it simple here i'm
3:39 going to uh save the project in this
3:42 state
3:43 so um it's saved on this blog page
3:46 and then i'm going to quit rapidweaver
3:49 entirely
3:51 i'm doing that so that um not only are
3:53 those stacks not loaded but
3:57 not only are those externals not loaded
3:59 but stacks isn't even loaded at all
4:03 okay so now i'm going to open up my
4:05 project
4:08 we're still on the blog page
4:10 and notice
4:12 we have not yet
4:14 loaded stacks at all so stacks
4:17 is kind of
4:19 it exists
4:20 as a plug-in but rapidweaver hasn't
4:23 activated it yet so it doesn't know
4:26 about externals it doesn't know the
4:28 universe exists at all
4:31 now we're going to
4:33 create a new project and i'm going to
4:35 basically uh
4:37 try to create something similar so we'll
4:40 start with a blog page an empty blog
4:42 page and i will save this um and we'll
4:45 just call it test2
4:48 so there it is is in the finder
4:54 and
4:55 i'm going to copy over this no externals
4:57 page just going to drag and drop
5:00 so that made a copy and notice we made a
5:03 copy that data
5:05 migrated from one project to another
5:07 the stacks data from that page
5:10 and stacks never loaded
5:13 stacks never even had the chance to say
5:15 yes or no good or bad
5:18 i didn't get to watch that
5:21 that data migrate
5:23 it has no say in it whatsoever
5:26 it's part of
5:28 the rapidweaver
5:30 projects and
5:32 rapidweaver can move that data around
5:34 and even save it to a new project
5:36 without
5:37 ever loading stacks
5:41 into memory and
5:43 making stacks run as as a
5:46 a program itself
5:49 all right so i'm gonna save that project
5:52 and uh we won't say this one we'll just
5:54 leave that one as is
5:56 and we'll quit
5:57 okay so now i'm gonna open up this um
6:00 second project we created
6:03 so the question is did the stax data
6:06 migrate i hope so um
6:09 i haven't done this before so uh yeah it
6:12 should um so here we go
6:15 we click on the no externals page and we
6:18 have uh our stax data
6:20 with references to um well these are
6:23 just built-in ones but it could have
6:25 references even to third-party stacks
6:27 and that data will migrate whether
6:30 stacks likes it or not um rapidweaver
6:32 did all the work
6:34 and stacks just went along for the ride
6:38 but it looks like it worked um and
6:40 furthermore it didn't bring any
6:42 externals along with it so
6:45 the externals from that other project
6:47 didn't come along for the ride because
6:49 they exist only as that on that
6:51 externals page
6:53 this page which didn't have any
6:55 externals on it and never has um
6:58 it never acquired those externals so
7:01 when i migrated the data
7:04 it didn't come along
7:06 all right so i'm going to save it again
7:09 on this blog page quit
7:11 and
7:13 we're going to do the same experiment
7:15 again
7:16 this time with externals and hopefully
7:19 the externals will come along for the
7:20 ride okay so we're going to open up our
7:24 other page here
7:26 so
7:27 now we're going to duplicate the has
7:29 externals page
7:31 and
7:32 boom we'll put it right there
7:34 again i'm going to save this
7:38 and close it and not save this one
7:43 leave that one as is and quit okay so uh
7:48 we migrated that page um
7:51 again stacks
7:52 wasn't loaded at the time it doesn't
7:54 know whether that page migrated or not
7:58 but hopefully that externals data
8:01 exists as part of that page and came
8:03 along for the ride so here we go
8:07 it looks like we got what we wanted
8:10 our externals are here and here and even
8:14 uh the extras
8:16 that had existed as part of this page in
8:19 the past they came along for the ride
8:20 too
8:22 so stacks
8:24 is storing that data along with this
8:26 page
8:28 and when that page migrates
8:30 even though stacks wasn't even running
8:33 that data came along for the ride
8:36 now
8:38 in this case that was great that was
8:39 what we intended to happen um
8:43 but uh
8:46 you'll notice that there was a lot of
8:48 automatic behavior there
8:51 and
8:52 staxx is behaving very conservatively um
8:56 it has uh seven stacks of which you're
8:59 only using two right now
9:02 but because you copied the page that has
9:05 had those stacks in the past
9:08 the other five came along for the ride
9:10 too
9:12 in this case that's what we intended but
9:15 a lot of times
9:17 that happens and you didn't intend it
9:21 it can be a little bit difficult to get
9:23 rid of data
9:24 uh once it's there so
9:27 um i'm gonna try to do one more
9:29 demonstration here and again i haven't
9:32 done this so
9:33 um
9:34 i'm kind of winging it here i set these
9:36 projects up
9:37 hoping that they would work in this way
9:39 but um
9:41 not 100 certain that this is going to
9:43 happen because
9:44 there's a lot of complex automatic
9:46 behavior here and even for me the guy
9:48 that wrote it um i wrote it like
9:51 years ago
9:54 i'm not
9:55 100 certain i remember every last little
9: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"}]
0