revolter / idealist-bundle
Бандл для проектов как компонент Symfony. Создает визуальный скелет для текстов. Основа распространения текстов идеи. Совместное редактирование и публикация текстов идей независимых авторов.
Installs: 20
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 2
Forks: 0
Open Issues: 0
Type:symfony-bundle
Requires
- php: >=5.5.9
- doctrine/doctrine-bundle: ^1.6
- doctrine/doctrine-cache-bundle: ^1.2
- doctrine/orm: ^2.5
- erusev/parsedown: ^1.6
- incenteev/composer-parameter-handler: ^2.0
- sensio/distribution-bundle: ^5.0
- sensio/framework-extra-bundle: ^3.0.2
- symfony/monolog-bundle: ^3.0
- symfony/polyfill-apcu: ^1.0
- symfony/swiftmailer-bundle: ^2.3
- symfony/symfony: ~3.2
This package is not auto-updated.
Last update: 2024-10-27 06:18:16 UTC
README
Технически это бандл для Симфони который конвертирует тексты размеченные MarkDown в более простой и удобный в восприятии и использовании вид. Основная цель - упростить по максимуму путь идеи от мысли к печати на бумаге и рапространению в обществе.
В целом, этого бандла достаточно для развертывания полноценной точки доступа к текстам на любом проекте Symfony или Laravel - любом другом проекте использующем компоненты Симфони. Работа продолжается. Для подключения к проекту, добавьте зависимость через composer.json и импортируйте или настройте роуты для текстов.
Установка и настройка
composer require "revolter/idealist-bundle:dev-master"
или
composer require revolter/idealist-bundle
Затем добавьте инициализацию бандла в app/AppKernel.php
new Revolter\IdealistBundle\RevolterIdealistBundle(),
После установки код бандла будет в одноименной папке вендоров вашего проекта. Обычно это папка vendor
в корне. И весь путь тогда vendor/revolter/idealist-bundle
. Там будет два файла, которые необходимо будет скопировать отдельно.
- base.html.twig - основной шаблон страницы проекта. Ссылается на файл счетчиков в коде
- counters.html.twig - файл для счетчиков статистики
Вариантов три. Рекоммендуется сделать ссылку на base.html.twig
и скопировать, а затем отредактировать counters.html.twig
добавив в него свои счетчики статистики.
- Если счетчики не нужны, делайте ссылки на оба файла
- Если нужен свой дизайн, копируйте оба
Для примера, если ваш проект на Symfony вам нужно скопировать оба файла в папку app/Resources/views
. Таким образом вы сможете отредактировать стандартный дизайн проекта как посчитаете нужным. И добавить свои счетчики статистики, да всё что угодно. Бандл отвечает только за генерацию текста/контента и генерирование текста для печати, других форматов. При копировании/изменении base.html.twig
усложнится возможность обновления.
Настройка требует указания стандартных параметров для бандла, например текст по умолчанию(index_idea), который будет открыт при обращении к главной странице. Параметры указываются в parameters.yml вашего проекта.
index_file: README # Имя файла текста
index_idea: revolter-social-project # Текст по умолчанию
index_name: info # Ссылка по умолчанию
path.web: '%kernel.root_dir%/../web' # Папка веб
path.idea: '' # Папка идеи
path.texts: '%path.web%/texts' # Папка текстов
Стили, картинки, скрипты
Так как бандл подразумевает изменение дизайна, стили и фоновые картинки, как и шаблоны их использующие, не устанавливаются автоматически. Оформление находится в папке Resources/public
бандла.
php app/console assets:install --symlink
- эта команда автоматически копирует или делает ссылки на файлы ресурсов. Опция--symlink
делает простую ссылку на ресурсы вместо копирования файлов. Таким образом, можно быть спокойным при обновлении бандла, так как в иных случаях, вам необходимо обновлять ранее скопированные файлы. При установке ссылки, копировать файлы заново после обновления нет необходимости.- В шаблонах путь к
css
файлам генерируется автоматически исходя из настроек assets вашего проекта. Вы можете настроить эту часть конфигурации проекта, либо изменить способ доступа к стилям, либо захардкодить пути стилей в шаблонах.
- В шаблонах путь к
- Вы можете скопировать ее содержимое руками в веб корень проекта, обычно это папка
web
. Таким образом у вас добавится как минимум папкаweb/static
со стилями и фонами для шаблонов. Вы сможете редактировать стили, и вам нужно будет поправить в шаблоне ссылку наcss
файл, но будет уже проблематично обновляться потом.
Добавление текстов
Тексты подключаются из самостоятельных репозиториев - каждая идея в своем репозитории, свой проект. Бандл соотносит название текста и роута. Тексты необходимо расположить в папке texts
корневой публичной папке доступной из веб. В проектах симфони это папка web
вашего проекта.
Есть как минимум три способа, как подключить тексты.
- Самое простое, скопировать файлы в нужные папки. Один минус, обновление невозможно автоматизировать, и придется обновлять вручную каждый раз. Это будет основной причиной потери актуальности текстов на вашем сайте.
- Командой
git clone <repo> <web/texts/name-repo>
клонировать репозиторий<repo>
в нужное место<web/texts/name-repo>
где web/texts папка для текстов, а name-repo это название текста/репозитория. Напримерgit clone https://github.com/revolter-idealist/distributed-community web/texts/distributed-community
для текстов о распределенных Сообществах.- Для обновления нужно будет перейти в папку с текстом и выполнить команду
git pull
- новый текст загрузится/обновится автоматически. - Плюс в том, что вы также сможете работать с текстом самостоятельно прямо в этой папке, и отправлять изменения на сервер.
- Минус - нужно выполнять команды для каждого текста. Верояно будет конфликт, если ваш основной проект также под контролем версий.
- Для обновления нужно будет перейти в папку с текстом и выполнить команду
- Добавить текст как подмодуль к вашему проекту
git submodule add <repo> <web/texts/name-repo>
. Команда почти идентична предыдущей, но дает несколько преимуществ.- Можно обновить все тексты одной командой
git submodule update
- Без конфликтов с корневым репозиторием проекта. Подмодули дополняют его.
- Можно обновить все тексты одной командой
Лучше всего добавлять тексты именно как подмодули. Тогда легко работать с текстом из его папки прямо в вашем проекте. Если вы только загружаете тексты, легко будет обновить их все до актуальных состояний одной командой. После публикации своего проекта в таком случае, его легко можно склонировать и развернуть всего одной командой весте с подмодулями добавленных ранее текстов. Это требует знание трех команд гита, но более простого способа я еще не нашел.
FAQ - Вопрос/Ответ
Почему папка текстов в публичном доступе? - Сама публичность будет зависеть от настроек вашего сервера/хостинга. Желательно всёже сделать папку текстов доступной. Тогда можно будет
- Получить доступ к исходникам/текстам напрямую
- Можно будет скопировать/склонировать репозитории текстов
Не легко как-то с подмодулями - Подмодули дают преимущество при создании цельного проекта текстов и его последующего клонирования в распределенной системе одной командой. Другого способа добиться этой цели мне пока не известно.