Publishing Quick Reference
🚀 Most Common Tasks
Add New Training Content
# 1. Create feature branch
git checkout -b feature/add-training-content
# 2. Create file in appropriate directory
# File: docs/training/seo/new-training-module.md
# 3. Add frontmatter
---
title: New Training Module
version: 1.0
author: Your Name
last_updated: 2025-09-29
category: SEO Training
tags: [seo, training, new-feature]
training_course: Course Name
sequence: X
---
# 4. Upload any media
node scripts/upload-media.js screenshot.png training/seo/new-module.png internal
# 5. Test locally
npm start
# 6. Commit and push
git add .
git commit -m "Add new SEO training module"
git push origin feature/add-training-content
Update Existing SOP
# 1. Create branch
git checkout -b update/seo-process
# 2. Edit file: docs/sop/seo/existing-process.md
# Update content and last_updated date
# 3. Test changes
npm start
# 4. Commit
git commit -m "Update SEO process with new requirements"
git push origin update/seo-process
Add Media to Existing Content
# Upload media
node scripts/upload-media.js diagram.svg sop/client-onboarding/process-flow.svg internal
# Add to markdown

📁 Directory Quick Reference
| Content Type | Directory | Example |
|---|---|---|
| New employee guides | onboarding/ | first-week-checklist.md |
| Standard processes | sop/seo/ | keyword-research-process.md |
| Training courses | training/seo/ | advanced-seo-techniques.md |
| Client procedures | client-management/ | escalation-process.md |
| Tool guides | tools-and-resources/ | searchatlas-setup.md |
| Internal processes | team-processes/ | content-review-process.md |
| Company policies | company-info/ | remote-work-policy.md |
📝 Frontmatter Templates
Basic Document
---
title: Document Title
version: 1.0
author: Your Name
last_updated: 2025-09-29
category: Category
tags: [tag1, tag2, tag3]
---
Training Content
---
title: Training Module Title
version: 1.0
author: Instructor Name
last_updated: 2025-09-29
category: SEO Training
tags: [seo, training, keyword-research]
training_course: Course Name
sequence: 3
duration: Day 3
---
Standard Operating Procedure
---
title: Process Name
version: 2.0
author: Process Owner
last_updated: 2025-09-29
category: Standard Operating Procedure
tags: [sop, client-onboarding, process]
sop_type: process
department: client-success
review_frequency: quarterly
---
🖼️ Media Commands
Images, Documents, Small Files (Cloudflare R2)
# Public branding assets
node scripts/upload-media.js logo.png branding/company-logo.png public
# Internal training screenshots
node scripts/upload-media.js screen.png training/seo/audit-screen.png internal
# SOP process diagrams
node scripts/upload-media.js flow.svg sop/client-onboarding/workflow.svg internal
# Template documents
node scripts/upload-media.js template.docx templates/proposal-template.docx internal
Video Files (GoHighLevel - Manual Process)
⚠️ Videos are uploaded manually to GoHighLevel Media Storage
1. Login to GoHighLevel subaccount
2. Navigate to: Settings → Media Storage
3. Upload to: team.symphonycore.com/training/[category]/
4. Copy public URL after upload
5. Create video reference document in docs/
🔗 Media URLs
Cloudflare R2 URLs (Authenticated)
# Basic image

# Optimized image (resized)

# Downloadable file
[Download Template](https://media.symphonycore.com/internal/templates/file.pdf)
GoHighLevel URLs (Public Video Links)
# Video embed
<video width="100%" controls>
<source src="https://storage.googleapis.com/msgsndr/wOEAEOEmKfK74l0Vi6dL/media/video-id.mp4" type="video/mp4">
Your browser does not support the video tag.
</video>
# Video link
[Watch Training Video](https://storage.googleapis.com/msgsndr/wOEAEOEmKfK74l0Vi6dL/media/video-id.mp4)
⚡ Development Commands
# Start local development
npm start
# Run quality checks
npm run validate
# Fix code formatting
npm run lint:fix && npm run format
# Build for production (testing)
npm run build
📋 Pre-Commit Checklist
- File name uses lowercase-with-hyphens
- Complete YAML frontmatter
- All images uploaded and working
- Local testing completed (
npm start) - Quality checks passed (
npm run validate) - Navigation updated if needed
- Descriptive commit message
🚨 Common Issues & Solutions
"File not found" in navigation
- Check file path in
sidebars_config.jsmatches actual file location - Ensure file name uses hyphens, not spaces or underscores
Images not loading
- Verify media uploaded with correct path:
node scripts/upload-media.js - Check URL format:
https://media.symphonycore.com/category/path/file.ext
Build errors
- Run
npm run validateto identify issues - Check YAML frontmatter syntax (proper indentation, quotes)
- Verify all internal links exist
Access denied on media
- Ensure you're testing from
team.symphonycore.comorlocalhost:3000 - Media requires authentication - won't work from external sites
📞 Need Help?
- Check the Complete Publishing Guide
- Create GitHub issue for technical problems
- Ask team lead for content questions
- Review existing files for formatting examples
Keep this page bookmarked for quick reference during content creation!