| 22 | |
| 23 | namespace ExportToModList { |
| 24 | QString toHTML(QList<Mod*> mods, OptionalData extraData) |
| 25 | { |
| 26 | QStringList lines; |
| 27 | for (auto mod : mods) { |
| 28 | auto meta = mod->metadata(); |
| 29 | auto modName = mod->name().toHtmlEscaped(); |
| 30 | if (extraData & Url) { |
| 31 | auto url = mod->metaurl().toHtmlEscaped(); |
| 32 | if (!url.isEmpty()) |
| 33 | modName = QString("<a href=\"%1\">%2</a>").arg(url, modName); |
| 34 | } |
| 35 | auto line = modName; |
| 36 | if (extraData & Version) { |
| 37 | auto ver = mod->version(); |
| 38 | if (ver.isEmpty() && meta != nullptr) |
| 39 | ver = meta->version().toString(); |
| 40 | if (!ver.isEmpty()) |
| 41 | line += QString(" [%1]").arg(ver.toHtmlEscaped()); |
| 42 | } |
| 43 | if (extraData & Authors && !mod->authors().isEmpty()) |
| 44 | line += " by " + mod->authors().join(", ").toHtmlEscaped(); |
| 45 | if (extraData & FileName) |
| 46 | line += QString(" (%1)").arg(mod->fileinfo().fileName().toHtmlEscaped()); |
| 47 | |
| 48 | lines.append(QString("<li>%1</li>").arg(line)); |
| 49 | } |
| 50 | return QString("<html><body><ul>\n\t%1\n</ul></body></html>").arg(lines.join("\n\t")); |
| 51 | } |
| 52 | |
| 53 | QString toMarkdownEscaped(QString src) |
| 54 | { |