diff --git a/PocoDoc/src/DocWriter.cpp b/PocoDoc/src/DocWriter.cpp
index 6dc969801..e4fe787e6 100644
--- a/PocoDoc/src/DocWriter.cpp
+++ b/PocoDoc/src/DocWriter.cpp
@@ -248,7 +248,7 @@ void DocWriter::writeNavigation()
ostr << "
\n"; // workaround to avoid cutting off a few pixels from last line
endBody(ostr);
ostr << "" << std::endl;
- writeFooter(ostr, NO_TRACKING);
+ writeFooter(ostr, NO_TRACKING | NO_CUSTOM_HTML);
}
@@ -922,7 +922,7 @@ void DocWriter::writeNavigationFrame(std::ostream& ostr, const std::string& grou
query += item;
}
ostr << "\n";
- ostr << "\n";
+ ostr << "\n";
ostr << "
\n";
}
@@ -1416,7 +1416,7 @@ bool DocWriter::writeSpecial(std::ostream& ostr, std::string& token, std::string
{
_htmlMode = false;
}
- else if (token == "")
+ else if (token == "" || token == "=")
{
std::string prop;
nextToken(begin, end, token);
@@ -1429,6 +1429,19 @@ bool DocWriter::writeSpecial(std::ostream& ostr, std::string& token, std::string
Application& app = Application::instance();
ostr << htmlize(app.config().getString(prop, std::string("NOT FOUND: ") + prop));
}
+ else if (token == "-")
+ {
+ std::string prop;
+ nextToken(begin, end, token);
+ while (!token.empty() && token != "?>")
+ {
+ prop.append(token);
+ nextToken(begin, end, token);
+ }
+ Poco::trimInPlace(prop);
+ Application& app = Application::instance();
+ ostr << app.config().getString(prop, "");
+ }
else if (_htmlMode)
{
ostr << token;
@@ -1504,7 +1517,10 @@ void DocWriter::nextToken(std::string::const_iterator& it, const std::string::co
{
token += *it++;
if (it != end && std::ispunct(*it)) token += *it++;
- if (it != end && std::ispunct(*it)) token += *it++;
+ if (token != "<[" && token != "<*" && token != "\n";
ostr << "";
+
+ const std::string& attrs = pFunc->getAttributeList();
+ if (!attrs.empty())
+ {
+ ostr << "" << htmlize(attrs) << "
";
+ }
const std::string& decl = pFunc->declaration();
writeDecl(ostr, decl);
if (!std::isalnum(decl[decl.length() - 1]))
@@ -2116,7 +2138,7 @@ void DocWriter::writeFunction(std::ostream& ostr, const Function* pFunc, std::os
ostr << " = 0";
ostr << ";
\n";
- if (pFunc->attrs().has("deprecated"))
+ if (pFunc->attrs().has("deprecated") || pFunc->getAttributeList().compare(0, 12, "[[deprecated") == 0)
{
writeDeprecated(ostr, "function");
}