66 lines
1.4 KiB
Python
Executable file
66 lines
1.4 KiB
Python
Executable file
#!/usr/bin/env python
|
|
|
|
"""
|
|
tag_generator.py
|
|
|
|
Copyright 2022 Claudio Maradonna
|
|
Copyright 2017 Long Qian
|
|
Contact: lqian8@jhu.edu
|
|
|
|
This script creates tags for your Jekyll blog hosted by Github page.
|
|
No plugins required.
|
|
"""
|
|
|
|
import glob
|
|
import os
|
|
|
|
post_dir = "_pages/"
|
|
tag_dir = "tag/"
|
|
|
|
filenames = glob.glob(post_dir + "*html")
|
|
|
|
total_tags = []
|
|
for filename in filenames:
|
|
f = open(filename, "r")
|
|
crawl = False
|
|
for line in f:
|
|
if crawl:
|
|
current_tags = line.strip().split()
|
|
if current_tags[0] == "tags:":
|
|
total_tags.extend(current_tags[1:])
|
|
crawl = False
|
|
break
|
|
if line.strip() == "---":
|
|
if not crawl:
|
|
crawl = True
|
|
else:
|
|
crawl = False
|
|
break
|
|
f.close()
|
|
total_tags = set(total_tags)
|
|
|
|
old_tags = glob.glob(tag_dir + "*.html")
|
|
for tag in old_tags:
|
|
os.remove(tag)
|
|
|
|
if not os.path.exists(tag_dir):
|
|
os.makedirs(tag_dir)
|
|
|
|
for tag in total_tags:
|
|
tag_filename = tag_dir + tag + ".html"
|
|
f = open(tag_filename, "a")
|
|
write_str = (
|
|
"---\nlayout: tagpage\ntitle: meta.titles.tags."
|
|
+ tag
|
|
+ '\ntag: "'
|
|
+ tag
|
|
+ '"\ndescription: meta.descriptions.tags.'
|
|
+ tag
|
|
+ '"\n---\n'
|
|
)
|
|
f.write(write_str)
|
|
f.close()
|
|
|
|
# print(f"{tag}: \"#{tag}\"")
|
|
|
|
print("Tags generated, count", total_tags.__len__())
|