@@ -58,20 +58,34 @@ function titleFromDir(dir) {
5858 return dir . replace ( / - / g, " " ) . replace ( / \b \w / g, ( char ) => char . toUpperCase ( ) ) ;
5959}
6060
61+ function pageData ( project , relativeFile ) {
62+ const filePath = path . join ( docsSrcDir , project , relativeFile ) ;
63+ const content = fs . readFileSync ( filePath , "utf8" ) ;
64+ return matter ( content ) . data ;
65+ }
66+
67+ function pageTitle ( project , relativeFile ) {
68+ const title = pageData ( project , relativeFile ) . title ;
69+ if ( typeof title === "string" && title . trim ( ) !== "" ) {
70+ return title ;
71+ }
72+ if ( relativeFile === "index.md" ) {
73+ return project ;
74+ }
75+
76+ return titleFromFile ( path . basename ( relativeFile ) ) ;
77+ }
78+
6179function pageItem ( project , relativeFile ) {
6280 const slug = relativeFile . replace ( / \. m d $ / , "" ) ;
63- const file = path . basename ( relativeFile ) ;
64-
6581 return {
66- text : titleFromFile ( file ) ,
82+ text : pageTitle ( project , relativeFile ) ,
6783 link : `/${ project } /${ slug } ` ,
6884 } ;
6985}
7086
7187function pageOrder ( project , relativeFile ) {
72- const filePath = path . join ( docsSrcDir , project , relativeFile ) ;
73- const content = fs . readFileSync ( filePath , "utf8" ) ;
74- const order = matter ( content ) . data . order ;
88+ const order = pageData ( project , relativeFile ) . order ;
7589
7690 return Number . isFinite ( order ) ? order : Number . POSITIVE_INFINITY ;
7791}
@@ -116,7 +130,7 @@ function buildSidebar() {
116130 `/${ project } /` ,
117131 [
118132 {
119- text : project ,
133+ text : pageTitle ( project , "index.md" ) ,
120134 items : [
121135 { text : "Overview" , link : `/${ project } /` } ,
122136 ...pages . map ( ( file ) => pageItem ( project , file ) ) ,
@@ -137,7 +151,7 @@ function buildSidebar() {
137151
138152function buildProjectNavItems ( ) {
139153 return listProjects ( ) . map ( ( project ) => ( {
140- text : project ,
154+ text : pageTitle ( project , "index.md" ) ,
141155 link : `/${ project } /` ,
142156 } ) ) ;
143157}
0 commit comments