git-svn-id: svn://db.shs.com.ru/libs@800 a8b55f48-bf90-11e4-a774-851b48703e85

This commit is contained in:
2020-03-16 10:34:36 +00:00
parent 6472aff23e
commit 0ea19348ee
2 changed files with 25 additions and 34 deletions

View File

@@ -1,20 +1,17 @@
set(_LIBS) include(CheckIncludeFileCXX)
set(CHECK_INCLUDES "-include stdio.h")
if(WIN32)
set(CHECK_INCLUDES "-include windows.h -include stdio.h")
endif()
check_include_file_cxx("mkdio.h" MARKDOWN_HEADER_MKDIO ${CHECK_INCLUDES})
if (MARKDOWN_HEADER_MKDIO)
add_definitions("-DMARKDOWN_HEADER=\"mkdio.h\"")
endif()
check_include_file_cxx("markdown/markdown.h" MARKDOWN_HEADER_MARKDOWN ${CHECK_INCLUDES})
if (MARKDOWN_HEADER_MARKDOWN)
add_definitions("-DMARKDOWN_HEADER=\"markdown/markdown.h\"")
endif()
find_library(MARKDOWN_LIBRARY markdown) find_library(MARKDOWN_LIBRARY markdown)
if (MARKDOWN_LIBRARY) if (MARKDOWN_LIBRARY)
list(APPEND _LIBS "${MARKDOWN_LIBRARY}") qad_project(doc "Core" "${MARKDOWN_LIBRARY}")
add_definitions("-DUSE_MARKDOWN")
include(CheckIncludeFileCXX)
set(CHECK_INCLUDES "-include stdio.h")
if(WIN32)
set(CHECK_INCLUDES "-include windows.h -include stdio.h")
endif()
check_include_file_cxx("mkdio.h" MARKDOWN_HEADER_MKDIO ${CHECK_INCLUDES})
if (MARKDOWN_HEADER_MKDIO)
add_definitions("-DMARKDOWN_HEADER=\"mkdio.h\"")
endif()
check_include_file_cxx("markdown/markdown.h" MARKDOWN_HEADER_MARKDOWN ${CHECK_INCLUDES})
if (MARKDOWN_HEADER_MARKDOWN)
add_definitions("-DMARKDOWN_HEADER=\"markdown/markdown.h\"")
endif()
endif() endif()
qad_project(doc "Core" "${_LIBS}")

View File

@@ -1,33 +1,30 @@
#include "markdown.h" #include "markdown.h"
#include <QDebug> #include <QDebug>
#ifdef USE_MARKDOWN
extern "C" { extern "C" {
# include MARKDOWN_HEADER #include MARKDOWN_HEADER
} }
# ifndef mkd_flags_are #ifndef mkd_flags_are
# ifndef MKD_DLEXTRA # ifndef MKD_DLEXTRA
# define MKD_DLEXTRA 0x01000000 # define MKD_DLEXTRA 0x01000000
# endif # endif
# ifndef MKD_FENCEDCODE # ifndef MKD_FENCEDCODE
# define MKD_FENCEDCODE 0x02000000 # define MKD_FENCEDCODE 0x02000000
# endif
# endif # endif
#endif #endif
QString md2html(const QByteArray & src) { QString md2html(const QByteArray & src) {
#ifdef USE_MARKDOWN
static bool _is_mkd_init = false; static bool _is_mkd_init = false;
if (src.isEmpty()) return QString(); if (src.isEmpty()) return QString();
if (!_is_mkd_init) { if (!_is_mkd_init) {
_is_mkd_init = true; _is_mkd_init = true;
mkd_initialize(); mkd_initialize();
} }
# ifdef _MARKDOWN_D #ifdef _MARKDOWN_D
DWORD flagm = (MKD_DLEXTRA | MKD_FENCEDCODE); DWORD flagm = (MKD_DLEXTRA | MKD_FENCEDCODE);
Document Document
# endif #endif
# ifdef _MKDIO_D #ifdef _MKDIO_D
#ifdef mkd_flags_are #ifdef mkd_flags_are
mkd_flag_t * flagm = mkd_flags(); mkd_flag_t * flagm = mkd_flags();
mkd_set_flag_num(flagm, MKD_DLEXTRA); mkd_set_flag_num(flagm, MKD_DLEXTRA);
@@ -36,7 +33,7 @@ QString md2html(const QByteArray & src) {
mkd_flag_t flagm = (MKD_DLEXTRA | MKD_FENCEDCODE); mkd_flag_t flagm = (MKD_DLEXTRA | MKD_FENCEDCODE);
#endif #endif
MMIOT MMIOT
# endif #endif
* doc = mkd_string(src.constData(), src.size(), 0); * doc = mkd_string(src.constData(), src.size(), 0);
if (!doc) return QString(); if (!doc) return QString();
mkd_compile(doc, flagm); mkd_compile(doc, flagm);
@@ -60,8 +57,5 @@ QString md2html(const QByteArray & src) {
ret.prepend(header); ret.prepend(header);
ret.append("</body>\n</html>\n"); ret.append("</body>\n</html>\n");
return ret; return ret;
#else
return QString();
#endif
} }