add landing site for the Microsoft Store submission
Pull request / build (pull_request) Successful in 47s

A bilingual (EN/RU) static page in site/, split into index.html, styles.css,
boot.js and main.js, with a favicon.svg. Documents placement modes, per-mode
look, the Caps Lock shortcut and a privacy policy — the last is meant to
double as the Partner Center privacy policy URL.

STORE_URL is still a placeholder in both download buttons until the Store
listing exists.
This commit is contained in:
2026-09-01 09:36:37 +05:00
parent 42e93346ab
commit 936e53d55b
7 changed files with 1512 additions and 0 deletions
+44
View File
@@ -370,3 +370,47 @@ dotnet build Packaging\Installer\CursorLang.wixproj -p:SuppressValidation=false
Three of its rules stay suppressed even then. MSI assumes an installation for the
whole machine, and installing into the user's own profile trips rules that
describe exactly what was intended here.
## The site
`site/index.html` is the page the Store listing points at: what the application
does, and a privacy policy saying that it collects nothing. Partner Center leaves
the policy optional for an app that gathers no data, but a page saying so out
loud is what takes the question off the reviewer's desk.
The whole of it is five files in `site`, and nothing is fetched from anywhere
else — no framework, no build step, no font from a network:
| File | What is in it |
|---|---|
| `index.html` | The markup, both languages at once |
| `styles.css` | Every rule, the palette included |
| `boot.js` | The language and the theme of an earlier visit, before the first frame |
| `main.js` | The rest: the switches, the menu, the demo, the preview |
| `favicon.svg` | The same dark plate with "Aя" as the application icon |
`boot.js` is small and separate for one reason: it has to run before the body is
parsed. It reads what was chosen last time and puts it on the `<html>` element,
and without it the first frame would be English in the system theme and correct
itself a moment later, in plain sight. `main.js` works on markup that has to
exist by then, so it is deferred instead.
Both languages live in the markup at once, and a switch in the corner picks one.
Every translated piece is a `<span lang="en">` beside a `<span lang="ru">`, and
whichever does not match the language on the `<html>` element is hidden by a rule
of two lines. With the scripts switched off the page still reads, in English.
Publishing means copying the five files as they are. Before that, two things are
still waiting for an address.
The Store listing is the first: the two download buttons are
`<span class="btn disabled" role="link">` rather than links, because a
placeholder in `href` would be a relative address and anything following it would
land on a 404. The address turns each of them back into
`<a class="btn" href="…">` and takes the note beside it away.
The address of the site itself is the second, wanted by three tags the head does
not carry yet: `og:image`, `og:url` and the canonical link.
Support goes to `support@alrakis.kz`: it stands in the privacy section, under the
download buttons and in the footer.