feat: add class to block code

This commit is contained in:
Petra Baranski
2023-07-24 20:32:43 +02:00
parent d23ba23a4c
commit a1001cb991
3 changed files with 32 additions and 1 deletions

View File

@@ -23,6 +23,7 @@ maddy uses [semver versioning](https://semver.org/).
* ![**ADDED**](https://img.shields.io/badge/-ADDED-%23099) GitHub workflow
* ![**DEPRECATED**](https://img.shields.io/badge/-DEPRECATED-%23666) config flags `isEmphasizedParserEnabled` and `isHTMLWrappedInParagraph`
* ![**ADDED**](https://img.shields.io/badge/-ADDED-%23099) config flag `enabledParsers` to en-/disable each parser separately
* ![**ADDED**](https://img.shields.io/badge/-ADDED-%23099) class attribute to code blocks if there is text after the three backticks like ` ```cpp`
* ?
## version 1.1.2 2020-10-04

View File

@@ -74,7 +74,7 @@ public:
static bool
IsStartingLine(const std::string& line)
{
static std::regex re("^(?:`){3}$");
static std::regex re("^(?:`){3}(.*)$");
return std::regex_match(line, re);
}
@@ -123,6 +123,13 @@ protected:
return;
}
}
else if (!this->isStarted && line.substr(0, 3) == "```")
{
line = "<pre class=\"" + line.substr(3) + "\"><code>\n";
this->isStarted = true;
this->isFinished = false;
return;
}
line += "\n";
}

View File

@@ -59,3 +59,26 @@ TEST_F(MADDY_CODEBLOCKPARSER, ItReplacesMarkdownWithAnHtmlCodeBlock)
ASSERT_EQ(expected, outputString);
}
TEST_F(MADDY_CODEBLOCKPARSER, ItShouldUseAnythingBehindFirstBackticksAsClass)
{
std::vector<std::string> markdown = {
"```cpp"
, "some code"
, "some other code"
, "```"
};
std::string expected = "<pre class=\"cpp\"><code>\nsome code\nsome other code\n</code></pre>";
for (std::string md : markdown)
{
cbParser->AddLine(md);
}
ASSERT_TRUE(cbParser->IsFinished());
std::stringstream& output(cbParser->GetResult());
const std::string& outputString = output.str();
ASSERT_EQ(expected, outputString);
}