Fix broken internal links#650
Merged
Merged
Conversation
Audited all 206 markdown files (2,774 links) plus the redirects in
.gitbook.yaml, and fixed every internal link that does not resolve.
External URLs are out of scope here and will be handled separately.
Path fixes:
* installation/install-calyptia-fluentd/: the four install guides live
one directory deeper than the links assume, so `../` was missing one
level (51 links). Now matches the sibling install-fluent-package/
guides, which already use `../../` and `../before-install.md`.
* installation/install-fluent-package/install-by-dmg-fluent-package.md:
same problem on the link to install-by-gem.md.
* installation/install-by-{deb,rpm}-td-agent-v4.md: the td-agent version
comparison page is in appendix/, not quickstart/.
* how-to-guides/apache-to-s3.md, how-to-guides/http-to-td.md: missing
`.md` extension.
* appendix/README.md: SUMMARY.md listed this file but it did not exist,
so the Appendix section had no landing page. Added one.
Anchor fixes, verified against the ids actually rendered on
docs.fluentd.org:
* deployment/system-config.md: `#Recovery` -> `#recovery`.
* output/forward.md: `#how-to-enable-tls/ssl-encryption` ->
`#how-to-enable-tls-encryption` (2 links); the heading in
input/forward.md is "How to Enable TLS Encryption".
* configuration/config-file.md: GitBook prefixes `id-` to anchors
generated from headings that start with a digit, so the id of
"5. Group filter and output: the label directive" is
`id-5.-group-filter-and-output-the-label-directive`. This is the only
link in the repository affected.
* filter/README.md, formatter/README.md: the "Filter Plugins" and "Text
Formatter Plugins" sections no longer exist in
plugin-development/README.md. Point at api-plugin-filter.md and
api-plugin-formatter.md instead.
Redirect fixes in .gitbook.yaml:
Most redirect targets name paths that no longer exist in the repository,
but GitBook tracks those file moves internally and resolves them anyway.
Three do not, because the pages were never at the recorded path, so the
old URLs return 404. Point them at the current paths:
* v1.0/articles/out_opensearch -> output/opensearch.md
* v1.0/articles/formatter_tsv -> formatter/tsv.md
* v1.0/articles/api-plugin-helper-metrics ->
plugin-helper-overview/api-plugin-helper-metrics.md
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Signed-off-by: Shizuo Fujita <fujita@clear-code.com>
Watson1978
force-pushed
the
fix-broken-internal-links
branch
from
July 26, 2026 06:43
d438e45 to
f70d7e0
Compare
kenhys
approved these changes
Jul 27, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Audited all 206 markdown files (2,774 links) plus the 177 redirects in
.gitbook.yaml, and fixed every internal link that does not resolve — 63 links across 14 files, 3 redirects, and one new file.External URLs are deliberately out of scope here; they need per-URL investigation for replacements and will be sent as a separate PR.
Path fixes (56)
installation/install-calyptia-fluentd/*.md(51 links)../. This matches the siblinginstall-fluent-package/guides, which already use../../configuration/config-file.mdand../before-install.md.installation/install-fluent-package/install-by-dmg-fluent-package.md(1)install-by-gem.md; the other guides in that directory already use../install-by-gem.md.../install-by-gem.mdinstallation/install-by-{deb,rpm}-td-agent-v4.md(2)../quickstart/td-agent-v2-vs-v3-vs-v4.md, but that page is inappendix/.../appendix/td-agent-v2-vs-v3-vs-v4.mdhow-to-guides/apache-to-s3.md(1)../output/s3is missing the.mdextension.../output/s3.mdhow-to-guides/http-to-td.md(1)../installation/post-installation-guide#plugin-managementis missing the.mdextension.../installation/post-installation-guide.md#plugin-managementNew file (1)
SUMMARY.mdlists* [Appendix](appendix/README.md), but that file does not exist, so the Appendix section has no landing page. Addedappendix/README.mdwith a short introduction and links to the two articles it contains.Anchor fixes (7)
These were verified against the
idattributes actually rendered on docs.fluentd.org, not against a local build — honkit generates heading anchors by different rules than GitBook does, so a local build cannot be used to check them.deployment/system-config.mdsource-only-mode.md#Recoverysource-only-mode.md#recoveryoutput/forward.md(2 links)../input/forward.md#how-to-enable-tls/ssl-encryption../input/forward.md#how-to-enable-tls-encryptionconfiguration/config-file.mdconfig-file.md#5.-group-filter-and-output-the-label-directiveconfig-file.md#id-5.-group-filter-and-output-the-label-directivefilter/README.md../plugin-development/#filter-plugins../plugin-development/api-plugin-filter.mdformatter/README.md../plugin-development/#text-formatter-plugins../plugin-development/api-plugin-formatter.mdThe heading in
input/forward.mdis now "How to Enable TLS Encryption", so the oldtls/sslanchor no longer exists. The "Filter Plugins" and "Text Formatter Plugins" sections were removed fromplugin-development/README.mdand are now separate pages, so those two links point at the pages instead of at anchors that no longer exist.GitBook prefixes
id-to anchors generated from headings that start with a digit, so the id of "5. Group filter and output: the label directive" isid-5.-group-filter-and-output-the-label-directive. GitBook's own on-page table of contents links to it that way, but the markdown link in the body did not. It is the only link in the repository affected.Redirect fixes in
.gitbook.yaml(3)Most redirect targets name paths that no longer exist in the repository, but GitBook tracks those file moves internally and resolves them anyway — for example
v1.0/articles/in_httpstill points atplugins/input/http.mdand correctly lands on/input/http. I checked all 177 against the live site; three of them return 404, because those pages were never at the recorded path for GitBook to track (plugins/output/opensearch.mdanddeveloper/api-plugin-helper-metrics.mdhave no history at all, andplugins/formatter/tsv.mdwas deleted and re-added, which broke the chain).v1.0/articles/out_opensearchplugins/output/opensearch.mdoutput/opensearch.mdv1.0/articles/formatter_tsvplugins/formatter/tsv.mdformatter/tsv.mdv1.0/articles/api-plugin-helper-metricsdeveloper/api-plugin-helper-metrics.mdplugin-helper-overview/api-plugin-helper-metrics.mdThe remaining 174 redirects resolve correctly and are left untouched.
Verification
Three independent checks:
honkit buildand walk everyhref/srcin the output. 47,503 relative links, 0 unresolved.idvalues, and request every redirect source. 110 anchor-bearing links, 7 broken before, 0 after; 177 redirects, 4 broken before, 1 after (see below).codespellpasses.Deliberately left for a follow-up PR
plugins/input/dummy.mdis the only file left underplugins/. It is not listed inSUMMARY.md, so GitBook does not publish it, which is whyv1.0/articles/in_dummyreturns 404 — and its own link to/input/sample.mdis a root-absolute path that does not resolve.in_dummywas renamedin_samplein v1.11.12 but the plugin still ships, so the page should move toinput/dummy.mdand be added to the TOC rather than be dropped. That is a file move plus aSUMMARY.mdchange, so it is kept out of this PR to avoid conflicts.Also out of scope
http://localhost:*links are operational examples inside walkthroughs, not navigation.🤖 Generated with Claude Code