// -*- C++ -*- /** * \file ExternalTemplate.h * This file is part of LyX, the document processor. * Licence details can be found in the file COPYING. * * \author Asger Alstrup Nielsen * \author Angus Leeming * * Full author contact details are available in file CREDITS. */ #ifndef EXTERNALTEMPLATE_H #define EXTERNALTEMPLATE_H #include "ExternalTransforms.h" #include namespace lyx { namespace support { class FileName; } class Lexer; namespace external { class Template { public: /// We have to have default commands for safety reasons! Template(); /// void readTemplate(Lexer &); /// void dumpFormats(std::ostream &) const; class Option { public: Option(std::string const & name_, std::string const & opt_) : name(name_), option(opt_) {} std::string name; std::string option; }; /// What is the name of this template in the LyX format? std::string lyxName; /// What will the button in the GUI say? std::string guiName; /// A short help text std::string helpText; /** The format of the input file. Can be "*", in which case we try and * ascertain the format from the contents of the file. */ std::string inputFormat; /// A file extension regular expression for the file browser std::string fileRegExp; /// Should we do automatic production of the output? bool automaticProduction; /// A collection of transforms that we can use to transform the data. std::vector transformIds; /// This is the information needed to support a specific output format class Format { public: Format(); /// void readFormat(Lexer &); /// The text that should be inserted into the exported file std::string product; /// The filename of the resulting file std::string updateResult; /// The format of this file. std::string updateFormat; /// What features does this external inset require? std::vector requirements; /// A collection of preamble snippets identified by name. std::vector preambleNames; /// A list of options to the basic command. std::vector