Redesign docs nav around Diataxis, add blog, and expand drasi-lib/Drasi Server docs - #271
Conversation
There was a problem hiding this comment.
Pull request overview
This PR restructures the Hugo docs site navigation around Diataxis-style hubs, adds a new Blog section with custom templates, and expands/relocates Drasi Server + drasi-lib documentation (including new “agents” reference content).
Changes:
- Reworked global navigation + homepage/get-started/build-and-configure hubs to better match task-oriented discovery.
- Added a Blog section (content + archetype + list/detail templates) including featured/grid layout and client-side search.
- Expanded Drasi Server and drasi-lib docs with new/how-to/reference pages and updated cross-linking.
Reviewed changes
Copilot reviewed 36 out of 36 changed files in this pull request and generated 5 comments.
Show a summary per file
| File | Description |
|---|---|
| docs/layouts/shortcodes/video.html | Adds a video shortcode for embedding an MP4 from Hugo assets. |
| docs/layouts/partials/navbar.html | Introduces a custom navbar that splits primary vs social links. |
| docs/layouts/partials/navbar-link.html | Adds a shared navbar link renderer with active/external handling. |
| docs/layouts/partials/head-css.html | Updates RTL detection to Hugo’s newer language direction API. |
| docs/layouts/docs/baseof.html | Updates dir= binding to the newer language direction API. |
| docs/layouts/blog/list.html | Implements custom blog list layout (featured post + grid + search). |
| docs/layouts/blog/_td-content.html | Implements custom blog single-post content layout and byline. |
| docs/layouts/baseof.html | Updates dir= binding to the newer language direction API. |
| docs/layouts/_partials/navbar.html | Duplicates navbar partial in an alternate folder (potentially unused). |
| docs/layouts/_partials/navbar-link.html | Duplicates navbar-link partial in an alternate folder (potentially unused). |
| docs/content/reference/source-and-reaction-creation-agents/_index.md | Adds reference page describing custom Copilot agents for plugin creation. |
| docs/content/reference/_index.md | Adds a reference card linking to the new agents page. |
| docs/content/get-started/_index.md | Adds a “choose your path” get-started hub page. |
| docs/content/drasi-server/tutorials/_index.md | Adjusts tutorials section weight to reflect IA changes. |
| docs/content/drasi-server/how-to-guides/using-the-web-ui/_index.md | Adds a new how-to guide for using the Drasi Server Web UI. |
| docs/content/drasi-server/how-to-guides/configuration/configure-sources/_index.md | Adds GitHub link-out for the full list of Sources. |
| docs/content/drasi-server/how-to-guides/configuration/configure-reactions/_index.md | Adds GitHub link-out for the full list of Reactions. |
| docs/content/drasi-server/how-to-guides/_index.md | Adds a card linking to the new “Using the Web UI” how-to. |
| docs/content/drasi-server/getting-started/_index.md | Adds/moves Drasi Server Getting Started tutorial content into new location. |
| docs/content/drasi-server/_index.md | Updates “Get Started” links and mentions the built-in Web UI. |
| docs/content/drasi-lib/reference/sources.md | Updates copy and links to new how-to + agents reference. |
| docs/content/drasi-lib/reference/reactions.md | Updates copy and links to new how-to + agents reference. |
| docs/content/drasi-lib/how-to-guides/creating-custom-sources-and-reactions.md | Adds a new how-to guide covering Source/Reaction trait implementations. |
| docs/content/drasi-lib/how-to-guides/_index.md | Adds a how-to landing page for drasi-lib. |
| docs/content/drasi-lib/_index.md | Updates drasi-lib positioning and adds a how-to section/card. |
| docs/content/drasi-kubernetes/how-to-guides/operations/_index.md | Fixes broken card links by using fully-qualified drasi-kubernetes paths. |
| docs/content/community/_index.md | Expands community page with more contribution resources and cards. |
| docs/content/build-and-configure/_index.md | Adds a task-oriented hub grouping Server + Kubernetes how-tos. |
| docs/content/blog/welcome-to-the-drasi-blog.md | Adds an initial on-site blog post. |
| docs/content/blog/specialized-agents-amplifying-how-you-already-think.md | Adds an external-link blog post entry (link-out). |
| docs/content/blog/_index.md | Adds blog landing page plus “In the News”/coverage cards. |
| docs/content/_index.md | Updates homepage IA, CTA, embeds explainer video, adds “Get involved” strip. |
| docs/config.toml | Updates main menu, blog date format param, and tutorial module mount target. |
| docs/assets/video/drasi-explainer-30s.mp4 | Adds explainer video asset via Git LFS. |
| docs/assets/scss/_styles_project.scss | Adds styling for new navbar layout, blog list, and video embed. |
| docs/archetypes/blog.md | Adds a blog archetype supporting link-out posts via external_url. |
Suppressed comments (2)
docs/content/drasi-server/getting-started/_index.md:399
- This (and several other) PowerShell snippets escape identifier quotes using backslashes ("), which works in bash but not in PowerShell. In PowerShell, escape embedded double quotes by doubling them (""), otherwise the command sent to psql is invalid.
docker exec -it getting-started-postgres psql -U drasi_user -d getting_started -c "INSERT INTO \""Message\"" (\""From\"", \""Message\"") VALUES ('You', 'My first message!');"
docs/layouts/blog/list.html:70
- The grid-card image
alttext is currently{{ .Title }}insidewith $image, where.is the image resource. Use the owning page title (or a dedicated alt param) so the alt text is meaningful.
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
… this path) Co-authored-by: NValsan <15096090+NValsan@users.noreply.github.com>
Remove local getting-started/_index.md that conflicts with module mount
| </div> | ||
|
|
||
| ## Explore Drasi | ||
| {{< video src="video/drasi-explainer-30s.mp4" title="How Drasi works" >}} |
There was a problem hiding this comment.
@NValsan When I built this site locally the video is not loading
- Replace self-hosted video with YouTube embed (wsJD4wP3aN4) on homepage - Add custom youtube shortcode with autoplay, loop, mute, no controls - Enable privacy.youTube.privacyEnhanced (youtube-nocookie.com)
There was a problem hiding this comment.
🟡 Changes recommended
Critical build failures and broken navigation and shortcode behavior remain unresolved.
Get a fresh assessment by requesting another Copilot review.
Review details
Suppressed comments (6)
docs/content/drasi-lib/how-to-guides/creating-custom-sources-and-reactions.md:66
- This block is introduced as a working example, but it references
HashMap,SourceSubscriptionSettings, andResultwithout importing or defining them, so it cannot compile when copied as shown. Add the correct crate imports/type alias or label the block explicitly as pseudocode.
use drasi_lib::{Source, SourceBase, SourceBaseParams, ComponentStatus};
use drasi_lib::context::SourceRuntimeContext;
use drasi_lib::channels::SubscriptionResponse;
use async_trait::async_trait;
docs/content/drasi-lib/how-to-guides/creating-custom-sources-and-reactions.md:122
- The Reaction example has the same compile issue: it uses
HashMapandResultwithout importing or defining them, while the later recovery snippet also introduces additional unimported types. Since the page calls these working examples, add the complete imports or clearly mark the snippets as illustrative.
use drasi_lib::{Reaction, ReactionBase, ReactionBaseParams, ComponentStatus};
use drasi_lib::context::ReactionRuntimeContext;
use async_trait::async_trait;
docs/content/drasi-server/how-to-guides/using-the-web-ui/_index.md:12
- The module mount moves the getting-started content to
/drasi-server/getting-started/, but this new related link still points at the old/drasi-server/tutorials/getting-started/route. It will lead readers to a missing page after the move; update it to the mounted route (and preserve or update the other existing references to the old route as well).
tutorials:
- title: "Getting Started"
url: "/drasi-server/tutorials/getting-started/"
docs/content/drasi-server/how-to-guides/using-the-web-ui/_index.md:35
- The repository's server CLI contract lists
drasi-server runand its supported flags, while UI disabling is represented by theenableUi: falseconfig key instatic/drasi-context.yaml; it does not definedrasi-server --disable-ui. Users following this command will get an unknown-option error.
drasi-server --disable-ui
docs/layouts/_partials/navbar-link.html:12
- Relative menu URLs such as
/get-started/parse with an empty host, whilebaseURL.Hostisdrasi.io; this marks every internal menu link as external and addstarget="_blank". Only compare hosts for absolute URLs.
{{ $isExternal := ne $baseURL.Host (urls.Parse $item.URL).Host -}}
docs/layouts/shortcodes/youtube.html:8
- Named shortcode arguments are strings, so passing
autoplay="false",loop="false",mute="false", orcontrols="false"produces a non-empty string thatif/condtreats as true. The shortcode therefore cannot reliably disable these options; parse the values explicitly before building the query string.
- Files reviewed: 36/36 changed files
- Comments generated: 8
- Review effort level: Lite
| {{ with .Content }}{{ . }}{{ end -}} | ||
| </div> | ||
| {{ end -}} | ||
| {{ end -}} |
Superseded by the YouTube embed shortcode on the homepage.
Site restructure (Diataxis redesign)
config.toml— new menu (Get Started, Build & configure, Blog, GitHub, Discord, YouTube, Bluesky, X);layouts/partials/navbar.html,navbar-link.html,layouts/_partials/navbar.html— custom navbar splitting internal links (next to logo) from social links; sizing/spacing tuned in_styles_project.scsscontent/get-started/(product chooser) andcontent/build-and-configure/(task-grouped how-tos for Server + Kubernetes)content/_index.md— reordered sections, added "Get Involved" strip, embedded explainer videocontent/community/_index.md— expanded with CONTRIBUTING/Code of Conduct/Discord/GitHubcontent/drasi-server/getting-started/(out of Tutorials);tutorials/_index.mdweight adjusteddrasi-kubernetes/how-to-guides/operations/_index.mdlayouts/baseof.html,layouts/docs/baseof.html,layouts/partials/head-css.htmlBlog
content/blog/,archetypes/blog.md,layouts/blog/(custom list/detail templates — featured post + grid + client-side search + link-out posts + "In the News" external coverage cards)assets/video/+layouts/shortcodes/video.htmlfor the homepage explainerdrasi-lib content
drasi-lib/_index.md— Rust-neutral copy rewrite, added How-to Guides sectiondrasi-lib/how-to-guides/(Creating Custom Sources and Reactions guide)drasi-lib/reference/sources.md/reactions.md— added GitHub full-list links, linked to new how-to guide + agents pageReference
content/reference/source-and-reaction-creation-agents/(drasi-core Copilot agents);reference/_index.mdupdated with a card for itDrasi Server
drasi-server/how-to-guides/using-the-web-ui/; linked fromhow-to-guides/_index.mdanddrasi-server/_index.md; GitHub links added toconfigure-sources/configure-reactionsAll changes verified locally with successive
hugo --quietbuilds.