navigate_results: made generated HTML compliant
- Added some missing alt attributes - Added DOCTYPE - Added language - Added title - Made tables regular (all same amount of td)
This commit is contained in:
parent
8c8f9a7a4b
commit
1b318f0da4
|
|
@ -150,25 +150,30 @@ class Navigate_ResultsOptions(BaseOptions):
|
||||||
prev += '.html'
|
prev += '.html'
|
||||||
f.write('<table class="nav-table">')
|
f.write('<table class="nav-table">')
|
||||||
f.write(' <tr>')
|
f.write(' <tr>')
|
||||||
f.write(' <td><a href="{}"><img src="images/back.svg" width="{}" height="{}"></a></td>'.
|
f.write(' <td><a href="{}"><img src="images/back.svg" width="{}" height="{}" alt="go back"></a></td>'.
|
||||||
format(prev, MID_ICON, MID_ICON))
|
format(prev, MID_ICON, MID_ICON))
|
||||||
f.write(' <td><a href="{}"><img src="images/home.svg" width="{}" height="{}"></a></td>'.
|
f.write(' <td><a href="{}"><img src="images/home.svg" width="{}" height="{}" alt="go home"></a></td>'.
|
||||||
format(self.home, MID_ICON, MID_ICON))
|
format(self.home, MID_ICON, MID_ICON))
|
||||||
f.write(' </tr>')
|
f.write(' </tr>')
|
||||||
f.write('</table>')
|
f.write('</table>')
|
||||||
f.write('<p class="generator">Generated by <a href="https://github.com/INTI-CMNB/KiBot/">KiBot</a> v{}</p>'.
|
f.write('<p class="generator">Generated by <a href="https://github.com/INTI-CMNB/KiBot/">KiBot</a> v{}</p>'.
|
||||||
format(__version__))
|
format(__version__))
|
||||||
|
|
||||||
def generate_cat_page_for(self, name, node, prev):
|
def write_head(self, f, title):
|
||||||
|
f.write('<!DOCTYPE html>\n')
|
||||||
|
f.write('<html lang="en">\n')
|
||||||
|
f.write('<head>\n')
|
||||||
|
f.write(' <title>{}</title>\n'.format(title if title else 'Main page'))
|
||||||
|
f.write(' <meta charset="UTF-8">\n') # UTF-8 encoding for unicode support
|
||||||
|
f.write(' <link rel="stylesheet" href="styles.css">\n')
|
||||||
|
f.write(' <link rel="icon" href="favicon.ico">\n')
|
||||||
|
f.write('</head>\n')
|
||||||
|
f.write('<body>\n')
|
||||||
|
|
||||||
|
def generate_cat_page_for(self, name, node, prev, category):
|
||||||
logger.debug('- Categories: '+str(node.keys()))
|
logger.debug('- Categories: '+str(node.keys()))
|
||||||
with open(os.path.join(self.out_dir, name), 'wt') as f:
|
with open(os.path.join(self.out_dir, name), 'wt') as f:
|
||||||
f.write('<html>\n')
|
self.write_head(f, category)
|
||||||
f.write('<head>\n')
|
|
||||||
f.write(' <meta charset="UTF-8">\n') # UTF-8 encoding for unicode support
|
|
||||||
f.write(' <link rel="stylesheet" href="styles.css">\n')
|
|
||||||
f.write(' <link rel="icon" href="favicon.ico">\n')
|
|
||||||
f.write('</head>\n')
|
|
||||||
f.write('<body>\n')
|
|
||||||
name, ext = os.path.splitext(name)
|
name, ext = os.path.splitext(name)
|
||||||
# Limit to 5 categories by row
|
# Limit to 5 categories by row
|
||||||
c_cats = len(node)
|
c_cats = len(node)
|
||||||
|
|
@ -177,28 +182,22 @@ class Navigate_ResultsOptions(BaseOptions):
|
||||||
acc = 0
|
acc = 0
|
||||||
f.write('<table class="cat-table">\n<tr>\n')
|
f.write('<table class="cat-table">\n<tr>\n')
|
||||||
for cat, content in node.items():
|
for cat, content in node.items():
|
||||||
pname = name+'_'+cat+ext
|
|
||||||
self.generate_page_for(content, pname, name)
|
|
||||||
f.write(' <td><a href="{}">{}</a></p></td>\n'.format(pname, self.get_image_for_cat(cat)))
|
|
||||||
acc += 1
|
|
||||||
if acc >= by_row:
|
if acc >= by_row:
|
||||||
# Flush the table and create another
|
# Flush the table and create another
|
||||||
acc = 0
|
acc = 0
|
||||||
f.write('</tr>\n</table>\n<table class="cat-table">\n<tr>\n')
|
f.write('</tr>\n</table>\n<table class="cat-table">\n<tr>\n')
|
||||||
|
pname = name+'_'+cat+ext
|
||||||
|
self.generate_page_for(content, pname, name, category+'/'+cat)
|
||||||
|
f.write(' <td><a href="{}">{}</a></td>\n'.format(pname, self.get_image_for_cat(cat)))
|
||||||
|
acc += 1
|
||||||
f.write('</tr>\n</table>\n')
|
f.write('</tr>\n</table>\n')
|
||||||
self.add_back_home(f, prev)
|
self.add_back_home(f, prev)
|
||||||
f.write('</body>\n</html>\n')
|
f.write('</body>\n</html>\n')
|
||||||
|
|
||||||
def generate_end_page_for(self, name, node, prev):
|
def generate_end_page_for(self, name, node, prev, category):
|
||||||
logger.debug('- Outputs: '+str(node.keys()))
|
logger.debug('- Outputs: '+str(node.keys()))
|
||||||
with open(os.path.join(self.out_dir, name), 'wt') as f:
|
with open(os.path.join(self.out_dir, name), 'wt') as f:
|
||||||
f.write('<html>\n')
|
self.write_head(f, category)
|
||||||
f.write('<head>\n')
|
|
||||||
f.write(' <meta charset="UTF-8">\n') # UTF-8 encoding for unicode support
|
|
||||||
f.write(' <link rel="stylesheet" href="styles.css">\n')
|
|
||||||
f.write(' <link rel="icon" href="favicon.ico">\n')
|
|
||||||
f.write('</head>\n')
|
|
||||||
f.write('<body>\n')
|
|
||||||
name, ext = os.path.splitext(name)
|
name, ext = os.path.splitext(name)
|
||||||
for oname, out in node.items():
|
for oname, out in node.items():
|
||||||
f.write('<table class="output-table">\n')
|
f.write('<table class="output-table">\n')
|
||||||
|
|
@ -212,24 +211,26 @@ class Navigate_ResultsOptions(BaseOptions):
|
||||||
f.write('<tbody><tr>\n')
|
f.write('<tbody><tr>\n')
|
||||||
c = 0
|
c = 0
|
||||||
for tg in out.get_targets(out_dir):
|
for tg in out.get_targets(out_dir):
|
||||||
|
if c == OUT_COLS:
|
||||||
|
f.write('</tr>\n<tr>\n')
|
||||||
|
c = 0
|
||||||
tg = os.path.relpath(os.path.abspath(tg), start=self.out_dir)
|
tg = os.path.relpath(os.path.abspath(tg), start=self.out_dir)
|
||||||
f.write('<td class="out-cell"><a href="{}">{}</a></td>\n'.
|
f.write('<td class="out-cell"><a href="{}">{}</a></td>\n'.
|
||||||
format(tg, self.get_image_for_file(os.path.basename(tg))))
|
format(tg, self.get_image_for_file(os.path.basename(tg))))
|
||||||
c = c+1
|
c = c+1
|
||||||
if c == OUT_COLS:
|
for _ in range(c, OUT_COLS):
|
||||||
f.write('</tr>\n<tr>\n')
|
f.write('<td class="out-cell"></td>\n')
|
||||||
c = 0
|
|
||||||
f.write('</tr></tbody>\n')
|
f.write('</tr></tbody>\n')
|
||||||
f.write('</table>\n')
|
f.write('</table>\n')
|
||||||
self.add_back_home(f, prev)
|
self.add_back_home(f, prev)
|
||||||
f.write('</body>\n</html>\n')
|
f.write('</body>\n</html>\n')
|
||||||
|
|
||||||
def generate_page_for(self, node, name, prev=None):
|
def generate_page_for(self, node, name, prev=None, category=''):
|
||||||
logger.debug('Generating page for '+name)
|
logger.debug('Generating page for '+name)
|
||||||
if isinstance(list(node.values())[0], dict):
|
if isinstance(list(node.values())[0], dict):
|
||||||
self.generate_cat_page_for(name, node, prev)
|
self.generate_cat_page_for(name, node, prev, category)
|
||||||
else:
|
else:
|
||||||
self.generate_end_page_for(name, node, prev)
|
self.generate_end_page_for(name, node, prev, category)
|
||||||
|
|
||||||
def run(self, name):
|
def run(self, name):
|
||||||
self.out_dir = os.path.dirname(name)
|
self.out_dir = os.path.dirname(name)
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue