Перейти к публикации
Форум - ComputerCraft
NEO

html-parser

Рекомендованные сообщения

Сегодня решил написать html парсер, суть его такова, распарсить теги, построить дерево, уметь определять атрибуты key=value и текст в теге.

Пока есть мысли сделать примитивную программу для отображения дерева из тегов, браузером можно назвать, с натяжкой.

 

P.S

Кто там кричал про интернет и веб сайты? Присоединяйтесь.

 

Гитхаб.

https://github.com/Avaja/html-parser

Изменено пользователем NEO
  • Like 2

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Круто! Главное не забрасывай это дело)

 

Отправлено с моего HTC Desire 526G dual sim через Tapatalk

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

А что, предполагается этот браузер будет странички из реального Интернета тянуть и отображать? А как быть с графикой?

Я б присоединился если задачу сформулируешь.

  return s:match"^%s*(.*)":match"(.-)%s*$"
эквивалентно
  return s:match"^%s*(.-)%s*$"
function nextWord(str)
  local word = ''
  while pos <= str_len do
    local char = string.sub(str, pos, pos)
    if char ~= ' ' and char ~= '>' then
      word = word .. char
    else
      return word, char == ' '
    end
    pos = pos + 1
  end
  return nil
end

эквивалентно

function nextWord(str)
  local word
  word,pos=str:match("([^%s>]*)()",pos) -- или как-то так
  return word
end 

Это я умничаю

Изменено пользователем Zer0Galaxy
  • Like 3

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

А графику кстати Лёха пилил.

Всякие кастомные шрифты, быструю отрисовку картинок и т.п.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Об OC. Обыкновенные шрифты. Текст можно набирать ими, если что.

twtlMfn.png

  • Like 2

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Мы про ОС говорим? Какие там еще шрифты?

 

Я щас скринов не найду, надо у Лёхи просить.

Он там рендерил шрифты с помощью символов Брайля. Получалось очень даже ничего.

Можно заюзать для отрисовки, например, хедеров.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

А что, предполагается этот браузер будет странички из реального Интернета тянуть и отображать? А как быть с графикой?

Я б присоединился если задачу сформулируешь.

Я не думаю что из реального интернета есть смысл что - то тянуть, тут больше смысл сделать еще одну причину использовать сети в ОС  :D

P.S

Плюс мне интересно как работают браузеры, парсеры и тд.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Я не думаю что из реального интернета есть смысл что - то тянуть, тут больше смысл сделать еще одну причину использовать сети в ОС  :D

P.S

Плюс мне интересно как работают браузеры, парсеры и тд.

 

Тут надо определиться IMHO. Потому что в контексте сетей в ОС нет смысла использовать всю громаду реального HTML.

Возможно стоит реализовать "форк" с урезанными и адаптированными тегами, или вовсе запилить свой язык разметки (типа того, что делал я для инфопанели).

  • Like 2

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Тут надо определиться IMHO. Потому что в контексте сетей в ОС нет смысла использовать всю громаду реального HTML.

Возможно стоит реализовать "форк" с урезанными и адаптированными тегами, или вовсе запилить свой язык разметки (типа того, что делал я для инфопанели).

Да, я это и планирую, такой язык разметки не будет поддерживать все теги из реального HTML, а только те что сделают нормальный вывод текстовой информации, конечно можно еще картинки добавить.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

В идеале надо ещё прикрутить стили в каком-то виде, чтобы юзать цвета и форматировать текст (отступы, колонки, блоки - всё такое).

Разные элементы типа текстбоксов и кнопок.

Ну и если скооперироваться с Лёхой, можно ещё нахреначить хедеров разного размера и разными шрифтами.

 

А самый шик будет, если добавить возможность скриптовать странички на Луа.  :D

(Типа как JS в реальном вебе. Анимации делать всякие, формочки и т.п.)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Вот только кто всё это юзать будет. Мы с Крутым это проходили

Или возрождаем OpenNet?

Изменено пользователем Zer0Galaxy

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Вот только кто всё это юзать будет. Мы с Крутым это проходили

Или возрождаем OpenNet?

Мне интересно написать браузер, а будут ли пользоваться мне всё равно.

  • Like 2

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

пили XML парсер) его потом под HTML не представляет труда подстроить)

 

 

странички из реального Интернета тянуть и отображать?
 

не обязательно с инета) в конце-концов вебсервер в ОС запилить можно) с бекендом на lua)

 

ну а зачем нам шрифты? как бы парсер HTML к этому мало что имеет, ну а если говорить о браузере - то links например юзает статический шрифт)

Изменено пользователем ALeXeR

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

ну а зачем нам шрифты? как бы парсер HTML к этому мало что имеет, ну а если говорить о браузере - то links например юзает статический шрифт)

 

 

Потому что это круто.

 

 

 

2017_03_31_164325_1280x128_scrot.png

2017_03_31_164545_1280x128_scrot.png

2017_03_31_164705_1280x128_scrot.png

2017_03_31_164402_1280x384_scrot.png

2017_03_31_164509_1280x384_scrot.png

2017_03_31_164803_1280x496_scrot.png

2017_03_31_165039_1280x128_scrot.png

2017_03_31_165321_1280x128_scrot.png

2017_03_31_164959_1280x128_scrot.png

2017_03_31_165138_1280x512_scrot.png

2017_03_31_165303_1280x512_scrot.png

2017_03_31_164908_1280x496_scrot.png

 

 

  • Like 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

@@NEO, для начала сгодится, но для большей совместимости с HTML цвет в шестнадцатеричном виде лучше указать не через 0x, а #.

И пробел перед ld лишний.

  • Like 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Parser и lexer были переписаны на moonscript

Изменено пользователем NEO
  • Like 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Нео, все конечно круто, и даже очень, но вот 1 вещь меня беспокоит: приведи пример использования твоих "лунных" библиотек. =)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Нео, все конечно круто, и даже очень, но вот 1 вещь меня беспокоит: приведи пример использования твоих "лунных" библиотек. =)

Хочу позже сделать движок который будет отображать документ.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Хочу позже сделать движок который будет отображать документ.

Было бы не плохо. Ну а так я тут попытался использовать твои либы, даже компилятор муна для ОС скачал, перевел в луа, но так и нихера, а вообще хотелось бы увидеть, как вот это было получено (код) 

 

 http://computercraft.ru/topic/1988-html-parser/?p=29930

Изменено пользователем MeXaN1cK

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Было бы не плохо. Ну а так я тут попытался использовать твои либы, даже компилятор муна для ОС скачал, перевел в луа, но так и нихера, а вообще хотелось бы увидеть, как вот это было получено (код) 

 

 http://computercraft.ru/topic/1988-html-parser/?p=29930

Это кустарный код.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Вообще тема странно оформлена.

Предлагаю Нео отредактировать стартовый пост, описать там текущее состояние проекта, актуальные ссылки на код и билд последней версии в Луа.

Плюс дока по использованию.

 

Сейчас это похоже на какую-то Твиттер ленту автора. Мол "попилил либу", "опять попилил", "а теперь на МунСкрипте попилил". :D

Ну то есть мне как читателю приходится гадать, где тут полезная инфа и собирать по всей теме.

  • Like 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас

×