Ru-Board.club
← Вернуться в раздел «Программы»

» OutWiker

Автор: unreal666
Дата сообщения: 28.04.2014 14:59
Jenyay
забыл вопросительные знаки поставить. исправил.

Добавлено:
кстати. Всякие (). а не (? сильно влияют на скорость в файлах типа tokenlist.py при

Код: def getToken (self):
regex = "^(?P<level>["

for param in self.allListsParams:
regex += param.symbol

regex += r"]+) *(?P<item>(\\\n|.)*?)$\n{0,2}"

item = Regex (regex, re.MULTILINE).setParseAction (noConvert).leaveWhitespace()

fullList = OneOrMore (item).setParseAction (self.__convertList)("list")

return fullList
Автор: Jenyay
Дата сообщения: 28.04.2014 15:23
Забрал. Добавил еще проверку от лишних цифр после точки.


Цитата:
кстати. Всякие (). а не (? сильно влияют на скорость в файлах типа tokenlist.py при


Хорошо, учту.


Цитата:
А то думаю туда еще добавить обработку (:имя_плагина)dsfd(:имя_плагинаend), чтобы он сжирал код, пока не встретится закрывающий тег плагина.


С идеологический точки зрения не очень хорошо, что в коде токена для списков появляется упоминание конструкций из других токенов. В общем, надо прикинуть, что из этого может получиться.
Автор: unreal666
Дата сообщения: 28.04.2014 15:59

Код: Regex (ur"((?# Начало разбора IP )(?<!\.)(?:25[0-5]|2[0-4]\d|1\d\d|0?[1-9]\d|0{,2}[1-9])(?:\.(?:25[0-5]|2[0-4]\d|[01]?\d?\d)){3}(?!\.?[0-9])(?!\w)(?# Конец разбора IP )|(((news|telnet|nttp|file|http|ftp|https)://)|(www|ftp)\.)[-\w0-9\.]+[-\w0-9]+)(:[0-9]*)?(/([-\w0-9_,\$\.\+\!\*\(\):@|&=\?/~\#\%]*[-\w0-9_\$\+\!\*\(\):@|&=\?/~\#\%])?)?", re.IGNORECASE | re.UNICODE)("url")
Автор: Jenyay
Дата сообщения: 28.04.2014 16:10
Это заодно защита от 192.168.1.100000

Добавлено:
А хотя да.
Автор: unreal666
Дата сообщения: 28.04.2014 16:23
ну так (?!\w) как раз и расширенная замена (?![0-9])
Автор: unreal666
Дата сообщения: 28.04.2014 23:26
хотя обработка команд-плагинов в списках/таблицах не нужна. Я оказывается ради эксперимента делал команду-обертку для защиты от вики. Это просто пустая команда (:dummy:) с параметрами head (вставка в <head>), wikiparse и delslashes (удаление конечных обратных слешей.). С помощью них м можно вставлять разное в списки/таблицы.
Автор: unreal666
Дата сообщения: 29.04.2014 08:04
Насчет иконок плагинов. Может перед построением тулбара плагинов эти иконки сначала сортировать, чтобы они всегда на одном месте были? А то привыкнешь к одному месту, перезапустишь прогу, а нужная иконка-плагин уже на другом месте.
Автор: Jenyay
Дата сообщения: 29.04.2014 08:13

Цитата:
Насчет иконок плагинов. Может перед построением тулбара плагинов эти иконки сначала сортировать, чтобы они всегда на одном месте были? А то привыкнешь к одному месту, перезапустишь прогу, а нужная иконка-плагин уже на другом месте.


Тут тогда надо упорядочить очередь загрузки плагинов.
Автор: Jenyay
Дата сообщения: 29.04.2014 22:19
Продолжаю писать документацию по внутреннему устройству OutWiker. На этот раз выложил статью про то, как OutWiker хранит заметки - http://jenyay.net/OutWikerDoc/PageFormat
Автор: Jenyay
Дата сообщения: 07.05.2014 21:47
Выложил новую нестабильную версию (1.8.0.724). В этой версии улучшено распознавание IP-адресов на викистраницах и исправлены некоторые ошибки.

Скачать нестабильную версию можно по ссылке - http://jenyay.net/Outwiker/Unstable
Автор: unreal666
Дата сообщения: 08.05.2014 10:24
Jenyay
может все-таки как-то сделать, чтобы можно было создавать заметки с __ в начале?
К примеру, имя папки заметки будет одно, а отображаться будет другое. К примеру, если имя заметки начинается как ^__xxx, то отображать ее как __xxx. А если кому-то захочется именно ^__, то пускай создают заметку с именем ^^__.
Автор: Jenyay
Дата сообщения: 08.05.2014 10:35
Как-то это все не красиво. Добавлю в список идей, может быть когда-нибудь...
Автор: unreal666
Дата сообщения: 09.05.2014 04:36
Я как-то давно просил. Сделай, плиз, в настройках проги шаблоны для пустых страниц (для каждого типа страницы), данные из которых будут автоматом вставляться в новую созданную страницу.
И если есть открытая база, то справка открывалась в новой копии проги, а не закрывала текущую базу.
Автор: Jenyay
Дата сообщения: 09.05.2014 08:49
Это все уже есть в ToDo.
Автор: unreal666
Дата сообщения: 16.05.2014 19:08
Jenyay
сделай, плиз, горячие клавиши для стандартных текстовых операций: верхний/нижний регистры, сдвиг выделенных строк влево/вправо (отступ +/-), перемещение строк вверх/вниз, может еще какие.
Автор: Jenyay
Дата сообщения: 16.05.2014 19:26
Хорошо, добавлю в ToDo, но сделаю это уже скорее в следующей версии (1.9), а то что-то разработка версии 1.8 подзатянулась, надо доделать то, что для нее запланировал.
Автор: unreal666
Дата сообщения: 18.05.2014 01:06
Сделай, плиз, какую-нибудь подсветку для html-тегов на wiki-странице.
Автор: unreal666
Дата сообщения: 18.05.2014 04:28
В файле mics.py плагина source:

Код: def fillStyleComboBox (config, comboBox, selectedStyle):
...
from pygments.styles import STYLE_MAP

styles = STYLE_MAP.keys()
styles.sort()

assert len (styles) > 0

comboBox.Clear()
comboBox.AppendItems (styles)

if selectedStyle not in styles:
selectedStyle = getDefaultStyle (config)

if selectedStyle in STYLE_MAP:
index = styles.index (selectedStyle)
assert index >= 0

comboBox.SetSelection (index)
Автор: Jenyay
Дата сообщения: 18.05.2014 21:10
> Почему в 1-ом случае используется styles, а во 2-ом STYLE_MAP, а не тот же styles ?

Если STYLE_MAP - словарь, то как писать все равно. Для общности можно писать одинаково.

> Чего-то не видно значения по умолчанию для index.

А зачем оно нужно? мы уже проверили, что выбранный стиль существует, comboBox.SetSelection (index) ведь выполняется внутри второго условия.

> Зачем нужно "assert index >= 0"? Ведь если selectedStyle есть в STYLE_MAP, то index наверно и так не меньше 0.

Собственно, это assert и подтверждает. Для наглядности, что index всегда >= 0.

Добавлено:

Цитата:
Сделай, плиз, какую-нибудь подсветку для html-тегов на wiki-странице.


Добавлю в ToDo, но в качестве опции, поскольку в идеале на викистраницах желательно обходиться без HTML.
Автор: unreal666
Дата сообщения: 19.05.2014 00:59

Цитата:
Добавлю в ToDo, но в качестве опции, поскольку в идеале на викистраницах желательно обходиться без HTML.

Ну если без HTML, то тогда желательно, чтобы стандартный синтаксис подсвечивался и для кода в командах (то, что между (:plugin:)(:pluginend:)). Т.к. хотя бы ими можно заменить отсутствие многих html-тегов (сейчас, к примеру, как раз делаю плагин tag в качестве замены прямой вставки html-тегов).
Кстати, а где-нибудь есть "расширенная" дока по wx. А то, к примеру, увидел у тебя в коде константу wx.stc.STC_STYLE_DEFAULT, описания которой в офф. доке фактически нет, только малополезная фраза (как и многого другого). Откуда ты и другие, юзающие wx, берут инфу про подобное ? Читают исходники wx?
Автор: Jenyay
Дата сообщения: 19.05.2014 08:35
По самому wxPython обычно хватает обычной справки, но редактор из stc там практически не описан, по нему лучше читать тут - http://www.yellowbrain.com/stc/
Автор: unreal666
Дата сообщения: 22.05.2014 03:04
кстати, по части подсветки html-тегов. Наверно, даже лучше подсвечивать не сами теги, а символы < и >, чтобы видеть, где после копирования не преобразовал этих символы в html-сущности.
Автор: Jenyay
Дата сообщения: 22.05.2014 08:34
unreal666

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

И, кстати, в последних коммитах сделал, чтобы справка открывалась в новом окне программы.
Автор: unreal666
Дата сообщения: 22.05.2014 09:18
Jenyay
попробую.
Такой вопрос. Какой кусок кода и где в плагине source отвечает за активность его кнопки на панели.
А то пытаюсь сделать плагин, заменяющий html-теги, но возникла проблема, что его значок неактивен.
Автор: Jenyay
Дата сообщения: 22.05.2014 19:04
unreal666
Это в методах _enableTools() в классах OldGuiCreator (для старых версий OutWiker) и ActionGuiCreator (для последних версий). Все это находится в файле guicreators.py.
Автор: Jenyay
Дата сообщения: 23.05.2014 08:49
Выложил очередную нестабильную версию (1.8.0.726). В этой версии изменения такие:

* Добавлены кнопки Вперед / Назад для возврата к предыдущим открытым страницам.
* Добавлен новый параметр командной строки "-r" или "--readonly", позволяющий открывать дерево заметок в режиме "Только для чтения".
* Теперь справка открывается в новом окне.
* Добавлена страница man под Linux.
* Теперь, если при открытии дерева заметок для каких-то страниц нет прав для записи, они открываются в режиме "Только для чтения".
Исправление ошибок.

Скачать нестабильную версию можно по ссылке - http://jenyay.net/Outwiker/Unstable
Автор: unreal666
Дата сообщения: 23.05.2014 12:17

Цитата:
После того, как обновишь свою ветку исходников, обрати внимание, не перестали ли перемещаться кнопки плагинов? Я сейчас сделал, чтобы плагины загружались по алфавиту. Сам я на такое поведение внимания не обращал.   И, кстати, в последних коммитах сделал, чтобы справка открывалась в новом окне программы.

1. судя по расположению кнопочек и названию плагинов - они идут по порядку.
2. справка открывается в новом окне

сенкс.

Добавлено:
Jenyay
кстати, чего-то поиск отвалился:

Код: Traceback (most recent call last):
File "U:\Новая папка\outwiker (orig)\src\outwiker\gui\mainwndcontroller.py", line 333, in __onRecent
outwiker.core.commands.openWiki (self._recentId[event.Id])
File "U:\Новая папка\outwiker (orig)\src\outwiker\core\commands.py", line 159, in openWiki
Application.wikiroot = result
File "U:\Новая папка\outwiker (orig)\src\outwiker\core\application.py", line 160, in wikiroot
self.onWikiOpen (self.__wikiroot)
File "U:\Новая папка\outwiker (orig)\src\outwiker\core\event.py", line 24, in _run
handler(*args, **kargs)
File "U:\Новая папка\outwiker (orig)\src\outwiker\gui\tabscontroller.py", line 247, in __onWikiOpen
self.__loadTabs(root)
File "U:\Новая папка\outwiker (orig)\src\outwiker\gui\tabscontroller.py", line 228, in __loadTabs
self._application.selectedPage = self._tabsCtrl.GetPage (selectedTab)
File "U:\Новая папка\outwiker (orig)\src\outwiker\core\application.py", line 228, in selectedPage
self.__wikiroot.selectedPage = page
File "U:\Новая папка\outwiker (orig)\src\outwiker\core\tree.py", line 364, in selectedPage
self.root.onPageSelect(self._selectedPage)
File "U:\Новая папка\outwiker (orig)\src\outwiker\core\event.py", line 24, in _run
handler(*args, **kargs)
File "U:\Новая папка\outwiker (orig)\src\outwiker\core\event.py", line 24, in _run
handler(*args, **kargs)
File "U:\Новая папка\outwiker (orig)\src\outwiker\gui\currentpagepanel.py", line 93, in __onPageSelect
self.__updatePageView (page)
File "U:\Новая папка\outwiker (orig)\src\outwiker\gui\currentpagepanel.py", line 127, in __updatePageView
self.__createPageView(page)
File "U:\Новая папка\outwiker (orig)\src\outwiker\gui\currentpagepanel.py", line 144, in __createPageView
self.__pageView.page = page
File "U:\Новая папка\outwiker (orig)\src\outwiker\gui\basepagepanel.py", line 196, in page
self.UpdateView (page)
File "U:\Новая папка\outwiker (orig)\src\outwiker\pages\search\searchpanel.py", line 261, in UpdateView
self.__showResults (self._currentResultPages)
File "U:\Новая папка\outwiker (orig)\src\outwiker\pages\search\searchpanel.py", line 348, in __showResults
htmltext = report.generate ()
File "U:\Новая папка\outwiker (orig)\src\outwiker\pages\search\htmlreport.py", line 43, in generate
items += self.generataPageView (page)
File "U:\Новая папка\outwiker (orig)\src\outwiker\pages\search\htmlreport.py", line 57, in generataPageView
item += u"<br>" + self.generatePageInfo (page) + "<p></p>"
File "U:\Новая папка\outwiker (orig)\src\outwiker\pages\search\htmlreport.py", line 66, in generatePageInfo
date = self.generateDate (page)
File "U:\Новая папка\outwiker (orig)\src\outwiker\pages\search\htmlreport.py", line 75, in generateDate
result = _(u"Last modified date: {0}").format (dateStr)
UnicodeDecodeError: 'ascii' codec can't decode byte 0xcf in position 23: ordinal not in range(128)
Автор: Jenyay
Дата сообщения: 23.05.2014 14:30
Да, действительно.

Добавлено:
В исходниках поправил, вечером выложу новую версию.
Автор: unreal666
Дата сообщения: 23.05.2014 16:47
уже заметил и скачал
Автор: unreal666
Дата сообщения: 24.05.2014 10:04
Хотя с порядком значков на юзер. панели какой-то глюк.
К примеру, если OW запущен в режиме GUI (pythonw.exe), то порядок слева направо такой: thumbgallery, source, spoiler, wraptag (мой).
Если запущен как консоль (python.exe) - spoiler, thumbgallery, wraptag, source.
В справке - source, wraptag, spoiler, thumbgallery. При этом на викистранице source не активен, а остальные активны.
Если запускаю через отладчик PyCharm - spoiler, thumbgallery, source, wraptag.

И почему-то мой плагин wraptag в консольном режиме активен через раз. Это из-за чего может быть? У плагинов могут какие-то конфликты возникнуть между собой?

Страницы: 123456789101112131415161718192021222324252627282930

Предыдущая тема: Acronis True Image Home vs Clonezilla


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.