Skip to content

Commit

Permalink
[clang-doc] Generate an HTML index file
Browse files Browse the repository at this point in the history
clang-doc now generates a file that contains only an index to all the
infos that can be used as the landing page for the generated website.

Differential Revision: https://reviews.llvm.org/D65918

llvm-svn: 368484
DiegoAstiazaran committed Aug 9, 2019
1 parent 20ead38 commit dc30049
Showing 1 changed file with 19 additions and 1 deletion.
20 changes: 19 additions & 1 deletion clang-tools-extra/clang-doc/HTMLGenerator.cpp
Original file line number Diff line number Diff line change
@@ -813,6 +813,24 @@ static bool SerializeIndex(ClangDocContext &CDCtx) {
return true;
}

static bool GenIndex(const ClangDocContext &CDCtx) {
std::error_code FileErr, OK;
llvm::SmallString<128> IndexPath;
llvm::sys::path::native(CDCtx.OutDirectory, IndexPath);
llvm::sys::path::append(IndexPath, "index.html");
llvm::raw_fd_ostream IndexOS(IndexPath, FileErr, llvm::sys::fs::F_None);
if (FileErr != OK) {
llvm::errs() << "Error creating main index: " << FileErr.message() << "\n";
return false;
}
HTMLFile F;
std::vector<std::unique_ptr<TagNode>> BasicNodes =
genCommonFileNodes("Index", "", CDCtx);
AppendVector(std::move(BasicNodes), F.Children);
F.Render(IndexOS);
return true;
}

static bool CopyFile(StringRef FilePath, StringRef OutDirectory) {
llvm::SmallString<128> PathWrite;
llvm::sys::path::native(OutDirectory, PathWrite);
@@ -831,7 +849,7 @@ static bool CopyFile(StringRef FilePath, StringRef OutDirectory) {
}

bool HTMLGenerator::createResources(ClangDocContext &CDCtx) {
if (!SerializeIndex(CDCtx))
if (!SerializeIndex(CDCtx) || !GenIndex(CDCtx))
return false;
for (const auto &FilePath : CDCtx.UserStylesheets)
if (!CopyFile(FilePath, CDCtx.OutDirectory))

0 comments on commit dc30049

Please sign in to comment.