Skip to content

📖🔧:restore the README's broken images - #898

Open
DerekNonGeneric wants to merge 1 commit into
mainfrom
infra/fix-readme-images
Open

📖🔧:restore the README's broken images#898
DerekNonGeneric wants to merge 1 commit into
mainfrom
infra/fix-readme-images

Conversation

@DerekNonGeneric

@DerekNonGeneric DerekNonGeneric commented Sep 5, 2026

Copy link
Copy Markdown
Member

Every image at the top of this README was returning 404.

The logo

It asked for /assets/img/svg/logogram-color.svg. The portal serves it
from /assets/img/logogram-color.svg — there is no svg segment — so
the organization's own mark has been rendering as a broken-image icon.

404  https://open.inf.is/assets/img/svg/logogram-color.svg
200  https://open.inf.is/assets/img/logogram-color.svg

The three callouts

They were <picture> elements sourcing six SVGs from
OpenINF/GitHub-Markdowna repository that does not exist (the
API 404s on it). They are hand-rolled versions of something GitHub
renders natively now, so they become > [!NOTE], > [!IMPORTANT] and
> [!TIP]: no external asset to rot, correct in both colour schemes,
and .remarkrc.mjs already allowed the syntax.

Why each alert is fenced with <!-- prettier-ignore -->

Not decoration. prettier 3.9.6 under proseWrap: always corrupts a
blockquote whose reference link straddles the wrap point.
It appends
a stray > inside the link text:

-> such as when opening a new issue or when viewing the project's [Community
+> such as when opening a new issue or when viewing the project's [Community >
 > Profile][], just as if it were committed to the repository directly.[^1]

[Community Profile][] then resolves to nothing. Prettier is stable
on the corrupted output, so it never puts it back, and no check here
would catch it — it is valid markdown, just a dead link.

It reproduces on a plain blockquote too, so this is not about alerts:
any blockquote in this repository with a reference link near the wrap
column is exposed.
Plain paragraphs are unaffected. I have not fixed
prettier; the guard stops it touching the three blocks that would
trigger it.

Verification

Rendered the file through GitHub's own markdown API rather than
eyeballing it:

  • 3 alerts (markdown-alert-note, -important, -tip)
  • every <img src> in the output returns 200
  • Community Profile is still an <a>
  • the formatter is idempotent on the result

Wider than this repo

Code search says the broken logo path appears in 10 files across the
organization
, and OpenINF/GitHub-Markdown is referenced by 3
(openinf-util-text, docker-fisher, and this one). Out of scope
here — say the word and I will sweep them.

Summary by CodeRabbit

  • Documentation
    • Updated README logo links for improved asset references.
    • Replaced image-based informational callouts with GitHub alert blocks for Note, Important, and Tip sections.
    • Updated README lint guidance to support inline HTML.

@coderabbitai

coderabbitai Bot commented Sep 5, 2026

Copy link
Copy Markdown

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Team

Run ID: 81f990ca-a3ae-473f-876b-a6ae2af97f7a

📥 Commits

Reviewing files that changed from the base of the PR and between 88f261d and f4767c3.

📒 Files selected for processing (1)
  • README.md
🚧 Files skipped from review as they are similar to previous changes (1)
  • README.md

Included review availability: Your plan provides up to 8 included reviews per hour; 6 remain after this review.


📝 Walkthrough

Walkthrough

The README now uses direct logo asset URLs, GitHub alert blockquotes for Note, Important, and Tip guidance, and expanded markdownlint suppression comments.

Changes

README presentation updates

Layer / File(s) Summary
README assets and alert callouts
README.md
Header and footer logo URLs no longer include /svg/. Image-based callouts now use GitHub Note, Important, and Tip alerts. Footer lint suppression comments now include inline HTML.

Estimated code review effort: 1 (Trivial) | ~2 minutes

Merge Risk: ⚪ Minimal · up to f4767

