1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
|
From 06837a859c3cc03b175241d84575f747c2a0a779 Mon Sep 17 00:00:00 2001
From: Stefan Gerlach <stefan.gerlach@uni-konstanz.de>
Date: Mon, 17 Apr 2023 23:15:19 +0200
Subject: [PATCH] support discount version 3
cherry-picked (and merged) commits from git master:
80340872e0fd3780065b847000882cd2c6faaf09
22c553af43ff2afc42a32f8b9f04c6b426f49300
---
CMakeLists.txt | 4 ++++
cmake/FindDiscount.cmake | 9 ++++++++-
src/backend/worksheet/TextLabel.cpp | 17 +++++++++++++++--
3 files changed, 27 insertions(+), 3 deletions(-)
diff --git a/CMakeLists.txt b/CMakeLists.txt
index ed478d024..2e28a1aff 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -493,6 +493,10 @@ IF (ENABLE_DISCOUNT)
TYPE OPTIONAL)
IF (Discount_FOUND)
add_definitions (-DHAVE_DISCOUNT)
+ MESSAGE (STATUS "Found Markdown Library Discount ${Discount_VERSION}")
+ IF (${Discount_VERSION} VERSION_GREATER "2.99")
+ add_definitions (-DHAVE_DISCOUNT3)
+ ENDIF ()
ELSE ()
MESSAGE (STATUS "Discount library NOT FOUND.")
ENDIF ()
diff --git a/cmake/FindDiscount.cmake b/cmake/FindDiscount.cmake
index 4919ad6e1..9dd348649 100644
--- a/cmake/FindDiscount.cmake
+++ b/cmake/FindDiscount.cmake
@@ -10,6 +10,11 @@
# SPDX-FileCopyrightText: 2018 Sune Vuorela <sune@kde.org>
# SPDX-License-Identifier: BSD-3-Clause
+find_package(PkgConfig QUIET)
+pkg_check_modules(PC_LIBMARKDOWN libmarkdown QUIET)
+
+set(Discount_VERSION ${PC_LIBMARKDOWN_VERSION})
+
if (Discount_INCLUDE_DIR AND Discount_LIBRARIES)
# Already in cache
@@ -19,10 +24,12 @@ else (Discount_INCLUDE_DIR AND Discount_LIBRARIES)
find_library (Discount_LIBRARIES
NAMES markdown libmarkdown
+ HINTS ${PC_LIBMARKDOWN_LIBRARY_DIRS}
)
find_path (Discount_INCLUDE_DIR
NAMES mkdio.h
+ HINTS ${PC_LIBMARKDOWN_INCLUDE_DIRS}
)
include (FindPackageHandleStandardArgs)
@@ -30,7 +37,7 @@ else (Discount_INCLUDE_DIR AND Discount_LIBRARIES)
endif (Discount_INCLUDE_DIR AND Discount_LIBRARIES)
-mark_as_advanced(Discount_INCLUDE_DIR Discount_LIBRARIES)
+mark_as_advanced(Discount_INCLUDE_DIR Discount_LIBRARIES Discount_VERSION)
if (Discount_FOUND)
add_library(Discount::Lib UNKNOWN IMPORTED)
diff --git a/src/backend/worksheet/TextLabel.cpp b/src/backend/worksheet/TextLabel.cpp
index 815dcb785..1c85c0e9e 100644
--- a/src/backend/worksheet/TextLabel.cpp
+++ b/src/backend/worksheet/TextLabel.cpp
@@ -576,8 +576,21 @@ void TextLabelPrivate::updateText() {
case TextLabel::Mode::Markdown: {
#ifdef HAVE_DISCOUNT
auto mdCharArray = textWrapper.text.toUtf8();
- MMIOT* mdHandle = mkd_string(mdCharArray.data(), mdCharArray.size()+1, 0);
- if(!mkd_compile(mdHandle, MKD_LATEX | MKD_FENCEDCODE | MKD_GITHUBTAGS)) {
+#ifdef HAVE_DISCOUNT3
+ MMIOT* mdHandle = mkd_string(mdCharArray.data(), mdCharArray.size() + 1, nullptr);
+
+ mkd_flag_t* v3flags = mkd_flags();
+ mkd_set_flag_num(v3flags, MKD_LATEX);
+ mkd_set_flag_num(v3flags, MKD_FENCEDCODE);
+ mkd_set_flag_num(v3flags, MKD_GITHUBTAGS);
+
+ if (!mkd_compile(mdHandle, v3flags)) {
+#else
+ MMIOT* mdHandle = mkd_string(mdCharArray.data(), mdCharArray.size() + 1, 0);
+
+ unsigned int flags = MKD_LATEX | MKD_FENCEDCODE | MKD_GITHUBTAGS;
+ if (!mkd_compile(mdHandle, flags)) {
+#endif
DEBUG(Q_FUNC_INFO << ", Failed to compile the markdown document");
mkd_cleanup(mdHandle);
return;
--
2.40.0
|