generateProjectInfoMarkdown static method
String
generateProjectInfoMarkdown(
)
Implementation
static String generateProjectInfoMarkdown() {
final projectInfo = ProjectInfoCollector().projectInfo;
final rows = [
["name", "description", "version"],
for (var package in projectInfo.packages)
[
"[${package.name}](${package.path})",
package.description ?? "",
package.version ?? "",
]
];
/// column的宽度相同,且为字符长度最大值
final widths = [1, 1, 1];
for (var row in rows) {
for (var i = 0; i < 3; i++) {
if (row[i].length > widths[i]) {
widths[i] = row[i].length;
}
}
}
/// 根据宽度,在文本右边附加空格
for (var row in rows) {
for (var i = 0; i < 3; i++) {
row[i] = row[i].padRight(widths[i]);
}
}
final lines = rows.map((e) => '| ${e.join(' | ')} |').toList()
..insert(1, '|${widths.map((e) => '-' * (e + 2)).join('|')}|');
return lines.join('\n');
}