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

» OutWiker

Автор: unreal666
Дата сообщения: 28.03.2014 12:12
в исходниках есть файл htmlrenderwx.py, который нигде не используется. Зачем он нужен?
Автор: Jenyay
Дата сообщения: 28.03.2014 13:57

Цитата:
в исходниках есть файл htmlrenderwx.py, который нигде не используется. Зачем он нужен?


В давние-давние времена, когда только начинал писать OutWiker, я пользовался встроенным в wxPython браузером (гадость страшная) - это он и есть. Потом под Линуксом стал использовать WebKit, а в Винде IE. В wxPython 3.0 обещали сделать нормальную поддержку WebKit в винде (сделали ли ее, еще не проверял). Файл я этот удалять не стал, на случай, если WebKit придет на замену встроенному рендеру, чтобы не писать заново.
Автор: unreal666
Дата сообщения: 28.03.2014 15:20
такой вопрос:
файлы htmlcontroller / htmlcontrollerie / htmlcontrollerwebkit / htmlrender / htmlrenderie / htmlrenderwebkit (.py) применяются только на html/wiki-страницах?
А то хочу для ie сделать обработку якоря во внутрибазовых ссылках (в том числе и относительных ссылках) и непонятно, надо ли проверять на тип страницы (чтобы был или html или wiki).

Добавлено:
И в этих же файлах всякие переменные, типа url, filename и anchor могут быть только или строкой с чем-то (т.е. не пустой строкой) или None? если так то проверки типа anchor != None не нужны, т.е. просто if anchor (да и, судя по подсказкам IDE, на None надо проверять как anchor is not None)
Автор: Jenyay
Дата сообщения: 28.03.2014 18:45

Цитата:
файлы htmlcontroller / htmlcontrollerie / htmlcontrollerwebkit / htmlrender / htmlrenderie / htmlrenderwebkit (.py) применяются только на html/wiki-страницах?


Они еще используются в окне настроек на вкладке с плагинами (в них выводится инфа о плагинах).


Цитата:
И в этих же файлах всякие переменные, типа url, filename и anchor могут быть только или строкой с чем-то (т.е. не пустой строкой) или None?


Сейчас по памяти не вспомню, надо смотреть.


Цитата:
если так то проверки типа anchor != None не нужны, т.е. просто if anchor (да и, судя по подсказкам IDE, на None надо проверять как anchor is not None)


Интересно, чем это объясняется. Явная проверка на None - это есть у меня такая привычка.
Автор: unreal666
Дата сообщения: 28.03.2014 18:54

Цитата:
Интересно, чем это объясняется. Явная проверка на None - это есть у меня такая привычка.

А фиг его знает. Но PyCharm говорит такое:

Цитата:
This inspection highlights comparisons with None. That type of comparisons should always be done with 'is' or 'is not', never the equality operators.


Добавлено:
нашел почему. Этот из PEP-8. Наверно сделано так, потому что is быстрее, чем ==.

Добавлено:

Цитата:
Явная проверка на None - это есть у меня такая привычка.

почитал PEP-8. И вправду лучше делать явную проверку на None, а то вдруг тип переменной изменится и, вследствие чего, при преобразовании в булево значение она может стать False.

Добавлено:
Кстати, по поводу недавнего твоего изменения в html-улучшайзере:

Код: opentags = r"[uod]l|hr|h\d|tr|td"
...
# Удаление тега <BR> перед некоторыми блочными элементами
remove_br_before = r"<br\s*/?>[\s\n]*(?=<(?:" + opentags + r")[ >])"
result = re.sub(remove_br_before, "", result, flags=re.I)
Автор: Jenyay
Дата сообщения: 28.03.2014 21:42

Цитата:
вообще-то перед <tr> и <td> вполне могут быть <br>, т.к. их закрывающие теги необязательны. Главное, чтобы после  </tr> и </td> их не было, а это и так удаляется с помощью remove_br_after.


Вроде да, работает и без этого.

Добавлено:
Хотя пока верну как было, потому что при такой записи возникают проблемы


Код:
<table border=1>
<tr>
<td>sdfgsdfg</td>
<td>sdfgsdfg</td>
<td>sdfgsdfg</td>
<td>sdfgsdfg</td>
</tr>
Автор: unreal666
Дата сообщения: 28.03.2014 22:11

Цитата:
Хотя пока верну как было, потому что при такой записи возникают проблемы


