Lewati ke konten Skip to content

Uji Lengkap Rich Media PakRPP

Pengujian menyeluruh kemampuan Markdown, media, komponen Starlight, dan pengalaman membaca pada arsitektur konten PakRPP.

Oleh PakRPP Terbit Diperbarui 9 min read

Halaman ini menguji:

  • hierarki heading;
  • paragraf panjang dan pendek;
  • bold, italic, bold italic, strikethrough, dan inline code;
  • tautan internal, eksternal, dan anchor;
  • blockquote dan callout Obsidian;
  • asides bawaan Starlight;
  • ordered list, unordered list, nested list, dan task list;
  • tabel lebar;
  • gambar, caption, audio, video, dan iframe;
  • code block, filename, line highlight, diff, dan terminal output;
  • <details>, <kbd>, <mark>, <abbr>, <sub>, <sup>, dan <hr>;
  • footnote, definisi istilah, serta teks campuran Indonesia–English.

Ini paragraf biasa untuk menguji ukuran font, line-height, lebar kolom baca, kontras, dan jarak antarparagraf. PakRPP menggunakan pengalaman membaca yang tenang, tetapi antarmukanya tetap terasa responsif seperti sebuah console blueprint yang hidup.

Paragraf kedua memuat teks tebal, teks miring, teks tebal dan miring, teks dicoret, const inlineCode = true, simbol © ® ™, pecahan ½, tanda em dash —, ellipsis…, dan emoji terbatas: 🧭 🧩 ✅.

Tautan pengujian:

Istilah singkat: SSOT, H2O, E = mc2, tekan + K, lalu tandai teks penting.

Teks di bawah heading level 3.

Teks di bawah heading level 4.

Teks di bawah heading level 5.

Teks di bawah heading level 6.


Arsitektur yang baik tidak hanya terlihat rapi ketika selesai, tetapi juga tetap dapat dipahami ketika sistem berubah.

Blockquote dapat memiliki beberapa paragraf.

Paragraf kedua menguji jarak vertikal, border, warna latar, dan wrap pada layar kecil.

— PakRPP Dummy Content

Lapisan pertama

Lapisan kedua

Lapisan ketiga

  • Item utama pertama
  • Item utama kedua
    • Anak item A
    • Anak item B
      • Cucu item B.1
      • Cucu item B.2
  • Item utama ketiga
  1. Tulis artikel di Obsidian.
  2. Commit Markdown ke Git.
  3. Jalankan build Astro.
  4. Periksa output Starlight.
  5. Jalankan acceptance test.
  • Frontmatter terbaca
  • Heading tampil
  • Aside tampil
  • Gambar lokal tersedia
  • Audio dan video diuji pada perangkat nyata
  • Tabel diuji pada viewport sempit

Canonical source
Obsidian Vault atau Markdown di Git.

Renderer
Astro + Starlight.

Editor masa depan
PakRPP Studio sebagai editor Markdown berbasis Git, bukan CMS/database kedua.

StatusKomponenTujuan UjiDesktopMobileCatatan Panjang
HeadingHierarki tipografiPassPassPastikan anchor tidak tertutup sticky header.
AsideKontras dan spacingPassPassJudul panjang harus membungkus tanpa menabrak ikon.
⚠️TableOverflow horizontalCheckCheckTabel ini sengaja lebar untuk memeriksa scroll container pada viewport kecil.
⚠️ImageAspect ratioCheckCheckGambar tidak boleh menyebabkan layout shift berlebihan.
⚠️CodeHorizontal scrollCheckCheckBaris panjang harus dapat digeser tanpa memotong isi halaman.
⚠️MediaNative controlsCheckCheckAudio/video harus tetap dapat dioperasikan dengan keyboard.

Ilustrasi blueprint PakRPP untuk pengujian rich media

Teks miring ini berfungsi sebagai caption sederhana di bawah gambar Markdown.

Diagram placeholder blueprint PakRPP dengan grid, panel, dan label rich media test
Figure 1 — Placeholder lokal untuk menguji ukuran intrinsik, lazy loading, alt text, dan caption.

Placeholder eksternal 1200 × 675

Apabila kebijakan CSP atau privacy PakRPP memblokir domain eksternal, gambar di atas boleh gagal. Kegagalan tersebut justru berguna untuk menguji fallback dan console warning.

src/scripts/rich-media-test.js
const state = {
theme: "blueprint",
sfx: true,
readerMode: "focused",
};
export function bootRichMediaTest() {
document.documentElement.dataset.richMediaTest = "ready";
console.info("[PakRPP] Rich media fixture ready", state);
}
src/lib/content-contract.ts
type ContentSource = "obsidian-git" | "cms";
- const source: ContentSource = "cms";
+ const source: ContentSource = "obsidian-git";
export const contentContract = {
source,
editor: "PakRPP Studio",
database: false,
};
src/components/TestPanel.astro
---
interface Props {
title: string;
status?: "pass" | "check" | "fail";
}
const { title, status = "check" } = Astro.props;
---
<section class="test-panel" data-status={status}>
<h2>{title}</h2>
<slot />
</section>
src/styles/rich-media-test.css
.rich-media-test {
container-type: inline-size;
display: grid;
grid-template-columns: minmax(0, 1fr);
gap: clamp(1rem, 2vw, 2rem);
}
.rich-media-test :where(img, video, iframe, table, pre) {
max-inline-size: 100%;
}
@container (width < 42rem) {
.rich-media-test {
--pakrpp-test-density: compact;
}
}
content-test-result.json
{
"route": "/test/rich-media/",
"renderer": "starlight",
"source": "obsidian-markdown",
"checks": {
"typography": true,
"asides": true,
"tables": true,
"code": true,
"media": true
}
}
Terminal
npm run dev
npm run build
npm run verify
Expected output
✓ Content collection loaded
✓ Rich media test route generated
✓ Starlight asides rendered
✓ Expressive Code rendered
Ini adalah satu baris yang sengaja dibuat sangat panjang untuk menguji horizontal overflow pada code block tanpa memaksa seluruh layout halaman melebar melebihi viewport perangkat.
Buka panel detail

Isi panel ini menguji elemen disclosure native. Fokus keyboard, indikator terbuka, animasi, dan spacing harus tetap jelas.

  • Detail item pertama
  • Detail item kedua
  • Detail item ketiga
Panel yang terbuka secara default

Panel ini sengaja menggunakan atribut open.

Status: Ready for QA

Ringkasan pendek yang meniru pola kartu tautan tanpa membutuhkan komponen MDX. Gunakan bagian ini untuk menguji hover, focus-visible, dan visited state.

Kontak publik PakRPP untuk menguji tautan eksternal dan perilaku pada perangkat mobile.

PakRPP menggunakan Obsidian/Markdown di Git sebagai sumber konten kanonis.1 Pendekatan ini menjaga artikel tetap portabel dan mudah diaudit.2

Bahasa Indonesia: “Pengalaman membaca harus tenang, jelas, dan dapat diaudit.”

English: “The interface should feel responsive, layered, mechanical, and alive.”

Jawa: “Alon-alon waton kelakon,” digunakan di sini hanya sebagai sampel teks.

Teks tanpa spasi untuk menguji overflow:

pakrpp-rich-media-test-abcdefghijklmnopqrstuvwxyz-0123456789-abcdefghijklmnopqrstuvwxyz-0123456789

URL panjang:

https://www.pakrpp.com/test/rich-media/sangat-panjang/untuk-menguji/wrapping-dan-overflow-pada-layout-starlight-di-perangkat-mobile

Blok berikut akan tampil sebagai code block biasa apabila integrasi Mermaid belum dipasang.

flowchart LR
A[Obsidian Vault] --> B[Git Repository]
B --> C[Astro Content Collection]
C --> D[Starlight Renderer]
D --> E[PakRPP Website]

Tanpa plugin matematika, ekspresi berikut tetap terbaca sebagai teks biasa:

  • Inline: E = mc²
  • Display: F(x) = ∫₀ˣ f(t) dt
  • Statistik: z = (x - μ) / σ

Tambahkan integrasi remark/rehype matematika hanya apabila memang menjadi kebutuhan konten PakRPP. Jangan menjadikan fixture ini alasan untuk menambah dependency produksi.


Belum ada catatan tersimpan.

Simpan halaman ini untuk menguji state reader preferences dan saved reading.


  • Frontmatter tidak memicu schema error.
  • Sidebar label dan order terbaca.
  • Semua heading memiliki anchor yang stabil.
  • Table of contents menampilkan hierarki yang benar.
  • Asides Starlight memiliki ikon, warna, dan kontras yang benar.
  • Callout Obsidian tidak merusak blockquote.
  • Tabel dapat digeser pada viewport sempit.
  • Code block tidak memperlebar layout.
  • Tombol copy code dapat dioperasikan.
  • Gambar lokal tidak mengalami layout shift.
  • Alt text tersedia.
  • Audio dan video dapat dioperasikan dengan keyboard.
  • Iframe gagal dengan aman apabila diblokir.
  • Focus-visible terlihat.
  • Light mode dan dark mode lulus pemeriksaan visual.
  • Print stylesheet tetap terbaca.
  • Pagefind menemukan istilah “canonical source”.
  • Reader preferences tidak menghilangkan elemen media.
  • SFX tidak berbunyi saat sekadar scroll.
  • Tidak ada error atau warning baru yang tidak dijelaskan di console.
  1. Sumber kanonis berarti perubahan utama dilakukan pada Markdown, bukan disalin ke database CMS kedua.

  2. Portabel berarti konten masih dapat dibaca, dicari, di-version-control, dan dipindahkan tanpa bergantung pada editor tertentu.