diff options
Diffstat (limited to 'helpcompiler/inc/HelpLinker.hxx')
-rw-r--r-- | helpcompiler/inc/HelpLinker.hxx | 97 |
1 files changed, 97 insertions, 0 deletions
diff --git a/helpcompiler/inc/HelpLinker.hxx b/helpcompiler/inc/HelpLinker.hxx new file mode 100644 index 000000000..24bcb9ebd --- /dev/null +++ b/helpcompiler/inc/HelpLinker.hxx @@ -0,0 +1,97 @@ +/* -*- 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/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + +#ifndef INCLUDED_HELPCOMPILER_INC_HELPLINKER_HXX +#define INCLUDED_HELPCOMPILER_INC_HELPLINKER_HXX + +#include <memory> +#include <vector> +#include <helpcompiler/dllapi.h> +#include "HelpCompiler.hxx" +#include <libxslt/xsltInternals.h> + +#ifdef AIX +# undef _THREAD_SAFE +#endif + +class L10N_DLLPUBLIC IndexerPreProcessor +{ +private: + fs::path m_fsCaptionFilesDirName; + fs::path m_fsContentFilesDirName; + + xsltStylesheetPtr m_xsltStylesheetPtrCaption; + xsltStylesheetPtr m_xsltStylesheetPtrContent; + +public: + IndexerPreProcessor( const fs::path& fsIndexBaseDir, + const fs::path& idxCaptionStylesheet, const fs::path& idxContentStylesheet ); + ~IndexerPreProcessor(); + + void processDocument( xmlDocPtr doc, const std::string& EncodedDocPath ); +}; + +class HelpLinker +{ +public: + /// @throws HelpProcessingException + L10N_DLLPUBLIC void main(std::vector<std::string> &args, + std::string const * pExtensionPath = nullptr, + std::string const * pDestination = nullptr, + const OUString* pOfficeHelpPath = nullptr ); + + HelpLinker() + : bExtensionMode(false) + , m_bUseLangRoot(true) + , m_bCreateIndex(true) + {} + +private: + Stringtable additionalFiles; + std::vector<std::string> helpFiles; + fs::path sourceRoot; + fs::path compactStylesheet; + fs::path embeddStylesheet; + fs::path idxCaptionStylesheet; + fs::path idxContentStylesheet; + fs::path zipdir; + fs::path outputFile; + std::string extsource; + std::string extdestination; + std::string module; + std::string lang; + std::string extensionPath; + std::string extensionDestination; + bool bExtensionMode; + fs::path indexDirParentName; + std::unique_ptr<IndexerPreProcessor> m_pIndexerPreProcessor; + bool m_bUseLangRoot; + bool m_bCreateIndex; + void initIndexerPreProcessor(); + /// @throws HelpProcessingException + /// @throws BasicCodeTagger::TaggerException + void link(); + static void addBookmark( FILE* pFile_DBHelp, std::string thishid, + const std::string& fileB, const std::string& anchorB, + const std::string& jarfileB, const std::string& titleB ); +}; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ |