Перейти к содержимому


Фотография

html-parser


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 22

#1 Оффлайн   NEO

NEO
  • Пользователи
  • Сообщений: 1 748
  • Уровень сигнала: 4,82%
  • В игре: 36 час. 25 мин.
  • ГородСолнце

Награды

   3                        

Отправлено 31 Март 2017 - 02:45

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

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

 

P.S

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

 

Гитхаб.

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


Сообщение отредактировал NEO: 31 Март 2017 - 02:46

  • Totoro и ALeXeR это нравится

#2 Оффлайн   FluttyProger

FluttyProger
  • Пользователи
  • Сообщений: 60
  • Уровень сигнала: 167,9%
  • В игре: 1268 час. 26 мин.

Награды

                 

Отправлено 31 Март 2017 - 02:47

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

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

#3 Оффлайн   Zer0Galaxy

Zer0Galaxy
  • Гуру
  • Сообщений: 1 228
  • Уровень сигнала: 0%
  • В игре: 0 час. 0 мин.

Награды

   5                              

Отправлено 31 Март 2017 - 08:21

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

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

  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: 31 Март 2017 - 08:31

  • Totoro, ECS, ALeXeR и еще 1 это нравится

#4 Оффлайн   Totoro

Totoro
  • Хранители Кода
  • Сообщений: 1 735
  • Уровень сигнала: 0,29%
  • В игре: 2 час. 13 мин.

Награды

                                      

Отправлено 31 Март 2017 - 11:26

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

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



#5 Оффлайн   Zer0Galaxy

Zer0Galaxy
  • Гуру
  • Сообщений: 1 228
  • Уровень сигнала: 0%
  • В игре: 0 час. 0 мин.

Награды

   5                              

Отправлено 31 Март 2017 - 11:41

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



#6 Онлайн   Fingercomp

Fingercomp
  • Гуру
  • Сообщений: 2 002
  • Уровень сигнала: 169,26%
  • В игре: 1278 час. 43 мин.

Награды

                                               

Отправлено 31 Март 2017 - 12:03

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

twtlMfn.png


  • Totoro, ECS и Kartze это нравится

#7 Оффлайн   Totoro

Totoro
  • Хранители Кода
  • Сообщений: 1 735
  • Уровень сигнала: 0,29%
  • В игре: 2 час. 13 мин.

Награды

                                      

Отправлено 31 Март 2017 - 12:04

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

 

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

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

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



#8 Оффлайн   NEO

NEO
  • Автор темы
  • Пользователи
  • Сообщений: 1 748
  • Уровень сигнала: 4,82%
  • В игре: 36 час. 25 мин.
  • ГородСолнце

Награды

   3                        

Отправлено 31 Март 2017 - 14:22

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

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

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

P.S

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



#9 Оффлайн   Totoro

Totoro
  • Хранители Кода
  • Сообщений: 1 735
  • Уровень сигнала: 0,29%
  • В игре: 2 час. 13 мин.

Награды

                                      

Отправлено 31 Март 2017 - 14:48

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

P.S

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

 

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

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


  • NEO и ALeXeR это нравится

#10 Оффлайн   NEO

NEO
  • Автор темы
  • Пользователи
  • Сообщений: 1 748
  • Уровень сигнала: 4,82%
  • В игре: 36 час. 25 мин.
  • ГородСолнце

Награды

   3                        

Отправлено 31 Март 2017 - 15:00

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

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

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



#11 Оффлайн   Totoro

Totoro
  • Хранители Кода
  • Сообщений: 1 735
  • Уровень сигнала: 0,29%
  • В игре: 2 час. 13 мин.

Награды

                                      

Отправлено 31 Март 2017 - 15:15

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

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

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

 

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

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



#12 Оффлайн   Zer0Galaxy

Zer0Galaxy
  • Гуру
  • Сообщений: 1 228
  • Уровень сигнала: 0%
  • В игре: 0 час. 0 мин.

Награды

   5                              

Отправлено 31 Март 2017 - 15:40

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

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


Сообщение отредактировал Zer0Galaxy: 31 Март 2017 - 15:47


