Skip to content

feat: Community App Guides section and Paperless NGX placeholder#407

Open
grizzlechips wants to merge 36 commits intounraid:mainfrom
grizzlechips:community-app-guides
Open

feat: Community App Guides section and Paperless NGX placeholder#407
grizzlechips wants to merge 36 commits intounraid:mainfrom
grizzlechips:community-app-guides

Conversation

@grizzlechips
Copy link
Contributor

@grizzlechips grizzlechips commented Feb 13, 2026

Summary

Adds a dedicated Community App Guides section (building on the approach from PR #405) and a placeholder guide for Paperless NGX so the client can preview how guides look in context.

What's included

Community App Guides section

  • Separate docs plugin so guides live in their own section (/guides/) and are clearly separate from core Unraid documentation.
  • Navbar link labeled "Community App Guides" linking to /guides/.
  • Intro page (guides/intro.mdx) describing the section, "Last validated" expectations, and link to the main docs repo for contribution guidelines.
  • Sidebar for the guides section via sidebarsGuides.js.

Paperless NGX dummy page

  • Placeholder guide at guides/paperless-ngx.mdx with a "Last validated" block and short intro, to demonstrate how a real guide will appear in the section.

Summary by CodeRabbit

  • New Features

    • Added a "Community App Guides" nav item linking to a dedicated guides section for community-contributed app documentation.
    • Guides now resolve edit links by locale (defaulting to primary repo for default locale, translation site for others).
  • Documentation

    • Added an introductory guide explaining purpose, contribution instructions, and validation requirements.
    • Added a placeholder guide for Paperless NGX.
  • Chores

    • Registered the guides content section and autogenerated sidebar.
    • Enabled warnings for broken Markdown links.

grizzlechips and others added 30 commits October 14, 2025 16:18
… notification icons

- Expand notification settings documentation with detailed configuration options:
  * Add comprehensive display/behavior settings, notification types, and delivery methods
  * Include step-by-step SMTP configuration with Gmail app password setup
  * Add detailed notification agent setup with icons for 13+ services (Discord, Slack, Telegram, etc.)
- Significantly expand VM setup documentation with new Unraid 7.x features:
  * Add comprehensive VM snapshot management (create, revert, block commit/pull)
  * Include detailed troubleshooting sections and storage considerations
  * Expand GPU passthrough and PCI device binding documentation
- Enhance system administration guides with detailed upgrade/downgrade procedures:
  * Add a comprehensive downgrade process via the Downgrade OS tool
  * Include post-downgrade verification and troubleshooting sections
  * Add warnings about ZFS compatibility and plugin issues
- Add Creative Commons license information to the footer configuration
- Include 20+ notification service icons (Discord, Slack, Telegram, Pushover, etc.)
- Update Docker guide image and other visual assets
- Clarify WebGUI downgrade tool scope in upgrading-unraid.mdx
- Fix broken snapshot link and list formatting in vm-setup.mdx
- Correct Parity 2 technical description (Reed-Solomon Q-parity) in array-configuration.mdx
- Fix compound adjective hyphenation (XFS‑formatted)
- Remove redundant wording and incorrect "Sync" button reference in rebuild steps
- Standardize formatting and cross-references in tailscale.mdx
Correct inaccurate "Memory dump" checkbox description - it's not preselected by default. Replace alarmist "permanent crash state" language with accurate explanation of memory-backed vs disk-only snapshots and their trade-offs.
- Fix inconsistent vDisk storage paths in VM conversion docs (use /mnt/user/ instead of /mnt/cache/)
- Correct IDE vs SATA bus guidance to change both bus and dev attributes
- Replace Force stop recommendation with safer Stop/normal shutdown guidance
- Organize notification agent icons in dedicated static directory structure
- Fix incorrect rebuild instruction (change "Sync" to "Start" button guidance)
Address critical feedback about content hidden behind tabbed/collapsible elements by reorganizing content as inline sections while maintaining clean layouts.

**FAQ & Licensing FAQ:**
- Improve anchor linking with heading structure (unique shareable links without cluttering TOC)
- Flatten all questions for immediate accessibility
- Verify all anchors work correctly

**Array Configuration:**
- Split monolithic 1,160+ line page into 5 focused pages: Overview, Adding disks, Replacing disks, Removing disks, Health & maintenance
- Flatten content from tabs/expandables to inline sections
- Retain version-specific tabs only
- Update links and redirects for new structure

**File Systems:**
- Add Unraid 7.2 filesystem content (EXT4, NTFS, exFAT)
- Add filesystem comparison table at top of page
- Remove tab UI for filesystem introductions
- Retain CLI-specific tabs for file system checks/repairs
- Consolidate redundant partial files (btrfs/xfs/zfs intro, balance/scrub partials)
- Add cross-reference link to ZFS storage page

**Shares:**
- Convert configurable option tabs to inline sections with descriptive headers
- Move "Transferring files from network share" to CLI page (per feedback)
- Retain version-specific tabs for 6.12+ vs 6.11 differences
- Update links for new content location

**Cache Pools:**
- Remove tab UI, convert to inline sections
- Delete "Backing up cache pool" section (redundant with move operations, per feedback)
- Retain version-specific guidance as inline notes
- Improve content flow with clear section headers

**Unclean Shutdowns:**
- Flatten tabbed VM configuration to inline sections
- Expand Windows VM configuration with detailed step-by-step instructions
- Add comprehensive timeout configuration tables
- Enhance shutdown sequence explanations

**Additional improvements:**
- Improve CLI documentation with network file transfer section
- Enhance VM setup documentation accessibility
- Update Apple Time Machine style/formatting
- Add ZFS storage cross-references
- Apply CodeRabbit configuration file improvements
- Reduce excessive bold text across pages for better visual hierarchy (maintain content substance)
- Changed import path for sidebar sorting utility from `sitebar-semver-sort.js` to `sidebar-semver-sort.js`.
- Removed outdated `sitebar-semver-sort` TypeScript definition and JavaScript implementation.
- Updated various documentation files for consistency, including fixing minor grammatical issues and improving formatting for better readability.
- Adjusted links in the Docusaurus configuration to point to the new overview page for managing storage arrays.
- Changed the maximum heading level for the table of contents from 2 to 3 to improve navigation.
- Removed the outdated index section to streamline the FAQ content and enhance readability.
…bility

- Changed table of contents maximum heading level from 2 to 3 for better organization.
- Removed outdated index sections from the FAQ to streamline content and enhance user experience.
- Improved overall clarity and accessibility of the FAQ and Licensing FAQ sections.
- Removed outdated redirect entries in docusaurus.config.ts for clarity.
- Enhanced API documentation with consistent formatting and improved readability across multiple files.
- Updated CLI and API key management guides to reflect best practices and streamline user experience.
- Improved overall structure and accessibility of various documentation sections, including OIDC provider setup and array management.
- Minor editorial fixes and adjustments to ensure consistency in terminology and formatting.
- Updated redirect paths in docusaurus.config.ts to point to the new overview page for array management.
- Improved API documentation formatting and consistency across multiple files.
- Adjusted image paths in ZFS storage documentation to reference the correct assets folder.
- Added markdown linting comments for better formatting in various Docker container management guides.
- Removed outdated images related to ZFS storage to clean up the repository.
- Adjusted image paths in the ZFS storage documentation across multiple languages to reference the correct assets folder.
- Ensured consistency in image references for better accessibility and organization of documentation.
- Corrected formatting of the eMMC support section in the release notes.
- Ensured consistent use of backslashes in configuration options for clarity.
- Changed the tagline in docusaurus.config.ts for clarity.
- Updated favicon path to use .ico format.
- Ensured consistent use of backslashes in release notes for package versions.
- Standardized section headings for consistency across various settings pages.
- Added detailed instructions for WiFi setup, including initial requirements and limitations.
- Enhanced RAIDZ expansion documentation with step-by-step guidance and important notes.
- Clarified BTRFS and ZFS pool management instructions, including adding disks and changing RAID levels.
- Improved formatting and readability throughout the documentation for better user experience.
- Replaced outdated image reference in the ZFS storage documentation with a new image for improved clarity and accuracy.
- Updated Node.js version in .nvmrc to 24.11.1 for compatibility.
- Added 'i18n/' to .remarkignore to exclude internationalization files from linting.
- Integrated remarkComment plugin into .remarkrc.mjs for enhanced comment handling.
- Adjusted docusaurus.config.ts to include markdown hooks for broken link warnings.
- Updated package dependencies to latest versions for improved performance and security.
- Fixed sidebar sorting logic to sort items in descending order.
- Updated GitHub Actions workflows to use the latest setup-node action and improved error handling for linting.
- Enhanced various documentation files for clarity, including API usage, licensing FAQs, and troubleshooting guides.
- Removed outdated references and improved formatting across multiple language files.
…mentation

- Moved markdown hooks under customFields in docusaurus.config.ts for better organization.
- Revised the licensing FAQ to clarify installation methods for license key files, including detailed steps for WebGUI, network share, and USB flash drive installations, enhancing user guidance and accessibility.
- Moved markdown hooks directly under the markdown key for improved clarity and organization, removing the unnecessary customFields wrapper.
grizzlechips and others added 4 commits January 22, 2026 10:40
- Updated the markdown configuration to include hooks for handling broken markdown links, enhancing the clarity and functionality of the setup.
- Add guides plugin and navbar link (Community App Guides)
- Improve guides intro content and link to docs repo
- Add dummy page for Paperless NGX for client preview

Co-authored-by: Cursor <cursoragent@cursor.com>
@coderabbitai
Copy link
Contributor

coderabbitai bot commented Feb 13, 2026

📝 Walkthrough

Walkthrough

Adds a new "Community App Guides" section: a guides plugin and sidebar, two guide pages, a locale-aware createEditUrl helper used for edit links, a navbar entry, and enables onBrokenMarkdownLinks: "warn".

Changes

Cohort / File(s) Summary
Config & Plugin
docusaurus.config.ts
Added createEditUrl(locale, versionDocsDirPath, docPath) helper; replaced inline editUrl references in docs preset with createEditUrl; registered a new @docusaurus/plugin-content-docs plugin instance for id: "guides" (path, routeBasePath, sidebarPath, editUrl). Also added navbar item linking to /guides/ and set onBrokenMarkdownLinks: "warn".
Guide pages
guides/intro.mdx, guides/paperless-ngx.mdx
Added introductory guides content: intro.mdx with contribution/validation instructions and frontmatter; paperless-ngx.mdx placeholder guide with frontmatter and "Last validated" placeholder.
Sidebar
sidebarsGuides.js
New sidebar config exporting a SidebarsConfig with an autogenerated guidesSidebar that sources items from the guides directory.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

Poem

🐰 A new path through docs where guides will grow,
Edit links that know where locales go.
Navbar set, sidebars in place,
Rabbity cheers for the docs' new space! ✨📚

🚥 Pre-merge checks | ✅ 1 | ❌ 2

❌ Failed checks (1 warning, 1 inconclusive)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
Description check ❓ Inconclusive The description comprehensively covers what was added (guides section, navbar link, intro page, sidebar, placeholder guide) but does not address the PR template's documentation checklist items. Complete the PR template checklist by confirming: internal links use relative paths, file names are lowercase with dashes, assets are in subfolders, no duplicate PRs exist, and build succeeds.
✅ Passed checks (1 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly and concisely summarizes the main change: adding a Community App Guides section with a Paperless NGX placeholder guide.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
  • 📝 Generate docstrings (stacked PR)
  • 📝 Generate docstrings (commit on current branch)
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@github-actions
Copy link
Contributor

PR Preview Action v1.8.1

QR code for preview link

🚀 View preview at
https://unraid.github.io/docs/pr-preview/pr-407/

Built to branch gh-pages at 2026-02-13 00:50 UTC.
Preview will be ready when the GitHub Pages deployment is complete.

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🧹 Nitpick comments (1)
docusaurus.config.ts (1)

269-278: Consider adding remarkAutoGlossary to the guides plugin

The guides plugin omits all remarkPlugins, so glossary terms in guide content won't be auto-linked, breaking visual consistency with the main docs. If that's intentional (e.g., community guides skip strict linting), it's worth documenting. Otherwise, adding at minimum remarkAutoGlossary keeps glossary behaviour uniform:

♻️ Proposed addition
     [
       "@docusaurus/plugin-content-docs",
       {
         id: "guides",
         path: "guides",
         routeBasePath: "guides",
         sidebarPath: "./sidebarsGuides.js",
         editUrl: createEditUrl,
+        remarkPlugins: [
+          [remarkAutoGlossary, { yamlFile: "glossary.yaml" }],
+        ],
       },
     ],
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@docusaurus.config.ts` around lines 269 - 278, The guides docs plugin block
(the array with id "guides" in docusaurus.config.ts) currently omits
remarkPlugins so glossary terms won't be auto-linked; either add
remarkAutoGlossary into that plugin's remarkPlugins array (e.g., inside the same
config object where id: "guides", path: "guides", routeBasePath: "guides",
sidebarPath, editUrl are defined) to enable consistent auto-linking with main
docs, or add a short comment/documentation on the plugin config explaining the
omission is intentional.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@docusaurus.config.ts`:
- Around line 32-46: The createEditUrl function currently returns string; change
its return type to string | undefined and update its logic so that when locale
!== DEFAULT_LOCALE and versionDocsDirPath === "guides" (or otherwise identifying
guides pages) it returns undefined to suppress the edit link for
non-default-locale guides; keep existing behavior for other docs (return
translate URL for non-default locale when not guides, and the GitHub edit URL
using branch/process.env.GITHUB_BRANCH, versionDocsDirPath, docPath for default
locale).

---

Nitpick comments:
In `@docusaurus.config.ts`:
- Around line 269-278: The guides docs plugin block (the array with id "guides"
in docusaurus.config.ts) currently omits remarkPlugins so glossary terms won't
be auto-linked; either add remarkAutoGlossary into that plugin's remarkPlugins
array (e.g., inside the same config object where id: "guides", path: "guides",
routeBasePath: "guides", sidebarPath, editUrl are defined) to enable consistent
auto-linking with main docs, or add a short comment/documentation on the plugin
config explaining the omission is intentional.

ℹ️ Review info

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro

Disabled knowledge base sources:

  • Linear integration is disabled

You can enable these sources in your CodeRabbit configuration.

📥 Commits

Reviewing files that changed from the base of the PR and between 43033cf and 227f856.

📒 Files selected for processing (1)
  • docusaurus.config.ts

Comment on lines +32 to +46
function createEditUrl({
locale,
versionDocsDirPath,
docPath,
}: {
locale: string;
versionDocsDirPath: string;
docPath: string;
}): string {
if (locale !== DEFAULT_LOCALE) {
return `https://translate.unraid.net/unraid-docs/${locale}`;
}
const branch = process.env.GITHUB_BRANCH || "main";
return `https://github.com/unraid/docs/edit/${branch}/${versionDocsDirPath}/${docPath}`;
}
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

🧩 Analysis chain

🏁 Script executed:

# First, let's examine the docusaurus.config.ts file to see the actual code
head -350 docusaurus.config.ts | tail -320

Repository: unraid/docs

Length of output: 10987


🏁 Script executed:

# Let's also check the exact content around the lines mentioned
cat -n docusaurus.config.ts | sed -n '30,50p'

Repository: unraid/docs

Length of output: 720


🏁 Script executed:

# Check the guides plugin definition around line 269-278
cat -n docusaurus.config.ts | sed -n '260,290p'

Repository: unraid/docs

Length of output: 1107


🏁 Script executed:

# Let's search for where createEditUrl is used
rg "createEditUrl" docusaurus.config.ts -n

Repository: unraid/docs

Length of output: 155


🌐 Web query:

Docusaurus v3.9.2 EditUrlFunction type signature return value

💡 Result:

In Docusaurus v3.9.2, EditUrlFunction is typed to return either a string edit URL or undefined (to disable the edit link for that specific doc):

type EditUrlFunction = (params: {
  version: string;
  versionDocsDirPath: string;
  docPath: string;
  permalink: string;
  locale: string;
}) => string | undefined;

[1]


createEditUrl return type prevents suppressing edit links for guides in non-default locales

Docusaurus v3.9.2's EditUrlFunction signature returns string | undefined — returning undefined suppresses the "Edit this page" button entirely. The current return type string prevents this.

Since createEditUrl is shared by both the main docs preset and the guides plugin, every non-default-locale page in /guides/ will show an edit link pointing to https://translate.unraid.net/unraid-docs/${locale} — a page unrelated to community guides if they aren't on the translation platform.

Change the return type to string | undefined and return undefined for the guides plugin in non-default locales (or conditionally based on versionDocsDirPath === "guides").

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@docusaurus.config.ts` around lines 32 - 46, The createEditUrl function
currently returns string; change its return type to string | undefined and
update its logic so that when locale !== DEFAULT_LOCALE and versionDocsDirPath
=== "guides" (or otherwise identifying guides pages) it returns undefined to
suppress the edit link for non-default-locale guides; keep existing behavior for
other docs (return translate URL for non-default locale when not guides, and the
GitHub edit URL using branch/process.env.GITHUB_BRANCH, versionDocsDirPath,
docPath for default locale).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants