Ычан: [d | b / bro / hr / l / m / med / mi / mu / o / ph / r / s / sci / tran / tu / tv / x | es / vg | au / tr | a / aa / abe / c / fi / jp / rm / tan / to / vn / vo]
[Назад] [Вся нить] [Первые 100 сообщений] [Последние 50 сообщений]
Ответ в нить [Последние 50 сообщений]
Имя
Animapcha image [@] [?]
Тема   ( ответ в 23830)
Сообщение flower
Файл 
Пароль  (для удаления файлов и сообщений)
Параметры   
  • Прежде чем постить, ознакомьтесь с правилами.
  • Поддерживаются файлы типов 7Z, BZ, BZ2, GIF, GZ, JPG, MO, MP3, MP4, OGG, OGV, PDF, PNG, PSD, RAR, SVG, SWF, TXT, WEBM, XCF, ZIP размером до 5000 кБ.
  • Ныне 3435 unique user posts. Посмотреть каталог
  • Максимальное количество бампов нити: 500
157894316857.png-(578.70KB, 720×720, junior_developer_aoba.png)
23830
No. 23830    
Здесь можно получить помощь и консультацию по любому языку программирования, в любой сфере разработки. Не важно, программируете ли вы собственного робота, пишете серверную приблуду, интегрируете чужие API, ковыряете игру, или пытаетесь сделать сайт на Wordpress - если аноним что-то об этом знает, он обязательно поможет.

Пополняемая база знаний: http://pastebin.com/AGhLZppH

Не знаете, какой язык и библиотеки взять для вашей задачи? Вам сюда.
Не знаете, где клиент, а где сервер? Вам сюда.
Не понимаете, что такое ООП? Вам сюда.
Написали код, и не понимаете, почему не работает? Вам сюда.
Обнаружили кусок кода, и не понимаете, как оно вообще могло работать? Вам тоже сюда.
Не знаете, как подступиться к проблеме? Вам обязательно сюда.

Другие тематические нити (периодически обновляется): https://pastebin.com/psy43ibG

Примеры кода лучше выкладывать в виде ссылок на http://pastebin.com или http://ideone.com
Фронтендные вещи лучше выкладывать на http://jsfiddle.net

Аноним будет стараться дать максимально точный ответ на ваш вопрос и не пытаться предложить вам поменять весь стек технологий только потому что не знает, как решить проблему с тем что у вас есть. Впрочем, если вы забиваете гвоздь микроскопом, аноним постарается вас об этом предупредить.

Чтобы не сбивать новичков с толку, а также не разбавлять полезную информацию мусором, беспредметные споры типа "какой язык / парадигма / библиотека / етц лучше" здесь запрещены. Для подобных вещей теперь есть отдельная диспутов нить >>/dev/21353

Если здесь поселится достаточное количество программистов на одном языке / одной сферы, можно будет их выделить в отдельную нить, а в этой оставить на неё ссылку.
По мере поступления вопросов можно составлять FAQ и базу знаний.

Архив нитей:
http://410chan.org/dev/arch/res/14160.html
http://410chan.org/dev/arch/res/15681.html
http://410chan.org/dev/arch/res/17424.html
http://410chan.org/dev/arch/res/19666.html
http://410chan.org/dev/arch/res/21641.html

Прошлая нить пока тонет тут: >>/dev/21641
179 сообщений пропущено. Показаны 50 последних сообщений Развернуть все изображения
No. 24278    
>>24263
Эта стопка сшитой макулатуры еще актуальна? Лучше бы Любановича Простой Питон от того же издателя советовали, он хотя бы на русский переведен.
No. 24279    
>>24278

>Эта стопка сшитой макулатуры

Нельзя ли пояснить?
No. 24280    
>>24278
Что скажешь насчет книги Майкла Доусона?
No. 24294    
Хотелось бы покодить на питоне, но просто так неинтересно. Есть какие-то учебники с задачами? Можно английские.
No. 24295    
А где можно попросить обзора... "кода" темы для вукоммерц?
No. 24301    
>>24294
Олимпиадки решай?
No. 24302    
>>24294
>Хотелось бы покодить на питоне, но просто так неинтересно. Есть какие-то учебники с задачами?

Конечно же есть, даже совсем недавно приводили такие материалы.
Базовый интерактивный курс: https://www.learnpython.org/
Тут можно кодить прямо в браузере.

Учебник с упражнениями:
https://runestone.academy/runestone/books/published/pythonds/index.html

Базовые упражнения оттуда:
https://runestone.academy/runestone/books/published/pythonds/Introduction/ProgrammingExercises.html

После этого можно посмотреть на упражнения и задачи вот тут:
https://leetcode.com/problemset/all/
Питон - одна из опций для решений, кодить тоже можно в браузере, и задачи разбиты по сложности.
No. 24303    
>>24295
можешь уточнить, что именно ты хотел бы увидеть или узнать?
No. 24305    
>>24303
Узнать, что правильно использовал, что неправильно. Про общую манеру письма кода и комментариев.
Ну и вообще про то, что нужно в магазин добавлять обязательно, а без чего можно обойтись.
No. 24321    
>>24265
Ты используешь 1С? Для чего?
No. 24328    
>>24321
В основном для ввода капчи.
No. 24370    
158886327423.jpg-(59.32KB, 377×561, 141773354849.jpg)
24370
Вот, говорят, чтобы разрабатывать фронтенд, нужно знать JS, CSS и HTML.
Но сейчас же этого мало. Там всякие NodeJS, Angular существуют - в каком направлении рыть? Что надо изучать после фундаментальной троицы?
No. 24371    
>>24370
>надо
ES6, babel и как работать с npm/yarn. Остальное подхватишь на месте.
No. 24372    
>>24371
Бабель - философ транспилер, npm - пакетный менеджер. Что из этого мне надо было понять, что я подхвачу на месте?
No. 24373    
>>24372

JS же
No. 24374    
>>24373
Спасибо, не поняла
No. 24375    
>>24372
Умничка. А теперь запили мне D&D адаптивную табличку. Решение на чистом жс без использования библиотек не предлагать.
No. 24376    
>>24375
А, и чтобы работало везде, начиная с осла 10.
No. 24381    
>>24370
> Всякие NodeJS, Angular существуют - в каком направлении рыть?
Зависит от того, что ты хочешь делать.

NodeJS - это для серверной лабуды, https://nodejs.org/
ElectronJS - это для десктопной лабуды, https://electronjs.org/
Angular, ReactJS, Backbone.js, Vue.js - это уже конкретно для поддержки клиентской / фронтенд-части веб-лабуды:
https://angular.io/
https://reactjs.org/
http://backbonejs.org/
https://vuejs.org/

Между ними, как всегда, существует большой холивар на основании предпочтений. Я бы посоветовал попробовать каждый и решить, какой ты предпочтешь для себя лично сам.
Для управления JS проектами часто пользуются сборщиками, вроде Grunt: https://gruntjs.com/
Для этих сборщиков, затем, обычно предлагают макеты проектов на целевом фреймворке, чтобы пробовать было легче, и энтузиазм не иссякал на попытке всё засетапить.

Таким образом, в теории, сетап проекта упрощается до установки сборщика, установки пакета с темплейтами, и создания нового проекта на базе темплейта. На практике же, придётся повозиться пока всё заработает. Надеюсь смог чуть-чуть тебя сориентировать.
No. 24384    
>>24381
Grunt уже давно не в моде. Вместо него есть Gulp и Webpack. Они не совсем эквивалентны, Gulp лучше подходит для полностью кастомных задач, Webpack заточен под шаблонные, такие как сборка проектов на упомянутых выше фереймворках.
No. 24385    
158904879922.jpg-(59.92KB, 549×604, 1575801843439.jpg)
24385
>>24381
No. 24450    
Есть смысл изучать баш? Или достаточно одного скриптового языка?
No. 24452    
>>24450
Баш - немного улучшенный скриптовый язык.
No. 24457    
159074583531.jpg-(184.28KB, 960×720, 15478143153820.jpg)
24457
Есть гайды по го модулям? Ожидал примерно как в питоне, что фал с зависимостями, пополняется и обновляется. А на деле какую-то хуету вычитал, как создать модуль из своего проетка. Хочется быстро и легко управлять зависимостями. Спасибо.
No. 24461    
>>24457

>Хочется быстро и легко управлять зависимостями.
Вроде же в этом гайде всё что надо указано:
https://blog.golang.org/using-go-modules

>Ожидал примерно как в питоне, что фал с зависимостями, пополняется и обновляется.
Вроде бы так и есть, в go.mod указываются версии, если версий нет, резолвится последняя:

