loadDirectory method
Load all content files from a directory
Implementation
Future<List<ContentDocument>> loadDirectory(String dirPath) async {
final fullPath = p.join(config.contentDir, dirPath);
final dir = Directory(fullPath);
if (!await dir.exists()) {
return [];
}
final documents = <ContentDocument>[];
await for (final entity in dir.list(recursive: true)) {
if (entity is File) {
final ext = p.extension(entity.path);
if (config.extensions.contains(ext)) {
final relativePath = p.relative(entity.path, from: config.contentDir);
final doc = await _parseFile(entity, relativePath);
if (doc != null && (config.includeDrafts || !doc.draft)) {
documents.add(doc);
}
}
}
}
// Sort by order, then by title
documents.sort((a, b) {
final orderCompare = a.order.compareTo(b.order);
return orderCompare != 0 ? orderCompare : a.title.compareTo(b.title);
});
return documents;
}