31 lines
1.1 KiB
JavaScript
31 lines
1.1 KiB
JavaScript
import Debug from 'debug';
|
|
|
|
import {default as resolveGitPaths} from '../utils/resolve-git-paths.js';
|
|
import {default as getContributors} from '../utils/get-contributors.js';
|
|
|
|
export default async function(pageData, {
|
|
debug = Debug('@lando/add-contributors'), // eslint-disable-line
|
|
siteConfig,
|
|
} = {}) {
|
|
debug = debug.extend(`${pageData.relativePath}`);
|
|
// get path
|
|
const {frontmatter, relativePath} = pageData;
|
|
// compute git things
|
|
const gitDir = siteConfig?.userConfig?.gitRoot;
|
|
const gitPaths = resolveGitPaths(relativePath, siteConfig.srcDir.replace(`${gitDir}/`, ''), frontmatter['git-include']);
|
|
|
|
// get contributors
|
|
const contributors = frontmatter.contributors || siteConfig?.site?.themeConfig?.contributors || false;
|
|
|
|
// add contributors unless turned off
|
|
if (contributors !== false) {
|
|
try {
|
|
pageData.contributors = await getContributors(gitDir, contributors, {debug, paths: gitPaths});
|
|
debug('set contributors %o', pageData.contributors);
|
|
} catch (error) {
|
|
debug('could not get contributor information, considering this non-fatal but you should investigate and resolve');
|
|
console.error(error);
|
|
}
|
|
}
|
|
};
|