https://github.com/ilovepi updated 
https://github.com/llvm/llvm-project/pull/138066

>From 76316664f93e89ab8801423cc384806298d345f2 Mon Sep 17 00:00:00 2001
From: Paul Kirth <paulki...@google.com>
Date: Tue, 29 Apr 2025 18:08:03 -0700
Subject: [PATCH] [clang-doc] Update clang-doc tool to enable mustache
 templates

This patch adds a command line option and enables the Mustache template
HTML backend. This allows users to use the new, more flexible templates
over the old and cumbersome HTML output. Split from #133161.

Co-authored-by: Peter Chou <peter.c...@mail.utoronto.ca>
---
 .../clang-doc/tool/ClangDocMain.cpp           |  80 +--
 .../clang-doc/basic-project.mustache.test     | 481 ++++++++++++++++++
 2 files changed, 531 insertions(+), 30 deletions(-)
 create mode 100644 clang-tools-extra/test/clang-doc/basic-project.mustache.test

diff --git a/clang-tools-extra/clang-doc/tool/ClangDocMain.cpp 
b/clang-tools-extra/clang-doc/tool/ClangDocMain.cpp
index 8e8f7053a8f87..41fbe87a713d9 100644
--- a/clang-tools-extra/clang-doc/tool/ClangDocMain.cpp
+++ b/clang-tools-extra/clang-doc/tool/ClangDocMain.cpp
@@ -18,20 +18,14 @@
 
//===----------------------------------------------------------------------===//
 
 #include "BitcodeReader.h"
-#include "BitcodeWriter.h"
 #include "ClangDoc.h"
 #include "Generators.h"
 #include "Representation.h"
-#include "clang/AST/AST.h"
-#include "clang/AST/Decl.h"
-#include "clang/ASTMatchers/ASTMatchFinder.h"
+#include "support/Utils.h"
 #include "clang/ASTMatchers/ASTMatchersInternal.h"
-#include "clang/Driver/Options.h"
-#include "clang/Frontend/FrontendActions.h"
 #include "clang/Tooling/AllTUsExecution.h"
 #include "clang/Tooling/CommonOptionsParser.h"
 #include "clang/Tooling/Execution.h"
-#include "clang/Tooling/Tooling.h"
 #include "llvm/ADT/APFloat.h"
 #include "llvm/Support/CommandLine.h"
 #include "llvm/Support/Error.h"
@@ -110,22 +104,19 @@ static llvm::cl::opt<std::string> 
RepositoryCodeLinePrefix(
     llvm::cl::desc("Prefix of line code for repository."),
     llvm::cl::cat(ClangDocCategory));
 
