search.py 779 B

12345678910111213141516171819202122232425262728
  1. import json
  2. from pathlib import Path
  3. from ..examples import examples
  4. from . import registry
  5. PATH = Path(__file__).parent.parent / 'static' / 'search_index.json'
  6. def build_search_index() -> None:
  7. """Build search index."""
  8. index = [
  9. {
  10. 'title': f'{documentation.title.replace("*", "")}: {part.title}',
  11. 'content': part.description,
  12. 'url': f'{documentation.route}#{part.link_target}',
  13. }
  14. for documentation in registry.registry.values()
  15. for part in documentation
  16. ] + [
  17. {
  18. 'title': f'Example: {example.title}',
  19. 'content': example.description,
  20. 'url': example.url,
  21. }
  22. for example in examples
  23. ]
  24. PATH.write_text(json.dumps(index, indent=2))