Skip to main content

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
![Process Flow](https://media.symphonycore.com/internal/sop/client-onboarding/process-flow.svg)

📁 Directory Quick Reference

Content TypeDirectoryExample
New employee guidesonboarding/first-week-checklist.md
Standard processessop/seo/keyword-research-process.md
Training coursestraining/seo/advanced-seo-techniques.md
Client proceduresclient-management/escalation-process.md
Tool guidestools-and-resources/searchatlas-setup.md
Internal processesteam-processes/content-review-process.md
Company policiescompany-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
![Alt text](https://media.symphonycore.com/internal/path/image.png)

# Optimized image (resized)
![Alt text](https://media.symphonycore.com/cdn-cgi/image/width=800,format=auto/internal/path/image.png)

# Downloadable file
[Download Template](https://media.symphonycore.com/internal/templates/file.pdf)
# 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.js matches 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 validate to 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.com or localhost:3000
  • Media requires authentication - won't work from external sites

📞 Need Help?

  1. Check the Complete Publishing Guide
  2. Create GitHub issue for technical problems
  3. Ask team lead for content questions
  4. Review existing files for formatting examples

Keep this page bookmarked for quick reference during content creation!