#flutter #dart #markdown
#flutter #dart #markdown
Вопрос:
Я пытаюсь использовать пакет flutter_markdown для уценки некоторого содержимого. Но он не работает должным образом для нескольких разрывов строк.
String exampleData="nnLine 1. nnLine2.nnnn### Heading nnLine3";
Markdown(data: exampleData,)
Я пробовал с разрывами строк «<br />», но это не сработало
String exampleData="Line 1. nnLine2. <br /> <br /> nn### Heading nnLine3";
Может кто-нибудь помочь мне с этими разрывами строк или любыми альтернативными пакетами.
Комментарии:
1. попробуйте
</br>
вместо<br/>
. Я не уверен, поможет ли это2. @AdnanAlshami не работает
3. попробуйте этот пакет: pub.dev/packages/html
4. Спросите создателя пакета, я уже давно сделал запрос на извлечение, и он был очень активен в то время.
Ответ №1:
проверьте ссылку ниже!!
тег br не работает, поэтому вместо тега br используйте 3 косых черты n
String exampleData="Line 1. \nLine2. \n## Heading \nLine3";
Ответ №2:
Я нашел неприятный трюк (не решение), который может помочь в этом конкретном случае. Я не рекомендую это, но пока не смог найти никакого другого обходного пути, используя flutter_markdown, и я не смог найти ни одного другого пакета для замены.
Вы можете воспользоваться преимуществами использования тройных апострофов для добавления вертикального пробела.
Это неприятный обходной путь, но пока не удалось найти ничего лучшего для добавления вертикального пространства.
Комментарии:
1. Но у меня нет данных разметки. У меня есть код markdown. guides.github.com/pdfs/markdown-cheatsheet-online.pdf
Ответ №3:
Замените ваш <br>
на x03
такой. x03
является ли End of text( ETX
) в ASCII:
text.replaceAll('<br>', 'x03');
Ответ №4:
Достойный обходной путь.
В вызываемый пакет Flutter_markdown добавлена новая функция paddingBuilders
, начиная с версии 0.6.8. вы можете добавить отступы ко всем блокам, доступным в markdown, как показано ниже.
MarkdownBody(
data: markDown,
paddingBuilders: <String,
MarkdownPaddingBuilder>{
'p': PPaddingBuilder(),
'h3': H3PaddingBuilder(),
},
)
где вы должны определить конструктор заполнения, как показано ниже.
class PPaddingBuilder extends MarkdownPaddingBuilder {
@override
EdgeInsets getPadding() => const EdgeInsets.only(top: SGSpacing.xlarge);
}
class H3PaddingBuilder extends MarkdownPaddingBuilder {
@override
EdgeInsets getPadding() => const EdgeInsets.only(top: SGSpacing.xxlarge);
}
Список всех blockTag
доступных в Flutter_markdown из исходного кода приведен ниже:
const List<String> _kBlockTags = <String>[
'p',
'h1',
'h2',
'h3',
'h4',
'h5',
'h6',
'li',
'blockquote',
'pre',
'ol',
'ul',
'hr',
'table',
'thead',
'tbody',
'tr'
];
PS: заполнение не будет работать для встроенных тегов. применим только тег блока.
Ответ №5:
Привет, я нашел этот пакет https://pub.dev/packages/markdown_widget
Это не полное решение, но этот пакет поддерживает некоторые теги ОС html, такие как <br> , в этом случае я добавил этот тег в markdown и работает
Ответ №6:
Мое решение, когда я использую строку в одну строку, не используйте «»» или «‘, используйте n с 2 пробелами ниже кода, отображающего тот же пользовательский интерфейс
var _markdownSingleLine = ‘Demo n Разрыв n строки’;
var _markdownMultiLine = «‘ Демо
-строка разрыва «‘;
Ответ №7:
Согласно удаленной проблеме, flutter_markdown поддерживает явные разрывы строк с использованием обратной косой черты в конце строки. Используя этот синтаксис, ваш пример будет:
Line 1.
Line2.
### Heading
Line3