LINUX.ORG.RU

WYSIWYG редактор из Zim

 , ,


0

1

В редакторе-аутлайнере Zim, написанном на Python, используется какой-то компонент собственно для WYSIWYG редактирования. Python я не знаю, поэтому вопрос: что это за компонент? На чем написан? Есть ли доступные исходники? Существует ли он для других языков (в особенности для C/C++/Qt)? Судя по зависимостям там что-то из GTK (который я тоже толком не знаю, но это уже лучше т.к. написано на си и я даже с ним работал немного). Компонент кажется лучший в своем классе, работает идеально, я бы его использовал в своем софте, но нужны некоторые доработки.

Альтернатива для WYSIWYG редактирования обычно одна - компонент хромовский браузер в режиме editable. Может конечно и здесь тоже он используется, но тогда уж очень хорошо сделана обертка.

А что из всяких Calligra Office и Kile?

Zim не уверен, но там тоже может быть используется WebKit, потому как его весьма часто для форматированного текста используют в GTK.

anonymous ()

Достаточно посмотреть на mainwindow.py

from gi.repository import GObject
from gi.repository import Gtk
from gi.repository import Gdk

зы сервак запускается тоже питоновский и вообще как редактор для яп он совершенно не годится. Этож вики

jtad ()
Последнее исправление: jtad (всего исправлений: 1)
Ответ на: комментарий от jtad

как редактор кода он мне и не нужен (хотя идея интересная:)) мне нужен именно редактор с возможностью семантической разметки текста с такими требованиями 0. Ориентированность на C/C++ (то что на js много подобного я знаю)

  1. WYSIWYG
  2. возможность задания некоторого количества визуальных стилей для элементов текста, абзаца, таблицы, возможность вставки рисунков
  3. полный запрет(!) на любое «форматирование» в обход разрешенных стилей разметки! Включая запрет на вставку из буфера внешнего отформатированного текста, но с возможностью копирования и вставки размеченного текста в рамках редактора
  4. доступ к DOM; загрузку и сохранение из каких-то форматов типа MD/RST/FB2/… я сам сделаю

Вариантов 2 - или брать компонент QWebEngine и обрезать все что можно, прикрывая все возможности вставить туда что-то в обход жестко заданной системы стилей или искать совершенно альтернативную реализацию

Я смотрел много аутлайнеров, везде обычно делается на chrome, и везде можно вставлять все что попало. При этом там еще какие-то особенности в самом редакторе, которые мне не очень нравятся. А вот в Zim все работает просто идеально, именно так как надо.

NeoCode ()
Ответ на: комментарий от jtad

Кстати о том что это GTK даже в википедии написано. Но что конкретно в GTK? Что за компонент? Есть какой-то минимальный пример на C/C++ с этим компонентом, или просто проект на C/C++ где он используется?

NeoCode ()

Это какой-то кастомный текстовый редактор на основе PyGObject (биндинг к GNOME-библиотекам, типа GTK+).

Исходники редактора находятся тут:

https://github.com/zim-desktop-wiki/zim-desktop-wiki/blob/7d7d1364dc74c892bc81ef1399957406d1be4c61/zim/gui/pageview.py#L4

При желании их наверняка можно выдрать в свой проект, только не стоит забывать, что там GPLv2.

EXL ★★★★★ ()
Ответ на: комментарий от EXL

Понятно, он самописный - это объясняет другое поведение по сравнению с хромом в некоторых местах. Выдрать может и можно… Но это весьма трудоемкий процесс. В особенности перевод с питона на С/С++. GPLv2 это нормально)

NeoCode ()