lema-odoo-indexhtml

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

Lema Odoo App Description Page (index.html)

Lema Odoo应用描述页面(index.html)

You are an expert in writing Odoo Apps Store description pages for Lema Core Technologies modules. Every page you generate must pass Odoo's automated validator and manual review on the first submission.
您是为Lema Core Technologies模块编写Odoo应用商店描述页面的专家。您生成的每个页面必须在首次提交时通过Odoo的自动验证器和人工审核。

When to use this skill

何时使用此技能

Trigger this skill when the user asks to:
  • Create a new
    static/description/index.html
    for an Odoo module
  • Rewrite or migrate an existing index.html to comply with Odoo guidelines
  • Review an index.html for guideline violations
  • Add or restructure Hero / Screenshots / Features / Architecture / Changelog / FAQ sections in a module description page
The skill also applies whenever the working file path matches
*/static/description/index.html
inside any
addons/lema/**
module.
当用户要求执行以下操作时触发此技能:
  • 为Odoo模块创建新的
    static/description/index.html
  • 重写或迁移现有index.html以符合Odoo指南
  • 审核index.html是否存在违反指南的情况
  • 在模块描述页面中添加或重构Hero / 截图 / 功能 / 架构 / 更新日志 / 常见问题板块
当工作文件路径匹配任何
addons/lema/**
模块内的
*/static/description/index.html
时,也适用此技能。

Hard Rules (Odoo Apps Store Validator)

硬性规则(Odoo应用商店验证器)

These rules are NOT negotiable. The Odoo automated checker rejects any submission that violates them.
这些规则不容协商。违反任何规则的提交都会被Odoo自动检查器拒绝。

Content

内容要求

  • English only. The full page, including comments inside HTML, must be in English regardless of the originating country or language. Never include Indonesian, Vietnamese, or other languages in the rendered page.
  • No promotions, no advertisements, no links to other app stores or external platforms. Do not reference competing marketplaces, do not include affiliate links, do not promise discounts.
  • Accurate, non-misleading feature claims. Every feature listed must match what the module actually ships.
  • 仅使用英文。整个页面,包括HTML内的注释,必须使用英文,无论来源国家或语言如何。渲染页面中绝不能包含印尼语、越南语或其他语言。
  • 禁止促销、广告、指向其他应用商店或外部平台的链接。不得提及竞争市场,不得包含联盟链接,不得承诺折扣。
  • 准确、无误导的功能声明。列出的每个功能必须与模块实际提供的功能一致。

Allowed links

允许的链接

Only the following external link forms are permitted. Anything else gets invalidated by the validator.
AllowedForm
Local resources
assets/...
,
icon.png
, paths inside
static/description/
YouTubeCanonical URLs only (
https://www.youtube.com/watch?v=...
or
https://youtu.be/...
)
Microsoft TeamsFull Teams meeting links
Email
mailto:address@example.com
Skype
skype:username?call
Everything else — Google Drive, Vimeo, Loom, app marketplaces, third-party blogs, social media (LinkedIn, X, Facebook, Instagram) — is forbidden as a link target.
仅允许以下形式的外部链接。任何其他链接都会被验证器判定无效。
允许类型格式
本地资源
assets/...
,
icon.png
,
static/description/
内的路径
YouTube仅规范URL(
https://www.youtube.com/watch?v=...
https://youtu.be/...
Microsoft Teams完整的Teams会议链接
邮件
mailto:address@example.com
Skype
skype:username?call
其他所有链接——Google Drive、Vimeo、Loom、应用市场、第三方博客、社交媒体(LinkedIn、X、Facebook、Instagram)——均被禁止作为链接目标。

Forbidden HTML / CSS

禁止的HTML / CSS

  • No JavaScript. No
    <script>
    tags. No inline
    onclick=
    ,
    onload=
    , or any event handler attributes.
  • No static tags, static widgets, or modals. Do not use Odoo's
    <t t-call=...>
    ,
    <t t-set=...>
    , or any QWeb syntax. Do not use Bootstrap modal components (
    data-bs-toggle="modal"
    ).
  • No iframes, no embeds, no external stylesheet links. Do not include
    <link rel="stylesheet" href="https://cdn...">
    . All styling must be inline or via Bootstrap 4 classes that are already available.
  • No external font loaders (no Google Fonts
    <link>
    ). Use the system stack.
  • No
    <style>
    blocks with selectors that can leak
    (
    *
    ,
    body
    ,
    html
    , attribute selectors targeting Odoo elements). Only minimal scoped rules if absolutely necessary.
  • 禁止JavaScript。不得使用
    <script>
    标签。不得使用内联
    onclick=
    onload=
    或任何事件处理属性。
  • 禁止静态标签、静态小部件或模态框。不得使用Odoo的
    <t t-call=...>
    <t t-set=...>
    或任何QWeb语法。不得使用Bootstrap模态框组件(
    data-bs-toggle="modal"
    )。
  • 禁止iframe、嵌入内容或外部样式表链接。不得包含
    <link rel="stylesheet" href="https://cdn...">
    。所有样式必须是内联样式或使用已有的Bootstrap 4类。
  • 禁止外部字体加载器(无Google Fonts
    <link>
    )。使用系统字体栈。
  • 禁止可能泄露样式的
    <style>
    *
    body
    html
    、针对Odoo元素的属性选择器)。仅在绝对必要时使用最小化的作用域规则。

Allowed style attributes

允许的样式属性

The validator strictly limits inline style attributes to the following families. Anything else may be stripped or trigger a rejection.
  • color
    ,
    background
    ,
    background-color
    ,
    background-image
  • font-*
    (font-size, font-weight, font-family, font-style)
  • margin-*
    (margin, margin-top, margin-right, margin-bottom, margin-left)
  • padding-*
  • border-*
    (border, border-radius, border-color, border-width, border-style)
  • Bootstrap 4 utility classes for layout (
    row
    ,
    col-*
    ,
    mt-*
    ,
    mb-*
    ,
    p-*
    ,
    text-center
    ,
    d-flex
    ,
    align-items-*
    ,
    justify-content-*
    ,
    flex-wrap
    ,
    gap-*
    ,
    g-*
    )
Other rules such as
width
,
height
,
display
,
box-shadow
,
text-transform
,
letter-spacing
,
line-height
,
list-style
,
text-decoration
are commonly accepted in practice (they appear in the reference template), but treat them as best-effort and avoid combining them with anything that could be interpreted as harmful (positioning, transforms, animations, z-index manipulation).
验证器严格限制内联样式属性为以下类别。任何其他属性可能会被剥离或触发拒绝。
  • color
    ,
    background
    ,
    background-color
    ,
    background-image
  • font-*
    (font-size, font-weight, font-family, font-style)
  • margin-*
    (margin, margin-top, margin-right, margin-bottom, margin-left)
  • padding-*
  • border-*
    (border, border-radius, border-color, border-width, border-style)
  • 用于布局的Bootstrap 4工具类(
    row
    ,
    col-*
    ,
    mt-*
    ,
    mb-*
    ,
    p-*
    ,
    text-center
    ,
    d-flex
    ,
    align-items-*
    ,
    justify-content-*
    ,
    flex-wrap
    ,
    gap-*
    ,
    g-*
其他规则如
width
,
height
,
display
,
box-shadow
,
text-transform
,
letter-spacing
,
line-height
,
list-style
,
text-decoration
在实践中通常被接受(它们出现在参考模板中),但需尽力避免将其与任何可能被视为有害的属性结合使用(如定位、变换、动画、z-index操作)。

Required Page Structure

页面必填结构

Always produce these sections in this order. Section headings must be in English and visual styling must follow the Lema Core brand palette (see "Brand Tokens" below).
  1. Hero — module name, one-paragraph value proposition, compatibility tags, primary contact buttons (Email Us, LinkedIn), deployment tags (Community / Enterprise / Odoo.sh / On-Premise). LinkedIn must be
    https://www.linkedin.com/company/lemacore
    — note: LinkedIn is not in the explicitly allowed list above, so if the validator rejects it, fall back to email-only contact buttons.
  2. Brand Banner
    assets/brand.png
    plus a short company description of Lema Core Technologies.
  3. Demo Preview — a single demo image or animated GIF inside a monitor-style frame (
    assets/video.gif
    or
    assets/screenshots/demo.png
    ).
  4. Screenshots — multiple titled screenshot blocks. Each block has a centered title (two-color split), a descriptive caption, and one or more images.
  5. Features — grouped tiles describing tools/capabilities. Group cards by color band (primary purple, secondary blue, accent green) and prefix each group with a small uppercase eyebrow label.
  6. Architecture — system architecture diagram (built with flexbox + Font Awesome icons or static SVG/PNG), transport modes, technical specifications, and an optional dark-themed "production config" code preview.
  7. Changelog — timeline-style list of versions, newest first, each version with a colored timeline dot, version number, month/year, and a row of tagged feature chips.
  8. FAQ — collapsible Q&A using native
    <details><summary>
    elements (no JavaScript needed).
  9. Related Products — Bootstrap 5 carousel block of 3–6 other Lema modules with module name and icon, linking to
    https://apps.odoo.com/apps/modules/18.0/<module_technical_name>
    . Use the exact markup shipped in
    lm_ai_summary
    /
    lm_mcp_server
    (already approved by the Odoo Apps Store validator): a
    <section class="oe_container mt32">
    wrapper with an
    oe_slogan
    heading, then
    <div id="demo" class="row carousel slide" data-bs-ride="carousel">
    containing two
    carousel-item
    slides of three
    col-md-4
    cards each, plus
    carousel-control-prev
    /
    carousel-control-next
    anchors. The Odoo Apps Store is the source platform, so internal apps.odoo.com links are acceptable; never link to non-Odoo marketplaces.
  10. Footer — brand logo, version line (
    Module Name v18.0 · OPL-1 License · © <year> Lema Core Technologies
    ), email and (optionally) LinkedIn.
A reference template implementing all ten sections in compliance mode is included at
references/template.html
. Use it as the starting point and only change copy, colors at the brand-token level, and section content.
始终按以下顺序生成这些板块。板块标题必须使用英文,视觉样式必须遵循Lema Core品牌调色板(见下文“品牌标识”)。
  1. Hero — 模块名称、一段式价值主张、兼容性标签、主要联系按钮(邮件联系、LinkedIn)、部署标签(社区版 / 企业版 / Odoo.sh / 本地部署)。LinkedIn链接必须为
    https://www.linkedin.com/company/lemacore
    ——注意:LinkedIn不在上述明确允许的列表中,因此如果验证器拒绝该链接, fallback到仅使用邮件联系按钮。
  2. 品牌横幅
    assets/brand.png
    加上一段关于Lema Core Technologies的简短公司介绍。
  3. 演示预览 — 显示器样式框架内的单个演示图片或动画GIF(
    assets/video.gif
    assets/screenshots/demo.png
    )。
  4. 截图 — 多个带标题的截图块。每个块包含居中标题(双色分割)、描述性说明和一张或多张图片。
  5. 功能 — 描述工具/功能的分组卡片。按颜色带(主紫色、次蓝色、强调绿色)对卡片分组,并在每组前添加一个小的大写眉标。
  6. 架构 — 系统架构图(使用flexbox + Font Awesome图标或静态SVG/PNG构建)、传输模式、技术规格,以及可选的深色主题“生产配置”代码预览。
  7. 更新日志 — 时间线样式的版本列表,最新版本在前,每个版本包含彩色时间线点、版本号、年月和一行标记的功能芯片。
  8. 常见问题 — 使用原生
    <details><summary>
    元素实现的可折叠问答(无需JavaScript)。
  9. 相关产品 — 包含3–6个其他Lema模块的Bootstrap 5轮播块,显示模块名称和图标,链接到
    https://apps.odoo.com/apps/modules/18.0/<module_technical_name>
    。使用
    lm_ai_summary
    /
    lm_mcp_server
    中已有的精确标记(已通过Odoo应用商店验证器批准):一个
    <section class="oe_container mt32">
    包裹器,带有
    oe_slogan
    标题,然后是
    <div id="demo" class="row carousel slide" data-bs-ride="carousel">
    ,包含两个
    carousel-item
    幻灯片,每个幻灯片有三个
    col-md-4
    卡片,以及
    carousel-control-prev
    /
    carousel-control-next
    锚点。Odoo应用商店是源平台,因此内部apps.odoo.com链接是可接受的;绝不能链接到非Odoo市场。
  10. 页脚 — 品牌标志、版本行(
    Module Name v18.0 · OPL-1 License · © <year> Lema Core Technologies
    )、邮件和(可选)LinkedIn链接。
合规模式下实现所有十个板块的参考模板包含在
references/template.html
中。以此为起点,仅修改文案、品牌标识级别的颜色和板块内容。

Key adaptations from the lm_mcp_server reference

与lm_mcp_server参考模板的关键适配

The legacy
lm_mcp_server/static/description/index.html
was written before Lema enforced strict compliance. It uses Bootstrap 5, jQuery, Owl Carousel, Google Fonts, Font Awesome via CDN, and JavaScript-driven tabs. The compliant version must:
Legacy (rejected)Compliant rewrite
Bootstrap 5 CDN linkNo external CSS — rely on Odoo's built-in Bootstrap 4
<script src="bootstrap.bundle.min.js">
Remove entirely
jQuery
<script>
Remove entirely
Owl Carousel
<script>
and CSS
Drop the Owl library; for Related Products use Bootstrap 5 carousel markup (
data-bs-ride="carousel"
) per the proven
lm_ai_summary
template — apps.odoo.com loads Bootstrap JS site-wide so the carousel animates without any local script
Google Fonts
<link href="fonts.googleapis.com">
Remove — use system font stack via inline
font-family
Font Awesome CDNReplace icons with inline SVG inside
assets/icons/*.svg
OR omit icons; never depend on a remote CSS file
<ul class="nav nav-tabs">
with
data-bs-toggle="tab"
Flatten tabs into linear sections separated by horizontal rules and anchor links (
<a href="#features">
)
data-bs-toggle="modal"
Forbidden — use
<details><summary>
for expandable content
Owl Carousel for Related ProductsBootstrap 5 carousel (
<div class="carousel slide" data-bs-ride="carousel">
) with two
carousel-item
slides — same pattern shipped in
lm_ai_summary
and accepted by the Apps Store validator
<script>
block at end of file
Remove entirely
旧版
lm_mcp_server/static/description/index.html
是在Lema强制执行严格合规之前编写的。它使用Bootstrap 5jQueryOwl CarouselGoogle FontsCDN加载的Font AwesomeJavaScript驱动的标签页。合规版本必须:
旧版(被拒绝)合规重写方案
Bootstrap 5 CDN链接无外部CSS——依赖Odoo内置的Bootstrap 4
<script src="bootstrap.bundle.min.js">
完全移除
jQuery
<script>
完全移除
Owl Carousel
<script>
和CSS
移除Owl库;对于相关产品,使用经验证的
lm_ai_summary
模板中的Bootstrap 5轮播标记(
data-bs-ride="carousel"
)——apps.odoo.com会在全站加载Bootstrap JS,因此轮播无需本地脚本即可动画
Google Fonts
<link href="fonts.googleapis.com">
移除——通过内联
font-family
使用系统字体栈
Font Awesome CDN
assets/icons/*.svg
内的内联SVG替换图标,或省略图标;绝不依赖远程CSS文件
<ul class="nav nav-tabs">
搭配
data-bs-toggle="tab"
将标签页扁平化,用水平线和锚点链接(
<a href="#features">
)分隔线性板块
data-bs-toggle="modal"
禁止使用——使用
<details><summary>
实现可展开内容
用于相关产品的Owl CarouselBootstrap 5轮播(
<div class="carousel slide" data-bs-ride="carousel">
),包含两个
carousel-item
幻灯片——与
lm_ai_summary
中使用的模式相同,并已被应用商店验证器接受
文件末尾的
<script>
完全移除

Brand Tokens (Lema Core)

品牌标识(Lema Core)

Use these color values consistently across the page:
  • Primary purple:
    #5b4da0
  • Primary dark:
    #3f3274
  • Heading dark:
    #16122a
    /
    #121212
  • Body muted:
    #64728f
  • Surface light:
    #f3f0ff
    /
    #fafafa
  • Border light:
    #e0d9f5
    /
    #f0edf9
  • Accent blue:
    #1565c0
  • Accent green:
    #2e7d32
  • Accent teal:
    #00897b
  • Accent warning:
    #e65100
  • Accent danger:
    #c62828
Fonts: rely on the system stack —
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
. Never load a webfont.
在整个页面中一致使用以下颜色值:
  • 主紫色:
    #5b4da0
  • 主深色:
    #3f3274
  • 标题深色:
    #16122a
    /
    #121212
  • 正文浅灰色:
    #64728f
  • 浅色背景:
    #f3f0ff
    /
    #fafafa
  • 浅色边框:
    #e0d9f5
    /
    #f0edf9
  • 强调蓝色:
    #1565c0
  • 强调绿色:
    #2e7d32
  • 强调蓝绿色:
    #00897b
  • 警告色:
    #e65100
  • 危险色:
    #c62828
字体:依赖系统字体栈——
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
。绝不加载网页字体。

Icon convention

图标约定

Card titles in the Features and Technical Specifications sections carry a small icon for visual rhythm. Icons must be referenced as
<img src="assets/icons/...">
, never as inline
<svg>
elements
— Odoo's HTML sanitizer strips inline SVG when rendering the description in the Apps browser, leaving a blank space.
Use this convention:
LocationIcon fileTitle colorSize
Feature group 1 (Core / Primary, 3 cards)
assets/icons/star-purple.svg
#3f3274
14×14
Feature group 2 (Secondary, 3 cards)
assets/icons/star-blue.svg
#0d47a1
14×14
Feature group 3 (Accent, 3 cards)
assets/icons/star-green.svg
#1b5e20
14×14
All 4 tech spec cards (Dependencies / Deployment / Performance / Security)
assets/icons/gear-purple.svg
#121212
(title), icon
#5b4da0
16×16
The exact markup is:
html
<img src="assets/icons/star-purple.svg" alt="" width="14" height="14" style="vertical-align:-2px; margin-right:6px;"/>
The four SVG files (
star-purple.svg
,
star-blue.svg
,
star-green.svg
,
gear-purple.svg
) ship with this skill under
lema-odoo-indexhtml/assets/icons/
and are listed in the canonical assets table — copy them into the target module's
<module>/static/description/assets/icons/
folder during generation.
Invariants when extending or modifying icons:
  • One consistent shape across the whole Features section (only the color varies by group)
  • One consistent shape across the whole Tech Specs section
  • Never inline an
    <svg>
    — Odoo sanitizer will strip it; always reference a file via
    <img>
  • Color must be baked into the SVG
    <path fill="...">
    because
    <img>
    -referenced SVG cannot inherit
    currentColor
    from the parent
功能技术规格板块中的卡片标题带有小图标以增强视觉节奏感。图标必须以
<img src="assets/icons/...">
形式引用,绝不能作为内联
<svg>
元素
——Odoo的HTML sanitizer在应用商店浏览器中渲染描述时会剥离内联SVG,留下空白。
使用以下约定:
位置图标文件标题颜色尺寸
功能组1(核心/主组,3张卡片)
assets/icons/star-purple.svg
#3f3274
14×14
功能组2(次组,3张卡片)
assets/icons/star-blue.svg
#0d47a1
14×14
功能组3(强调组,3张卡片)
assets/icons/star-green.svg
#1b5e20
14×14
所有4个技术规格卡片(依赖项/部署/性能/安全)
assets/icons/gear-purple.svg
#121212
(标题),图标
#5b4da0
16×16
精确标记如下:
html
<img src="assets/icons/star-purple.svg" alt="" width="14" height="14" style="vertical-align:-2px; margin-right:6px;"/>
四个SVG文件(
star-purple.svg
,
star-blue.svg
,
star-green.svg
,
gear-purple.svg
)随此技能一起提供,位于
lema-odoo-indexhtml/assets/icons/
,并在标准资源表中列出——生成期间将它们复制到目标模块的
<module>/static/description/assets/icons/
文件夹中。
扩展或修改图标时的不变规则:
  • 整个功能板块使用一致的形状(仅颜色随组变化)
  • 整个技术规格板块使用一致的形状
  • 绝不使用内联
    <svg>
    ——Odoo sanitizer会剥离它;始终通过
    <img>
    引用文件
  • 颜色必须嵌入SVG的
    <path fill="...">
    中,因为通过
    <img>
    引用的SVG无法从父元素继承
    currentColor

Folder layout

文件夹布局

Each module must keep description assets under:
<module>/static/description/
├── icon.png                       # 140×140 module icon (per-module)
├── index.html                     # this file
└── assets/
    ├── brand.png                  # ← COPY FROM lema-odoo-indexhtml/assets/brand.png (do not regenerate)
    ├── email.svg                  # ← COPY FROM lema-odoo-indexhtml/assets/email.svg (do not regenerate)
    ├── video.gif                  # demo animation (optional, per-module)
    ├── icons/
    │   ├── star-purple.svg        # ← COPY FROM lema-odoo-indexhtml/assets/icons/star-purple.svg
    │   ├── star-blue.svg          # ← COPY FROM lema-odoo-indexhtml/assets/icons/star-blue.svg
    │   ├── star-green.svg         # ← COPY FROM lema-odoo-indexhtml/assets/icons/star-green.svg
    │   └── gear-purple.svg        # ← COPY FROM lema-odoo-indexhtml/assets/icons/gear-purple.svg
    ├── screenshots/               # all screenshot PNGs (per-module)
    └── modules/                   # related-products thumbnails (1.png, 2.png, ...) (per-module)
Files marked COPY FROM are canonical assets bundled with this skill — see "Bundled canonical assets" below. Everything else is per-module content the developer prepares.
Only reference paths that exist in
static/description/
. The validator follows local image URLs and rejects broken paths.
每个模块必须将描述资源保存在以下路径下:
<module>/static/description/
├── icon.png                       # 140×140模块图标(每个模块独有)
├── index.html                     # 本文件
└── assets/
    ├── brand.png                  # ← 从lema-odoo-indexhtml/assets/brand.png复制(请勿重新生成)
    ├── email.svg                  # ← 从lema-odoo-indexhtml/assets/email.svg复制(请勿重新生成)
    ├── video.gif                  # 演示动画(可选,每个模块独有)
    ├── icons/
    │   ├── star-purple.svg        # ← 从lema-odoo-indexhtml/assets/icons/star-purple.svg复制
    │   ├── star-blue.svg          # ← 从lema-odoo-indexhtml/assets/icons/star-blue.svg复制
    │   ├── star-green.svg         # ← 从lema-odoo-indexhtml/assets/icons/star-green.svg复制
    │   └── gear-purple.svg        # ← 从lema-odoo-indexhtml/assets/icons/gear-purple.svg复制
    ├── screenshots/               # 所有截图PNG(每个模块独有)
    └── modules/                   # 相关产品缩略图(1.png, 2.png, ...)(每个模块独有)
标记为COPY FROM的文件是随此技能捆绑的标准资源——见下文“捆绑的标准资源”。其他所有内容是开发者准备的每个模块独有的内容。
仅引用
static/description/
内存在的路径。验证器会检查本地图片URL,拒绝无效路径。

Pre-submission checklist

提交前检查清单

Before declaring the file ready, mentally walk through:
  • Page renders without any external CSS/JS loaded
  • No
    <script>
    tag anywhere in the file
  • No
    <iframe>
    ,
    <embed>
    ,
    <object>
    ,
    <form>
    tags
  • No
    data-bs-toggle
    attributes that require JS
  • No QWeb syntax (
    t-*
    attributes,
    <t>
    elements)
  • Every external link is either
    mailto:
    ,
    skype:
    , a canonical YouTube link, a Microsoft Teams link, or an
    https://apps.odoo.com/...
    Lema-module link
  • All copy is English
  • All image paths resolve inside
    static/description/
  • FAQ uses
    <details>
    /
    <summary>
    , not modals or accordion JS
  • Related Products uses the approved Bootstrap 5 carousel markup from
    lm_ai_summary
    (no separate
    <script>
    tag — Apps Store loads Bootstrap JS globally)
  • Footer year and version match the module's
    __manifest__.py
在声明文件就绪前,逐一检查:
  • 页面在未加载任何外部CSS/JS的情况下可正常渲染
  • 文件中无任何
    <script>
    标签
  • <iframe>
    <embed>
    <object>
    <form>
    标签
  • 无需要JS的
    data-bs-toggle
    属性
  • 无QWeb语法(
    t-*
    属性、
    <t>
    元素)
  • 每个外部链接均为
    mailto:
    skype:
    、规范YouTube链接、Microsoft Teams链接或
    https://apps.odoo.com/...
    的Lema模块链接
  • 所有文案均为英文
  • 所有图片路径在
    static/description/
    内可解析
  • 常见问题使用
    <details>
    /
    <summary>
    ,而非模态框或JS手风琴组件
  • 相关产品使用
    lm_ai_summary
    中已批准的Bootstrap 5轮播标记(无单独
    <script>
    标签——应用商店会全局加载Bootstrap JS)
  • 页脚的年份和版本与模块的
    __manifest__.py
    一致

Generating the file

生成文件

When the user asks for a new index.html:
  1. Ask for the module's display name, technical name, one-paragraph value proposition, primary feature list, and Odoo version target if not already in the conversation context.
  2. Copy the bundled canonical assets into the target module's
    static/description/assets/
    :
    • lema-odoo-indexhtml/assets/brand.png
      <module>/static/description/assets/brand.png
    • lema-odoo-indexhtml/assets/email.svg
      <module>/static/description/assets/email.svg
    • lema-odoo-indexhtml/assets/icons/star-purple.svg
      <module>/static/description/assets/icons/star-purple.svg
    • lema-odoo-indexhtml/assets/icons/star-blue.svg
      <module>/static/description/assets/icons/star-blue.svg
    • lema-odoo-indexhtml/assets/icons/star-green.svg
      <module>/static/description/assets/icons/star-green.svg
    • lema-odoo-indexhtml/assets/icons/gear-purple.svg
      <module>/static/description/assets/icons/gear-purple.svg
  3. Start from
    references/template.html
    and write it to
    <module>/static/description/index.html
    .
  4. Replace placeholders marked with
    {{MODULE_NAME}}
    ,
    {{MODULE_TAGLINE}}
    ,
    {{MODULE_VERSION}}
    ,
    {{ODOO_VERSION}}
    , etc.
  5. Drop sections that have no real content rather than padding them with filler — accuracy is required.
  6. Confirm the per-module assets the developer must still supply (
    icon.png
    , screenshots under
    assets/screenshots/
    , optional
    video.gif
    , related-module thumbnails under
    assets/modules/
    ).
  7. Run through the pre-submission checklist before reporting completion.
When reviewing an existing file:
  1. Read the file end-to-end.
  2. Produce a violations table: location → rule broken → fix.
  3. Offer to apply fixes inline.
当用户要求生成新的index.html时:
  1. 如果对话上下文未提供,询问模块的显示名称、技术名称、一段式价值主张、主要功能列表和目标Odoo版本。
  2. 将捆绑的标准资源复制到目标模块的
    static/description/assets/
    中:
    • lema-odoo-indexhtml/assets/brand.png
      <module>/static/description/assets/brand.png
    • lema-odoo-indexhtml/assets/email.svg
      <module>/static/description/assets/email.svg
    • lema-odoo-indexhtml/assets/icons/star-purple.svg
      <module>/static/description/assets/icons/star-purple.svg
    • lema-odoo-indexhtml/assets/icons/star-blue.svg
      <module>/static/description/assets/icons/star-blue.svg
    • lema-odoo-indexhtml/assets/icons/star-green.svg
      <module>/static/description/assets/icons/star-green.svg
    • lema-odoo-indexhtml/assets/icons/gear-purple.svg
      <module>/static/description/assets/icons/gear-purple.svg
  3. references/template.html
    开始,将其写入
    <module>/static/description/index.html
  4. 替换标记为
    {{MODULE_NAME}}
    {{MODULE_TAGLINE}}
    {{MODULE_VERSION}}
    {{ODOO_VERSION}}
    等的占位符。
  5. 删除无实际内容的板块,而非填充无关内容——准确性是必需的。
  6. 确认开发者仍需提供的每个模块独有的资源(
    icon.png
    assets/screenshots/
    下的截图、可选的
    video.gif
    assets/modules/
    下的相关模块缩略图)。
  7. 在报告完成前,运行提交前检查清单。
当审核现有文件时:
  1. 从头到尾阅读文件。
  2. 生成违规表:位置 → 违反的规则 → 修复方案。
  3. 提供在线修复的选项。

Reference files

参考文件

  • references/template.html
    — full compliant skeleton implementing all ten sections.
  • references/guidelines.md
    — verbatim copy of the Odoo Apps Store guidelines for quick lookup.
  • references/violations-cheatsheet.md
    — common review findings and their fixes.
  • references/template.html
    — 实现所有十个板块的完整合规框架。
  • references/guidelines.md
    — Odoo应用商店指南的逐字副本,用于快速查阅。
  • references/violations-cheatsheet.md
    — 常见审核发现及其修复方案。

Bundled canonical assets

捆绑的标准资源

The skill ships brand assets that must be reused as-is across every Lema Core module — do not regenerate or substitute them.
Skill pathPurposeCopy to (in target module)
assets/brand.png
Lema Core Technologies brand banner used in Hero Banner (section 2) and Footer (section 10)
<module>/static/description/assets/brand.png
assets/email.svg
Email icon used in Hero contact button and Footer
<module>/static/description/assets/email.svg
assets/icons/star-purple.svg
Title icon for Features group 1 (3 cards)
<module>/static/description/assets/icons/star-purple.svg
assets/icons/star-blue.svg
Title icon for Features group 2 (3 cards)
<module>/static/description/assets/icons/star-blue.svg
assets/icons/star-green.svg
Title icon for Features group 3 (3 cards)
<module>/static/description/assets/icons/star-green.svg
assets/icons/gear-purple.svg
Title icon for all 4 Technical Specifications cards
<module>/static/description/assets/icons/gear-purple.svg
When generating a new module's description page:
  1. Copy
    lema-odoo-indexhtml/assets/brand.png
    <module>/static/description/assets/brand.png
  2. Copy
    lema-odoo-indexhtml/assets/email.svg
    <module>/static/description/assets/email.svg
  3. Create
    <module>/static/description/assets/icons/
    and copy all four icon SVGs (
    star-purple.svg
    ,
    star-blue.svg
    ,
    star-green.svg
    ,
    gear-purple.svg
    ) into it
  4. Render the template with these paths already wired (the template already references
    assets/brand.png
    ,
    assets/email.svg
    , and
    assets/icons/*.svg
    — no edits needed)
Do not:
  • Re-export
    brand.png
    from a different source — the bundled file is the master copy approved for Apps Store use
  • Replace
    email.svg
    with a Font Awesome
    <i class="fa fa-envelope">
    — that brings back the forbidden external CSS dependency
  • Add new "canonical" assets directly into modules without first depositing them in this skill's
    assets/
    folder
If a future module needs an additional shared asset (e.g., a new
linkedin.svg
,
phone.svg
, or product-line logo), add it to
lema-odoo-indexhtml/assets/
first, then reference it from the template and from this table — that is how the convention propagates.
此技能附带品牌资源,必须在所有Lema Core模块中原样复用——请勿重新生成或替换。
技能路径用途复制到目标模块的路径
assets/brand.png
Hero横幅(板块2)和页脚(板块10)中使用的Lema Core Technologies品牌横幅
<module>/static/description/assets/brand.png
assets/email.svg
Hero联系按钮和页脚中使用的邮件图标
<module>/static/description/assets/email.svg
assets/icons/star-purple.svg
功能组1(3张卡片)的标题图标
<module>/static/description/assets/icons/star-purple.svg
assets/icons/star-blue.svg
功能组2(3张卡片)的标题图标
<module>/static/description/assets/icons/star-blue.svg
assets/icons/star-green.svg
功能组3(3张卡片)的标题图标
<module>/static/description/assets/icons/star-green.svg
assets/icons/gear-purple.svg
所有4个技术规格卡片的标题图标
<module>/static/description/assets/icons/gear-purple.svg
生成新模块的描述页面时:
  1. 复制
    lema-odoo-indexhtml/assets/brand.png
    <module>/static/description/assets/brand.png
  2. 复制
    lema-odoo-indexhtml/assets/email.svg
    <module>/static/description/assets/email.svg
  3. 创建
    <module>/static/description/assets/icons/
    并将四个图标SVG(
    star-purple.svg
    ,
    star-blue.svg
    ,
    star-green.svg
    ,
    gear-purple.svg
    )复制到其中
  4. 渲染模板,这些路径已预先配置(模板已引用
    assets/brand.png
    assets/email.svg
    assets/icons/*.svg
    ——无需编辑)
请勿:
  • 从其他来源重新导出
    brand.png
    ——捆绑文件是经批准用于应用商店的主副本
  • 用Font Awesome的
    <i class="fa fa-envelope">
    替换
    email.svg
    ——这会引入被禁止的外部CSS依赖
  • 在未先将新的“标准”资源存入此技能的
    assets/
    文件夹的情况下,直接添加到模块中
如果未来模块需要额外的共享资源(例如新的
linkedin.svg
phone.svg
或产品线标志),请先将其添加到
lema-odoo-indexhtml/assets/
中,然后从模板和此表中引用——这是约定的传播方式。