# SKILL: Blogger Template Development (Bloggerpack + Modern CSS) > Panduan lengkap untuk AI assistant (GitHub Copilot, Claude, dsb.) agar bisa generate > Blogger template yang benar secara sintaks, modern secara CSS, dan bagus secara desain. > Letakkan file ini di root project dan referensikan saat prompt ke AI. --- ## 1. PROJECT CONTEXT Ini adalah project pengembangan **Blogger (Blogspot) theme** menggunakan **Bloggerpack** sebagai build tool. Target distribusi: **free + premium (freemium model)**. - Platform: Google Blogger (Blogspot) - Build tool: Bloggerpack (Nunjucks template engine, Sass, Skin CSS) - Target: Template siap jual/distribusi — harus bersih, SEO-friendly, customizable - CSS approach: Modern CSS (custom properties, Grid, Flexbox, clamp, container queries) - Tidak menggunakan CSS framework eksternal (no Bootstrap, no Tailwind) — pure CSS --- ## 2. STRUKTUR PROJECT (WAJIB DIIKUTI) ``` my-theme/ ├── src/ │ ├── template/ │ │ ├── index.xml ← entry point utama │ │ └── components/ │ │ ├── head.xml │ │ ├── header.xml │ │ ├── navbar.xml │ │ ├── hero.xml │ │ ├── post-card.xml │ │ ├── post-list.xml │ │ ├── post-page.xml │ │ ├── sidebar.xml │ │ ├── footer.xml │ │ └── pagination.xml │ ├── sass/ │ │ ├── index.scss ← entry point Sass │ │ ├── _tokens.scss ← design tokens (CSS custom properties) │ │ ├── _reset.scss │ │ ├── _typography.scss │ │ ├── _layout.scss │ │ └── components/ │ │ └── _*.scss │ ├── skin/ │ │ ├── index.css ← entry point Skin (Blogger Theme Designer) │ │ └── _variables.css ← Blogger skin variables definitions │ └── js/ │ ├── index.js ← entry point JS │ └── modules/ │ └── *.js ├── theme-config.json ← data global (nama blog, warna default, dsb.) ├── package.json └── BLOGGER_TEMPLATE_SKILL.md ← file ini ``` --- ## 3. BLOGGERPACK: ATURAN SINTAKS KRITIS ### 3.1 File Template (`.xml` dan `.bloggerpack.xml`) Semua file template menggunakan ekstensi `.xml`. File komponen yang mengandung Sass/Skin/JS inline menggunakan `.bloggerpack.xml`. **Tag wajib di setiap file template:** ```xml ``` **Cara include komponen (JANGAN pakai `{% include %}` bawaan Nunjucks):** ```xml {# BENAR — pakai {% template %} #} {% template "src/template/components/header.xml" %} {# SALAH — jangan pakai ini #} {% include "src/template/components/header.xml" %} ``` **Cara include asset (CSS/JS yang sudah dikompile):** ```xml {% asset %} {% endasset %} ``` ### 3.2 Komponen `.bloggerpack.xml` — Struktur Lengkap ```xml
/* Sass/SCSS untuk komponen ini */ .my-component { display: flex; } /* CSS dengan Blogger skin variables — untuk Theme Designer */ .my-component { background: $(my.bg.color); } /* JavaScript untuk komponen ini */ const el = document.getElementById('myComponent'); ``` ### 3.3 `theme-config.json` — Data Global ```json { "theme": { "name": "NamaTheme", "version": "1.0.0", "author": "Nama Kamu", "description": "Deskripsi tema" }, "color": { "primary": "#1a73e8", "bg": "#ffffff", "text": "#202124" } } ``` Akses di template: `{{ data.theme.name }}`, `{{ data.color.primary }}` --- ## 4. BLOGGER XML TAGS — REFERENSI LENGKAP ### 4.1 Struktur Dasar Template Blogger ```xml ``` ### 4.2 Data Tags — Variabel Blogger | Tag | Keterangan | |-----|-----------| | `` | Judul blog | | `` | URL blog | | `` | URL homepage | | `` | Tipe halaman: `index`, `item`, `archive`, `error_page` | | `` | Bahasa: `id`, `en`, dsb. | | `` | Judul post | | `` | URL post | | `` | Isi post (HTML) | | `` | Cuplikan post | | `` | Nama penulis | | `` | Timestamp ISO (untuk `