doc site - #48
Conversation
There was a problem hiding this comment.
Pull request overview
This PR transforms the site into a comprehensive documentation site for "Gutter Press" with a bold British tabloid-inspired design. The changes replace the simple blog template with a feature-rich documentation system including installation guides, feature descriptions, deployment instructions, and styling documentation.
Key changes include:
- Complete redesign of the layout with a red-top tabloid aesthetic featuring masthead, sticky navigation, and footer
- Addition of five comprehensive documentation pages covering getting started, features, content editing, themes, and deployment
- New documentation template with sidebar navigation
- 995-line custom stylesheet implementing the tabloid design system
- Removal of the basic blog template and sample blog post
Reviewed changes
Copilot reviewed 12 out of 12 changed files in this pull request and generated 20 comments.
Show a summary per file
| File | Description |
|---|---|
page.html.erb |
Converted from simple main wrapper to semantic article structure with header and body sections |
layout.html.erb |
Complete redesign adding masthead, navigation bar, footer, external fonts, and inline favicon |
doc.html.erb |
New template for documentation pages with sidebar navigation and content area |
blog.html.erb |
Removed basic blog template (no longer needed) |
themes.doc.md |
New comprehensive guide on customizing styles, CSS variables, typography, and dark mode |
index.page.md |
New homepage with hero section, feature cards, and call-to-action elements |
getting-started.doc.md |
New installation and setup guide with troubleshooting section |
features.doc.md |
New documentation of Gutter Press features including Lexxy editor capabilities |
deployment.doc.md |
New extensive deployment guide covering Kamal, Docker, Heroku, Render, and Fly.io |
content-editing.doc.md |
New content editing guide covering the Lexxy editor interface and keyboard shortcuts |
2026-01-06-hello-world.blog.md |
Removed sample blog post |
styles.css |
New comprehensive stylesheet with tabloid-inspired design system, responsive layouts, and dark mode support |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| <a href="/content-editing" class="nav-link">Content Editing</a> | ||
| <a href="/themes" class="nav-link">Styling</a> | ||
| <a href="/deployment" class="nav-link">Deployment</a> | ||
| <a href="https://github.com/BillyRuffian/gutter_press" class="nav-link">GitHub ↗</a> |
There was a problem hiding this comment.
The external GitHub link uses "↗" to indicate it opens externally, but lacks the rel="noopener noreferrer" attribute for security and performance. External links should include this attribute to prevent the new page from accessing the window.opener object.
| color: var(--color-ink-lighter); | ||
| margin-bottom: var(--space-md); | ||
| padding-bottom: var(--space-xs); | ||
| border-bottom: 1px solid var(--color-rule-light); |
There was a problem hiding this comment.
The CSS references an undefined CSS variable --color-rule-light on line 561 which is used in the border-bottom property but is never defined in the :root declaration. This will cause the border to not display correctly. Consider adding this variable to the :root section or replacing it with an existing color variable like --color-paper-grey.
|
|
||
| .feature { | ||
| padding: var(--space-lg); | ||
| border: 1px solid var(--color-rule-light); |
There was a problem hiding this comment.
The CSS references an undefined CSS variable --color-rule-light on line 610 which is used in the border property but is never defined in the :root declaration. This will cause the border to not display correctly. Consider adding this variable to the :root section or replacing it with an existing color variable.
| <div class="cta-box"> | ||
| <h3>Need more help?</h3> | ||
| <p>Check out the source code or open an issue on GitHub.</p> | ||
| <a href="https://github.com/BillyRuffian/gutter_press" class="button button-primary">View on GitHub →</a> |
There was a problem hiding this comment.
The external GitHub link should include rel="noopener noreferrer" for security when opening in a new window/tab. This prevents the new page from accessing the window.opener object.
| <a href="https://github.com/BillyRuffian/gutter_press" class="button button-primary">View on GitHub →</a> | |
| <a href="https://github.com/BillyRuffian/gutter_press" class="button button-primary" rel="noopener noreferrer">View on GitHub →</a> |
| </aside> | ||
| <div class="doc-content"> | ||
| <header class="doc-header"> | ||
| <h1 class="doc-title"><%= title %></h1> |
There was a problem hiding this comment.
The doc template lacks a mechanism to conditionally display the title. If a page doesn't have a title variable set, this will result in an empty h1 element, which is problematic for SEO and accessibility. Consider adding a conditional check or default value.
| <h1 class="doc-title"><%= title %></h1> | |
| <h1 class="doc-title"><%= (title.to_s.strip.empty? ? "Documentation" : title) %></h1> |
| .doc-nav a.active { | ||
| color: var(--color-ink); | ||
| border-left-color: var(--color-accent); | ||
| background: var(--color-paper-aged); |
There was a problem hiding this comment.
The CSS references an undefined CSS variable --color-paper-aged on line 590 which is used in the background property but is never defined in the :root declaration. This will cause the background to not display correctly. Consider replacing it with --color-paper-grey or another defined color variable.
| background: var(--color-paper-aged); | |
| background: var(--color-paper-grey); |
| <a href="https://github.com/BillyRuffian/gutter_press">Source Code</a> | ||
| <a href="https://github.com/BillyRuffian/gutter_press/issues">Report an Issue</a> |
There was a problem hiding this comment.
External links in the footer should include rel="noopener noreferrer" for security. This prevents the new page from accessing the window.opener object and improves performance.
| <a href="https://github.com/BillyRuffian/gutter_press">Source Code</a> | |
| <a href="https://github.com/BillyRuffian/gutter_press/issues">Report an Issue</a> | |
| <a href="https://github.com/BillyRuffian/gutter_press" target="_blank" rel="noopener noreferrer">Source Code</a> | |
| <a href="https://github.com/BillyRuffian/gutter_press/issues" target="_blank" rel="noopener noreferrer">Report an Issue</a> |
| column-rule: 1px solid var(--color-rule-light); | ||
| } | ||
|
|
||
| .columns-3 { | ||
| column-count: 3; | ||
| column-gap: var(--column-gap); | ||
| column-rule: 1px solid var(--color-rule-light); |
There was a problem hiding this comment.
The CSS references an undefined CSS variable --color-rule-light on lines 638 and 644 which is used in the column-rule property but is never defined in the :root declaration. This will cause the column divider to not display correctly. Consider adding this variable to the :root section or replacing it with an existing color variable.
| <nav class="nav-bar"> | ||
| <div class="nav-container"> | ||
| <a href="/" class="nav-link">Home</a> | ||
| <a href="/getting-started" class="nav-link">Getting Started</a> | ||
| <a href="/features" class="nav-link">Features</a> | ||
| <a href="/content-editing" class="nav-link">Content Editing</a> | ||
| <a href="/themes" class="nav-link">Styling</a> | ||
| <a href="/deployment" class="nav-link">Deployment</a> | ||
| <a href="https://github.com/BillyRuffian/gutter_press" class="nav-link">GitHub ↗</a> | ||
| </div> | ||
| </nav> |
There was a problem hiding this comment.
The removed render 'nav' partial call suggests that navigation was previously modular and is now hardcoded directly in the layout. This reduces modularity and reusability. Consider whether the navigation should remain as a separate partial for easier maintenance.
| <nav class="nav-bar"> | |
| <div class="nav-container"> | |
| <a href="/" class="nav-link">Home</a> | |
| <a href="/getting-started" class="nav-link">Getting Started</a> | |
| <a href="/features" class="nav-link">Features</a> | |
| <a href="/content-editing" class="nav-link">Content Editing</a> | |
| <a href="/themes" class="nav-link">Styling</a> | |
| <a href="/deployment" class="nav-link">Deployment</a> | |
| <a href="https://github.com/BillyRuffian/gutter_press" class="nav-link">GitHub ↗</a> | |
| </div> | |
| </nav> | |
| <%= render 'nav' %> |
| </main> | ||
| <article class="article"> | ||
| <header class="article-header"> | ||
| <h1 class="article-title"><%= title %></h1> |
There was a problem hiding this comment.
The page template lacks a mechanism to conditionally display the title. If a page doesn't have a title variable set, this will result in an empty h1 element, which is problematic for SEO and accessibility. Consider adding a conditional check or default value.
| <h1 class="article-title"><%= title %></h1> | |
| <% if title.to_s.strip != "" %> | |
| <h1 class="article-title"><%= title %></h1> | |
| <% end %> |
No description provided.