]> Shamusworld >> Repos - ardour-manual-diverged/commitdiff
Created a function for roman numbers trans
authorEd Ward <edwsaintesprit@hotmail.com>
Thu, 2 Feb 2017 18:20:48 +0000 (19:20 +0100)
committerEd Ward <edwsaintesprit@hotmail.com>
Thu, 2 Feb 2017 18:20:48 +0000 (19:20 +0100)
build.py

index 597e86377c7a09df7ee2d815dcc53a5c856e033f..9aafc865acc40008c577312c3c87289d0a657ee7 100755 (executable)
--- a/build.py
+++ b/build.py
@@ -69,6 +69,20 @@ def PartToLevel(s):
 
        return level
 
+#
+# Converts a integer to a roman number
+#
+def num2roman(num):
+       num_map = [(1000, 'M'), (900, 'CM'), (500, 'D'), (400, 'CD'), (100, 'C'), (90, 'XC'), (50, 'L'), (40, 'XL'), (10, 'X'), (9, 'IX'), (5, 'V'), (4, 'IV'), (1, 'I')]
+       roman = ''
+
+       while num > 0:
+               for i, r in num_map:
+                       while num >= i:
+                               roman += r
+                               num -= i
+
+       return roman
 
 #
 # Capture the master document's structure (and content, if any) in a list
@@ -279,11 +293,6 @@ quiet = args.quiet
 if quiet:
        verbose = False
 
-
-roman = [ '0', 'I', 'II', 'III', 'IV', 'V', 'VI', 'VII', 'VIII', 'IX', 'X',
-       'XI', 'XII', 'XIII', 'XIV', 'XV', 'XVI', 'XVII', 'XVIII', 'XIX', 'XX',
-       'XXI', 'XXII', 'XXIII', 'XXIV', 'XXV', 'XXVI', 'XXVII', 'XXVIII', 'XXIX', 'XXX' ]
-
 #verbose = False
 level = 0
 fileCount = 0
@@ -372,7 +381,7 @@ for header in fileStruct:
                        print('\t', end='')
 
                if (level == 0):
-                       print('\nPart ' + roman[levelNums[0]] + ': ', end='')
+                       print('\nPart ' + num2roman(levelNums[0]) + ': ', end='')
                elif (level == 1):
                        print('\n\tChapter ' + str(levelNums[1]) + ': ', end='')
 
@@ -380,7 +389,7 @@ for header in fileStruct:
 
        # Handle TOC scriblings...
        if level == 0:
-               toc = toc + '<h2>Part ' + roman[levelNums[level]] + ': ' + header['title'] + '</h2>\n';
+               toc = toc + '<h2>Part ' + num2roman(levelNums[level]) + ': ' + header['title'] + '</h2>\n';
        elif level == 1:
                toc = toc + '  <p id=chapter>Ch. ' + str(levelNums[level]) + ':&nbsp;&nbsp;<a href="/' + header['filename'] + '/">' + header['title'] + '</a></p>\n'
        elif level == 2: