liquid_tags.py 930 B

12345678910111213141516171819202122232425262728293031
  1. from pelican import signals
  2. from .mdx_liquid_tags import LiquidTags, LT_CONFIG, LT_HELP
  3. def addLiquidTags(gen):
  4. if not gen.settings.get('MARKDOWN'):
  5. from pelican.settings import DEFAULT_CONFIG
  6. gen.settings['MARKDOWN'] = DEFAULT_CONFIG['MARKDOWN']
  7. if gen.settings.get('LIQUID_CONFIGS'):
  8. for param,default,helptext in gen.settings.get('LIQUID_CONFIGS'):
  9. LT_CONFIG[param] = default
  10. LT_HELP[param] = helptext
  11. if LiquidTags not in gen.settings['MARKDOWN']:
  12. configs = dict()
  13. for key,value in LT_CONFIG.items():
  14. configs[key]=value
  15. for key,value in gen.settings.items():
  16. if key in LT_CONFIG:
  17. configs[key]=value
  18. gen.settings['MARKDOWN'].setdefault(
  19. 'extensions', []
  20. ).append(
  21. LiquidTags(configs)
  22. )
  23. def register():
  24. signals.initialized.connect(addLiquidTags)