Грузится

Настройки


Tools

Сайт монастыря

Дизайн мой. Реализация на Vue. Есть интересные кастомные решения.

Бек на WordPress (заказчик привык к этой админке) отдаёт контент по GraphQL. При этом vue router понимает где страница, где категория, какие есть пункты меню и тп, что позволяет заказчику полностью управлять наполнением и структурой сайта из админки.

Расписание

Для сохранения данных расписания используется advanced custom fields, но при этом для удобства заказчика добавлен кастомный раздел управления расписанием:

Эта кнопка появляется, если залогиниться под учетной записью редактора контента

Календарь

Реализован кастомным компонентом vue, где написан скрипт, который вычисляет переходящие события с плавающей датой (календарь вечный).

Вычисление пасхи
calculateEaster(year) {
  // 1. Вычисление "золотого числа" (фаза Луны)
  const a =
    (CONSTANTS.GOLDEN_NUMBER_CYCLE * (year % CONSTANTS.GOLDEN_NUMBER_CYCLE) +
      CONSTANTS.SOLAR_CORRECTION) %
    CONSTANTS.LUNAR_CYCLE

  // 2. Определение дня недели
  const b =
    (2 * (year % 4) + 4 * (year % CONSTANTS.DAYS_IN_WEEK) + 6 * a + 6) % CONSTANTS.DAYS_IN_WEEK

  // 3. Расчёт даты Пасхи по юлианскому календарю
  let day, month
  if (a + b > 10) {
    day = a + b - CONSTANTS.APRIL_OFFSET
    month = 3 // Апрель (месяцы в JS: 0–11)
  } else {
    day = CONSTANTS.MARCH_OFFSET + a + b
    month = 2 // Март
  }

  // 4. Конвертация в григорианский календарь
  const easterDate = new Date(year, month, day)
  const gregorianShift = year >= 2100 ? 14 : 13 // Разница календарей
  easterDate.setDate(easterDate.getDate() + gregorianShift)
  return easterDate
},

Полный код можно посмотреть на gitlab в src/utils/otrhodoxEvents.js

Лайтбокс для изображений

Посетить сайт

Исходный код на gitlab