html: better navbar management. Use virtual nginx line from navbar.html
This commit is contained in:
parent
2db9fa9af8
commit
4e21403e3d
|
@ -21,12 +21,13 @@ import os
|
||||||
import tyto
|
import tyto
|
||||||
|
|
||||||
# Load domain configuration DB
|
# Load domain configuration DB
|
||||||
exec(open(tyto.domain_conf).read(),globals())
|
exec(open(tyto.domain_conf).read())
|
||||||
|
|
||||||
Tyto = 'Tyto - Littérateur'
|
Tyto = 'Tyto - Littérateur'
|
||||||
tytogit = 'https://git.a-lec.org/echolib/tyto-litterateur'
|
tytogit = 'https://git.a-lec.org/echolib/tyto-litterateur'
|
||||||
tytoweb = 'https://tyto.echolib.re'
|
tytoweb = 'https://tyto.echolib.re'
|
||||||
|
|
||||||
|
navbar_file = '%snavbar.html'%srv_wip_tpl
|
||||||
|
|
||||||
#==========================#
|
#==========================#
|
||||||
# Load article DB #
|
# Load article DB #
|
||||||
|
@ -135,48 +136,19 @@ def create_main_page(target, article_bottom):
|
||||||
'%sid="site_logo_image">\n'%(15 * " ") + \
|
'%sid="site_logo_image">\n'%(15 * " ") + \
|
||||||
'%s</a>'%(8 * " ")
|
'%s</a>'%(8 * " ")
|
||||||
|
|
||||||
#------------------------------------#
|
|
||||||
# Create HTML menu from root folders #
|
|
||||||
#------------------------------------#
|
|
||||||
menu_html = ''
|
|
||||||
|
|
||||||
# Conditions to create navbar
|
# Check for menu bar
|
||||||
#----------------------------
|
# Delete file if deactivated in conf
|
||||||
# True in config
|
|
||||||
if domain_menubar:
|
if domain_menubar:
|
||||||
# Create folder links (from tyto.navbar) in navbar
|
if os.path.exists(navbar_file):
|
||||||
try:
|
tyto.exiting("25", 'menu from: %s'%navbar_file, False)
|
||||||
nav_file = open(navbar_load, 'r').read()
|
else:
|
||||||
nav_bar = True
|
tyto.exiting("24", '(menu file): %s'%navbar_file, False)
|
||||||
except:
|
else:
|
||||||
tyto.exiting("1", '(navbar) %s'%navbar_load, False)
|
if os.path.exists(navbar_file) and os.stat(navbar_file).st_size > 1:
|
||||||
nav_bar = False
|
tyto.set_file(navbar_file, 'new', '')
|
||||||
|
tyto.exiting("26", 'domain_menubar', False)
|
||||||
if nav_bar:
|
tyto.exiting('27', 'contents (menu file): %s'%navbar_file, False)
|
||||||
# Open HTML tags
|
|
||||||
menu_html = '%s<nav id="site_menu">\n'%(6 * ' ') + \
|
|
||||||
'%s<ul id="site_menu_items">'%(8 * ' ')
|
|
||||||
|
|
||||||
nolines = ('#', '/')
|
|
||||||
for line in nav_file.rsplit('\n'):
|
|
||||||
if not line or line.startswith(nolines): continue
|
|
||||||
|
|
||||||
dir_uri = os.path.join(domain_articles, line)
|
|
||||||
if not os.path.isdir(dir_uri):
|
|
||||||
tyto.exiting("1", dir_uri, False)
|
|
||||||
continue
|
|
||||||
|
|
||||||
# Add link to HTML structure
|
|
||||||
menu_item = '\n%s<li class="site_menu_item">'%(10 * ' ') + \
|
|
||||||
'<a class="site_menu_link" href="/%s/">%s</a>'%(
|
|
||||||
line, line
|
|
||||||
) + \
|
|
||||||
'</li>'
|
|
||||||
menu_html = '%s%s'%(menu_html, menu_item)
|
|
||||||
|
|
||||||
# Close HTML tags
|
|
||||||
menu_html = '\n%s\n%s</ul>\n%s</nav>\n'%(menu_html, 8 * ' ', 6 * ' ')
|
|
||||||
|
|
||||||
|
|
||||||
#-----------------------#
|
#-----------------------#
|
||||||
# Create main HTML Page #
|
# Create main HTML Page #
|
||||||
|
@ -200,7 +172,7 @@ def create_main_page(target, article_bottom):
|
||||||
' </a>\n' + \
|
' </a>\n' + \
|
||||||
' <p id="site_about">%s</p>\n'%domain_about + \
|
' <p id="site_about">%s</p>\n'%domain_about + \
|
||||||
' </div>\n' + \
|
' </div>\n' + \
|
||||||
'%s'%menu_html + \
|
'<!--# include virtual="/template/navbar.html"-->' + \
|
||||||
' </header>\n' + \
|
' </header>\n' + \
|
||||||
'\n' + \
|
'\n' + \
|
||||||
' <article id="article_main">\n' + \
|
' <article id="article_main">\n' + \
|
||||||
|
@ -209,3 +181,55 @@ def create_main_page(target, article_bottom):
|
||||||
'\n' + \
|
'\n' + \
|
||||||
' </body>\n' + \
|
' </body>\n' + \
|
||||||
'</html>'
|
'</html>'
|
||||||
|
|
||||||
|
|
||||||
|
#====================================#
|
||||||
|
# Create HTML menu from root folders #
|
||||||
|
#------------------------------------#
|
||||||
|
def create_navbar():
|
||||||
|
# Conditions to create navbar
|
||||||
|
if not domain_menubar:
|
||||||
|
tyto.set_file(navbar_file, 'new', '')
|
||||||
|
tyto.exiting("26", 'domain_menubar', False)
|
||||||
|
if os.path.exists(navbar_file) and os.stat(navbar_file).st_size > 1:
|
||||||
|
tyto.exiting('27', 'contents (menu file): %s'%navbar_file, False)
|
||||||
|
return
|
||||||
|
|
||||||
|
# True in config
|
||||||
|
# Create folder links (from navbars/tyto.navbar)
|
||||||
|
try: nav_file = open(navbar_load, 'r').read()
|
||||||
|
except: tyto.exiting("1", '(navbar) %s'%navbar_load, True)
|
||||||
|
|
||||||
|
# Open HTML tags
|
||||||
|
menu_html = '%s<nav id="site_menu">\n'%(6 * ' ') + \
|
||||||
|
'%s<ul id="site_menu_items">'%(8 * ' ')
|
||||||
|
|
||||||
|
nolines = ('#', '/')
|
||||||
|
for line in nav_file.rsplit('\n'):
|
||||||
|
if not line or line.startswith(nolines): continue
|
||||||
|
|
||||||
|
if '=' in line:
|
||||||
|
direc = line.rsplit('=')[0].rstrip()
|
||||||
|
title = '%stitle="%s"\n'%(15 * ' ', line.rsplit('=')[1].lstrip())
|
||||||
|
else:
|
||||||
|
direc = line
|
||||||
|
title = ''
|
||||||
|
|
||||||
|
dir_uri = os.path.join(domain_articles, direc)
|
||||||
|
if not os.path.isdir(dir_uri):
|
||||||
|
tyto.exiting("28", dir_uri, False)
|
||||||
|
continue
|
||||||
|
|
||||||
|
# Add link to HTML structure
|
||||||
|
menu_item = '\n%s<li class="site_menu_item">\n'%(10 * ' ') + \
|
||||||
|
'%s<a class="site_menu_link"\n'%(12 * ' ') + \
|
||||||
|
'%s'%title + \
|
||||||
|
'%shref="/%s/">%s</a>\n'%(
|
||||||
|
15 * ' ', direc, direc
|
||||||
|
) + \
|
||||||
|
'%s</li>'%(10 * ' ')
|
||||||
|
menu_html = '%s%s'%(menu_html, menu_item)
|
||||||
|
|
||||||
|
# Close HTML tags
|
||||||
|
menu_html = '\n%s\n%s</ul>\n%s</nav>\n'%(menu_html, 8 * ' ', 6 * ' ')
|
||||||
|
tyto.set_file('%snavbar.html'%srv_wip_tpl, 'new', menu_html)
|
||||||
|
|
|
@ -18,7 +18,7 @@
|
||||||
#**********************************************************************
|
#**********************************************************************
|
||||||
import sys
|
import sys
|
||||||
|
|
||||||
import tyto
|
import tyto, html
|
||||||
|
|
||||||
# Load domain configuration if exists
|
# Load domain configuration if exists
|
||||||
if tyto.domain_exists: exec(open(tyto.domain_conf).read())
|
if tyto.domain_exists: exec(open(tyto.domain_conf).read())
|
||||||
|
@ -43,6 +43,9 @@ def manage_navbars(target, option):
|
||||||
elif option == 'Edit':
|
elif option == 'Edit':
|
||||||
print(":D Edit %s configuration file:"%sys.argv[1], file)
|
print(":D Edit %s configuration file:"%sys.argv[1], file)
|
||||||
tyto.edit_file(file)
|
tyto.edit_file(file)
|
||||||
|
elif option == 'New':
|
||||||
|
html.create_navbar()
|
||||||
|
|
||||||
|
|
||||||
else:
|
else:
|
||||||
db_exists = tyto.get_db_post(target) # Article exists + has DB ?
|
db_exists = tyto.get_db_post(target) # Article exists + has DB ?
|
||||||
|
|
|
@ -507,6 +507,9 @@ def exiting(nbr, value, out):
|
||||||
'23' : ':? %sCorrupted database%s: %s'%(CY, CS, value),
|
'23' : ':? %sCorrupted database%s: %s'%(CY, CS, value),
|
||||||
'24' : ':? %sfile missing%s %s'%(CY, CS, value),
|
'24' : ':? %sfile missing%s %s'%(CY, CS, value),
|
||||||
'25' : ':D Add contents %s'%value,
|
'25' : ':D Add contents %s'%value,
|
||||||
|
'26' : ':? %sDeactivated%s "%s" in domain conf'%(CY, CS, value),
|
||||||
|
'27' : ':? %sDeleted%s %s'%(CY, CS, value),
|
||||||
|
'28' : ':? %sUnused directory%s: %s'%(CY, CS, value),
|
||||||
'255' : ':| Maybe later...'
|
'255' : ':| Maybe later...'
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue