kmubiin / suaikata

Koleksi ringkas kosa kata
Other
2 stars 1 forks source link

Perihal data files dan simpanan kajian daftar dan lema #43

Closed kmubiin closed 4 years ago

kmubiin commented 4 years ago

TERABAI: Isu ini akan dirujuk dan dipetik semula oleh isu yang lebih baharu (belum dicipta pada masa ini). Dengan itu, isu ini dianggap terabai pasca-2021.


Isu ini adalah isu berkecuali. Beberapa percubaan sedang dilakukan untuk menguji aturan kemas kini sendiri dengan separuh usaha (semi-automated update) dengan bantuan Jekyll. Pada masa yang sama, kandungan laman utama dapat dipermudah lagi.

Kecuali kajian rinci, semua kajian daftar dan lema kini dianggap maklumat bersejarah. Kajian-kajian tersebut akan disalin semula kepada dua bahagian:

  1. _data/{daftar,lema}.yml untuk menyimpan maklumat meta sahaja
  2. arkib/{2018,2019,2020} untuk menyimpan salinan fail sedia ada

Berkenaan 2, fail sedia ada bagi kajian daftar sahaja akan disalin semula ke arkib. Sebaliknya, kajian lema akan dibuang daripada laman utama (terkemudian).

Penjelasan: Maklumat meta adalah berdasarkan fail sedia ada dalam bentuk yang ringkas. Sebagai contoh, kajian daftar PSAT dalam fail sedia ada dapat ditukarkan kepada maklumat meta seperti berikut.

Fail sedia ada (../psat.md):

### Kajian daftar PSAT

Daftar PSAT terbitan projek suaikata ialah daftar dwibahasa
Inggeris-Melayu berdasarkan [PSAT High Frequency Words][a].
...
[a]: <url-panjang-lagi>

Maklumat meta (_data/daftar.yml):

-
  id: psat
  bahasa: en+ms
  nama:
    c: kata kerap PSAT  # nama umum untuk rujukan lalai
    en: PSAT High Frequency Words
    ms: Daftar PSAT suaikata
  sumber:
    <url-panjang-lagi>
  ...

Berbeza dengan posts dan collections yang dicuba (#39) sebelum ini, data files tidak perlukan sebarang tetapan untuk berfungsi. Untuk menggunakan data files, hanya perlu cipta folder _data dan simpan fail dalam format YAML, JSON, CSV, atau TSV. Kemudian, anu global site.data boleh digunakan untuk mencapai maklumat meta yang tersimpan dalam folder itu melalui objek Liquid.

Ada tiga prasyarat yang dikenal pasti: menyedia folder data files bagi Jekyll, mematuhi binaan format yang disokong (YAML dalam contoh berikut), dan pergunaan objek Liquid.

_data/foo.yml:

-
  anu: nilai
  ...

bar.md:

{% if site.data.foo %}
Data termuat {{ site.data.foo.size }}
{% endif %}

Hasilnya, objek Liquid dalam bar.md akan memapar teks dan nilai bagi saiz objek YAML yang terkandung dalam _data/foo.yml

Data termuat 1

Cara ini bukan sahaja memerlukan teks yang lebih sedikit malah memudahkan mengira bilangan maklumat meta yang tersimpan dalam folder data. Dengan kata lain, kajian daftar yang disimpan dengan cara ini secara tidak langsung dapat menghitung bilangan daftar yang hadir.

Dan lagi, kajian daftar dapat disediakan dengan jauh lebih mudah. Paling tidak pun, satu blok bersama pasangan anu dan nilai seperti - id: psat akan dikira sebagai satu bilangan dalam format YAML. Tidak perlu ayat. Tidak perlu perenggan. Hanya sebaris maklumat untuk menjadi berguna.

Pergunaan lain: Maklumat meta bagi terbitan boleh disimpan dan dipapar di laman utama dengan anu global seperti site.data.terbit. Tak perlu kemas kini fail tetapan _config.yml seperti sekarang. Cuma tambah blok baharu, dan objek Liquid hanya perlu baca blok objek terakhir (last array).

Setakat 7 Oct: Berikut adalah senarai kandungan yang disalin semula menjadi data.

Terbitan dalam rancangan: semasa


8 Sep: Pergunaan data files telah diuji, cubaan pertama (b40a936)

9 Sep: Semak semula dan tambah penjelasan bersama contoh.

12 Sep: Ganti dengan label "penambahan" kerana isu ini bertumpu pada tambahan folder data untuk menyimpan maklumat meta; tambah pergunaan lain.

14 Sep: Semak semula maklumat meta, kini lebih ringkas (6a5e0f2, 47e3a61)

16 Sep: Pergunaan lain site.data.terbit telah duji, sejarah ringkas yang disalin tidak perlu lagi menjalankan garis perintah git dan maklumat tag terakhir agak mudah dicapai dengan Liquid (2cfa53c)

17 Sep: Capaian tag terakhir tidak perlu guna for ... reversed, lebih mudah guna array.last (7dd8efe #L23)

7 Oct: Pembetukan anu lazim bagi bahasa (language|bahasa => lang), semak semula maklumat meta lema dan daftar, mungkin cukup baik, semua salinan data dikenal pasti