# Vodič za stil prozora za ćaskanje u Kopeteu

## Referenca za stil prozora za ćaskanje u Kopeteu.

Počev od izdanja 0.12, Kopete koristi Adiumov format za stil prozora za ćaskanje. Ovaj format je zasnovan na HTML šablonima i CSS‑u, pa je s njime lako raditi i razvijati teme — potrebno je samo poznavanje HTML‑a i CSS‑a. Stilovi takođe mogu imati varijante (definisane CSS fajlom) što dodaje na pogodnost prilagođavanja.

### Referentni vodič

Adiumov format čini struktura fascikle, HTML šabloni, CSS fajlovi i ključne reči koje se smenjuju pri svakom obrađivanju šablona. Krajnji razgovor je XHTML stranica, gde se poruke dodaju operacijama nad DOM‑om. Centralni element je `div` po imenu `Chat`. Pre i posle njega idu šabloni `Header` i `Footer`. Poruke su deca elementa `Chat`.

#### Struktura fascikle

Stil mora da poštuje sledeću strukturu fascikle. Kad arhivirate stil, arhivirajte fasciklu nazvanu tačno kao ime stila. Ovakva struktura fascikle sledi strukturu svežnja na MacOS‑u X, ako ste upoznati s tim operativnim sistemom. Morate paziti na veličinu slova u imenu, jer Unix sistemi razlikuju veličinu slova.

    styleName\ (može da ima sufiks .adiumMessageStyle, jer je svežanj pod MacOS‑om X)
            Contents\
                    Info.plist
                    Resources\
                            main.css
                            Header.html
                            Footer.html
                            Status.html
                            Incoming\ (i Outgoing\)
                                    Content.html
                                    NextContent.html (za uzastopne poruke)
                                    Context.html (za istorijat poruka)
                                    NextContext.html
                                    Action.html
                            Variants\
                                    *.css

#### O <div id="insert"></div>

Ovo je specijalni interni element `div`. Služi kao mestodržač koji pokazuje gde umetnuti sledeću poruku. Ako je to nova poruka, ovaj element se smenjuje celom porukom; ako je to nadovezujuća poruka, element se smenjuje sadržajem poruke. Ovaj element je neophodan u šablonima `Content`, `Context`, `NextContent` i `NextContext`, a može da se stavi i u šablone `Action` i `Status`.

#### HTML šabloni

#### Opis šablona

`Header.html` (neophodno)

- Koristite šablon `Header` za davanje prijatnog zaglavlja razgovoru. Ovaj šablon se umeće ispred elementa `div` u `Chat`. Ako ne želite zaglavlje, prosto stavite prazan fajl.

`Footer.html` (neophodno)

- Uglavnom isto kao i zaglavlje, ali za podnožje razgovora. Ovaj šablon se umeće iza elementa `div` u `Chat`. Ako ne želite podnožje, prosto stavite prazan fajl.

`Status.html` (neophodno)

- Ovaj šablon se koristi za prikazivanje internih poruka. Interne poruke su one poput promena stanja i drugih poruka od Kopetea (npr. o dolaznom prenosu fajla). Ako stil ne sadrži šablon `Action`, ovaj šablon se koristi i za poruke radnji.

`Incoming/Content.html`

`Outgoing/Content.html` (neophodno)

- Šablon `Content` je jezgro poruke. Zamislite ga kao blok koji će držati poruke. Pobrinite se da može da prima nadovezujuće poruke, nemojte ga dizajnirati za prikazivanje samo jedne poruke. Nadovezujuće poruke umetaće se na elementu `div`.

`Incoming/NextContent.html`

`Outgoing/NextContent.html` (neophodno)

- Šablon `NextContent` služi za nadovezujuće poruke. Umeće se u glavni blok poruka. HTML šablon treba da sadrži osnovni minimum za prikaz poruke.

`Incoming/Action.html`

`Outgoing/Action.html` (opciono) (Kopeteovo proširenje)

- Ovaj šablon je Kopeteovo proširenje Adiumovog formata. Dostupan je za dolazni i odlazni smer. Poruke radnji su specijalne poruke kojim obaveštavamo druge šta radimo. Primer: ako vam je nadimak `pperic` i unesete `/me instalira Kopete`, to će biti prikazano kao `pperic instalira Kopete`.

`Incoming/Context.html`

`Incoming/NextContext.html`

`Outgoing/Context.html`

`Outgoing/NextContext.html` (opciono)

- Kopete ne koristi ove šablone. U Adiumu se koriste za prikazivanje istorijata. Uglavnom su isti kao `Content` i `NextContent`, s malim razlikama da bi se razlikovali od običnih poruka.

