Skip to content

Commit 69724cd

Browse files
committed
Add Open Graph metadata to HTML pages
1 parent d0c93d1 commit 69724cd

File tree

1 file changed

+29
-10
lines changed

1 file changed

+29
-10
lines changed

src/report_generator.cpp

Lines changed: 29 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -167,13 +167,26 @@ void print_list(std::ostream & out, Container const & source, char const * separ
167167

168168

169169

170-
void print_file_header(std::ostream& out, std::string const & title) {
170+
void print_file_header(std::ostream& out, std::string const & title, std::string const & url_filename = {}, std::string const & desc = {}) {
171171
out <<
172172
R"(<!DOCTYPE html>
173173
<html lang="en">
174174
<head>
175175
<meta charset="utf-8">
176-
<title>)" << title << R"(</title>
176+
<title>)" << title << R"(</title>)";
177+
178+
if (url_filename.size()) {
179+
// Open Graph metadata
180+
out << R"(
181+
<meta property="og:title" content=")" << title << R"(">
182+
<meta property="og:description" content=")" << desc << R"(">
183+
<meta property="og:url" content="https://cplusplus.github.io/LWG/)" << url_filename << R"(">
184+
<meta property="og:type" content="website">
185+
<meta property="og:image" content="https://isocpp.org/assets/images/cpp_logo.png">
186+
<meta property="og:image:alt" content="C++ logo">)";
187+
}
188+
189+
out << R"(
177190
<style>
178191
p {text-align:justify}
179192
li {text-align:justify}
@@ -226,7 +239,6 @@ R"(<!DOCTYPE html>
226239
</head>
227240
<body>
228241
)";
229-
230242
}
231243

232244

@@ -491,7 +503,8 @@ void report_generator::make_active(std::vector<issue> const & issues, fs::path c
491503
std::ofstream out{filename};
492504
if (!out)
493505
throw std::runtime_error{"Failed to open " + filename.string()};
494-
print_file_header(out, "C++ Standard Library Active Issues List");
506+
print_file_header(out, "C++ Standard Library Active Issues List", filename.filename().string(),
507+
"Unresolved issues in the C++ Standard Library");
495508
print_paper_heading(out, "active", lwg_issues_xml);
496509
out << lwg_issues_xml.get_intro("active") << '\n';
497510
out << "<h2 id='History'>Revision History</h2>\n" << lwg_issues_xml.get_revisions(issues, diff_report) << '\n';
@@ -509,7 +522,8 @@ void report_generator::make_defect(std::vector<issue> const & issues, fs::path c
509522
std::ofstream out(filename);
510523
if (!out)
511524
throw std::runtime_error{"Failed to open " + filename.string()};
512-
print_file_header(out, "C++ Standard Library Defect Reports and Accepted Issues");
525+
print_file_header(out, "C++ Standard Library Defect Reports and Accepted Issues", filename.filename().string(),
526+
"Resolved issues in the C++ Standard Library");
513527
print_paper_heading(out, "defect", lwg_issues_xml);
514528
out << lwg_issues_xml.get_intro("defect") << '\n';
515529
out << "<h2 id='History'>Revision History</h2>\n" << lwg_issues_xml.get_revisions(issues, diff_report) << '\n';
@@ -526,7 +540,8 @@ void report_generator::make_closed(std::vector<issue> const & issues, fs::path c
526540
std::ofstream out{filename};
527541
if (!out)
528542
throw std::runtime_error{"Failed to open " + filename.string()};
529-
print_file_header(out, "C++ Standard Library Closed Issues List");
543+
print_file_header(out, "C++ Standard Library Closed Issues List", filename.filename().string(),
544+
"Rejected C++ standard library issues");
530545
print_paper_heading(out, "closed", lwg_issues_xml);
531546
out << lwg_issues_xml.get_intro("closed") << '\n';
532547
out << "<h2 id='History'>Revision History</h2>\n" << lwg_issues_xml.get_revisions(issues, diff_report) << '\n';
@@ -768,7 +783,8 @@ void report_generator::make_sort_by_status_mod_date(std::vector<issue> & issues,
768783
std::ofstream out{filename};
769784
if (!out)
770785
throw std::runtime_error{"Failed to open " + filename.string()};
771-
print_file_header(out, "LWG Index by Status and Date");
786+
print_file_header(out, "LWG Index by Status and Date", filename.filename().string(),
787+
"C++ standard library issues list");
772788

773789
out <<
774790
R"(<h1>C++ Standard Library Issues List (Revision )" << lwg_issues_xml.get_revision() << R"()</h1>
@@ -815,7 +831,8 @@ void report_generator::make_sort_by_section(std::vector<issue>& issues, fs::path
815831
std::ofstream out(filename);
816832
if (!out)
817833
throw std::runtime_error{"Failed to open " + filename.string()};
818-
print_file_header(out, "LWG Index by Section");
834+
print_file_header(out, "LWG Index by Section", filename.filename().string(),
835+
"C++ standard library issues list");
819836

820837
out << "<h1>C++ Standard Library Issues List (Revision " << lwg_issues_xml.get_revision() << ")</h1>\n";
821838
out << "<h1>Index by Section</h1>\n";
@@ -881,11 +898,13 @@ void report_generator::make_individual_issues(std::vector<issue> const & issues,
881898
}
882899

883900
for(auto & iss : issues){
884-
fs::path filename{path / ("issue" + std::to_string(iss.num) + ".html")};
901+
auto num = std::to_string(iss.num);
902+
fs::path filename{path / ("issue" + num + ".html")};
885903
std::ofstream out{filename};
886904
if (!out)
887905
throw std::runtime_error{"Failed to open " + filename.string()};
888-
print_file_header(out, std::string("Issue ") + std::to_string(iss.num) + ": " + prune_title_tags(iss.title));
906+
print_file_header(out, std::string("Issue ") + num + ": " + prune_title_tags(iss.title),
907+
filename.filename().string(), "C++ library issue. Status: " + iss.stat);
889908
print_issue(out, iss, section_db, all_issues, issues_by_status, active_issues, print_issue_type::individual);
890909
print_file_trailer(out);
891910
}

0 commit comments

Comments
 (0)