Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 22.01.2016, 01:23
Аспирант
Отправить личное сообщение для Max Power Посмотреть профиль Найти все сообщения от Max Power
 
Регистрация: 15.12.2015
Сообщений: 83

Шаблон Jade как источник структурированных данных
Делаю блог на статическом сайте, хочется странного. Шаблон, примерно:

Код:
extends ../../templates/blog_post

block vars
    - var name = "My post"
    - var date = ..date..
    - var tags = 'js, node, etc'

block short_content
   | short content, complex markup

block content
   | full content, complex markup
Как нетрудно догадаться, стандартный рендер выдаст готовую страницу поста блога, но как отрендерить страницу списка постов?

Я бы использовал Json, или базу, но хочется писать сложную и крутую html-разметку в каждом посте, это удобно делать в теплом ламповом редакторе/IDE.

Я хочу вот что:

Код:
var tempate_data = tpl_as_data('.......my_post.jade');

console.log(template_data.vars.vars.name); // "My post"
console.log(template_data.short_content.content): // "short content, complex markup" (As HTML!)
В какую сторону рыть, есть мысли?
Ответить с цитированием
  #2 (permalink)  
Старый 22.01.2016, 20:14
Интересующийся
Отправить личное сообщение для werty1001 Посмотреть профиль Найти все сообщения от werty1001
 
Регистрация: 21.12.2012
Сообщений: 23

Сообщение от Max Power Посмотреть сообщение
Я бы использовал Json, или базу, но хочется писать сложную и крутую html-разметку в каждом посте, это удобно делать в теплом ламповом редакторе/IDE.
Я использую express + lowdb и можно использовать jade файлы как посты и рендерить их в зависимости от страницы.
Ответить с цитированием
  #3 (permalink)  
Старый 23.01.2016, 05:07
Аспирант
Отправить личное сообщение для Max Power Посмотреть профиль Найти все сообщения от Max Power
 
Регистрация: 15.12.2015
Сообщений: 83

lowdb - это как я понял сохранялка Json-а, в принципе штука полезная, взял на заметку. Но суть проблемы в другом - как получить данные для Json из шаблона.

Вообще сейчас у меня идея следующая:

Каждый пост - это полноценный Jade-шаблон, который наследуется. Можно каждый пост оформить с блекджеком и всеми плюшками какого-нибудь Бутстрапа, причем используя миксы и прочие прелести. Отрендерить все посты в html - не проблема.

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

Для получения данных из поста (о чем собственно и топик) я пока не вижу ничего лучше, чем распарсить HTML парсилкой HTML.

Для поисковиков мы конечно же генерим sitemap, я использую Глоток, и для него есть gulp-sitemap - он просто лезет в каталог билда, и мапит все html-файлы.

Прикол в том, что наш json - это статика, мы его минифицируем, он маленький. То есть сайт остается полностью статическим, но список постов чертовски интерактивен. Ну и потом мы пушим наш крутой статический сайт в CDN, и он держит большую нагрузку, чем фейсбук и твиттер вместе взятые. И в гробу я видал ваш hi-load experience )

Ну как идея? Богато? )

UPD: для поиска по телу постов просто ставим Яндекс.Поиск. Как бы там технари не выпендривались с эластиком и прочими сфинксами, это - лучшая искалка, выдыхаем...

Последний раз редактировалось Max Power, 23.01.2016 в 05:17.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как реализовать ввод данных в скрипт? Ko1dun Events/DOM/Window 5 13.11.2011 21:33
способы организации кода melky Общие вопросы Javascript 17 01.10.2011 22:57
Получение данных из тега в массиве, как? Madd Общие вопросы Javascript 37 06.07.2010 00:59
Как передать массив данных на сервер DVVID Общие вопросы Javascript 7 08.04.2010 12:11
Ajax и три <form> не работает. Как правильно сделать листание записей из базы данных? vlad275 AJAX и COMET 2 14.12.2009 14:04