Mi az a tárház
A Clink nyilvános GitHub-tárházakból olvas csomagokat. Te hozzáadsz egyet a nevével, a Clink beolvassa a legfrissebb kiadását, és minden fájlt ellenőriz a telepítés előtt. Semmi nem töltődik fel, és semmi, ami a tiéd, nem fut kiszolgálón.
Add meg owner/repository, github.com/owner/repository formában vagy a teljes HTTPS-URL-t. A Clink minden kiadási jegyzéket és fájlt ellenőriz, mielőtt bármit letöltene.
Válassz fajtát
Minden csomagfajtának saját fájlkiterjesztése és saját gyűjteményneve van a jegyzékben, és a Clink mindegyikre a maga méretkorlátját alkalmazza. Válaszd ki a sort, amit publikálsz, és maradj is annál: a panelek közé iktatott témát a rendszer egyszerűen nem olvassa be.
| Fajta | Fájl | Gyűjtemény | Legnagyobb fájl, bájtban | Hivatalos tárház |
|---|---|---|---|---|
| Témák | .clinktheme | themes | 128 000 | anti-ltd/clink-themes |
| Elrendezések | .clinklayout | layouts | 512 000 | anti-ltd/clink-layouts |
| Profilok | .clinkprofile | profiles | 256 000 | anti-ltd/clink-profiles |
| Hangok | .clinkpack | sounds | 512 000 | anti-ltd/clink-sounds |
| Betűtípusok | .otf .ttf | fonts | 32 000 000 | anti-ltd/clink-fonts |
| Panelek | .clinkpanel | panels | 50 000 | anti-ltd/clink-panels |
| Műveletek | .clinkext | actions | 48 000 | anti-ltd/clink-actions |
| Bővítmények | .clinkplugin | plugins | 66 000 | anti-ltd/clink-plugins |
A nyelvi csomagok a kivétel. Ott egy csomag nem egyetlen dokumentum, hanem szótár- és modellfájlok együttese, és a hivatalos tárház hozza magával az eszközláncot, amely felépíti őket. Kezdd az ottani README fájllal, ne ezzel az oldallal.
Indulj a hivatalos tárházból
A leggyorsabb út egy fork. Már összedrótozva érkezik a csomagmappa, a jegyzéképítő és a kiadási munkafolyamat, ráadásul működő példákkal, amiket lemásolhatsz.
# Everything a repository needs is already wired together in the official one.
gh repo fork anti-ltd/clink-panels --clone
cd clink-panels
# Your packs replace the examples. Keep tools/ and .github/.
rm Panels/*.clinkpanel
cp ~/Downloads/my-panel.clinkpanel Panels/kaomoji-plus.clinkpanelTartsd meg a tools/ és a .github/workflows/ mappát. Ez a kettő az, ami egy pushból a Clink által olvasható kiadást csinál, és a nélkülük készült fork semmit sem tesz közzé.
Vagy építsd fel három fájlból
Egy tárházban semmi különös nincs. Kell bele egy mappa a csomagoknak, egy szkript, amely megírja a jegyzéket, és egy munkafolyamat, amely kiadja a kiadást.
my-panels/
├── Panels/
│ └── kaomoji.clinkpanel # one file per pack, the name is the id
├── tools/
│ └── build-manifest.py # writes manifest.json from that folder
└── .github/workflows/
└── release.yml # turns a push into a releaseA munkafolyamat három dolgot tesz: újraépíti a jegyzéket, törli az előző kiadást, és közzétesz egy újat latest címkével, a csomagfájlokkal és a jegyzékkel együtt. Ennyi az egész.
name: Release panels
on:
push:
branches: [main]
paths: ["Panels/**", "tools/**", ".github/workflows/release.yml"]
permissions: { contents: write }
jobs:
release:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- run: python3 tools/build-manifest.py
- run: gh release delete latest --yes || true
env: { GH_TOKEN: "${{ github.token }}" }
- run: gh release create latest Panels/*.clinkpanel manifest.json --title "Latest panels" --latest
env: { GH_TOKEN: "${{ github.token }}" }Az építő végigmegy a mappán, és fájlonként ír egy bejegyzést. Egyedül innen származik a kivonat és a bájtszám, és éppen ezért fut a munkafolyamatban, nem kézzel.
#!/usr/bin/env python3
import hashlib, json, os, pathlib
root = pathlib.Path(__file__).resolve().parents[1]
repository = os.environ.get("GITHUB_REPOSITORY", "<owner>/<repository>")
packs = []
for path in sorted((root / "Panels").glob("*.clinkpanel")):
data = path.read_bytes()
pack = json.loads(data)
packs.append({
"id": path.stem,
"name": pack["name"],
"version": "latest",
"asset": {
"path": path.name,
"url": f"https://github.com/{repository}/releases/download/latest/{path.name}",
"sha256": hashlib.sha256(data).hexdigest(),
"byteCount": len(data),
},
})
(root / "manifest.json").write_text(json.dumps({"version": "latest", "panels": packs}, indent=2))A jegyzék
Minden kiadás közzétesz egy manifest.json fájlt a csomagfájlok mellett, és a Clink ezt a legfrissebb kiadásból olvassa innen: https://github.com/<owner>/<repository>/releases/latest/download/manifest.json. Minden bejegyzés megnevezi a fájlt, a címét ugyanazon a kiadáson belül, a SHA-256 kivonatát és a pontos bájtszámát.
{
"version": "latest",
"panels": [
{
"id": "kaomoji",
"name": "Kaomoji",
"version": "latest",
"asset": {
"path": "kaomoji.clinkpanel",
"url": "https://github.com/<owner>/<repository>/releases/download/latest/kaomoji.clinkpanel",
"sha256": "8f14e45fce…",
"byteCount": 2048
}
}
]
}A gyűjtemény nevének illeszkednie kell a fajtához. A panelek a panels alá kerülnek, a témák a themes alá, és így tovább a fenti táblázat szerint.
Próbáld ki, mielőtt közzéteszed
A tárházban lévő csomag ugyanaz a fájl, amit kézzel is megnyithatsz, úgyhogy először a rövid úton próbáld ki: AirDroppal küldd át a telefonodra, vagy tedd a Fájlok közé, és nyisd meg a Clinkkel. Aztán nézd meg a jegyzéket, amit a szkripted ír.
python3 tools/build-manifest.py
cat manifest.json- Futtasd az építőt. A manifest.json fájlt abból írja újra, ami éppen a mappában van.
- Olvasd el, amit írt. Minden bejegyzésnek olyan fájlt kell megneveznie, amely tényleg ott van, a hozzá tartozó bájtszámmal.
- Nyisd meg magát a csomagfájlt a Clinkben, és használd. A panel vagy a művelet a saját szerkesztőjében landol, ahol futtathatod.
Közzététel
git add Panels manifest.json
git commit -m "Add my first panel"
git pushKüldd fel a main ágra, a többit a munkafolyamat intézi. A latest kiadást lecseréli, nem pedig kiegészíti, így mindig a legutóbbi push az, amit mások megkapnak.
Nyisd meg ezt a lapot, miután a tárház közzétett egy kiadást.
Add hozzá a Clinkben
- Nyisd meg az Általános, majd a Tárházak részt, és add hozzá a tulajdonos/tárház nevet.
- Nyisd meg a fajtádhoz tartozó lapot, és húzd le a frissítéshez. A csomagjaid azon a néven jelennek meg, amit a jegyzék adott nekik.
- Koppints egyre a letöltéshez. A Clink ellenőrzi, majd úgy telepíti, mint bármelyik másik csomagot.
Egy tároló hozzáadása elég az adatcsomagokhoz: témák, elrendezések, profilok, hangok, betűtípusok és nyelvek. A panelek, műveletek és bővítmények logikát hordoznak, ezért minden tárolónak saját kapcsoló kell, mielőtt a Clink bármelyiket telepítené, és az app első alkalommal rákérdez.
A panelek korlátozott interaktív logikát tartalmaznak. Csak megbízható tárolókat engedélyezz.
Mit ellenőriz a Clink
- A cím HTTPS a következőn: github.com, az általad hozzáadott tárház kiadásain belül.
- A letöltés pontosan annyi bájt, amennyit a jegyzék mond, és a 64 karakteres SHA-256 kivonata egyezik.
- A fájl a megfelelő kiterjesztést viseli, és annak a csomagtípusnak felel meg, aminek mondja magát.
- A panelek, műveletek és bővítmények tárolás előtt átmennek a forrásszabályzaton.
Ha egy letöltést elutasít, az ez az öt ok valamelyike. Az appban megjelenő üzenet szándékosan rövid, ezért nézd végig őket sorban.
| Ellenőrzés | Elutasítva, ha |
|---|---|
github.com | A cím nem HTTPS a github.com címen, az általad hozzáadott tárház kiadásai alatt. A jegyzék nem mutathat máshová, még egy másik saját tárházadra sem. |
byteCount | A fájl nem pontosan akkora, amekkorát a jegyzék állít, vagy túllépi a fajtájára szabott korlátot. A jegyzék újraépítése minden szerkesztés után a legtöbb ilyen esetet megoldja. |
sha256 | A kivonat nem illik a bájtokhoz. Többnyire azért, mert a jegyzék a fájl utolsó módosítása előtt készült. |
path | A fájlnév nem a fajta által megkövetelt kiterjesztésre végződik, vagy két ponttal próbál kimászni a kiadásból. |
source | Egy panel, művelet vagy bővítmény nem ment át a forrásszabályzaton: túl hosszú, vagy olyan részletet tartalmaz, amelyet a szabályzat elutasít. |
Frissítés, és a visszavonás
Az azonosító a fájl neve kiterjesztés nélkül, és ez teszi a frissítést frissítéssé. Tartsd meg a nevet, és az új kiadás lecseréli azt a példányt, ami már megvan az embereknek. Nevezd át a fájlt, és máris egy második csomagot tettél közzé az első mellé.
Ha kiveszel egy csomagot a tárházból, az megállítja az új letöltéseket. Azokhoz a telefonokhoz nem ér el, amelyeken már fent van, ezért egy elrontott kiadást inkább cserélni érdemes, nem törölni.
Hivatalos tárházak
Forkold bármelyiket a kezdéshez. Mindegyik felépíti a saját jegyzékét, és a GitHub Actionsszel teszi közzé magát.