# Водич за стил прозора за ћаскање у Копетеу

## Референца за стил прозора за ћаскање у Копетеу.

Почев од издања 0.12, Копете користи Адијумов формат за стил прозора за ћаскање. Овај формат је заснован на ХТМЛ шаблонима и ЦСС‑у, па је с њиме лако радити и развијати теме — потребно је само познавање ХТМЛ‑а и ЦСС‑а. Стилови такође могу имати варијанте (дефинисане ЦСС фајлом) што додаје на погодност прилагођавања.

### Референтни водич

Адијумов формат чини структура фасцикле, ХТМЛ шаблони, ЦСС фајлови и кључне речи које се смењују при сваком обрађивању шаблона. Крајњи разговор је ИксХТМЛ страница, где се поруке додају операцијама над ДОМ‑ом. Централни елемент је `div` по имену `Chat`. Пре и после њега иду шаблони `Header` и `Footer`. Поруке су деца елемента `Chat`.

#### Структура фасцикле

Стил мора да поштује следећу структуру фасцикле. Кад архивирате стил, архивирајте фасциклу названу тачно као име стила. Оваква структура фасцикле следи структуру свежња на МекОС‑у X, ако сте упознати с тим оперативним системом. Морате пазити на величину слова у имену, јер уникс системи разликују величину слова.

    styleName\ (може да има суфикс .adiumMessageStyle, јер је свежањ под МекОС‑ом X)
            Contents\
                    Info.plist
                    Resources\
                            main.css
                            Header.html
                            Footer.html
                            Status.html
                            Incoming\ (и Outgoing\)
                                    Content.html
                                    NextContent.html (за узастопне поруке)
                                    Context.html (за историјат порука)
                                    NextContext.html
                                    Action.html
                            Variants\
                                    *.css

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

Ово је специјални интерни елемент `div`. Служи као местодржач који показује где уметнути следећу поруку. Ако је то нова порука, овај елемент се смењује целом поруком; ако је то надовезујућа порука, елемент се смењује садржајем поруке. Овај елемент је неопходан у шаблонима `Content`, `Context`, `NextContent` и `NextContext`, а може да се стави и у шаблоне `Action` и `Status`.

#### ХТМЛ шаблони

#### Опис шаблона

`Header.html` (неопходно)

- Користите шаблон `Header` за давање пријатног заглавља разговору. Овај шаблон се умеће испред елемента `div` у `Chat`. Ако не желите заглавље, просто ставите празан фајл.

`Footer.html` (неопходно)

- Углавном исто као и заглавље, али за подножје разговора. Овај шаблон се умеће иза елемента `div` у `Chat`. Ако не желите подножје, просто ставите празан фајл.

`Status.html` (неопходно)

- Овај шаблон се користи за приказивање интерних порука. Интерне поруке су оне попут промена стања и других порука од Копетеа (нпр. о долазном преносу фајла). Ако стил не садржи шаблон `Action`, овај шаблон се користи и за поруке радњи.

`Incoming/Content.html`

`Outgoing/Content.html` (неопходно)

- Шаблон `Content` је језгро поруке. Замислите га као блок који ће држати поруке. Побрините се да може да прима надовезујуће поруке, немојте га дизајнирати за приказивање само једне поруке. Надовезујуће поруке уметаће се на елементу `div`.

`Incoming/NextContent.html`

`Outgoing/NextContent.html` (неопходно)

- Шаблон `NextContent` служи за надовезујуће поруке. Умеће се у главни блок порука. ХТМЛ шаблон треба да садржи основни минимум за приказ поруке.

`Incoming/Action.html`

`Outgoing/Action.html` (опционо) (Копетеово проширење)

- Овај шаблон је Копетеово проширење Адијумовог формата. Доступан је за долазни и одлазни смер. Поруке радњи су специјалне поруке којим обавештавамо друге шта радимо. Пример: ако вам је надимак `pperic` и унесете `/me инсталира Копете`, то ће бити приказано као `pperic инсталира Копете`.

`Incoming/Context.html`

`Incoming/NextContext.html`

`Outgoing/Context.html`

`Outgoing/NextContext.html` (опционо)

