镜像自地址
https://github.com/quitesimpleorg/qsmaddy.git
已同步 2025-07-01 15:13:49 +02:00
比较提交
4 次代码提交
作者 | SHA1 | 提交日期 | |
---|---|---|---|
7d43a6c593 | |||
91b687d5e7 | |||
82b320d967 | |||
4ef069b356 |
@ -27,11 +27,26 @@ file(GLOB_RECURSE MADDY_TESTS_FILES ${CMAKE_CURRENT_SOURCE_DIR}/tests/maddy/*.cp
|
|||||||
|
|
||||||
set(
|
set(
|
||||||
CMAKE_CXX_FLAGS
|
CMAKE_CXX_FLAGS
|
||||||
"${CMAKE_CXX_FLAGS} -g -std=c++${MADDY_CPP_VERSION} -Wall -Wpedantic -Wextra -Wno-ignored-qualifiers -fno-rtti -fno-exceptions" # -O2
|
"${CMAKE_CXX_FLAGS} -g -std=c++${MADDY_CPP_VERSION} -Wall -Wpedantic -Wextra -Wno-ignored-qualifiers -fno-rtti -fno-exceptions"
|
||||||
)
|
)
|
||||||
|
|
||||||
# ------------------------------------------------------------------------------
|
# ------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
if (UNIX AND NOT APPLE)
|
||||||
|
execute_process(COMMAND ${CMAKE_CXX_COMPILER}
|
||||||
|
-fuse-ld=gold -Wl,--version
|
||||||
|
ERROR_QUIET OUTPUT_VARIABLE ld_version)
|
||||||
|
if ("${ld_version}" MATCHES "GNU gold")
|
||||||
|
message(STATUS "Found Gold linker, use faster linker")
|
||||||
|
set(CMAKE_EXE_LINKER_FLAGS
|
||||||
|
"${CMAKE_EXE_LINKER_FLAGS} -fuse-ld=gold")
|
||||||
|
set(CMAKE_SHARED_LINKER_FLAGS
|
||||||
|
"${CMAKE_SHARED_LINKER_FLAGS} -fuse-ld=gold ")
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
|
|
||||||
|
# ------------------------------------------------------------------------------
|
||||||
|
|
||||||
set(gtest_force_shared_crt ON CACHE BOOL "" FORCE)
|
set(gtest_force_shared_crt ON CACHE BOOL "" FORCE)
|
||||||
add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/libs/gtest/googlemock)
|
add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/libs/gtest/googlemock)
|
||||||
add_subdirectory(libs)
|
add_subdirectory(libs)
|
||||||
|
17
ISSUE_TEMPLATE.md
普通文件
17
ISSUE_TEMPLATE.md
普通文件
@ -0,0 +1,17 @@
|
|||||||
|
## Minimal Code Example
|
||||||
|
|
||||||
|
```
|
||||||
|
```
|
||||||
|
|
||||||
|
## Conditions
|
||||||
|
|
||||||
|
. | .
|
||||||
|
--------------------- | ------------------
|
||||||
|
**Operating System:** | ?
|
||||||
|
**Compiler:** | ?
|
||||||
|
**Compiler flags:** | ?
|
||||||
|
**maddy version:** | ?
|
||||||
|
|
||||||
|
## Description
|
||||||
|
|
||||||
|
What did you try? What is not working?
|
@ -1,11 +1,11 @@
|
|||||||
# maddy
|
# maddy
|
||||||
|
|
||||||
[](https://opensource.org/licenses/MIT)
|
[](https://opensource.org/licenses/MIT)
|
||||||
[](https://semver.org/)
|
[](https://semver.org/)
|
||||||
|
|
||||||
maddy is a C++ Markdown to HTML **header-only** parser library.
|
maddy is a C++ Markdown to HTML **header-only** parser library.
|
||||||
|
|
||||||
## Supportes OS
|
## Supported OS
|
||||||
|
|
||||||
It actually should work on any OS, that supports the C++14 standard library.
|
It actually should work on any OS, that supports the C++14 standard library.
|
||||||
|
|
||||||
|
@ -41,7 +41,7 @@ public:
|
|||||||
void
|
void
|
||||||
Parse(std::string& line) override
|
Parse(std::string& line) override
|
||||||
{
|
{
|
||||||
static std::regex re("\\*([^\\*]*)\\*");
|
static std::regex re("(?!`|<code>)\\*(?!`|</code>)([^\\*]*)\\*(?!`|</code>)");
|
||||||
static std::string replacement = "<em>$1</em>";
|
static std::string replacement = "<em>$1</em>";
|
||||||
|
|
||||||
line = std::regex_replace(line, re, replacement);
|
line = std::regex_replace(line, re, replacement);
|
||||||
|
@ -39,7 +39,7 @@ public:
|
|||||||
void
|
void
|
||||||
Parse(std::string& line) override
|
Parse(std::string& line) override
|
||||||
{
|
{
|
||||||
static std::regex re("\\~\\~([^\\~]*)\\~\\~");
|
static std::regex re("(?!`|<code>)\\~\\~(?!`|</code>)([^\\~]*)\\~\\~(?!`|</code>)");
|
||||||
static std::string replacement = "<s>$1</s>";
|
static std::string replacement = "<s>$1</s>";
|
||||||
|
|
||||||
line = std::regex_replace(line, re, replacement);
|
line = std::regex_replace(line, re, replacement);
|
||||||
|
@ -41,7 +41,7 @@ public:
|
|||||||
void
|
void
|
||||||
Parse(std::string& line) override
|
Parse(std::string& line) override
|
||||||
{
|
{
|
||||||
static std::regex re("\\*\\*([^\\*\\*]*)\\*\\*");
|
static std::regex re("(?!`|<code>)\\*\\*(?!`|</code>)([^\\*\\*]*)\\*\\*(?!`|</code>)");
|
||||||
static std::string replacement = "<strong>$1</strong>";
|
static std::string replacement = "<strong>$1</strong>";
|
||||||
|
|
||||||
line = std::regex_replace(line, re, replacement);
|
line = std::regex_replace(line, re, replacement);
|
||||||
|
@ -20,3 +20,14 @@ TEST(MADDY_EMPHASIZEDPARSER, ItReplacesMarkdownWithEmphasizedHTML)
|
|||||||
|
|
||||||
ASSERT_EQ(expected, text);
|
ASSERT_EQ(expected, text);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
TEST(MADDY_EMPHASIZEDPARSER, ItDoesNotParseInsideInlineCode)
|
||||||
|
{
|
||||||
|
std::string text = "some text `*bla*` text testing *it* out";
|
||||||
|
std::string expected = "some text `*bla*` text testing <em>it</em> out";
|
||||||
|
auto emphasizedParser = std::make_shared<maddy::EmphasizedParser>();
|
||||||
|
|
||||||
|
emphasizedParser->Parse(text);
|
||||||
|
|
||||||
|
ASSERT_EQ(expected, text);
|
||||||
|
}
|
||||||
|
@ -20,3 +20,14 @@ TEST(MADDY_STRIKETHROUGHPARSER, ItReplacesMarkdownWithStrikeThroughHTML)
|
|||||||
|
|
||||||
ASSERT_EQ(expected, text);
|
ASSERT_EQ(expected, text);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
TEST(MADDY_STRIKETHROUGHPARSER, ItDoesNotParseInsideInlineCode)
|
||||||
|
{
|
||||||
|
std::string text = "some text `~~bla~~` text testing <code>~~it~~</code> out";
|
||||||
|
std::string expected = "some text `~~bla~~` text testing <code>~~it~~</code> out";
|
||||||
|
auto strikeThroughParser = std::make_shared<maddy::StrikeThroughParser>();
|
||||||
|
|
||||||
|
strikeThroughParser->Parse(text);
|
||||||
|
|
||||||
|
ASSERT_EQ(expected, text);
|
||||||
|
}
|
||||||
|
@ -31,3 +31,14 @@ TEST(MADDY_STRONGPARSER, ItReplacesEmphasizedMarkdownNotWithStrongHTML)
|
|||||||
|
|
||||||
ASSERT_EQ(expected, text);
|
ASSERT_EQ(expected, text);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
TEST(MADDY_STRONGPARSER, ItDoesNotParseInsideInlineCode)
|
||||||
|
{
|
||||||
|
std::string text = "some text *bla* text testing `**it**` out";
|
||||||
|
std::string expected = "some text *bla* text testing `**it**` out";
|
||||||
|
auto strongParser = std::make_shared<maddy::StrongParser>();
|
||||||
|
|
||||||
|
strongParser->Parse(text);
|
||||||
|
|
||||||
|
ASSERT_EQ(expected, text);
|
||||||
|
}
|
||||||
|
在新工单中引用
屏蔽一个用户