Мне просто интересно, знает ли кто-нибудь об инструменте javascript, который может автоматически исправить недействительный синтаксис html? Я работаю над созданным на основе javascript редактором на месте, но у меня пока нет элегантного решения, чтобы предотвратить плохую вложенность:
<p><span></p></span>
Мне было интересно, может ли уже существовать сценарий, который может принять неверный html и автоматически его восстановить? Есть ли что-то подобное уже там, или мне придется самому решить эту проблему?
Комментарий Пиппина о MarkItUp был именно тем, что мне нужно. Для будущей справки для тех, кто с той же проблемой, я собираюсь с этим.
Для справок в будущем настройка настраиваемого редактора с помощью markitup была такой же простой, как создание хэша настроек:
var settings = {
onShiftEnter: {keepDefault:false, replaceWith:'<br />\n'},
onCtrlEnter: {keepDefault:false, openWith:'\n<p>', closeWith:'</p>'},
onTab: {keepDefault:false, replaceWith:' '},
markupSet: [
{name:'Bold', key:'B', openWith:'(!(<strong>|!|<b>)!)', closeWith:'(!(</strong>|!|</b>)!)' },
{name:'Italic', key:'I', openWith:'(!(<em>|!|<i>)!)', closeWith:'(!(</em>|!|</i>)!)' },
{name:'Stroke through', key:'S', openWith:'<del>', closeWith:'</del>' },
{separator:'---------------' },
{name:'Bulleted List', openWith:' <li>', closeWith:'</li>', multiline:true, openBlockWith:'<ul>\n', closeBlockWith:'\n</ul>'},
{name:'Numeric List', openWith:' <li>', closeWith:'</li>', multiline:true, openBlockWith:'<ol>\n', closeBlockWith:'\n</ol>'},
{separator:'---------------' },
{name:'Picture', key:'P', replaceWith:'<img src="[![Source:!:http://]!]" alt="[![Alternative text]!]" />' },
{name:'Link', key:'L', openWith:'<a href="[![Link:!:http://]!]"(!( title="[![Title]!]")!)>', closeWith:'</a>', placeHolder:'Your text to link...' },
{separator:'---------------' },
{name:'Clean', className:'clean', replaceWith:function(markitup) { return markitup.selection.replace(/<(.*?)>/g, "") } },
{name:'Preview', className:'preview', call:'preview'}
]
}
Затем просто включите скрипт плагина и связанные таблицы стилей и добавьте эту строку javascript в onDomReady:
$("#markItUp").markItUp(settings);
Да. Существует валидатор W3C. Введите URI, а затем нажмите " More Options
и выберите " Clean up markup with HTML-Tidy
и voila. Однако это может испортить другие вещи, которые вы делаете, поэтому я рекомендую вам пройти через это самостоятельно