Skip to content

feat: Implement Product Tagging System for Docusaurus Integration #133

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Draft
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

magicalyak
Copy link
Contributor

🏷️ Product Tagging System Implementation

This PR introduces a comprehensive product tagging system that migrates from HTML pill spans to Docusaurus-native frontmatter tags for better SEO, programmatic access, and upstream dochub integration.

🎯 Key Features

Smart Auto-Tagging System

  • 92 files automatically tagged with intelligent categorization
  • Directory-based rules: Administration Console → netbox-cloud, netbox-enterprise → netbox-enterprise
  • Content analysis: Pattern matching for multi-product features
  • Weighted scoring: Ensures accurate product associations

Centralized Tag Management

  • docs/tags.yml with standardized tag definitions and colors
  • Consistent visual design maintained from existing pill system
  • Easy to update and maintain product categories

React Components

  • ProductTags component for automatic tag display
  • DocItem/Layout wrapper for seamless integration
  • Maintains existing visual consistency

Backward Compatibility

  • Designed to work alongside existing HTML pills during transition
  • Phased migration approach documented
  • No breaking changes to existing documentation

📊 Migration Results

Auto-Tagging Summary:

  • Total files processed: 100 markdown files
  • Files already tagged: 9 (discovery docs)
  • Files auto-tagged: 92
  • Categories identified:
    • 21 cloud-only files
    • 6 enterprise-only files
    • 14 cloud + enterprise files
    • 29 all-products files
    • 22 community + enterprise files

🔧 Technical Implementation

Core Files Added:

  • docs/tags.yml - Tag definitions with colors
  • src/theme/ProductTags/ - React components
  • scripts/ - Migration and auto-tagging scripts
  • package.json - NPM dependencies and scripts

Configuration Updates:

  • mkdocs.yml - Tags plugin configuration
  • requirements.txt - Python dependencies

Documentation:

  • PRODUCT_TAGGING_GUIDE.md - Comprehensive user guide
  • DOCHUB_INTEGRATION_REQUIREMENTS.md - Integration specs
  • AUTO_TAGGING_SUMMARY.md - Analysis results

🌐 Dochub Integration Ready

This implementation provides everything needed for upstream dochub integration:

  • Structured metadata instead of HTML parsing
  • API-friendly format for programmatic access
  • SEO optimization with proper document categorization
  • Search enhancement with product filtering capabilities

🧪 Testing

To test locally:

# Install dependencies
npm install

# Preview auto-tagging (without changes)
npm run preview-tags

# Test site build
mkdocs serve

📋 Next Steps

  1. Review auto-tagging results - verify product categorizations
  2. Test local site build - ensure proper rendering
  3. Manual adjustments - fine-tune any edge cases
  4. Coordinate with dochub team - implement integration requirements

🔄 Migration Strategy

Phase 1: Backward compatibility (this PR)
Phase 2: Dochub integration updates
Phase 3: Remove legacy HTML pills

This maintains stability while enabling the new tagging system.


Impact: Improves documentation discoverability, SEO, and enables better integration with the upstream netboxlabs-website-dochub repository.

…eplace HTML pill spans with frontmatter tags for better SEO and dochub integration - Add centralized tag definitions, React components, smart auto-tagging system - Auto-tagged 92 files with intelligent product categorization
@magicalyak magicalyak requested a review from rboucher-me June 17, 2025 11:11
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.

1 participant