#### O CSS stilovima i varijantama

HTML šabloni služe da opišu kako se gradi struktura. Stilovi, pak, opisani su u CSS fajlovima. Glavni stil je `main.css`, gde su varijante samo prekrajanja glavnog stila. Varijante mogu biti, na primer, različite boje ili bez prikaza fotografija korisnika. I `main.css` i varijante uvozi krajnja XHTML stranica.

##### `main.css`

Ovo je glavni CSS fajl, zajednički za sve varijante. Treba da sadrži celokupan opis osnovnog stila.

##### Varijante

Varijante su CSS fajlovi u fascikli `Variants/`. Svaka varijanta je jedan CSS fajl, koji uključuje `main.css` i vrši izmene na glavnom stilu.

#### Ispravljanje stilova

Evo dva saveta za isprobavanje stila tokom rada na njemu.

##### Sačuvajte uzorak razgovora.

U prozoru za ćaskanje možete sačuvati razgovor, kao kopiju interne XHTML stranice. Potom je otvorite K‑osvajačem radi isprobavanja svojih CSS fajlova.

##### Isključite keširanje stilova.

U postavi Kopetea postoji prekidač kojim se isključuje keširanje stilova. Kada je aktiviran, HTML šabloni se ponovo učitavaju svaki put kada se stil zatraži. Ovo je vrlo korisno za isprobavanje stila unutar Kopetea. Dodajte sledeće redove u fajl `~/.kde/share/config/kopeterc`:

    [KopeteStyleDebug]
    disableStyleCache=true

### Ključne reči

Ključne reči su nalik žlebovima za umetanje detalja. Pri svakoj novoj poruci, smenjuju se konkretnom vrednošću koja odgovara tom kontekstu. Radi pune podrške svim mogućnostima Kopetea, proširili smo osnovni skup ključnih reči Adiuma. Neke ključne reči dostupne su samo u izvesnim kontekstima.

### Spisak ključnih reči za šablone zaglavlja i podnožja

Ove ključne reči obrađuju se na početku ćaskanja.

`%chatName%`

- Ime tekuće sesije ćaskanja. Za uobičajenu sesiju, čini ga ime i stanje kontakta. Na IRC‑u, jednako je temi kanala.

`%sourceName%`

`%destinationName%`

- Ovo su imena kontakata za sesiju ćaskanja. `%destinationName%` je vaše ime. `%destinationName%` je ime kontakta s kojim ćaskate. Dajte prednost `%chatName%` umesto ovih, jer mogu biti zbunjujuća u grupnom ćaskanju i na IRC‑u.

`%incomingIconPath%`

`%outgoingIconPath%`

- Avatari, slike, fotografije kontakata za sesiju ćaskanja. Dolazne su fotografije kontakta, a odlazna je vaša lična. Ako fotografija nije raspoloživa, koristi se `buddy_icon.png`, smeštena u fascikli `Incoming` ili `Outgoing`.

`%timeOpened%`

`%timeOpened{X}%`

- Vreme početka sesije ćaskanja. `%timeOpened%` koristi podrazumevani format vremena za tekući lokalitet. Ako želite poseban format, koristite `%timeOpened{X}%`, gde je `X` niska formata vremena. Parametri formata isti su kao za funkciju `strftime` iz C biblioteke — izvršite `man strftime` za spisak svih parametara.

### Spisak ključnih reči za šablone `Content`, `NextContent`, `Context`, `NextContext`, `Action`

Za svaku poruku obrađuju se tri ključne reči.

`%userIconPath%`

- Slika, fotografija, avatar kontakta pridruženog poruci. Ako fotografija nije dostupna, koristi se `buddy_icon.png` iz `Incoming` ili `Outgoing`, u zavisnosti od smera poruke.

`%senderScreenName%`

- ID kontakta pridruženog poruci. Primeri: `ja@nedodjija.com` >, `45566576`, `PeraPeric`.

`%sender%`

- Ime kontakta pridruženog poruci. Za izvor se koristi prikazno ime metakontakta.

`%service%`

- Ime servisa pridruženog poruci. Primeri: `Jabber`, `Yahoo`, `MSN`.

`%textbackgroundcolor{X}%`

- U Kopeteu se ova ključna reč koristi za zadavanje boje isticanja pozadine. Ignorišite parametar u zagradama, koristite samo kao `%textbackgroundcolor{}`.

`%senderStatusIcon%` (Kopeteovo proširenje)

- Ikonica stanja kontakta pridruženog poruci. Ovo je putanja fajla.

`%senderColor%`

`%senderColor{N}%` (Kopeteovo proširenje)

- Stvara boju na osnovu ID‑a kontakta pošiljaoca. Može se upotrebiti za prikazivanje nadimka kontakta u drugoj boji.

  `%senderColor{N}%`, gde je `N` pozitivan broj. Ako je veći od 100, predstavlja svetliju boju od kontaktove. Ako je jednak 150, to je boja svetlija za 50%. Ako je manji od 100, onda je to tamnija boja. Korisno kada se želi drugačija pozadina za svaki kontakt.

  Ako želite da koristite ove boje u varijanti, ali ne u glavnom stilu, moraćete zaobilaznim putem.

      <div style="color:%senderColor%;border:none;border-color:%senderColor{40}%;"
      ><p class="message"
      >...</p
      ></div>

  Možete primeniti boju na element `p.message` u fajlu `main.css`, a u varijantu staviti nešto ovako:

      p.message { color:inherit; border-color:inherit; }

### Spisak ključnih reči zajedničkih za poruke i `Status.html`

`%message%`

- Sama poruka. Ovo je HTML fragment.

`%time%`

`%time{X}%`

- Vreme kad je poruka primljena. `%time%` koristi podrazumevani format vremena za tekući lokalitet. Ako želite poseban format, koristite `%time{X}%`, gde je `X` niska formata vremena. Parametri formata isti su kao za funkciju `strftime` iz C biblioteke — izvršite `man strftime` za spisak svih parametara.

`%messageDirection%` (Kopeteovo proširenje)

- Predstavlja smer teksta poruke, da li treba da se ispiše zdesna nalevo ili sleva nadesno. Vrednost je ili `rtl` ili `ltr`. Radi pravilne upotrebe ove ključne reči, pročitajte vodilje za smer poruka.

## Vodilje za stil prozora za ćaskanje u Kopeteu

Vodilje za stil prozora za ćaskanje čini skup stvari koje stil mora podržavati da bi bio saglasan sa Kopeteom.

### Podrška isticanja

Stil mora prikazivati isticanje. I u Kopeteu i u Adiumu, `%textbackgroundcolor{}%` menja se bojom isticanja. Dodajte stilski atribut `background-color: %textbackgroundcolor{}%` HTML elementu koji prikazuje poruku.

### Neophodni su šabloni za nadovezujuće poruke.

Ova vodilja je tu da podseti one koji prepisuju stare XSLT stilove na novi format. Svi stilovi moraju sadržati šablone za nadovezujuće poruke, jer je to sada podrazumevana mogućnost.

### Koristite kodiranje UTF‑8.

Naslov govori sve — fajlovi moraju biti sačuvani kao UTF‑8.

### Priložite `Contents/Info.plist` za međuoperativnost s Adiumom.

Fajl `Contents/Info.plist` još se ne koristi u Kopeteu. Ali, ako želite da stil bude saglasan Adiumu, morate dodati ovaj fajl. Evo osnovnog primera (niske za zamenu omotane su znacima `$`).

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd
    <plist version="1.0">
    <dict>
            <key
    >CFBundleDevelopmentRegion</key>
            <string
    >English</string>
            <key
    >CFBundleGetInfoString</key>
            <string
    >$Puno ime vašeg stila$</string>
            <key
    >CFBundleIdentifier</key>
            <string
    >$ID vašeg stila u obliku: com.adiumx.smooth.operator.style$</string>
            <key
    >CFBundleInfoDictionaryVersion</key>
            <string
    >1.0</string>
            <key
    >CFBundleName</key>
            <string
    >$Ovde ide ime vašeg stila$</string>
            <key
    >CFBundlePackageType</key>
            <string
    >AdIM</string>
            <key
    >MessageViewVersion</key>
            <integer
    >3</integer>
    </dict>
    </plist>

### Priložite `buddy_icon.png`

Morate dodati fajl slike po imenu `buddy_icon.png` u fascikle `Incoming` i `Outgoing`. Koristiće se za kontakte koji nemaju sopstvenu fotografiju.

### Podržite jezike zdesna nalevo, pomoću ključne reči `%messageDirection%`.

Ključna reč `%messageDirection%` data je radi jezika koji se pišu zdesna nalevo. Njome se definiše smer poruke, kao `rtl` (zdesna nalevo) ili `ltr` (sleva nadesno). Dodajte stilski atribut `direction: %messageDirection%` HTML elementu koji prikazuje poruku. Pregled stila u dijalogu za podešavanje sadrži tekst zdesna nalevo, kako biste proverili da li ga stil dobro prikazuje (tekst treba da počinje s desne strane).