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'
|
||||
f.write('<table class="nav-table">')
|
||||
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))
|
||||
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))
|
||||
f.write(' </tr>')
|
||||
f.write('</table>')
|
||||
f.write('<p class="generator">Generated by <a href="https://github.com/INTI-CMNB/KiBot/">KiBot</a> v{}</p>'.
|
||||
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()))
|
||||
with open(os.path.join(self.out_dir, name), 'wt') as f:
|
||||
f.write('<html>\n')
|
||||
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')
|
||||
self.write_head(f, category)
|
||||
name, ext = os.path.splitext(name)
|
||||
# Limit to 5 categories by row
|
||||
c_cats = len(node)
|
||||
|
|
@ -177,28 +182,22 @@ class Navigate_ResultsOptions(BaseOptions):
|
|||
acc = 0
|
||||
f.write('<table class="cat-table">\n<tr>\n')
|
||||
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:
|
||||
# Flush the table and create another
|
||||
acc = 0
|
||||
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')
|
||||
self.add_back_home(f, prev)
|
||||
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()))
|
||||
with open(os.path.join(self.out_dir, name), 'wt') as f:
|
||||
f.write('<html>\n')
|
||||
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')
|
||||
self.write_head(f, category)
|
||||
name, ext = os.path.splitext(name)
|
||||
for oname, out in node.items():
|
||||
f.write('<table class="output-table">\n')
|
||||
|
|
@ -212,24 +211,26 @@ class Navigate_ResultsOptions(BaseOptions):
|
|||
f.write('<tbody><tr>\n')
|
||||
c = 0
|
||||
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)
|
||||
f.write('<td class="out-cell"><a href="{}">{}</a></td>\n'.
|
||||
format(tg, self.get_image_for_file(os.path.basename(tg))))
|
||||
c = c+1
|
||||
if c == OUT_COLS:
|
||||
f.write('</tr>\n<tr>\n')
|
||||
c = 0
|
||||
for _ in range(c, OUT_COLS):
|
||||
f.write('<td class="out-cell"></td>\n')
|
||||
f.write('</tr></tbody>\n')
|
||||
f.write('</table>\n')
|
||||
self.add_back_home(f, prev)
|
||||
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)
|
||||
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:
|
||||
self.generate_end_page_for(name, node, prev)
|
||||
self.generate_end_page_for(name, node, prev, category)
|
||||
|
||||
def run(self, name):
|
||||
self.out_dir = os.path.dirname(name)
|
||||
|
|
|
|||
Loading…
Reference in New Issue