Doxygen
Loading...
Searching...
No Matches
markdown.h
Go to the documentation of this file.
1/******************************************************************************
2 *
3 * Copyright (C) 1997-2015 by Dimitri van Heesch.
4 *
5 * Permission to use, copy, modify, and distribute this software and its
6 * documentation under the terms of the GNU General Public License is hereby
7 * granted. No representations are made about the suitability of this software
8 * for any purpose. It is provided "as is" without express or implied warranty.
9 * See the GNU General Public License for more details.
10 *
11 * Documents produced by Doxygen are derivative works derived from the
12 * input used in their production; they are not affected by this license.
13 *
14 */
15
16#ifndef MARKDOWN_H
17#define MARKDOWN_H
18
19#include <memory>
20
21#include "dstring.h"
22#include "parserintf.h"
23
24class Entry;
25
26/** processes string \a s and converts markdown into doxygen/html commands. */
27//DString processMarkdown(const DString &fileName,const int lineNr,Entry *e,const DString &s);
29
30/// Helper class to process markdown formatted text
32{
33 public:
34 Markdown(const DString &fileName,int lineNr,int indentLevel=0);
37 DString process(const DString &input, int &startNewlines, bool fromParseInput = false);
38 DString extractPageTitle(DString &docs, DString &id, int &prepend, bool &isIdGenerated);
39 void setIndentLevel(int level);
40
41 private:
42 struct Private;
43 std::unique_ptr<Private> prv;
44 using Action_t = std::function<int(Private&,std::string_view,size_t)>;
45 using ActionTable_t = std::array<Action_t,256>;
48};
49
51{
52 public:
54 ~MarkdownOutlineParser() override;
56 void parseInput(const DString &fileName,
57 const char *fileBuf,
58 const std::shared_ptr<Entry> &root,
59 ClangTUParser *clangParser) override;
60 bool needsPreprocessing(const DString &) const override { return false; }
61 void parsePrototype(const DString &text) override;
62 private:
63 struct Private;
64 std::unique_ptr<Private> p;
65};
66
67
68#endif
Clang parser object for a single translation unit, which consists of a source file and the directly o...
Definition clangparser.h:25
A String class for use with Doxygen wrapping std::string and adding some additional functionality off...
Definition dstring.h:89
Represents an unstructured piece of information, about an entity found in the sources.
Definition entry.h:117
DString fileName
file this entry was extracted from
Definition entry.h:225
DString process(const DString &input, int &startNewlines, bool fromParseInput=false)
static ActionTable_t fill_table()
Definition markdown.cpp:184
std::array< Action_t, 256 > ActionTable_t
Definition markdown.h:45
std::unique_ptr< Private > prv
Definition markdown.h:43
DString extractPageTitle(DString &docs, DString &id, int &prepend, bool &isIdGenerated)
static ActionTable_t actions
Definition markdown.h:47
void setIndentLevel(int level)
Definition markdown.cpp:212
std::function< int(Private &, std::string_view, size_t)> Action_t
Definition markdown.h:44
Markdown(const DString &fileName, int lineNr, int indentLevel=0)
Definition markdown.cpp:203
void parseInput(const DString &fileName, const char *fileBuf, const std::shared_ptr< Entry > &root, ClangTUParser *clangParser) override
Parses a single input file with the goal to build an Entry tree.
bool needsPreprocessing(const DString &) const override
Returns true if the language identified by extension needs the C preprocessor to be run before feed t...
Definition markdown.h:60
void parsePrototype(const DString &text) override
Callback function called by the comment block scanner.
std::unique_ptr< Private > p
Definition markdown.h:64
Abstract interface for outline parsers.
Definition parserintf.h:42
#define NON_COPYABLE(cls)
Macro to help implementing the rule of 5 for a non-copyable & movable class.
Definition construct.h:37
DString markdownFileNameToId(const DString &fileName)
processes string s and converts markdown into doxygen/html commands.