markdown_link.py 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. from homepagebuilder.interfaces import require
  2. PCL_BLOCK_PACK = 'pack://application:,,,/images/Blocks/'
  3. LOGO_MAPPING = {
  4. 'command_block': PCL_BLOCK_PACK + 'CommandBlock.png',
  5. 'cobblestone': PCL_BLOCK_PACK + 'Cobblestone.png',
  6. 'gold_block': PCL_BLOCK_PACK + 'GoldBlock.png',
  7. 'grass_block': PCL_BLOCK_PACK + 'Grass.png',
  8. 'grass_path': PCL_BLOCK_PACK + 'GrassPath.png',
  9. 'anvil': PCL_BLOCK_PACK + 'Anvil.png',
  10. 'redstone_block': PCL_BLOCK_PACK + 'RedstoneBlock.png',
  11. 'redstone_lamp_on': PCL_BLOCK_PACK + 'RedstoneLampOn.png',
  12. 'redstone_lamp_off': PCL_BLOCK_PACK + 'RedstoneLampOff.png',
  13. 'egg': PCL_BLOCK_PACK + 'Egg.png',
  14. 'fabric': PCL_BLOCK_PACK + 'Fabric.png',
  15. 'neoforge': PCL_BLOCK_PACK + 'NeoForge.png'
  16. }
  17. mdp = require('markdown_parsers')
  18. @mdp.handles('listlink')
  19. class MyListItemLink(mdp.WPFUIContainer):
  20. def __init__(self,*args,**kwargs):
  21. super().__init__(*args,**kwargs)
  22. self.title = self.attrs.get('title', '')
  23. self.href = self.attrs.get('href', '')
  24. self.info = self.attrs.get('info', '')
  25. self.logo = self.attrs.get('logo', self.attrs.get('icon', 'command_block'))
  26. self.logo = LOGO_MAPPING.get(self.logo, self.logo)
  27. self.logo_scale = self.attrs.get('logo_scale', 1.0)
  28. self.tooltip = self.attrs.get('tooltip')
  29. @property
  30. def component_name(self) -> str:
  31. return 'Elements/MarkdownMyListItemLink'
  32. def get_replacement(self):
  33. return {
  34. 'title': self.title,
  35. 'href': self.href,
  36. 'info': self.info,
  37. 'logo': self.logo,
  38. 'logo_scale': self.logo_scale,
  39. 'tooltip': self.tooltip
  40. }