详细说明: - 基于文旅订单班框架复制创建food-order-demo项目 - 修改端口配置为4174避免冲突 - 更新LandingPage为青莳轻食主题(绿色健康风格) - 重新定义7个食品行业专业Agent: * 市场研究专家:轻食市场分析、客群画像 * 营养配方师:营养成分配比、低卡高蛋白设计 * 供应链管理专家:有机食材供应、溯源体系 * 品牌策划师:品牌定位、店铺空间布局 * 财务分析师:投资预算、ROI分析 * 运营管理专家:运营流程、品控标准 * 食品创业导师:中央协调、方案整合 - 创建专用启动脚本start.sh - 验证系统可正常运行在端口4174 - 实现代码复用率90%,符合预期目标 影响文件: web_frontend/food-order-demo/ 技术栈: React 18 + TypeScript + Tailwind CSS + Zustand
40 lines
1.1 KiB
JavaScript
40 lines
1.1 KiB
JavaScript
/**
|
|
* @import {Join} from 'mdast-util-to-markdown'
|
|
*/
|
|
|
|
import {formatCodeAsIndented} from './util/format-code-as-indented.js'
|
|
import {formatHeadingAsSetext} from './util/format-heading-as-setext.js'
|
|
|
|
/** @type {Array<Join>} */
|
|
export const join = [joinDefaults]
|
|
|
|
/** @type {Join} */
|
|
function joinDefaults(left, right, parent, state) {
|
|
// Indented code after list or another indented code.
|
|
if (
|
|
right.type === 'code' &&
|
|
formatCodeAsIndented(right, state) &&
|
|
(left.type === 'list' ||
|
|
(left.type === right.type && formatCodeAsIndented(left, state)))
|
|
) {
|
|
return false
|
|
}
|
|
|
|
// Join children of a list or an item.
|
|
// In which case, `parent` has a `spread` field.
|
|
if ('spread' in parent && typeof parent.spread === 'boolean') {
|
|
if (
|
|
left.type === 'paragraph' &&
|
|
// Two paragraphs.
|
|
(left.type === right.type ||
|
|
right.type === 'definition' ||
|
|
// Paragraph followed by a setext heading.
|
|
(right.type === 'heading' && formatHeadingAsSetext(right, state)))
|
|
) {
|
|
return
|
|
}
|
|
|
|
return parent.spread ? 1 : 0
|
|
}
|
|
}
|