Linking to topics in a repository

This forum is for all Flare issues related to using Source Control.
Post Reply
wabernat
Propeller Head
Posts: 18
Joined: Thu Aug 21, 2014 4:46 pm

Linking to topics in a repository

Post by wabernat »

Another n00b question...

I'm investigating single-sourcing with Flare 9. At present, I have very Frame-ish source material (PDF-only output, chapters are set up as single topics with lots of internal Hn styles), and I'm trying to break it up into a truly topic-level structure. One thing I want to accomplish is to be able to put a single topic in a central repository (today it's an in-house server, akin to \\big_server_01.myco.local\tech_pubs\repository\topic.htm, but after I take off the training wheels, I would be willing to learn more about proper source control tools). I have successfully linked topics and built and structured PDF documents using this technique.

I have observed a Flare tendency that gives me pause. When I link to \\big_server_01.myco.local\tech_pubs\repository\topic.htm, a copy of topic.htm also appears in my local Content folder. It's okay by me if Flare needs a local instance to play with, but this raises the following question: If I make a change to the "original" topic.htm file in the repository, under what conditions (i.e., how quickly/often) do my changes to that topic file propagate to me/other Flare users who are linking to it? My initial objective is to maintain a single-point requirements doc ("the minimum requirements are X cores, Y GHz, and Z GB of RAM..."). I would like to be able to update this topic once and have the change propagate to all newly published documents, and (eventually) immediately to online documentation and help. I can't push this solution if I have no idea what version of the update other writers will be using, depending, for example, on when they launched their most recent revision of the product. So how often do these linked files update? Immediately? Per session?

Could my sick longing for immediacy be accomplished with symlinks, or am I just getting ahead of myself?

Thanks,

--W
ChoccieMuffin
Senior Propellus Maximus
Posts: 2632
Joined: Wed Apr 14, 2010 8:01 am
Location: Surrey, UK

Re: Linking to topics in a repository

Post by ChoccieMuffin »

Welcome to the wonderful, and sometimes hairpullingly frustrating, world of Flare. This forum is a godsend, so keep asking questions and you'll be amazed at how much you learn, even if it's just being pointed to the right place in Flare's docs.

Back to your question, I think what you're looking for is Global Project Linking (GPL), which has actually been under discussion quite a bit recently. In GPL, you keep your standard stuff in a single project (like your min requirements topics, perhaps company stylesheet, frequently used snippets, page layouts, master pages, etc etc), let's call this project Globals, and then in the projects that want to use these bits and pieces you create an import filter. (These live in \Projects\Imports.) When you create the import filter you can specify the source project, in this case Globals. You can also restrict which files you want to import, either by file type or by conditions in the source project.

For example, I have a Globals project in which the \Content folder contains all my stylesheets, page layouts, master pages, common content like your min requirements and graphics, table stylesheets, snippets, that kind of thing, and the \Project folder contains global conditions, glossaries, skins and variables. The project also contains targets and other files that I don't want those in my target project. In the import filter in the target project you can specify the type of file you want to import, for example topic files (*.htm;*.html;*), condition tag sets (.flcts;), master pages (*.flmsp;), page layouts (*.flpgl;), graphics (*.png;*.bmp;*.jpg;*.jpeg;*.tif;*.tiff;*.gif;*.mov;*.avi;*.swf;*.swd;*.emf;*.wmf;), stylesheets (*.css;) variables files (*.flvar;) TOCs (*.fltoc;), snippets (*.flsnp;), skins (*.flskn) but not targets (*.fltar), import files (*.flimp;*.flimpfl).

I also have other normal projects that I import into other projects. In those cases I apply conditions to the files that I want to import into the target project and add the conditions to the Import Conditions box, and then select the "Auto-exclude non-tagged files" check box. As an extra help, I tend to put content in named folders so that when it's imported into other projects I can identify it easily.

So there you have it - two different ways to specify which files to import.

The second part of your question is about how to make sure the imported files are updated.

As you say, you only want to maintain these files in one place - the source project. Flare lets you know if you try to edit a file that was imported from another project as whenever you make a change to the topic a dialog box pops up letting you know that the file was imported, and allowing you to continue with the change, break the link and continue with the change or break the link and cancel the change.

On top of that, you can reimport files at any time using the import file which has a "Reimport" option, and finally in the import file you can select the "Auto-reimport before "Generate Import" " check box to force the imported files to update. If at any time you want to override this auto re-import for a specific target, in the target you can select the "Disable auto-sync of all import files" check box.

Et voilà, Global Project Linking using imports all sorted!
Started as a newbie with Flare 6.1, now using Flare 2023.
Report bugs at http://www.madcapsoftware.com/bugs/submit.aspx.
Request features at https://www.madcapsoftware.com/feedback ... quest.aspx
Post Reply