Fix wip anchors + other fixes

This commit is contained in:
Cyrille L 2023-04-07 12:23:25 +02:00
parent a19ba8dcf8
commit ba9961e357
5 changed files with 74 additions and 45 deletions

View File

@ -84,9 +84,9 @@ pass_db = \
pass_targets = \
(
'updated',
'added',
'again',
'newer',
'updated',
'domain',
'footer',
'metas',
@ -96,7 +96,7 @@ pass_targets = \
'template'
)
multi_chk = ('updated', 'again', 'newer')
multi_chk = ('added', 'again', 'updated')
action = ''
target = ''

View File

@ -115,7 +115,7 @@ def check_all(option):
global domain_dir
found = False
if option == "newer":
if option == "added":
os.chdir(dom.articles_d)
domain_dir = True
@ -404,6 +404,7 @@ def check_needed_tags(post_header):
# Set data from tag
if line.startswith('%s:'%tag):
globals()[tag] = line.rsplit('%s:'%tag)[1].lstrip()
globals()[tag] = globals()[tag].replace('"', '')
# Stat for "tags:"
if tag == 'tags':
stat_tags = len(globals()[tag].strip().split(","))
@ -669,6 +670,59 @@ def check_snpic(name):
snpic_url = dom.www_url + web_uri
#==========================================#
# Check anchors target and links #
# Check for duplicate anchor name target #
# Cannot have anchors links without target #
#------------------------------------------#
def check_anchors():
global post_err
# Anchor target
if nbr_ancs > 0:
# Create anchors names targets
anchors_names = (())
for line in post_bottom.rsplit('\n'):
if line.startswith(tyto.single_tags[1][0]):
name = tyto.get_css(line)
anchors_names = anchors_names + ((name),)
# Check for uniq anchor_name
for name in list(anchors_names):
if anchors_names.count(name) > 1:
post_err = True
logs.out("15", '"%s %s" > %s'%(
tyto.single_tags[1][0], name, db.uri_file
), False)
break
# Anchor link
if post_anchors == 0:
return
# Article has anchors links but no anchor target
elif nbr_ancs == 0:
logs.out("12", "%s [NAME] > %s"%(
tyto.single_tags[1][0], db.uri_file
), False)
post_err = True
return
# Check in anchor link has target one
else:
for ln, line in enumerate(post_bottom.rsplit('\n'), 1):
# Anchor link
if tyto.words_tags[0][0] and tyto.words_tags[0][1] in line:
anchors = re.findall(r">_(.*?)_<", line)
for anchor in anchors:
anchor_name = anchor.rsplit(':')[0].lstrip()
if not anchor_name in anchors_names:
logs.out("12", 'L=%s. anchor "%s" > %s'%(
ln + 1 + ln_header, anchor_name, db.uri_file
), False)
post_err = True
#===========================#
# Check tags in post_bottom #
#---------------------------#
@ -705,33 +759,7 @@ def check_content(post_bottom):
# Check if anchor has target
# Count anchors target
#---------------------------
if post_anchors > 0:
for ln, line in enumerate(post_bottom.rsplit('\n'), 1):
# Anchor link
if tyto.words_tags[0][0] and tyto.words_tags[0][1] in line:
anchors = re.findall(r">_(.*?)_<", line)
for anchor in anchors:
css_anchor = anchor.rsplit(':')[0]
tag = '%s %s'%(tyto.single_tags[1][0], css_anchor)
if not tag in post_bottom:
logs.out("12", 'L=%s. anchor "%s" > %s'%(
ln + ln_header, tag, db.uri_file
), False)
post_err = True
# Anchor "->" id must be uniq
if nbr_ancs > 0:
if line.startswith(tyto.single_tags[1][0]):
set_css = tyto.get_css(line)
is_uniq_anchor = "%s %s"%(tyto.single_tags[1][0], set_css)
c_uniq_anchor = post_bottom.count(is_uniq_anchor)
if c_uniq_anchor > 1:
logs.out("15", 'L=%s. %sx "%s" > %s'%(
ln + ln_header, c_uniq_anchor, is_uniq_anchor,
db.uri_file
), False)
post_err = True
break
check_anchors()
# Lists: check if contents are valid

View File

@ -50,9 +50,9 @@ def manage_publish(target):
#-----------------------------------------
if target in args.pass_targets:
do = {
'all' : publish_all,
'updated' : publish_all,
'again' : publish_all,
'newer' : publish_all,
'added' : publish_all,
'sidebar' : html.create_sidebar,
'navbar' : html.create_navbar,
'metas' : html.create_user_metas,
@ -208,7 +208,7 @@ def publish_all(option):
if not db.hash_wip: continue
if option == "again" and not db.sync_srvs: continue
if option == "newer" and not db.old_www: continue
if option == "added" and not db.old_www: continue
print(':> [%s] - %s'%(db.title, db.post_src))
if db.old_chk:

View File

@ -57,7 +57,7 @@ def manage(target):
do = {
'updated' : wip_all,
'again' : wip_all,
'newer' : wip_all,
'added' : wip_all,
'sidebar' : html.create_sidebar,
'navbar' : html.create_navbar,
'metas' : html.create_user_metas,
@ -105,10 +105,10 @@ def wip_all(process):
langs.site.wip_again, langs.site.q
), True)
elif args.target == "updated":
elif args.target == "addedd":
print('%s'%langs.site.wip_older)
elif args.target == "newer":
elif args.target == "updated":
print('%s'%langs.site.wip_newer)
# Sort by newer articles (created by last check)
@ -137,7 +137,7 @@ def wip_all(process):
continue
# newer: article not yet wip
elif option == "newer" and db.hash_wip:
elif option == "added" and db.hash_wip:
continue
# All: only old wip
@ -251,14 +251,14 @@ def wip_single_tags():
)
# Anchor source
for line in post_bottom.rsplit('\n'):
for ln, line in enumerate(post_bottom.rsplit('\n')):
if line.startswith(tyto.single_tags[1][0]):
set_css = tyto.get_css(line)
replace_in_post(line,
replace_in_post(post_bottom.rsplit('\n')[ln],
tyto.single_tags[1][1]%set_css
)
#==================================#
# Convert tags (strong, icodes...) #
# Convert Paragraphs #
@ -369,12 +369,13 @@ def wip_links():
def wip_abbrs():
if db.uniq_abbrs == 0: return
abbr_src = '<abbr title="%s">%s</abbr>'
abbr_src = '<abbr class="%s" title="%s">%s</abbr>'
for i in range(1, db.uniq_abbrs + 1):
abbr = 'db.abbr_%s'%i
try: abbr_show = eval(abbr)[2]
except: abbr_show = eval(abbr)[0]
abbr_html = abbr_src%(eval(abbr)[1],
abbr_html = abbr_src%(dom.css,
eval(abbr)[1],
abbr_show
)

View File

@ -278,8 +278,8 @@ args_helps = """\n# Nouveau domaine :
# Traitement en masse
updated : Mise à jour des articles modifiés (déjà vérifiés)
again : Forcer TOUS les articles déjà vérifiés
newer : [check] Vérifier tous les article .tyto dans le domaine
qui n'ont pas été déjà vérifiés
added : [check] Vérifier tous les article .tyto dans le domaine
qui n'ont pas été déjà validés
[wip, publish] Créer les pages HTML des articles
qui ont été modifiés et vérifiés