JavaScript, чтобы исправить недействительный HTML?

0

Мне просто интересно, знает ли кто-нибудь об инструменте javascript, который может автоматически исправить недействительный синтаксис html? Я работаю над созданным на основе javascript редактором на месте, но у меня пока нет элегантного решения, чтобы предотвратить плохую вложенность:

<p><span></p></span>

Мне было интересно, может ли уже существовать сценарий, который может принять неверный html и автоматически его восстановить? Есть ли что-то подобное уже там, или мне придется самому решить эту проблему?

  • 2
    Markitup может быть то, что вы ищете
Теги:
syntax
wysiwyg

2 ответа

1

Комментарий Пиппина о 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);
  • 0
    Вы должны добавить пример использования в своем ответе.
  • 0
    Работаю над одним сейчас.
1

Да. Существует валидатор W3C. Введите URI, а затем нажмите " More Options и выберите " Clean up markup with HTML-Tidy и voila. Однако это может испортить другие вещи, которые вы делаете, поэтому я рекомендую вам пройти через это самостоятельно

Ещё вопросы

Сообщество Overcoder
Наверх
Меню