Copie de Tumblr sur Shaarli
選択できるのは25トピックまでです。 トピックは、先頭が英数字で、英数字とダッシュ('-')を使用した35文字以内のものにしてください。

58 行
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. }