-enum OutputFormatTy {
-  md,
-  yaml,
-  html,
-};
-
-static llvm::cl::opt<OutputFormatTy>
-    FormatEnum("format", llvm::cl::desc("Format for outputted docs."),
-               llvm::cl::values(clEnumValN(OutputFormatTy::yaml, "yaml",
-                                           "Documentation in YAML format."),
-                                clEnumValN(OutputFormatTy::md, "md",
-                                           "Documentation in MD format."),
-                                clEnumValN(OutputFormatTy::html, "html",
-                                           "Documentation in HTML format.")),
-               llvm::cl::init(OutputFormatTy::yaml),
-               llvm::cl::cat(ClangDocCategory));
+enum OutputFormatTy { md, yaml, html, mustache };
+
+static llvm::cl::opt<OutputFormatTy> FormatEnum(
+    "format", llvm::cl::desc("Format for outputted docs."),
+    llvm::cl::values(clEnumValN(OutputFormatTy::yaml, "yaml",
+                                "Documentation in YAML format."),
+                     clEnumValN(OutputFormatTy::md, "md",
+                                "Documentation in MD format."),
+                     clEnumValN(OutputFormatTy::html, "html",
+                                "Documentation in HTML format."),
+                     clEnumValN(OutputFormatTy::mustache, "mustache",
+                                "Documentation in mustache HTML format")),
+    llvm::cl::init(OutputFormatTy::yaml), llvm::cl::cat(ClangDocCategory));
 
 static std::string getFormatString() {
   switch (FormatEnum) {
@@ -135,6 +126,8 @@ static std::string getFormatString() {
     return "md";
   case OutputFormatTy::html:
     return "html";
+  case OutputFormatTy::mustache:
+    return "mustache";
   }
   llvm_unreachable("Unknown OutputFormatTy");
 }
@@ -178,13 +171,9 @@ static llvm::Error getDefaultAssetFiles(const char *Argv0,
   llvm::SmallString<128> AssetsPath;
   AssetsPath = llvm::sys::path::parent_path(NativeClangDocPath);
   llvm::sys::path::append(AssetsPath, "..", "share", "clang-doc");
-  llvm::SmallString<128> DefaultStylesheet;
-  llvm::sys::path::native(AssetsPath, DefaultStylesheet);
-  llvm::sys::path::append(DefaultStylesheet,
-                          "clang-doc-default-stylesheet.css");
-  llvm::SmallString<128> IndexJS;
-  llvm::sys::path::native(AssetsPath, IndexJS);
-  llvm::sys::path::append(IndexJS, "index.js");
+  llvm::SmallString<128> DefaultStylesheet =
+      appendPathNative(AssetsPath, "clang-doc-default-stylesheet.css");
+  llvm::SmallString<128> IndexJS = appendPathNative(AssetsPath, "index.js");
 
   if (!llvm::sys::fs::is_regular_file(IndexJS))
     return llvm::createStringError(llvm::inconvertibleErrorCode(),
@@ -215,6 +204,30 @@ static llvm::Error getHtmlAssetFiles(const char *Argv0,
   return getDefaultAssetFiles(Argv0, CDCtx);
 }
 
+static llvm::Error getMustacheHtmlFiles(const char *Argv0,
+                                        clang::doc::ClangDocContext &CDCtx) {
+  bool IsDir = llvm::sys::fs::is_directory(UserAssetPath);
+  if (!UserAssetPath.empty() && !IsDir)
+    llvm::outs() << "Asset path supply is not a directory: " << UserAssetPath
+                 << " falling back to default\n";
+  if (IsDir) {
+    getMustacheHtmlFiles(UserAssetPath, CDCtx);
+    return llvm::Error::success();
+  }
+  void *MainAddr = (void *)(intptr_t)getExecutablePath;
+  std::string ClangDocPath = getExecutablePath(Argv0, MainAddr);
+  llvm::SmallString<128> NativeClangDocPath;
+  llvm::sys::path::native(ClangDocPath, NativeClangDocPath);
+
+  llvm::SmallString<128> AssetsPath;
+  AssetsPath = llvm::sys::path::parent_path(NativeClangDocPath);
+  llvm::sys::path::append(AssetsPath, "..", "share", "clang-doc");
+
+  getMustacheHtmlFiles(AssetsPath, CDCtx);
+
+  return llvm::Error::success();
+}
+
 /// Make the output of clang-doc deterministic by sorting the children of
 /// namespaces and records.
 static void
@@ -290,6 +303,13 @@ Example usage for a project using a compile commands 
database:
     }
   }
 
+  if (Format == "mustache") {
+    if (auto Err = getMustacheHtmlFiles(argv[0], CDCtx)) {
+      llvm::errs() << toString(std::move(Err)) << "\n";
+      return 1;
+    }
+  }
+
   // Mapping phase
   llvm::outs() << "Mapping decls...\n";
   auto Err =
diff --git a/clang-tools-extra/test/clang-doc/basic-project.mustache.test 
b/clang-tools-extra/test/clang-doc/basic-project.mustache.test
new file mode 100644
index 0000000000000..7bfdd4bb1dd3f
--- /dev/null
+++ b/clang-tools-extra/test/clang-doc/basic-project.mustache.test
@@ -0,0 +1,481 @@
+// RUN: rm -rf %t && mkdir -p %t/docs %t/build
+// RUN: sed 's|$test_dir|%/S|g' %S/Inputs/basic-project/database_template.json 
> %t/build/compile_commands.json
+
+// RUN: clang-doc --format=mustache --output=%t/docs --executor=all-TUs 
%t/build/compile_commands.json
+// RUN: FileCheck %s -input-file=%t/docs/GlobalNamespace/Shape.html 
-check-prefix=HTML-SHAPE
+// RUN: FileCheck %s -input-file=%t/docs/GlobalNamespace/Calculator.html 
-check-prefix=HTML-CALC
+// RUN: FileCheck %s -input-file=%t/docs/GlobalNamespace/Rectangle.html 
-check-prefix=HTML-RECTANGLE
+// RUN: FileCheck %s -input-file=%t/docs/GlobalNamespace/Circle.html 
-check-prefix=HTML-CIRCLE
+
+HTML-SHAPE: <html lang="en-US">
+HTML-SHAPE: <head>
+HTML-SHAPE:     <meta charset="utf-8"/>
+HTML-SHAPE:     <title>Shape</title>
+HTML-SHAPE:         <link rel="stylesheet" type="text/css" 
href="../clang-doc-mustache.css"/>
+HTML-SHAPE:         <script src="../mustache-index.js"></script>
+HTML-SHAPE:     <link rel="stylesheet" 
href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/styles/default.min.css";>
+HTML-SHAPE:     <script 
src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/highlight.min.js";></script>
+HTML-SHAPE:     <script 
src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/languages/cpp.min.js";></script>
+HTML-SHAPE: </head>
+HTML-SHAPE: <body>
+HTML-SHAPE: <nav class="navbar">
+HTML-SHAPE:     <div class="navbar__container">
+HTML-SHAPE:             <div class="navbar__logo">
+HTML-SHAPE:             </div>
+HTML-SHAPE:         <div class="navbar__menu">
+HTML-SHAPE:             <ul class="navbar__links">
+HTML-SHAPE:                 <li class="navbar__item">
+HTML-SHAPE:                     <a href="/" class="navbar__link">Namespace</a>
+HTML-SHAPE:                 </li>
+HTML-SHAPE:                 <li class="navbar__item">
+HTML-SHAPE:                     <a href="/" class="navbar__link">Class</a>
+HTML-SHAPE:                 </li>
+HTML-SHAPE:             </ul>
+HTML-SHAPE:         </div>
+HTML-SHAPE:     </div>
+HTML-SHAPE: </nav>
+HTML-SHAPE: <main>
+HTML-SHAPE:     <div class="container">
+HTML-SHAPE:         <div class="sidebar">
+HTML-SHAPE:             <h2>class Shape</h2>
+HTML-SHAPE:             <ul>
+HTML-SHAPE:                 <li class="sidebar-section">
+HTML-SHAPE:                     <a class="sidebar-item" 
href="#PublicMethods">Public Method</a>
+HTML-SHAPE:                 </li>
+HTML-SHAPE:                 <ul>
+HTML-SHAPE:                     <li class="sidebar-item-container">
+HTML-SHAPE:                         <a class="sidebar-item" 
href="#{{([0-9A-F]{40})}}">area</a>
+HTML-SHAPE:                     </li>
+HTML-SHAPE:                     <li class="sidebar-item-container">
+HTML-SHAPE:                         <a class="sidebar-item" 
href="#{{([0-9A-F]{40})}}">perimeter</a>
+HTML-SHAPE:                     </li>
+HTML-SHAPE:                     <li class="sidebar-item-container">
+HTML-SHAPE:                         <a class="sidebar-item" 
href="#{{([0-9A-F]{40})}}">~Shape</a>
+HTML-SHAPE:                     </li>
+HTML-SHAPE:                 </ul>
+HTML-SHAPE:             </ul>
+HTML-SHAPE:         </div>
+HTML-SHAPE:         <div class="resizer" id="resizer"></div>
+HTML-SHAPE:         <div class="content">
+HTML-SHAPE:             <section class="hero section-container">
+HTML-SHAPE:                 <div class="hero__title">
+HTML-SHAPE:                     <h1 class="hero__title-large">class Shape</h1>
+HTML-SHAPE:                 </div>
+HTML-SHAPE:             </section>
+HTML-SHAPE:             <section id="PublicMethods" class="section-container">
+HTML-SHAPE:                 <h2>Public Methods</h2>
+HTML-SHAPE:                 <div>
+HTML-SHAPE: <div class="delimiter-container">
+HTML-SHAPE:     <div id="{{([0-9A-F]{40})}}">
+HTML-SHAPE:         <pre>
+HTML-SHAPE:             <code class="language-cpp code-clang-doc">
+HTML-SHAPE: double area ()
+HTML-SHAPE:             </code>
+HTML-SHAPE:         </pre>
+HTML-SHAPE:     </div>
+HTML-SHAPE: </div>
+HTML-SHAPE: <div class="delimiter-container">
+HTML-SHAPE:     <div id="{{([0-9A-F]{40})}}">
+HTML-SHAPE:         <pre>
+HTML-SHAPE:             <code class="language-cpp code-clang-doc">
+HTML-SHAPE: double perimeter ()
+HTML-SHAPE:             </code>
+HTML-SHAPE:         </pre>
+HTML-SHAPE:     </div>
+HTML-SHAPE: </div>
+HTML-SHAPE: <div class="delimiter-container">
+HTML-SHAPE:     <div id="{{([0-9A-F]{40})}}">
+HTML-SHAPE:         <pre>
+HTML-SHAPE:             <code class="language-cpp code-clang-doc">
+HTML-SHAPE: void ~Shape ()
+HTML-SHAPE:             </code>
+HTML-SHAPE:         </pre>
+HTML-SHAPE:     </div>
+HTML-SHAPE: </div>
+HTML-SHAPE: </div>
+HTML-SHAPE:             </section>
+HTML-SHAPE:         </div>
+HTML-SHAPE:     </div>
+HTML-SHAPE: </main>
+HTML-SHAPE: </body>
+HTML-SHAPE: </html>
+
+
+HTML-CALC: <!DOCTYPE html>
+HTML-CALC: <html lang="en-US">
+HTML-CALC: <head>
+HTML-CALC:     <meta charset="utf-8"/>
+HTML-CALC:     <title>Calculator</title>
+HTML-CALC:         <link rel="stylesheet" type="text/css" 
href="../clang-doc-mustache.css"/>
+HTML-CALC:         <script src="../mustache-index.js"></script>
+HTML-CALC:     <link rel="stylesheet" 
href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/styles/default.min.css";>
+HTML-CALC:     <script 
src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/highlight.min.js";></script>
+HTML-CALC:     <script 
src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/languages/cpp.min.js";></script>
+HTML-CALC: </head>
+HTML-CALC: <body>
+HTML-CALC: <nav class="navbar">
+HTML-CALC:     <div class="navbar__container">
+HTML-CALC:             <div class="navbar__logo">
+HTML-CALC:             </div>
+HTML-CALC:         <div class="navbar__menu">
+HTML-CALC:             <ul class="navbar__links">
+HTML-CALC:                 <li class="navbar__item">
+HTML-CALC:                     <a href="/" class="navbar__link">Namespace</a>
+HTML-CALC:                 </li>
+HTML-CALC:                 <li class="navbar__item">
+HTML-CALC:                     <a href="/" class="navbar__link">Class</a>
+HTML-CALC:                 </li>
+HTML-CALC:             </ul>
+HTML-CALC:         </div>
+HTML-CALC:     </div>
+HTML-CALC: </nav>
+HTML-CALC: <main>
+HTML-CALC:     <div class="container">
+HTML-CALC:         <div class="sidebar">
+HTML-CALC:             <h2>class Calculator</h2>
+HTML-CALC:             <ul>
+HTML-CALC:                 <li class="sidebar-section">
+HTML-CALC:                     <a class="sidebar-item" 
href="#PublicMethods">Public Members</a>
+HTML-CALC:                 </li>
+HTML-CALC:                 <ul>
+HTML-CALC:                     <li class="sidebar-item-container">
+HTML-CALC:                         <a class="sidebar-item" 
href="#public_val">public_val</a>
+HTML-CALC:                     </li>
+HTML-CALC:                     <li class="sidebar-item-container">
+HTML-CALC:                         <a class="sidebar-item" 
href="#static_val">static_val</a>
+HTML-CALC:                     </li>
+HTML-CALC:                 </ul>
+HTML-CALC:                 <li class="sidebar-section">
+HTML-CALC:                     <a class="sidebar-item" 
href="#PublicMethods">Public Method</a>
+HTML-CALC:                 </li>
+HTML-CALC:                 <ul>
+HTML-CALC:                     <li class="sidebar-item-container">
+HTML-CALC:                         <a class="sidebar-item" 
href="#{{([0-9A-F]{40})}}">add</a>
+HTML-CALC:                     </li>
+HTML-CALC:                     <li class="sidebar-item-container">
+HTML-CALC:                         <a class="sidebar-item" 
href="#{{([0-9A-F]{40})}}">subtract</a>
+HTML-CALC:                     </li>
+HTML-CALC:                     <li class="sidebar-item-container">
+HTML-CALC:                         <a class="sidebar-item" 
href="#{{([0-9A-F]{40})}}">multiply</a>
+HTML-CALC:                     </li>
+HTML-CALC:                     <li class="sidebar-item-container">
+HTML-CALC:                         <a class="sidebar-item" 
href="#{{([0-9A-F]{40})}}">divide</a>
+HTML-CALC:                     </li>
+HTML-CALC:                     <li class="sidebar-item-container">
+HTML-CALC:                         <a class="sidebar-item" 
href="#{{([0-9A-F]{40})}}">mod</a>
+HTML-CALC:                     </li>
+HTML-CALC:                 </ul>
+HTML-CALC:             </ul>
+HTML-CALC:         </div>
+HTML-CALC:         <div class="resizer" id="resizer"></div>
+HTML-CALC:         <div class="content">
+HTML-CALC:             <section class="hero section-container">
+HTML-CALC:                 <div class="hero__title">
+HTML-CALC:                     <h1 class="hero__title-large">class 
Calculator</h1>
+HTML-CALC:                 </div>
+HTML-CALC:             </section>
+HTML-CALC:             <section id="PublicMembers" class="section-container">
+HTML-CALC:                 <h2>Public Members</h2>
+HTML-CALC:                 <div>
+HTML-CALC:                     <div id="public_val" 
class="delimiter-container">
+HTML-CALC:                         <pre>
+HTML-CALC: <code class="language-cpp code-clang-doc" >int public_val</code>
+HTML-CALC:                         </pre>
+HTML-CALC:                     </div>
+HTML-CALC:                     <div id="static_val" 
class="delimiter-container">
+HTML-CALC:                         <pre>
+HTML-CALC: <code class="language-cpp code-clang-doc" >const int 
static_val</code>
+HTML-CALC:                         </pre>
+HTML-CALC:                     </div>
+HTML-CALC:                 </div>
+HTML-CALC:             </section>
+HTML-CALC:             <section id="PublicMethods" class="section-container">
+HTML-CALC:                 <h2>Public Methods</h2>
+HTML-CALC:                 <div>
+HTML-CALC: <div class="delimiter-container">
+HTML-CALC:     <div id="{{([0-9A-F]{40})}}">
+HTML-CALC:         <pre>
+HTML-CALC:             <code class="language-cpp code-clang-doc">
+HTML-CALC: int add (int a, int b)
+HTML-CALC:             </code>
+HTML-CALC:         </pre>
+HTML-CALC:     </div>
+HTML-CALC: </div>
+HTML-CALC: <div class="delimiter-container">
+HTML-CALC:     <div id="{{([0-9A-F]{40})}}">
+HTML-CALC:         <pre>
+HTML-CALC:             <code class="language-cpp code-clang-doc">
+HTML-CALC: int subtract (int a, int b)
+HTML-CALC:             </code>
+HTML-CALC:         </pre>
+HTML-CALC:     </div>
+HTML-CALC: </div>
+HTML-CALC: <div class="delimiter-container">
+HTML-CALC:     <div id="{{([0-9A-F]{40})}}">
+HTML-CALC:         <pre>
+HTML-CALC:             <code class="language-cpp code-clang-doc">
+HTML-CALC: int multiply (int a, int b)
+HTML-CALC:             </code>
+HTML-CALC:         </pre>
+HTML-CALC:     </div>
+HTML-CALC: </div>
+HTML-CALC: <div class="delimiter-container">
+HTML-CALC:     <div id="{{([0-9A-F]{40})}}">
+HTML-CALC:         <pre>
+HTML-CALC:             <code class="language-cpp code-clang-doc">
+HTML-CALC: double divide (int a, int b)
+HTML-CALC:             </code>
+HTML-CALC:         </pre>
+HTML-CALC:     </div>
+HTML-CALC: </div>
+HTML-CALC: <div class="delimiter-container">
+HTML-CALC:     <div id="{{([0-9A-F]{40})}}">
+HTML-CALC:         <pre>
+HTML-CALC:             <code class="language-cpp code-clang-doc">
+HTML-CALC: int mod (int a, int b)
+HTML-CALC:             </code>
+HTML-CALC:         </pre>
+HTML-CALC:     </div>
+HTML-CALC: </div>
+HTML-CALC: </div>
+HTML-CALC:             </section>
+HTML-CALC:         </div>
+HTML-CALC:     </div>
+HTML-CALC: </main>
+HTML-CALC: </body>
+HTML-CALC: </html>
+
+
+HTML-RECTANGLE: <!DOCTYPE html>
+HTML-RECTANGLE: <html lang="en-US">
+HTML-RECTANGLE: <head>
+HTML-RECTANGLE:     <meta charset="utf-8"/>
+HTML-RECTANGLE:     <title>Rectangle</title>
+HTML-RECTANGLE:         <link rel="stylesheet" type="text/css" 
href="../clang-doc-mustache.css"/>
+HTML-RECTANGLE:         <script src="../mustache-index.js"></script>
+HTML-RECTANGLE:     <link rel="stylesheet" 
href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/styles/default.min.css";>
+HTML-RECTANGLE:     <script 
src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/highlight.min.js";></script>
+HTML-RECTANGLE:     <script 
src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/languages/cpp.min.js";></script>
+HTML-RECTANGLE: </head>
+HTML-RECTANGLE: <body>
+HTML-RECTANGLE: <nav class="navbar">
+HTML-RECTANGLE:     <div class="navbar__container">
+HTML-RECTANGLE:             <div class="navbar__logo">
+HTML-RECTANGLE:             </div>
+HTML-RECTANGLE:         <div class="navbar__menu">
+HTML-RECTANGLE:             <ul class="navbar__links">
+HTML-RECTANGLE:                 <li class="navbar__item">
+HTML-RECTANGLE:                     <a href="/" 
class="navbar__link">Namespace</a>
+HTML-RECTANGLE:                 </li>
+HTML-RECTANGLE:                 <li class="navbar__item">
+HTML-RECTANGLE:                     <a href="/" class="navbar__link">Class</a>
+HTML-RECTANGLE:                 </li>
+HTML-RECTANGLE:             </ul>
+HTML-RECTANGLE:         </div>
+HTML-RECTANGLE:     </div>
+HTML-RECTANGLE: </nav>
+HTML-RECTANGLE: <main>
+HTML-RECTANGLE:     <div class="container">
+HTML-RECTANGLE:         <div class="sidebar">
+HTML-RECTANGLE:             <h2>class Rectangle</h2>
+HTML-RECTANGLE:             <ul>
+HTML-RECTANGLE:                     <li class="sidebar-section">
+HTML-RECTANGLE:                         <a class="sidebar-item" 
href="#PublicMethods">Protected Members</a>
+HTML-RECTANGLE:                     </li>
+HTML-RECTANGLE:                     <ul>
+HTML-RECTANGLE:                             <li class="sidebar-item-container">
+HTML-RECTANGLE:                                 <a class="sidebar-item" 
href="#width_">width_</a>
+HTML-RECTANGLE:                             </li>
+HTML-RECTANGLE:                             <li class="sidebar-item-container">
+HTML-RECTANGLE:                                 <a class="sidebar-item" 
href="#height_">height_</a>
+HTML-RECTANGLE:                             </li>
+HTML-RECTANGLE:                     </ul>
+HTML-RECTANGLE:                 <li class="sidebar-section">
+HTML-RECTANGLE:                     <a class="sidebar-item" 
href="#PublicMethods">Public Method</a>
+HTML-RECTANGLE:                 </li>
+HTML-RECTANGLE:                 <ul>
+HTML-RECTANGLE:                     <li class="sidebar-item-container">
+HTML-RECTANGLE:                         <a class="sidebar-item" 
href="#{{([0-9A-F]{40})}}">Rectangle</a>
+HTML-RECTANGLE:                     </li>
+HTML-RECTANGLE:                     <li class="sidebar-item-container">
+HTML-RECTANGLE:                         <a class="sidebar-item" 
href="#{{([0-9A-F]{40})}}">area</a>
+HTML-RECTANGLE:                     </li>
+HTML-RECTANGLE:                     <li class="sidebar-item-container">
+HTML-RECTANGLE:                         <a class="sidebar-item" 
href="#{{([0-9A-F]{40})}}">perimeter</a>
+HTML-RECTANGLE:                     </li>
+HTML-RECTANGLE:                 </ul>
+HTML-RECTANGLE:             </ul>
+HTML-RECTANGLE:         </div>
+HTML-RECTANGLE:         <div class="resizer" id="resizer"></div>
+HTML-RECTANGLE:         <div class="content">
+HTML-RECTANGLE:             <section class="hero section-container">
+HTML-RECTANGLE:                 <div class="hero__title">
+HTML-RECTANGLE:                     <h1 class="hero__title-large">class 
Rectangle</h1>
+HTML-RECTANGLE:                 </div>
+HTML-RECTANGLE:             </section>
+HTML-RECTANGLE:             <section id="ProtectedMembers" 
class="section-container">
+HTML-RECTANGLE:                 <h2>Protected Members</h2>
+HTML-RECTANGLE:                 <div>
+HTML-RECTANGLE:                     <div id="width_" 
class="delimiter-container">
+HTML-RECTANGLE:                         <pre>
+HTML-RECTANGLE: <code class="language-cpp code-clang-doc" >double width_</code>
+HTML-RECTANGLE:                         </pre>
+HTML-RECTANGLE:                     </div>
+HTML-RECTANGLE:                     <div id="height_" 
class="delimiter-container">
+HTML-RECTANGLE:                         <pre>
+HTML-RECTANGLE: <code class="language-cpp code-clang-doc" >double 
height_</code>
+HTML-RECTANGLE:                         </pre>
+HTML-RECTANGLE:                     </div>
+HTML-RECTANGLE:                 </div>
+HTML-RECTANGLE:             </section>
+HTML-RECTANGLE:             <section id="PublicMethods" 
class="section-container">
+HTML-RECTANGLE:                 <h2>Public Methods</h2>
+HTML-RECTANGLE:                 <div>
+HTML-RECTANGLE: <div class="delimiter-container">
+HTML-RECTANGLE:     <div id="{{([0-9A-F]{40})}}">
+HTML-RECTANGLE:         <pre>
+HTML-RECTANGLE:             <code class="language-cpp code-clang-doc">
+HTML-RECTANGLE: void Rectangle (double width, double height)
+HTML-RECTANGLE:             </code>
+HTML-RECTANGLE:         </pre>
+HTML-RECTANGLE:     </div>
+HTML-RECTANGLE: </div>
+HTML-RECTANGLE: <div class="delimiter-container">
+HTML-RECTANGLE:     <div id="{{([0-9A-F]{40})}}">
+HTML-RECTANGLE:         <pre>
+HTML-RECTANGLE:             <code class="language-cpp code-clang-doc">
+HTML-RECTANGLE: double area ()
+HTML-RECTANGLE:             </code>
+HTML-RECTANGLE:         </pre>
+HTML-RECTANGLE:     </div>
+HTML-RECTANGLE: </div>
+HTML-RECTANGLE: <div class="delimiter-container">
+HTML-RECTANGLE:     <div id="{{([0-9A-F]{40})}}">
+HTML-RECTANGLE:         <pre>
+HTML-RECTANGLE:             <code class="language-cpp code-clang-doc">
+HTML-RECTANGLE: double perimeter ()
+HTML-RECTANGLE:             </code>
+HTML-RECTANGLE:         </pre>
+HTML-RECTANGLE:     </div>
+HTML-RECTANGLE: </div>
+HTML-RECTANGLE: </div>
+HTML-RECTANGLE:             </section>
+HTML-RECTANGLE:         </div>
+HTML-RECTANGLE:     </div>
+HTML-RECTANGLE: </main>
+HTML-RECTANGLE: </body>
+HTML-RECTANGLE: </html>
+
+
+HTML-CIRCLE: <!DOCTYPE html>
+HTML-CIRCLE: <html lang="en-US">
+HTML-CIRCLE: <head>
+HTML-CIRCLE:     <meta charset="utf-8"/>
+HTML-CIRCLE:     <title>Circle</title>
+HTML-CIRCLE:         <link rel="stylesheet" type="text/css" 
href="../clang-doc-mustache.css"/>
+HTML-CIRCLE:         <script src="../mustache-index.js"></script>
+HTML-CIRCLE:     <link rel="stylesheet" 
href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/styles/default.min.css";>
+HTML-CIRCLE:     <script 
src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/highlight.min.js";></script>
+HTML-CIRCLE:     <script 
src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/languages/cpp.min.js";></script>
+HTML-CIRCLE: </head>
+HTML-CIRCLE: <body>
+HTML-CIRCLE: <nav class="navbar">
+HTML-CIRCLE:     <div class="navbar__container">
+HTML-CIRCLE:             <div class="navbar__logo">
+HTML-CIRCLE:             </div>
+HTML-CIRCLE:         <div class="navbar__menu">
+HTML-CIRCLE:             <ul class="navbar__links">
+HTML-CIRCLE:                 <li class="navbar__item">
+HTML-CIRCLE:                     <a href="/" class="navbar__link">Namespace</a>
+HTML-CIRCLE:                 </li>
+HTML-CIRCLE:                 <li class="navbar__item">
+HTML-CIRCLE:                     <a href="/" class="navbar__link">Class</a>
+HTML-CIRCLE:                 </li>
+HTML-CIRCLE:             </ul>
+HTML-CIRCLE:         </div>
+HTML-CIRCLE:     </div>
+HTML-CIRCLE: </nav>
+HTML-CIRCLE: <main>
+HTML-CIRCLE:     <div class="container">
+HTML-CIRCLE:         <div class="sidebar">
+HTML-CIRCLE:             <h2>class Circle</h2>
+HTML-CIRCLE:             <ul>
+HTML-CIRCLE:                     <li class="sidebar-section">
+HTML-CIRCLE:                         <a class="sidebar-item" 
href="#PublicMethods">Protected Members</a>
+HTML-CIRCLE:                     </li>
+HTML-CIRCLE:                     <ul>
+HTML-CIRCLE:                             <li class="sidebar-item-container">
+HTML-CIRCLE:                                 <a class="sidebar-item" 
href="#radius_">radius_</a>
+HTML-CIRCLE:                             </li>
+HTML-CIRCLE:                     </ul>
+HTML-CIRCLE:                 <li class="sidebar-section">
+HTML-CIRCLE:                     <a class="sidebar-item" 
href="#PublicMethods">Public Method</a>
+HTML-CIRCLE:                 </li>
+HTML-CIRCLE:                 <ul>
+HTML-CIRCLE:                     <li class="sidebar-item-container">
+HTML-CIRCLE:                         <a class="sidebar-item" 
href="#{{([0-9A-F]{40})}}">Circle</a>
+HTML-CIRCLE:                     </li>
+HTML-CIRCLE:                     <li class="sidebar-item-container">
+HTML-CIRCLE:                         <a class="sidebar-item" 
href="#{{([0-9A-F]{40})}}">area</a>
+HTML-CIRCLE:                     </li>
+HTML-CIRCLE:                     <li class="sidebar-item-container">
+HTML-CIRCLE:                         <a class="sidebar-item" 
href="#{{([0-9A-F]{40})}}">perimeter</a>
+HTML-CIRCLE:                     </li>
+HTML-CIRCLE:                 </ul>
+HTML-CIRCLE:             </ul>
+HTML-CIRCLE:         </div>
+HTML-CIRCLE:         <div class="resizer" id="resizer"></div>
+HTML-CIRCLE:         <div class="content">
+HTML-CIRCLE:             <section class="hero section-container">
+HTML-CIRCLE:                 <div class="hero__title">
+HTML-CIRCLE:                     <h1 class="hero__title-large">class 
Circle</h1>
+HTML-CIRCLE:                 </div>
+HTML-CIRCLE:             </section>
+HTML-CIRCLE:             <section id="ProtectedMembers" 
class="section-container">
+HTML-CIRCLE:                 <h2>Protected Members</h2>
+HTML-CIRCLE:                 <div>
+HTML-CIRCLE:                     <div id="radius_" class="delimiter-container">
+HTML-CIRCLE:                         <pre>
+HTML-CIRCLE: <code class="language-cpp code-clang-doc" >double radius_</code>
+HTML-CIRCLE:                         </pre>
+HTML-CIRCLE:                     </div>
+HTML-CIRCLE:                 </div>
+HTML-CIRCLE:             </section>
+HTML-CIRCLE:             <section id="PublicMethods" class="section-container">
+HTML-CIRCLE:                 <h2>Public Methods</h2>
+HTML-CIRCLE:                 <div>
+HTML-CIRCLE: <div class="delimiter-container">
+HTML-CIRCLE:     <div id="{{([0-9A-F]{40})}}">
+HTML-CIRCLE:         <pre>
+HTML-CIRCLE:             <code class="language-cpp code-clang-doc">
+HTML-CIRCLE: void Circle (double radius)
+HTML-CIRCLE:             </code>
+HTML-CIRCLE:         </pre>
+HTML-CIRCLE:     </div>
+HTML-CIRCLE: </div>
+HTML-CIRCLE: <div class="delimiter-container">
+HTML-CIRCLE:     <div id="{{([0-9A-F]{40})}}">
+HTML-CIRCLE:         <pre>
+HTML-CIRCLE:             <code class="language-cpp code-clang-doc">
+HTML-CIRCLE: double area ()
+HTML-CIRCLE:             </code>
+HTML-CIRCLE:         </pre>
+HTML-CIRCLE:     </div>
+HTML-CIRCLE: </div>
+HTML-CIRCLE: <div class="delimiter-container">
+HTML-CIRCLE:     <div id="{{([0-9A-F]{40})}}">
+HTML-CIRCLE:         <pre>
+HTML-CIRCLE:             <code class="language-cpp code-clang-doc">
+HTML-CIRCLE: double perimeter ()
+HTML-CIRCLE:             </code>
+HTML-CIRCLE:         </pre>
+HTML-CIRCLE:     </div>
+HTML-CIRCLE: </div>
+HTML-CIRCLE: </div>
+HTML-CIRCLE:             </section>
+HTML-CIRCLE:         </div>
+HTML-CIRCLE:     </div>
+HTML-CIRCLE: </main>
+HTML-CIRCLE: </body>
+HTML-CIRCLE: </html>
+

_______________________________________________
llvm-branch-commits mailing list
llvm-branch-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits

Reply via email to