laporan-generator 2.9.0 → 3.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.agents/skills/laporan-generator/SKILL.md +11 -2
- package/.agents/skills/laporan-generator/references/campus-guide.md +24 -0
- package/.agents/skills/laporan-generator/references/metadata-schema.md +8 -3
- package/.agents/skills/laporan-generator/references/metadata.schema.json +221 -0
- package/.agents/skills/laporan-generator/references/preset-schema.md +7 -2
- package/.agents/skills/laporan-generator/references/prompt.md +395 -0
- package/.agents/skills/laporan-generator/references/syntax-cheatsheet.md +9 -9
- package/.agents/skills/laporan-generator/references/troubleshooting.md +36 -0
- package/.agents/skills/laporan-generator/resources/Makefile +24 -8
- package/.agents/skills/laporan-generator/resources/build-docx.sh +46 -17
- package/.agents/skills/laporan-generator/resources/build.sh +50 -26
- package/.agents/skills/laporan-generator/resources/chapters/bab4-hasil-dan-pembahasan.md +2 -2
- package/.agents/skills/laporan-generator/resources/chapters/bab5-penutup.md +10 -12
- package/.agents/skills/laporan-generator/resources/docx.lua +38 -0
- package/.agents/skills/laporan-generator/resources/laporan +205 -91
- package/.agents/skills/laporan-generator/resources/laporan.ps1 +680 -628
- package/.agents/skills/laporan-generator/resources/presets/jurnal-standar.yml +20 -0
- package/.agents/skills/laporan-generator/resources/presets/jurnal-uajy.yml +20 -0
- package/.agents/skills/laporan-generator/resources/scripts/audit-forensics.py +300 -0
- package/.agents/skills/laporan-generator/resources/scripts/bundle.py +24 -8
- package/.agents/skills/laporan-generator/resources/scripts/ingest.py +121 -0
- package/.agents/skills/laporan-generator/resources/scripts/report-doctor.py +9 -2
- package/.agents/skills/laporan-generator/resources/scripts/report-stats.py +9 -2
- package/.agents/skills/laporan-generator/resources/scripts/scan-preset.py +1 -1
- package/.agents/skills/laporan-generator/resources/scripts/test_scripts.py +68 -7
- package/.agents/skills/laporan-generator/resources/scripts/verify-citations.py +214 -0
- package/.agents/skills/laporan-generator/resources/template.typ +93 -23
- package/.agents/skills/laporan-generator/scripts/audit-forensics.py +300 -0
- package/.agents/skills/laporan-generator/scripts/build-docx.sh +46 -17
- package/.agents/skills/laporan-generator/scripts/build.sh +50 -26
- package/.agents/skills/laporan-generator/scripts/bundle.py +24 -8
- package/.agents/skills/laporan-generator/scripts/ingest.py +121 -0
- package/.agents/skills/laporan-generator/scripts/laporan +205 -91
- package/.agents/skills/laporan-generator/scripts/laporan.ps1 +680 -628
- package/.agents/skills/laporan-generator/scripts/report-doctor.py +9 -2
- package/.agents/skills/laporan-generator/scripts/report-stats.py +9 -2
- package/.agents/skills/laporan-generator/scripts/scan-preset.py +1 -1
- package/.agents/skills/laporan-generator/scripts/test_scripts.py +68 -7
- package/.agents/skills/laporan-generator/scripts/verify-citations.py +214 -0
- package/Makefile +24 -8
- package/README.md +123 -379
- package/bin/laporan-generator.js +130 -18
- package/build-docx.sh +46 -17
- package/build.sh +50 -26
- package/completions/laporan.bash +46 -0
- package/completions/laporan.fish +38 -0
- package/completions/laporan.zsh +95 -0
- package/docs/campus-guide.md +24 -0
- package/docs/metadata-schema.md +8 -3
- package/docs/metadata.schema.json +221 -0
- package/docs/preset-schema.md +7 -2
- package/docs/prompt.md +395 -0
- package/docs/syntax-cheatsheet.md +9 -9
- package/docs/troubleshooting.md +36 -0
- package/laporan +205 -91
- package/laporan.ps1 +680 -628
- package/lib/init.js +115 -36
- package/lib/mcp.js +233 -7
- package/lib/sync-hosts.js +17 -9
- package/package.json +5 -10
- package/presets/jurnal-standar.yml +20 -0
- package/presets/jurnal-uajy.yml +20 -0
- package/scripts/audit-forensics.py +300 -0
- package/scripts/bundle.py +24 -8
- package/scripts/ingest.py +121 -0
- package/scripts/report-doctor.py +9 -2
- package/scripts/report-stats.py +9 -2
- package/scripts/scan-preset.py +1 -1
- package/scripts/test_scripts.py +68 -7
- package/scripts/verify-citations.py +214 -0
- package/{chapters → templates/default/chapters}/bab4-hasil-dan-pembahasan.md +2 -2
- package/templates/default/chapters/bab5-penutup.md +25 -0
- package/{docx.lua → templates/default/docx.lua} +38 -0
- package/templates/default/gambar/.gitkeep +1 -0
- package/templates/default/ieee.csl +519 -0
- package/{template.typ → templates/default/template.typ} +93 -23
- package/chapters/bab5-penutup.md +0 -27
- /package/{apa.csl → templates/default/apa.csl} +0 -0
- /package/{chapters → templates/default/chapters}/bab1-pendahuluan.md +0 -0
- /package/{chapters → templates/default/chapters}/bab2-tinjauan-pustaka.md +0 -0
- /package/{chapters → templates/default/chapters}/bab3-metodologi.md +0 -0
- /package/{cover.md → templates/default/cover.md} +0 -0
- /package/{logo.jpg → templates/default/logo.jpg} +0 -0
- /package/{metadata.yml → templates/default/metadata.yml} +0 -0
- /package/{reference.docx → templates/default/reference.docx} +0 -0
- /package/{references.bib → templates/default/references.bib} +0 -0
|
@@ -33,9 +33,12 @@ When available in your environment, **always prefer calling the native MCP tools
|
|
|
33
33
|
| :--- | :--- | :--- |
|
|
34
34
|
| **Initialize Project** | `laporan_init({ preset, title, author_name, author_id, institution, daftar_gambar, daftar_tabel })` | `npx laporan-generator init` |
|
|
35
35
|
| **Audit & Health Check** | `laporan_doctor({ target_dir })` | `./laporan doctor` or `npx laporan-generator doctor --json` |
|
|
36
|
+
| **Forensic AI & Anti-Slop** | `laporan_audit({ target_dir, fail_on_ai, threshold })` | `./laporan audit` or `npx laporan-generator audit` |
|
|
37
|
+
| **Verify Citation DOIs** | `laporan_verify_citations({ bib_file, offline })` | `./laporan citations verify` or `npx laporan-generator citations verify` |
|
|
36
38
|
| **Document Stats & Metrics** | `laporan_stats({ target_dir })` | `./laporan stats` or `npx laporan-generator stats --json` |
|
|
37
39
|
| **Inspect Campus Presets** | `laporan_presets({ action: "list" \| "get", preset_name })` | `./laporan preset list` |
|
|
38
40
|
| **Search & Add Citations** | `laporan_citations({ action: "search_doi" \| "get_bibtex" \| "add_citation" \| "validate", query, doi, bibtex })` | Manual edit `references.bib` |
|
|
41
|
+
| **Ingest External Docs** | `laporan_import({ source_file, target_dir })` | `./laporan import <file>` |
|
|
39
42
|
| **Compile PDF & DOCX** | `laporan_build({ target_dir, format: "all" \| "pdf" \| "docx" })` | `./laporan build` or `npx laporan-generator build` |
|
|
40
43
|
|
|
41
44
|
--------------------------------------------------------------------------------
|
|
@@ -49,7 +52,8 @@ Identify the document type and target university:
|
|
|
49
52
|
1. **Tugas Akhir / Skripsi / Tesis**: Formal 5-chapter structure (BAB I - BAB V), bilingual abstract, approval sheet, standard university margins.
|
|
50
53
|
2. **Laporan Magang / PKL / KKN**: Company profile, department scope, implemented system/project, troubleshooting analysis, recommendations.
|
|
51
54
|
3. **Makalah Kuliah / Paper Ilmiah**: Focus on research problem, methodology, findings, and discussion. (In Indonesia, course papers use standard Roman Bab headings: `BAB I`, `BAB II`, etc.).
|
|
52
|
-
4. **
|
|
55
|
+
4. **Artikel Jurnal Ilmiah / Paper Jurnal**: IMRaD format, single-page header, IEEE / APA citation, no standalone cover/TOC (`doc_type: "journal"`).
|
|
56
|
+
5. **Target University & Journal Preset**:
|
|
53
57
|
- `skripsi-4433`: National Standard (Top 4cm, Left 4cm, Bottom 3cm, Right 3cm).
|
|
54
58
|
- `ui-skripsi`: Universitas Indonesia (Left 4cm, Top/Right/Bottom 3cm).
|
|
55
59
|
- `itb-ta`: Institut Teknologi Bandung (Pedoman TA ITB 4-4-3-3, Minimalist Cover).
|
|
@@ -61,6 +65,8 @@ Identify the document type and target university:
|
|
|
61
65
|
- `unair-skripsi`: Universitas Airlangga (4-4-3-3).
|
|
62
66
|
- `ipb-ppki`: IPB University - Pedoman PPKI (Left 4cm, Top/Right/Bottom 3cm, 1cm indent).
|
|
63
67
|
- `telkom-ta`: Telkom University (Left 4cm, Top/Right/Bottom 3cm).
|
|
68
|
+
- `jurnal-uajy`: Universitas Atma Jaya Yogyakarta - JBI (Margin 3-3-3-3, 11pt, IEEE CSL, IMRaD).
|
|
69
|
+
- `jurnal-standar`: National Journal Standard (Margin 3-3-3-3, IMRaD, IEEE/APA).
|
|
64
70
|
- `standard`: General University (Top 2cm, Bottom 3cm, Left 2.5cm, Right 2.5cm).
|
|
65
71
|
|
|
66
72
|
### Stage 2: Document Structure Confirmation & Scaffolding
|
|
@@ -107,7 +113,10 @@ When authoring content into `chapters/bab*.md`, strictly enforce **Indonesian St
|
|
|
107
113
|
1. Run pre-flight health audit:
|
|
108
114
|
- Call MCP tool `laporan_doctor` or run `./laporan doctor`.
|
|
109
115
|
- Ensure `missing_keys` is 0 and `broken_images` is 0.
|
|
110
|
-
2.
|
|
116
|
+
2. Run forensic stylometry & citation verification:
|
|
117
|
+
- Call MCP tool `laporan_verify_citations` or run `./laporan citations verify` to ensure DOI reachability.
|
|
118
|
+
- Call MCP tool `laporan_audit` or run `./laporan audit --fail-on-ai` to ensure natural cadence and AI probability $\le 15\%$.
|
|
119
|
+
3. Compile both outputs:
|
|
111
120
|
- Call MCP tool `laporan_build` or run `./laporan build`.
|
|
112
121
|
- Produces:
|
|
113
122
|
- `Laporan.pdf`: Pixel-perfect publication PDF rendered by Typst.
|
|
@@ -39,6 +39,8 @@ Atau gunakan bantuan CLI interaktif:
|
|
|
39
39
|
| `unair-skripsi` | Universitas Airlangga (UNAIR) | 4.0 cm - 3.0 cm - 4.0 cm - 3.0 cm | Pedoman penulisan karya ilmiah UNAIR |
|
|
40
40
|
| `ipb-ppki` | IPB University (PPKI) | 3.0 cm - 3.0 cm - 4.0 cm - 3.0 cm | Pedoman PPKI IPB (Indent 1cm, sub-bab tanpa titik akhir) |
|
|
41
41
|
| `telkom-ta` | Telkom University (Tel-U) | 3.0 cm - 3.0 cm - 4.0 cm - 3.0 cm | Pedoman Buku Tugas Akhir Telkom University |
|
|
42
|
+
| `jurnal-uajy` | Univ. Atma Jaya Yogyakarta (UAJY) | 3.0 cm - 3.0 cm - 3.0 cm - 3.0 cm | Format Jurnal Berita Informatika (JBI), 11pt, spasi 1, IEEE CSL, IMRaD |
|
|
43
|
+
| `jurnal-standar` | Jurnal Nasional / SINTA | 3.0 cm - 3.0 cm - 3.0 cm - 3.0 cm | Format artikel jurnal nasional standar (IEEE/APA, tanpa cover/TOC) |
|
|
42
44
|
|
|
43
45
|
---
|
|
44
46
|
|
|
@@ -90,6 +92,28 @@ year: "2026"
|
|
|
90
92
|
preset: "ugm-skripsi"
|
|
91
93
|
```
|
|
92
94
|
|
|
95
|
+
### D. Format Artikel Jurnal UAJY (Jurnal Berita Informatika)
|
|
96
|
+
```yaml
|
|
97
|
+
title: "RANCANG BANGUN PLATFORM INTERAKTIF BERBASIS WEB DENGAN METODE MULTIMEDIA DEVELOPMENT LIFE CYCLE"
|
|
98
|
+
author:
|
|
99
|
+
- name: "Mu'adz Hudzaifah"
|
|
100
|
+
nim: "24903460014"
|
|
101
|
+
affiliation: "Program Studi Informatika, Universitas Atma Jaya Yogyakarta"
|
|
102
|
+
email: "muadz@students.uajy.ac.id"
|
|
103
|
+
institution: "Universitas Atma Jaya Yogyakarta"
|
|
104
|
+
faculty: "Fakultas Teknologi Industri"
|
|
105
|
+
department: "Informatika"
|
|
106
|
+
year: "2026"
|
|
107
|
+
preset: "jurnal-uajy"
|
|
108
|
+
doc_type: "journal"
|
|
109
|
+
abstract_id: |
|
|
110
|
+
Penelitian ini merancang platform web interaktif menggunakan metode MDLC...
|
|
111
|
+
keywords_id: ["MDLC", "Web Platform", "Robotika"]
|
|
112
|
+
abstract_en: |
|
|
113
|
+
This study designs an interactive web platform using MDLC method...
|
|
114
|
+
keywords_en: ["MDLC", "Web Platform", "Robotics"]
|
|
115
|
+
```
|
|
116
|
+
|
|
93
117
|
---
|
|
94
118
|
|
|
95
119
|
## 4. Mengganti Logo Kampus
|
|
@@ -61,16 +61,21 @@ daftar_tabel: false
|
|
|
61
61
|
| `author` | List of Objects | **Ya** | Daftar penulis. Setiap entri memiliki `name` dan `nim`. |
|
|
62
62
|
| `author[].name` | String | **Ya** | Nama lengkap mahasiswa / penyusun. |
|
|
63
63
|
| `author[].nim` | String | **Ya** | Nomor Induk Mahasiswa (NIM / NPM / NISN). |
|
|
64
|
-
| `
|
|
64
|
+
| `author[].affiliation` | String | Opsional | Afiliasi akademik atau departemen (wajib pada artikel jurnal). |
|
|
65
|
+
| `author[].email` | String | Opsional | Alamat surel penulis (ditampilkan pada blok header jurnal). |
|
|
66
|
+
| `lecturer` | String | **Ya** | Nama lengkap dan gelar Dosen / Guru Pengampu / Pembimbing (pada skripsi/laporan). |
|
|
65
67
|
| `lecturer_label` | String | Opsional | Label peran dosen (default: `"Dosen Pengampu:"`, bisa `"Dosen Pembimbing:"`). |
|
|
66
|
-
| `course` | String |
|
|
68
|
+
| `course` | String | Opsional | Nama Mata Kuliah atau Jenis Karya Tulis (diwajibkan untuk laporan tugas). |
|
|
67
69
|
| `institution` | String | **Ya** | Nama Universitas, Institut, Politeknik, atau Sekolah. |
|
|
68
70
|
| `faculty` | String | **Ya** | Nama Fakultas, Sekolah, atau Departemen. |
|
|
69
71
|
| `department` | String | Opsional | Nama Program Studi atau Jurusan. |
|
|
70
72
|
| `city` | String | Opsional | Kota tempat institusi berada (digunakan pada lembar pengesahan). |
|
|
71
73
|
| `year` | String | **Ya** | Tahun Ajaran atau Tahun Kelulusan (contoh: `2026` atau `2025/2026`). |
|
|
72
74
|
| `date` | String | Opsional | Bulan dan Tahun pembuatan (contoh: `Juli 2026`). |
|
|
73
|
-
| `preset` | String | Opsional | ID preset format kampus (`standard`, `skripsi-4433`, `ui-skripsi`, `itb-ta`, `ugm-skripsi`, `its-skripsi`, `unpad-skripsi`, `ub-skripsi`, `undip-skripsi`, `unair-skripsi`, `ipb-ppki`, `telkom-ta`). |
|
|
75
|
+
| `preset` | String | Opsional | ID preset format kampus (`standard`, `skripsi-4433`, `ui-skripsi`, `itb-ta`, `ugm-skripsi`, `its-skripsi`, `unpad-skripsi`, `ub-skripsi`, `undip-skripsi`, `unair-skripsi`, `ipb-ppki`, `telkom-ta`, `jurnal-uajy`, `jurnal-standar`). |
|
|
76
|
+
| `doc_type` | String | Opsional | Paradigma dokumen: `"thesis"` (default: ada sampul & TOC) atau `"journal"` (header langsung di halaman 1, tanpa sampul & TOC). |
|
|
77
|
+
| `citation_style` | String | Opsional | Gaya sitasi: `"apa"` (default skripsi) atau `"ieee"` (default jurnal). |
|
|
78
|
+
| `csl` | String | Opsional | Nama file CSL spesifik (`apa.csl` atau `ieee.csl`). |
|
|
74
79
|
| `daftar_gambar` | Boolean | Opsional | Aktifkan halaman DAFTAR GAMBAR (`true`/`false`, default: `false`). |
|
|
75
80
|
| `daftar_tabel` | Boolean | Opsional | Aktifkan halaman DAFTAR TABEL (`true`/`false`, default: `false`). |
|
|
76
81
|
| `approval` | Object | Opsional | Konfigurasi Lembar Pengesahan (`city`, `date`, `supervisors[]`, `dean`). |
|
|
@@ -0,0 +1,221 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
3
|
+
"$id": "https://raw.githubusercontent.com/muadzhdz/laporan-generator/main/docs/metadata.schema.json",
|
|
4
|
+
"title": "Laporan Generator Metadata Schema",
|
|
5
|
+
"description": "JSON Schema untuk validasi dan autocompletion metadata.yml pada Laporan Generator (v3.1.0)",
|
|
6
|
+
"type": "object",
|
|
7
|
+
"required": [
|
|
8
|
+
"title",
|
|
9
|
+
"author",
|
|
10
|
+
"institution",
|
|
11
|
+
"year"
|
|
12
|
+
],
|
|
13
|
+
"properties": {
|
|
14
|
+
"title": {
|
|
15
|
+
"type": "string",
|
|
16
|
+
"description": "Judul utama laporan atau karya ilmiah"
|
|
17
|
+
},
|
|
18
|
+
"subtitle": {
|
|
19
|
+
"type": "string",
|
|
20
|
+
"description": "Sub-judul atau keterangan jenis laporan (opsional)"
|
|
21
|
+
},
|
|
22
|
+
"author": {
|
|
23
|
+
"type": "array",
|
|
24
|
+
"description": "Daftar penulis laporan atau artikel",
|
|
25
|
+
"minItems": 1,
|
|
26
|
+
"items": {
|
|
27
|
+
"type": "object",
|
|
28
|
+
"required": [
|
|
29
|
+
"name"
|
|
30
|
+
],
|
|
31
|
+
"properties": {
|
|
32
|
+
"name": {
|
|
33
|
+
"type": "string",
|
|
34
|
+
"description": "Nama lengkap penulis"
|
|
35
|
+
},
|
|
36
|
+
"nim": {
|
|
37
|
+
"type": "string",
|
|
38
|
+
"description": "Nomor Induk Mahasiswa (NIM / NPM / NISN)"
|
|
39
|
+
},
|
|
40
|
+
"affiliation": {
|
|
41
|
+
"type": "string",
|
|
42
|
+
"description": "Afiliasi institusi / prodi penulis (khusus jurnal)"
|
|
43
|
+
},
|
|
44
|
+
"email": {
|
|
45
|
+
"type": "string",
|
|
46
|
+
"format": "email",
|
|
47
|
+
"description": "Alamat surel penulis (khusus jurnal)"
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
},
|
|
52
|
+
"lecturer": {
|
|
53
|
+
"type": "string",
|
|
54
|
+
"description": "Nama lengkap dan gelar dosen pengampu atau pembimbing"
|
|
55
|
+
},
|
|
56
|
+
"lecturer_label": {
|
|
57
|
+
"type": "string",
|
|
58
|
+
"default": "Dosen Pengampu:",
|
|
59
|
+
"description": "Label peran dosen pada halaman sampul"
|
|
60
|
+
},
|
|
61
|
+
"course": {
|
|
62
|
+
"type": "string",
|
|
63
|
+
"description": "Nama mata kuliah atau jenis proyek tugas akhir"
|
|
64
|
+
},
|
|
65
|
+
"institution": {
|
|
66
|
+
"type": "string",
|
|
67
|
+
"description": "Nama universitas, institut, politeknik, atau sekolah"
|
|
68
|
+
},
|
|
69
|
+
"faculty": {
|
|
70
|
+
"type": "string",
|
|
71
|
+
"description": "Nama fakultas atau sekolah tinggi"
|
|
72
|
+
},
|
|
73
|
+
"department": {
|
|
74
|
+
"type": "string",
|
|
75
|
+
"description": "Nama program studi atau departemen"
|
|
76
|
+
},
|
|
77
|
+
"city": {
|
|
78
|
+
"type": "string",
|
|
79
|
+
"description": "Kota lokasi institusi"
|
|
80
|
+
},
|
|
81
|
+
"year": {
|
|
82
|
+
"type": "string",
|
|
83
|
+
"description": "Tahun ajaran atau tahun kelulusan (contoh: 2026)"
|
|
84
|
+
},
|
|
85
|
+
"date": {
|
|
86
|
+
"type": "string",
|
|
87
|
+
"description": "Bulan dan tahun penyusunan (contoh: Juli 2026)"
|
|
88
|
+
},
|
|
89
|
+
"preset": {
|
|
90
|
+
"type": "string",
|
|
91
|
+
"default": "standard",
|
|
92
|
+
"enum": [
|
|
93
|
+
"standard",
|
|
94
|
+
"skripsi-4433",
|
|
95
|
+
"ui-skripsi",
|
|
96
|
+
"itb-ta",
|
|
97
|
+
"ugm-skripsi",
|
|
98
|
+
"its-skripsi",
|
|
99
|
+
"unpad-skripsi",
|
|
100
|
+
"ub-skripsi",
|
|
101
|
+
"undip-skripsi",
|
|
102
|
+
"unair-skripsi",
|
|
103
|
+
"ipb-ppki",
|
|
104
|
+
"telkom-ta",
|
|
105
|
+
"jurnal-uajy",
|
|
106
|
+
"jurnal-standar"
|
|
107
|
+
],
|
|
108
|
+
"description": "ID preset format kampus atau standar jurnal ilmiah"
|
|
109
|
+
},
|
|
110
|
+
"doc_type": {
|
|
111
|
+
"type": "string",
|
|
112
|
+
"default": "thesis",
|
|
113
|
+
"enum": [
|
|
114
|
+
"thesis",
|
|
115
|
+
"journal"
|
|
116
|
+
],
|
|
117
|
+
"description": "Paradigma dokumen: thesis (skripsi dengan sampul/TOC) atau journal (artikel IMRaD)"
|
|
118
|
+
},
|
|
119
|
+
"citation_style": {
|
|
120
|
+
"type": "string",
|
|
121
|
+
"default": "apa",
|
|
122
|
+
"enum": [
|
|
123
|
+
"apa",
|
|
124
|
+
"ieee"
|
|
125
|
+
],
|
|
126
|
+
"description": "Gaya sitasi utama (apa atau ieee)"
|
|
127
|
+
},
|
|
128
|
+
"csl": {
|
|
129
|
+
"type": "string",
|
|
130
|
+
"default": "apa.csl",
|
|
131
|
+
"enum": [
|
|
132
|
+
"apa.csl",
|
|
133
|
+
"ieee.csl"
|
|
134
|
+
],
|
|
135
|
+
"description": "Nama berkas CSL spesifik"
|
|
136
|
+
},
|
|
137
|
+
"daftar_gambar": {
|
|
138
|
+
"type": "boolean",
|
|
139
|
+
"default": false,
|
|
140
|
+
"description": "Aktifkan halaman DAFTAR GAMBAR pada front-matter"
|
|
141
|
+
},
|
|
142
|
+
"daftar_tabel": {
|
|
143
|
+
"type": "boolean",
|
|
144
|
+
"default": false,
|
|
145
|
+
"description": "Aktifkan halaman DAFTAR TABEL pada front-matter"
|
|
146
|
+
},
|
|
147
|
+
"abstract_id": {
|
|
148
|
+
"type": "string",
|
|
149
|
+
"description": "Teks ringkasan/abstrak Bahasa Indonesia"
|
|
150
|
+
},
|
|
151
|
+
"keywords_id": {
|
|
152
|
+
"type": "array",
|
|
153
|
+
"items": {
|
|
154
|
+
"type": "string"
|
|
155
|
+
},
|
|
156
|
+
"description": "Daftar kata kunci Bahasa Indonesia"
|
|
157
|
+
},
|
|
158
|
+
"abstract_en": {
|
|
159
|
+
"type": "string",
|
|
160
|
+
"description": "Teks abstract Bahasa Inggris"
|
|
161
|
+
},
|
|
162
|
+
"keywords_en": {
|
|
163
|
+
"type": "array",
|
|
164
|
+
"items": {
|
|
165
|
+
"type": "string"
|
|
166
|
+
},
|
|
167
|
+
"description": "Daftar keywords Bahasa Inggris"
|
|
168
|
+
},
|
|
169
|
+
"approval": {
|
|
170
|
+
"type": "object",
|
|
171
|
+
"description": "Konfigurasi Lembar Pengesahan",
|
|
172
|
+
"properties": {
|
|
173
|
+
"city": {
|
|
174
|
+
"type": "string"
|
|
175
|
+
},
|
|
176
|
+
"date": {
|
|
177
|
+
"type": "string"
|
|
178
|
+
},
|
|
179
|
+
"supervisors": {
|
|
180
|
+
"type": "array",
|
|
181
|
+
"items": {
|
|
182
|
+
"type": "object",
|
|
183
|
+
"required": [
|
|
184
|
+
"name",
|
|
185
|
+
"role"
|
|
186
|
+
],
|
|
187
|
+
"properties": {
|
|
188
|
+
"name": {
|
|
189
|
+
"type": "string"
|
|
190
|
+
},
|
|
191
|
+
"nip": {
|
|
192
|
+
"type": "string"
|
|
193
|
+
},
|
|
194
|
+
"role": {
|
|
195
|
+
"type": "string"
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
},
|
|
200
|
+
"dean": {
|
|
201
|
+
"type": "object",
|
|
202
|
+
"required": [
|
|
203
|
+
"name",
|
|
204
|
+
"role"
|
|
205
|
+
],
|
|
206
|
+
"properties": {
|
|
207
|
+
"name": {
|
|
208
|
+
"type": "string"
|
|
209
|
+
},
|
|
210
|
+
"nip": {
|
|
211
|
+
"type": "string"
|
|
212
|
+
},
|
|
213
|
+
"role": {
|
|
214
|
+
"type": "string"
|
|
215
|
+
}
|
|
216
|
+
}
|
|
217
|
+
}
|
|
218
|
+
}
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
}
|
|
@@ -45,6 +45,7 @@ cover_logo_width: 4.5cm # Lebar logo di sampul depan
|
|
|
45
45
|
| **Identitas** | `preset_id` | String | *Nama file tanpa .yml* | ID unik preset (contoh: `ui-skripsi`). |
|
|
46
46
|
| | `name` | String | - | Nama lengkap format / institusi. |
|
|
47
47
|
| | `description` | String | - | Penjelasan singkat karakteristik preset. |
|
|
48
|
+
| | `doc_type` | String | `thesis` | Tipe dokumen (`thesis` atau `journal`). |
|
|
48
49
|
| **Margin** | `margin_top` | String / Satuan | `2cm` | Jarak batas atas halaman. |
|
|
49
50
|
| | `margin_bottom` | String / Satuan | `3cm` | Jarak batas bawah halaman. |
|
|
50
51
|
| | `margin_left` | String / Satuan | `2.5cm` | Jarak batas kiri halaman (misal: `4cm` untuk jilid). |
|
|
@@ -53,10 +54,14 @@ cover_logo_width: 4.5cm # Lebar logo di sampul depan
|
|
|
53
54
|
| | `font_size` | String / pt | `12pt` | Ukuran font teks isi. |
|
|
54
55
|
| | `line_spacing` | String / em | `0.75em` | Jarak leading baris (0.75em = setara 1.5 line). |
|
|
55
56
|
| | `first_line_indent` | String / cm | `1.25cm` | Lebar indentasi baris pertama paragraf. |
|
|
56
|
-
| **Heading** | `heading_chapter_prefix` | String | `BAB ` | Awalan judul bab level 1. |
|
|
57
|
+
| **Heading** | `heading_chapter_prefix` | String | `BAB ` | Awalan judul bab level 1 (bisa kosong untuk jurnal). |
|
|
58
|
+
| | `heading_chapter_num_format` | String | `roman` | Format angka bab (`roman` atau `arabic`). |
|
|
57
59
|
| | `heading_sub_dot` | Boolean | `true` | Apakah nomor sub-bab diakhiri titik (`1.1.` vs `1.1`). |
|
|
58
60
|
| | `heading_subsub_dot` | Boolean | `false` | Apakah nomor sub-sub-bab diakhiri titik (`1.1.1`). |
|
|
59
|
-
| **
|
|
61
|
+
| **Sitasi** | `citation_style` | String | `apa` | Gaya sitasi bawaan (`apa` atau `ieee`). |
|
|
62
|
+
| | `csl` | String | `apa.csl` | Berkas format CSL (`apa.csl` atau `ieee.csl`). |
|
|
63
|
+
| **Cover** | `cover_show` | Boolean | `true` | Apakah cover jilid ditampilkan (set `false` untuk jurnal). |
|
|
64
|
+
| | `cover_show_lecturer` | Boolean | `true` | Tampilkan blok Dosen Pengampu di cover depan. |
|
|
60
65
|
| | `cover_logo_width` | String / cm | `4cm` | Lebar visual gambar logo di halaman cover. |
|
|
61
66
|
|
|
62
67
|
---
|