Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ Formatnya mengikuti prinsip [Keep a Changelog](https://keepachangelog.com/) dan

### Added

- Social preview 1280×640 dengan identitas quiet editorial Ramu, dipakai ulang oleh Open Graph/Twitter metadata website.
- English entry surfaces through `README.en.md` and `CONTRIBUTING.en.md`, while Bahasa Indonesia remains the canonical project documentation.
- **UT S1 Akuntansi Semester 1 2026/2027** sebagai maintained pack 18 SKS, termasuk slot Pendidikan Agama yang mengikuti pilihan resmi sesuai data pribadi/registrasi UT.
- Dukungan manifest untuk `selection.mode: choose-one` agar satu slot kurikulum dapat memiliki beberapa kode mata kuliah resmi tanpa membuat kode akademik palsu atau menggandakan seluruh pack.
Expand Down
6 changes: 6 additions & 0 deletions docs/UX-DIRECTION.md
Original file line number Diff line number Diff line change
Expand Up @@ -390,6 +390,12 @@ Remove from the redesign:

`prefers-reduced-motion: reduce` remains mandatory, but the normal experience should already be calm enough that accessibility is not achieved merely by disabling an otherwise over-animated interface.

## Appearance decision

Ramu intentionally ships one polished light appearance for this redesign. Dark mode is not added in Phase 6 because there is no product requirement yet that justifies maintaining a second complete token/state surface. Revisit it only when usage evidence or accessibility needs make the extra maintenance worthwhile.

The social preview follows the same quiet editorial identity: warm ivory canvas, graphite type, muted sage accent, real product information, no gradients/glow/fake metrics.

## Accessibility contract

Implementation must preserve or improve:
Expand Down
27 changes: 25 additions & 2 deletions scripts/validate_site.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
from __future__ import annotations

import re
import struct
import sys
from pathlib import Path

Expand Down Expand Up @@ -62,7 +63,11 @@ def main() -> int:
'property="og:url" content="https://man612.github.io/ramu/"',
'property="og:site_name" content="Ramu"',
'property="og:locale" content="id_ID"',
'name="twitter:card" content="summary"',
'property="og:image" content="https://man612.github.io/ramu/social-preview.png"',
'property="og:image:width" content="1280"',
'property="og:image:height" content="640"',
'name="twitter:card" content="summary_large_image"',
'name="twitter:image" content="https://man612.github.io/ramu/social-preview.png"',
'href="https://github.com/man612/ramu/blob/main/README.en.md"',
'href="https://github.com/man612/ramu/blob/main/SUPPORT.md"',
])
Expand All @@ -88,7 +93,11 @@ def main() -> int:
'href="https://github.com/man612/ramu/blob/main/README.en.md"',
'property="og:site_name" content="Ramu"',
'property="og:locale" content="id_ID"',
'name="twitter:card" content="summary"',
'property="og:image" content="https://man612.github.io/ramu/social-preview.png"',
'property="og:image:width" content="1280"',
'property="og:image:height" content="640"',
'name="twitter:card" content="summary_large_image"',
'name="twitter:image" content="https://man612.github.io/ramu/social-preview.png"',
'<title>Setup Ramu | siapkan ChatGPT Project untuk mata kuliah</title>',
])
require_text(SITE / "app.js", [
Expand Down Expand Up @@ -125,6 +134,20 @@ def main() -> int:
"@media (max-width: 430px)",
])

preview = SITE / "social-preview.png"
if not preview.is_file():
fail("Social preview asset tidak ditemukan.")
else:
data = preview.read_bytes()
if len(data) >= 24 and data[:8] == b"\x89PNG\r\n\x1a\n":
width, height = struct.unpack(">II", data[16:24])
if (width, height) != (1280, 640):
fail(f"Social preview harus 1280x640, sekarang {width}x{height}.")
else:
fail("Social preview harus PNG valid.")
if len(data) >= 1_000_000:
fail(f"Social preview harus <1 MB, sekarang {len(data)} byte.")

foundations_text = (SITE / "foundations.css").read_text(encoding="utf-8") if (SITE / "foundations.css").is_file() else ""
motion_text = (SITE / "motion.css").read_text(encoding="utf-8") if (SITE / "motion.css").is_file() else ""
tokens = dict(re.findall(r"--([a-z0-9-]+):\s*(#[0-9a-fA-F]{6})\s*;", foundations_text))
Expand Down
7 changes: 6 additions & 1 deletion site/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,12 @@
<meta property="og:site_name" content="Ramu">
<meta property="og:locale" content="id_ID">
<meta property="og:url" content="https://man612.github.io/ramu/">
<meta name="twitter:card" content="summary">
<meta property="og:image" content="https://man612.github.io/ramu/social-preview.png">
<meta property="og:image:width" content="1280">
<meta property="og:image:height" content="640">
<meta property="og:image:alt" content="Ramu — structured learning workspace for ChatGPT Projects">
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:image" content="https://man612.github.io/ramu/social-preview.png">
<link rel="canonical" href="https://man612.github.io/ramu/">
<title>Ramu — workspace belajar terstruktur untuk ChatGPT Projects</title>
<link rel="stylesheet" href="styles.css">
Expand Down
7 changes: 6 additions & 1 deletion site/setup.html
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,12 @@
<meta property="og:site_name" content="Ramu">
<meta property="og:locale" content="id_ID">
<meta property="og:url" content="https://man612.github.io/ramu/setup.html">
<meta name="twitter:card" content="summary">
<meta property="og:image" content="https://man612.github.io/ramu/social-preview.png">
<meta property="og:image:width" content="1280">
<meta property="og:image:height" content="640">
<meta property="og:image:alt" content="Ramu — structured learning workspace for ChatGPT Projects">
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:image" content="https://man612.github.io/ramu/social-preview.png">
<link rel="canonical" href="https://man612.github.io/ramu/setup.html">
<title>Setup Ramu | siapkan ChatGPT Project untuk mata kuliah</title>
<link rel="stylesheet" href="styles.css">
Expand Down
Binary file added site/social-preview.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading