From dece49eb2656aa10ec9ebf9f10696235e1468fe0 Mon Sep 17 00:00:00 2001 From: laurentheirendt <laurent.heirendt@uni.lu> Date: Fri, 11 Feb 2022 14:08:15 +0100 Subject: [PATCH] draft: ordering of sections --- .ci/generateIndex.py | 83 +++++++++++++++++++++++++++++++++++--------- 1 file changed, 67 insertions(+), 16 deletions(-) diff --git a/.ci/generateIndex.py b/.ci/generateIndex.py index 4dcff3ab..c2f81086 100644 --- a/.ci/generateIndex.py +++ b/.ci/generateIndex.py @@ -161,8 +161,8 @@ index = '' index += '\n<div class="index-box-container">\n' whiteList = '' -localIndexArr = [[]] * len(sections) -orderArr = [[]] * len(sections) +localIndexArr = {k: [] for k in range(len(sections))} +orderArr = {k: [] for k in range(len(sections))} for folder in cardDirs: # FolderFlag gets set to true at the first iteration @@ -182,9 +182,6 @@ for folder in cardDirs: indexS = sections.index(d) maxOrder = 0 - # reset the ordering array per section - orderArr[indexS] = [] - if len(localIndexArr[indexS]) == 0: localIndexArr[indexS] = ["\n"] @@ -220,6 +217,9 @@ for folder in cardDirs: # define the header for each card header = "---\n" + #print("orderArr --- ") + #print(orderArr) + if len(order) > 0: header += "order: " + str(order) + "\n" # append the order of the card @@ -233,12 +233,26 @@ for folder in cardDirs: # after determining the max order, set the folder flag to False to avoid another entry into the same block of code folderFlag = False - tmp = orderArr[indexS] + tmp = orderArr[indexS].copy() tmp.append(maxOrder + int(order)) + #print("tmp --- ") + #print(tmp) + #print("") + #print("indexS") + #print(indexS) + #print("orderArr --- ") + #print(orderArr) + #print("orderArr[indexS] --- ") + #print(orderArr[indexS]) orderArr[indexS] = tmp + + #print("orderArr --- ") + #print(orderArr) else: orderArr[indexS] = [] + + header += "layout: page\n" header += "permalink: " + permalink + "\n" header += "shortcut: " + root_handbook(shortcut) + "\n" @@ -294,18 +308,55 @@ for folder in cardDirs: # output print(" + New header added.") print("-----------------------") - - # join all subcategories to the index - # if all subcategories have a predefined order - if len(orderArr[indexS]) <= len(localIndexArr[indexS]) and len(orderArr[indexS]) > 0: - 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("") + + + #debugging + #print("--- debugging ---") + #print(indexS) + #print("---") + #print(localIndexArr[indexS]) + #print("---") + #print(orderArr) + #print("") + +# ordering of cards +#print("-- sorting --") +for d in sections: + #print("section: " + d) + indexS = sections.index(d) + #print(indexS) + #print("") + #print("-- order --") + #print(orderArr[indexS]) + #print("-- before ordering --") + #print(localIndexArr[indexS]) + #print("") + #print(len(orderArr[indexS])) + #print(len(localIndexArr[indexS])) + + # 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] + + #print("-- X --") + #print(X) + #print("-- Y --") + #print(Y) + localIndexArr[indexS] = [x for _, x in sorted(zip(Y, X))] + # natural sorting otherwise + else: + localIndexArr[indexS] = natsorted(localIndexArr[indexS]) + + #print("-- after ordering --") + #print(localIndexArr[indexS]) + #print("") print(localIndexArr) +#print(sections) # determine the index k = 0 -- GitLab