19#ifndef LIB_QUENTIER_ENML_ENML_CONVERTER_H
20#define LIB_QUENTIER_ENML_ENML_CONVERTER_H
22#include <quentier/types/ErrorString.h>
23#include <quentier/types/Note.h>
24#include <quentier/utility/Linkage.h>
25#include <quentier/utility/Printable.h>
30#include <QTextDocument>
34QT_FORWARD_DECLARE_CLASS(DecryptedTextManager)
35QT_FORWARD_DECLARE_CLASS(ENMLConverterPrivate)
36QT_FORWARD_DECLARE_CLASS(Resource)
63 enum class ComparisonRule
71 friend QUENTIER_EXPORT QTextStream & operator<<(
72 QTextStream & strm,
const ComparisonRule rule);
74 virtual QTextStream & print(QTextStream & strm)
const override;
76 QString m_elementNameToSkip;
77 ComparisonRule m_elementNameComparisonRule = ComparisonRule::Equals;
78 Qt::CaseSensitivity m_elementNameCaseSensitivity = Qt::CaseSensitive;
80 QString m_attributeNameToSkip;
81 ComparisonRule m_attributeNameComparisonRule = ComparisonRule::Equals;
82 Qt::CaseSensitivity m_attributeNameCaseSensitivity = Qt::CaseSensitive;
84 QString m_attributeValueToSkip;
85 ComparisonRule m_attributeValueComparisonRule = ComparisonRule::Equals;
86 Qt::CaseSensitivity m_attributeValueCaseSensitivity = Qt::CaseSensitive;
88 bool m_includeElementContents =
false;
91 bool htmlToNoteContent(
92 const QString & html, QString & noteContent,
95 const QVector<SkipHtmlElementRule> & skipRules = {})
const;
111 const QString & inputHtml, QString & cleanedUpHtml,
128 const QString & html, QTextDocument & doc,
130 const QVector<SkipHtmlElementRule> & skipRules = {})
const;
134 quint64 m_numEnToDoNodes = 0;
135 quint64 m_numHyperlinkNodes = 0;
136 quint64 m_numEnCryptNodes = 0;
137 quint64 m_numEnDecryptedNodes = 0;
140 bool noteContentToHtml(
141 const QString & noteContent, QString & html,
147 const QString & enml,
ErrorString & errorDescription)
const;
149 bool validateAndFixupEnml(
150 QString & enml,
ErrorString & errorDescription)
const;
152 static bool noteContentToPlainText(
153 const QString & noteContent, QString & plainText,
156 static bool noteContentToListOfWords(
157 const QString & noteContent, QStringList & listOfWords,
158 ErrorString & errorMessage, QString * plainText =
nullptr);
160 static QStringList plainTextToListOfWords(
const QString & plainText);
162 static QString toDoCheckboxHtml(
const bool checked,
const quint64 idNumber);
164 static QString encryptedTextHtml(
165 const QString & encryptedText,
const QString & hint,
166 const QString & cipher,
const size_t keyLength,
167 const quint64 enCryptIndex);
169 static QString decryptedTextHtml(
170 const QString & decryptedText,
const QString & encryptedText,
171 const QString & hint,
const QString & cipher,
const size_t keyLength,
172 const quint64 enDecryptedIndex);
174 static QString resourceHtml(
177 static void escapeString(QString &
string,
const bool simplify =
true);
218 const QVector<Note> & notes,
219 const QHash<QString, QString> & tagNamesByTagLocalUids,
221 ErrorString & errorDescription,
const QString & version = {})
const;
242 const QString & enex, QVector<Note> & notes,
243 QHash<QString, QStringList> & tagNamesByNoteLocalUid,
250 ENMLConverterPrivate *
const d_ptr;
Definition DecryptedTextManager.h:31
The SkipHtmlElementRule class describes the set of rules for HTML -> ENML conversion about the HTML e...
Definition ENMLConverter.h:61
The ENMLConverter class encapsulates a set of methods and helper data structures for performing the c...
Definition ENMLConverter.h:44
bool exportNotesToEnex(const QVector< Note > ¬es, const QHash< QString, QString > &tagNamesByTagLocalUids, const EnexExportTags exportTagsOption, QString &enex, ErrorString &errorDescription, const QString &version={}) const
exportNotesToEnex exports either a single note or a set of notes into ENEX format
EnexExportTags
The EnexExportTags enum allows to specify whether export of note(s) to ENEX should include the names ...
Definition ENMLConverter.h:184
bool importEnex(const QString &enex, QVector< Note > ¬es, QHash< QString, QStringList > &tagNamesByNoteLocalUid, ErrorString &errorDescription) const
importEnex reads the content of input ENEX file and converts it into a set of notes and tag names.
bool cleanupExternalHtml(const QString &inputHtml, QString &cleanedUpHtml, ErrorString &errorDescription) const
cleanupExternalHtml method cleans up a piece of HTML coming from some external source: the cleanup in...
bool htmlToQTextDocument(const QString &html, QTextDocument &doc, ErrorString &errorDescription, const QVector< SkipHtmlElementRule > &skipRules={}) const
The ErrorString class encapsulates two (or more) strings which are meant to contain translatable (bas...
Definition ErrorString.h:44
The Printable class is the interface for Quentier's internal classes which should be able to write th...
Definition Printable.h:38