# 'link:' field in the part header. We have to find all occurances and replace
# them with the appropriate link.
#
-def FixInternalLinks(links, content):
+def FixInternalLinks(links, content, title):
# Make key1|key2|key3|... out of our links keys
pattern = re.compile('|'.join(links.keys()))
# Use a lambda callback to substitute each occurance found
result = pattern.sub(lambda x: links[x.group()], content)
+ # Check for missing link targets, and report them to the user
+ match = re.findall('"@@.*"', result)
+
+ if len(match) > 0:
+ print('\nMissing link target(s) in "' + title + '":')
+
+ for s in match:
+ print(' ' + s[3:-1])
+
+ print()
+
return result
content = '[something went wrong]'
# Fix up any internal links
- content = FixInternalLinks(links, content)
+ content = FixInternalLinks(links, content, header['title'])
# Set up the actual page from the template
if 'style' not in header:
<p>
The <dfn>Favorite Plugins</dfn> window is on the top-left side of the <dfn>Mixer Window</dfn>. Like other elements in that window it has variable height and can be hidden by dragging it to zero-height. If it is not visible, the top-handle can be grabbed and dragged down to reveal it.
</p>
-
+<a href="@@foo-blitzsky">non-working link</a>
<p>
Plugin names that have a right facing triangle next to them have presets associated with them; clicking on the triangle will cause all presets associated with the plugin to show in the list.
</p>
<p>
The Favorite Plugins window provides easy access to frequently used plugins:
</p>
-
+<a href="@@bar-blitzsky">non-working link</a>
<ul>
<li>Plugins can be dragged from the window to any track or bus <a href="@@processor-box"><dfn>processor box</dfn></a>, which will add the plugin to that track or bus at the given position.</li>
<li>The list includes user-presets for the plugins. Dragging a preset to a given track or bus will load that preset after adding the plugin.</li>
<li>The context-menu allows the deletion of presets or removal of the plugin from the list.</li>
<li>Plugins in the list can be re-ordered using drag & drop. The custom order is saved.</li>
</ul>
-
+<a href="@@baz-blitzsky">non-working link</a>
<p class="note">
When favorites are added with the <a href="@@plugin-manager">Plugin Manager</a>, they are appended to the bottom of the list.
</p>
<li>Open <kbd class="menu">Workspace > Window Managment</kbd>.</li>
<li>Select <kbd class="menu">Window Rules</kbd> in the left-hand sidebar. It
should default to the <kbd class="menu">Window matching</kbd> tab.</li>
- <li>Click on the <kbd class="button">New...</kbd> button.</li>
+ <li>Click on the <kbd class="menu">New...</kbd> button.</li>
<li>On the line that says <kbd class="menu">Window class (application)</kbd>,
set the combo box to <kbd class="menu">Substring Match</kbd> and type <kbd
class="user">ardour</kbd> in the text entry field.</li>
<li>Check the box next to the <kbd class="menu">Keep above</kbd> option. On
the same line, select <kbd class="menu">Force</kbd> from the combo box, then
click on the <kbd class="menu">Yes</kbd> radio button for that line.</li>
- <li>Click on the <kbd class="button">OK</kbd> button to dismiss the dialog.
+ <li>Click on the <kbd class="menu">OK</kbd> button to dismiss the dialog.
</li>
</ol>