LINUX.ORG.RU

Консолидация однотипной информации в виде SPA: утилиты, библиотеки?

 , , , берегись велосипеда


0

1

У меня есть задача объединить массив однотипных текстовых данных (справочного характера) в виде SPA. То есть в нормальном виде это было бы лучше всего представить в виде набора HTML-страничек, в которые, по мере надобности, добавляются ещё и демонстрационные скрипты, но я хочу сделать проект предельно простым в обращении, чтобы надо было копировать туда-сюда единственный файл.

В общем, если взять нейтральный пример, у меня есть справочник по покемонам. Каждый покемон - текст-описание и картинка. Очевидно, текст и картинки хочется хранить и редактировать отдельно, а склеивать в одну страницу уже автоматически, чтобы не копаться в нутре получившегося Франкенштейна. Задача SPA в данном случае сводится к тому, чтобы в границах области просмотра в окне браузера показывать тот или иной текст и ту или иную картинку — а не вываливать 500 абзацев в виде длинного списка на обычной HTML-странице.

В связи с этим два вопроса:
1) Есть ли инструменты, которые облегчают подобную «сборку»?
2) Есть ли какие-то готовые библиотеки JS, которые облегчают представление информации указанного рода в указанном виде? Интересуют минимально достаточные решения, а не возможность реализовать всё то же самое с использованием какого-то капитального фреймворка на полпроцента (как минимум потому, что его придётся тащить всё в тот же SPA).

Очень было бы обидно, если бы я начал строить собственный велосипед, поэтому и интересуюсь, может что-то уже готовое есть?

★★★★★

Последнее исправление: Smacker (всего исправлений: 1)

берегись велосипеда

отличный тег!

а по теме: как ты хочешь выставлять какая картинка к какому тексту? задача крайне расплывчатая, а что такое SPA википедия дает неоднозначный ответ (там много значений, хрень какая-то)

reprimand ★★★★★
()
Ответ на: комментарий от reprimand

Ну картинок-то у меня не будет, это я для примера. Графики будут, может быть, динамические. Еще будут демонстрационные скрипты в духе «введите исходные значения в форму для демонстрации вычислений по описанной формуле». Как их связывать - не знаю, если бы свой велосипед стал городить, добавил бы какую-то разметку для различения типа контента внутри файла с описанием (текст/скрипт/данные для графика/что-то еще), картинки статические цеплял бы по имени файла или каталога, ну или что-то в этом роде. Просто если есть какая-то подходящая утилита, то я бы просто принял ее правила и все.

SPA - Single-Page Application. Все в одном файле, и контент, и разметка, и скрипты.

Smacker ★★★★★
() автор топика
Ответ на: комментарий от anonymous

Мне надо не конкатенацию делать, а подцеплять контент и заполнять им форму представления контента в SPA. Если, положим, текст внутри хранится в DIV-ах, которые скрываются/показываются скриптом, то надо по шаблону налабать DIV-ов, назначить им ID, еще что-то.

Smacker ★★★★★
() автор топика
Ответ на: комментарий от Smacker

Это один html файл который on-save отдает тебе копию себя с контентом. Даже бакенд не нужен. Лучший вариант для OP.

zz ★★★★
()
Ответ на: комментарий от zz

Мне еще свой контент надо встраивать (в особенности скрипты) - это раз. Мне нужен строго read-only продукт, для дальнейшего распространения - это два. Если делать какой-то междусобойчик на коленке, так я бы прежде всего ворох html-ек выдал безо всяких изощрений.

Smacker ★★★★★
() автор топика
Ответ на: комментарий от Smacker

Все в одном файле, и контент, и разметка, и скрипты.

Ты путаешь SPA с какой то херью из своей головы. Из за этого собираешься воевать с несуществующими проблемами.

bj
()
Ответ на: комментарий от bj

Ты путаешь SPA с какой то херью из своей головы.

A single-page application (SPA), is a web application or web site that fits on a single web page with the goal of providing a more fluid user experience akin to a desktop application.

[...]

In a SPA, either all necessary code – HTML, JavaScript, and CSS – is retrieved with a single page load [...] The page does not reload at any point in the process, nor does control transfer to another page, although modern web technologies (such as those included in HTML5) can provide the perception and navigability of separate logical pages in the application.

http://en.wikipedia.org/wiki/Single-page_application

Именно это мне и надо. Имитировать наличие множества отдельных страниц в рамках одной.

Smacker ★★★★★
() автор топика
Ответ на: комментарий от heilkitty

А не слеплено в один жырный ком.

Чем по-твоему отличаются «жырные» комья от не очень «жырных»? Если это X страниц текста, то «жырно», а если Y строк выборки по базе данных, то нормально?

Smacker ★★★★★
() автор топика
Ответ на: комментарий от Smacker

Если я правильно понял, что ты хочешь (и если ты сам понял, чё хочешь), то тебе надо вообще всё (CSS, JS, текст и картинки) запихать в один HTML файл, и это я считаю жырным комом. Больше никому такое нахрен не нужно, никто так не делает, насколько мне известно, так что пиши свой велосипед.

heilkitty ★★
()
Ответ на: комментарий от heilkitty

и это я считаю жырным комом.

Считай хоть крошкой-картошкой. По определению педивикии это всё равно подпадает под признаки SPA.

Smacker ★★★★★
() автор топика

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

anonymous
()
Ответ на: комментарий от heilkitty

которым никто не занимается

OK, гоню, есть ещё извращенцы-самоучки в интернетах. Кажись, то, что тебе нужно: http://tiddlywiki.com/

heilkitty ★★
()
Ответ на: комментарий от anonymous

ТС, ты, конечно, херню сморозил, как тебе и написали в треде.

Да тут в треде вообще мастаки собрались, чо.

Предлагаю сделать меню с видами информации (справочниками) и каждый вид информации (справочник) открывать в отдельном табе.

Лишняя сущность

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

Что значит «генерируется автоматически»? У меня есть заранее известный контент, его генерировать не надо. Только отобразить на экране.

При этом на бэкенде это может быть что угодно.

Нет никакого бэкенда. Всё, что нужно для работы - включено в исходный файл.


Короче, пока вы тут умничаете на тему «что есть SPA», я уже всё сам сделал. Просто переключаю свойство display у разных DIV-ов по ID и динамически привязываю функции на локальные ссылки для смены текущего отображаемого элемента. Если отключить жабоскрип - получается простая длинная страница с оглавлением в начале в духе мануалов в HTML. Если включить - показывается только какой-то выбранный кусок составляющего её текста. А исходный текст в шаблон вставлять уж найду чем.

Smacker ★★★★★
() автор топика
Ответ на: комментарий от Smacker

Т.е. ты сделал _табы_, просто у них нет нужного css для того, чтобы выглядеть как табы. И да, у тебя не SPA, потому что нет никакого A.

anonymous
()
Ответ на: комментарий от anonymous

потому что нет никакого A.

«А» это скрипты для расчётов по алгоритмам и формулам, о которых, собственно, весь справочник. Формат такой: справочный текст + форма ввода данных + результат расчётов.

Smacker ★★★★★
() автор топика
Последнее исправление: Smacker (всего исправлений: 1)
Ответ на: комментарий от Smacker

is a web application or web site that fits on a single web page

on a single web page

Имеется ввиду страница в браузере, которая не релоадится. Ну и

all necessary code – HTML, JavaScript, and CSS – is retrieved

is retrieved

Смекаешь? SPA прекрасно делаются в виде диры со всеми ресурсами, с относительными ссылками в html. Твое ограничение в один файл — идиотское, скорей всего от незнания английского и общего школьного уровня.

bj
()
Последнее исправление: bj (всего исправлений: 1)
Ответ на: комментарий от bj

Смекаешь? SPA прекрасно делаются в виде диры со всеми ресурсами, с относительными ссылками в html. Твое ограничение в один файл — идиотское, скорей всего от незнания английского и общего школьного уровня.

Придурочек, ограничение в один файл — потому что целевая аудитория проекта предполагается компьютерно-неграмотной, и представление справочника в виде архива, каталога с файлами, или ещё чего-то означает с большой вероятностью, что работа справочника будет нарушена при первом же его копировании, а может потрут что-то «лишнее» ещё в процессе работы; не говоря уже о том, что с распаковкой архива могут возникнуть проблемы, и работа даже не начнётся, а виноват будет уже «разработчик». Размещение всего в одном файле гарантирует, что худшее, что может случиться — скопируют ярлык вместо файла.

Так что твои идейки — от незнания психологии пользователей, напыщенности и общего дошкольного уровня мышления.

Smacker ★★★★★
() автор топика
Последнее исправление: Smacker (всего исправлений: 1)
Ответ на: комментарий от Smacker

Давай я тебя процитирую:

SPA - Single-Page Application. Все в одном файле, и контент, и разметка, и скрипты.

Съезд так себе. Свою неграмотность нехорошо прикрывать бедными пользователями.

bj
()
Ответ на: комментарий от bj

Съезд так себе. Свою неграмотность нехорошо прикрывать бедными пользователями.

В _моём_ случае SPA действительно содержит всё вышеперечисленное. Сферический SPA в вакууме не обязан (и как правило не делает этого), но я говорю о конкретном случае. Это не академическая дискуссия о том, что есть SPA в целом, смекаешь? Это разговор о конкретной реализации чего-то, что подпадает под широкое определение SPA. Какой мне смысл использовать широкое определение, говоря о конкретном варианте? Чтобы мне посоветовали тянуть с сервера куски текста через jQuery?

В моём случае SPA — это текстовый контент, отображающийся в табах, и скрипты, показательно вычисляющие описываемые формулы. И картинки, и CSS — всё включается в тот же файл.

Тут всё такие умные подобрались, большие спецы. Настолько большие, что, например, никто не вспомнил тот же pandoc, который решает почти всё, что о чём я спрашивал. Зато развели дискуссию о том, что такое SPA.

Smacker ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.