算法艺术创作
algorithmic-art
通过代码和可调参数创作生成艺术与交互式视觉效果。
lidfly-page-migration【设计与创意】Перенести или улучшить существующую страницу в LidFly 1:1 через MCP v3: полный инвентарь секций без сжатия и выдумывания, безопасная работа с существующим design_template_id, полный replacement payload, перенос изображений и посекционная сверка.
独立 GitHub 快照 · 自动分类 · 以原作者文档为准
Use when the user asks to migrate, copy, or recreate an existing page from another platform, or to use it as a reference for improving a managed LidFly page. This workflow supports both a new or empty target and a site that already has pages, content, and an active design template. The goal is a faithful 1:1 transfer: same sections, same order, same content, same visual character. A migration that compresses 12 sections into 5 blocks or invents content the original does not have is a failed migration.
For visual analysis and final review, use the creative-page-direction,
frontend-page-craft, visual-assets and visual-qa references of
lidfly-site-commerce (load that skill, then the needed get_skill_resource paths).
Compare desktop and mobile renders of the whole source and target. During a
faithful transfer these guides refine implementation and expose defects; they do
not authorize new content, a different composition or an unrequested redesign.
Keep the inventory and template-deviation rules below.
e-parent, Tilda uses t-rec records.get_provider_context({ provider: "lidfly", query }) and copy only returned tool_args. Before the first write, call lidfly_list_pages. If the target page exists, read it with lidfly_get_page, call lidfly_get_block for every saved block index, and keep the complete page state plus the exact latest publication_revision from that read. If the page is new, use the current site state and creation contract returned by the read tools and current schema; do not invent replacement fields or a revision. Stop if the target is a static artifact, generated Commerce route, or otherwise not editable through managed page tools.design_template_id, call lidfly_audit_site_design_template before the first write. Inspect the applied template, starter block sequence, inheritance, page-local overrides, key features, Commerce readiness, and route conflicts. Explain relevant warnings before proposing the migration write.lidfly_list_blocks. Do not drop a section because no block feels perfect: pick the closest block and keep the content. Do not add blocks that have no counterpart in the original (FAQ, quizzes, calculators) unless the user asks.inherit_site_design=true, inherited chrome, starter structure, and the site's design system. If 1:1 styling requires a page-local theme, custom CSS, disabled inheritance, local header/footer, or a starter-structure change, explain the impact and obtain explicit textual confirmation before the write. Only then may the exact call use confirm_template_deviation: true; auto-approve is not confirmation.lidfly_upload_images_batch, and use the returned asset references in block props. Never hotlink the source site.type, id, and props, then call lidfly_update_page with a complete replacement payload from the same page read: the same exact slug; all reconstructed blocks; the saved title, description, og_image, theme_preset, theme, page_kind, inherit_site_design, and auto_structured_data, except fields the user explicitly changes; plus the exact latest expected_publication_revision required by the tool schema. Missing blocks are deletions, and omitted optional fields can reset to defaults. Never automatically retry a stale CAS conflict: reread and rebuild the payload. Do not carry custom_css through this call: CSS has its own tools (step 11) and does not belong in a block replacement.lidfly_update_block with all current props instead of replacing the whole page. Do not call lidfly_update_site_theme for a page-only migration or improvement. A site-wide theme change is a separate operation that requires the user to ask for the whole site to change and to confirm its stated cross-page impact before the write.lidfly_update_page to change styles. Read the effective CSS of both levels with lidfly_get_css, edit one page with lidfly_update_page_css, and put rules shared by several pages into lidfly_update_site_css instead of copying them per page. Pass expected_custom_css_sha256 from the same read so a parallel edit is not overwritten silently. The cascade is site theme tokens → platform block CSS → site CSS → page CSS; an empty string clears a level; the limit is 64 KiB per level and </style is rejected. On a templated site a non-empty CSS write still needs explicit user consent and confirm_template_deviation: true, and it reports the deviation as CSS only.ossk4dv8j-*) or class substrings ([class*='-card']): those break silently when block markup changes. Every section carries data-lf-block, data-lf-block-index, and data-lf-block-id when an anchor id is set; internal elements carry the data-lf-part values the block declares in lidfly_list_blocks. Example: [data-lf-block="messenger-lead-band"] [data-lf-part="item"]{width:56px}. Before reaching for CSS at all, check whether the block already exposes a typed style prop for the same thing.lidfly_audit_site_design_template. Report the mapping table, effective page fields, and any remaining deliberate deviations.feature-split.features-grid.logo-service-rail with wordmark labels.overlap-services-showcase.case-study per case, badges via stats-counter.pricing-3col or stacked-pricing-groups for four and more plans.logo-cloud with grayscale, logo-cloud-cases when captions matter.contact-card plus a lead form block.search_tools, then get_tool_schema, then call_tool for reads and call_write_tool for writes.call_write_tool; all prerequisite reads use call_tool.Для существующих CTA сначала прочитай action_controls выбранного блока и lidfly_list_site_forms; переноси popup заявки в общую форму, затем назначай site_form_modal с прочитанным formRef и рабочим fallbackUrl. Вложенные массивы сохраняй целиком. Формы доступны при inheritSiteDesign:false, поддерживают image/imageAlt; не переноси произвольный JS модалки. modal-form создаёт отдельную кнопку и локальную форму, buttonId не связывает его с чужой CTA. Создание формы/загрузка изображения требует нового чтения ревизии; update заменяет props целиком. При pending/unknown проверь operation_id перед повторной записью. Открытие окна и доставку заявки проверяй отдельно.