Fix links to external pages
This commit is contained in:
@@ -289,16 +289,23 @@ struct Element {
|
||||
self.readElements(in: folder, source: path, log: log)
|
||||
}
|
||||
|
||||
func getContainedIds(log: MetadataInfoLogger) -> [String : String] {
|
||||
elements.reduce(into: [id : path]) { dict, element in
|
||||
element.getContainedIds(log: log).forEach { id, path in
|
||||
if let existing = dict[id] {
|
||||
log.error("Conflicting id with \(existing)", source: path)
|
||||
} else {
|
||||
dict[id] = path
|
||||
}
|
||||
func getExternalPageMap(language: String) -> [String : String] {
|
||||
var result = [String : String]()
|
||||
if let ext = getExternalLink(for: language) {
|
||||
result[id] = ext
|
||||
} else {
|
||||
result[id] = path + Element.htmlPagePathAddition(for: language)
|
||||
}
|
||||
elements.forEach { element in
|
||||
element.getExternalPageMap(language: language).forEach { key, value in
|
||||
result[key] = value
|
||||
}
|
||||
}
|
||||
return result
|
||||
}
|
||||
|
||||
private func getExternalLink(for language: String) -> String? {
|
||||
languages.first { $0.language == language }?.externalUrl
|
||||
}
|
||||
}
|
||||
|
||||
@@ -381,6 +388,9 @@ extension Element {
|
||||
- Returns: The relative url from a localized page of the element to the target file.
|
||||
*/
|
||||
func relativePathToOtherSiteElement(file: String) -> String {
|
||||
guard !file.hasPrefix("/") else {
|
||||
return file
|
||||
}
|
||||
// Note: The element `path` is missing the last component
|
||||
// i.e. travel/alps instead of travel/alps/en.html
|
||||
let ownParts = path.components(separatedBy: "/")
|
||||
|
Reference in New Issue
Block a user