بنقرة واحدة
docs-conventions
// Use when writing or reviewing Flet documentation, including Python docstrings (Google style, reST roles, admonitions), Markdown docs (cross-references, images, code examples), and sidebar navigation.
// Use when writing or reviewing Flet documentation, including Python docstrings (Google style, reST roles, admonitions), Markdown docs (cross-references, images, code examples), and sidebar navigation.
Use when adding or changing deprecations for Python controls/APIs in sdk/python/packages/, including V.deprecated fields, deprecated decorators, version lifecycle, and docs admonitions/labels.
Use when asked to prepare new Flet release by bumping versions and author release notes.
Use when testing or debugging Flet apps in maintainer/contributor development mode with local Python package sources and the local Flutter client, including web, desktop, browser, and computer-use verification workflows.
Use when asked to add, revise, or review a changelog or release-notes entry in this repo. Inspect the existing changelog section style and the relevant PR, issue, and commit context first, then write a focused entry in the correct release section without overstating docs, tests, or chores unless they are the primary user-facing change.
Use whenever editing validation for Python controls in sdk/python/packages/: adding/changing constrained properties, `Raises: ValueError` docstrings, `before_update()` checks, `raise ValueError`, Annotated/V rules, or __validation_rules__.
Create or update Flet control screenshots and GIFs that are generated from integration tests and shown in docs. Use when working on `sdk/python/packages/flet/integration_tests/examples`, refreshing static or interactive golden screenshots, or replacing old example media images or GIFs with generated test assets.
| name | docs-conventions |
| description | Use when writing or reviewing Flet documentation, including Python docstrings (Google style, reST roles, admonitions), Markdown docs (cross-references, images, code examples), and sidebar navigation. |
Docs live in website/docs/. Docusaurus renders them as the website.
Use Google style docstrings with sections: Args:, Returns:, Raises:, Note:, Example:, Warning:.
Prefer these in Python docstrings. CrocoDocs renders them as links in the API docs and they keep authoring terse when the auto-derived label is acceptable.
Supported roles: :class:, :attr:, :meth:, :func:, :data:, :mod:
"""
If a parent is a :class:`~flet.ResponsiveRow`, this property determines
how many virtual columns the control spans.
See :attr:`value` or :attr:`flet.Text.size` for the current selection.
Calls :meth:`flet.Page.update` after modifying controls.
"""
Rules:
:attr:flet.Page.route`` — links to the member, displays inline code Page.route:attr:flet_map.Map.animation_curve`` — links to the extension member, displays inline code Map.animation_curve~: :attr:~flet.Page.route`` — links to the member, displays inline code route:attr:value`` — no qualifier needed:meth:update`` — do NOT include () in the targetFor plain class references like :class:flet.Page and extension references like `:class:`flet_map.Map, the website strips leading public package aliases automatically,
so they display as inline code Page and Map.
Not supported:
:class:my label <flet.Page>`` — the label is always auto-derived from the targetReference-style Markdown links of the form [label][key], where key is the
fully-qualified dotted symbol path (same form as reST role targets).
Use as the default form for linking to API symbols from Markdown docs
(.md / .mdx).
Examples:
Class: [`Page`][flet.Page]
Attribute: [`route`][flet.Page.route]
Method: [`Page.update()`][flet.Page.update]
Extension: [`Video.controls`][flet_video.Video.controls]
Plain text: [the route attribute][flet.Page.route]
When to prefer over the other forms:
[ ] accepts any text or inline code, unlike reST roles whose label is always auto-derived from the target../ and #flet.X.y anchors)Rules:
[ ]) is the rendered text — inline code or plain text[ ]) is the fully-qualified dotted path; do NOT include () for methodsyarn crocodocs:generateFallback for cases xrefs cannot cover:
docs_reason parameter of @deprecated, extracted validation messages, or short admonition textUse relative .md paths with dot-format anchors.
Examples:
Control: [`Page`](../controls/page.md)
Type: [`DragTargetEvent.global_position`](../types/dragtargetevent.md#flet.DragTargetEvent.global_position)
Plain text: [route](../controls/page.md#flet.Page.route)
Method: [`Page.update()`](../controls/page.md#flet.Page.update)
Google-style section headers render as Docusaurus admonitions:
"""
Note:
Has effect only if the direct parent is a :class:`~flet.Column`.
Warning:
This property is deprecated. Use :attr:`new_prop` instead.
Example:
Setting up a basic layout:
``ft.Column(controls=[ft.Text("Hello")])``
"""
Supported kinds: Note, Warning, Danger, Tip, Info.
Unsupported kinds (e.g. Limitation, Example) are normalized to note.
Empty admonitions are skipped.
:::note
Basic note without title.
:::
:::warning[Important]
Warning with a custom title.
:::
Supported types: note, info, tip, warning, danger.
---
class_name: "flet.Container"
examples: "controls/container"
example_images: "test-images/examples/material/golden/macos/container"
example_media: "examples/controls/container/media"
title: "Container"
---
examples — root-relative path under sdk/python/examples/example_images / example_media — root-relative under website/static/docs/Use the CrocoDocs Image component. Paths without ../ are resolved against /docs/:
import {Image} from '@site/src/components/crocodocs';
<Image src={frontMatter.example_images + '/image_for_docs.png'} width="55%" />
For absolute paths (one-off assets in static/):
<Image src="/docs/assets/controls/charts/bar-chart-diagram.svg" width="65%" />
import {CodeExample} from '@site/src/components/crocodocs';
<CodeExample path={frontMatter.examples + '/example_1.py'} />
Paths are relative to the configured examples_root (sdk/python/examples/).
Use <kbd>...</kbd> in Python docstrings for keyboard keys, for example
<kbd>Enter</kbd> or <kbd>Shift</kbd>. CrocoDocs preserves this tag in API
docs.
Edit website/sidebars.yml to change navigation structure:
docs:
Getting started:
- getting-started/installation.md
Controls:
_generated_index:
title: Controls
slug: /controls
description: Browse the complete catalog of controls.
AlertDialog: controls/alertdialog.md
After editing, regenerate sidebars.js:
cd website && yarn crocodocs:generate