You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@grails.apache.org by "jamesfredley (via GitHub)" <gi...@apache.org> on 2026/04/30 22:10:32 UTC
Re: [PR] Vendor common AsciiDoc snippets + theme resources from grails-guides-template (refs #354) [grails-static-website]
jamesfredley commented on code in PR #444:
URL: https://github.com/apache/grails-static-website/pull/444#discussion_r3171114708
##########
guides/resources/style/layout.html:
##########
@@ -0,0 +1,185 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta name='google-site-verification' content='REYQ1_I6HGowAE7LOLVqfQbnKaB4IfFpMlGzMbJj55Q' />
+ <meta name='viewport' content='width=device-width, initial-scale=1' />
+ <link rel='icon' href='/images/favicon.ico' />
+ <link rel='mask-icon' href='//images/grails-pinned-icon.svg' color='feb672' />
Review Comment:
This is a real upstream defect, but this PR vendors `grails-guides/grails-guides-template` bit-for-bit on purpose: the renderer parity test (next phase) needs identical inputs against the legacy reference build. Patching defects here would diverge the vendored copy from the source pin and force a fork in our drift accounting.
Disposition: tracked as a follow-up. After parity is verified, a separate commit either (a) fixes these defects locally, or (b) files them upstream and re-vendors at a newer source SHA. Either way the fix is in scope, just not in *this* PR. Resolving as 'understood, deferred'.
##########
guides/resources/style/layout.html:
##########
@@ -0,0 +1,185 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta name='google-site-verification' content='REYQ1_I6HGowAE7LOLVqfQbnKaB4IfFpMlGzMbJj55Q' />
+ <meta name='viewport' content='width=device-width, initial-scale=1' />
+ <link rel='icon' href='/images/favicon.ico' />
+ <link rel='mask-icon' href='//images/grails-pinned-icon.svg' color='feb672' />
+ <meta charset='UTF-8' />
+ <title>${title} | Grails Guides | Grails Framework</title>
+ <meta name='description' content='${title}. ${subtitle}' />
+ <link rel='stylesheet' href='${resourcesPath}/css/main.css' />
+ <link rel='stylesheet' href='${resourcesPath}/css/screen.css' />
+ <script src='https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/1.7.1/clipboard.min.js'></script>
+ </head>
+ <body class='guide'><header class='mainheader'>
+ <div class='content'>
+ <a href='https://grails.org/index.html'><img class='grailslogo' src='/images/grails_logo.svg' alt='Grails Logo' /></a>
+ <a href='javascript:show('topmenus', 'showNavigationLink')' id='showNavigationLink' class='mobile align-center'>Show Navigation</a>
+ <div id='topmenus'>
+ <nav class='secondarymenu' id='secondarymenu'><ul>
+ <li>
+ <a href='https://grails.org/learning.html'>Learning</a>
+ </li>
+ <li>
+ <a href='https://grails.org/community.html'>Community</a>
+ </li>
+ <li>
+ <a href='https://grails.org/search.html'>Search</a>
+ </li>
+</ul></nav>
+ <nav class='mainmenu' id='mainmenu'><ul>
+ <li>
+ <a href='https://grails.org/documentation.html'>Documentation</a>
+ </li>
+ <li>
+ <a href='https://grails.org/download.html'>Download</a>
+ </li>
+ <li>
+ <a href='https://plugins.grails.org'>Plugins</a>
+ </li>
+ <li>
+ <a href='https://guides.grails.org/index.html'>Guides</a>
+ </li>
+ <li>
+ <a href='https://grails.org/faq.html'>FAQ</a>
+ </li>
+ <li>
+ <a href='https://grails.org/support.html'>Support</a>
+ </li>
+</ul></nav>
+ </div>
+ </div>
+</header><div class='fullwidth'><article class="guide">
+ <aside>
+ <a href="https://travis-ci.org/${githubSlug}"><img src="https://travis-ci.org/${githubSlug}.svg?branch=master"></a>
+
+ <button type="button" class="btn btn-large" onclick="window.location.href="https://github.com/${githubSlug}""><img height="15" src="../img/github_white.svg" alt="Github"/><span> Get the Code</span></button>
+
+
+ <ul class="githublinks">
+ <li><button type="button" class="btn btn-default" href="#" onclick="document.getElementById('github-url').value='git@github.com:${githubSlug}.git'" class="codeButton">SSH</button></li>
+ <li><button type="button" class="btn btn-default" onclick="document.getElementById('github-url').value='https://github.com/${githubSlug}.git'" class="codeButton">HTTPS</button></li>
+ </ul>
+ <div class="input-group">
+ <!-- Target -->
+ <input id="github-url" value="git@github.com:${githubSlug}.git" type="text" />
+ <!-- Trigger -->
+ <button type="button" class="clippy btn btn-default" type="button" data-clipboard-target="#github-url">
+ <img width="13" src="../img/clippy.svg" alt="Copy to clipboard">
Review Comment:
This is a real upstream defect, but this PR vendors `grails-guides/grails-guides-template` bit-for-bit on purpose: the renderer parity test (next phase) needs identical inputs against the legacy reference build. Patching defects here would diverge the vendored copy from the source pin and force a fork in our drift accounting.
Disposition: tracked as a follow-up. After parity is verified, a separate commit either (a) fixes these defects locally, or (b) files them upstream and re-vendors at a newer source SHA. Either way the fix is in scope, just not in *this* PR. Resolving as 'understood, deferred'.
##########
guides/resources/style/guideItem.html:
##########
@@ -0,0 +1,137 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
+<head>
+ <title>${sectionNumber} ${title.encodeAsHtml()}</title>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
+ <link rel="stylesheet" href="${resourcesPath}/css/main.css" type="text/css" media="screen, print" title="Style" charset="utf-8"/>
+ <link rel="stylesheet" href="${resourcesPath}/css/guide.css" type="text/css" media="screen, print" title="Style" charset="utf-8" />
+ <link rel="stylesheet" href="${resourcesPath}/css/pdf.css" type="text/css" media="print" title="PDF" charset="utf-8"/>
Review Comment:
This is a real upstream defect, but this PR vendors `grails-guides/grails-guides-template` bit-for-bit on purpose: the renderer parity test (next phase) needs identical inputs against the legacy reference build. Patching defects here would diverge the vendored copy from the source pin and force a fork in our drift accounting.
Disposition: tracked as a follow-up. After parity is verified, a separate commit either (a) fixes these defects locally, or (b) files them upstream and re-vendors at a newer source SHA. Either way the fix is in scope, just not in *this* PR. Resolving as 'understood, deferred'.
##########
guides/resources/style/guideItem.html:
##########
@@ -0,0 +1,137 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
+<head>
+ <title>${sectionNumber} ${title.encodeAsHtml()}</title>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
+ <link rel="stylesheet" href="${resourcesPath}/css/main.css" type="text/css" media="screen, print" title="Style" charset="utf-8"/>
+ <link rel="stylesheet" href="${resourcesPath}/css/guide.css" type="text/css" media="screen, print" title="Style" charset="utf-8" />
+ <link rel="stylesheet" href="${resourcesPath}/css/pdf.css" type="text/css" media="print" title="PDF" charset="utf-8"/>
+ <script type="text/javascript">
+function addJsClass() {
+ var classes = document.body.className.split(" ");
+ classes.push("js");
+ document.body.className = classes.join(" ");
+}
+ </script>
+</head>
+
+<body class="body" onload="addJsClass();">
+<div id="navigation">
+ <div class="navTitle">
+ <% if (logo) { %>
+ <span id="logo">${logo}</span>
+ <% } %>
+ Grails Framework Guide
+ </div>
+ <div class="navLinks">
+ <ul>
+ <li>
+ <div id="nav-summary" onmouseover="toggleNavSummary(false)" onmouseout="toggleNavSummary(true)">
+ <a href="${path}/guide/index.html" class="button">Table of contents</a>
+
+ <div id="nav-summary-childs" style="display:none;">
Review Comment:
This is a real upstream defect, but this PR vendors `grails-guides/grails-guides-template` bit-for-bit on purpose: the renderer parity test (next phase) needs identical inputs against the legacy reference build. Patching defects here would diverge the vendored copy from the source pin and force a fork in our drift accounting.
Disposition: tracked as a follow-up. After parity is verified, a separate commit either (a) fixes these defects locally, or (b) files them upstream and re-vendors at a newer source SHA. Either way the fix is in scope, just not in *this* PR. Resolving as 'understood, deferred'.
##########
guides/resources/style/guideItem.html:
##########
@@ -0,0 +1,137 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
+<head>
+ <title>${sectionNumber} ${title.encodeAsHtml()}</title>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
+ <link rel="stylesheet" href="${resourcesPath}/css/main.css" type="text/css" media="screen, print" title="Style" charset="utf-8"/>
+ <link rel="stylesheet" href="${resourcesPath}/css/guide.css" type="text/css" media="screen, print" title="Style" charset="utf-8" />
+ <link rel="stylesheet" href="${resourcesPath}/css/pdf.css" type="text/css" media="print" title="PDF" charset="utf-8"/>
+ <script type="text/javascript">
+function addJsClass() {
+ var classes = document.body.className.split(" ");
+ classes.push("js");
+ document.body.className = classes.join(" ");
+}
+ </script>
+</head>
+
+<body class="body" onload="addJsClass();">
+<div id="navigation">
+ <div class="navTitle">
+ <% if (logo) { %>
+ <span id="logo">${logo}</span>
+ <% } %>
+ Grails Framework Guide
+ </div>
+ <div class="navLinks">
+ <ul>
+ <li>
+ <div id="nav-summary" onmouseover="toggleNavSummary(false)" onmouseout="toggleNavSummary(true)">
+ <a href="${path}/guide/index.html" class="button">Table of contents</a>
+
+ <div id="nav-summary-childs" style="display:none;">
+ <% toc.children.eachWithIndex { ch, i -> %>
+ <div class="toc-item" style="margin-left:0"><a href="${path}/guide/${ch.name.encodeAsUrlPath().encodeAsHtml()}.html"><strong>${i + 1}</strong><span>${ch.title.encodeAsHtml()}</span></a>
+ </div>
+ <% } %>
+ </div>
+ </div>
+ </li>
+ </ul>
+ </div>
+
+
+</div>
+
+<table id="colset" border="0" cellpadding="0" cellspacing="0">
+ <tr>
+ <td id="col1">
+ <div id="main" class="corner-all">
+
+ <% if(prev){ %>
+ <div class="toc-item prev-left"><a href="${path}/guide/${prev?.name?.encodeAsUrlPath()?.encodeAsHtml()}.html"><< <strong>${chapterNumber - 1}</strong><span>${prev?.title?.encodeAsHtml()}</span></a></div>
+ <% } %>
+
+ <% if(next){ %>
+ <div class="toc-item next-right"><a href="${path}/guide/${next?.name?.encodeAsUrlPath()?.encodeAsHtml()}.html"><strong>${chapterNumber + 1}</strong><span>${next?.title?.encodeAsHtml()}</span> >></a></div>
+ <% } %>
+
+
+ <% if (sectionToc) { %>
+ <div id="table-of-content">
+ <h2>Table of Contents</h2>
+ <%
+ sectionWriter = { lvl, section, prefix ->
+ %>
+ <div class="toc-item" style="margin-left:${lvl * 10}px"><a href="#${ section.name.encodeAsUrlFragment().encodeAsHtml() }"><strong>$prefix</strong><span>${section.title?.encodeAsHtml()}</span></a>
+ </div>
+ <%
+ lvl++
+ section.children.eachWithIndex { s, j ->
+ sectionWriter.call(lvl, s, prefix + '.' + (j + 1))
+ }
+ }
+
+ sectionToc.eachWithIndex { s, i ->
+ sectionWriter.call(0, s, chapterNumber + '.' + (i + 1))
+ }
+ %>
+ </div>
+ <% } %>
+
+ ${content}
+
+ <div style="clear:both;margin-top:15px;"></div>
+ <% if(prev){ %>
+ <div class="toc-item prev-left"><a href="${path}/guide/${prev?.name?.encodeAsUrlPath()?.encodeAsHtml()}.html"><< <strong>${chapterNumber - 1}</strong><span>${prev?.title?.encodeAsHtml()}</span></a></div>
+ <% }
+ if(next){ %>
+ <div class="toc-item next-right"><a href="${path}/guide/${next?.name?.encodeAsUrlPath()?.encodeAsHtml()}.html"><strong>${chapterNumber + 1}</strong><span>${next?.title?.encodeAsHtml()}</span> >></a></div>
+ <% } %>
+ <div style="clear:both"></div>
+ </div>
+ </td>
+ <td id="col2">
+ <div class="local clearfix">
+ <div class="local-title" style="text-align: right"><a href="https://travis-ci.org/${githubSlug}"><img src="https://travis-ci.org/${githubSlug}.svg?branch=master" /></a></div>
+ <div class="local-title">
+ <a href="https://github.com/${githubSlug}">
+ <svg height="35" class="octicon octicon-mark-github" viewBox="0 0 16 16" version="1.1" width="35" aria-hidden="true"><path fill-rule="evenodd" d="M8 0C3.58 0 0 3.58 0 8c0 3.54 2.29 6.53 5.47 7.59.4.07.55-.17.55-.38 0-.19-.01-.82-.01-1.49-2.01.37-2.53-.49-2.69-.94-.09-.23-.48-.94-.82-1.13-.28-.15-.68-.52-.01-.53.63-.01 1.08.58 1.23.82.72 1.21 1.87.87 2.33.66.07-.52.28-.87.51-1.07-1.78-.2-3.64-.89-3.64-3.95 0-.87.31-1.59.82-2.15-.08-.2-.36-1.02.08-2.12 0 0 .67-.21 2.2.82.64-.18 1.32-.27 2-.27.68 0 1.36.09 2 .27 1.53-1.04 2.2-.82 2.2-.82.44 1.1.16 1.92.08 2.12.51.56.82 1.27.82 2.15 0 3.07-1.87 3.75-3.65 3.95.29.25.54.73.54 1.48 0 1.07-.01 1.93-.01 2.2 0 .21.15.46.55.38A8.013 8.013 0 0 0 16 8c0-4.42-3.58-8-8-8z"/></svg></a> Get the Code
+ </div>
+ <div class="menu">
+ <div class="input-group">
+ <button href="#" onclick="document.getElementById('github-url').value='git@github.com:${githubSlug}.git'" class="codeButton">SSH</button>
+ <button onclick="document.getElementById('github-url').value='https://github.com/${githubSlug}.git'" class="codeButton">HTTPS</button>
+ <button onclick="document.getElementById('github-url').value='https://github.com/${githubSlug}'" class="codeButton">Subversion</button>
+ </div>
+
+ <div class="input-group">
+ <!-- Target -->
+ <input id="github-url" value="git@github.com:${githubSlug}.git" type="text" />
+
+ <!-- Trigger -->
+ <button class="clipbtn" type="button" data-clipboard-target="#github-url">
+
+ <img width="13" src="../img/clippy.svg" alt="Copy to clipboard">
+ </button>
+
+ </div>
+ <div class="input-group">
+ <a href="https://github.com/${githubSlug}/archive/master.zip" class="downloadButton">Download ZIP</a>
+ </div>
+ </div>
+ </div>
+ </td>
+ </tr>
+</table>
+
+<div id="footer">
+ ${copyright}
+ ${footer}
+</div>
+
+<script type="text/javascript" src="${resourcesPath}/js/docs.js"></script>
+
Review Comment:
This is a real upstream defect, but this PR vendors `grails-guides/grails-guides-template` bit-for-bit on purpose: the renderer parity test (next phase) needs identical inputs against the legacy reference build. Patching defects here would diverge the vendored copy from the source pin and force a fork in our drift accounting.
Disposition: tracked as a follow-up. After parity is verified, a separate commit either (a) fixes these defects locally, or (b) files them upstream and re-vendors at a newer source SHA. Either way the fix is in scope, just not in *this* PR. Resolving as 'understood, deferred'.
##########
guides/resources/style/layout.html:
##########
@@ -0,0 +1,185 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta name='google-site-verification' content='REYQ1_I6HGowAE7LOLVqfQbnKaB4IfFpMlGzMbJj55Q' />
+ <meta name='viewport' content='width=device-width, initial-scale=1' />
+ <link rel='icon' href='/images/favicon.ico' />
+ <link rel='mask-icon' href='//images/grails-pinned-icon.svg' color='feb672' />
+ <meta charset='UTF-8' />
+ <title>${title} | Grails Guides | Grails Framework</title>
+ <meta name='description' content='${title}. ${subtitle}' />
+ <link rel='stylesheet' href='${resourcesPath}/css/main.css' />
+ <link rel='stylesheet' href='${resourcesPath}/css/screen.css' />
Review Comment:
This is a real upstream defect, but this PR vendors `grails-guides/grails-guides-template` bit-for-bit on purpose: the renderer parity test (next phase) needs identical inputs against the legacy reference build. Patching defects here would diverge the vendored copy from the source pin and force a fork in our drift accounting.
Disposition: tracked as a follow-up. After parity is verified, a separate commit either (a) fixes these defects locally, or (b) files them upstream and re-vendors at a newer source SHA. Either way the fix is in scope, just not in *this* PR. Resolving as 'understood, deferred'.
##########
guides/resources/style/layout.html:
##########
@@ -0,0 +1,185 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta name='google-site-verification' content='REYQ1_I6HGowAE7LOLVqfQbnKaB4IfFpMlGzMbJj55Q' />
+ <meta name='viewport' content='width=device-width, initial-scale=1' />
+ <link rel='icon' href='/images/favicon.ico' />
+ <link rel='mask-icon' href='//images/grails-pinned-icon.svg' color='feb672' />
+ <meta charset='UTF-8' />
+ <title>${title} | Grails Guides | Grails Framework</title>
+ <meta name='description' content='${title}. ${subtitle}' />
+ <link rel='stylesheet' href='${resourcesPath}/css/main.css' />
+ <link rel='stylesheet' href='${resourcesPath}/css/screen.css' />
+ <script src='https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/1.7.1/clipboard.min.js'></script>
+ </head>
+ <body class='guide'><header class='mainheader'>
+ <div class='content'>
+ <a href='https://grails.org/index.html'><img class='grailslogo' src='/images/grails_logo.svg' alt='Grails Logo' /></a>
+ <a href='javascript:show('topmenus', 'showNavigationLink')' id='showNavigationLink' class='mobile align-center'>Show Navigation</a>
+ <div id='topmenus'>
+ <nav class='secondarymenu' id='secondarymenu'><ul>
+ <li>
+ <a href='https://grails.org/learning.html'>Learning</a>
+ </li>
+ <li>
+ <a href='https://grails.org/community.html'>Community</a>
+ </li>
+ <li>
+ <a href='https://grails.org/search.html'>Search</a>
+ </li>
+</ul></nav>
+ <nav class='mainmenu' id='mainmenu'><ul>
+ <li>
+ <a href='https://grails.org/documentation.html'>Documentation</a>
+ </li>
+ <li>
+ <a href='https://grails.org/download.html'>Download</a>
+ </li>
+ <li>
+ <a href='https://plugins.grails.org'>Plugins</a>
+ </li>
+ <li>
+ <a href='https://guides.grails.org/index.html'>Guides</a>
+ </li>
+ <li>
+ <a href='https://grails.org/faq.html'>FAQ</a>
+ </li>
+ <li>
+ <a href='https://grails.org/support.html'>Support</a>
+ </li>
+</ul></nav>
+ </div>
+ </div>
+</header><div class='fullwidth'><article class="guide">
+ <aside>
+ <a href="https://travis-ci.org/${githubSlug}"><img src="https://travis-ci.org/${githubSlug}.svg?branch=master"></a>
+
+ <button type="button" class="btn btn-large" onclick="window.location.href="https://github.com/${githubSlug}""><img height="15" src="../img/github_white.svg" alt="Github"/><span> Get the Code</span></button>
+
+
+ <ul class="githublinks">
+ <li><button type="button" class="btn btn-default" href="#" onclick="document.getElementById('github-url').value='git@github.com:${githubSlug}.git'" class="codeButton">SSH</button></li>
+ <li><button type="button" class="btn btn-default" onclick="document.getElementById('github-url').value='https://github.com/${githubSlug}.git'" class="codeButton">HTTPS</button></li>
+ </ul>
Review Comment:
This is a real upstream defect, but this PR vendors `grails-guides/grails-guides-template` bit-for-bit on purpose: the renderer parity test (next phase) needs identical inputs against the legacy reference build. Patching defects here would diverge the vendored copy from the source pin and force a fork in our drift accounting.
Disposition: tracked as a follow-up. After parity is verified, a separate commit either (a) fixes these defects locally, or (b) files them upstream and re-vendors at a newer source SHA. Either way the fix is in scope, just not in *this* PR. Resolving as 'understood, deferred'.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: commits-unsubscribe@grails.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org