Технічна помилка

Помилки, знайдені при перевірці української граматики, а також пропозиції з покращення

Модератор: Анатолій

Відповісти
sasha1024
Повідомлень: 65
З нами з: Вів січня 19, 2016 4:42 pm

Технічна помилка

Повідомлення sasha1024 »

Тест <a href="http://example.com">тест</a> тст.
перетвоюється на
Тест тст.
Хоча інші теги, здається, залишаються тегами.

Upd.: Ні, інші теги теж псуються. Навіть HTML entities (наприклад &le;) перетворюються (наприклад ≤).
Andriy
Адміністратор сайту
Повідомлень: 3777
З нами з: Сер травня 27, 2009 8:23 pm

Re: Технічна помилка

Повідомлення Andriy »

Насправді на форумі не дозволено теги html, і
Тест <a href="http://example.com">тест</a> тст.
в мене лишається, як є.
sasha1024
Повідомлень: 65
З нами з: Вів січня 19, 2016 4:42 pm

Re: Технічна помилка

Повідомлення sasha1024 »

Andriy писав:Насправді на форумі не дозволено теги html, і
Тест <a href="http://example.com">тест</a> тст.
в мене лишається, як є.
Я не про форум. Я про http://r2u.org.ua/check.
Andriy
Адміністратор сайту
Повідомлень: 3777
З нами з: Сер травня 27, 2009 8:23 pm

Re: Технічна помилка

Повідомлення Andriy »

Перепрошую, не збагнув одразу.
Так така проблема є, нараді LanguageTool перевіряє лише чистий текст.
Теоретично підтримка маркувань можлива, але для кожного формату її треба впроваджувати, і поки ніхто за це не взявся.
Ось тут є відкрита вада https://github.com/languagetool-org/lan ... issues/445.

Переважно люди знімають маркування і перевіряють чистий текст.
sasha1024
Повідомлень: 65
З нами з: Вів січня 19, 2016 4:42 pm

Re: Технічна помилка

Повідомлення sasha1024 »

Мені знається, тут дещо інше.

Проблема не в тому, що 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'у (але до його відображення) — замінити «≺» на «<», «&» на «&».
Насправді, все трішки складніше, бо вихідний текст може містити «≺» і «&» і їх треба екранувати. Але це все легко вирішується. Ну і перепрошую, якщо написав якусь зарозумілу маячню — я розумію, що міг щось не врахувати.
Andriy
Адміністратор сайту
Повідомлень: 3777
З нами з: Сер травня 27, 2009 8:23 pm

Re: Технічна помилка

Повідомлення Andriy »

Ви мабуть праві, я пам'ятаю, що було декілька обговорень про проблеми форматування HTML, але точно вже не пам'ятаю на якому рівні вони були, чи то API чи то TinyMCE.
Я підозрюю автори ядра LanguageTool не проти pull request, але поки що ніхто не мав часу цим щільно зайнятися.
Відповісти

Повернутись до “Помилки і пропозиції”