Copie de Tumblr sur Shaarli
Vous ne pouvez pas sélectionner plus de 25 sujets Les noms de sujets doivent commencer par une lettre ou un nombre, peuvent contenir des tirets ('-') et peuvent comporter jusqu'à 35 caractères.

58 lignes
1.3 KiB

  1. <?php
  2. namespace League\HTMLToMarkdown\Converter;
  3. use League\HTMLToMarkdown\Configuration;
  4. use League\HTMLToMarkdown\ConfigurationAwareInterface;
  5. use League\HTMLToMarkdown\ElementInterface;
  6. class EmphasisConverter implements ConverterInterface, ConfigurationAwareInterface
  7. {
  8. /**
  9. * @var Configuration
  10. */
  11. protected $config;
  12. /**
  13. * @param Configuration $config
  14. */
  15. public function setConfig(Configuration $config)
  16. {
  17. $this->config = $config;
  18. }
  19. /**
  20. * @param ElementInterface $element
  21. *
  22. * @return string
  23. */
  24. public function convert(ElementInterface $element)
  25. {
  26. $tag = $element->getTagName();
  27. $value = $element->getValue();
  28. if (!trim($value)) {
  29. return '';
  30. }
  31. if ($tag === 'i' || $tag === 'em') {
  32. $style = $this->config->getOption('italic_style');
  33. } else {
  34. $style = $this->config->getOption('bold_style');
  35. }
  36. $prefix = ltrim($value) !== $value ? ' ' : '';
  37. $suffix = rtrim($value) !== $value ? ' ' : '';
  38. return $prefix . $style . trim($value) . $style . $suffix;
  39. }
  40. /**
  41. * @return string[]
  42. */
  43. public function getSupportedTags()
  44. {
  45. return array('em', 'i', 'strong', 'b');
  46. }
  47. }