Мені знається, тут дещо інше.
Проблема не в тому, що LanguageTool не підтримує конкретний формат (HTML чи XML). Я не здивуюся, якщо, наприклад, під час перевірки:
Для реєстрації пройдіть за цим реєстраційним <a title="Реєстрація на форумі" href="http://example.com">посиланням</a>.
сайт видасть щось типу:
- Прикметник неузгоджений з іменником: реєстраційним Реєстрація
Або:
- Некоректна пуктуація: com">посиланням
Натомість сайт куйовджить HTML/XML-теги.
Швидше за все, мені здається, LanguageTool працює на низькому рівні, обробляючи сам текст і повертаючи інформацію про помилки в ньому в якомусь стандартному вигляді (наприклад, масив зі структур типу ІнформаціяПроОднуПомилку, кожна з яких має поля: "координата помилки", "тип помилки", "подробиці помилки", "варіанти виправлення помилки") — чи я не правий? А вже скрипти самого сайту, відображаючи цей результат в прийнятному для користувача вигляді — тобто генеруючи HTML-теги і вставляючи їх в вихідний текст, змішує їх (теги для оформлення помилок) з тегами в вихідному тексті (якщо є), і потім всі теги інтерпретуються як теги (хоча теги в вихідному тексті не мали б інтерпретуватися як теги, а натомість мали б екрануватися).
Тобто, мені здається, проблема не у відсутності підтримки конкретного формату в LanguageTool'і, а в скрипті, що, відображаючи результат перевірки тексту LanguageTool'ом, не екранує «<» і «&» в вихідному тексті, а змішує їх з власним форматуванням — і потім все це разом інтерпретується як HTML. Чи я не правий, і сам LanguageTool відповідає за красиве HTML-оформлення помилок користувачу?
Як банальний workaround:
- перед поданням тексту на перевірку LanguageTool — замінити всі «<» і «&» в вихідному тексті на «≺» і «&» (інші Unicode-символи з тих же категорій);
- після оформлення результатів перевірки LanguageTool'ом у вигляді HTML'у (але до його відображення) — замінити «≺» на «<», «&» на «&».
Насправді, все трішки складніше, бо вихідний текст може містити «≺» і «&» і їх треба екранувати. Але це все легко вирішується. Ну і перепрошую, якщо написав якусь зарозумілу маячню — я розумію, що міг щось не врахувати.