@MishaXXL
Как хранить данные подобного формата, чтобы при их выводе из БД оставить те же отступы?
Пример из чата хабр, когда мы оборачиваем текст в тег
Пример из чата хабр, когда мы оборачиваем текст в тег
code
, как реализовать похожее, что текст у нас отображается обычно, а все, что в теге code
запоминало свои места?const arr = [1, 2, 3]
function count(a, b) {
if(a > 5) {
a = a * a
}
return a + b
}
Решения вопроса 1
@Vindicar
БД тут абсолютно ни причём. Она хранит текст в том виде, в каком ты его туда поместил, вплоть до байта.
Это браузеры по умолчанию сокращает отступы в ходе рендеринга HTML. Но есть теги вроде <pre>, которые отступы сохраняют. Также можно использовать CSS-свойство
Это браузеры по умолчанию сокращает отступы в ходе рендеринга HTML. Но есть теги вроде <pre>, которые отступы сохраняют. Также можно использовать CSS-свойство
white-space
со значениями pre
или pre-wrap
.
Ответы на вопрос 3
@Mike_Ro
Как хранить данные подобного формата
Т.к. не указано, где именно хранить, то предположу, что в переменной, тогда можно использовать Template strings:
const code = `
const arr = [1, 2, 3];
function count(a, b) {
if (a > 5) {
a = a * a;
}
return a + b;
}`;
@risejs
@sasha1802
а все, что в теге code запоминало свои места?
а чтобы красиво выводить код — записывайте в базу как есть, с переносами и пробелами, а выводите через вот это: highlightjs
и все получится. важный момент, вы должны грамотно обработать ввод/вывод, чтобы у вас не выполнялись скрипты, тк это небезопасно для пользователей.