среда, 9 мая 2012 г.
Размышляя о своей последней идее по наполнению контентом сайтов и о том как собственно из этого контента сайт генерировать, каким образом описывать HTML шаблон, вдруг подумал - а нужны ли нам HTML шаблоны вообще? Да, в интернете полно бесплатных HTML шаблонов, очень симпатичных и функциональных, но для того чтоб подключить его к своему сайту, нужно использовать один из готовых шаблонизаторов либо использовать свой язык, как я это сделал в своей программе для генерации HTML сайтов WebProject. Там я решил не изобретать сложностей с языком итераторов в шаблоне (правда условную вставку все же пришлось добавить), а сделал все достаточно жёстко. В комментах HTML пишем что-то типа <!--menu--><ul><!--items--><li><a href="{url}">{name}</a></li><!--/--></ul><!--/--> - это и есть итератор по пунктам меню. Таким образом берем готовый HTML шаблон и прописываем метки-комментарии для шаблонизатора, а уж он сам организует цикл с проходом по пунктам меню и прочим. В итоге - можно подключить любой шаблон, нужно только подготовить его к использованию в программе - прописать в нужных местах нужные метки.

А что стоит за реализацией такого подхода с точки зрения программиста: пишем парсер шаблонов, который разбивает исходный текст на блоки, заполняет определенную структуру с именами элементов. Далее при сборке выполняет подстановку в нужные места нужных данных и вызывает при встрече определенных макросов и ключевых слов функции-итераторы которые находят нужный формат элементов из распарсенного шаблона и выполняет проход по элементам сайта и выполняет необходимые подстановки. В конечном итоге получается что мы работаем с текстом, сначала мы переводим шаблон из текстового формата во внутренний формат, выполняем текстовые подстановки и затем формируем конечный текстовый HTML файл. Зато можем использовать практически любой шаблон. Однако, на практике удачных и правильно организованных как с точки зрения HTML так и SEO шаблонов очень мало, чтобы подправить шаблон под свои нужды я вынужден использовать HTML редактор (я использую Dreamweaver). Правлю шаблон в редакторе, а затем смотрю на результат в WebProject - какое-то половинчатое решение получается. Тут нужен какой-то конструктор шаблонов, подумал я.

Однако задумался, хочется удобный визуальный инструмент для дизайна, но нужен ли мне этап перевода элементов моего дизайна в текстовый язык шаблонов, чтоб потом опять из текстового формата все перевести в свой внутренний формат, выполнить проходы по всем нужным элементам для заполнения структур данными, чтоб опять все перевести все в текст? А может этап с языком шаблонов лишний и можно сразу из элемента дизайна формировать HTML код (или любой другой код языка описания интерфейсов)? В любом случае пока это просто идея на уровне догадки, но меня эта мысль заинтриговала. Вводить такой подход в WebProject я наверное не буду, а вот в проекте WebFlow это может пригодиться.
вторник, 8 мая 2012 г.
Работая над сайтами в своей программе для создания и поддержки html сайтов WebProject пришла в голову следующая мысль. Когда мы создали сайт и больше не планируем менять его структуру - надо менять интерфейс программы, т.к. основная задача становится другой - наполнять сайт контентом. Наполнение сайта - это несколько однотипных шагов, в основном они касаются добавления текста, файлов и изображений в нужный раздел сайта.

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

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

Я думаю ввести в WebProject частично эту идею в виде настраиваемых команд по добавлению заранее заданных элементов в определенные разделы.

А вообще планирую создать приложение для проверки идеи, пока рабочее название софтинки Bytexpert WebFlow.

Social

Popular

Технологии Blogger.

Постоянные читатели