Repository navigation
Site and README: structured data listings, a task page for opening .md files, badges - #38
Merged
Merged
Conversation
The site test now requires sameAs listings instead of codeRepository, a screenshot and image, the author's page, no ratings, the releases feed link, the Scoop and Homebrew commands, and a task page at open-md-files-on-windows/ that is linked and in the sitemap. The browser smoke test audits that page at the same three sizes. These checks fail until the site changes land in the next commit.
…data codeRepository is a SoftwareSourceCode property, not a SoftwareApplication one. The repository, Microsoft Store, winget, Chocolatey and Homebrew tap pages now go in sameAs. The JSON-LD also gets the product screenshot, the social preview as image, and the author's page. No rating or review is added. The page head links the GitHub releases feed.
The FAQ already says LeanMark is on Scoop and Homebrew, and the README has both commands; the install section now shows them too.
html-validate reports aria-label on a div without a role. role=group keeps the existing label and changes nothing on screen. role=figure draws html-validate's prefer-native-element error instead, and a figure element would bring its default margins.
The page lists Notepad, VS Code, a browser extension and LeanMark with what each one leaves out, covers Markdown saved by ChatGPT, Claude or a coding agent, and quotes the 0.3.0 Windows measurement from the README with its machine. The FAQ links it and the sitemap lists both pages with today's date.
Four badges under the links line: the winget version, the Microsoft Store listing, the license, and total GitHub release downloads. No stars or ratings badge. The GitHub Releases section links the releases feed.
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.
This follows the LeanMark findings and the site and README checklists in the 2026-11-07 discoverability report (sections 3.2, 4.1 and 4.2). The October changes (titles, descriptions, FAQ, sitemap, social preview) are kept as they are.
What changed and why
codeRepositoryremoved;sameAslists the GitHub repo, the Microsoft Store listing (9MSS4WKJ22ZV), the winget-pkgs manifest folder, the Chocolatey package and the Homebrew tap;screenshotis the product screenshot the page shows;imageis the social preview; the author getsurl(the Lean Apps page).softwareVersionstays 0.7.1, which matches package.json and the latest release. No rating or review.<link rel="alternate" type="application/atom+xml">to the GitHub releases feed in the page head (both pages).site/open-md-files-on-windows/: how to open .md files on Windows with Notepad, VS Code, a browser extension or LeanMark, with what each one leaves out; a section on Markdown saved by ChatGPT, Claude or a coding agent; how to set the default app; the 0.3.0 Windows measurement with its machine. The FAQ answer "How do I open an .md file on Windows?" links it. Plain HTML with the site stylesheet, no build change.sitemap.xmllists both pages withlastmod2026-11-07, the date of this change.role="group"on the twodivs that carryaria-label(the Markdown sample and the rendering diagram). html-validate reportsaria-labelon a role-lessdiv; nothing changes on screen.Every fact on the new page comes from the repo or from the two sources it links. The Notepad paragraph follows Microsoft's Notepad formatting announcement (bold, italic, links, lists, headings; Mermaid is not listed). The VS Code paragraph follows the VS Code Markdown documentation, which says the built-in preview renders Mermaid, so the page does not claim otherwise. The numbers are the README's 0.3.0 figures (74.15 ms to a visible window, 96.79 MiB peak private memory, median of ten warm launches) with the machine named in the README. The page makes no speed or size comparison with other programs, in line with the README's "No unmeasured comparison" line. The 4.17 MiB payload figure is not on the new page because nothing in the repo besides the landing page records it.
Tests-first history: the first commit only changes
tests/Test-Site.ps1andtests/Invoke-SiteBrowserSmoke.mjs. On that commitTest-Site.ps1fails at "JSON-LD author must link the Lean Apps page" and the browser smoke fails on the missing task page. Both pass at the head of the branch. The smoke test now audits the task page at the same three viewports (desktop and tablet light, mobile dark) and checks the accessibility tree per page; its loopback server now serves a folder URL as that folder'sindex.html, as Pages does.Checks run
All on this laptop (Windows 11, Edge headless), against a local
python -m http.serveron 127.0.0.1. "Before" isorigin/mainat 696c7a9.html-validate 11.19.0
doctype-style(1),aria-label-misuse(2)doctype-style, one per filedoctype-styleasks for<!DOCTYPE html>in upper case. Lower case is valid HTML and is what the existing page uses, so I kept it.linkinator 8.1.0
--markdown, from the repo root)The 401 is the Google Play tester page, which needs a signed-in Google account; it was there before. The 404 is the task page's own canonical URL on the live site, which exists only after this deploys.
JSON-LD. One block;
JSON.parsesucceeds. Keys:@context, @type, name, applicationCategory, operatingSystem, softwareVersion, license, downloadUrl, description, url, screenshot, image, sameAs, offers, author.softwareVersion0.7.1; nocodeRepository; noaggregateRatingorreview; 5sameAsURLs, each returned HTTP 200 to curl; thescreenshotfile exists at that path. I did not run Google's Rich Results Test or the Schema Markup Validator (web tools that need the deployed URL).Lighthouse 13.6.0, mobile form factor, Edge headless. Single runs:
Performance moved a lot between runs, so I ran the landing page 12 times before and 12 times after, interleaved, light scheme. Before: 81 to 100, median 95, total blocking time median 377 ms, LCP median 1,165 ms. After: 85 to 98, median 91, TBT median 396 ms, LCP median 1,173 ms. CLS was 0 in every run. Neither page has JavaScript, and the extra blocking time is in Lighthouse's "other" and unattributable tasks; I cannot separate the difference from noise on this laptop, which was also running other work.
The accessibility score below 100 in dark mode is the existing
color-contrastfailure: in dark mode the.eyebrowlabels keep the light-theme accent#1d4ed8on dark backgrounds (2.89:1 on#0e0d0b, 2.16:1 on#2b2924). It is the same before and after, and the task page inherits it. I did not change it here (see below).Site test and browser smoke.
tests/Test-Site.ps1andnode tests/Invoke-SiteBrowserSmoke.mjs --site ./sitepass at the head.Mutations (each applied alone to a copy of the site, then
tests/Test-Site.ps1; all exit 1):codeRepositoryback in the JSON-LDsameAsentryscreenshoturlaggregateRatinglastmodstyles.cssinstead of../styles.cssWith no mutation the copy passes again.
Look of the page. I captured full-page screenshots of the landing page before and after at the smoke test's three viewports and compared them pixel by pixel. Everything above the two new install command boxes is identical. The install section has those boxes and the FAQ answer has one more sentence; below that the page is the same, shifted down (desktop 283 px). The task page uses the existing header, section, FAQ grid, measurement list and install-box styles.
Left out, and why
sameAs: alternativeto.net answered 403 to every request, so I could not confirm the slug.featureList: optional in the report; not added..eyebrowcontrast: a CSS colour change that affects every section label, outside this PR's scope. A one-line follow-up (.eyebrowusing the dark--linkcolour in dark mode) would clear it.doctype-style(see above).Left for the owner or orchestrator
markdown-viewer,md,gfm,readmeto the tags (check the schema's tag limit).https://abooodbah.github.io/leanmark/andhttps://abooodbah.github.io/leanmark/open-md-files-on-windows/; resubmit the LeanMark sitemap; check that Settings > "Search generative AI" is on Include and read the Generative AI performance report; Bing URL submission or IndexNow (owner's call). Run the Rich Results Test and the Schema Markup Validator on the live URL; the software type is expected to be "not eligible" because there are no ratings.abooodbah.github.io): WebSite JSON-LD, og:image, the LeanRows winget line, sitemaplastmod, optional llms.txt and 404 page.windows-11and one more search phrase such asmarkdown-preview. Repo settings are not changed here.sameAs.Deploy and rollback
The PR triggers
build.yml(it also runs on every branch push). Merging tomaintriggerspages.yml, becausesite/**andtests/Test-Site.ps1change, which runs the site test and deploys the site; andbuild.ymlon the push tomain, which builds and tests but releases nothing (releases run onv*tags only).store-msix.ymlis not triggered. No application code changes; the README copied into the Windows ZIP gets the badge line and feed sentence on the next release.To roll back, revert the merge commit;
pages.ymlredeploys the previous site. The new page then returns 404 and should be removed from Search Console if it was submitted.