Skip to content

Commit fc208e0

Browse files
committed
Initial commit
0 parents  commit fc208e0

17 files changed

Lines changed: 2274 additions & 0 deletions

.gitignore

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
tools/_preview/
2+
_shot.html
3+
_test.html
4+
_probe.html
5+
.ipynb_checkpoints/
6+
.DS_Store

.nojekyll

Whitespace-only changes.

README.md

Lines changed: 86 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,86 @@
1+
# Bio-Babel.github.io
2+
3+
Source of <https://bio-babel.github.io>. Pages serves `main` from the repo root, so a push
4+
is a deploy.
5+
6+
`index.html` is the whole page — static markup, nothing rendered at runtime. `assets/js/main.js`
7+
only adds behaviour: sticky nav, scroll reveals, the stat counters, the stack tier picker, the
8+
library filter. Changing copy means editing `index.html`.
9+
10+
```bash
11+
python3 -m http.server 8000
12+
```
13+
14+
## Constraints
15+
16+
Not preferences — each of these has already caused a bug.
17+
18+
1. **No CDN, no web fonts, no runtime API calls.** Much of the audience is in mainland China,
19+
where Google Fonts and `api.github.com` are blocked or slow. Hence the system font stack and
20+
the hand-maintained catalog below. To guarantee Inter, self-host the woff2; do not add a
21+
`<link>`.
22+
2. **Paths stay relative**, so the site survives a move to a sub-path or a custom domain.
23+
3. **`.nojekyll` stays**, or Pages runs Jekyll over the files.
24+
4. **`og:image` stays a raster at an absolute URL.** Crawlers on X, Facebook, LinkedIn, Slack
25+
and Discord reject SVG and ignore relative URLs. Break this and every shared link renders
26+
without an image, silently.
27+
5. **Organization voice.** The libraries and the community lead; the contract layer and its
28+
benchmark share one section because they are two of the org's repositories, not the point
29+
of it.
30+
6. **R → Python is the demonstration, not the definition.** Copy may say the problem is
31+
particular to no pair of languages — that is a claim about the problem. Do not upgrade it
32+
into a claim that the tooling is already language-agnostic: `manifest_api.py` still carries
33+
an `r_package` field and the porting skill is still named `r2py-skills`. When that changes,
34+
the copy can.
35+
36+
## Hard-coded facts
37+
38+
The catalog is a snapshot (constraint 1), so some numbers are hand-maintained. Find all of them:
39+
40+
```bash
41+
grep -niE 'seventeen|17 (r )?(librar|classic)|data-(count|filter)=|read-only tools' index.html
42+
```
43+
44+
That covers the meta and OpenGraph descriptions, the hero pill and paragraph, the stats strip,
45+
the catalog heading and the five filter counts. The cards themselves are one
46+
`<article class="lib">` each. Do not trust line numbers in this file — use the grep, and if you
47+
reword the copy, check the pattern still matches.
48+
49+
| figure | where the truth is |
50+
|---|---|
51+
| library and repo counts | `curl -s 'https://api.github.com/orgs/Bio-Babel/repos?per_page=100'` — everything except `.github`, `Bio-Babel.github.io`, `bio-babel-MCP` and `bio-babel-MCPBench` is a library (`bio-babel-toolkit` and `bio-babel-annotator` are private and do not appear) |
52+
| `1,606` contracted symbols | sum of `symbols/` across each port's `_biobabel/` |
53+
| `12` read-only MCP tools | asserted by `tests/test_mcp_server.py::tool_count` in `bio-babel-MCP` |
54+
| per-card versions | PyPI |
55+
| the argument in the hero and the Why section | `manuscript/Draft_main_text_human.txt` — the copy is drawn from it, so keep the two consistent |
56+
57+
## Logo
58+
59+
```bash
60+
python3 tools/gen_logo.py # cairosvg is optional, previews only
61+
```
62+
63+
Regenerate rather than hand-editing the SVGs: the geometry is transcribed once in the script and
64+
every file derives from it. Two properties are easy to break —
65+
66+
* **The arches are transparent cut-outs, not white fill.** Whatever sits behind shows through, so
67+
the mark must never go on a field near its own violet: the arcade disappears and the tower
68+
flattens into a triangle. On the tile the tower is cream for exactly this reason.
69+
* **The shipped files carry no `<mask>`.** The master artwork (`Bio-Babel/.github`,
70+
`profile/imgs/bio-babel-logo.svg`) uses one, and non-browser rasterisers silently drop it and
71+
paint a solid square. Everything here is a single nonzero-winding path instead.
72+
73+
`<text>` in the banner is pinned with `textLength`; the viewer's fallback font is unknown and
74+
without it the tagline overflows the artboard.
75+
76+
| file | use |
77+
|---|---|
78+
| `logo-mark.svg` | the mark, flat `#8477C8`. Nav, hero, footer |
79+
| `logo-mark-mono.svg` | `fill="currentColor"` — inline it to tint from CSS |
80+
| `logo-mark-ghost.svg` | white, for low-opacity watermarks |
81+
| `logo-mark-gradient.svg` | violet→gold; point the `logo-mark.svg` references at this for more lift |
82+
| `logo-tile.svg` | squircle tile — the org avatar and the touch icon |
83+
| `favicon.svg` | tile with a simplified arcade, so it still reads at 16 px |
84+
| `logo-wordmark.svg` | mark + `Bio-Babel` + tagline |
85+
| `logo-banner.svg` | 1080×240 banner, in use in the org profile README |
86+
| `og-card.png` | 1200×630 link preview, rendered from `tools/og-card.html` — command in its header |

0 commit comments

Comments
 (0)