Как хранить данные для кастомного блока code?
Как хранить данные подобного формата, чтобы при их выводе из БД оставить те же отступы?
Пример из чата хабр, когда мы оборачиваем текст в тег code, как реализовать похожее, что текст у нас отображается обычно, а все, что в теге codeзапоминало свои места?
const arr = [1, 2, 3] function count(a, b) { if(a > 5) { a = a * a } return a + b } |
const arr = [1, 2, 3] function count(a, b) { if(a > 5) { a = a * a } return a + b }
Дополнительно:
А что мешает открыть девтулзы и глянуть как блок кода выглядит в хтмл?
spoiler
<pre><code data-highlighted="yes" class="hljs language-undefined">const arr = [1, 2, 3] function count(a, b) { if(a &gt; 5) { a = a * a } return a + b }</code ></pre> |
<pre><code data-highlighted="yes" class="hljs language-undefined">const arr = [1, 2, 3] function count(a, b) { if(a &gt; 5) { a = a * a } return a + b }</code ></pre>
Ведь там много отступов, а после получения из БД, нужно ее обратно так отобразить
Михаил Р., зачем хранить распарсеренную версию? Всё равно оригинал хранить придётся.
Т.е. в прицепе в БД будет запись текста в таком виде?
<h1>Мой заголовок статьи</h1><pre>function foo() { ... }</pre> |
<h1>Мой заголовок статьи</h1><pre>function foo() { ... }</pre>
Я просто не совсем понимаю, как в таком линейном формате <pre> превращенный в просто текст запомнит все отступы
А оригинал нужен всегда, потому что иначе любое изменение рендера сообщений (банально класс поменять) и всё, тебе надо думать как это всё поменять в уже готовых сообщениях во всей базе.
А то я потерял ныть к чему ты ведешь
БД тут абсолютно ни причём. Она хранит текст в том виде, в каком ты его туда поместил, вплоть до байта.
Это браузеры по умолчанию сокращает отступы в ходе рендеринга HTML. Но есть теги вроде <pre>, которые отступы сохраняют. Также можно использовать CSS-свойство white-space со значениями pre или pre-wrap.
snippet
Ответы:
pre
Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.
Пока нет других ответов. Будьте первым, кто поможет автору.
Ответить на вопрос
Для хранения данных для кастомного блока code вам может понадобиться использовать различные методы в зависимости от конкретной ситуации и требований проекта. Ниже приведены несколько распространенных способов хранения данных для кастомного блока code:
1. Использование базы данных: Вы можете создать таблицу в базе данных, в которой будет храниться информация о кастомных блоках code. К примеру, вы можете создать таблицу с полями для хранения кода, названия блока, даты создания и других необходимых данных. Затем вы можете использовать SQL запросы для добавления, обновления и извлечения данных из этой таблицы.
// Пример создания таблицы для хранения данных кастомного блока code CREATE TABLE custom_code_blocks ( id INT AUTO_INCREMENT PRIMARY KEY, code TEXT, block_name VARCHAR(255), created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP );
2. Использование файловой системы: Вы также можете хранить данные для кастомного блока code в файлах. Например, вы можете создать отдельную папку на сервере, в которой будут храниться файлы с кодом для каждого блока. При этом вам необходимо разработать систему именования файлов и их структуру для удобного доступа к данным.
3. Использование кэша: Если данные для кастомного блока code могут быть временными или часто обновляться, то можно использовать кэш для их хранения. Например, вы можете использовать Redis или Memcached для кэширования кода блоков и быстрого доступа к ним.
4. Использование API: Если ваши данные для кастомного блока code должны быть доступны на других сайтах или приложениях, то можно создать API для доступа к этим данным. Вы можете использовать RESTful API для передачи данных в формате JSON или XML.
Независимо от выбранного метода хранения данных, важно обеспечить их безопасность и защиту от несанкционированного доступа. Кроме того, рекомендуется использовать документирование кода и хорошую организацию данных для удобного управления и поддержки кастомных блоков code.