git-svn-id: svn://db.shs.com.ru/libs@790 a8b55f48-bf90-11e4-a774-851b48703e85
This commit is contained in:
@@ -139,7 +139,7 @@ macro(qad_project NAME _MODULES _LIBS)
|
|||||||
endif()
|
endif()
|
||||||
endmacro()
|
endmacro()
|
||||||
|
|
||||||
set(DIRS utils widgets application blockview graphic sql_table touch_widgets)
|
set(DIRS utils widgets application blockview graphic sql_table touch_widgets doc)
|
||||||
foreach(D ${DIRS})
|
foreach(D ${DIRS})
|
||||||
list(APPEND QT_MULTILIB_LIST qad_${D})
|
list(APPEND QT_MULTILIB_LIST qad_${D})
|
||||||
endforeach(D)
|
endforeach(D)
|
||||||
|
|||||||
15
qad/doc/CMakeLists.txt
Normal file
15
qad/doc/CMakeLists.txt
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
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()
|
||||||
|
|
||||||
|
qad_project(doc "Core" "markdown")
|
||||||
61
qad/doc/markdown.cpp
Normal file
61
qad/doc/markdown.cpp
Normal file
@@ -0,0 +1,61 @@
|
|||||||
|
#include "markdown.h"
|
||||||
|
#include <QDebug>
|
||||||
|
extern "C" {
|
||||||
|
#include MARKDOWN_HEADER
|
||||||
|
}
|
||||||
|
#ifndef mkd_flags_are
|
||||||
|
# ifndef MKD_DLEXTRA
|
||||||
|
# define MKD_DLEXTRA 0x01000000
|
||||||
|
# endif
|
||||||
|
# ifndef MKD_FENCEDCODE
|
||||||
|
# define MKD_FENCEDCODE 0x02000000
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
QString md2html(const QByteArray & src) {
|
||||||
|
static bool _is_mkd_init = false;
|
||||||
|
if (src.isEmpty()) return QString();
|
||||||
|
if (!_is_mkd_init) {
|
||||||
|
_is_mkd_init = true;
|
||||||
|
mkd_initialize();
|
||||||
|
}
|
||||||
|
#ifdef _MARKDOWN_D
|
||||||
|
DWORD flagm = (MKD_DLEXTRA | MKD_FENCEDCODE);
|
||||||
|
Document
|
||||||
|
#endif
|
||||||
|
#ifdef _MKDIO_D
|
||||||
|
#ifdef mkd_flags_are
|
||||||
|
mkd_flag_t * flagm = mkd_flags();
|
||||||
|
mkd_set_flag_num(flagm, MKD_DLEXTRA);
|
||||||
|
mkd_set_flag_num(flagm, MKD_FENCEDCODE);
|
||||||
|
#else
|
||||||
|
mkd_flag_t flagm = (MKD_DLEXTRA | MKD_FENCEDCODE);
|
||||||
|
#endif
|
||||||
|
MMIOT
|
||||||
|
#endif
|
||||||
|
* doc = mkd_string(src.constData(), src.size(), 0);
|
||||||
|
if (!doc) return QString();
|
||||||
|
mkd_compile(doc, flagm);
|
||||||
|
char * html = 0;
|
||||||
|
int len = mkd_document(doc, &html);
|
||||||
|
if (!html) {
|
||||||
|
mkd_cleanup(doc);
|
||||||
|
return QString();
|
||||||
|
}
|
||||||
|
QString ret = QString::fromUtf8(html, len);
|
||||||
|
mkd_cleanup(doc);
|
||||||
|
QString title = QTextStream(&ret, QIODevice::ReadOnly).readLine();
|
||||||
|
title = title.mid(title.indexOf(">")+1);
|
||||||
|
title = title.left(title.indexOf("<"));
|
||||||
|
QString header = "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0//EN\" \"http://www.w3.org/TR/REC-html40/strict.dtd\">\n"
|
||||||
|
"<html>\n<head>\n"
|
||||||
|
"<meta name=\"qrichtext\" content=\"1\" />\n"
|
||||||
|
"<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\" />\n";
|
||||||
|
header.append("<title>" + title + "</title>\n");
|
||||||
|
header.append("</head>\n<body>\n");
|
||||||
|
ret.prepend(header);
|
||||||
|
ret.append("</body>\n</html>\n");
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
11
qad/doc/markdown.h
Normal file
11
qad/doc/markdown.h
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
#ifndef QAD_MARKDOWN_H
|
||||||
|
#define QAD_MARKDOWN_H
|
||||||
|
|
||||||
|
#include <QString>
|
||||||
|
#include "qad_export.h"
|
||||||
|
|
||||||
|
|
||||||
|
QAD_EXPORT QString md2html(const QByteArray & src);
|
||||||
|
|
||||||
|
|
||||||
|
#endif // QAD_MARKDOWN_H
|
||||||
Reference in New Issue
Block a user