Webjournal, описание...

jazz4web

Опубликован:
2026-09-18T08:13:30.515216+00:00
Отредактирован:
2026-09-18T08:13:30.515216+00:00
Статус:
публичный
0
0
0

Webjournal в контексте этого описания — это web-приложение для сайта текстовых блогов. Развернув его на web-сервер и связав IP-адрес этого сервера с каким-то конкретным доменным именем, вы получите на этом доменном имени сайт для ведения текстовых блогов, аналогичный этому сайту. Webjournal распространяется открытым исходным кодом под свободной лицензией и доступен всем желающим в моём профиле на github.com. В этом описании я дам некоторые подробности и проясню некоторые технические детали относительно использования и окружения.

Лицензия

Webjournal распространяется открытым исходным кодом под свободной лицензией GNU GPLv3. В своей основе приложение использует множество сторонних библиотек как в серверной, так и в клиентской части, полученных из открытых источников. Приложение предназначено главным образом для частных, некоммерческих сайтов, авторы которых хотят поделиться с целевой аудиторией своими мыслями.

Я никак дополнительно не ограничиваю использование webjournal для коммерческих сайтов, но лицензионную чистоту кода при этом авторам таких сайтов придётся проверить самостоятельно без каких-либо гарантий с моей стороны.

Язык интерфейса

Изначально webjournal предназначался для моих личных целей, поэтому в интерфейсе приложения используется русский язык, при этом авторские публикации на производном сайте могут быть, наверно, на любом языке, в базе данных используется кодовая страница UTF-8. Я пока не изучал возможности реализации выбора языка интерфейса приложения программными средствами, поэтому, если кому-то нужен интерфейс на другом языке, на текущий момент есть только один путь: Fork it and make it better...

Backend

Webjournal разработан с использованием различных диалектов. Процентное соотношение по данным github.com выглядит следующим образом:


oJ34eLV2Kx.png


В серверной части приложения работает асинхронный код Python3. Приложение разрабатывалось и тестировалось на текущей тестовой ветке Debian — forky/sid, с его текущей версией интерпретатора Python3. Перечень сторонних библиотек, необходимых для работы webjournal, можно обнаружить в файле requirements.txt.

Кроме этого, в серверной части webjournal используются две базы данных: PostgreSQL и Redis.

Frontend

В своей клиентской части webjournal использует сторонние библиотеки, версии исходного кода которых хранятся в архиве vendor.tar.gz в каталоге deployment. В серверной части приложения для минимизации кода сценариев JavaScript и таблиц стилей CSS используются программные средства, достаточно должным образом настроить окружение, об этом я расскажу чуть позже.

Возможности интерфейса

Пользовательский интерфейс webjournal предлагает посетителям производного сайта следующие функциональные возможности:

  • главное меню с ключевыми ссылками на каждой странице сайта;

  • авторизация на сайте с вводом логина и пароля;

  • самостоятельная регистрация аккаунтов гостями сайта;

  • профиль пользователя и самостоятельное обслуживание аккаунта (смена пароля, смена e-mail, смена аватара, редактирование описания блога);

  • дифференциация авторизованных пользователей по группам с соответствующими функциональными возможностями для каждой группы;

  • инструменты администрирования для владельца сайта;

  • сервис коротких ссылок;

  • сервис хранения изображений;

  • сервис черновиков;

  • сервис объявлений в блогах;

  • разграничение доступа к топикам в блогах (публичный, сообществу, для друзей);

  • древовидные комментарии в топиках блогов;

  • метки по ключевым словам в топиках блогов;

  • лайки/дизлайки, подписки, друзья;

  • сервис приватных сообщений;

  • обход публичных топиков в блогах роботами поисковых систем.

Более подробно о всех функциональных возможностях и пользовательских инструментах интерфейса этого web-приложения я расскажу в последующих выпусках этого блога, следите за обновлением...

Возможности форматирования текста

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

Форматировать текст черновика можно двумя способами:

  1. Простой, при помощи метасимволов Markdown;

  2. Сложный, при помощи html-тегов.

Кроме текста топики блогов, приватные сообщения, объявления и комментарии могут содержать картинки, ссылки, листинги с кодом и встроенный контент с других сайтов. Но об этом я планирую рассказать в одном из следующих выпусков, следите за обновлением блога...

Кастомизация и дизайн

В текущем состоянии webjournal не предоставляет никаких возможностей кастомизации развёрнутого с его помощью сайта. Изменить можно только название и описание сайта. Логотип в главном меню, иконку для избранного, дефолтный аватар, картинки 404 и 403 тоже можно изменить, подменив их собственными вариантами в каталоге static/images на сервере.

Тем не менее, дизайн производного сайта можно изменить, но для этого придётся форкнуть код в отдельный проект и поработать с ним силами frontend-программиста, дизайнера и верстальщика. Я всячески приветствую любую инициативу в этом направлении, но помочь могу только консультацией.

Документация

Пока я только планирую описать интерфейс webjournal в рамках этого блога. Вероятно, это займёт некоторое время. Я принимаю любые вопросы об этом проекте и охотно отвечу на них в этом блоге или приватным сообщением на этом сайте либо электронной почтой. Следует иметь ввиду, что web-разработка для меня является таким странным хобби, по профессии я даже не программист, поэтому абсолютную профессиональную грамотность моих ответов не обещаю.

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

Метки: