diff --git a/docusaurus.config.js b/docusaurus.config.js index 323140d10b..edca79845f 100644 --- a/docusaurus.config.js +++ b/docusaurus.config.js @@ -1,4 +1,5 @@ const { join, resolve } = require('node:path'); +const { parse } = require('node:url'); const clsx = require('clsx'); const { createApiPageMD, createInfoPageMD } = require('docusaurus-plugin-openapi-docs/lib/markdown'); @@ -282,6 +283,7 @@ module.exports = { '@signalwire/docusaurus-plugin-llms-txt', /** @type {import('@signalwire/docusaurus-plugin-llms-txt').PluginOptions} */ ({ + siteDescription: 'The entire content of Apify documentation is available in a single Markdown file at https://docs.apify.com/llms-full.txt', content: { includeVersionedDocs: false, enableLlmsFullTxt: true, @@ -292,9 +294,13 @@ module.exports = { remarkStringify: { handlers: { link: (node) => { - const isUrlInternal = isInternal(node.url); - const url = isUrlInternal ? `${config.absoluteUrl}${node.url}` : node.url; + if (node.title?.startsWith('Direct link to')) return ''; + const parsedUrl = parse(node.url); + const isUrlInternal = isInternal(parsedUrl, config.absoluteUrl); + const url = isUrlInternal ? `${config.absoluteUrl}${parsedUrl.pathname}.md` : node.url; + + if (isUrlInternal && !parsedUrl.pathname) return ''; if (node.title) return `[${node.title}](${url})`; return url; }, diff --git a/tools/utils/externalLink.js b/tools/utils/externalLink.js index 774c4bf036..b806684ccf 100644 --- a/tools/utils/externalLink.js +++ b/tools/utils/externalLink.js @@ -2,16 +2,13 @@ const { parse } = require('node:url'); const visit = import('unist-util-visit').then((m) => m.visit); -const internalUrls = ['sdk.apify.com']; +const internalUrl = 'docs.apify.com'; /** * @param {import('url').UrlWithStringQuery} href */ -exports.isInternal = (href) => { - return internalUrls.some( - (internalUrl) => href.host === internalUrl - || (!href.protocol && !href.host && (href.pathname || href.hash)), - ); +exports.isInternal = (href, hostName) => { + return href.host === hostName || (!href.protocol && !href.host && (href.pathname || href.hash)); }; /** @@ -27,7 +24,7 @@ exports.externalLinkProcessor = () => { ) { const href = parse(node.properties.href); - if (!exports.isInternal(href)) { + if (!exports.isInternal(href, internalUrl)) { node.properties.target = '_blank'; node.properties.rel = 'noopener'; } else {