mirror of https://github.com/vapor/docs.git
63 lines
1.3 KiB
Swift
Executable File
63 lines
1.3 KiB
Swift
Executable File
#!/usr/bin/swift
|
|
|
|
import Foundation
|
|
|
|
struct SearchIndex: Codable {
|
|
let config: SearchIndexConfig
|
|
var docs: [SearchIndexDocs]
|
|
}
|
|
|
|
struct SearchIndexConfig: Codable {
|
|
let indexing: String?
|
|
let lang: [String]
|
|
let minSearchLength: Int?
|
|
let prebuildIndex: Bool?
|
|
let separator: String?
|
|
|
|
enum CodingKeys: String, CodingKey {
|
|
case indexing
|
|
case lang
|
|
case minSearchLength = "min_search_length"
|
|
case prebuildIndex = "prebuild_index"
|
|
case separator
|
|
}
|
|
}
|
|
|
|
struct SearchIndexDocs: Codable {
|
|
let location: String
|
|
let text: String
|
|
let title: String
|
|
}
|
|
|
|
let searchIndexPath = "site/search/search_index.json"
|
|
|
|
let fileURL = URL(fileURLWithPath: searchIndexPath)
|
|
let indexData = try Data(contentsOf: fileURL)
|
|
let searchIndex = try JSONDecoder().decode(SearchIndex.self, from: indexData)
|
|
var newSearchIndex = searchIndex
|
|
var searchIndexDocs = [SearchIndexDocs]()
|
|
|
|
let knownLanguages = [
|
|
"en",
|
|
"de",
|
|
"es",
|
|
"fr",
|
|
"it",
|
|
"ja",
|
|
"ko",
|
|
"nl",
|
|
"pl",
|
|
"zh",
|
|
].map { "\($0)/" }
|
|
|
|
|
|
for doc in newSearchIndex.docs {
|
|
if !knownLanguages.contains(where: { doc.location.starts(with: $0) }) {
|
|
searchIndexDocs.append(doc)
|
|
}
|
|
}
|
|
|
|
newSearchIndex.docs = searchIndexDocs
|
|
|
|
try JSONEncoder().encode(newSearchIndex).write(to: fileURL)
|