Skip to content
This repository was archived by the owner on Apr 14, 2022. It is now read-only.
This repository was archived by the owner on Apr 14, 2022. It is now read-only.

Improve documentation UX for sync and async APIs #214

@sethmlarson

Description

@sethmlarson

Some discussions around how we can provide both examples and an API reference for Hip when there are namespaces with very similar but obviously have basically two separate audiences.

A great idea from @njsmith was to do something similar to a lot of projects that support multiple programming languages (Python, Java, Ruby, etc) and have a "Sync / Async" toggle on documentation navigation. Would change all code examples and autodoc refs from ahip to hip, have/exclude async/await etc.

This would be especially useful for the reference as it will be mostly symmetrical thanks to unasync.

Some thoughts and ideas that came up:

  • When you're on a sync / async page toggling the slider should bring you to the corresponding page and restore your scroll position on the new page.
    • The toggle can probably be a piece of JavaScript that does URL rewriting as long as the doc URLs are symmetric (/ref/async/... to /ref/sync/...)
    • Could use fragments, scroll %, a combination of both to restore scroll position?
  • There will probably be a need for being able to mark sections as "sync-only" and "async-only" for gotchas, tips, limitations, etc
  • Should this slider be extended to Sync, Trio, Asyncio, Curio?
    • Some examples will probably want to use specific APIs like trio.run() or trio.open_nursery()
      for showing off how to do multiple concurrent requests.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions