diff --git a/functions/src/publish.ts b/functions/src/publish.ts index 25fb500..e66835d 100644 --- a/functions/src/publish.ts +++ b/functions/src/publish.ts @@ -56,6 +56,7 @@ export default async function publish(): Promise { entries, }; uploadDictionaryToStorage(dictionary).catch(console.error); + uploadSitemap(dictionary).catch(console.error); // TODO: make this async and run after publish response doHunspellEtc(dictionary.info, entries).catch(console.error); return { @@ -254,6 +255,10 @@ async function uploadAllWordsToStoarage( ); } +async function uploadSitemap(dictionary: T.Dictionary) { + await upload(makeSitemap(dictionary), "sitemap.xml"); +} + async function uploadDictionaryToStorage(dictionary: T.Dictionary) { const dictionaryBuffer = writeDictionary(dictionary); const dictionaryInfoBuffer = writeDictionaryInfo(dictionary.info); @@ -268,6 +273,19 @@ async function uploadDictionaryToStorage(dictionary: T.Dictionary) { ]); } +function makeSitemap(dictionary: T.Dictionary): string { + return ` + + ${dictionary.entries.map( + (entry) => + ` + https://dictionary.lingdocs.com/word?id=${entry.ts} + ` + )} + +`; +} + // function makeHunspell(wordlist: string[]) { // return { // dicContent: wordlist.reduce((acc, word) => acc + word + "\n", wordlist.length + "\n"),