да, это вариант, но тут дело даже не в том, что мы уменьшаем и оптимизируем код исходных файлов сайта. Обе технологии и PHP и SSI это включение на стороне сервера. А я про то, что мы вместе с такой оптимизацией можем сделать структуру HTML кода страницы очень оптимальной. У нас нет в исходном HTML текста шапки сайта, нет списка ссылок меню, а сразу начинается важный контент страницы, так же как в исходниках приведенного выше мной сайта.
Не... ребят, давайте как-то аргументировать. А то: одни минусы... никому не нужно... лет 10-15 назад...
Вот гляньте сайт: http://www.donative.ru/ а потом загляните в HTML исходник. Изящно, не находите? В придачу: индексация гуглом.
Вот как раз есть желание оперативно все это сделать. Т.к. по сути программа из себя представляет браузер + интерпретатор JavaScript - все это есть встроенное в систему, и уже реализовано в коде, так же реализовано сохранение и открытие проекта. Редактирование кода лично я буду выполнять во внешнем редакторе Notepad++. Выглядит это минималистично, после открытия проекта нажимаем комбинацию Ctrl+B - открывается папка с файлами проекта - и там редактируем js файлы. После того как файл в этой папке отредактирован или изменен, то автоматически выполняется сборка проекта и результат отображается в браузере программы.
Сейчас задача у меня определить круг минимальных базовых функций и реализовать добавление пользовательских диалогов, чтоб можно было в удобной форме вводить параметры сайта. Ну и сделать пробный проект с простым генератором сайта.
Если есть интерес, то можно было бы в рамках этого форума создать топик для обсуждения и тестирования.
Ну как сказать, практически голый джаваскрипт. Идем на http://websitepad.ru/ качаем оттуда демоверсию, устанавливаем, запускаем, создаем тестовый проект, а затем жмем секретные кнопки Ctrl+Shift+G И открывается редактор генератора на джаваскрипте на 1000 строк - там в коде черт ногу сломит, открываем его, смотрим, ужасаемся и закрываем.
Но ведь можно будет написать и простой генератор, типа такого:
s = '<html><head><title>{title}</title></head><body>{text}</body></html>';
s = s.replace('{title}', 'Заголовок');
s = s.replace('{text}', 'Текст');
saveFile('index.html', s)
Как показывает практика - никто не хочет разбираться, все хотят исполнения своих фантазий одной кнопкой. Либо хотят готовое обобщенное шаблонное решение и желательно бесплатно. Вот я и хочу сделать такую оболочку с браузером и генератором, скорее для себя, чтоб на нем можно было делать разные решения для оффлайновой генерации сайтов. Это не значит что любой сможет пользоваться этой программой. Это будет программа фреймворк или скажем громче - платформа. Такой подход можно сравнить с 1C Предприятие - без определенной конфигурации 1C - бесполезна, но на ней можно написать массу решений. Так и здесь - WebsitePad будет бесплатной программой, но на ее основе можно будет создавать генераторы на заказ или для продажи.
Разбираться в такой программе никто не захочет, поэтому я не вижу смысла создавать специальный редактор для шаблонов или скриптов. Но если я буду продавать какое-то решение на этой платформе, то все входные параметры для генерации я разумеется буду как-то документировать. И даже если кто-то захочет поменять генератор - для этого будут все возможности, это ж будет JavaScript.---------- Добавлено 15.01.2013 в 18:26 ----------
Да, согласен, кроме того возникает масса проблем, начиная от того как поменять адрес текущей страницы для того чтоб добавить ее в избранное и заканчивая размещением адсенс.---------- Добавлено 15.01.2013 в 18:31 ----------
Да, верно. JS-ом буду генерировать JS для сайта :)
В программу будут включены только базовые функции, а логика сборки сайта будет на скрипте. Чтоб на основе этих базовых функций без перекомпиляции программы можно было писать генератор для любого вида сайтов. Это подобно тому что раньше для динамических сайтов использовали скомпилированные модули cgi, а потом придумали php и стали писать на нем, потому что так гибче и удобнее.
Джаваскрипт будет использоваться для генерации сайта, а программа просто оболочка для просмотра сайта и базовых функций, открытия проекта, сохранения и т.п. - это будет своего рода фреймворк.
А вот PingXpert - он да, написан на JavaScript с HTML интерфейсом, но я хочу его переписать.
Вообще говоря, CMS тут особо и не при чем, просто все так делают по старинке, не оглядываясь на новые возможности браузеров и т.п. Страницы же CMS генерят по шаблону, вот и упирается все в шаблон, нужно просто взять и написать его исходя из этих новых принципов. Разумеется появляются ограничения связанные с подходом принятым в конкретной CMS, но в целом, я думаю можно все это реализовать.
Вот я тут решил реанимировать проект WebsitePad, но он уже будет совсем другим. Основная идея состоит в следующем - основное окно - браузер в котором отображается сгенерированный html сайт (так же как в последних версиях WebProject), сайт генерируется скриптом (JavaScript), т.е. этим скриптом создаются необходимые файлы - html, css (xml, json) и графические (этим же скриптом можно генерировать и графику тоже). Т.е. скрипт выступает в роли оффлайновой CMS - генерирует файлы для последующей выгрузки на хостинг. Как реализовать генерацию - это уже решает автор скрипта-генератора. Это может быть некий традиционный шаблон с подставлением значений в готовый html шаблон. Или прямо в скрипте можно прописывать генерацию html тегов и css для них. Т.е. в способе генерации сайта полная свобода. Однако сама программа предоставляет набор функций для генератора, таких как запись в файл, работу с XML или JSON, создание графических файлов и их запись и т.п. - т.е. в программе содержится набор базовых возможностей для генерации сайта любого вида и сложности. Вторая часть - это взаимодействие с пользователем, в программе будет предусмотрены возможности для добавления элементов на панель инструментов и меню и создания диалогов. Вот через эти диалоги пользователь будет конфигурировать генератор сайта.
Я понимаю, что никто этим заниматься не будет, никто не будет писать генераторы и шаблоны для этой программы. Я пишу этот вариант программы для себя, обобщая опыт работы над WebSitePad 3 и WebProject. В новой программе не будет никаких редакторов шаблонов - будет просто доступ к файлам - кто захочет найдет способ внести изменения. Зато сайты можно будет генерировать произвольного вида.
Вот к чему это я все, в WebProject можно сделать шаблон который бы генерировал сайт с основным контентом в html и всеми повторяющимися элементами в js, но надо извращаться, т.к. WebProject писался не для этого. А вот в новом варианте WebsitePad - как раз и буду пробовать это реализовать. Возможно это и будет его основной фишкой.
Кстати, помимо того что в html сайте будет только основной контент, без дублирования навигации и сайдбаров, вероятно стоит реализовать следующую фишку: ajax-навигацию - при переходе по ссылке, скриптом загружается html страница на которую переходим, если шаблон должен быть таким же, т.е. меню шапка и сайдбар не меняются, а они у нас уже загружены и показаны пользователю, то мы просто контент html страницы вставляем в нужное место без перезагрузки - получаем очень быстрый и отзывчивый сайт.
WebSitePad 3 я скоро сниму с продажи и поддерживать не буду. Заменой будет WebsitePad 4 - и это будет не одна программа, а некоторый набор готовых генераторов для статических сайтов для разных целей и форматов - во всяком случае задумка именно такая.
Отличия межу WebProject и WebSitePad 3:
в WebSitePad структура сайта жестко задана и набор шаблонов ограничен, самому менять не получится, нужно изменять код генератора, сайт строится по сплошному тексту в котором указываются специальные метки разбиения на страницы.
WebProject - структура сайта произвольная, но в отличие от WebSitePad нет разбиения на страницы (паджинации), можно менять шаблон сайта, создавать его самостоятельно, есть встроенный графический редактор и возможность генерировать превьюшки заданного размера при сборке сайта.---------- Добавлено 15.01.2013 в 08:24 ----------
Была такая задумка, страницы сайта делать только из уникального контента, все остальное дублирующиеся элементы и дизайн - шапка, меню, сайдбар и т.п. строить js-ом. Т.е. для ПС - только основной контент, а для юзера оформление навешивает js. Тут все упирается в то как это правильно все сгенерировать, в WebProject это можно сделать, но все упирается в то чтобы грамотно сделать подобный шаблон.
Буду рад помочь. Если нужен будет дополнительный функционал, пишите, постараюсь оперативно добавить.