Lompat ke konten
dokumentasi.id
Commit a27b09d
v2
Star11 rb

Kamu membaca versi lama. Halaman ini hanya bisa dibaca.

1

Struktur Repository

Kristories/awesome-guidelines bukan aplikasi. Hampir seluruh isinya berupa satu katalog tautan di README.md, ditambah tooling lint Node dan berkas tata kelola kecil di tingkat root. Tidak ada direktori konten, sehingga pembagian repository ini bersifat datar. Halaman ini memetakan peran setiap berkas dan arah ketergantungannya; isi katalognya dibahas di Ringkasan Proyek, sedangkan eksekusi lint dibahas di Pipeline Lint dan CI.

Peta ketergantungan berkas

graph TD
  COC["code-of-conduct.md"] --> GOV["contributing.md"]
  GOV --> TPL["pull request template"]
  TPL --> PR["pull request ke master"]
  PR --> WFL["lint.yml"]
  WFL --> CLI["npx awesome-lint"]
  CLI --> RM["README.md"]
  PKG["package.json"] --> LOCK["package-lock.json"]
  LOCK --> CLI
  DEP["dependabot.yml"] --> LOCK
  STALE["stale.yml"] --> OLD["issue dan pull request tanpa aktivitas"]
  ED["editorconfig + gitattributes"] -.-> RM
  TR["travis.yml"] -.-> CLI
  style RM fill:#336791,color:#fff
  style LOCK fill:#8b5cf6,color:#fff
  style WFL fill:#2d7d46,color:#fff
  style CLI fill:#2d7d46,color:#fff
  style PKG fill:#f59e0b,color:#000
  style ED fill:#f59e0b,color:#000
  style DEP fill:#f59e0b,color:#000
  style TR fill:#dc2626,color:#fff
%% fig: Ketergantungan berkas di repository
%% desc: Konten dan tooling lint bertemu di satu workflow, sementara berkas tata kelola menjadi gerbang sebelum pull request dijalankan.
Fig. 1: Ketergantungan berkas di repositoryKonten dan tooling lint bertemu di satu workflow, sementara berkas tata kelola menjadi gerbang sebelum pull request dijalankan.

Gambar di atas menunjukkan bahwa README.md adalah satu-satunya berkas yang diperiksa lint, sedangkan berkas lain menjadi masukan atau pemicu. package-lock.json diberi warna berbeda karena isinya diturunkan dari package.json. travis.yml diberi warna merah karena berada di luar .github/workflows/ travis.yml:1-5.

KelompokBerkasPeran
KontenREADME.mdkatalog tautan; berkas yang diperiksa lint
Tooling lintpackage.json, package-lock.json, test.jsmendefinisikan dan menjalankan awesome-lint
CI.github/workflows/lint.yml, .github/workflows/stale.ymlmemeriksa pull request, menandai issue dan pull request yang menganggur
Otomasi dependensi.github/dependabot.ymlmemperbarui dependensi npm tiap hari
Tata kelolacontributing.md, code-of-conduct.md, .github/pull_request_template.md, LICENSEaturan kontribusi, perilaku, dan lisensi
Konvensi editor.editorconfig, .gitattributes, .gitignoreakhir baris, penggabungan berkas Markdown, pengecualian node_modules/

Konten: satu README.md

README.md dibuka dengan judul dan badge Awesome README.md:1-3. Setelah itu daftar isi menautkan enam bagian: Programming Languages, Development Environment, Platforms, Frameworks, Content Management System, dan Tools README.md:5-12. Setiap bahasa ditulis sebagai subbagian ### di bawah ## Programming Languages, misalnya ### Ada dan ### Brainfuck README.md:14-18. Katalog berakhir pada bagian Tools di baris terakhir, sehingga seluruh isi repository ini berada dalam 376 baris README.md README.md:363-376.

Tooling lint Node

package.json hanya memuat dua hal: script test yang menjalankan awesome-lint, dan satu devDependency awesome-lint pada versi v2.3.0 package.json:1-8. package-lock.json mengunci paket itu pada versi 2.3.0 dengan tarball dari registry npm package-lock.json:319-324. test.js adalah pembungkus tiga baris yang memuat modul awesome-lint lalu memanggil awesomeLint.report() test.js:1-3. Hasil instalasi tidak ikut masuk repository karena .gitignore hanya memuat node_modules/ .gitignore:1-1.

⚠️ package-lock.json memuat kunci ganda. Baris 8 mencetak "awesome-lint": "v2.3.0" dua kali package-lock.json:1-10, dan entri node_modules/awesome-lint mencetak version, resolved, serta integrity masing-masing dua kali package-lock.json:319-324. Pasangan kunci berulang membuat berkas ini tidak lolos parser JSON yang ketat, sehingga instalasi ulang lewat npm ci tidak bisa diandalkan.

Workflow GitHub Actions

BerkasPemicuLangkah
.github/workflows/lint.ymlpull_request ke branch masteractions/checkout@v2 dengan fetch-depth: 0, lalu npx awesome-lint
.github/workflows/stale.ymlschedule dengan cron 59 23 * * *actions/stale@v1, days-before-stale: 20, days-before-close: 1, label no-issue-activity dan no-pr-activity
.github/dependabot.ymlschedule harian (interval: "daily")ekosistem npm di direktori /, reviewer dan assignee kristories

Workflow lint.yml hanya menyala pada pull_request ke master; tidak ada pemicu push .github/workflows/lint.yml:1-14. Langkah terakhirnya menjalankan npx awesome-lint, bukan npm test, sehingga script test dan test.js tidak dipakai oleh workflow .github/workflows/lint.yml:1-14. Di sisi lain, stale.yml menandai issue dan pull request sebagai stale setelah 20 hari tanpa aktivitas lalu menutupnya satu hari kemudian .github/workflows/stale.yml:1-21. dependabot.yml memeriksa ekosistem npm di direktori akar setiap hari dan menugaskan hasilnya kepada kristories .github/dependabot.yml:1-10.

⚠️ travis.yml di root tidak berada di .github/workflows/, dan namanya tanpa titik depan, sehingga GitHub Actions maupun Travis tidak membacanya sebagai pipeline aktif. Isinya hanya language: node_js, node_js: node, dan dua baris komentar travis.yml:1-5.

Berkas tata kelola

BerkasIsi
contributing.mdpedoman entri [Title](url) - Description., urutan alfabetis, satu tautan per pull request
code-of-conduct.mdtujuan proyek, perilaku yang diharapkan, perilaku yang tidak diterima, tanggung jawab maintainer
.github/pull_request_template.mdsatu paragraf pernyataan bahwa kontributor sudah membaca pedoman kontribusi
LICENSECC0 1.0 Universal

contributing.md menetapkan format dan tata urutan entri contributing.md:19-31; rinciannya dibahas di Panduan Kontribusi dan Kode Etik. code-of-conduct.md membuka dengan tujuan proyek lalu menetapkan perilaku yang diharapkan code-of-conduct.md:1-6. Template pull request tidak memakai front matter: isinya satu paragraf dan satu baris panah, dan berkas pada path itu otomatis muncul di badan setiap pull request Kristories/awesome-guidelines .github/pull_request_template.md:1-3. LICENSE memakai CC0 1.0 Universal LICENSE:1-1.

Konvensi lintas editor

Pola.editorconfig.gitattributes
semua berkascharset = utf-8, end_of_line = lf, insert_final_newline = true, trim_trailing_whitespace = true, indent_style = space, indent_size = 2text=auto eol=lf
*.mdtrim_trailing_whitespace = falsemerge=union
*.yml, *.yaml, *.jsonindent_size = 2ditandai text
*.png, *.jpg, *.jpeg, *.gif, *.svgtidak diaturbinary

.editorconfig menetapkan akar konfigurasi lewat root = true dan memberlakukan akhir baris LF serta indentasi dua spasi untuk seluruh berkas .editorconfig:1-21. .gitattributes menormalkan akhir baris ke LF dan memakai *.md merge=union, sehingga dua penambahan pada berkas Markdown yang sama digabung otomatis .gitattributes:1-17.

⚠️ Ada aturan yang bertentangan untuk berkas Markdown. .editorconfig mematikan pemangkasan trailing whitespace khusus *.md .editorconfig:11-12, sementara butir terakhir pedoman kontribusi meminta teks editor disetel untuk menghapus trailing whitespace contributing.md:19-31. Pilih satu acuan agar hasil commit konsisten.