Files
Navius/frontend/lib/core/utils/text.dart
T
CNWei 1c98340fc5 feat: 实现导航页基础功能
- 添加导航条目和分类数据模型
- 实现导航卡片网格展示
- 支持点击卡片打开链接
- 添加主题样式(渐变色、卡片阴影)
- 区分系统默认和自定义条目
- 添加分类统计信息"
2026-09-19 21:53:15 +08:00

18 lines
744 B
Dart

/// 取字符串的第一个字符。
///
/// 用 `runes` 而不是 `substring(0, 1)`:中文与 emoji 不会被截成半个字符。
/// 侧栏折叠后的短标签、卡片左上角的字母图标都依赖这条规则,
/// 放在这里保证三处(logo、导航、卡片)表现一致。
String firstChar(String text, {String fallback = '·'}) {
if (text.isEmpty) {
return fallback;
}
return String.fromCharCode(text.runes.first);
}
/// 字符数(不是字节数)。
///
/// 和后端 `util::char_count` 的口径一致:先去掉首尾空白,再数字符。
/// 中文一个字算一个,所以「最多 60 个字符」用 `runes.length` 而不是 `length`。
int charCount(String text) => text.trim().runes.length;