Skip to content

docs +update strips the native Feishu <sub-page-list> block as if it were an unsupported HTML tag #813

Description

@Maples7

docs +update strips the native Feishu <sub-page-list> tag as if it were an unsupported HTML tag

Summary

The Feishu wiki ecosystem ships a built-in block called sub-page-list. Hub pages in any wiki space typically use it as their entire body — e.g. the 更新日志 hub in our space contains only:

<sub-page-list wiki-token="WODuwHoXSiWhNkkiR5Lc2UBfnOh"/>

…and the wiki UI renders the page's children as a grid of cards. lark-cli docs +fetch correctly returns that exact markdown when reading such a hub.

However, lark-cli docs +update rejects the same tag on write — it strips the element and only keeps the text content, emitting:

[WARNING:UNSUPPORTED_HTML_TAG] unsupported HTML tag removed: sub-page-list
💡 Suggestion: This HTML tag is not supported. The tag has been removed and only the text content is kept. Please check the documentation for supported tags

So the round-trip fetch → update for a hub page is lossy by default: the CLI can read the native block but cannot write it back, even though it's a first-class block in the Feishu wiki product.

Repro

# Create a fresh hub
lark-cli wiki +node-create \
  --space-id <space> \
  --parent-node-token <root> \
  --title "Hub" --obj-type docx
# → returns node_token=<NEW>

# Try to write the canonical sub-page-list body
printf '<sub-page-list wiki-token="<NEW>"/>\n' | \
  lark-cli docs +update \
    --doc "https://my.feishu.cn/wiki/<NEW>" \
    --mode overwrite \
    --markdown -

Returns success but with warnings: [".../UNSUPPORTED_HTML_TAG"] and the body is empty after the call.

Meanwhile:

lark-cli docs +fetch --doc "https://my.feishu.cn/wiki/<existing-hub>" --format markdown

…happily returns "markdown": "<sub-page-list wiki-token=\"...\"/>\n" for hubs that already have the block (created via the Feishu web UI).

Impact

Any agent or script attempting to reproducibly recreate a wiki hub layout through lark-cli cannot write the standard hub body. Workarounds:

  • Author the hub body manually in the Feishu web UI (defeats automation).
  • Write a plain-markdown landing page instead, accepting that children only show in the side-nav tree, not as inline cards.

Proposal

Add sub-page-list (and likely a small whitelist of other native Feishu block tags such as lark-table, image, sheet, mention-doc which already round-trip correctly on the fetch side) to the allowed tag list in the docs +update markdown processor.

If a full block-level write is non-trivial, at minimum the warning message should mention that this is a known Feishu-native block the markdown writer doesn't yet support, and point at the OpenAPI block-create endpoint as the workaround — rather than reading as "this is an arbitrary unsupported HTML tag".

Environment

  • lark-cli 1.0.27
  • macOS, Node.js, user mode
  • Hit while restructuring a wiki space into bilingual hubs.

Related

  • #809, #810, #811 — other wiki-tooling friction encountered in the same workflow.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions