refactor: config in sub repo
This commit is contained in:
+18
-18
@@ -1,10 +1,7 @@
|
||||
import fs from 'fs'
|
||||
import process from 'process'
|
||||
import { Feed } from 'feed'
|
||||
|
||||
try {
|
||||
process.loadEnvFile()
|
||||
} catch {}
|
||||
import articlesConfig from './articles/config.json'
|
||||
|
||||
function getFiles(dir: string): string[] {
|
||||
return fs.readdirSync(dir).flatMap((name) => {
|
||||
@@ -49,9 +46,9 @@ function formatArticlePage(metadata: Record<string, string>, baseHtml: string):
|
||||
outHtml = outHtml.replace(/<.*?property="og:url".*?>/gm, '')
|
||||
outHtml = outHtml.replace(
|
||||
/<\/head>/gm,
|
||||
`<meta property="og:url" content="${process.env.VITE_BASE_URL}${metadata.path}/">\n</head>`,
|
||||
`<meta property="og:url" content="${articlesConfig['base_url']}${metadata.path}/">\n</head>`,
|
||||
)
|
||||
const blog_title = process.env.VITE_APP_TITLE?.replace(/(<([^>]+)>)/gi, '').trim()
|
||||
const blog_title = articlesConfig['title']?.replace(/(<([^>]+)>)/gi, '').trim()
|
||||
if (metadata.title) {
|
||||
const title = metadata.title.replace(/(<([^>]+)>)/gi, '').trim()
|
||||
outHtml = outHtml.replace(/<title>.*?<\/title>/gm, `<title>${blog_title} — ${title}</title>`)
|
||||
@@ -70,7 +67,7 @@ function formatArticlePage(metadata: Record<string, string>, baseHtml: string):
|
||||
outHtml = outHtml.replace(/<.*?property="og:image".*?>/gm, '')
|
||||
outHtml = outHtml.replace(
|
||||
/<\/head>/gm,
|
||||
`<meta property="og:image" content="${metadata.thumbnail.replace('./', process.env.VITE_BASE_URL + metadata.path + '/')}">\n</head>`,
|
||||
`<meta property="og:image" content="${metadata.thumbnail.replace('./', articlesConfig['base_url'] + metadata.path + '/')}">\n</head>`,
|
||||
)
|
||||
}
|
||||
return outHtml
|
||||
@@ -81,9 +78,9 @@ function addFeedArticle(metadata: Record<string, string>, feed: Feed) {
|
||||
feed.addItem({
|
||||
title: metadata.title.replace(/(<([^>]+)>)/gi, '').trim(),
|
||||
id: metadata.path,
|
||||
link: `${process.env.VITE_BASE_URL}${metadata.path}/`,
|
||||
link: `${articlesConfig['base_url']}${metadata.path}/`,
|
||||
date: new Date(Date.parse(metadata.date)),
|
||||
image: metadata.thumbnail.replace('./', process.env.VITE_BASE_URL + metadata.path + '/'),
|
||||
image: metadata.thumbnail.replace('./', articlesConfig['base_url'] + metadata.path + '/'),
|
||||
})
|
||||
}
|
||||
}
|
||||
@@ -101,16 +98,16 @@ const metadatas = getFiles('articles')
|
||||
.filter((metadata) => !!metadata)
|
||||
|
||||
const feed = new Feed({
|
||||
title: process.env.VITE_APP_TITLE?.replace(/(<([^>]+)>)/gi, '').trim() ?? '',
|
||||
id: process.env.VITE_BASE_URL,
|
||||
link: process.env.VITE_BASE_URL,
|
||||
language: process.env.VITE_APP_LANG,
|
||||
favicon: process.env.VITE_BASE_URL + '/articles/favicon.ico',
|
||||
title: articlesConfig['title']?.replace(/(<([^>]+)>)/gi, '').trim() ?? '',
|
||||
id: articlesConfig['base_url'],
|
||||
link: articlesConfig['base_url'],
|
||||
language: articlesConfig['lang'],
|
||||
favicon: articlesConfig['base_url'] + 'articles/favicon.ico',
|
||||
generator: 'md-blog',
|
||||
feedLinks: {
|
||||
json: process.env.VITE_BASE_URL + 'feed.json',
|
||||
atom: process.env.VITE_BASE_URL + 'atom.xml',
|
||||
rss: process.env.VITE_BASE_URL + 'rss',
|
||||
json: articlesConfig['base_url'] + 'feed.json',
|
||||
atom: articlesConfig['base_url'] + 'atom.xml',
|
||||
rss: articlesConfig['base_url'] + 'rss',
|
||||
},
|
||||
updated: new Date(
|
||||
Math.max(
|
||||
@@ -129,5 +126,8 @@ metadatas.forEach((metadata) => {
|
||||
})
|
||||
|
||||
fs.writeFileSync('dist/feed.json', feed.json1())
|
||||
console.info(`Wrote dist/feed.json`)
|
||||
fs.writeFileSync('dist/atom.xml', feed.atom1())
|
||||
fs.writeFileSync('dist/rss', feed.rss2())
|
||||
console.info(`Wrote dist/atom.xml`)
|
||||
fs.writeFileSync('dist/rss.xml', feed.rss2())
|
||||
console.info(`Wrote dist/rss.xml`)
|
||||
|
||||
Reference in New Issue
Block a user