@haskellru

Страница 1247 из 1551
dimiii
06.06.2018
11:26:06
что он собственно и пишет в версиях base
Куда смотреть? (на будущее)

A64m
06.06.2018
11:26:47
base>=4 && <4.11 base 4.11 это ghc 8.4

dimiii
06.06.2018
11:29:19
Yuriy
06.06.2018
11:34:06
или через stack, если они такой вариант предлагают

Google
kana
06.06.2018
11:56:09


instance ( Show a , Show (f r) , forall x. Show x => Show (f (g x)) ) => Show (Expression a g f r) where show (ClosedExpression x) = "(Closed " ++ show x ++ ")" show (OpenExpression x y) = "(Open " ++ show x ++ " " ++ show y ++ ")" типа такого

0x739d6cd673fffb80
06.06.2018
13:17:59
Ну он тоже не вынуждает открывать бизнес-процессы по производству кода. Хочется, чтобы лицензия делала весь процесс написания открытым (а не как в линуске, когда пушат 100 тысяч строк без единого комментария)
??? Как должно выглядеть открытие бизнес-процессов программирования? Типа: вот вам новая опенсорсная либа, мы писали ее 10-ю наемными программистами в течение 2 месяцев, каждый программист получал по N рублей? Выполнение условий даже гпл слабоконтролируемо, в чем же будет смысл настолько агрессивной лицензии?

Sergey
06.06.2018
13:33:01
всем здравствуйте. возникла задача заменить удалить пару тегов в HTML, вопрос: что юзать для этого?

Leonid
06.06.2018
13:34:01
sed

Yuriy
06.06.2018
13:34:05
руками

Sergey
06.06.2018
13:34:15
все не настолько просто)

переформулирую, функция принимает на вход Text, который HTML, оттуда надо выкинуть несколько тегов с определенным классом/id, и вернуть Text

то бишь сами теги не всегда один и тот же статичный текст

Serghei
06.06.2018
13:41:23
тебе нужен sanitizer условно говоря, которому чере параметры говорить что именно чистить/экранировать?

Sergey
06.06.2018
13:41:50
ну можно и так сказать да

Sergey
06.06.2018
13:54:16
пасиба! гляну

Google
Yuriy
06.06.2018
13:56:52
можно посмотреть на hxt
это разве не XML?

Sergey
06.06.2018
13:57:25
HTML это тот же XML

Anatolii
06.06.2018
13:58:19
вот только написать хотел

:)

Ignat
06.06.2018
13:59:14
S G M L G M L

kana
06.06.2018
13:59:34
xml тоже прощает пропущенные закрытые теги?

Sergey
06.06.2018
13:59:43
нет

но и HTML Не прощает

kana
06.06.2018
13:59:54
ну значит html это не xml

Sergey
06.06.2018
13:59:59
это уже хитрые браузеры

kana
06.06.2018
14:00:03
html по спеке таки прощает

Ignat
06.06.2018
14:00:22
AFAIR можно вполне легально не закрывать <tr> и <td>, например

не говоря о каком-нибудь <br>

Anatolii
06.06.2018
14:01:10
помойму у hxt есть режим html

который прощает не закрыте теги

Andrei
06.06.2018
14:03:16
sed
H̸̡̪̯ͨ͊̽̅̾̎Ȩ̬̩̾͛ͪ̈́̀́͘ ̶̧̨̱̹̭̯ͧ̾ͬC̷̙̲̝͖ͭ̏ͥͮ͟Oͮ͏̮̪̝͍M̲̖͊̒ͪͩͬ̚̚͜Ȇ̴̟̟͙̞ͩ͌͝Sͯ ̨̥̫͎̭̔̀ͅ

Stepan
06.06.2018
14:16:15
Короче всё сказанное к тому, что это делается НЕ регулярными выражениями, НЕ хаскелем. Вероятно что-то близкое к парсеру xml. Также это НЕ делается САМОПИСНЫМ парсером, никогда. Гугль в помощь

Anatolii
06.06.2018
14:18:21
hxt как раз хорошу на эту роль подходит, там конечно по началу тяжеловато начать им пользоваться

Leonid
06.06.2018
14:29:55
для html скорее какой tagsoup

Google
Yuriy
06.06.2018
14:36:13
HTML это тот же XML
может показаться неожиданным, но нет

но и HTML Не прощает
зависит от тэга

Евгений
06.06.2018
14:36:46
html это sgml

Yuriy
06.06.2018
14:39:17
html это sgml
но парсер SGML не даст на выходе HTML-документ

Stepan
06.06.2018
14:42:13
XSLT!
А оно может с html? Ведь как уже сказали html /= xml

Alexander
06.06.2018
14:42:32
не должно )

вообще парсинг HTML это на редкость неблагодарное дело, там доже тэги не сбалансированы

я где то читал статью где ребята из гугл рекомендоали не закрывать <p> и <li>

Andrei
06.06.2018
14:46:56
идея стартапа – парсер HTML as a service (с безголовым chrome под капотом)

Alexander
06.06.2018
14:54:45
selenium-standalone-chrome

Dmitry
06.06.2018
14:55:00
у сноймана вроде был более менее норм. парсер

правда не помню, как он к malformed html относился

если надо кривой html, то тагсуп. но он тормоз.

A64m
06.06.2018
14:56:47
никто еще тэгсуп поверх зено или как там его не сделал?

Alexander
06.06.2018
15:03:12
@catamorphism чтотр делал вроде

Denis
06.06.2018
15:04:27
https://github.com/dredozubov/sax-parser я вот это сделал, оно быстрее снойман-xmlей, но открыто всем рекомендовать пока не готов в силу специфичности и дебильных сообщений об ошибках

Leonid
06.06.2018
15:18:48
/me опять был обижен сервантом

Евгений
06.06.2018
15:28:01
Google
? animufag ?
06.06.2018
15:37:54
это же как-то ненормально что toList встречается в Foldable и в GHC.Exts.IsList?

да и как-то можно ж было этот тайпкласс в прелюдию затолкать. вроде полезен и вне контекста списковых литералов

Alexander
06.06.2018
15:39:13
И в maybe ещё

0x739d6cd673fffb80
06.06.2018
15:39:14
А существуют модули, позволяющие хаскельной программе обращаться к другому модулю БЕЗ компиляции того? Звучит безумно, но вдруг

Andrey
06.06.2018
15:41:10
а как ты себе это представляешь?

? animufag ?
06.06.2018
15:41:20
И в maybe ещё
ну это со временем сложилось. но Foldable и IsList я думаю примерно в одно время появлялись

Yuriy
06.06.2018
16:06:22
DOM-то даст
если не заточен на HTML? в лучшем случае даст AST

Евгений
06.06.2018
16:06:39
Ну AST html'я и есть дом

div (attr: ...) -> div -> и т.д.

Только body извлеки, да и всё

Leonid
06.06.2018
16:11:55
SOOOQUA нужно было офранов для servant-streaming заимпортировать. 2 часа бился головой об стол

Yuriy
06.06.2018
16:14:41
Ну AST html'я и есть дом
<a><img> и <img><a> похожи по синтаксису, но DOM очень разной формы дают

Евгений
06.06.2018
16:15:57
Не похожи они по синтаксису, в одном случае у тебя img в a, а в другом a в img

Иерархия разная же

Алексей Ayaye :)
06.06.2018
16:27:16
а есть задача сохранить исходный html, за исключением некотрых тегов? или на выходе может быть эквивалентный исходному с замененными тегами? вторая задача решается без проблем, насколько мне известно (не на хаскеле)

Евгений
06.06.2018
16:33:53
откуда SGML об этом узнает?
По порядку? У тебя один тег вложен в другой

Yuriy
06.06.2018
17:00:16
SGML не знает, чем отличаются открывающие тэги от отдельно стоящих

эту проблему исправили только в XML

Sergey
06.06.2018
17:02:25
ну, на руби оно фигак фигак и готово. Nokogiri норм с этим справляется

Google
Sergey
06.06.2018
17:02:34
но надо на хаскеле

Евгений
06.06.2018
17:02:55
Что-то ты очень странное говоришь

Yuriy
06.06.2018
17:04:38
я проверю и вернусь с доказательствами

Открывающиеся не закрываются?
в HTML можно не закрывать p, li

Евгений
06.06.2018
17:05:44
И как оно тогда интерпретируется?

Ignat
06.06.2018
17:06:05
ну их вкладывать друг в друга нельзя, поэтому неоднозначностей не возникает

Imants
06.06.2018
17:25:26
Там всё просто и логично ? https://stackoverflow.com/questions/3558119/are-non-void-self-closing-tags-valid-in-html5

Alexander
06.06.2018
19:16:23
xhtml ftw

Imants
06.06.2018
19:34:07
переформулирую, функция принимает на вход Text, который HTML, оттуда надо выкинуть несколько тегов с определенным классом/id, и вернуть Text
Может, https://developers.google.com/web/updates/2017/04/headless-chrome ? Загрузить, запустить js, который удалит, что надо, и --dump-dom , а? Вдруг сработает..

Alexander
06.06.2018
19:37:45
хочу заметить что хедлес хром не очень стабилен, увы

плюс можно получить javascript-бомбу

но из обсуждаемых вариантов все равно лучший

Imants
06.06.2018
19:39:16
Кроме Хрома, можно выбрать другой из списка: https://en.m.wikipedia.org/wiki/Headless_browser

Alexander
06.06.2018
19:46:28
мне кажется все одно фигня

phantomjs deprecated

так что со списком надо аккуратнее

ну то есть главная проблема в том, что если этот html user input можно крепко обломаться

Слава
06.06.2018
19:50:21
Я такого не писал, но первый же запрос в гугл "haskell html parser" выдал мне ссылку на tagsoup

Почему бы просто не воспользоваться им, не пройтись по узлам и не удалить всё ненужное?

Страница 1247 из 1551