-
Notifications
You must be signed in to change notification settings - Fork 0
/
tag_generator.py
executable file
·98 lines (80 loc) · 2.51 KB
/
tag_generator.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
#!/usr/bin/env python
'''
tag_generator.py
Copyright 2017 Long Qian
Contact: [email protected]
This script creates tags for your Jekyll blog hosted by Github page.
No plugins required.
'''
import glob
import os
tag_dir = 'tag/'
post_dir = '_posts/'
filenames = glob.glob(post_dir + '*md')
page_dir = 'pages/'
filenames = filenames + glob.glob(page_dir + '*md')
#post_dir = 'pages/'
#filenames = filenames + [os.path.join(root, name)
# for root, dirs, files in os.walk(post_dir)
# for name in files
# if name.endswith(('md'))]
print filenames
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 + '*.md')
for tag in old_tags:
os.remove(tag)
for tag in total_tags:
tag_filename = tag_dir + tag + '.md'
f = open(tag_filename, 'a')
write_str = '---\nlayout: tagpage\ntitle: \"Tag: ' + tag + '\"\ntag: ' + tag + '\nrobots: noindex\n---\n'
f.write(write_str)
f.close()
print("Tags generated, count", total_tags.__len__())
category_dir = 'category/'
total_categories = []
for filename in filenames:
f = open(filename, 'r')
crawl = False
for line in f:
if crawl:
current_categories = line.strip().split()
if current_categories[0] == 'categories:':
total_categories.extend(current_categories[1:])
crawl = False
break
if line.strip() == '---':
if not crawl:
crawl = True
else:
crawl = False
break
f.close()
total_categories = set(total_categories)
old_categories = glob.glob(category_dir + '*.md')
for category in old_categories:
os.remove(category)
for category in total_categories:
category_filename = category_dir + category + '.md'
f = open(category_filename, 'a')
write_str = '---\nlayout: categorypage\ntitle: \"Category: ' + category + '\"\ncategories: ' + category + '\nrobots: noindex\n---\n'
f.write(write_str)
f.close()
print("Categories generated, count", total_categories.__len__())