1
- import {
2
- CSS ,
3
- DB ,
4
- groupBy ,
5
- jsonfeedToAtom ,
6
- mustache ,
7
- path ,
8
- titleCase ,
9
- } from "./deps.ts" ;
1
+ import { CSS , DB , groupBy , jsonfeedToAtom , mustache , path } from "./deps.ts" ;
10
2
import {
11
3
BuildOptions ,
12
4
BuiltMarkdownInfo ,
13
5
DayInfo ,
14
6
Feed ,
7
+ FeedInfo ,
15
8
FeedItem ,
16
9
FileInfo ,
17
10
Item ,
@@ -23,6 +16,7 @@ import {
23
16
CONTENT_DIR ,
24
17
INDEX_HTML_PATH ,
25
18
INDEX_MARKDOWN_PATH ,
19
+ SUBSCRIPTION_URL ,
26
20
} from "./constant.ts" ;
27
21
import {
28
22
formatHumanTime ,
@@ -42,6 +36,7 @@ import {
42
36
readTextFile ,
43
37
slugy ,
44
38
startDateOfWeek ,
39
+ titleCase ,
45
40
writeJSONFile ,
46
41
writeTextFile ,
47
42
} from "./util.ts" ;
@@ -98,9 +93,9 @@ export default async function main(
98
93
) ;
99
94
relativeFolder = path . join ( relativeFolder , originalFilepathWithoutExt ) ;
100
95
}
96
+ const baseFeed = getBaseFeed ( ) ;
101
97
for ( let i = 0 ; i < 2 ; i ++ ) {
102
98
const buildMarkdownStartTime = Date . now ( ) ;
103
- const baseFeed = getBaseFeed ( ) ;
104
99
const isDay = i === 0 ;
105
100
let currentNavHeader = `[ Daily / [Weekly](${
106
101
pathnameToWeekFilePath ( fileConfig . pathname )
@@ -112,20 +107,16 @@ export default async function main(
112
107
pathnameToOverviewFilePath ( fileConfig . pathname )
113
108
} ) ]`;
114
109
}
115
- const nav = `[Home](/${ INDEX_MARKDOWN_PATH } ) · [Feed](${
110
+ const nav = `[🏠 Home](/${ INDEX_MARKDOWN_PATH } ) · [🔥 Feed](${
116
111
pathnameToFeedUrl ( fileConfig . pathname , isDay )
117
- } ) · [Repo ](${
112
+ } ) · [📮 Subscribe]( ${ SUBSCRIPTION_URL } ) · [🔗 ${ sourceIdentifier } ](${
118
113
getRepoHTMLURL ( repoMeta . url , repoMeta . default_branch , originalFilepath )
119
- } ) · ${ sourceCategory } · ⭐ ${
120
- formatNumber ( repoMeta . stargazers_count )
121
- } · 📝 ${ formatHumanTime ( new Date ( dbFileMeta . updated_at ) ) } · ✅ ${
122
- formatHumanTime ( new Date ( dbFileMeta . checked_at ) )
123
- }
114
+ } ) · ⭐ ${ formatNumber ( repoMeta . stargazers_count ) } · 🏷️ ${ sourceCategory }
124
115
125
116
${ currentNavHeader }
126
117
127
118
` ;
128
- const feedTitle = `Track ${ titleCase ( repoMeta . name ) } ${
119
+ const feedTitle = `Track ${ fileConfig . name } Updates ${
129
120
isDay ? "Daily" : "Weekly"
130
121
} `;
131
122
const feedDescription = repoMeta . description ;
@@ -190,7 +181,8 @@ ${currentNavHeader}
190
181
const url = `${ domain } /${ slug } ` ;
191
182
const feedItem : FeedItem = {
192
183
id : itemUrl ,
193
- title : dayInfo . name ,
184
+ title : `${ fileConfig . name } Updates on ${ dayInfo . name } ` ,
185
+ _short_title : dayInfo . name ,
194
186
_slug : slug ,
195
187
_filepath : pathnameToFilePath ( "/" + slug ) ,
196
188
url : itemUrl ,
@@ -211,24 +203,30 @@ ${currentNavHeader}
211
203
return bDate . getTime ( ) - aDate . getTime ( ) ;
212
204
} ) ;
213
205
214
- const title = `Track ${ repoMeta . name } ${ isDay ? "Daily" : "Weekly" } ` ;
215
- const feed : Feed = {
206
+ const feedSeoTitle =
207
+ `Track ${ fileConfig . name } (${ sourceIdentifier } ) Updates ${
208
+ isDay ? "Daily" : "Weekly"
209
+ } `;
210
+ const feedInfo : FeedInfo = {
216
211
...baseFeed ,
217
- title,
218
- _seo_title : `${ title } - ${ siteConfig . title } ` ,
212
+ title : feedTitle ,
213
+ _seo_title : `${ feedSeoTitle } - ${ siteConfig . title } ` ,
219
214
description : repoMeta . description ,
220
215
home_page_url : `${ domain } /${ dailyRelativeFolder } /` ,
221
216
feed_url : `${ domain } /${ dailyRelativeFolder } /feed.json` ,
222
- items : feedItems ,
223
217
_nav_text : nav ,
224
218
} ;
219
+ const feed : Feed = {
220
+ ...feedInfo ,
221
+ items : feedItems ,
222
+ } ;
225
223
const markdownDoc = `# ${ feed . title }
226
224
227
225
${ feed . description }
228
226
229
227
${ feed . _nav_text } ${
230
228
feedItems . map ( ( item ) => {
231
- return `\n\n## [${ item . title } ](/${ CONTENT_DIR } /${ item . _external_slug } ${ INDEX_MARKDOWN_PATH } )${ item . content_text } ` ;
229
+ return `\n\n## [${ item . _short_title } ](/${ CONTENT_DIR } /${ item . _external_slug } ${ INDEX_MARKDOWN_PATH } )${ item . content_text } ` ;
232
230
} ) . join ( "" )
233
231
} `;
234
232
if ( isBuildMarkdown ) {
@@ -250,7 +248,7 @@ ${feed._nav_text}${
250
248
// add body, css to feed
251
249
const body = renderMarkdown ( markdownDoc ) ;
252
250
const htmlDoc = mustache . render ( htmlIndexTemplateContent , {
253
- ...feed ,
251
+ ...feedInfo ,
254
252
body,
255
253
CSS ,
256
254
} ) ;
@@ -320,14 +318,15 @@ ${feed._nav_text}${
320
318
pathnameToFilePath ( fileConfig . pathname )
321
319
} ) / [Weekly](${ pathnameToWeekFilePath ( fileConfig . pathname ) } ) / Overview ]`;
322
320
323
- const nav = `
324
- [Home](/${ INDEX_MARKDOWN_PATH } ) · [Feed](${
321
+ const nav = `[🏠 Home](/${ INDEX_MARKDOWN_PATH } ) · [🔥 Feed](${
325
322
pathnameToFeedUrl ( fileConfig . pathname , true )
326
- } ) · [Repo](${
327
- getRepoHTMLURL ( repoMeta . url , repoMeta . default_branch , filepath )
328
- } ) · ⭐ ${ formatNumber ( repoMeta . stargazers_count ) } · 📝 ${
323
+ } ) · [📮 Subscribe](${ SUBSCRIPTION_URL } ) · [🔗 Repo](${
324
+ getRepoHTMLURL ( repoMeta . url , repoMeta . default_branch , originalFilepath )
325
+ } ) · ⭐ ${
326
+ formatNumber ( repoMeta . stargazers_count )
327
+ } · 🏷️ ${ sourceCategory } · 📝 ${
329
328
formatHumanTime ( new Date ( dbFileMeta . updated_at ) )
330
- } · ✅ ${ formatHumanTime ( new Date ( dbFileMeta . checked_at ) ) }
329
+ }
331
330
332
331
${ currentNavHeader }
333
332
@@ -339,13 +338,9 @@ ${currentNavHeader}
339
338
"readme" ,
340
339
INDEX_MARKDOWN_PATH ,
341
340
) ;
342
- const overviewHtmlPath = path . join (
343
- getPublicPath ( ) ,
344
- relativeFolder ,
345
- "readme" ,
346
- INDEX_HTML_PATH ,
347
- ) ;
348
- const readmeRendered = `# ${ repoMeta . name }
341
+ const overviewTitle = `${ fileConfig . name } Overview` ;
342
+
343
+ const readmeRendered = `# ${ overviewTitle }
349
344
350
345
${ repoMeta . description }
351
346
@@ -363,8 +358,19 @@ ${readmeContent}
363
358
if ( isBuildHtml ) {
364
359
// add body, css to feed
365
360
const body = renderMarkdown ( readmeRendered ) ;
361
+ const overviewSeoTitle =
362
+ `${ fileConfig . name } (${ sourceIdentifier } ) Overview` ;
363
+ const overviewFeedInfo : FeedInfo = {
364
+ ...baseFeed ,
365
+ title : overviewTitle ,
366
+ _seo_title : `${ overviewSeoTitle } - ${ siteConfig . title } ` ,
367
+ description : repoMeta . description ,
368
+ home_page_url : `${ domain } /${ relativeFolder } /readme/` ,
369
+ feed_url : `${ domain } /${ relativeFolder } /feed.json` ,
370
+ _nav_text : "" ,
371
+ } ;
366
372
const htmlDoc = mustache . render ( htmlIndexTemplateContent , {
367
- _seo_title : ` ${ titleCase ( repoMeta . name ) } ` ,
373
+ ... overviewFeedInfo ,
368
374
body : body ,
369
375
CSS ,
370
376
} ) ;
0 commit comments