You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

60 lines
1.9 KiB

/***************************************************************************
* Copyright (C) 2017 by Julian Wolff <wolff@julianwolff.de> *
* *
* This program is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License as published by *
* the Free Software Foundation; either version 2 of the License, or *
* (at your option) any later version. *
***************************************************************************/
#ifndef MARKDOWN_CONVERTER_H
#define MARKDOWN_CONVERTER_H
#include <core/textdocumentgenerator.h>
#include <QDir>
#include <QTextFragment>
class QTextBlock;
class QTextFrame;
namespace Markdown
{
class Converter : public Okular::TextDocumentConverter
{
Q_OBJECT
public:
Converter();
~Converter() override;
QTextDocument *convert(const QString &fileName) override;
void convertAgain();
void setFancyPantsEnabled(bool b)
{
m_isFancyPantsEnabled = b;
}
bool isFancyPantsEnabled() const
{
return m_isFancyPantsEnabled;
}
QTextDocument *convertOpenFile();
private:
void extractLinks(QTextFrame *parent, QHash<QString, QTextFragment> &internalLinks, QHash<QString, QTextBlock> &documentAnchors);
void extractLinks(const QTextBlock &parent, QHash<QString, QTextFragment> &internalLinks, QHash<QString, QTextBlock> &documentAnchors);
void convertImages(QTextFrame *parent, const QDir &dir, QTextDocument *textDocument);
void convertImages(const QTextBlock &parent, const QDir &dir, QTextDocument *textDocument);
void setImageSize(QTextImageFormat &format, const qreal specifiedWidth, const qreal specifiedHeight, const qreal originalWidth, const qreal originalHeight);
FILE *m_markdownFile;
QDir m_fileDir;
bool m_isFancyPantsEnabled;
};
}
#endif