replace 'markdown' (bool) property with 'markup' (str)

This commit is contained in:
MihailRis 2024-12-06 19:36:38 +03:00
parent 2f292537ad
commit 3d484383fc
8 changed files with 27 additions and 28 deletions

View File

@ -1,7 +1,7 @@
# Text styles
A proprietary Markdown dialect is used to mark up text styles.
Formatting works on UI elements: label and textbox, if `markdown="true"` is explicitly specified.
Formatting works on UI elements: label and textbox, if `markup="md"` is explicitly specified.
## Styles

View File

@ -1,7 +1,7 @@
# Стили текста
Для разметки стилей текста используется собственный диалект Markdown.
Форматирование работает на UI элементах: label и textbox, если явно указано `markdown="true"`.
Форматирование работает на UI элементах: label и textbox, если явно указано `markup="md"`.
## Стили

View File

@ -22,7 +22,7 @@
multiline='true'
size-func="gui.get_viewport()[1],40"
gravity="bottom-left"
markdown="true"
markup="md"
></textbox>
</container>
<container id="editorContainer" pos="0,60" color="#00000080"
@ -55,7 +55,7 @@
<textbox id='prompt'
consumer='submit'
margin='0'
markdown="true"
markup="md"
gravity='bottom-left'
size-func="gui.get_viewport()[1],40"
onup="on_history_up()"

View File

@ -82,7 +82,7 @@ glm::vec2 Label::calcSize() {
}
void Label::setText(std::wstring text) {
if (isMarkdown()) {
if (markup == "md") {
auto [processedText, styles] = markdown::process(text, true);
text = std::move(processedText);
setStyles(std::move(styles));
@ -248,13 +248,13 @@ bool Label::isTextWrapping() const {
return textWrap;
}
void Label::setMarkdown(bool flag) {
markdown = flag;
void Label::setMarkup(std::string_view lang) {
markup = lang;
setText(text);
}
bool Label::isMarkdown() const {
return markdown;
const std::string& Label::getMarkup() const {
return markup;
}
void Label::setStyles(std::unique_ptr<FontStylesScheme> styles) {

View File

@ -53,8 +53,8 @@ namespace gui {
/// @brief Auto resize label to fit text
bool autoresize = false;
/// @brief Enable text markdown
bool markdown = false;
/// @brief Text markup language
std::string markup;
std::unique_ptr<FontStylesScheme> styles;
public:
@ -116,8 +116,8 @@ namespace gui {
virtual void setTextWrapping(bool flag);
virtual bool isTextWrapping() const;
virtual void setMarkdown(bool flag);
virtual bool isMarkdown() const;
virtual void setMarkup(std::string_view lang);
virtual const std::string& getMarkup() const;
virtual void setStyles(std::unique_ptr<FontStylesScheme> styles);
};

View File

@ -194,7 +194,7 @@ void TextBox::refreshLabel() {
label->setColor(textColor * glm::vec4(input.empty() ? 0.5f : 1.0f));
const auto& displayText = input.empty() && !hint.empty() ? hint : getText();
if (markdown) {
if (markup == "md") {
auto [processedText, styles] = markdown::process(displayText, !focused);
label->setText(std::move(processedText));
label->setStyles(std::move(styles));
@ -850,7 +850,7 @@ bool TextBox::isShowLineNumbers() const {
return showLineNumbers;
}
void TextBox::setSyntax(const std::string& lang) {
void TextBox::setSyntax(std::string_view lang) {
syntax = lang;
if (syntax.empty()) {
label->setStyles(nullptr);
@ -859,10 +859,10 @@ void TextBox::setSyntax(const std::string& lang) {
}
}
void TextBox::setMarkdown(bool flag) {
markdown = flag;
void TextBox::setMarkup(std::string_view lang) {
markup = lang;
}
bool TextBox::isMarkdown() const {
return markdown;
const std::string& TextBox::getMarkup() const {
return markup;
}

View File

@ -56,8 +56,7 @@ namespace gui {
bool editable = true;
bool autoresize = false;
bool showLineNumbers = false;
bool markdown = false;
std::string markup;
std::string syntax;
void stepLeft(bool shiftPressed, bool breakSelection);
@ -227,9 +226,9 @@ namespace gui {
virtual void setOnUpPressed(const runnable &callback);
virtual void setOnDownPressed(const runnable &callback);
virtual void setSyntax(const std::string& lang);
virtual void setSyntax(std::string_view lang);
virtual void setMarkdown(bool flag);
virtual bool isMarkdown() const;
virtual void setMarkup(std::string_view lang);
virtual const std::string& getMarkup() const;
};
}

View File

@ -278,8 +278,8 @@ static std::shared_ptr<UINode> readLabel(
if (element.has("text-wrap")) {
label->setTextWrapping(element.attr("text-wrap").asBool());
}
if (element.has("markdown")) {
label->setMarkdown(element.attr("markdown").asBool());
if (element.has("markup")) {
label->setMarkup(element.attr("markup").getText());
}
return label;
}
@ -384,8 +384,8 @@ static std::shared_ptr<UINode> readTextBox(UiXmlReader& reader, const xml::xmlel
if (element.has("line-numbers")) {
textbox->setShowLineNumbers(element.attr("line-numbers").asBool());
}
if (element.has("markdown")) {
textbox->setMarkdown(element.attr("markdown").asBool());
if (element.has("markup")) {
textbox->setMarkup(element.attr("markup").getText());
}
if (element.has("consumer")) {
textbox->setTextConsumer(scripting::create_wstring_consumer(