2009-04-21 2 views
1

Для нашей интрасети нашей компании, встроенной в PHP и MySQL, я хочу добавить область, где сотрудники могут публиковать короткий профиль сами по себе - пару абзацев текста и изображения.Преобразование ввода обычного текста в HTML

Каков наилучший способ преобразования такого простого ввода текста в HTML-абзацы, маркированные списки, ссылки и т. Д.?

Уточнение: Этот контент будет отображаться в модальном виде, который появляется, когда вы нажимаете на стол сотрудника на карте офиса, поэтому отдельная вики или что-то в этом роде не будет работать.

ответ

5

Вы можете реализовать некоторую очень простую вики-подобную разметку, хотя «простой» здесь может варьироваться; рассмотрите возможность использования чего-то вроде Markdown, чтобы ускорить процесс.

Если у вас есть не-очень-технической аудитории, можно попробовать просто интеграции «богатый текстовый редактор» контроль типа на странице, используя что-то вроде FCKeditor или TinyMCE, из которого можно удалить/отключить лишние элементы управления. Это дает пользователям более привычное поведение в стиле WYSIWYG.

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

0

Вики-страницы компании хорошо подходят для этого и облегчают пользователям их форматирование. Немного программного обеспечения с открытым исходным кодом для него тоже.

4

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

Но для того, чтобы сделать его более доступным для обычного человека, который не привык беспокоиться о разметке любого типа, самое лучшее решение может быть самым лучшим, поэтому существует абсолютно минимальная разница между тем, что они видят по мере их ввода в, и то, что оказывается на сайте. Что-то вдоль линий

$html = "<p>" 
    . preg_replace("\n\r?\n", "</p><p>", htmlspecialchars($text)) 
    . "</p>"; 

Он не имеет никакого форматирования исключением того, что пустая строка создает разрыв абзаца, но в зависимости от аудитории, к примеру, если это общая аудитория, вы можете обнаружить, что это лучшая идея. Если вы даете нетехническим людям синтаксис разметки для форматирования, вы можете обнаружить, что он либо смущает их, либо неправильно использует их, либо что-то испортит, либо нуждается в помощи, либо вы обнаружите, что они переходят за борт в форматирование, используя столько текста стилей, как они могут.

В моей роли я поддерживаю вики MediaWiki как интрасеть для этой компании и заметил, что в целом, имея вики - отличная идея, ее язык разметки просто не подходит для общей нетехнической аудитории, многие из которых предпочитают писать вещи в MS Word, потому что они знакомы с ними, а затем загружают документ Word в вики.

Другой вариант - это редактор редактирования WYSIWYG в вики-программном обеспечении. Он должен быть хорошим и максимально приближенным к «фактическому» WYSIWYG. Не должно быть возможности получить что-то хорошее в предварительном просмотре, которое перепуталось после фильтрации его на стороне сервера, потому что кто-то найдет способ сделать это.

Как разрешить нетехническим людям создавать связи между страницами - это другое дело, которое может показаться сложным.

1

Хотя вы можете использовать редактор WYSIWYG, такой как FCKEditor, есть много lightweight markup languages, которые вы могли бы использовать.Популярные из них включают

  • Markdown - используемый вы читаете (хотя я считаю SO forked elements of the editing system)
  • Textile - это одна используется популярная система обмена сообщениями Basecamp проекта
  • BBCode - используется на многих форумах, хотя я не думаю, что он поддерживает маркированные списки
Смежные вопросы