1

Тема: Макросы в TextKit

TK позволяет использовать макросы для некоторых инструментов, выполняющих вставку или замету текста в заголовок или контент записи.

На данный момент, макросы используются в следующих средствах:

  • Формирование предположительного ЧПУ

  • Замена текста

  • Специальная вставка (вставка картинок), ручная вставка картинок

  • Автокомментарии

  • Вставка кода, вводных фраз/эпилогов

  • Настраиваемый экспорт New!

  • Экспорт в статические сайты (скоро)

Макрокоманда представляет собой выражение, заключенное между двумя символами процентов (%), поэтому для избежания возможных конфликтов нужно быть внимательнее при использовании этого символа. Некоторые макросы могут принимать параметры, перечисляемые через ":" (двоеточие), в большинстве случаев параметры не обязательны и могут опускаться. Чтобы передать двоеточие в составе параметра поставьте перед ним "\" (обратную косую черту).

Общие макросы
Работают как для рубрик так и для постов/страниц.

  • %title:filter% - заголовок. Параметры: filter - фильтр вывода (см. далее)

    SpoilerПримечание: В ранних версиях ТК это был макрос %post_title%
  • %name% - ярлык (slug)

  • %description:filter% - краткое описание. Параметры: filter - фильтр вывода

  • %parent_title:filter% - заголовок родительского элемента

  • %parent_name:'all'% - ярлык родительского элемента. Параметры: all - необязательное (по умолчанию отключено), если установлено, выводит путь (rootpage/subpage/page) до верхнего родительского элемента. Используется преимущественно для формирования ЧПУ

  • %next_title:filter% - название следующего элемена (записи, рубрики) (Beta)

  • %previous_title:filter% - название предыдущего элемена (записи, рубрики) (Beta)

Макросы записей
Работают только для постов и страниц.

  • %post_content:filter% - текст записи

  • %post_tags:sep:count:'rand':filter% - метки записи. Параметры: sep - разделитель (запятая по умолчанию), count - количество (по умолчанию все), 'rand' - если установлено, вывод в случайном порядке, filter - фильтр вывода, применяется к каждой метке отдельно

  • %post_xcats:sep:count:'rand'% - дополнительные рубрики записи, через запятую. Параметры те же, что и для %post_tags%

  • %post_keywords:sep:count:'rand'% - ключевые слова записи, через запятую. Параметры те же, что и для %post_tags%

  • %post_date:format:filter% - дата публикации записи. Параметры: format - формат вывода времени, см. ниже (по умолчанию используется краткая форма записи в соответствии с настройками вашей ОС), format - фильтр вывода

  • %post_field:name% - дополнительное поле записи, name - название поля (Beta)

  • %post_announce:filter% - анонс записи (текст до <!--more-->) (Beta)

  • %post_more:filter% - текст статьи после <!--more--> (Beta)

Макросы ссылок New!
В версии 093 Standard появилась возможность использования макросов для получения адреса элемента (поста, статьи, рубрики). Макрос работает на основе настроек ЧПУ проекта, если настройки на заданы, то макросы возвращают пустую строку.

  • %url% - адрес текущего элемента

  • %parent_url% - адрес родительского элемента

  • %next_url% - адрес следующего элемента (соседа)

  • %previous_url% - адрес предыдущего элемента (соседа)

  • %next_link% - ссылка на следующий элемент (сосед) (Beta)

  • %previous_link% - ссылка предыдущий элемент (сосед) (Beta)

  • %random_posts:count:max% - блок ссылок (ul список) на случайные записи, где count и max, если указаны оба - минимальное и максимальное число ссылок в блоке. Если max опускается, то за минимальное число принимается 1, а за максимальное count. Если вызывается без параметров то за максимальное принимается 5 (Beta)

  • %sitemap% - карта сайта в виде ul списка (Beta)

  • %related_posts:count:max% - блок ссылок (ul список) на релевантные записи (на основе категорий), где count и max, если указаны оба - минимальное и максимальное число ссылок в блоке. Если max опускается, то за минимальное число принимается 1, а за максимальное count. Если вызывается без параметров то за максимальное принимается 5 (Beta)

Макросы, не привязанные к определенной записи:

  • %date:format:filter% - текущая дата. Параметры те же, что и для %post_date%

  • %counter:start:step:'local'% - Счетчик. Параметры start - начальное значение счетчика (по умолчанию 1), step - шаг (по умолчанию 1), 'local' - если установлено, сбрасывает счетчик на первоначальное значение для каждой записи (по умолчанию не установлено).

  • %random:min:max% - генерация случайного целого числа. Параметры min и max задают диапазон (Beta)

Внимание! Не рекомендуется использовать макросы %title% и %post_content% в операциях над заголовками и текстом записей соответственно.

