Как правильно делать большие сайты? обязательно ли писать каждую страницу по отдельности?

Собственно сабж. Нет ни макета, ни набросков никаких, ничего, только идея в голове о создании сайта про свое творчество (стихи и рисунки); просто тупо приспрашиваюсь и создаю дальнейшую почву. Как создаются большие многостраничные сайты - всякие там новостные сайты, информационные порталы и т.д.? неужели каждую страницу создают вручную? ну в новостях, допустим, там базы данных типа MySQL или еще как-то, а как мне опираясь на чистый фронтенд сделать многостраничник? изучать бэкенд пока что в мои планы не входит, дай Бог хотя бы фронтенд до конца освоить)) это, выходит, нужно для каждого стихотворения отдельный хтмл-файл создавать, или как? можно ли писать как бы "страницу в странице" или "документ в документе"?

P.S. Если все тексты сделать на одну страницу - то получится помойка, а я этого не хочу, поэтому и хочу сделать многостраничник.

Либо, может есть какие-нибудь фичи в хтмл, позволяющие оформлять текст по типу превью, как для картинок?
  • Вопрос задан
  • 464 просмотра
Решения вопроса 1
Вопрос в том, насколько вы задолбались копипастить и как часто вы меняете дизайн и структуру вашего сайта. Если просто делать всё индивидуальными страничками, то поменять дизайн, даже если изменения совсем небольшие, будет болью в одном месте. Поэтому, что-то бэкендо-подобное вам надо будет изучать. Это вам не повредит, поверьте. React сейчас полным ходом несётся в сторону рендеринга на сервере, поэтому вам придётся это учить.

Итого, есть три пути:

1. Беспроигрышный. Это Wordpress. Берете, делаете, все счастливы. Туториалов миллиарды, плагинов ещё больше, всё будет зашибись. Проблема одна: если надо будет тонко настраивать, то надо будет хоть немного изучить PHP.

2. Когда надо быстро что-то добавить, даже с мобилы или с компьютера девушки, и чтобы оно сразу отобразилось на сайте, то либо смотрим в сторону п.1, либо если не хотите изучать PHP, выбираете себе CMS на базе Javascript. Есть даже так называемые headless cms, которые генерируют вам только JSON, а вы у себя на фронтенде сами его обрабатываете и рисуете всё на основе полученных данных.

Это самый сложный вариант из трёх

Вот список некоторых из таких CMS
https://jamstack.org/headless-cms/

3. Если вам не нужна молниеносная публикация новых материалов, и вы можете потерпеть до доступа к рабочему ноуту, то можно выбрать генератор статических сайтов.

Сразу посоветую вам Astro https://astro.build/

Прелесть Astro в том, что новый контент вы можете писать в Markdown. Это такой простейший язык разметки текстовых документов. Вы сможете его выучить за час, не больше. Там всё настолько интуитивно и просто, что больше времени вам не понадобится. При этом формат мощный, убедиться в этом можно, посмотрев почти любой репозиторий на Гитхабе. Практически каждый из них имеет файл README.MD, где как раз всё написано в Markdown (MD)

В Astro вам надо будет создать несколько шаблонов astro (html). Шаблон хедера, футера, сайдбара, основного контента, разных типов страниц (статья, список статей, и т.д.). И в этих шаблонах будет указано, где нужно выводить сгенерированный из Markdown контент. И далее новые странички вы будете добавлять путём добавления в соответствующие папки файликов с Markdown разметкой. Это очень просто, быстро и не напряжно.

После добавления этих файликов вы запустите генерацию сайта, и Astro сгенерирует вам кучу готовых html страничек, которые вы просто зальёте на сервак. Профит!

Берите youtube, набирайте там "Astro markdown", и изучайте туториалы. Процесс всего этого чрезвычайно прост, вы много времени не потеряете, зато сэкономите себе массу времени на создании новых материалов на сайте

Можете посмотреть и другие генераторы статических сайтов тут https://jamstack.org/generators/
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
@tgarl
Забавно, вопрос звучит об одном, вам дают ответ о другом и вроде как ответ получен.

Но в целом ответ на ваши вопросы будет таким(вдруг кто-то будет искать и натолкнется):
многостраничники на чистом html не делают, в первую очередь их поддерживать проблематично(хотя насколько я знаю есть локальные программы в которых можно хранить наполнение и производить генерацию готовых html-файлов, а их в свою очередь уже как сайт использовать), к тому же в зависимости от направленности сайта некоторые элементы должны быть персонализированы(например цены->цены со скидкой по какому-то условию, в html нет возможности это регулировать), поэтому все используют шаблоны(верстка элементов/страниц), базы данных и серверные языки (бек) для их объединения в готовый результат. Базы данных тоже штука специфическая - что считать базой данной, есть системы управления сайтом для которых БД это просто текстовые файлы .txt/.csv/.xml к которым обращаются скипты считывают их, обрабатывают и результат вставляют в тот или иной блок шаблона.

Так что если вы хотите полностью сами все делать, то изучать и серверную часть вам нужно, хотя бы на минимальном уровне. Если же нет, то как и вам уже посоветовали используйте готовые движки сайтов и готовые к ним шаблоны/модули.
Или занимайтесь клонированием страниц, но это неблагодарное занятие если у вас их перевалит за десяток(до этого как по мне еще терпимо).

По фишкам: изучайте javascript, с его помощью некоторые вещи можно делать для создания эффекта динамики, и чтения данных из файлов
Ответ написан
Комментировать
MANAB
@MANAB
Разрабатываю на C#: Web, Desktop, Gamedev
Раз страницы похожи, толко контент отличается, то по факту нужна шаблонная страница, в которой на бэке в нужно место и подставляется контент. По шаблонов несколько для разных типов страниц.
Ну или api возвращает контент по номеру страницы/id а фронт подставляет, но тогда spa получается.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы