X-Git-Url: http://shamusworld.gotdns.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=build.py;h=5d0b0bbd853db46127ab5b3cb4f6386ba8eecf4e;hb=a28590c5615e26a5ea3d784712bc303db547c064;hp=b53b439f13bcd0039ec09e9cb0f8a9390a4ffcb5;hpb=389c23a3b50bf6d50ce832b87a66f624e32d43f8;p=ardour-manual
diff --git a/build.py b/build.py
index b53b439..5d0b0bb 100755
--- a/build.py
+++ b/build.py
@@ -9,7 +9,7 @@
# Remnants (could go into the master document as the first header)
-#bootstrap_path: /bootstrap-2.2.2
+#bootstrap_path: /bootstrap-3.3.7
#page_title: The Ardour Manual
import os
@@ -18,15 +18,25 @@ import shutil
import argparse
+# Global vars
+# This matches all *non* letter/number, ' ', '.', '-', and '_' chars
+cleanString = re.compile(r'[^a-zA-Z0-9 \._-]+')
+# This matches new 'unbreakable' links, up to the closing quote or anchor
+findLinks = re.compile(r'@@[^#"]*')
+
#
# Create an all lowercase filename without special characters and with spaces
# replaced with dashes.
#
def MakeFilename(s):
- # Cleans up the file name, removing all non ASCII or .-_ chars
- fn = re.sub(r'[^.\-_a-zA-Z0-9 ]', '', s)
- fn = fn.lower()
- fn = fn.replace(' ', '-')
+ global cleanString
+ # Clean up the file name, removing all non letter/number or " .-_" chars.
+ # Also, convert to lower case and replace all spaces with dashes.
+ fn = cleanString.sub('', s).lower().replace(' ', '-')
+ # Double dashes can creep in from the above replacement, so we check for
+ # that here.
+ fn = fn.replace('--', '-')
+
return fn
@@ -122,7 +132,8 @@ def GetFileStructure():
for i in range(level + 1):
fullName = fullName + fnames[i] + '/'
- hdr['filename'] = fullName.rstrip('/')
+ # Strip trailing '/' on filename
+ hdr['filename'] = fullName[:-1]
fs.append(hdr)
@@ -178,6 +189,36 @@ def GetChildren(fs, pos):
return children
+#
+# Get the parent at this level
+#
+def GetParent(fs, pos):
+ thisLevel = fs[pos]['level']
+ pos = pos - 1
+
+ while pos >= 0 and fs[pos]['level'] >= thisLevel:
+ pos = pos - 1
+
+ return pos
+
+
+#
+# Creates the BreadCrumbs
+#
+def GetBreadCrumbs(fs, pos):
+ # The > is for Bootstrap pre-3.0
+ breadcrumbs = '
'+ fs[pos]['title'] + '
'
+
+ while pos >= 0:
+ pos = GetParent(fs, pos)
+
+ if pos >= 0:
+ breadcrumbs='