- Archive old docs to docs-old/ for reference - Create new top-down documentation structure: * Platform Overview: purpose, audience, product structure * Components: individual platform components (Forgejo, Kubernetes, Backstage) * Getting Started: onboarding and quick start guides * Operations: deployment, monitoring, troubleshooting * Governance: ADRs, project history, compliance - Add DOCUMENTATION-GUIDE.md with writing guidelines and templates - Add component template (TEMPLATE.md) for consistent documentation - Simplify root README and move technical docs to doc/ folder - Update test configuration: * Exclude legacy content from markdown linting * Relax HTML validation for theme-generated content * Skip link checking for legacy content in test:links * Keep 'task test' clean for technical writers (100% pass) * Add 'task test:full' with comprehensive link checking - Update home page with corrected markdown syntax - Fix internal links in archived content BREAKING CHANGE: Documentation structure changed from flat to hierarchical top-down approach
4.7 KiB
| title | linkTitle | weight | description |
|---|---|---|---|
| Local Development | Local Development | 20 | Set up your local environment and learn the technicalWriter workflow. |
Prerequisites
Before you start, ensure you have:
- Devbox or the following tools installed:
- Hugo Extended (latest version)
- Node.js (v24+)
- Go (for htmltest)
- Git
Installation
-
Clone the repository:
git clone <repository-url> cd ipceicis-developerframework -
Install dependencies:
task deps:install -
If using Devbox, enter the Devbox shell:
devbox shellThis ensures all tools (Hugo, Node.js, Go) are available in the correct versions.
Local Development Workflow
{{< likec4-view view="localDevelopment" project="documentation-platform" >}}
Starting the Development Server
The easiest way to work locally is to start the Hugo development server:
task serve
This will:
- Generate build information (git commit, version)
- Start Hugo server on
http://localhost:1313 - Enable hot reload - changes appear instantly in the browser
Content Structure
content/
└── en/ # English content
├── _index.md # Homepage
├── blog/ # Blog posts
└── docs/ # Documentation
├── architecture/ # Architecture docs
├── decisions/ # ADRs
└── v1/ # Version-specific docs
Creating Content
-
Add a new documentation page:
# Create a new markdown file vim content/en/docs/your-topic/_index.md -
Add frontmatter:
--- title: "Your Topic" linkTitle: "Your Topic" weight: 10 description: > Brief description of your topic. --- -
Write your content in Markdown
-
Preview changes - they appear immediately if
task serveis running
Creating Architecture Diagrams
Architecture diagrams are created with LikeC4:
-
Navigate to the appropriate LikeC4 project:
resources/edp-likec4/- Platform architectureresources/doc-likec4/- Documentation platform architecture
-
Edit or create
.c4files with your modelExample: Create a simple view in
resources/edp-likec4/views/my-view.c4:specification { element myperson element mysystem } model { customer = myperson 'Customer' { description 'End user of the platform' } mySystem = mysystem 'My System' { description 'Example system component' } customer -> mySystem 'uses' } views { view myCustomView { title "My Custom Architecture View" include customer include mySystem autoLayout TopBottom } } -
Regenerate webcomponents:
task likec4:generate -
Embed diagrams in Markdown:
{{</* likec4-view view="myCustomView" project="architecture" title="My Custom Architecture View" */>}}Finding available view IDs:
- Open the
.c4files in your project directory - Look for
view <viewId> {declarations - The
<viewId>is what you use in theviewparameter - Or use:
grep -r "^view " resources/edp-likec4/ --include="*.c4"
- Open the
Available Tasks
View all available tasks:
task --list
Common Development Tasks
| Task | Description |
|---|---|
task serve |
Start development server with hot reload |
task build |
Build production-ready site |
task build:dev |
Build development version |
task clean |
Remove build artifacts |
task test |
Run all tests |
task test:quick |
Run tests without link checking |
Quick Testing
Before committing, run quick tests:
task test:quick
This validates:
- Hugo build succeeds
- Markdown syntax is correct
For comprehensive testing, including link checking:
task test
Tips for Technical Writers
- Write in present tense - "The system processes..." not "The system will process..."
- Use code blocks with syntax highlighting
- Include diagrams for complex concepts
- Test locally before pushing
- Keep it concise - readers appreciate brevity
- Update regularly - stale docs are worse than no docs
Troubleshooting
Port 1313 already in use
# Find and kill the process
lsof -ti:1313 | xargs kill -9
Build errors
# Clean and rebuild
task clean
task build:dev
Missing dependencies
# Reinstall all dependencies
task deps:install
Next Steps
Now that you can develop locally, learn about: