1 |
# |
# |
2 |
# Copyright (c) 2003 by Benja Fallenstein |
# Copyright (c) 2003 by Benja Fallenstein |
3 |
# |
# |
4 |
# This file is part of Navidoc. |
# This file is part of Navidoc. |
39 |
re_title = re.compile("<title>(.*)</title>") |
re_title = re.compile("<title>(.*)</title>") |
40 |
|
|
41 |
def __init__(self, dir): |
def __init__(self, dir): |
42 |
|
self.root = dir |
43 |
self.files = [] |
self.files = [] |
44 |
self.name = None |
self.name = None |
45 |
|
|
46 |
for el in os.listdir(dir): |
for el in os.listdir(self.root): |
47 |
el = os.path.join(dir, el) |
el = os.path.join(self.root, el) |
48 |
if os.path.isdir(el): |
if os.path.isdir(el): |
49 |
self.addDir(el) |
self.addDir(el) |
50 |
elif os.path.splitext(el)[1] == '.html': |
elif os.path.splitext(el)[1] == '.html': |
88 |
if len(el) == 2: list.append(el[0]) |
if len(el) == 2: list.append(el[0]) |
89 |
else: list.extend(el[3].getFiles()) |
else: list.extend(el[3].getFiles()) |
90 |
|
|
91 |
def simpleNavbar(tree, indent=""): |
def simpleNavbar(tree, filepath, indent=""): |
92 |
s = "" |
s = "" |
93 |
for el in tree.files: |
for el in tree.files: |
94 |
if el[0].endswith('index.html'): continue |
if el[0].endswith('index.html'): continue |
95 |
s += '<li class="boxitem"><a href="%s">%s</a></li>\n' % \ |
s += '<li class="boxitem"><a href="%s">%s</a></li>\n' % \ |
96 |
(el[0][len(slashify(config.working_directory)):len(el[0])], el[1]) |
(relative_path(filepath, el[0]), el[1]) |
97 |
if len(el) > 2: |
if len(el) > 2: |
98 |
s += simpleNavbar(el[2], indent+" ") |
s += simpleNavbar(el[2], filepath, indent+" ") |
99 |
return s |
return s |
100 |
|
|
101 |
def insertNavbars(tree, bar=None, single_file=None): |
def getBar(tree, filepath): |
102 |
if bar is None: |
bar = '<hr class="footer"/>' |
103 |
bar = '<hr class="footer"/>' |
bar += '<center class="navigation-title">Navigation</center>\n' |
104 |
bar += '<center class="navigation-title">Navigation</center>\n' |
bar += '<div class="left-bar">\n' |
105 |
bar += '<div class="left-bar">\n' |
bar += ('<p class="boxhead"><a href="%s">%s' |
106 |
bar += ('<p class="boxhead"><a href="./">%s' |
'</a></p>\n') \ |
107 |
'</a></p>\n') % tree.name |
% (relative_path(filepath, slashify(tree.root)), |
108 |
bar += '<p class="boxcontent"><ul>\n' |
tree.name) |
109 |
bar += simpleNavbar(tree) |
bar += '<p class="boxcontent"><ul>\n' |
110 |
bar += '</ul></p></div>\n' |
bar += simpleNavbar(tree, filepath=filepath) |
111 |
|
bar += '</ul></p></div>\n' |
112 |
if single_file: |
return bar |
113 |
|
|
114 |
|
def insertNavbars(tree, navbarTree=None, singleFile=None): |
115 |
|
if navbarTree == None: navbarTree = tree |
116 |
|
if singleFile: |
117 |
file = open(el[0]); s = file.read(); file.close() |
file = open(el[0]); s = file.read(); file.close() |
118 |
i = s.find('<hr class="footer"/>') |
i = s.find('<hr class="footer"/>') |
119 |
s = s[:i] + bar + s[i:] |
s = s[:i] + getBar(navbarTree, el[0]) + s[i:] |
120 |
file = open(el[0], 'w') |
file = open(el[0], 'w') |
121 |
file.write(s) |
file.write(s) |
122 |
file.close() |
file.close() |
127 |
if len(el) == 2: |
if len(el) == 2: |
128 |
file = open(el[0]); s = file.read(); file.close() |
file = open(el[0]); s = file.read(); file.close() |
129 |
i = s.find('<hr class="footer"/>') |
i = s.find('<hr class="footer"/>') |
130 |
s = s[:i] + bar + s[i:] |
s = s[:i] + getBar(navbarTree, el[0]) + s[i:] |
131 |
file = open(el[0], 'w') |
file = open(el[0], 'w') |
132 |
file.write(s) |
file.write(s) |
133 |
file.close() |
file.close() |
134 |
dbg( "Inserted navbar into %s" % el[0]) |
dbg( "Inserted navbar into %s" % el[0]) |
135 |
else: |
else: |
136 |
insertNavbars(el[2], bar) |
insertNavbars(el[2], navbarTree) |
137 |
|
|
138 |
if __name__ == '__main__': |
if __name__ == '__main__': |
139 |
import sys |
import sys |