@@ -17,7 +17,7 @@ extension SwiftDoc {
1717 var inputs : [ String ]
1818
1919 @Option ( name: [ . long, . customShort( " n " ) ] ,
20- help: " The name of the module " )
20+ help: " The name of the module " )
2121 var moduleName : String
2222
2323 @Option ( name: . shortAndLong,
@@ -47,15 +47,6 @@ extension SwiftDoc {
4747
4848 var pages : [ String : Page ] = [ : ]
4949
50- switch format {
51- case . commonmark:
52- pages [ " Home " ] = HomePage ( module: module)
53- pages [ " _Sidebar " ] = SidebarPage ( module: module)
54- pages [ " _Footer " ] = FooterPage ( )
55- case . html:
56- pages [ " Home " ] = HomePage ( module: module)
57- }
58-
5950 var globals : [ String : [ Symbol ] ] = [ : ]
6051 for symbol in module. interface. topLevelSymbols. filter ( { $0. isPublic } ) {
6152 switch symbol. api {
@@ -76,19 +67,43 @@ extension SwiftDoc {
7667 pages [ path ( for: name) ] = GlobalPage ( module: module, name: name, symbols: symbols)
7768 }
7869
79- try pages. map { $0 } . parallelForEach {
70+ guard !pages. isEmpty else { return }
71+
72+ if pages. count == 1 , let page = pages. first? . value {
8073 let filename : String
8174 switch format {
8275 case . commonmark:
83- filename = " \( $0. key) .md "
84- case . html where $0. key == " Home " :
85- filename = " index.html "
76+ filename = " Home.md "
8677 case . html:
87- filename = " \( $0 . key ) / index.html"
78+ filename = " index.html "
8879 }
8980
9081 let url = outputDirectoryURL. appendingPathComponent ( filename)
91- try $0. value. write ( to: url, format: format)
82+ try page. write ( to: url, format: format)
83+ } else {
84+ switch format {
85+ case . commonmark:
86+ pages [ " Home " ] = HomePage ( module: module)
87+ pages [ " _Sidebar " ] = SidebarPage ( module: module)
88+ pages [ " _Footer " ] = FooterPage ( )
89+ case . html:
90+ pages [ " Home " ] = HomePage ( module: module)
91+ }
92+
93+ try pages. map { $0 } . parallelForEach {
94+ let filename : String
95+ switch format {
96+ case . commonmark:
97+ filename = " \( $0. key) .md "
98+ case . html where $0. key == " Home " :
99+ filename = " index.html "
100+ case . html:
101+ filename = " \( $0. key) /index.html "
102+ }
103+
104+ let url = outputDirectoryURL. appendingPathComponent ( filename)
105+ try $0. value. write ( to: url, format: format)
106+ }
92107 }
93108 }
94109 }
0 commit comments