3 '''Create YAML catalog of CSS styles used in a set of HTML documents.
5 Usage: catalog.py file [file...]
10 from bs4 import BeautifulSoup
16 for filename in argv[1:]:
17 with open(filename, 'r') as reader:
18 doc = BeautifulSoup(reader.read())
19 for node in doc.descendants:
24 def update(catalog, node):
25 '''Record classes used in node.'''
30 if node.name not in catalog:
31 catalog[node.name] = set()
33 if 'class' in node.attrs:
34 for cls in node.attrs['class']:
35 catalog[node.name].add(cls)
39 '''Show the catalog.'''
41 for name in sorted(catalog.keys()):
42 catalog[name] = sorted(catalog[name])
43 yaml.dump(catalog, stream=sys.stdout)
46 if __name__ == '__main__':