GG
split, регулярки
text.split() -> // тут получаю дерево ты так себе это представляешь?)
Nikolai
text.split() -> // тут получаю дерево ты так себе это представляешь?)
split(\n) Получаешь массив строк и потом из него строишь дерево как тебе надо. В чем проблема то? Если это markdown или какая то общепринятая разметка, то проще либу взять проверенную, которая это тебе распарсит
🎉
Проще текст сунуть в удобоваримое, и парсить не нужно.
GG
да
Anonymous
да
щас накидаю, как раз сменить контекст надо от ебучей сервачки)))
Anonymous
да
можешь текст скинуть текстом
GG
о. круто!
GG
# Баланс и оплата - Как получить выйгрыш? Деятельность приема от физичиских лиц .... - Как пополнить баланс? Для того чтоб пополнить баланс, надо быть в банде Балансов # Идентификация - Где посмотреть точки? Там и тут ... - Как идентифицироваться онлайн? Для того чтобы идентифицироваться онлайн надо ...
GG
type Tree = { type: Head | ExpandText | Body text: string, nodes: [Tree] } /* 'Head' - то что начинается с # 'ExpandText' - то что начинается с - 'Body' - то что начинается без символов # и - */
GG
для прощего парсинга введем звездочку
Anonymous
для прощего парсинга введем звездочку
const processText = (text) => { const createNode = (value, offset = -1) => ({ value, children: [], offset }); const stack = [ createNode('__root__') ]; const getLast = () => stack[stack.length - 1]; text.split('\n').filter(line => line.trim().length > 0).map(line => { const offset = line.length - line.trimStart().length; while (getLast().offset >= offset) stack.length--; const node = createNode(line.trim(), offset); getLast().children.push(node); stack.push(node); }); return stack[0]; };
Anonymous
трындец, если ты символами можешь уровень вложенности отмечать тут всё куда проще будет, в том коде что я скинут есть проблемма что Для того чтоб пополнить баланс, надо быть в банде Балансов будет всегда считаться двумя детьми
Anonymous
такие места обычно \ отмечают
Anonymous
ща, подожди скину для этого кейса код
🎉
это вообще крутой хак const offset = line.length - line.trimStart().length;
А вообще, какой кейс для такого? Один раз распарсить, или такого рода текста будет много и периодически?
GG
А вообще, какой кейс для такого? Один раз распарсить, или такого рода текста будет много и периодически?
он будет менятся, в админки, сохранятся ввиде дерева, и отправлятся потом на фронт, там уже с ul li и раскрывающимися вложенными списками будет отображатся
Anonymous
короче ставишь черточку перед строкой и она будет считать продолжение той
GG
Хмм, а что не json?
потому что с текстом будут работать не программисты, а контент менеджеры
🎉
потому что с текстом будут работать не программисты, а контент менеджеры
Вот именно, с текстом накосячат, и полетит всё. Не надёжно, кмк.
GG
тот вид который надо распарсить, он почти нативный, почти так же будет выглядить на сайте, так им будет интуитивно понтней
🎉
Ну ок.
Anonymous
главное что табами не стали отбивать, хотя я думаю ты в состояние табы на 4 пробела заменить если что
Anonymous
Спасибо, задачу порешал, мозги проветрил от сервачки)))
Anonymous
:(
ну что ты типа не знаешь '\t'.replace(/\t/g, ' ');
GG
Спасибо, задачу порешал, мозги проветрил от сервачки)))
тебе спасибо!) показал как надо стеком пользоватся)
Anonymous
тебе спасибо!) показал как надо стеком пользоватся)
На самом деле это я хотел тупо вспомнить этот момент
Anonymous
тебе спасибо!) показал как надо стеком пользоватся)
с табами другая хрень, где то они показываются как 4 пробела, в каких то редакторах как 2, иногда 6 или даже 8... тут решение особого нету, лучше либо всегда табы использовать тока, либо пробелы, либо считать таб = 4 пробела... ну короче это все такое говно что лучше вообще запретить их)))
GG
на крайняк запрещу таб нажимать)
Anonymous
в textarea собираюсь давать редачить текст, надесь в ней табы всегда одинаковые, и не зависит от браузера или операционки
tab выкидывает фокус вроде, в любом случае можно по событию все табы вырезать оттуда
Anonymous
Это всё так, скользко. Чуть накосячил с текстом и пипец.
Ага, примерно как код писать. А yaml кстати много где ещё используют, но тоже на отступах основан
🎉
Ну в ямл кстати не каждый кодер сумеет, тем более инструмента нормального нет. А уж обычные люди...
Anonymous
Ну в ямл кстати не каждый кодер сумеет, тем более инструмента нормального нет. А уж обычные люди...
как это нет? каждая ide yaml поддерживает, вот первая ссылка с гугла https://onlineyamltools.com/convert-yaml-to-json
Eugene
в одном из прошлых проектов конфиг eslint на yaml был :)
🦜
для прощего парсинга введем звездочку
Для таких штук всё-таки делают json схему, где определяют спецсимволы, текст, переходы и т.д
Anonymous
https://t.me/react_js/754901 вот только сегодня эта делал, 672 сктроки в файле webpack.config... выкинул нахер все это пошел смотреть на preact
🎉
как это нет? каждая ide yaml поддерживает, вот первая ссылка с гугла https://onlineyamltools.com/convert-yaml-to-json
Не, у меня он в виде плагина, джетбрэйнс, причём кривой. Пока не запустишь, нельзя сказать где ошибка. Я не просто про конфиг, а про нечто большее, например http://editor.swagger.io/, тут намного легче ковырять чем с плагином.
Alexiagray
Обьясните дебилу, почему в большей мере все пишут на вью паршивом , но не на реакте
Alexiagray
Что не вакансия - vue , vuex итд
S
Обьясните дебилу, почему в большей мере все пишут на вью паршивом , но не на реакте
вакансий по реакту в 5 раз больше 😕, ты в каком городе живешь? :D
S
Потому что пыхерам проще накатить шаблончик на вью
точняк! лара же из коробки работает с vue, точнее уже стартеры есть с vue
Alexiagray
Я реакт ненавижу из-за редакса и thunk
🦜
Модно, современно, молодежно (нет)
Alexiagray
Бесполезные они как по мне (на самом деле нет, redux уж точно нет)
🦜
Я реакт ненавижу из-за редакса и thunk
А реакт тут причем? Редакс живёт отдельно от него. Пысы попробуй effector.js
S
Я реакт ненавижу из-за редакса и thunk
редакс же легкий, а thunk это всего лишь 14 строк кода даже хз почему его в пакет засунули
Alexiagray
редакс же легкий, а thunk это всего лишь 14 строк кода даже хз почему его в пакет засунули
Я видимо тупой ибо я спустя 3 месяца понял че да как с ним работать , эт я еще про сагу не начал говорить, там совсем тяжко было хоть тоже маленькая
S
Бесполезные они как по мне (на самом деле нет, redux уж точно нет)
обычно кто хаят редакс не пользуются автоимпортом и не эскпортирует named
artalar
https://t.me/react_js/754901 вот только сегодня эта делал, 672 сктроки в файле webpack.config... выкинул нахер все это пошел смотреть на preact
Выбор шаблонизатора (или его процессора) не сильно влияет на конфиги бандлера, там все равно будет куча всего для других интеграций
artalar
У меня сейчас preact + next.js. Оказалось некст тащит в бандл под сотку КБ своего кода… Жду когда релизнется preact-cli для preact X (сейчас для 8ой версии он)
Anonymous
Выбор шаблонизатора (или его процессора) не сильно влияет на конфиги бандлера, там все равно будет куча всего для других интеграций
Короче, моё мнение, прятать конфигы почти в 1000 строк в недра это начало конца, дальше будет все как у рубиновых, сначала все обернуть сотней слоев ради поддержи легаси, совместимости со всеми кейсами, 18 уровней защиты от дурака, потом все забудут как на самом деле выглядит конфиг вебпака, потом напишу новый конфиг, который будет конфигурировать основной скрытый и так далее, а потом неожиданно человек будет сидеть на работе не код писать, а читать как сконфигурироть что-то для чего-то... Вот такими и их и застал рубистов перед паденией всего RoR стека.
Anonymous
Есть другие предложения?
Боюсь что уже поздно что либо делать, это нормальный процесс в эволюции, я уж молчу что херову гору логики не связанной с основной задачей webpack запихали в плагины )))
Anonymous
в 2:00 я запустил create-react-app, потом мне нужно было что бы вебпак запускал мне сборку двух серверов и ещё двух приложений на нативе, в 2-10 я узнал про то что они сделали eject config'ов, я реально думал сейчас за 15-20 минут настрою вебпак что бы он мне 5 апп сразу собирал... 3-15 я все ещё гуляю по недрам конфигов и понимаю что я ни сдвинулся по задаче ни на шаг, попутно мне становиться страшно за фронт... 3-50... первые попытки как то перенести все один конфиг ничего не дали, общей картины так и нет... 3-55 пошел пить чай.... 4-10 вернулся посмотрел на вкладку ide, пошёл смотреть в окно, 4-15... с меня хватит, вернулся к ноуту и удалил папку "только что" созданного приложения, стал рефакторить сервачку, после сна или подниму реакт руками "как раньше" либо если зайдет буду чекать preact, ну надо же когда то начать пробовать... А может vue? ну уже только не это дерьмо))
Eugene
в 2:00 я запустил create-react-app, потом мне нужно было что бы вебпак запускал мне сборку двух серверов и ещё двух приложений на нативе, в 2-10 я узнал про то что они сделали eject config'ов, я реально думал сейчас за 15-20 минут настрою вебпак что бы он мне 5 апп сразу собирал... 3-15 я все ещё гуляю по недрам конфигов и понимаю что я ни сдвинулся по задаче ни на шаг, попутно мне становиться страшно за фронт... 3-50... первые попытки как то перенести все один конфиг ничего не дали, общей картины так и нет... 3-55 пошел пить чай.... 4-10 вернулся посмотрел на вкладку ide, пошёл смотреть в окно, 4-15... с меня хватит, вернулся к ноуту и удалил папку "только что" созданного приложения, стал рефакторить сервачку, после сна или подниму реакт руками "как раньше" либо если зайдет буду чекать preact, ну надо же когда то начать пробовать... А может vue? ну уже только не это дерьмо))
на craco смотрел?
Eugene
https://github.com/gsoft-inc/craco
Anonymous
https://github.com/gsoft-inc/craco
Я же говорю конфиги для конфигов это начало конца)))
Eugene
💁🏻‍♂️
Anonymous
Да я типа понимаю create-react-app решает (на самом деле просто скрывает) кучу проблем современной экосистемы за оргомный монилитным фасадом, будет тебе готовый конфиг и для тестов и для стилей и даже гребанный web-worker туда уже запихали, post-css, babel... но мне для начала нужно всего то сраный typescript да webpack, я даже ещё не знаю через что стили буду делать, но в этом конфиге уже наверно есть 3 встроенных способа внешних стилей и ещё 2 css-modules на js... Не знаю господа как у вас а у меня что-то внутри переворачивается когда такой бардак, практически невозможно добавить свою какую то логику в эти комбайны не сломал голову, а у меня почему то постоянно вознимают какие то кастомные кейсы, json-scheme to typescript interface например или ещё для webjs прокинуть glsl шейдеры в приложения, в этом плане конечно когда такие конфиги ковыряешь уже точно не по себе...
artalar
в 2:00 я запустил create-react-app, потом мне нужно было что бы вебпак запускал мне сборку двух серверов и ещё двух приложений на нативе, в 2-10 я узнал про то что они сделали eject config'ов, я реально думал сейчас за 15-20 минут настрою вебпак что бы он мне 5 апп сразу собирал... 3-15 я все ещё гуляю по недрам конфигов и понимаю что я ни сдвинулся по задаче ни на шаг, попутно мне становиться страшно за фронт... 3-50... первые попытки как то перенести все один конфиг ничего не дали, общей картины так и нет... 3-55 пошел пить чай.... 4-10 вернулся посмотрел на вкладку ide, пошёл смотреть в окно, 4-15... с меня хватит, вернулся к ноуту и удалил папку "только что" созданного приложения, стал рефакторить сервачку, после сна или подниму реакт руками "как раньше" либо если зайдет буду чекать preact, ну надо же когда то начать пробовать... А может vue? ну уже только не это дерьмо))
Вы, видимо, не понимаете на сколько огромна вариативность и сколько подводных камней при работе с браузером + еще дев-сервер. CRA имеет все эти конфиги не по приколу, а потому что в каждой строчке решается какая-то проблема. И каждая из этих проблем, скорее всего, не реакт-специфичная, а связана с интеграциями и оптимизациями. Если попробуете собрать что-то свое, то либо вы потратите не меньше пары недель, либо у вас будут какие-то баги, о которых вы даже не знаете. И, повторюсь, преакт вам не как не поможет, это мягкое и холодное.
artalar
бубенчики и прикроватный столик