LogoLogo
HomeDiscourseBlogDiscord
  • Introduction
  • Introduction
    • Quick start
    • Aurelia for new developers
    • Hello world
      • Creating your first app
      • Your first component - part 1: the view model
      • Your first component - part 2: the view
      • Running our app
      • Next steps
  • Templates
    • Template Syntax
      • Attribute binding
      • Event binding
      • Text interpolation
      • Template promises
      • Template references
      • Template variables
      • Globals
    • Custom attributes
    • Value converters (pipes)
    • Binding behaviors
    • Form Inputs
    • CSS classes and styling
    • Conditional Rendering
    • List Rendering
    • Lambda Expressions
    • Local templates (inline templates)
    • SVG
  • Components
    • Component basics
    • Component lifecycles
    • Bindable properties
    • Styling components
    • Slotted content
    • Scope and context
    • CustomElement API
    • Template compilation
      • processContent
      • Extending templating syntax
      • Modifying template parsing with AttributePattern
      • Extending binding language
      • Using the template compiler
      • Attribute mapping
  • Getting to know Aurelia
    • Routing
      • @aurelia/router
        • Getting Started
        • Creating Routes
        • Routing Lifecycle
        • Viewports
        • Navigating
        • Route hooks
        • Router animation
        • Route Events
        • Router Tutorial
        • Router Recipes
      • @aurelia/router-lite
        • Getting started
        • Router configuration
        • Configuring routes
        • Viewports
        • Navigating
        • Lifecycle hooks
        • Router hooks
        • Router events
        • Navigation model
        • Transition plan
    • App configuration and startup
    • Enhance
    • Template controllers
    • Understanding synchronous binding
    • Dynamic composition
    • Portalling elements
    • Observation
      • Observing property changes with @observable
      • Effect observation
      • HTML observation
      • Using observerLocator
    • Watching data
    • Dependency injection (DI)
    • App Tasks
    • Task Queue
    • Event Aggregator
  • Developer Guides
    • Animation
    • Testing
      • Overview
      • Testing attributes
      • Testing components
      • Testing value converters
      • Working with the fluent API
      • Stubs, mocks & spies
    • Logging
    • Building plugins
    • Web Components
    • UI virtualization
    • Errors
      • 0001 to 0023
      • 0088 to 0723
      • 0901 to 0908
    • Bundlers
    • Recipes
      • Apollo GraphQL integration
      • Auth0 integration
      • Containerizing Aurelia apps with Docker
      • Cordova/Phonegap integration
      • CSS-in-JS with Emotion
      • DOM style injection
      • Firebase integration
      • Markdown integration
      • Multi root
      • Progress Web Apps (PWA's)
      • Securing an app
      • SignalR integration
      • Strongly-typed templates
      • TailwindCSS integration
      • WebSockets Integration
      • Web Workers Integration
    • Playground
      • Binding & Templating
      • Custom Attributes
        • Binding to Element Size
      • Integration
        • Microsoft FAST
        • Ionic
    • Migrating to Aurelia 2
      • For plugin authors
      • Side-by-side comparison
    • Cheat Sheet
  • Aurelia Packages
    • Validation
      • Validation Tutorial
      • Plugin Configuration
      • Defining & Customizing Rules
      • Architecture
      • Tagging Rules
      • Model Based Validation
      • Validation Controller
      • Validate Binding Behavior
      • Displaying Errors
      • I18n Internationalization
      • Migration Guide & Breaking Changes
    • i18n Internationalization
    • Fetch Client
      • Overview
      • Setup and Configuration
      • Response types
      • Working with forms
      • Intercepting responses & requests
      • Advanced
    • Event Aggregator
    • State
    • Store
      • Configuration and Setup
      • Middleware
    • Dialog
  • Tutorials
    • Building a ChatGPT inspired app
    • Building a realtime cryptocurrency price tracker
    • Building a todo application
    • Building a weather application
    • Building a widget-based dashboard
    • React inside Aurelia
    • Svelte inside Aurelia
    • Synthetic view
    • Vue inside Aurelia
  • Community Contribution
    • Joining the community
    • Code of conduct
    • Contributor guide
    • Building and testing aurelia
    • Writing documentation
    • Translating documentation
Powered by GitBook
On this page
  • Documentation Types
  • Articles
  • API Reference
  • Code Examples
  • Docs Organization
  • GitBook Tags and Best Practices

Was this helpful?

Export as PDF
  1. Community Contribution

Writing documentation

Join us in making Aurelia's docs better for everyone!

Greetings! We're so glad that you're interested in contributing to Aurelia's documentation. 🙏 We'd love for you to join us on our journey to create outstanding guides, tutorials, API references, and code examples that enhance the experience for everyone. This guide provides instructions to help you write clear and consistent documentation.

Here's what you'll learn:

  • The fundamental types of documentation and their purposes.

  • How to contribute to each type of documentation.

  • The custom syntax used across our docs, including GitBook-friendly tags.

  • The overall structure and organization of our documentation.

Documentation Types

Our documentation is divided into three core types:

  • Articles (tutorials and guides)

  • API Reference

  • Code Examples

Articles

Articles provide narrative content and come in two main flavors:

  • Guides: These offer a logical, progressive flow of information, helping readers gain competence in a topic by the end of the article.

  • Tutorials: These are step-by-step instructions that walk the reader through building a project, ensuring a completed and functional outcome.

Every article should include the following elements:

  • Title: A clear and concise title that appears at the top of the article, within the Table of Contents (ToC), and in search results. It's also embedded in the page metadata for SEO.

  • Description: A brief sentence or fragment to let readers know what the article covers.

  • Introduction: A short overview (3–5 sentences) providing context and outlining the article's content.

  • Headers: Articles should be divided into sections using level-1 headers (H1) with optional level-2 and level-3 subheaders for additional structure.

  • Additional Resources (Optional): When applicable, include a list of resources (e.g., links to HTML specifications, related articles, API references, code examples, sandboxes, etc.) within an info hint block for clarity. For example:

Article Syntax

  • Hint Blocks: `

`, ``, and `` to emphasize important notes, alerts, or achievements. - **Callouts:** To draw attention to key information.

API Reference

Code Examples

These documents are code-focused guides that demonstrate solutions to specific tasks (e.g., "Configuring Auth-Protected Routes"). Each code example must have a title and may include a brief explanation (1–5 sentences). They are designed for quick copy-paste modifications by readers addressing task-oriented needs.

Docs Organization

The documentation is organized into seven main sections, accessible via the Docs link in the main navigation:

  • Getting Started: Guides and tutorials for newcomers covering essential topics to kickstart your Aurelia experience.

  • App Basics: Detailed guides for building production applications, addressing more advanced challenges beyond the basics.

  • Advanced Scenarios: In-depth guides covering complex topics such as application architecture, extensibility, and performance optimization. These docs are meant to be used as needed.

  • API: A comprehensive list of every class, function, and constant grouped by package. The content is generated directly from the source code.

  • Examples: A categorized collection of code examples (e.g., routing, templating) that offer rapid, task-specific solutions.

  • Community Contribution: Includes our contribution guidelines, code of conduct, and supplementary engineering notes to help you start contributing quickly and confidently.

  • Resources: A collection of articles addressing common questions and providing further insight into the project.

GitBook Tags and Best Practices

When writing documentation for Aurelia on GitBook, consider using the following GitBook-friendly tags and practices:

  • Hint Blocks: Use <div data-gb-custom-block data-tag="hint" data-style='info'></div> for additional context, <div data-gb-custom-block data-tag="hint" data-style='warning'></div> for cautionary notes, and <div data-gb-custom-block data-tag="hint" data-style='success'></div> to highlight achievements.

  • Callout Boxes: Employ callout blocks to draw attention to crucial information or useful tips.

  • Code Blocks: Wrap code examples in triple backticks with the appropriate language identifier (e.g., ```javascript) to enable syntax highlighting.

Adhering to these conventions ensures that your documentation remains consistent, engaging, and easy to navigate.

PreviousBuilding and testing aureliaNextTranslating documentation

Last updated 2 months ago

Was this helpful?

Articles begin with a YAML metadata header followed by a Markdown body. Aurelia's docs also support some custom Markdown extensions that enhance the reader's experience. For example, you can use GitBook-friendly hint blocks such as:

These syntaxes allow you to include interactive components (like dynamic code examples) or highlight resources more effectively. For more details, please refer to the .

The API Reference provides descriptive documentation for each class, method, or property in the framework. Its main goal is to show users how to correctly utilize a specific API, often complemented by an inline example using the @example tag. API reference documentation is integrated directly into the source code via syntax.

Example Specification
Related Article
CommonMark
GitBook documentation
TSDoc