Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
31 changes: 30 additions & 1 deletion sort.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,33 @@
This could be extended by having nested blocks, sorting them recursively
and flattening the end structure into a list of lines. Revision 2 maybe ^.^.
"""
def sort_blocks():
# First, we load the current README into memory
with open('README.md', 'r') as read_me_file:
read_me = read_me_file.read()

# Separating the 'table of contents' from the contents (blocks)
table_of_contents = ''.join(read_me.split('- - -')[0])
blocks = ''.join(read_me.split('- - -')[1]).split('\n# ')
for i in range(len(blocks)):
if i == 0:
blocks[i] = blocks[i]+'\n'
else:
blocks[i] = '#' + blocks[i]+'\n'

# Sorting the libraries
inner_blocks = sorted(blocks[0].split('##'))
for i in range(1 , len(inner_blocks)):
if inner_blocks[i][0] != '#':
inner_blocks[i]='##'+inner_blocks[i]
inner_blocks=''.join(inner_blocks)

# Replacing the non-sorted libraries by the sorted ones and gathering all at the final_README file
blocks[0] = inner_blocks
final_README = table_of_contents + '- - -'+ ''.join(blocks)

with open('README.md', 'w+') as sorted_file:
sorted_file.write(final_README)

def main():
# First, we load the current README into memory as an array of lines
Expand Down Expand Up @@ -44,7 +70,10 @@ def main():
blocks = [''.join(sorted(block, key=lambda s: s.lower())) for block in blocks]
# And the result is written back to README.md
sorted_file.write(''.join(blocks))


# Then we call the sorting method
sort_blocks()


if __name__ == "__main__":
main()