# Mathematica File Organization

Last year I asked how to integrate notebooks to the documentation center in stackoverflow. Back then I was only interested in seeing those notebook and being able to search for them. Unfortunately, it has been painful to write the documentation because of the lack of a good organized stylesheet (Still working on a simple one that does the job). In any case, I would like to revisit part of this question by looking at complete tree of the file organization of a package. In the answers I posted I showed mainly the part for the documentation.

In the picture above I show the folder SOPackage which is supposed to be located either in $UserBaseDirectory or $BaseDirectory. Now that I know a little bit more of stylesheets, palettes and mathlink programs I would like to be able to incorporate them to applications. The question is, can anyone show a a complete tree of an application located in either $UserBaseDirectory or $BaseDirectory with the folders necessary to make everything work? (By everything I mean, documentation, mathlink/NETlink/LibraryLink programs, stylesheets, palettes and any other thing that you can think of).

A place to start is at:

http://reference.wolfram.com/mathematica/tutorial/MathematicaFileOrganization.html

But it doesn't seem to have everything. The reason I found out about how to create the structure in the picture above was because of a link acl showed in one of his answers.

To clarify again, the question at hand is: Can we show the complete structure of an application in $UserBaseDirectory that contains the directories where we put: 1. Documentation 2. Source Code for Mathlink/NETLink/LibraryLink (any other link) 3. Stylesheets 4. Palettes If you can think of anything else that would make the application more complete please add it. At some point I wanted to just ask if it was possible to put stylesheets in an application instead of $UserBaseDirectory <> "/SystemFiles/FrontEnd/StyleSheets/";


but instead I decided to make a question that can bring all of us the complete file organization for a complete application in Mathematica.

-
Regardless of the quality of the answers you are going to get, I would frankly suggest you to really consider buying Workbench. After all the time, money and energy you have already invested in Mathematica, the added $145 investment in Workbench might be negligible compared to the "pain" and aggravation you describe in order to obtain state of the art package documentation and all the other features you can easily get with Workbench. – magma Jul 3 '12 at 17:48 @magma, I'm sorry but I rather not. I tried it at some point but after finding out that you still do things using the simple Mathematica installation I realized that it was just another fancy front end. I rather know what Workbench is doing and organize things the way I see fit (following the rules of Mathematica of course). – jmlopez Jul 3 '12 at 17:53 add comment ## 1 Answer Why not myApplication/FrontEnd/Palettes and myApplication/FrontEnd/StyleSheets (where myApplication is the name of the aplication)? Many applications in my $UserBaseDirectory <> "Applications" directory use that.

-
That is where I currently have them but I'm not sure yet how to access those stylesheets from there. As I mentioned in the question if you put them in \$UserBaseDirectory <> "/SystemFiles/FrontEnd/StyleSheets/" then if you restart Mathematica or you run the command: MathLinkCallFrontEnd[FrontEndResetMenusPacket[{Automatic, Automatic}]] then you will see those stylesheets in the menu. –  jmlopez Jul 2 '12 at 19:37
@jmlopez, you don't need to do anything to access the stylesheets from there. That's by default in the stylesheet lookup path –  Rojo Jul 2 '12 at 20:09
@Rojo, Are they not supposed to be on the stylesheet menu? –  jmlopez Jul 2 '12 at 20:18
Ok, got it, I was making a very stupid mistake, I named it Stylesheets instead of StyleSheets. Well, that takes care of where to place the styleSheets. Not sure yet how to make them appear in the menu. Is there some way of making them appear as part the application providing them? –  jmlopez Jul 2 '12 at 20:21
I think they should be in the menu after a restart. Alternatively you can try to use ResetMenusPacket as you have mentioned. Doesn't that work for you? Same thing goes for any palette you want to supply: just put it in "myapp/FrontEnd/Palettes" and they should appear after a restart or ResetMenusPacket. –  Albert Retey Jul 3 '12 at 10:16