>The go command resolves imports by using the specific dependency module versions listed in go.mod. When it encounters an import of a package not provided by any module in go.mod, the go command automatically looks up the module containing that package and adds it to go.mod, using the latest version. (“Latest” is defined as the latest tagged stable (non-prerelease) version

Ну и в целом там рассказывается как зависимостями в проекте управлять. Или надо что-то другое?
No. 24464    
Гружу библиотеку через функцию LoadLibrary.
Библиотека пытается загрузить другую библиотеку, не может, выдаёт сообщение «Unable to locate component».
Как подавить вывод окна с сообщением, если при вызове функции исключение не ловится?
No. 24465    
>>24464
Ты про это?
https://docs.microsoft.com/en-us/windows/win32/api/libloaderapi/nf-libloaderapi-loadlibrarya

Если да, то вот это не сработает?
> To enable or disable error messages displayed by the loader during DLL loads, use the SetErrorMode function.
https://docs.microsoft.com/en-us/windows/win32/api/errhandlingapi/nf-errhandlingapi-seterrormode
No. 24466    
>>24465
Да, оно самое. Значение SEM_FAILCRITICALERRORS.
В моей версии документации, процитированной строки не оказалось.
Спасибо.
No. 24582    
Одна /dev'очка интересуется, есть ли плагин для вордпресс, с помощью которого можно легко преобразовать pdf в форму? Конечно же, pdf генерируется самим вордпрессом, а потом отдаётся клиенту для заполнения, а клиент заполнив должен загрузить его.
А если нет, то может быть существует уже написанный на ванильном php парсер специально для этого дела?
c: php
No. 24586    
>>24582
> Есть ли плагин для вордпресс, с помощью которого можно легко преобразовать pdf в форму?

Хочу уточнить, я правильно понимаю планируемое взаимодействие, или нет?

1. Ты даешь пользователю скачать PDF-форму с полями.
2. Пользователь заполняет её и сохраняет результат как новый PDF-документ
3. Пользователь закачивает этот новый PDF-документ тебе на сервер.
4. Ты вытаскиваешь из него поля и кладешь в базу.

Если да, то готовые плагины подобного типа мне неизвестны, из-за некоторого зоопарка, который творится с вытаскиванием полей форм из PDF-документов. Сейчас объясню, и заодно отвечу на вопрос:

> Может быть существует уже написанный на ванильном php парсер специально для этого дела?

Если ты хочешь вытаскивать надежно, то нужно экстрактить данные формы целенаправленно. В первую очередь, надо проследить чтобы к полям в форме были правильно привязаны имена. Ты PDF генерируешь сам, поэтому тут тебе легче.

Затем из PDF-документа надо вытащить поля в FDF-формате, единственное известное мне решение это установленная в системе утилита PDFtk Server + её PHP-обвес php-pdftk

https://www.pdflabs.com/tools/pdftk-server/
https://github.com/mikehaertl/php-pdftk

Имея их уже можно взять FDF-файлик от своего PDF вот так:
https://github.com/mikehaertl/php-pdftk#generate-fdf

И потом уже считать сам FDF, спрашивая поля по именам стандартными средствами:
https://www.php.net/manual/en/book.fdf.php

В целом, ничего не мешает оформить этот процесс в собственный плагин для Wordpress, но конечно не то же самое что просто установить и привязать к форме.
No. 24587    
>>24582
>>24586
> Может быть существует уже написанный на ванильном php парсер специально для этого дела?
Если тебе достаточно просто куснуть из своего небольшого PDF текст, а дальше уже как-то самому регексами разобраться, то возможно поможет такой ванильный парсер, основанный на регексах: https://www.tero.co.uk/scripts/extract-text-from-pdf.php
No. 24608    
159476994377.jpg-(235.09KB, 1440×1280, яблуко______.jpg)
24608
Привет! Я хочу сделать крутое приложение с подсказыванием слов как в строке гугл хрома, когда, например, вводишь "410с", а он тебе подтягивает "410chan.ru/dev", выделяя все что после "410с".

Но здесь пробелма в том, что если при использовании автокорректа слов выделить часть (пик1) и попробовать ввести букву, то все слово будет заменено на введенную букву (пик2) вместо выделенного кусочка.

Если автокоррект отключить, то все работает как нужно. Знает кто как можно пофиксить?
No. 24627    
>>24608
К сожалению варианта "как пофиксить" у меня нет, только немного мыслей вслух, но может они помогут привести к решению.

Это выглядит как баг конкретного обработчика событий сервиса спеллчекера. Т.е. из твоих скринов у тебя одна буква считается валидным вариантом автоподстановки, и вроде как вдобавок, когда она вводится просто с клавиатуры, это считается принятием варианта автоподстановки, и он меняет всё слово. Очень трудно будет разбираться с этим. Пока в голове есть только вариант страшного костыля вокруг - попробовать последить за подменой слов так же, как следит само приложение и чинить слово обратно с помощью компонента TextWatcher:
https://developer.android.com/reference/android/text/TextWatcher

Собственно, попытаться ловить состояние слова и выделенную область в событии beforeTextChanged, например когда длина замены 1 символ, и выставить флаг, потом сохранить сам этот символ из текущего состояния в onTextChanged по этому флагу, и по нему же чинить строку обратно и перевыделять нужный кусок в afterTextChanged, после чего флаг снимать. Вроде как это может помочь, но опасаюсь что будет выглядеть как кривая работа приложения. Было бы неплохо, если бы поймав событие на замену слова 1 символом можно было бы это событие просто отменить.
No. 24636    
159565152778.png-(115.32KB, 700×1000, 2018-06-28-966378.png)
24636
На Хероке чего, изменения в процедуре ухода в идлы? Что значит “Error H10: App crashed”?
No. 24638    
>>24636
Судя по тому что с таким люди сталкивались и пару лет назад, и безответно, скорее всего у них там что-то локально сошло с ума: https://stackoverflow.com/questions/47401071/heroku-considers-my-app-crashed-after-idling-it

Если кому интересно, сама процедура реакции приложения на шатдаун описывается здесь: https://devcenter.heroku.com/articles/dynos#shutdown
No. 24639    
159570827328.jpg-(766.89KB, 1080×720, Houseki_no_Kuni_full_2043411.jpg)
24639
>>24638
Или это такое ненавязчивое напоминание, что надо бы привязать к аккаунту кредитку, а значит паспорт, СНИЛС и биометрику. Сделали бы уже вход через ГосУслуги. А ещё лучше, если бы государство российское сделало систему авторизации на базе ГосУслуг для всех.
No. 24652    
159635294553.png-(41.62KB, 675×656, 2020-08-02 09_19_48-python - “ValueError_ too ma.png)
24652
Мде, в общем отписался на тракер, но он мертвый.
>Здесь можно получить помощь и консультацию по любому языку программирования, в любой сфере разработки.
Выручайте котаны. >>24651
No. 24660    
>>24652
Ну смотри, на обоих твоих скриншотах видно, что вылетает оно на
> (G, D, Gs) = pickle.load(stream, encoding='latin1')
С ошибкой, которая говорит о том, что в вычитаном стриме при распаковке оказалось больше элементов чем ожидалось, т.е. там кроме G, D, и Gs оказалось что-то еще.

Чтобы понять в чем проблема точно, надо поцепиться дебаггером, брейкнутся перед этим вызовом, и вывести себе в консольку, что там возвращается из pickle.load(stream, encoding='latin1'), после чего суть проблемы должна стать яснее.

Вариантов причины может быть много.
Например, файл вычитывается построчно, но для переноса строк использован не тот символ, что твоя ОС распознает, и оно вычитывает в массив весь файл. Или хуже, какой-то из символов переноса считывается в массив в качестве данных. Вывод длины считанного массива, и затем его контента построчно должен помочь разобраться в чем дело.

Сообщай, смог ли разобраться.
No. 24661    
>>24652
>>24660
Еще может оказаться, что массив выходит длиннее из-за разницы в кодировках, например pkl файл был сделан в мультибайтной UTF8, а вычитывается тобой в однобайтной latin1. Странно, правда, что декодер промолчал и не возмутился, но всё равно стоит проверить.
No. 24669    
>>24660
Разобрался, там просто код проблемный, наверное он под устаревшие библиотеки. Надо было с другого гита брать.
А разбирается тут кто-нибудь в машинном обучении (neural machine learning/deep fakes)? Вкатываюсь и есть вопрос к бывалым программистам (не по коду, а по фундаментальной части).
No. 24670    
>>24669
Нейросети это то в чем мне хотелось бы поковыряться, но к сожалению никак не подвернется подходящий случай. В целом советуют с нейросетями ковыряться в colab:

https://www.tutorialspoint.com/google_colab/index.htm
https://www.analyticsvidhya.com/blog/2020/03/google-colab-machine-learning-deep-learning/
https://colab.research.google.com/github/lmoroney/mlday-tokyo/blob/master/Lab1-Hello-ML-World.ipynb
No. 24671    
>>24670
>В целом советуют с нейросетями ковыряться в colab
Так и делаю, но там есть некий лимит на использование GPU. После ночи тренинга обрубают GPU на сутки. Этот лимит там типа для того, чтобы самые активные пользователи не монополизировали ресурсы и другим тоже оставалось.
Представьте себе человека, у которого верхняя челюсть стала использоваться в качестве подбородка, а нижняя улетела куда-то в епеня. Представили? Вот такое у меня творится с персонажами после tick 4, от того что в датасете голова меньше и немного выше чем в pre-trained модели. Наверное так и должно быть.
No. 24672    
Посоветуйте, как лучше/с чего начать/надо ли(в свете ограниченного владения питоном) изучение замечательного скриптового языка bash?
No. 24673    
>>24672
Скриптовыми языками для консоли владеть никогда не будет лишним, и основные их средства изучать не так-то и долго, с учетом того что в основном ты будешь пользоваться скриптовым языком как обёрткой над, или сопряженно с другими своими инструментами.

Сначала я бы порекомендовал потыкать палочкой простецкие упражнения, чтобы понять что и как это вообще, вроде таких:
https://www.tutorialspoint.com/unix/shell_scripting.htm
https://medium.com/@sankad_19852/shell-scripting-exercises-5eb7220c2252

После чего вооружиться справочником:
https://man.cx/bash
В частности, списком встроенных команд:
https://man.cx/bash#heading31
И соорудить что-то, что необходимо уже непосредственно тебе.

Если вдруг нет своего терминала, то помогут онлайн-песочницы:
https://www.tutorialspoint.com/execute_bash_online.php
https://ideone.com/ (выставь на bash)

Следует упомянуть, что люди часто путают bash (имплементация) и sh (спецификация), о чем подробно рассказано тут: https://stackoverflow.com/a/5725402
В двух словах, в твоей конкретной системе стандартным скриптовым языком может оказаться не баш, стоит это проверить.
No. 24674    
>>24673
>в твоей конкретной системе стандартным скриптовым языком может оказаться не баш
Just use
#!
, Luke.
No. 24684    
159818656967.jpg-(162.45KB, 1280×720, 1538594361822.jpg)
24684
Не искал тред веб-разработки дальше нулевой, пощу в закрепленном.

Суть такова, пишу парсер разметки. Возник вопрос, а как лучше поступать с разбиением на абзацы текста.

Такие движки как у Ычана просто пихают голый текст в родительский блок, отбивая его переносами строк <br>.
Стандарты html вроде как советуют помещать текст в блоки <p>, но тогда теряется разница в отступах между разными абзацами (если автор пытался их по смыслу разделить).
Вот все варианты, что я смог придумать, какой лучше?
1. Делать как на Ычане, и разбивать на абзацы переносами строк, так как это делал автор, даже если там на 100 строчек два слова вначале и в конце.
2. Каждый перевод строки — новый блок <p>, пустые строки игнорируются, зато будет однообразное разделение абзацев на всей борде.
3. Объеденить все абзацы в один большой блок <p>, а внутри разделять <br> так как это делал автор. Комбинация первого варианта и стандартов.
4. Каждый перенос строки — новый абзац, но если переносов строки больше чем 2, то добавлять между ними один <br> (опять таки не даст делать слишком большие переносы, но стандарты не любят когда <br> используется для форматирования блоков)
5. То же что и 4, но не использовать тег <br>, а сделать два класса. Один с маленьким отступом после абзаца, другой с большим.

Я аутист, не бейте сильно
No. 24685    
>>24684
Из существующих вариантов, я бы склонился к (3)
>Объеденить все абзацы в один большой блок <p>, а внутри разделять <br> так как это делал автор.

В вариантах (4) и (5) вместо <br> и двух классов я бы предложил сделать, что один отступ генерирует <p>, а два и более отступов подряд дают уже <section>, т.е. контент отделенный по смыслу. И для этого <section> уже определить в стилях отступ побольше. Получается и корректно и элегантно в вёрстке.

Справка по section:
https://www.w3schools.com/tags/tag_section.asp

Есть еше вариант для пиратов:
6. Помещать весь текст в тег <pre>, который как раз предназначен для преформатированного текста. Отступов внутри будет ровно столько, сколько задумал автор. Но придётся поменять стандартный стиль тега, чтобы текст вписывалися в остальной контент, в первую очередь сменить шрифт с моноширного на обычный.

Cправка по pre:
https://www.w3schools.com/tags/tag_pre.asp
No. 24687    
159828916319.png-(101.09KB, 1392×920, Clipboard01.png)
24687
>>24684
По-моему, тебе надо для начала определить структуру сообщения, соответственно вывести признаки начала и конца отдельных элементов.

Исторически разбиение на абзацы осуществляется тремя путями:
— типографский отступ с красной строки;
— для ранних редакторов с ручными выравниванием, форматированием и переносом текста абзацы разделяются пустой строкой (это характерно для всего раннего IT, посмотрите для примера стандарты RFC);
— для модерновых, вроде Word, которые выравнивание, форматирование и переносы делают сами, абзацы разделяются новой строкой, отсюда пустая строка для них тоже абзац.

Очевидно, что угадать, что имел в виду каждый автор сообщения, аналитически невозможно без введения жёстких формальных ограничений, следовать которыми никто не будет. С другой стороны, от парсера разметки никто и не требует семантического анализа сообщения. Отсюда разумным будет определить структуру сообщения как последовательность блоков, состоящих из последовательностей строк; для простоты можно ввести умолчание, что блоки текстовые, если автором не указано иначе.

Вопрос, что делать со множеством подряд идущих пустых строк в каждом конкретном блоке, остаётся на усмотрение автора разметки — можно оставить как есть, можно схлопнуть до приемлимого числа.

Ну а структуру форматированного текста в рендере задавать проще всего div-ами, ты же не под HTML 3 пишешь. Или у тебя там требования, чтобы на пятом Осле отображалось?

>>24685
Твой <section> покорёжит структуру моего поста. Это имело бы смысл, если бы требовалось отделять друг от друга ответы на разные сообщения, но опять же, это жесткое формальное требование.
No. 24689    
>>24685
По логике <section> это больше про каталог, где выводится только заголовок и предпросмотр ОП-поста. Потому как для этого тег вроде и создавался.

> Помещать весь текст в тег <pre>
Плохая идея, у меня в нём код/поэзия будет лежать.

>>24687
Другой вариант который я сейчас рассматриваю: один перенос приклеивает две строки к одному тегу <p>, два и более — создают новый абзац. Тут и вроде как стандарты соблюдены, и лишние переносы переварены, и текст красивее отделяется.
> структуру форматированного текста в рендере задавать проще всего div-ами
Не совсем понимаю зачем нужно забивать гвозди <div>ами, если для этого есть готовые теги, которые по смыслу больше подходят.
> Или у тебя там требования, чтобы на пятом Осле отображалось?
Совсем нет, скорее наоборот. Пытаюсь как можно больше черпнуть из новых стандартов. Даже от табличной вёрстки отказался.
No. 24690    
159830955650.png-(93.03KB, 1390×916, Clipboard01.png)
24690
>>24689
Oh, my...

У тебя в исходном тексте сообщения нет информации о том,
где заканчивается один абзац и начинается другой. Таким
образом ты сейчас пытаешься свелосипедить из парсера даже
не семантический анализатор, а угадыватель того, что имел
в виду автор, когда писал сообщение. Автор же, как правило,
набирает сообщение исходя из предположения, что оно будет
отображаться примерно так же, как у него в редакторе,
и ничего в виду не имеет.

Отсюда предлагаю оставить семантику на совести автора и
просто считать текстовым блоком наибольшую подпоследователь-
ность строк в сообщении, для которой автор явно не указал
принадлежность к иному блоку. Соответственно, отдельные
строки внутри блока описывать или <br>-ами, или <div>-ами.

>если для этого есть готовые теги, которые по смыслу больше подходят.
Специализированные теги вводятся для человека, который будет их набирать вместе с текстом, отсюда вопросы семантики отпадают сами собой: если человек засунул какой-то текст в <p>, значит это абзац. Это не отменяет того, что большинство человеков лепят эти тэги, как Бог на душу положит, отчего семантический анализ по ним затруднителен, если вообще возможен. Тем не менее, стандарт и браузеры всегда этому попустительствовали чтобы выжить (тот же XHTML невзлюбили из-за его строгости).
Для разметки, создаваемой в результате машинной обработки, придумали универсальный тэг <div>, из которого можно вывести любой специализированный тэг при помощи таблицы стилей. Это вместе с flex-ом позволяет радикально менять вид сайта одними лишь таблицами стилей, не трогая сам HTML, который, как правило, генерируется из кучи шаблонов. Семантика здесь так же уезжает в таблицы стилей и остаётся на совести разработчиков конкретного сайта.
Удалить сообщение []
Пароль  
[Mod]