Додаток A. Довідник зі створення стилів вікна спілкування Kopete

Довідка зі стилів вікна спілкування Kopete.

Починаючи з версії Kopete 0.12, у програмі для стилів вікон спілкування використовується формат Adium. Формат тем засновано на шаблонах HTML і CSS. Їх стало простіше створювати і розробляти, для цього потрібне лише знання HTML і CSS. Крім того, стилі можуть мати варіанти (які визначено у вигляді CSS), що надає додаткові можливості з налаштування :).

Довідник.

Формат Adium складається з структури каталогів, шаблонів HTML, файлів CSS і ключових слів, які буде замінено кожного разу під час обробки шаблонів. Остаточна розмова є сторінкою XHTML, повідомлення на яку додаються за допомогою дій DOM. Центральним елементом є елемент div з назвою Chat. Перед і після цього елемента div розташовуються шаблони Шапки і Підвалу. Повідомлення є дочірніми об’єктами елемента div Chat.

Структура каталогів

Вам слід дотримуватися цієї структури каталогів. Код Kopete працює лише за умов дотримання такої структури. Якщо вам потрібно буде створити архів зі стилем, вас слід буде заархівувати каталог styleName. Структура каталогу повторює структуру елемента-зв’язки у Mac OS X, якщо ви маєте уявлення про цю операційну систему. Крім того, вам слід дотримуватися регістру символів, оскільки системи UNIX розрізняють назви у верхньому і нижньому регістрах.

styleName\ (може мати суфікс .adiumMessageStyle, для сумісності з Mac OS X)
        Contents\
                Info.plist
                Resources\
                        main.css
                        Header.html
                        Footer.html
                        Status.html
                        Incoming\ (and Outgoing\)
                                Content.html
                                NextContent.html (for consecutive messages)
                                Context.html (for message history)
                                NextContext.html
                                Action.html
                        Variants\
                                *.css

About <div id="insert"></div>

Це особливий елемент div, який використовується всередині програми. Це заповнювач, який позначає місце, куди слід вставляти наступне повідомлення. Якщо цим повідомленням буде нове повідомлення, заповнювач буде вилучено, розпочнеться елемент нового повідомлення. Але якщо це послідовне повідомлення, елемент div буде заміщено вмістом нового повідомлення. Це особливий елемент div потрібен у шаблонах Content, Context, NextContent, NextContext. Хоча не завадить додати його і до шаблонів Action і Status.

Шаблони HTML.

Опис шаблону.

Header.html (Обов’язково)

Шаблон Header слід використовувати для показу заголовка розмови. Цей шаблон буде вставлено перед елементом div Chat. Якщо ви не використовуєте заголовки, просто вставте порожній файл.

Footer.html (Обов’язково)

Цей шаблон загалом подібний до Header, але його призначено для підвалу сторінки розмови. Цей шаблон додається після елемента div Chat. Якщо ви не використовуєте підвали, просто вставте порожній файл.

Status.html (Обов’язково)

Цей шаблон використовується для показу внутрішнього повідомлення. Внутрішні повідомлення, такі як зміна стану, повідомлення від Kopete (наприклад, Передавання вхідного файла). Якщо у стилі немає шаблону Action, цей шаблон використовується для показу повідомлень про дії (Action).

Incoming/Content.html, Outgoing/Content.html (Обов’язково)

Вмістом цього шаблону є текст повідомлення. Цей шаблон можна вважати блоком, що містить повідомлення. Переконайтеся, що у цьому шаблоні можна приймати послідовні повідомлення, не робіть його таким, що пристосований лише для одинарних повідомлень. Послідовні повідомлення буде вставлено у елемент div insert.

Incoming/NextContent.html, Outgoing/NextContent.html (Обов’язково)

Шаблон NextContent — це фрагмент повідомлення для послідовних повідомлень. Його буде вставлено у головний блок повідомлення. У шаблоні HTML має міститися мінімальна кількість команд для показу повідомлення.

Incoming/Action.html, Outgoing/Action.html (Необов’язково) (Додаток до Kopete)

Цей шаблон є додатком Kopete до формату Adium. Його можна використовувати для обох напрямків: вхідного і вихідного. Повідомлення про дії — це особливий вид повідомлень, за допомогою яких можна повідомити про дії, які ви виконуєте. Приклад: «/me встановлює Kopete» буде показано як «DarkShock встановлює Kopete».

Incoming/Context.html, Incoming/NextContext.html, Outgoing/Context.html, Outgoing/NextContext.html (Необов’язково)

Ці шаблони у Kopete не використовуються. У Adium їх призначено для показу історії повідомлень. Загалом цей шаблон подібний до Content і NextContent, але має деякі відмінності, за допомогою яких його можна відрізнити від звичайних повідомлень.

Про стилі CSS і Варіанти

У шаблоні HTML буде описано структуру стилю. Але самі стилі описуються за допомогою файлів CSS. У файлі main.css описано головний стиль, всі варіанти є лише наслідками зміни головного стилю. Прикладами варіантів є зміна кольорів, вимикання показу фотографій користувачів. Обидва різновиди таблиць стилів, main.css і варіанти, буде імпортовано до остаточної сторінки XHTML.

-main.css

Це головний файл CSS, який є спільним для всіх варіантів. У цьому файлі повинні міститися всі головні описи стилю.

-Variants

Варіанти — це файли CSS, розташовані у каталозі Variants/. Кожен з варіантів є окремим файлом CSS, у який включено файл main.css, а потім описано зміни у головному стилі.

Стилі для налагоджування

Ось дві підказки для випробування стилю під час його створення.

-Збережіть зразок розмови.

За допомогою функцій вікна спілкування ви можете зберегти якусь розмову. Результатом збереження буде копія показаної внутрішньої сторінки XHTML. Скористайтеся цією сторінкою, щоб за допомогою Konqueror перевірити ваші файли CSS.

-Вимкніть кеш стилів.

У налаштуваннях існує невеличкий перемикач, за допомогою якого можна вимкнути кешування стилів. Якщо скористатися цим перемикачем, шаблони HTML будуть перезавантажуватися після кожного запиту на стиль. Для того, щоб скористатися можливостями перемикача, вам слід додати наведені нижче рядки для файла kopeterc. Цей перемикач дуже корисний під час перевірки стилів у Kopete

[KopeteStyleDebug]
disableStyleCache=true

Довідка з ключових слів

Ключові слова схожі на отвори у програмі, у які ви можете заповнити власними значеннями. У кожному з нових повідомлень їх буде замінено на значення, які відповідають контексту. Для повноцінної підтримки всіх можливостей Kopete авторами було додано декілька додатків ключових слів до Adium. Крім того, ключові слова доступні лише у певному контексті.

Список ключових слів для шаблонів Header і Footer.

Тут наведено ключові слова, які оброблятимуться на початку спілкування.

%chatName%

Це назва файла поточного сеансу спілкування. Для типового сеансу у цій назві відображено назву контакту і його стан. У випадку IRC за назвою також можна встановити тему каналу.

%sourceName%, %destinationName%

Це імена контактів у сеансі спілкування. %sourceName% — це ваше ім’я. %destinationName% — це ім’я контакту, з яким ви спілкуєтеся. Перевагу над використанням зазначених вище ключових слів слід надавати %chatName%, оскільки попередні параметри може бути оброблено неправильно у груповому спілкуванні або IRC.

%incomingIconPath%, %outgoingIconPath%

Ці ключові слова позначають зображення, фотографію або аватар контактів під час сеансу спілкування. У вхідному потоці це буде фотографія контакту, а у вихідному — ваша власна фотографія. Якщо таких фотографій виявлено не буде, буде використано зображення buddy_icon.png, розташовані у каталогах Incoming або Outgoing.

%timeOpened%, %timeOpened{X}%

Це час, коли було розпочато спілкування. У %timeOpened% буде використано типовий формат часу для поточної локалі. Якщо ви бажаєте використовувати особливий формат часу, скористайтеся ключовим словом %timeOpened{X}%, де X — це рядок, у якому міститься формат часу. Параметри часу збігаються з параметрами часу функції strftime бібліотеки glibc. Щоб отримати список можливих параметрів, виконайте у командній оболонці команду man strftime.

Список ключових слів для шаблонів Content, NextContent, Context, NextContext, Action

Тут наведено список ключових слів, які обробляються для кожного з повідомлень.

%userIconPath%

Це зображення, фотографія або аватар контакту, пов’язаного з поточним повідомленням. Якщо фотографії не буде знайдено, буде використано зображення buddy_icon.png, яке знаходиться у каталозі Incoming або Outgoing, залежно від напрямку повідомлення.

%senderScreenName%

Це ідентифікатор контакту, пов’язаного з даним повідомленням. Приклади: me@hotmail.com, 45566576, JohnSmith.

%sender%

Це ім’я контакту, пов’язаного з поточним повідомленням. Як джерело буде використано екранне ім’я метаконтакту.

%service%

Показує назву служби, пов’язаної з поточним повідомленням. Приклади: Jabber, Yahoo, MSN.

%textbackgroundcolor{X}%

У Kopete це ключове слово відповідає кольору тла підсвічування. Не використовуйте параметр у фігурних дужках, користуйтеся лише формою %textbackgroundcolor{}.

%senderStatusIcon% (Додаток до Kopete)

Відповідає піктограмі стану контакту, пов’язаного з поточним повідомленням. Значенням є адреса файла.

%senderColor%, %senderColor{N}% (Додаток до Kopete)

Створює колір за ідентифікатором контакту відправника. Можна використовувати для показу псевдоніма контакту іншим кольором.

%senderColor{N}%, де N — додатне число. Якщо N більше за 100, колір буде світлішим за колір контакту. Якщо N рівне 150, колір буде на 50% світлішим. Якщо N менше за 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%

Саме повідомлення. Значенням є фрагмент коду HTML.

%time%, %time{X}%

Час, коли було отримано повідомлення. У %time% буде використано типовий формат часу поточної локалі. Якщо ви бажаєте використовувати особливий формат часу, скористайтеся ключовим словом %time{X}%, де X — це рядок, у якому міститься формат часу. Параметри часу збігаються з параметрами часу функції strftime бібліотеки glibc. Щоб отримати список можливих параметрів, виконайте у командній оболонці команду man strftime.

%messageDirection% (Додаток до Kopete)

Відповідає напрямку тексту у повідомленні: чи слід показувати текст повідомлення у напрямку справа-ліворуч, чи у напрямку зліва-праворуч. Значеннями можуть бути: «rtl» (справа-ліворуч) або «ltr» (зліва-праворуч). Щоб побачити як працює це ключове слово, прочитайте розділ Настанови щодо напрямку тексту у повідомленні.