Код: remove_br_after = r"(<(?:" + opentags + r"|table)[ >]|</(?:" + closetags + r")>)[\s\n]*<br\s*/?>"
Автор: unreal666
Дата сообщения: 29.03.2014 05:28
Кстати. А почему якоря создаются как <a name="якорь">, а не <a id="якорь">?
Ведь якоря нужны для однозначного обращения к месту в документе (т.е. должен присутствовать в единственном экземпляре), а этому соответствует как раз id, а не name (которых может быть несколько на странице).
Автор: unreal666
Дата сообщения: 29.03.2014 12:06
Блин. Нарвался на винде на ограничение длины пути к файлу/папке (260 символов).
Может сделаешь для винды обращение к файловой системе (чтение/запись/создание файлов/папок) через юникодный путь, т.к. вида "\\?\C:\Документы\_и_т_д"?
По идее ограничение пути увеличится до 32000 с мелочью символов.
Только перед обращением к файловой системе надо будет обязательно преобразовать все / в \ и преобразовать в полный путь.
Если конечно это не происходит внутри wx, тогда фиг знает как такое обойти.
Автор: Jenyay
Дата сообщения: 29.03.2014 22:36

Цитата:
Кстати. А почему якоря создаются как <a name="якорь">, а не <a id="якорь">?


Как-то по старой памяти, когда впервые узнал про HTML вроде использовали name. Надо посмотреть, что теперь рекомендует стандарт.


Цитата:
Может сделаешь для винды обращение к файловой системе (чтение/запись/создание файлов/папок) через юникодный путь, т.к. вида "\\?\C:\Документы\_и_т_д"?


Ок, добавлю в ToDo, но это оставлю на следующую версию, потому что надо во многих местах это выискивать, а заодно можно будет обернуть обращение к файлам в отдельный класс.

Добавлено:

Цитата:
remove_br_after = r"(<(?:" + opentags + r"|table)[ >]|</(?:" + closetags + r")>)[\s\n]*<br\s*/?>"




Цитата:
Улучшена обработка якорей во внутрибазовых ссылках в движке IE


Ок, попробую.
Автор: unreal666
Дата сообщения: 30.03.2014 05:04

Цитата:
Хотя пока верну как было, потому что при такой записи возникают проблемы

хотя наверно лучше оставить opentags = r"[uod]l|hr|h\d|tr|td". А то там еще кое-какие нюансы есть - кроме <table><br><tr>, еще и <tr><br><td>, которые не учитываются моим вариантом.
Автор: Jenyay
Дата сообщения: 30.03.2014 11:10
Выложил новую нестабильную версию под номером 1.8.0.718. В эту версию попало множество изменений:

* Теперь в панели с прикрепленными файлами показываются иконки файлов.
* Изменен алгоритм расстановки переносов строк.
* Добавлена настройка для изменения поведения клавиш Home / End в редакторе (перескакивать в начало / конец строки или абзаца).
* Добавлены диалоги для вставки команд (:attachlist, (:childlist и (:include.
* Добавлены всплывающие подсказки над иконками в окне свойств страниц.

В этой версии были переименованы многие файлы, поэтому рекомендуется перед установкой новой версии удалить старую, чтобы не плодить ненужные уже файлы.

Скачать нестабильную версию можно по ссылке - http://jenyay.net/Outwiker/Unstable
Автор: unreal666
Дата сообщения: 31.03.2014 20:10
смайлики отключи в твоем посте
Автор: Jenyay
Дата сообщения: 31.03.2014 20:18
Да я, в общем-то, видел, но решил оставить
Автор: unreal666
Дата сообщения: 10.04.2014 15:38
Как в списках и подобных "однострочниках" вставлять многострочные команды?
т.е. типа

Код: * какой-то текст \
(:source:)
код
код2
(:sourceend:)
Автор: Jenyay
Дата сообщения: 10.04.2014 20:52
Интересный случай, но можно обойтись без викинотации и писать


Код: <ul>
<li>какой-то текст
(:source:)
код
код2
(:sourceend:) </li>
</ul>
Автор: unreal666
Дата сообщения: 10.04.2014 21:11
Ну у себя именно для source (у меня от него только "каркас" остался; подсветку делает не pygments, а динамически highlight.js) то проблема решена добавлением параметра delslashes, при присутствии которого из кода удалятся все конечные слеши.
А вот другим и вправду придется так делать.

Может в качестве "продолжения" строки кроме \ включить еще и попытку "поглощения" всего текста (если есть открывающий "тег" команды), пока не встретится закрывающий "тег" команды (если он у данной команды есть)?
Автор: Jenyay
Дата сообщения: 12.04.2014 16:05
Выложил новую нестабильную версию 1.8.0.720. Изменения в этой версии такие:

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

Скачать нестабильную версию можно по ссылке - http://jenyay.net/Outwiker/Unstable
Автор: unreal666
Дата сообщения: 25.04.2014 06:21
у себя "Заменил в якорях атрибут name на id."
Автор: Jenyay
Дата сообщения: 25.04.2014 08:31
Я, кстати, не уверен, что это идеологически правильно.
Автор: unreal666
Дата сообщения: 25.04.2014 09:12
Jenyay
ну везде для якорей применяются именно id.
Особенно если судить по getElementById в JS (в отличие от getElementsByName), который как раз и должен быть в единственном числе.
Автор: unreal666
Дата сообщения: 27.04.2014 17:41
Почему заголовок страницы не может начинаться с __? Он где-то может использоваться как метод класса?
Автор: Jenyay
Дата сообщения: 27.04.2014 18:01

Цитата:
ну везде для якорей применяются именно id.  


Посмотрел, действительно в HTML5 name признан устаревшим. Поправил.


Цитата:
Почему заголовок страницы не может начинаться с __? Он где-то может использоваться как метод класса?


Такие имена зарезервированы для самой программы, все папки, которые начинаются с __ считаются служебными.
Автор: unreal666
Дата сообщения: 27.04.2014 22:41
понятно.

ЗЫ.
Добавь, плиз, возможность создания заметок оптом. К, примеру, в окне создания заметки сделать два поля: галочку "Создать несколько заметок" и поле ввода "Разделитель". В поле "Заголовок" вписать эти названия с заданным разделителем => создадутся несколько заметок с одинаковыми параметрами.
А то, к примеру, уже сейчас мне нужно создать сразу штук 20 однотиповых заметок. Вручную долговато создавать.
Автор: unreal666
Дата сообщения: 28.04.2014 03:05
кстати, на будущее. Если будешь добавлять еще какие-то теги, то не используй, плиз, тег {{{{ данные }}}}.
А то у меня это википодобные-шаблоны, которые javascript'ом обрабатываются.

Добавлено:
еще.
При преобразовании в ссылки чисел вида 1.2.3.4 добавь, плиз, проверки: 1. чтобы после этого сразу (без пробельных символов) не шли цифры/буквы (может еще что); 2. Чтобы при этом числа были не больше 255.
Это защита от ненужных преобразований.
Я бы сам сделал, но не нашел, где это делается.
Автор: Jenyay
Дата сообщения: 28.04.2014 08:15

Цитата:
Добавь, плиз, возможность создания заметок оптом. К, примеру, в окне создания заметки сделать два поля: галочку "Создать несколько заметок" и поле ввода "Разделитель". В поле "Заголовок" вписать эти названия с заданным разделителем => создадутся несколько заметок с одинаковыми параметрами.
А то, к примеру, уже сейчас мне нужно создать сразу штук 20 однотиповых заметок. Вручную долговато создавать.


У меня была идея сделать возможность (может быть в виде плагина) для клонирования заметок.


Цитата:
кстати, на будущее. Если будешь добавлять еще какие-то теги, то не используй, плиз, тег {{{{ данные }}}}.
А то у меня это википодобные-шаблоны, которые javascript'ом обрабатываются.


Ок, хотя пока вроде не собирался


Цитата:
При преобразовании в ссылки чисел вида 1.2.3.4 добавь, плиз, проверки: 1. чтобы после этого  сразу (без пробельных символов) не шли цифры/буквы (может еще что); 2. Чтобы при этом числа были не больше 255.


Ok. А вообще делается это в tokenurl.py. Если поправишь, буду благодарен.

Добавлено:

Цитата:
Добавлено:
еще.
При преобразовании в ссылки чисел вида 1.2.3.4 добавь, плиз, проверки: 1. чтобы после этого  сразу (без пробельных символов) не шли цифры/буквы (может еще что); 2. Чтобы при этом числа были не больше 255.
Это защита от ненужных преобразований.
Я бы сам сделал, но не нашел, где это делается.


Сделал
Автор: unreal666
Дата сообщения: 28.04.2014 11:34

Цитата:
Сделал

заметил. Но там немного неточно. Под данное выражение подпадает и 0.1.1.1. а в 1-м байте 0 не может быть.
Я у себя улучшил. Возьми у меня. Я бы и сам какой-нибудь пул-реквест сделал бы, но у меня в нем много "лишнего" было бы. А как его сделать только для одного коммита - фиг его знает.
Автор: Jenyay
Дата сообщения: 28.04.2014 13:48
В твоем случае не срабатывает на примере 092.168.10.10, но распознает как IP фразы вроде 99.99.1.1.20. (я там отдельно боролся с лишними цифрами с точками).
Автор: unreal666
Дата сообщения: 28.04.2014 13:52

Цитата:
В твоем случае не срабатывает на примере 092.168.10.10

изначально была поддержка доп. нулей. Потом убрал. Могу обратно добавить.

Цитата:
но распознает как IP фразы вроде 99.99.1.1.20. (я там отдельно боролся с лишними цифрами с точками).

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

ЗЫ.
Сделал еще коммит. Добавил твой просмотр назад и посократил часть с последними 3 байтами.
Автор: Jenyay
Дата сообщения: 28.04.2014 14:42
А теперь перестали распознаваться IP с 2-мя и 1 цифрой вроде 192.168.1.1.

Страницы: 123456789101112131415161718192021222324252627282930

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


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