Фильтры вывода
Определенным образом преобразуют последовательность символов, возвращаемых макросом.

  • htmlencode - кодирует зарезервированные символы HTML в сущности. Например &, <, > в &amp;, &lt;, &gt; соотв.

  • htmldecode - действует обратно htmlencode

  • urlencode - подготавливает результат макроса к использованию в качестве части URL'а. Например, заменяет пробел на "+"

  • urldecode - действует обратно urlencode

  • translit - преобразует кириллические буквы в созвучные им латинские. Например, "медвед" в "medved"

  • nicename - сперва преобразует в транслит, а потом заменяет все не буквенно-цифровые символы на дефисы. Полученная строка может использоваться в URL. Например, "Превед, медвед!" в "preved-medved"

  • imacros - приводит строку к виду, пригодному для использования в плагине Firefox iMacros.

Примечание: фильтры можно комбинировать через | (вертикальная черта), например, translit|htmlencode сначала применит translit, затем htmlencode

Краткий справочник форматов даты и времени

  • d - представляет день месяца в виде числа от 1 до 31.

  • dd - представляет день месяца в виде числа от 01 до 31.

  • ddd - представляет сокращенное название дня недели (согласно настройкам ОС).

  • dddd - представляет полное название дня недели (согласно настройкам ОС).

  • h - представляет часы числом от 1 до 12, то есть в 12-часовом виде.

  • hh - представляет часы числом от 01 до 12, т. е. в 12-часовом виде.

  • H - представляет часы числом от 0 до 23, т. е. в 24-часовом виде.

  • HH - представляет часы числом от 00 до 23, т. е. в 24-часовом виде.

  • m - представляет минуты как число от 0 до 59.

  • mm - представляет минуты как число от 00 до 59.

  • M - представляет месяц как число от 1 до 12.

  • MM - представляет месяц как число от 01 до 12.

  • MMM - представляет сокращенное название месяца (согласно настройкам ОС).

  • MMMM - представляет полное название месяца (согласно настройкам ОС).

  • s - представляет секунды как число от 0 до 59.

  • ss - представляет секунды как число от 00 до 59.

  • y - представляет год как число из одной или двух цифр.

  • yy - представляет год как число из двух цифр.

  • yyyy - представляет год как четырехзначное число.

Важно: символы "/" (косая черта) и ":" (двоеточие) преобразуются в разделители даты и времени в соответствии с настройками системы, используйте экранирование символом "\". Например, yyyy\/MM соответствует 2009/12, а HH\\:mm соответствует 23:22.
С полным списком форматов можно ознакомиться в справочнике MSDN (на русском).

Примеры
d.m.Y выводит 1.5.09
d MMMM YYYY выводит 1 мая 2009
dd/mm/YY HH\\:mm\\:ss выводит 01.05.2009 14:30:10 (не забывайте экранировать двоеточия!)

Примечание: Информация актуальна только для TK Standard 0.9.3 и выше

Отредактировано SeoNizator (07.09.2011 20:41:47)

2

Re: Макросы в TextKit

это чтож получается...  :)  теперь можно сделать статический сайт и в принципе дор, насколько доры я понимаю ;)
класное обновление!!!
добавить пару макросов и вперед...

Отредактировано Guga (02.10.2009 09:23:05)

Мне нравиться работать с Textkit.
Мой блог технологии для SEO

3

Re: Макросы в TextKit

Guga пишет:

теперь можно сделать статический сайт и в принципе дор...

Нет, пока нельзя. Но можно сказать, что некая база для этого подготавливается.
На данный же момент макросы позволяют значительно упростить некоторые  операции.

4

Re: Макросы в TextKit

Nogrik пишет:

На данный же момент макросы позволяют значительно упростить некоторые  операции.

А можно пару примеров применения макросов. А то что-то не очень понятно где их применять.

5

Re: Макросы в TextKit

10danilko45 пишет:

А можно пару примеров применения макросов.

Ну вот один пример:

Найти
<img

Заменить на
<img alt="%post_title%"

Как правильно задавать вопросы вообще и у нас в частности

Я не разработчик ТК

6

Re: Макросы в TextKit

Рекомендую всем пользователям, желающим повысить эффективность работы с ТК, более плотно ознакомится с этим списком. На макросы нами сейчас делается ставка, вскоре в составе основного функционала ТК выйдет настраиваемый экспорт (экспорт в статику, сайты на инклюдах, как угодно) - там макросы будут использоваться повсеместно.
Спрашивайте вопросы и предлагайте предложения :)

7

Re: Макросы в TextKit

Попытался использовать макросы в лайт версии - функция замены текста.
При замене слова photos на <img title="%%post_title%%" border="0" alt="%%post_keywords%%" align="left" src="linktoimage" /> точно такой же текст и появился в теле записи.
Т.е. значение титла не название статьи а %%post_title%%, соответственно и alt атрибут.

В чём может быть проблема?

И сразу ещё вопрос - есть ли возможность заменить фразу linktoimage на строчку текста из отдельного файла. (в котором будут построчно указанны урл изображений. Просто готовлю контент для блога на блоггере а там только сторонние изображения (picasa например)

8

Re: Макросы в TextKit

moldovanin пишет:

<img title="%%post_title%%" border="0" alt="%%post_keywords%%" align="left" src="linktoimage" />

В лайт версии была допущена ошибка. Если использовать вставку макросов из меню в окне поиска и замены, то макросы вставляются как %% ... %%, но нужно использовать одиночный символ процента (как в надписях в меню).
Таким образом, ваша строка примет вид:

<img title="%post_title%" border="0" alt="%post_keywords%" align="left" src="linktoimage" />
moldovanin пишет:

есть ли возможность заменить фразу linktoimage на строчку текста из отдельного файла

В лайт такой возможности нет, в стандарте можно использовать вставку кода.

9

Re: Макросы в TextKit

Обновлен список макросов!
Появились новые макровыражения для получения (предположительных) адресов страниц: %url%, %parent_url%, %next_url%, %previous_url%. Новые макросы будут особенно полезны для настраиваемого экспорта (093 Beta).

10

Re: Макросы в TextKit

Уж коль есть %next_url% и %previous_url%, тогда надо %next_title% и %previous_title%

Как правильно задавать вопросы вообще и у нас в частности

Я не разработчик ТК

11

Re: Макросы в TextKit

SeoNizator пишет:

Уж коль есть %next_url% и %previous_url%, тогда надо %next_title% и %previous_title%

действительно, нужно добавить

12

Re: Макросы в TextKit

хочу добавить в заголовки нумерацию, как?
Есть
Яблоко
Яблоко

Сделать
Яблоко №1

13

Re: Макросы в TextKit

Ответил в другой ветке. Повторю тут.
http://img217.imageshack.us/img217/690/tkcount.png

Как правильно задавать вопросы вообще и у нас в частности

Я не разработчик ТК

14

Re: Макросы в TextKit

Макросы обновлены! Работают только под последней бетой.

15

Re: Макросы в TextKit

Nogrik пишет:

Работают только под последней бетой.

обновился сейчас, но эти не работают :
%random_posts:count:max% и %sitemap%

Мне нравиться работать с Textkit.
Мой блог технологии для SEO

16

Re: Макросы в TextKit

Всё, бета обновилась, качать как обычно.

17

Re: Макросы в TextKit

Макросы обновились, качать последнюю бету.

С уважением. Павел

18

Re: Макросы в TextKit

%related_posts:count:max%

ТК научился определять релевантные посты?  :rolleyes:  По каким признакам?

Как правильно задавать вопросы вообще и у нас в частности

Я не разработчик ТК

19

Re: Макросы в TextKit

Читаем ман ;) :) - "на основе категорий".

С уважением. Павел

20

Re: Макросы в TextKit

на основе категорий

те просто записи из этой же категории?

Как правильно задавать вопросы вообще и у нас в частности

Я не разработчик ТК

21

Re: Макросы в TextKit

Т.е. макрос выбирает записи из той же категории, без повторения (первый ответ не туда был).

С уважением. Павел

22

Re: Макросы в TextKit

Nogrik, очень прошу взгляните на это сообщение чуть выше. нереально жду этой функции, готов заплатить.
http://textkit.ru/forum/post2446.html#p2446

23

Re: Макросы в TextKit

Yury_md пишет:

Nogrik, очень прошу взгляните на это сообщение чуть выше. нереально жду этой функции, готов заплатить.
http://textkit.ru/forum/post2446.html#p2446

Возможно не указана схема ЧПУ в свойствах проекта (Проект - Свойства проекта). Проверьте, если не получится, то сегодня разберусь и выложу исправление.

24

Re: Макросы в TextKit

Nogrik, о да!!! чёрт, в жизни бы не догадался, что нужно там настроить для работы этих макросов!
спасибо за помощь!

З.ы. Если это не  в эту тему, модеры, перенесите потом это в отдельный пост. Просто тут вероятность получить ответ ближе к 1. Я про макрос %sitemap%. Как его юзать? Что я пробовал:
1.  1 файл, в теле только %sitemap%
на выходе получаю файл где этот макрос только и написан
2. я подумал что не хватает обычных тегов, взял рабочий шаблон, заменит тело поста вот этим:

%begin:post%%sitemap%%end:post%

после этого получил все свои 2785 файлов и в каждом была карта сайта с 2785 ссылок. это было жутко)
3. убираю начало и конец поста в готовом шаблоне, оставляю %sitemap%. снова ничего нет.

как правильно воспользоваться этим макросом?

25

Re: Макросы в TextKit

Yury_md пишет:

Я про макрос %sitemap%. Как его юзать?

На самом деле получилось так, что этот макрос в текущей его реализации использовать в настраиваемом экспорте практически не возможно. Макрос сделан на будущее, когда в настраиваемом экспорте можно будет использовать несколько шаблонов.

Отредактировано TextKit (22.09.2010 15:06:31)