Skip to content
Snippets Groups Projects
Verified Commit a8983c7a authored by Laurent Heirendt's avatar Laurent Heirendt :airplane:
Browse files

merge all fcts

parent 222e5754
No related branches found
No related tags found
No related merge requests found
......@@ -4,6 +4,7 @@ from os.path import exists
from threading import local
import yaml
from natsort import natsorted
from pathlib import Path
def line_prepender(filename, line):
with open(filename, 'r+') as f:
......@@ -288,9 +289,118 @@ def get_title(localroot, root, file):
return title, qms_yml, yml_file
def core(cardDirs, localroot, localIndexArr, orderArr, sections, ignore):
def get_sections(cardDirs):
sections = []
# retrieve ignore list
ignore = get_ignore()
# determine first the directories
for direct in cardDirs:
if path.isdir(direct) and has_subdirs(direct):
dirs = os.listdir(direct)
dirs = natsorted(dirs)
for d in dirs:
if d[0] != "." and d not in ignore and has_subdirs(direct + "/" + d):
sections.append(d)
sections = list(set(sections))
sections = natsorted(sections)
return sections, ignore
def get_indexArr(sections):
localIndexArr = {k: [] for k in range(len(sections))}
orderArr = {k: [] for k in range(len(sections))}
return localIndexArr, orderArr
def sort_sections(sections, localIndexArr, orderArr):
for d in sections:
indexS = sections.index(d)
# join all subcategories to the index
# if all subcategories have a predefined order
if len(orderArr[indexS]) == len(localIndexArr[indexS])-1 and len(orderArr[indexS]) > 0:
print("")
X = localIndexArr[indexS][1:]
Y = orderArr[indexS]
localIndexArr[indexS] = [x for _, x in sorted(zip(Y, X))]
# natural sorting otherwise
else:
localIndexArr[indexS] = natsorted(localIndexArr[indexS])
print(localIndexArr)
return localIndexArr
def generate_index_top():
index = '\n<div class="index-box-container">\n'
return index
def generate_index(index, sections, localIndexArr):
# determine the index
k = 0
for s in sections:
index += build_section_start(s.replace("-", " ").capitalize(), s)
index += ''.join(localIndexArr[k])
index += build_section_end()
k += 1
# close the container
index += "\n</div>"
## add link to return to main index
index += """<br><center><a href="{{ '/' | relative_url }}">go back</a></center>"""
index += """<br><center><a href="{{ '/cards' | relative_url }}">Overview of all HowTo cards</a></center>"""
return index
def save_index(index, indexFile):
# output the index
#print(index)
# Read in the file
#indexFile = "cards.md"
filedata = ""
with open(indexFile, 'r') as file :
for line in file:
filedata += line
# stop reading once the index place holder has been reached
if re.search("<!-- index -->", line):
filedata += "[[ index ]]"
break
# Replace the target string
filedata = filedata.replace('[[ index ]]', index)
# Write the file out again
with open(indexFile, 'w') as file:
file.write(filedata)
print("\n > New index generated and saved in " + indexFile)
def save_whitelist(whitelist, whitelistFile):
# write link whitelist out
if Path(whitelistFile).exists():
with open(whitelistFile, 'r') as file :
for line in file:
whitelist += line
with open(whitelistFile, 'w') as file:
file.write(whitelist)
whiteList = ''
def core(cardDirs, localroot=os.getcwd()):
sections, ignore = get_sections(cardDirs)
localIndexArr, orderArr = get_indexArr(sections)
whitelist = ''
index = generate_index_top()
for folder in cardDirs:
# FolderFlag gets set to true at the first iteration
......@@ -365,7 +475,7 @@ def core(cardDirs, localroot, localIndexArr, orderArr, sections, ignore):
header = generate_header(folder, permalink, shortcut, order, legacy_from, title, description, qms_yml)
# add autogenerated links to whitelist
whiteList += generate_whitelist_entry(folder, permalink, shortcut)
whitelist += generate_whitelist_entry(folder, permalink, shortcut)
# add the header properly speaking
line_prepender(fileName, header)
......@@ -403,97 +513,9 @@ def core(cardDirs, localroot, localIndexArr, orderArr, sections, ignore):
print(" + New header added.")
print("-----------------------")
return folderFlag, localIndexArr, whiteList
def get_sections(cardDirs):
sections = []
# retrieve ignore list
ignore = get_ignore()
# determine first the directories
for direct in cardDirs:
if path.isdir(direct) and has_subdirs(direct):
dirs = os.listdir(direct)
dirs = natsorted(dirs)
for d in dirs:
if d[0] != "." and d not in ignore and has_subdirs(direct + "/" + d):
sections.append(d)
sections = list(set(sections))
sections = natsorted(sections)
localIndexArr = sort_sections(sections, localIndexArr, orderArr)
return sections, ignore
def get_indexArr(sections):
localIndexArr = {k: [] for k in range(len(sections))}
orderArr = {k: [] for k in range(len(sections))}
return localIndexArr, orderArr
def sort_sections(sections, localIndexArr, orderArr):
for d in sections:
indexS = sections.index(d)
# join all subcategories to the index
# if all subcategories have a predefined order
if len(orderArr[indexS]) == len(localIndexArr[indexS])-1 and len(orderArr[indexS]) > 0:
print("")
X = localIndexArr[indexS][1:]
Y = orderArr[indexS]
localIndexArr[indexS] = [x for _, x in sorted(zip(Y, X))]
# natural sorting otherwise
else:
localIndexArr[indexS] = natsorted(localIndexArr[indexS])
print(localIndexArr)
index = generate_index(index, sections, localIndexArr)
return localIndexArr
def generate_index_top():
index = '\n<div class="index-box-container">\n'
return index
def generate_index(index, sections, localIndexArr):
# determine the index
k = 0
for s in sections:
index += build_section_start(s.replace("-", " ").capitalize(), s)
index += ''.join(localIndexArr[k])
index += build_section_end()
k += 1
# close the container
index += "\n</div>"
## add link to return to main index
index += """<br><center><a href="{{ '/' | relative_url }}">go back</a></center>"""
index += """<br><center><a href="{{ '/cards' | relative_url }}">Overview of all HowTo cards</a></center>"""
return index
def save_index(index, indexFile):
# output the index
#print(index)
# Read in the file
#indexFile = "cards.md"
filedata = ""
with open(indexFile, 'r') as file :
for line in file:
filedata += line
# stop reading once the index place holder has been reached
if re.search("<!-- index -->", line):
filedata += "[[ index ]]"
break
# Replace the target string
filedata = filedata.replace('[[ index ]]', index)
# Write the file out again
with open(indexFile, 'w') as file:
file.write(filedata)
return index, whitelist
print("\n > New index generated and saved in " + indexFile)
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment