Как хранить данные для кастомного блока code?



@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-свойство white-space со значениями pre или pre-wrap.


Ответы на вопрос 3



@Mike_Ro Куратор тега JavaScript

Как хранить данные подобного формата

Т.к. не указано, где именно хранить, то предположу, что в переменной, тогда можно использовать 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
и все получится. важный момент, вы должны грамотно обработать ввод/вывод, чтобы у вас не выполнялись скрипты, тк это небезопасно для пользователей.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *