Является ли концепция ссылки неотделимой от ее HTML-разметки?

StackOverflow https://stackoverflow.com/questions/1806776

  •  05-07-2019
  •  | 
  •  

Вопрос

Я ищу стратегию для управления ссылками в статьях. Тело статьи сохраняется в базе данных и извлекается при сборке страницы. Что все должно быть сохранено в базе данных, чтобы легко определять и управлять ссылками?

Некоторые пуристы считают, что разметка НИКОГДА не должна храниться в базе данных. Некоторые считают, что все в порядке в меру. Но для меня понятие ссылки практически неотделимо от разметки html.

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

Одна идея, которую я выдвинул, заключается в том, чтобы встроить достаточно разметки для семантического описания областей интересов, а в другой таблице сопоставить эти понятия с реальными URL-адресами. Все встречи с определенным понятием переносятся по ссылке.

<p>Here is an example of a
<span class="external-reference semantic-web">semantic</span> 
approach to link management.</p>

Затем таблица может связать URL-адрес статьи и ключевой класс 'semantic-web' с URL-адресом, например http://en.wikipedia.org/wiki/Semantic_Web

<p>Here is an example of a <span class="external-reference semantic-web">
<a href="http://en.wikipedia.org/wiki/Semantic_Web">semantic</a></span> 
approach to link management.</p>

Что мне нравится в этом подходе, так это то, что все мои URL-адреса находятся в одном месте в базе данных. Я мог бы технически изменить или удалить ссылки, не касаясь основной части статьи. У меня есть очень хорошие имена классов для CSS.

Мне не нравится иметь другую таблицу для обслуживания и еще один шаг / фазу во время рендеринга. Это может замедлить время отклика.

Существуют ли другие стратегии, обеспечивающие превосходное управление ссылками?

Это было полезно?

Решение

Возможно, вы захотите взглянуть на шаблоны (например, Smarty для PHP).

Я согласен, что разметка не должна обычно храниться в базе данных.

Однако вы можете также рассмотреть возможность использования " указателя " Концепция, при которой при каждой ссылке вы ломаете свое хранилище страницы, добавляете указатель в таблице на ссылку, затем указатель в таблице ссылок на следующий сегмент контента для страницы. (Я понятия не имею, насколько это будет сложно - просто идея.)

Или посмотрите, как различные инструменты CMS обрабатывают эту идею. Некоторые просто помещают все в базу данных как один большой блок текста, в то время как другие полагаются на шаблоны, а другие могут делать что-то еще полностью (например, объектно-ориентированные среды, такие как Plone ).

Другие советы

Я видел несколько попыток сделать это.

Один из способов сделать это - перенаправить URL. На сервере можно реализовать логический компонент, который будет интерпретировать то, что запрашивает URL, а не путь к контенту.

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

В любом случае вам придется ссылаться на материал, на который вы хотите сослаться, с каким-то идентификатором.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top