Запретить EPiServer упаковывать содержимое в теги <p> - PullRequest
2 голосов
/ 03 ноября 2011

Я работаю над сайтом в EPiServer, и всякий раз, когда я создаю свойство страницы с типом, установленным в «Строка XHTML» (который использует редактор содержимого WYSIWYG в режиме редактирования), оно оборачивает все содержимое в теги <p> .

Есть ли способ предотвратить это? Я не могу удалить поля абзацев универсально через мой CSS (например, p {margin: 0 !important;}), так как мне действительно нужны поля для реальных абзацев текста. Я даже пытался перейти к представлению исходного кода HTML в редакторе и вручную удалить генерируемые им теги <p>, но он сразу же добавляет их обратно, когда я сохраняю!

Это не происходит, когда типом свойства является длинная или короткая строка, но это не всегда вариант, поскольку контент может содержать изображения, динамические элементы управления и т. Д.

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

Ответы [ 4 ]

1 голос
/ 03 ноября 2011

Как говорит Йохан, они здесь по причине - см. Дополнительную информацию здесь .При этом, их не невозможно удалить.Это можно сделать одним из двух способов (взято с world.episerver.com :

protected override void OnLoad(EventArgs e)
{
    base.OnLoad(e);
    myEditor.InitOptions["force_p_newlines"] = "false";
}

или

<script type="text/javascript">
tinyMCE.init({
    force_p_newlines: false
});
</script> 
0 голосов
/ 23 ноября 2011

Я обнаружил, что, хотя я не могу удалить теги <p> из исходного представления (потому что он добавляет их обратно автоматически), если я заменю их тегами <div>, это будет оставь вещи в покое. Это означает, что у меня есть дополнительная <div> упаковка некоторых элементов, которая мне на самом деле не нужна, но, по крайней мере, <div> не добавляет полей, как <p>, так что ... достаточно хорошо!

0 голосов
/ 08 ноября 2011

Если вы используете версию EPiServer с редакторами TinyMCE, вы можете вставить <br /> элементы вместо <p> элементов, если вы наберете shift-enter вместо enter.Это должно устранить ваши проблемы с маржей.

Более подробная информация по ссылке ниже:

http://www.tinymce.com/wiki.php/TinyMCE_FAQ#TinyMCE_produce_P_elements_on_enter.2Freturn_instead_of_BR_elements.3F

РЕДАКТИРОВАТЬ: Мой комментарий ниже отвечает на его вопрос лучше.

0 голосов
/ 03 ноября 2011

Вы можете добавить свой собственный TinyMCE-config, который удаляет P-элементы или удаляет их с помощью регулярных выражений либо при сохранении страницы, либо при отображении свойства / страницы.

Я думаю, что это плохая идея,P-элементы - это то, что редакторы генерируют больше всего, и в большинстве случаев их содержание также семантически верно.Лучше обернуть вашу собственность в div с классом и настроить поля, используя CSS, как вы упомянули.

...