ferencd@0: /* ferencd@0: * This project is licensed under the MIT license. For more information see the ferencd@0: * LICENSE file. ferencd@0: */ ferencd@0: #pragma once ferencd@0: ferencd@0: // ----------------------------------------------------------------------------- ferencd@0: ferencd@0: #include ferencd@0: #include ferencd@0: ferencd@0: #include "maddy/lineparser.h" ferencd@0: ferencd@0: // ----------------------------------------------------------------------------- ferencd@0: ferencd@0: namespace maddy { ferencd@0: ferencd@0: // ----------------------------------------------------------------------------- ferencd@0: ferencd@0: /** ferencd@0: * ImageParser ferencd@0: * ferencd@0: * Has to be used before the `LinkParser`. ferencd@0: * ferencd@0: * @class ferencd@0: */ ferencd@0: class ImageParser : public LineParser ferencd@0: { ferencd@0: public: ferencd@0: /** ferencd@0: * Parse ferencd@0: * ferencd@0: * From Markdown: `![text](http://example.com/a.png)` ferencd@0: * ferencd@0: * To HTML: `text` ferencd@0: * ferencd@0: * @method ferencd@0: * @param {std::string&} line The line to interpret ferencd@0: * @return {void} ferencd@0: */ ferencd@0: void ferencd@0: Parse(std::string& line) override ferencd@0: { ferencd@0: static std::regex re("\\!\\[([^\\]]*)\\]\\(([^\\]]*)\\)"); ferencd@0: static std::string replacement = "\"$1\"/"; ferencd@0: ferencd@0: line = std::regex_replace(line, re, replacement); ferencd@0: } ferencd@0: }; // class ImageParser ferencd@0: ferencd@0: // ----------------------------------------------------------------------------- ferencd@0: ferencd@0: } // namespace maddy