feat: migrate from Create React App to Vite

Rebuild the site on the stack the other converted sites share: Vite 8,
React 19, TypeScript 7, react-router 8, Biome and sanitize.css, with the
site data moved out of the bundle into static-contents/.

- base the database and forum code on cerebellum.neuroinf.jp, keeping
  the CBSN item fields for papers, books and presentations
- serve the XooNIps and forum data from modules/, redirecting the old
  download and /database/file URLs
- restate the theme sizes as border-box totals and keep form controls
  on white
- track page views with GA4
This commit is contained in:
2026-09-14 16:29:50 +09:00
parent 3404396430
commit ba3d061fac
187 changed files with 6882 additions and 15073 deletions
+10 -4
View File
@@ -4,8 +4,10 @@
border-bottom: 1px solid #404040;
border-right: 1px solid #404040;
background-color: white;
height: 400px;
width: calc(100% - 6px);
/* border-box totals: 400 + 3px padding + 1px border per side, and a width
that keeps the 2px the original content-box rule overflowed by. */
height: 408px;
width: calc(100% + 2px);
overflow: auto;
margin: 0 auto;
padding: 3px;
@@ -14,6 +16,8 @@
.formButton {
margin: 3px 3px 10px;
/* sanitize.css forms.css leaves buttons transparent */
background-color: #ffffff;
}
.indexTree div span {
@@ -44,7 +48,9 @@
.indexTree:global(.rc-tree .rc-tree-treenode .rc-tree-indent .rc-tree-indent-unit:not(:last-child)) {
background-position: -9px 0;
}
.indexTree:global(.rc-tree .rc-tree-treenode .rc-tree-indent .rc-tree-indent-unit:not(:last-child).rc-tree-indent-unit-end) {
.indexTree:global(
.rc-tree .rc-tree-treenode .rc-tree-indent .rc-tree-indent-unit:not(:last-child).rc-tree-indent-unit-end
) {
background-position: -18px 0;
}
.indexTree:global(.rc-tree .rc-tree-treenode .rc-tree-indent .rc-tree-indent-unit:last-child.rc-tree-indent-unit-end) {
@@ -88,4 +94,4 @@
.indexTree:global(.rc-tree .rc-tree-treenode .rc-tree-node-content-wrapper .rc-tree-title) {
vertical-align: middle;
line-height: 20px;
}
}