Created
January 15, 2021 21:30
-
-
Save leog/63518b16235f153d71ee38df0984afd4 to your computer and use it in GitHub Desktop.
directory_index.rb
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<html> | |
<head> | |
<title>${header}</title> | |
<meta name="description" content="${header}"/> | |
</head> | |
<body> | |
${readme_content} | |
<hr> | |
<table> | |
<tbody> | |
<tr> | |
<th valign="top"></th> | |
<th><a href="?C=N;O=D">Name</a></th> | |
<th><a href="?C=M;O=A">Last modified</a></th> | |
<th><a href="?C=S;O=A">Size</a></th> | |
<th><a href="?C=D;O=A">Description</a></th> | |
</tr> | |
<tr> | |
<th colspan="5"><hr></th> | |
</tr> | |
<tr> | |
<td valign="top"><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAmlJREFUeNpsU0toU0EUPfPysx/tTxuDH9SCWhUDooIbd7oRUUTMouqi2iIoCO6lceHWhegy4EJFinWjrlQUpVm0IIoFpVDEIthm0dpikpf3ZuZ6Z94nrXhhMjM3c8895977BBHB2PznK8WPtDgyWH5q77cPH8PpdXuhpQT4ifR9u5sfJb1bmw6VivahATDrxcRZ2njfoaMv+2j7mLDn93MPiNRMvGbL18L9IpF8h9/TN+EYkMffSiOXJ5+hkD+PdqcLpICWHOHc2CC+LEyA/K+cKQMnlQHJX8wqYG3MAJy88Wa4OLDvEqAEOpJd0LxHIMdHBziowSwVlF8D6QaicK01krw/JynwcKoEwZczewroTvZirlKJs5CqQ5CG8pb57FnJUA0LYCXMX5fibd+p8LWDDemcPZbzQyjvH+Ki1TlIciElA7ghwLKV4kRZstt2sANWRjYTAGzuP2hXZFpJ/GsxgGJ0ox1aoFWsDXyyxqCs26+ydmagFN/rRjymJ1898bzGzmQE0HCZpmk5A0RFIv8Pn0WYPsiu6t/Rsj6PauVTwffTSzGAGZhUG2F06hEc9ibS7OPMNp6ErYFlKavo7MkhmTqCxZ/jwzGA9Hx82H2BZSw1NTN9Gx8ycHkajU/7M+jInsDC7DiaEmo1bNl1AMr9ASFgqVu9MCTIzoGUimXVAnnaN0PdBBDCCYbEtMk6wkpQwIG0sn0PQIUF4GsTwLSIFKNqF6DVrQq+IWVrQDxAYQC/1SsYOI4pOxKZrfifiUSbDUisif7XlpGIPufXd/uvdvZm760M0no1FZcnrzUdjw7au3vu/BVgAFLXeuTxhTXVAAAAAElFTkSuQmCC " | |
alt="[PARENTDIR]"></td> | |
<td><a href="../">Parent Directory</a></td> | |
<td> </td> | |
<td align="right">-</td> | |
<td> </td> | |
</tr> | |
<tr> | |
<th colspan="5"><hr></th> | |
</tr> | |
% for name in dirnames: | |
<tr> | |
<td valign="top"><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAd5JREFUeNqMU79rFUEQ/vbuodFEEkzAImBpkUabFP4ldpaJhZXYm/RiZWsv/hkWFglBUyTIgyAIIfgIRjHv3r39MePM7N3LcbxAFvZ2b2bn22/mm3XMjF+HL3YW7q28YSIw8mBKoBihhhgCsoORot9d3/ywg3YowMXwNde/PzGnk2vn6PitrT+/PGeNaecg4+qNY3D43vy16A5wDDd4Aqg/ngmrjl/GoN0U5V1QquHQG3q+TPDVhVwyBffcmQGJmSVfyZk7R3SngI4JKfwDJ2+05zIg8gbiereTZRHhJ5KCMOwDFLjhoBTn2g0ghagfKeIYJDPFyibJVBtTREwq60SpYvh5++PpwatHsxSm9QRLSQpEVSd7/TYJUb49TX7gztpjjEffnoVw66+Ytovs14Yp7HaKmUXeX9rKUoMoLNW3srqI5fWn8JejrVkK0QcrkFLOgS39yoKUQe292WJ1guUHG8K2o8K00oO1BTvXoW4yasclUTgZYJY9aFNfAThX5CZRmczAV52oAPoupHhWRIUUAOoyUIlYVaAa/VbLbyiZUiyFbjQFNwiZQSGl4IDy9sO5Wrty0QLKhdZPxmgGcDo8ejn+c/6eiK9poz15Kw7Dr/vN/z6W7q++091/AQYA5mZ8GYJ9K0AAAAAASUVORK5CYII= " | |
alt="[DIR]"></td> | |
<td><a href="${name}">${name}</a></td> | |
<td align="right">${time}</td> | |
<td align="right">-</td> | |
<td> </td> | |
</tr> | |
% endfor | |
% for name in filenames: | |
<tr> | |
<td valign="top"><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAAABnRSTlMAAAAAAABupgeRAAABHUlEQVR42o2RMW7DIBiF3498iHRJD5JKHurL+CRVBp+i2T16tTynF2gO0KSb5ZrBBl4HHDBuK/WXACH4eO9/CAAAbdvijzLGNE1TVZXfZuHg6XCAQESAZXbOKaXO57eiKG6ft9PrKQIkCQqFoIiQFBGlFIB5nvM8t9aOX2Nd18oDzjnPgCDpn/BH4zh2XZdlWVmWiUK4IgCBoFMUz9eP6zRN75cLgEQhcmTQIbl72O0f9865qLAAsURAAgKBJKEtgLXWvyjLuFsThCSstb8rBCaAQhDYWgIZ7myM+TUBjDHrHlZcbMYYk34cN0YSLcgS+wL0fe9TXDMbY33fR2AYBvyQ8L0Gk8MwREBrTfKe4TpTzwhArXWi8HI84h/1DfwI5mhxJamFAAAAAElFTkSuQmCC " | |
alt="[DIR]"></td> | |
<td><a href="${name.rsplit(".",1)[0]}">${name.rsplit(".",1)[0]}</a></td> | |
<td align="right">${time}</td> | |
<td align="right">-</td> | |
<td> </td> | |
</tr> | |
% endfor | |
</p> | |
</tbody> | |
</table> | |
</body> | |
</html> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Jekyll::Hooks.register([:pages, :posts], :pre_render) do |post| | |
result = `python _plugins/make_index.py .` | |
end |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
""" Build index from directory listing | |
make_index.py </path/to/directory> [--header <header text>] | |
""" | |
from __future__ import print_function | |
import os.path, time | |
from StringIO import StringIO # Python2 | |
EXCLUDED = ['index.html', '.git', '.jekyll-cache', '_site', '.sass-cache', '_includes', '_config.yml', '.gitignore', '404.html', 'Gemfile', 'Gemfile.lock', 'make_index.py', 'README.md'] | |
import os | |
import argparse | |
import frontmatter | |
import markdown | |
import sys | |
# May need to do "pip install mako" | |
from mako.template import Template | |
def fun(dir,rootdir): | |
filenames = [fname for fname in sorted(os.listdir(dir)) | |
if fname not in EXCLUDED and os.path.isfile(dir+fname)] | |
dirnames = [fname for fname in sorted(os.listdir(dir)) | |
if fname not in EXCLUDED] | |
dirnames = [fname for fname in dirnames if fname not in filenames] | |
readme = frontmatter.load(dir+'/README.md') | |
readme_content = markdown.markdown(readme.content) | |
f = open(dir+'index.html','w') | |
print(Template(filename='_includes/folder_index.html').render(readme_content=readme_content,dirnames=dirnames,filenames=filenames, header=dir,ROOTDIR=rootdir,time=time.ctime(os.path.getctime(dir))),file=f) | |
f.close() | |
for subdir in dirnames: | |
try: | |
fun(dir+subdir+"/",rootdir+'../') | |
except: | |
pass | |
def main(): | |
parser = argparse.ArgumentParser() | |
parser.add_argument("directory") | |
args = parser.parse_args() | |
fun(args.directory+'/','../') | |
if __name__ == '__main__': | |
main() |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment