镜像来自
				https://github.com/quitesimpleorg/qsmaddy.git
				synced 2025-10-31 01:09:30 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			54 line
		
	
	
		
			1.2 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			54 line
		
	
	
		
			1.2 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
| /*
 | |
|  * This project is licensed under the MIT license. For more information see the
 | |
|  * LICENSE file.
 | |
|  */
 | |
| #pragma once
 | |
| 
 | |
| // -----------------------------------------------------------------------------
 | |
| 
 | |
| #include <string>
 | |
| #include <regex>
 | |
| 
 | |
| #include "maddy/lineparser.h"
 | |
| 
 | |
| // -----------------------------------------------------------------------------
 | |
| 
 | |
| namespace maddy {
 | |
| 
 | |
| // -----------------------------------------------------------------------------
 | |
| 
 | |
| /**
 | |
|  * StrongParser
 | |
|  *
 | |
|  * Has to be used before the `EmphasizedParser`.
 | |
|  *
 | |
|  * @class
 | |
|  */
 | |
| class StrongParser : public LineParser
 | |
| {
 | |
| public:
 | |
|   /**
 | |
|    * Parse
 | |
|    *
 | |
|    * From Markdown: `text **text**`
 | |
|    *
 | |
|    * To HTML: `text <strong>text</strong>`
 | |
|    *
 | |
|    * @method
 | |
|    * @param {std::string&} line The line to interpret
 | |
|    * @return {void}
 | |
|    */
 | |
|   void
 | |
|   Parse(std::string& line) override
 | |
|   {
 | |
|     static std::regex re("(?!.*`.*|.*<code>.*)\\*\\*(?!.*`.*|.*<\\/code>.*)([^\\*\\*]*)\\*\\*(?!.*`.*|.*<\\/code>.*)");
 | |
|     static std::string replacement = "<strong>$1</strong>";
 | |
| 
 | |
|     line = std::regex_replace(line, re, replacement);
 | |
|   }
 | |
| }; // class StrongParser
 | |
| 
 | |
| // -----------------------------------------------------------------------------
 | |
| 
 | |
| } // namespace maddy
 | 
