docusaurus-plugin-typedoc-api
Version:
Docusaurus plugin that provides source code API documentation powered by TypeDoc.
37 lines (35 loc) • 1.44 kB
JavaScript
;
const useDocusaurusContext = require('@docusaurus/useDocusaurusContext');
const useGitRefName = require('../hooks/useGitRefName.js');
const jsxRuntime = require('react/jsx-runtime');
const _interopDefault = e => e && e.__esModule ? e : {
default: e
};
const useDocusaurusContext__default = /*#__PURE__*/_interopDefault(useDocusaurusContext);
function replaceWithSrc(url) {
// Always link the source file
return url.replace(/\/(dts|dist|lib|build|es|esm|cjs|mjs)\//, '/src/');
}
function SourceLink({
sources = []
}) {
const _useDocusaurusContext = useDocusaurusContext__default.default(),
siteConfig = _useDocusaurusContext.siteConfig;
const gitRefName = useGitRefName.useGitRefName();
if (sources.length === 0) {
return null;
}
return /*#__PURE__*/jsxRuntime.jsx(jsxRuntime.Fragment, {
children: sources.map(source => /*#__PURE__*/jsxRuntime.jsx("a", {
className: "tsd-anchor",
href: source.url || `https://${siteConfig.githubHost}${siteConfig.githubPort ? `:${siteConfig.githubPort}` : ''}/${siteConfig.organizationName}/${siteConfig.projectName}/blob/${gitRefName}/${replaceWithSrc(source.fileName)}#L${source.line}`,
rel: "noreferrer",
target: "_blank",
children: /*#__PURE__*/jsxRuntime.jsx("i", {
className: "codicon codicon-file-code"
})
}, source.fileName))
});
}
exports.SourceLink = SourceLink;
//# sourceMappingURL=SourceLink.js.map