#13 Оффлайн   NEO

NEO
  • Автор темы
  • Пользователи
  • Сообщений: 1 748
  • Уровень сигнала: 4,82%
  • В игре: 36 час. 25 мин.
  • ГородСолнце

Награды

   3                        

Отправлено 31 Март 2017 - 15:50

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

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

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


  • ECS, ALeXeR и Kartze это нравится

#14 Оффлайн   ALeXeR

ALeXeR
  • Пользователи
  • Сообщений: 204
  • Уровень сигнала: 33,88%
  • В игре: 255 час. 59 мин.
  • ГородОдесса

Отправлено 31 Март 2017 - 16:04

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

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

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

 

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


Сообщение отредактировал ALeXeR: 31 Март 2017 - 16:07


#15 Оффлайн   LeshaInc

LeshaInc
  • Пользователи
  • Сообщений: 1 207
  • Уровень сигнала: 15,49%
  • В игре: 117 час. 1 мин.
  • ГородЛуна

Награды

                       

Отправлено 31 Март 2017 - 17:02

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

 

 

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

 

Спойлер

  • Totoro и Kartze это нравится

#16 Оффлайн   NEO

NEO
  • Автор темы
  • Пользователи
  • Сообщений: 1 748
  • Уровень сигнала: 4,82%
  • В игре: 36 час. 25 мин.
  • ГородСолнце

Награды

   3                        

Отправлено 06 Апрель 2017 - 02:58

6949595d677e4d66ab339c2c32a87bbb.png

 

https://hastebin.com/dofafotabe.xml


  • Totoro и Doob это нравится

#17 Онлайн   eu_tomat

eu_tomat
  • Хранители Кода
  • Сообщений: 880
  • Уровень сигнала: 6,36%
  • В игре: 48 час. 1 мин.

Награды

                          

Отправлено 06 Апрель 2017 - 07:21

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

#18 Оффлайн   NEO

NEO
  • Автор темы
  • Пользователи
  • Сообщений: 1 748
  • Уровень сигнала: 4,82%
  • В игре: 36 час. 25 мин.
  • ГородСолнце

Награды

   3                        

Отправлено 10 Апрель 2017 - 15:16

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


Сообщение отредактировал NEO: 10 Апрель 2017 - 15:16

  • Fingercomp это нравится

#19 Оффлайн   MeXaN1cK

MeXaN1cK
  • Пользователи
  • Сообщений: 42
  • Уровень сигнала: 8,31%
  • В игре: 62 час. 48 мин.

Награды

              

Отправлено 10 Апрель 2017 - 17:38

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



#20 Оффлайн   NEO

NEO
  • Автор темы
  • Пользователи
  • Сообщений: 1 748
  • Уровень сигнала: 4,82%
  • В игре: 36 час. 25 мин.
  • ГородСолнце

Награды

   3                        

Отправлено 10 Апрель 2017 - 17:53

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

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



#21 Оффлайн   MeXaN1cK

MeXaN1cK
  • Пользователи
  • Сообщений: 42
  • Уровень сигнала: 8,31%
  • В игре: 62 час. 48 мин.

Награды

              

Отправлено 10 Апрель 2017 - 19:41

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

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

 

 http://computercraft...parser/?p=29930


Сообщение отредактировал MeXaN1cK: 10 Апрель 2017 - 19:42


#22 Оффлайн   NEO

NEO
  • Автор темы
  • Пользователи
  • Сообщений: 1 748
  • Уровень сигнала: 4,82%
  • В игре: 36 час. 25 мин.
  • ГородСолнце

Награды

   3                        

Отправлено 10 Апрель 2017 - 19:48

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

 

 http://computercraft...parser/?p=29930

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



#23 Оффлайн   Totoro

Totoro
  • Хранители Кода
  • Сообщений: 1 735
  • Уровень сигнала: 0,29%
  • В игре: 2 час. 13 мин.

Награды

                                      

Отправлено 10 Апрель 2017 - 21:05

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

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

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

 

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

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


  • HixOff это нравится




Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных