..

Project Files to Nested Markdown Checkboxes

Compatibility: MacOS

The following script will generate a markdown file with checkboxes for all the files and directories in the current directory. This is useful when you are going through a new project and want to keep track of what you have gone through.

❯ tree --dirsfirst | sed -e 's/[├──└│]/ /g' > ~/projects_as_md_checkboxes.txt

--dirsfirst will list directories first, and sed -e 's/[├──└│]/ /g' will remove the tree characters from the output.

Why --dirsfirst? Because my IDE shows directories first, and I want to keep the same order in the markdown file. 

def tree_to_markdown(tree_file):
    with open(tree_file, 'r') as f:
        lines = f.readlines()
    markdown_list = []
    for line in lines:
        leading_spaces = len(line) - len(line.lstrip())
        name = line.lstrip()
        checkbox = ' ' * leading_spaces + '- [ ] ' + name
        markdown_list.append(checkbox)
    markdown_output = ''.join(markdown_list)
    return markdown_output

tree_file_path = '/Users/saif/projects_as_md_checkboxes.txt'
markdown_output = tree_to_markdown(tree_file_path)
print(markdown_output)