diff --git a/Sources/SwiftDocC/SourceRepository/SourceRepository.swift b/Sources/SwiftDocC/SourceRepository/SourceRepository.swift index 277c93dd7e..e3d7a42849 100644 --- a/Sources/SwiftDocC/SourceRepository/SourceRepository.swift +++ b/Sources/SwiftDocC/SourceRepository/SourceRepository.swift @@ -92,12 +92,15 @@ public extension SourceRepository { /// Creates a source repository hosted by the device's filesystem. /// - /// Use this source repository to format `file://` links to files on the + /// Use this source repository to format `doc-source-file://` links to files on the /// device where documentation is being presented. + /// + /// This source repository uses a custom scheme to offer more control local source file navigation. static func localFilesystem() -> SourceRepository { SourceRepository( checkoutPath: "", - sourceServiceBaseURL: URL(fileURLWithPath: "/"), + // 2 slashes to specify an empty authority/host component and 1 slash to specify a base path at the root. + sourceServiceBaseURL: URL(string: "doc-source-file:///")!, formatLineNumber: { line in "L\(line)" } ) } diff --git a/Tests/SwiftDocCTests/DocumentationService/ConvertService/ConvertServiceTests.swift b/Tests/SwiftDocCTests/DocumentationService/ConvertService/ConvertServiceTests.swift index ed8a4959f7..b53a79539b 100644 --- a/Tests/SwiftDocCTests/DocumentationService/ConvertService/ConvertServiceTests.swift +++ b/Tests/SwiftDocCTests/DocumentationService/ConvertService/ConvertServiceTests.swift @@ -188,7 +188,7 @@ class ConvertServiceTests: XCTestCase { XCTAssertEqual( renderNode.metadata.remoteSource?.url.absoluteString, - "file:///private/tmp/test.swift#L2" + "doc-source-file:///private/tmp/test.swift#L2" ) } } diff --git a/Tests/SwiftDocCTests/SourceRepository/SourceRepositoryTests.swift b/Tests/SwiftDocCTests/SourceRepository/SourceRepositoryTests.swift index 181df4287a..ad921a99c2 100644 --- a/Tests/SwiftDocCTests/SourceRepository/SourceRepositoryTests.swift +++ b/Tests/SwiftDocCTests/SourceRepository/SourceRepositoryTests.swift @@ -88,7 +88,7 @@ class SourceRepositoryTests: XCTestCase { XCTAssertEqual( SourceRepository.localFilesystem() .format(sourceFileURL: URL(string: "file:///path/to/file")!, lineNumber: 5), - URL(string: "file:///path/to/file#L5")! + URL(string: "doc-source-file:///path/to/file#L5")! ) } }