mirror of
				https://github.com/quitesimpleorg/qsmaddy.git
				synced 2025-10-31 09:19:29 +01:00 
			
		
		
		
	fixed inline code for bold, em and s
In inline code the markdown for bold , emphasized and strike trhough is not parsed anymore. Additionally the linker might be now faster on Linux.
This commit is contained in:
		| @@ -27,11 +27,26 @@ file(GLOB_RECURSE MADDY_TESTS_FILES ${CMAKE_CURRENT_SOURCE_DIR}/tests/maddy/*.cp | ||||
|  | ||||
| set( | ||||
|   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) | ||||
| add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/libs/gtest/googlemock) | ||||
| add_subdirectory(libs) | ||||
|   | ||||
| @@ -41,7 +41,7 @@ public: | ||||
|   void | ||||
|   Parse(std::string& line) override | ||||
|   { | ||||
|     static std::regex re("\\*([^\\*]*)\\*"); | ||||
|     static std::regex re("(?!`|<code>)\\*(?!`|</code>)([^\\*]*)\\*(?!`|</code>)"); | ||||
|     static std::string replacement = "<em>$1</em>"; | ||||
|  | ||||
|     line = std::regex_replace(line, re, replacement); | ||||
|   | ||||
| @@ -39,7 +39,7 @@ public: | ||||
|   void | ||||
|   Parse(std::string& line) override | ||||
|   { | ||||
|     static std::regex re("\\~\\~([^\\~]*)\\~\\~"); | ||||
|     static std::regex re("(?!`|<code>)\\~\\~(?!`|</code>)([^\\~]*)\\~\\~(?!`|</code>)"); | ||||
|     static std::string replacement = "<s>$1</s>"; | ||||
|  | ||||
|     line = std::regex_replace(line, re, replacement); | ||||
|   | ||||
| @@ -41,7 +41,7 @@ public: | ||||
|   void | ||||
|   Parse(std::string& line) override | ||||
|   { | ||||
|     static std::regex re("\\*\\*([^\\*\\*]*)\\*\\*"); | ||||
|     static std::regex re("(?!`|<code>)\\*\\*(?!`|</code>)([^\\*\\*]*)\\*\\*(?!`|</code>)"); | ||||
|     static std::string replacement = "<strong>$1</strong>"; | ||||
|  | ||||
|     line = std::regex_replace(line, re, replacement); | ||||
|   | ||||
| @@ -20,3 +20,14 @@ TEST(MADDY_EMPHASIZEDPARSER, ItReplacesMarkdownWithEmphasizedHTML) | ||||
|  | ||||
|   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); | ||||
| } | ||||
|  | ||||
| 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); | ||||
| } | ||||
|  | ||||
| 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); | ||||
| } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 M. Petra Baranski
					M. Petra Baranski