indev: external html config file manage
This commit is contained in:
parent
3b501b75fe
commit
73546b5966
|
@ -26,7 +26,7 @@
|
|||
import sys
|
||||
sys.path.insert(0, '/var/lib/tyto/program')
|
||||
|
||||
import check, domain, wip, navbars
|
||||
import check, domain, wip, html
|
||||
|
||||
#====================#
|
||||
# MAIN #
|
||||
|
@ -45,8 +45,10 @@ actions = {
|
|||
'check' : check.manage_check,
|
||||
'wip' : wip.manage_wip,
|
||||
'domain' : domain.manage_domain,
|
||||
'sidebar' : navbars.manage_navbars,
|
||||
'navbar' : navbars.manage_navbars
|
||||
'sidebar' : html.manage_configs,
|
||||
'navbar' : html.manage_configs,
|
||||
'metas' : html.manage_configs,
|
||||
'footer' : html.manage_configs
|
||||
}
|
||||
|
||||
# Dict for Options
|
||||
|
|
|
@ -19,7 +19,7 @@
|
|||
|
||||
import os, locale
|
||||
|
||||
import tyto
|
||||
import tyto, html
|
||||
|
||||
#==========================#
|
||||
# Manage Argument 'domain' #
|
||||
|
@ -107,16 +107,19 @@ def create_domain(target, option):
|
|||
|
||||
|
||||
db_dir = '%s/.local/tyto/%s/'%(tyto.home_dir, domain_short)
|
||||
navbars_conf= '%sarticles/navbars/'%tyto.conf_dir
|
||||
navbars_conf= '%sarticles/_configs/'%tyto.conf_dir
|
||||
conf_domain = 'domain_dir = "%s"\n'%tyto.conf_dir + \
|
||||
'domain_conf = "%s"\n'%tyto.domain_conf + \
|
||||
'domain_articles = "%sarticles/"\n'%tyto.conf_dir + \
|
||||
'domain_files = "%sarticles/files/"\n'%tyto.conf_dir + \
|
||||
'domain_images = "%sarticles/images/"\n'%tyto.conf_dir + \
|
||||
'domain_db = "%sarticles/"\n'%(db_dir) + \
|
||||
'html_db = "%shtml/"\n'%(db_dir) + \
|
||||
'navbars_dir = "%s"\n'%navbars_conf + \
|
||||
'navbar_load = "%styto.navbar"\n'%navbars_conf + \
|
||||
'sidebar_load = "%styto.sidebar"\n'%navbars_conf + \
|
||||
'metas_load = "%styto.metas.html"\n'%navbars_conf + \
|
||||
'footer_load = "%styto.footer.html"\n'%navbars_conf + \
|
||||
'\ndomain_short = "%s"\n'%domain_short + \
|
||||
'domain_url = "%s"\n'%domain_url + \
|
||||
'domain_wipurl = "%s"\n'%domain_wipurl
|
||||
|
@ -416,7 +419,7 @@ def create_domain(target, option):
|
|||
srv_wip_tpl, srv_wip_images, srv_wip_files,
|
||||
srv_www_tpl, srv_www_images, srv_www_files,
|
||||
domain_files, domain_images, navbars_dir,
|
||||
domain_db,
|
||||
domain_db, html_db
|
||||
)
|
||||
|
||||
print(' │')
|
||||
|
@ -428,9 +431,14 @@ def create_domain(target, option):
|
|||
|
||||
# Create tyto.sidebar and metas.html
|
||||
print(' │')
|
||||
create_sidebar(option, navbars_dir)
|
||||
create_navbar(option, navbars_dir)
|
||||
create_metas_file(srv_wip_tpl)
|
||||
create_sidebar(option)
|
||||
html.manage_configs('sidebar', '-n')
|
||||
create_navbar(option)
|
||||
html.manage_configs('navbar', '-n')
|
||||
create_metas_file(option)
|
||||
html.manage_configs('metas', '-n')
|
||||
html.create_footer(option)
|
||||
html.manage_configs('footer', '-n')
|
||||
|
||||
print(' │')
|
||||
print(' ├──────────────────────────────────────┐')
|
||||
|
@ -441,21 +449,13 @@ def create_domain(target, option):
|
|||
#========================================#
|
||||
# Create metas.html with default content #
|
||||
#----------------------------------------#
|
||||
def create_metas_file(srv_wip_tpl):
|
||||
metas_file = '%smetas.html'%srv_wip_tpl
|
||||
if os.path.exists(metas_file):
|
||||
ask = ''
|
||||
ask = input(' ├ Initialize default metas.html ? ')
|
||||
if not ask in ['y', 'Y']:
|
||||
return
|
||||
|
||||
metas_tags = '# Custom metas\n' + \
|
||||
'# You can add HTML meta tags or edit them\n' + \
|
||||
'# As Tyto makes static pages,\n' + \
|
||||
'# for any changes, you will have to commands:\n' + \
|
||||
'# "tyto wip again" and "tyto publish again"\n' + \
|
||||
'# to apply new changes to your live articles.\n' + \
|
||||
def create_metas_file(option):
|
||||
metas_load = tyto.metas_load
|
||||
metas_tags = '<!-- Custom HTML metas for all pages\n' + \
|
||||
'# You can add/edit HTML tags\n' + \
|
||||
'# ! Only <meta > and <link > lines are used !\n' + \
|
||||
'# After editing, use "tyto metas -n"\n' + \
|
||||
'# (You should not copy this file to template)' + \
|
||||
'\n' + \
|
||||
'# Already set metas with values:\n' + \
|
||||
'# <meta charset="UTF-8">\n' + \
|
||||
|
@ -475,29 +475,42 @@ def create_metas_file(srv_wip_tpl):
|
|||
'# <link rel="stylesheet" ... />\n' + \
|
||||
'# <link rel="shortcut icon" ... />\n' + \
|
||||
'# <link rel="me" ... > # if profile url in config\n' + \
|
||||
'\n' + \
|
||||
'# Open Graph data\n' + \
|
||||
'# <meta property="og:site_name" ... />\n' + \
|
||||
'# <meta property="og:title" ... />\n' + \
|
||||
'# <meta property="og:type" ... />\n' + \
|
||||
'# <meta property="og:url" ... />\n' + \
|
||||
'# <meta property="og:description" ... />\n' + \
|
||||
'# <meta property="og:image" ... />\n' + \
|
||||
'-->\n' + \
|
||||
'<meta name="robots" content="all">\n' + \
|
||||
'<meta name="medium" content="website">\n' + \
|
||||
'<meta name="revisit-after" content="3 days">'
|
||||
|
||||
tyto.set_file(metas_file, True, metas_tags)
|
||||
print(' ├ Create file: %s'%metas_file)
|
||||
print(' │ ! Check this file, before starting !')
|
||||
|
||||
# Create new file, or ask if exists
|
||||
ask = ' ├ Use default tyto.metas.html ? '
|
||||
log = ' ├ Create file: %s'%metas_load
|
||||
|
||||
if os.path.exists(metas_load):
|
||||
if option == '-i': return # Continue to create template/metas.html
|
||||
res = input(ask)
|
||||
if not res in ['y', 'Y']: return
|
||||
|
||||
tyto.set_file(metas_load, 'new', metas_tags)
|
||||
print(log)
|
||||
|
||||
|
||||
#==============================#
|
||||
# sidebar load file translated #
|
||||
#------------------------------#
|
||||
def create_sidebar(opt, navbars_dir):
|
||||
try: sidebar_load
|
||||
except: sidebar_load = "%styto.sidebar"%navbars_dir
|
||||
|
||||
def create_sidebar(option):
|
||||
sidebar_load = tyto.sidebar_load
|
||||
sdb_load_fr = '# Pour : Tyto - Littérateur\n' + \
|
||||
'# Type : fichier texte\n' + \
|
||||
'# Description : Fichier appelé par "tyto sidebar"\n' + \
|
||||
'# (Liste d\'articles)\n' + \
|
||||
'# Fichier : tyto.sidebar\n' + \
|
||||
'# Dossier : %s\n'%navbars_dir + \
|
||||
'# Fichier : %s\n'%sidebar_load + \
|
||||
'# Comment : 1 URI de l\'article par ligne\n' + \
|
||||
'# (depuis articles/)\n' + \
|
||||
'# Ne commence pas par "/"\n' + \
|
||||
|
@ -512,8 +525,7 @@ def create_sidebar(opt, navbars_dir):
|
|||
'# Type: Text file\n' + \
|
||||
'# Description: file called with "tyto sidebar"\n' + \
|
||||
'# (articles\'s list)\n' + \
|
||||
'# File: tyto.sidebar\n' + \
|
||||
'# Directory: %s\n'%navbars_dir + \
|
||||
'# File: %s\n'%sidebar_load + \
|
||||
'# Comment: 1 article URI per line\n' + \
|
||||
'# (from articles/)\n' + \
|
||||
'# not begining with "/"\n' + \
|
||||
|
@ -527,29 +539,30 @@ def create_sidebar(opt, navbars_dir):
|
|||
if tyto.n == 0: sdb_load = sdb_load_fr
|
||||
elif tyto.n == 1: sdb_load = sdb_load_en
|
||||
|
||||
if not opt == 'Remove' and os.path.exists(sidebar_load):
|
||||
ask = ''
|
||||
ask = input(' ├ Initialize new sidebar ? ')
|
||||
if not ask in ['y', 'Y']:
|
||||
return
|
||||
ask = ' ├ Use default (empty) sidebar config ? '
|
||||
log = ' ├ Create file: %s'%sidebar_load
|
||||
|
||||
# Create new file, or ask if exists
|
||||
ask = ' ├ Use default (empty) sidebar config file ? '
|
||||
log = ' ├ Create file: %s'%sidebar_load
|
||||
|
||||
if os.path.exists(sidebar_load):
|
||||
res = input(ask)
|
||||
if not res in ['y', 'Y']: return
|
||||
|
||||
tyto.set_file(sidebar_load, 'new', sdb_load)
|
||||
print(' ├ Create file: %s'%sidebar_load)
|
||||
print(log)
|
||||
|
||||
|
||||
#=============================#
|
||||
# navbar load file translated #
|
||||
#-----------------------------#
|
||||
def create_navbar(opt, navbars_dir):
|
||||
try: navbar_load
|
||||
except: navbar_load = "%styto.navbar"%navbars_dir
|
||||
|
||||
def create_navbar(option):
|
||||
nav_load_fr = '# Pour : Tyto - Littérateur\n' + \
|
||||
'# Type : fichier texte\n' + \
|
||||
'# Description : Fichier utilisé par "tyto wip"\n' + \
|
||||
'# (Liste des catégories)\n' + \
|
||||
'# Fichier : tyto.navbar\n' + \
|
||||
'# Dossier : %s\n'%navbars_dir + \
|
||||
'# Fichier : %s\n'%navbar_load + \
|
||||
'# Comment : 1 nom de dossier par ligne *1\n' + \
|
||||
'# (depuis articles/)\n' + \
|
||||
'# Ne commence pas par "/"\n' + \
|
||||
|
@ -559,19 +572,18 @@ def create_navbar(opt, navbars_dir):
|
|||
'# dans le dossier mentionné\n' + \
|
||||
'# - utiliser check et wip dessus\n' + \
|
||||
'# Option *1: Pour définir un titre de lien :\n' + \
|
||||
'# - ajouter "= titre de lien"\n' + \
|
||||
'# - ajouter "# titre de lien"\n' + \
|
||||
'\n# %s\n'%(15 * "-") +\
|
||||
'# Exemples :\n' + \
|
||||
'# documentation\n' + \
|
||||
'# a-propos = Informations concernant ce site\n' + \
|
||||
'# a-propos # Informations concernant ce site\n' + \
|
||||
'# %s\n\n'%(15 * "-")
|
||||
|
||||
nav_load_en = '# For: Tyto - Littérateur\n' + \
|
||||
'# Type: Text file\n' + \
|
||||
'# Description: file used with "tyto wip"\n' + \
|
||||
'# (categories\'s list)\n' + \
|
||||
'# File: tyto.navbar\n' + \
|
||||
'# Directory: %s\n'%navbars_dir + \
|
||||
'# File : %s\n'%navbar_load + \
|
||||
'# Comment: 1 folder name per line *1\n' + \
|
||||
'# (from articles/)\n' + \
|
||||
'# not begining with "/"\n' + \
|
||||
|
@ -581,21 +593,23 @@ def create_navbar(opt, navbars_dir):
|
|||
'# in set folder\n' + \
|
||||
'# - check and wip it\n' + \
|
||||
'# Option *1: To define a title link:' + \
|
||||
'# - add "= title link"\n' + \
|
||||
'# - add "# title link"\n' + \
|
||||
'\n# %s\n'%(15 * "-") +\
|
||||
'# Examples :\n' + \
|
||||
'# documentation\n' + \
|
||||
'# about = infos about this website\n' + \
|
||||
'# about # infos about this website\n' + \
|
||||
'# %s\n\n'%(15 * "-")
|
||||
|
||||
if tyto.n == 0: nav_load = nav_load_fr
|
||||
elif tyto.n == 1: nav_load = nav_load_en
|
||||
|
||||
if not opt == 'Remove' and os.path.exists(navbar_load):
|
||||
ask = ''
|
||||
ask = input(' ├ Initialize new navbar ? ')
|
||||
if not ask in ['y', 'Y']:
|
||||
return
|
||||
# Create new file, or ask if exists
|
||||
ask = ' ├ Use default (empty) navbar config file ? '
|
||||
log = ' ├ Create file: %s'%navbar_load
|
||||
|
||||
if os.path.exists(navbar_load):
|
||||
res = input(ask)
|
||||
if not res in ['y', 'Y']: return
|
||||
|
||||
tyto.set_file(navbar_load, 'new', nav_load)
|
||||
print(' ├ Create file: %s'%navbar_load)
|
||||
print(log)
|
||||
|
|
|
@ -16,19 +16,52 @@
|
|||
#----------------------------------------------------------------------
|
||||
|
||||
#**********************************************************************
|
||||
import os
|
||||
import os, sys
|
||||
|
||||
import tyto
|
||||
import tyto, domain, html
|
||||
|
||||
# Load domain configuration DB
|
||||
exec(open(tyto.domain_conf).read())
|
||||
|
||||
Tyto = 'Tyto - Littérateur'
|
||||
tytogit = 'https://git.a-lec.org/echolib/tyto-litterateur'
|
||||
tytoweb = 'https://tyto.echolib.re'
|
||||
Tytogit = 'https://git.a-lec.org/echolib/tyto-litterateur'
|
||||
Tytogti = 'Dépôt officiel du code source de Tyto - Littérateur'
|
||||
Tytoweb = 'https://tyto.echolib.re'
|
||||
Tytowti = 'Site web officiel du logiciel Tyto - Littérateur'
|
||||
Tytosrc = '(<a href="%s" '%Tytogit + \
|
||||
'title="%s" '%Tytogti + \
|
||||
'id="footer_item_link">Code source</a>)'
|
||||
|
||||
navbar_file = '%snavbar.html'%srv_wip_tpl
|
||||
|
||||
#
|
||||
# Manage fies for HTML
|
||||
# (sidebar, metas, footer, navbar)
|
||||
#
|
||||
def manage_configs(target, option):
|
||||
|
||||
args1 = ('metas', 'sidebar', 'footer', 'navbar')
|
||||
args2 = ('-n', '-e', '-R')
|
||||
opts = ('New', 'Edit', 'Remove')
|
||||
|
||||
if target in args1: sys.argv[1] = target
|
||||
elif target and not option: option = target
|
||||
if not sys.argv[1] in args1: tyto.exiting('11', '%s'%str(args1), True)
|
||||
if not option in opts and not option == '-i' and not option in args2:
|
||||
tyto.exiting('11', '%s'%str(args2), True)
|
||||
|
||||
# Getting default file
|
||||
if option == 'New':
|
||||
actions = {
|
||||
'sidebar' : domain.create_sidebar,
|
||||
'navbar' : domain.create_navbar,
|
||||
'metas' : create_user_metas,
|
||||
'footer' : html.create_footer
|
||||
}
|
||||
|
||||
actions[sys.argv[1]](option)
|
||||
|
||||
|
||||
#==========================#
|
||||
# Load article DB #
|
||||
# Start HTML page sections #
|
||||
|
@ -49,7 +82,6 @@ def create_metas_page():
|
|||
# Settings for metas
|
||||
#-------------------
|
||||
metas_page = ''
|
||||
tab = 4
|
||||
scale = 'width=device-width, initial-scale=1.0'
|
||||
all_tags = domain_tags + ',' + tags
|
||||
post_url = domain_url + http_uri
|
||||
|
@ -61,62 +93,46 @@ def create_metas_page():
|
|||
sub_uri, rss_file, domain_title, domain_sep, domain_short
|
||||
)
|
||||
icon_file = 'favicon.png'
|
||||
icon_ref = 'type="image/png" href="%s%s"'%(sub_uri, icon_file)
|
||||
icon_ref = 'type="image/png" href="%stemplate/%s"'%(sub_uri, icon_file)
|
||||
en_date = tyto.set_en_date(date[0])
|
||||
relme = '' # External URL in metas (if exists in config domain)
|
||||
if domain_relme:
|
||||
relme = '\n<link rel="me" type="text/html" href="%s">'%(
|
||||
relme = '\n <link rel="me" type="text/html" href="%s">'%(
|
||||
domain_relme
|
||||
)
|
||||
|
||||
# Check for user metas from wip template/metas.html
|
||||
#--------------------------------------------------
|
||||
metas_file = '%smetas.html'%srv_wip_tpl
|
||||
user_metas = ''
|
||||
metas_used = ('<meta ', '<link ')
|
||||
|
||||
try:
|
||||
user_file = open(metas_file, 'r').read()
|
||||
tyto.exiting("25", 'metas from: %s'%metas_file, False)
|
||||
|
||||
for line in user_file.rsplit('\n'):
|
||||
if line.startswith(metas_used):
|
||||
if user_metas: user_metas = "%s\n%s"%(user_metas, line)
|
||||
else: user_metas = '\n%s'%line
|
||||
user_metas = '%s\n'%user_metas
|
||||
except:
|
||||
tyto.exiting("24", '(metas file): %s'%metas_file, False)
|
||||
|
||||
|
||||
# Set all raw HTML metas
|
||||
#-----------------------
|
||||
metas = '<meta charset="UTF-8">\n' + \
|
||||
'<meta name="viewport" content="%s">\n'%scale + \
|
||||
'<meta name=”url” content=”%s”>\n'%domain_url + \
|
||||
'<meta name="language" content="%s">\n'%domain_lang + \
|
||||
'<meta name="reply-to" content="%s">\n'%domain_mail + \
|
||||
'<meta name="copyright" content="%s">\n'%domain_license + \
|
||||
'<meta name="generator" content="%s">\n'%Tyto + \
|
||||
'<meta name="title" content="%s">\n'%title + \
|
||||
'<meta name="author" content="%s">\n'%author + \
|
||||
'<meta name="description" content="%s">\n'%about + \
|
||||
'<meta name="keywords" content="%s">\n'%all_tags + \
|
||||
'<meta name="search_date" content="%s">\n'%en_date + \
|
||||
'<link rel="canonical" href="%s" />\n'%post_url + \
|
||||
'<link rel="alternate" %s />\n'%(rss_ref) + \
|
||||
'<link rel="stylesheet" %s\n'%css_ref + \
|
||||
'<link rel="shortcut icon" %s />'%icon_ref + \
|
||||
global metas
|
||||
metas = ' <meta charset="UTF-8" />\n' + \
|
||||
' <meta name="viewport" content="%s" />\n'%scale + \
|
||||
' <meta name=”url” content=”%s” />\n'%domain_url + \
|
||||
' <meta name="language" content="%s" />\n'%domain_lang + \
|
||||
' <meta name="reply-to" content="%s" />\n'%domain_mail + \
|
||||
' <meta name="copyright" content="%s" />\n'%domain_license + \
|
||||
' <meta name="generator" content="%s" />\n'%Tyto + \
|
||||
' <meta name="title" content="%s" />\n'%title + \
|
||||
' <meta name="author" content="%s" />\n'%author + \
|
||||
' <meta name="description" content="%s" />\n'%about + \
|
||||
' <meta name="keywords" content="%s" />\n'%all_tags + \
|
||||
' <meta name="search_date" content="%s" />\n'%en_date + \
|
||||
' <link rel="canonical" href="%s" />\n'%post_url + \
|
||||
' <link rel="alternate" %s />\n'%(rss_ref) + \
|
||||
' <link rel="stylesheet" %s /\n'%css_ref + \
|
||||
' <link rel="shortcut icon" %s />'%icon_ref + \
|
||||
' <!-- Open Graph data -->\n' + \
|
||||
' <meta property="og:site_name" content="%s" />\n'%domain_title + \
|
||||
' <meta property="og:title" content="%s" />\n'%title + \
|
||||
' <meta property="og:type" content="article" />\n' + \
|
||||
' <meta property="og:url" content="%s" />\n'%post_url + \
|
||||
' <meta property="og:description" content="Description Here" />\n' + \
|
||||
' <meta property="og:image" content="" />\n' + \
|
||||
'%s'%relme + \
|
||||
user_metas + \
|
||||
'<title>%s</title>'%title
|
||||
'\n<!--# include virtual="/template/metas.html"-->\n' + \
|
||||
' <title>%s</title>'%title
|
||||
|
||||
|
||||
# Create HTML tabulation for metas
|
||||
#---------------------------------
|
||||
for line in metas.rsplit('\n'):
|
||||
if metas_page: metas_page = '%s\n%s%s'%(metas_page, tab * ' ', line)
|
||||
else: metas_page = '%s%s'%(tab * ' ', line)
|
||||
|
||||
|
||||
#=======================================#
|
||||
# Set main page, with all HTML sections #
|
||||
|
@ -136,19 +152,8 @@ def create_main_page(target, article_bottom):
|
|||
'%sid="site_logo_image">\n'%(15 * " ") + \
|
||||
'%s</a>'%(8 * " ")
|
||||
|
||||
|
||||
# Check for menu bar
|
||||
# Delete file if deactivated in conf
|
||||
if domain_menubar:
|
||||
if os.path.exists(navbar_file):
|
||||
tyto.exiting("25", 'menu from: %s'%navbar_file, False)
|
||||
else:
|
||||
tyto.exiting("24", '(menu file): %s'%navbar_file, False)
|
||||
else:
|
||||
if os.path.exists(navbar_file) and os.stat(navbar_file).st_size > 1:
|
||||
tyto.set_file(navbar_file, 'new', '')
|
||||
tyto.exiting("26", 'domain_menubar', False)
|
||||
tyto.exiting('27', 'contents (menu file): %s'%navbar_file, False)
|
||||
create_navbar('-n', navbars_dir)
|
||||
|
||||
#-----------------------#
|
||||
# Create main HTML Page #
|
||||
|
@ -156,7 +161,7 @@ def create_main_page(target, article_bottom):
|
|||
main_page = '<!Doctype html>\n' + \
|
||||
'<html lang="%s">\n'%domain_lang + \
|
||||
' <head>\n' + \
|
||||
'%s\n'%metas_page + \
|
||||
'%s\n'%metas + \
|
||||
' </head>\n\n' + \
|
||||
' <body>\n' + \
|
||||
' <header id="header_page">\n' + \
|
||||
|
@ -172,27 +177,31 @@ def create_main_page(target, article_bottom):
|
|||
' </a>\n' + \
|
||||
' <p id="site_about">%s</p>\n'%domain_about + \
|
||||
' </div>\n' + \
|
||||
'<!--# include virtual="/template/navbar.html"-->' + \
|
||||
'<!--# include virtual="/template/navbar.html"-->\n' + \
|
||||
' </header>\n' + \
|
||||
'\n' + \
|
||||
' <article id="article_main">\n' + \
|
||||
'%s\n'%article_bottom + \
|
||||
' </article>\n' + \
|
||||
'\n' + \
|
||||
'<!--# include virtual="/template/footer.html"-->\n' + \
|
||||
' </body>\n' + \
|
||||
'</html>'
|
||||
|
||||
footer_file = '%sfooter.html'%srv_wip_tpl
|
||||
if not os.path.exists(footer_file):
|
||||
tyto.exiting("1", footer_file, True)
|
||||
|
||||
#====================================#
|
||||
# Create HTML menu from root folders #
|
||||
#------------------------------------#
|
||||
def create_navbar():
|
||||
def create_navbar(option, target):
|
||||
# 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)
|
||||
tyto.set_file(navbar_file, 'new', '')
|
||||
tyto.exiting('27', 'contents (navbar): %s'%navbar_file, False)
|
||||
return
|
||||
|
||||
# True in config
|
||||
|
@ -208,9 +217,9 @@ def create_navbar():
|
|||
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())
|
||||
if '#' in line:
|
||||
direc = line.rsplit('#')[0].rstrip()
|
||||
title = '%stitle="%s"\n'%(15 * ' ', line.rsplit('#')[1].lstrip())
|
||||
else:
|
||||
direc = line
|
||||
title = ''
|
||||
|
@ -232,4 +241,117 @@ def create_navbar():
|
|||
|
||||
# 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)
|
||||
tyto.set_file(navbar_file, 'new', menu_html)
|
||||
|
||||
|
||||
#
|
||||
# Create metas.html from tyto.metas.html
|
||||
#
|
||||
def create_user_metas(option):
|
||||
domain.create_metas_file("-i") # Ensure config file exists
|
||||
|
||||
metas_html = '%smetas.html'%srv_wip_tpl
|
||||
user_metas = ''
|
||||
metas_used = ('<meta ', '<link ')
|
||||
log = ' ├ Create file: %s'%metas_html
|
||||
|
||||
try:
|
||||
user_file = open(metas_load, 'r').read()
|
||||
|
||||
for line in user_file.rsplit('\n'):
|
||||
if line.startswith(metas_used):
|
||||
if user_metas: user_metas = "%s\n %s"%(user_metas, line)
|
||||
else: user_metas = ' %s'%line
|
||||
tyto.set_file(metas_html, 'new', user_metas)
|
||||
print(log)
|
||||
except:
|
||||
tyto.exiting("24", '(metas file): %s'%metas_load, False)
|
||||
|
||||
|
||||
#=========================================#
|
||||
# Create generic footer from domain datas #
|
||||
#-----------------------------------------#
|
||||
def create_footer(option):
|
||||
try:
|
||||
tyto.domain_licurl
|
||||
domain_licurl = tyto.domain_licurl
|
||||
except:
|
||||
domain_licurl = "/"
|
||||
|
||||
# Default footer contents
|
||||
footer = '<footer id="footer_page">\n' + \
|
||||
' <div id="footer_infos">\n' + \
|
||||
' <a href="/"\n' + \
|
||||
' title="%s"\n'%(tyto.trans[1][tyto.n]) + \
|
||||
' id="footer_title_link">\n' + \
|
||||
' <h1 id="footer_site_title">%s</h1>\n'%(
|
||||
domain_title) + \
|
||||
' </a>\n' + \
|
||||
' <p id="footer_site_about">%s</p>\n'%(
|
||||
domain_about) + \
|
||||
' </div>\n' + \
|
||||
'\n' + \
|
||||
' <div id="footer_references">\n' + \
|
||||
' <ul> id="footer_items"\n' + \
|
||||
' <li id="fotter_item">\n' + \
|
||||
' <a href="%s"\n'%domain_licurl + \
|
||||
' title="%s %s %s"\n'%(
|
||||
tyto.trans[2][tyto.n],
|
||||
domain_sep, domain_title) + \
|
||||
' id="footer_item_link">%s</a>\n'%(
|
||||
domain_license) + \
|
||||
' </li>\n' + \
|
||||
' <li id="fotter_item">\n' + \
|
||||
' <a href="%s"\n'%Tytoweb + \
|
||||
' title="%s"\n'%Tytowti + \
|
||||
' id="footer_item_link">%s</a> %s\n'%(Tyto, Tytosrc) + \
|
||||
' </li>\n' + \
|
||||
' </ul>\n' + \
|
||||
' </div>\n' + \
|
||||
'</footer>\n'
|
||||
|
||||
|
||||
# Create new file, or ask if exists
|
||||
ask = ' ├ Use default footer.html ? '
|
||||
log = ' ├ Create file: %s'%footer_load
|
||||
|
||||
if os.path.exists(footer_load):
|
||||
if option == '-i': return
|
||||
res = input(ask)
|
||||
if not res in ['y', 'Y']: return
|
||||
|
||||
tyto.set_file(footer_load, 'new', footer)
|
||||
print(log)
|
||||
|
||||
'''
|
||||
' <li id="fotter_item">\n' + \
|
||||
' <a href="%s"\n' + \
|
||||
' title="%s"\n' + \
|
||||
' id="footer_item_link">%s</a>\n'% + \
|
||||
' </li>\n' + \
|
||||
Copyright © 2021-2022
|
||||
|
||||
'''
|
||||
|
||||
#
|
||||
# Create footer.html from tyto.footer.html
|
||||
#
|
||||
def create_user_footer(option):
|
||||
create_footer("-i") # Ensure config file exists
|
||||
|
||||
footer_html = '%sfooter.html'%srv_wip_tpl
|
||||
user_footer = ''
|
||||
noline = ('<!--')
|
||||
log = ' ├ Create file: %s'%footer_html
|
||||
|
||||
try:
|
||||
user_file = open(footer_load, 'r').read()
|
||||
|
||||
for line in user_file.rsplit('\n'):
|
||||
if line.startswith(noline): continue
|
||||
if user_metas: user_metas = "%s\n %s"%(user_metas, line)
|
||||
else: user_metas = ' %s'%line
|
||||
tyto.set_file(footer_html, 'new', user_footer)
|
||||
print(log)
|
||||
except:
|
||||
tyto.exiting("24", '(metas file): %s'%footer_load, False)
|
||||
|
|
|
@ -39,14 +39,13 @@ def manage_navbars(target, option):
|
|||
# Initialize new file
|
||||
if not target:
|
||||
if option == "Remove":
|
||||
actions[sys.argv[1]](opt, navbars_dir)
|
||||
actions[sys.argv[1]](option, navbars_dir)
|
||||
elif option == 'Edit':
|
||||
print(":D Edit %s configuration file:"%sys.argv[1], file)
|
||||
tyto.edit_file(file)
|
||||
elif option == 'New':
|
||||
html.create_navbar()
|
||||
|
||||
|
||||
else:
|
||||
db_exists = tyto.get_db_post(target) # Article exists + has DB ?
|
||||
if not db_exists: tyto.exiting("4", '') # Needs database
|
||||
|
|
|
@ -90,8 +90,9 @@ else: n = 1
|
|||
|
||||
# Translations French/English
|
||||
trans = [
|
||||
['À l\'affiche !', 'Featured !' ], #0
|
||||
['Accueil', 'Home'] #1
|
||||
('À l\'affiche !', 'Featured !'), #0
|
||||
('Accueil', 'Home'), #1
|
||||
('Licence', 'License') #2
|
||||
]
|
||||
|
||||
|
||||
|
@ -501,6 +502,7 @@ def exiting(nbr, value, out):
|
|||
'8' : ':< %sNot paired%s: %s'%(CR, CS, value),
|
||||
'9' : ':< Article %shas changed%s. Check it first'%(CR, CS),
|
||||
'10' : ':< %sUnused "%s"%s in article\'s header'%(CR, value, CS),
|
||||
'11' : ':< %sUnused argument%s: %s'%(CR, CS, value),
|
||||
'20' : ':D %sUp-to-date%s article on: %s'%(CG, CS, value),
|
||||
'21' : ':D %sValid%s article. Ready to wip'%(CG, CS),
|
||||
'22' : ':? %sNot paired%s symbols: %s'%(CY, CS, value),
|
||||
|
|
|
@ -87,8 +87,6 @@ def manage_wip(target, option):
|
|||
# Set Db #
|
||||
#-------------------#
|
||||
def wip_article(target):
|
||||
print('Convert')
|
||||
|
||||
# Convert file to strings
|
||||
file_to_string(target)
|
||||
|
||||
|
|
Loading…
Reference in New Issue