Webjournal, описание...
jazz4web
Webjournal в контексте этого описания — это web-приложение для сайта текстовых блогов. Развернув его на web-сервер и связав IP-адрес этого сервера с каким-то конкретным доменным именем, вы получите на этом доменном имени сайт для ведения текстовых блогов, аналогичный этому сайту. Webjournal распространяется открытым исходным кодом под свободной лицензией и доступен всем желающим в моём профиле на github.com. В этом описании я дам некоторые подробности и проясню некоторые технические детали относительно использования и окружения.
Лицензия
Webjournal распространяется открытым исходным кодом под свободной лицензией GNU GPLv3. В своей основе приложение использует множество сторонних библиотек как в серверной, так и в клиентской части, полученных из открытых источников. Приложение предназначено главным образом для частных, некоммерческих сайтов, авторы которых хотят поделиться с целевой аудиторией своими мыслями.
Я никак дополнительно не ограничиваю использование webjournal для коммерческих сайтов, но лицензионную чистоту кода при этом авторам таких сайтов придётся проверить самостоятельно без каких-либо гарантий с моей стороны.
Язык интерфейса
Изначально webjournal предназначался для моих личных целей, поэтому в интерфейсе приложения используется русский язык, при этом авторские публикации на производном сайте могут быть, наверно, на любом языке, в базе данных используется кодовая страница UTF-8. Я пока не изучал возможности реализации выбора языка интерфейса приложения программными средствами, поэтому, если кому-то нужен интерфейс на другом языке, на текущий момент есть только один путь: Fork it and make it better...
Backend
Webjournal разработан с использованием различных диалектов. Процентное соотношение по данным github.com выглядит следующим образом:

В серверной части приложения работает асинхронный код Python3. Приложение разрабатывалось и тестировалось на текущей тестовой ветке , с его текущей версией интерпретатора Python3. Перечень сторонних библиотек, необходимых для работы webjournal, можно обнаружить в файле requirements.txt.
Кроме этого, в серверной части webjournal используются две базы данных: PostgreSQL и Redis.
Frontend
В своей клиентской части webjournal использует сторонние библиотеки, версии исходного кода которых хранятся в архиве vendor.tar.gz в каталоге deployment. В серверной части приложения для минимизации кода сценариев JavaScript и таблиц стилей CSS используются программные средства, достаточно должным образом настроить окружение, об этом я расскажу чуть позже.
Возможности интерфейса
Пользовательский интерфейс webjournal предлагает посетителям производного сайта следующие функциональные возможности:
-
главное меню с ключевыми ссылками на каждой странице сайта;
-
авторизация на сайте с вводом логина и пароля;
-
самостоятельная регистрация аккаунтов гостями сайта;
-
профиль пользователя и самостоятельное обслуживание аккаунта (смена пароля, смена e-mail, смена аватара, редактирование описания блога);
-
дифференциация авторизованных пользователей по группам с соответствующими функциональными возможностями для каждой группы;
-
инструменты администрирования для владельца сайта;
-
сервис коротких ссылок;
-
сервис хранения изображений;
-
сервис черновиков;
-
сервис объявлений в блогах;
-
разграничение доступа к топикам в блогах (публичный, сообществу, для друзей);
-
древовидные комментарии в топиках блогов;
-
метки по ключевым словам в топиках блогов;
-
лайки/дизлайки, подписки, друзья;
-
сервис приватных сообщений;
-
обход публичных топиков в блогах роботами поисковых систем.
Более подробно о всех функциональных возможностях и пользовательских инструментах интерфейса этого web-приложения я расскажу в последующих выпусках этого блога, следите за обновлением...
Возможности форматирования текста
Webjournal предназначен для ведения текстовых блогов. Создание топика в блоге начинается с черновика, при редактировании которого автор последовательно вводит текст абзац за абзацем. При этом интерфейс приложения даёт возможность редактировать все абзацы в черновике, включая уже существующие, при условии, что автор черновика соблюдает одно обязательное правило.
Форматировать текст черновика можно двумя способами:
-
Простой, при помощи метасимволов Markdown;
-
Сложный, при помощи html-тегов.
Кроме текста топики блогов, приватные сообщения, объявления и комментарии могут содержать картинки, ссылки, листинги с кодом и встроенный контент с других сайтов. Но об этом я планирую рассказать в одном из следующих выпусков, следите за обновлением блога...
Кастомизация и дизайн
В текущем состоянии webjournal не предоставляет никаких возможностей кастомизации развёрнутого с его помощью сайта. Изменить можно только название и описание сайта. Логотип в главном меню, иконку для избранного, дефолтный аватар, картинки 404 и 403 тоже можно изменить, подменив их собственными вариантами в каталоге static/images на сервере.
Тем не менее, дизайн производного сайта можно изменить, но для этого придётся форкнуть код в отдельный проект и поработать с ним силами frontend-программиста, дизайнера и верстальщика. Я всячески приветствую любую инициативу в этом направлении, но помочь могу только консультацией.
Документация
Пока я только планирую описать интерфейс webjournal в рамках этого блога. Вероятно, это займёт некоторое время. Я принимаю любые вопросы об этом проекте и охотно отвечу на них в этом блоге или приватным сообщением на этом сайте либо электронной почтой. Следует иметь ввиду, что web-разработка для меня является таким странным хобби, по профессии я даже не программист, поэтому абсолютную профессиональную грамотность моих ответов не обещаю.
Вопросы, касающиеся развёртывания приложения на сервер, тоже приветствуются, но этот аспект я планирую детально описать в ближайших выпусках этого блога, начну с описания процесса запуска отладочного сервера. Следите за обновлением блога...