685c8db519
Added an input variable to end to enter the name of which variable is ending. This is to check that the expected end tag is actually written. Added writeAttribute, which is independent from HtmlWriter and just writes the HTML attribute format to the stream. Change-Id: Ib00a4a37354cd1cb1781ba729ed4046a966e1eb1 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/116629 Tested-by: Jenkins Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
64 lines
1.8 KiB
C++
64 lines
1.8 KiB
C++
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
|
|
/*
|
|
* This file is part of the LibreOffice project.
|
|
*
|
|
* This Source Code Form is subject to the terms of the Mozilla Public
|
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
|
*
|
|
*/
|
|
|
|
#pragma once
|
|
|
|
#include <rtl/string.hxx>
|
|
#include <string_view>
|
|
#include <vector>
|
|
#include <svtools/svtdllapi.h>
|
|
|
|
class SvStream;
|
|
|
|
class SVT_DLLPUBLIC HtmlWriter final
|
|
{
|
|
private:
|
|
std::vector<OString> maElementStack;
|
|
|
|
SvStream& mrStream;
|
|
|
|
bool mbElementOpen;
|
|
bool mbCharactersWritten;
|
|
bool mbPrettyPrint;
|
|
/// XML namespace, in case of XHTML.
|
|
OString maNamespace;
|
|
|
|
public:
|
|
HtmlWriter(SvStream& rStream, std::string_view rNamespace = std::string_view());
|
|
~HtmlWriter();
|
|
|
|
void prettyPrint(bool b);
|
|
|
|
void start(const OString& aElement);
|
|
|
|
bool end(const OString& aElement);
|
|
void end();
|
|
|
|
void flushStack();
|
|
|
|
static void writeAttribute(SvStream& rStream, std::string_view aAttribute, sal_Int32 aValue);
|
|
static void writeAttribute(SvStream& rStream, std::string_view aAttribute,
|
|
std::string_view aValue);
|
|
|
|
void attribute(std::string_view aAttribute, const char* aValue);
|
|
void attribute(std::string_view aAttribute, sal_Int32 aValue);
|
|
void attribute(std::string_view aAttribute, std::string_view aValue);
|
|
void attribute(std::string_view aAttribute, std::u16string_view aValue);
|
|
// boolean attribute e.g. <img ismap>
|
|
void attribute(std::string_view aAttribute);
|
|
|
|
void single(const OString& aContent);
|
|
void endAttribute();
|
|
|
|
/// Writes character data.
|
|
void characters(std::string_view rChars);
|
|
};
|
|
|
|
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
|