Тема: Snakeskin
Показать сообщение отдельно
  #201 (permalink)  
Старый 27.08.2014, 12:43
Аватар для kobezzza
Быдлокодер;)
Отправить личное сообщение для kobezzza Посмотреть профиль Найти все сообщения от kobezzza
 
Регистрация: 19.11.2010
Сообщений: 4,338

Отказался от идеи реализации типографа, как в mdash.ru.

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

Правила по умолчанию (можно задать свои)
{
	'"': [['«', '»'], ['„', '“']],
	'\'': [['“', '”'], ['‘', '’']],

	'(c)': '©',
	'(tm)': '™',

	'[v]': '☑',
	'[x]': '☒',
	'[_]': '☐',

	'<-': '←',
	'<-|': '↤',
	'->': '→',
	'|->': '↦',
	'<->': '↔',

	'...': '…',
	'-': '−',
	'--': '—'
};


- template foo()
    "Snakeskin -- 'лучший' шаблонный движок!" (c)


Отрендерится как

«Snakeskin — „лучший“ шаблонный движок!» ©


Система макросов удобна тем, что можно вводить свои правила, например для замены смайликов на картинки, но без использования специальных механизмов Snakeskin, таких как вызываемые блоки или прототипы.

{
	':)': '<img src="..."/>'
};


Следует заметить, что такие макросы будут работать только в простом тексте, т.е. внутри строк директир или литералов локализации всё будет как есть, т.к. такое поведение тем может привести в потенциальным ошибкам.

{'[x]'.replace('[x]', 'error')} // данный код не выполнится, т.к. [x] -> ☒


Также будет введена директивы plain, внутри которой текст будет вставляться "как есть" + такое же поведение будет у директив script, style и link
__________________
kobezzza
code monkey

Последний раз редактировалось kobezzza, 27.08.2014 в 13:01.
Ответить с цитированием