- Копете не користи ове шаблоне. У Адијуму се користе за приказивање историјата. Углавном су исти као `Content` и `NextContent`, с малим разликама да би се разликовали од обичних порука.

#### О ЦСС стиловима и варијантама

ХТМЛ шаблони служе да опишу како се гради структура. Стилови, пак, описани су у ЦСС фајловима. Главни стил је `main.css`, где су варијанте само прекрајања главног стила. Варијанте могу бити, на пример, различите боје или без приказа фотографија корисника. И `main.css` и варијанте увози крајња ИксХТМЛ страница.

##### `main.css`

Ово је главни ЦСС фајл, заједнички за све варијанте. Треба да садржи целокупан опис основног стила.

##### Варијанте

Варијанте су ЦСС фајлови у фасцикли `Variants/`. Свака варијанта је један ЦСС фајл, који укључује `main.css` и врши измене на главном стилу.

#### Исправљање стилова

Ево два савета за испробавање стила током рада на њему.

##### Сачувајте узорак разговора.

У прозору за ћаскање можете сачувати разговор, као копију интерне ИксХТМЛ странице. Потом је отворите К‑освајачем ради испробавања својих ЦСС фајлова.

##### Искључите кеширање стилова.

У постави Копетеа постоји прекидач којим се искључује кеширање стилова. Када је активиран, ХТМЛ шаблони се поново учитавају сваки пут када се стил затражи. Ово је врло корисно за испробавање стила унутар Копетеа. Додајте следеће редове у фајл `~/.kde/share/config/kopeterc`:

    [KopeteStyleDebug]
    disableStyleCache=true

### Кључне речи

Кључне речи су налик жлебовима за уметање детаља. При свакој новој поруци, смењују се конкретном вредношћу која одговара том контексту. Ради пуне подршке свим могућностима Копетеа, проширили смо основни скуп кључних речи Адијума. Неке кључне речи доступне су само у извесним контекстима.

### Списак кључних речи за шаблоне заглавља и подножја

Ове кључне речи обрађују се на почетку ћаскања.

`%chatName%`

- Име текуће сесије ћаскања. За уобичајену сесију, чини га име и стање контакта. На ИРЦ‑у, једнако је теми канала.

`%sourceName%`

`%destinationName%`

- Ово су имена контаката за сесију ћаскања. `%destinationName%` је ваше име. `%destinationName%` је име контакта с којим ћаскате. Дајте предност `%chatName%` уместо ових, јер могу бити збуњујућа у групном ћаскању и на ИРЦ‑у.

`%incomingIconPath%`

`%outgoingIconPath%`

- Аватари, слике, фотографије контаката за сесију ћаскања. Долазне су фотографије контакта, а одлазна је ваша лична. Ако фотографија није расположива, користи се `buddy_icon.png`, смештена у фасцикли `Incoming` или `Outgoing`.

`%timeOpened%`

`%timeOpened{X}%`

- Време почетка сесије ћаскања. `%timeOpened%` користи подразумевани формат времена за текући локалитет. Ако желите посебан формат, користите `%timeOpened{X}%`, где је `X` ниска формата времена. Параметри формата исти су као за функцију `strftime` из Ц библиотеке — извршите `man strftime` за списак свих параметара.

### Списак кључних речи за шаблоне `Content`, `NextContent`, `Context`, `NextContext`, `Action`

За сваку поруку обрађују се три кључне речи.

`%userIconPath%`

- Слика, фотографија, аватар контакта придруженог поруци. Ако фотографија није доступна, користи се `buddy_icon.png` из `Incoming` или `Outgoing`, у зависности од смера поруке.

`%senderScreenName%`

- ИД контакта придруженог поруци. Примери: `ja@nedodjija.com` >, `45566576`, `PeraPeric`.

`%sender%`

- Име контакта придруженог поруци. За извор се користи приказно име метаконтакта.

`%service%`

- Име сервиса придруженог поруци. Примери: `Jabber`, `Yahoo`, `MSN`.

`%textbackgroundcolor{X}%`

- У Копетеу се ова кључна реч користи за задавање боје истицања позадине. Игноришите параметар у заградама, користите само као `%textbackgroundcolor{}`.

`%senderStatusIcon%` (Копетеово проширење)

- Иконица стања контакта придруженог поруци. Ово је путања фајла.

`%senderColor%`

`%senderColor{N}%` (Копетеово проширење)

- Ствара боју на основу ИД‑а контакта пошиљаоца. Може се употребити за приказивање надимка контакта у другој боји.

  `%senderColor{N}%`, где је `N` позитиван број. Ако је већи од 100, представља светлију боју од контактове. Ако је једнак 150, то је боја светлија за 50%. Ако је мањи од 100, онда је то тамнија боја. Корисно када се жели другачија позадина за сваки контакт.

  Ако желите да користите ове боје у варијанти, али не у главном стилу, мораћете заобилазним путем.

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

  Можете применити боју на елемент `p.message` у фајлу `main.css`, а у варијанту ставити нешто овако:

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

### Списак кључних речи заједничких за поруке и `Status.html`

`%message%`

- Сама порука. Ово је ХТМЛ фрагмент.

`%time%`

`%time{X}%`

- Време кад је порука примљена. `%time%` користи подразумевани формат времена за текући локалитет. Ако желите посебан формат, користите `%time{X}%`, где је `X` ниска формата времена. Параметри формата исти су као за функцију `strftime` из Ц библиотеке — извршите `man strftime` за списак свих параметара.

`%messageDirection%` (Копетеово проширење)

- Представља смер текста поруке, да ли треба да се испише здесна налево или слева надесно. Вредност је или `rtl` или `ltr`. Ради правилне употребе ове кључне речи, прочитајте водиље за смер порука.

## Водиље за стил прозора за ћаскање у Копетеу

Водиље за стил прозора за ћаскање чини скуп ствари које стил мора подржавати да би био сагласан са Копетеом.

### Подршка истицања

Стил мора приказивати истицање. И у Копетеу и у Адијуму, `%textbackgroundcolor{}%` мења се бојом истицања. Додајте стилски атрибут `background-color: %textbackgroundcolor{}%` ХТМЛ елементу који приказује поруку.

### Неопходни су шаблони за надовезујуће поруке.

Ова водиља је ту да подсети оне који преписују старе ИксСЛТ стилове на нови формат. Сви стилови морају садржати шаблоне за надовезујуће поруке, јер је то сада подразумевана могућност.

### Користите кодирање УТФ‑8.

Наслов говори све — фајлови морају бити сачувани као УТФ‑8.

### Приложите `Contents/Info.plist` за међуоперативност с Адијумом.

Фајл `Contents/Info.plist` још се не користи у Копетеу. Али, ако желите да стил буде сагласан Адијуму, морате додати овај фајл. Ево основног примера (ниске за замену омотане су знацима `$`).

    <?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
    >$Пуно име вашег стила$</string>
            <key
    >CFBundleIdentifier</key>
            <string
    >$ИД вашег стила у облику: com.adiumx.smooth.operator.style$</string>
            <key
    >CFBundleInfoDictionaryVersion</key>
            <string
    >1.0</string>
            <key
    >CFBundleName</key>
            <string
    >$Овде иде име вашег стила$</string>
            <key
    >CFBundlePackageType</key>
            <string
    >AdIM</string>
            <key
    >MessageViewVersion</key>
            <integer
    >3</integer>
    </dict>
    </plist>

### Приложите `buddy_icon.png`

Морате додати фајл слике по имену `buddy_icon.png` у фасцикле `Incoming` и `Outgoing`. Користиће се за контакте који немају сопствену фотографију.

### Подржите језике здесна налево, помоћу кључне речи `%messageDirection%`.

Кључна реч `%messageDirection%` дата је ради језика који се пишу здесна налево. Њоме се дефинише смер поруке, као `rtl` (здесна налево) или `ltr` (слева надесно). Додајте стилски атрибут `direction: %messageDirection%` ХТМЛ елементу који приказује поруку. Преглед стила у дијалогу за подешавање садржи текст здесна налево, како бисте проверили да ли га стил добро приказује (текст треба да почиње с десне стране).