123456789101112131415161718192021222324252627 |
- import os
- from pelican import signals
- CTAGS_TEMPLATE = '''{% for tag, articles in tags_articles %}
- {% for article in articles %}
- {{tag}}\t{{article}}\t0;"\ttag
- {% endfor %}
- {% endfor %}
- '''
- def generate_ctags(article_generator, writer):
- tags_file_path = os.path.join(article_generator.path, 'tags')
- article_generator.settings.setdefault('WRITE_SELECTED', []).append(tags_file_path)
- writer.output_path = article_generator.path
- try:
- writer.write_file('tags', article_generator.env.from_string(CTAGS_TEMPLATE), article_generator.context,
- tags_articles=sorted(article_generator.tags.items()))
- finally:
- writer.output_path = article_generator.output_path
- def register():
- signals.article_writer_finalized.connect(generate_ctags)
|