The README updates restore logo paths and replace broken callout images with native GitHub alerts. No current merge-blocking risk is identified.

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly describes the main change: restoring broken README images. The emojis do not prevent the title from being specific and understandable.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff. Analyzed 0 functions across 0…
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch infra/fix-readme-images

Warning

Some tools did not complete. Review the errors below.

🔧 markdownlint-cli2 (0.23.2)
README.md

markdownlint-cli2 v0.23.2 (markdownlint v0.41.1)
Finding: :README.md !doc/_site/ !lib/ !node_modules/ !vendor/ !.pnpm-store/ !**/COPYING.md !LICENSE/
AggregateError: Unable to import module 'markdown-it-task-lists'.
at importModule (file:///usr/local/lib/node_modules/markdownlint-cli2/markdownlint-cli2.mjs:95:11)
at async Promise.all (index 0)
at async Promise.all (index 1)
at async createDirInfos (file:///usr/local/lib/node_modules/markdownlint-cli2/markdownlint-cli2.mjs:629:3)
at async main (file:///usr/local/lib/node_modules/markdownlint-cli2/markdownlint-cli2.mjs:1065:5)
at async file:///usr/local/lib/node_modules/markdownlint-cli2/markdownlint-cli2-bin.mjs:14:22 {
[errors]: [
Error: Cannot find module 'markdown-it-task-lists'
Require stack:
- /usr/local/lib/node_modules/markdownlint-cli2/node_modules/markdownlint/lib/resolve-module.cjs
at Module._resolveFilename (node:internal/modules/cjs/loader:1476:15)
at wrapResolveFilename

... [truncated 1050 characters] ...

Resolution (node:internal/modules/esm/resolve:271:11)
at moduleResolve (node:internal/modules/esm/resolve:861:10)
at defaultResolve (node:internal/modules/esm/resolve:988:11)
at #cachedDefaultResolve (node:internal/modules/esm/loader:697:20)
at #resolveAndMaybeBlockOnLoaderThread (node:internal/modules/esm/loader:714:38)
at ModuleLoader.resolveSync (node:internal/modules/esm/loader:746:52)
at #resolve (node:internal/modules/esm/loader:679:17)
at ModuleLoader.getOrCreateModuleJob (node:internal/modules/esm/loader:599:35)
at node:internal/modules/esm/loader:628:32
at TracingChannel.tracePromise (node:diagnostics_channel:362:14) {
code: 'ERR_MODULE_NOT_FOUND',
url: 'file:///markdown-it-task-lists'
}
]
}


Comment @coderabbitai help to get the list of available commands.

Every image at the top of this file was 404ing.

The logo asked for /assets/img/svg/logogram-color.svg. The portal
serves it from /assets/img/logogram-color.svg -- there is no `svg`
segment -- so the organization's own mark has been a broken image icon.

The three callouts were `<picture>` elements sourcing six SVGs from
OpenINF/GitHub-Markdown, a repository that does not exist. They are
hand-rolled versions of something GitHub renders natively now, so they
become alerts: no external asset to rot, right in both colour schemes,
and the remark configuration already allowed the syntax.

Each alert is fenced with `<!-- prettier-ignore -->`, which is not
decoration. prettier 3.9.6 under `proseWrap: always` corrupts a
blockquote whose reference link straddles the wrap point: it appends a
stray `>` inside the link text, turning `[Community Profile][]` into a
reference that resolves to nothing. It is stable afterwards, so nothing
puts it back, and no check in this repository would notice. Plain
paragraphs are unaffected; blockquotes are not, alert or otherwise.

The footer logo's existing disable comment also names `no-inline-html`
now. Inline HTML is how this file lays itself out, so MD033 is off in
.markdownlint.jsonc -- but Codacy lints markdown with its own
configuration and counted the line as a new violation the moment its
URL changed. Naming the rule in the document settles it for any runner.

Verified by rendering the file through GitHub's own markdown API: three
alerts, every image 200, and `Community Profile` still an anchor.

Signed-off-by: Derek Lewis <DerekNonGeneric@inf.is>
Assisted-by: Claude-Code:claude-opus-5
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant