in src/tooling/docs-assembler/Navigation/GlobalNavigationFile.cs [282:328]
private static string? ReadToc(
YamlStreamReader reader,
YamlMappingNode tocEntry,
ref string? parent,
out string? pathPrefix,
out Uri? sourceUri
)
{
string? repository = null;
string? source = null;
pathPrefix = null;
foreach (var entry in tocEntry.Children)
{
var key = ((YamlScalarNode)entry.Key).Value;
switch (key)
{
case "toc":
source = reader.ReadString(entry);
if (source != null && !source.Contains("://"))
{
parent = source;
pathPrefix = source;
source = ContentSourceMoniker.CreateString(NarrativeRepository.RepositoryName, source);
}
break;
case "repo":
repository = reader.ReadString(entry);
break;
case "path_prefix":
pathPrefix = reader.ReadString(entry);
break;
}
}
if (repository is not null)
{
if (source is not null)
reader.EmitError($"toc config defines 'repo' can not be combined with 'toc': {source}", tocEntry);
pathPrefix = string.Join("/", [parent, repository]);
source = ContentSourceMoniker.CreateString(repository, parent);
}
pathPrefix = ReadTocSourcePathPrefix(reader, tocEntry, source, out sourceUri, pathPrefix);
return source;
}