в исходниках есть файл htmlrenderwx.py, который нигде не используется. Зачем он нужен?
» OutWiker
Цитата:
в исходниках есть файл htmlrenderwx.py, который нигде не используется. Зачем он нужен?
В давние-давние времена, когда только начинал писать OutWiker, я пользовался встроенным в wxPython браузером (гадость страшная) - это он и есть. Потом под Линуксом стал использовать WebKit, а в Винде IE. В wxPython 3.0 обещали сделать нормальную поддержку WebKit в винде (сделали ли ее, еще не проверял). Файл я этот удалять не стал, на случай, если WebKit придет на замену встроенному рендеру, чтобы не писать заново.
такой вопрос:
файлы 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)
файлы 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)
Цитата:
файлы htmlcontroller / htmlcontrollerie / htmlcontrollerwebkit / htmlrender / htmlrenderie / htmlrenderwebkit (.py) применяются только на html/wiki-страницах?
Они еще используются в окне настроек на вкладке с плагинами (в них выводится инфа о плагинах).
Цитата:
И в этих же файлах всякие переменные, типа url, filename и anchor могут быть только или строкой с чем-то (т.е. не пустой строкой) или None?
Сейчас по памяти не вспомню, надо смотреть.
Цитата:
если так то проверки типа anchor != None не нужны, т.е. просто if anchor (да и, судя по подсказкам IDE, на None надо проверять как anchor is not None)
Интересно, чем это объясняется. Явная проверка на None - это есть у меня такая привычка.
Цитата:
Интересно, чем это объясняется. Явная проверка на 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)
Цитата:
вообще-то перед <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>
Цитата:
Хотя пока верну как было, потому что при такой записи возникают проблемы
Код: remove_br_after = r"(<(?:" + opentags + r"|table)[ >]|</(?:" + closetags + r")>)[\s\n]*<br\s*/?>"
Кстати. А почему якоря создаются как <a name="якорь">, а не <a id="якорь">?
Ведь якоря нужны для однозначного обращения к месту в документе (т.е. должен присутствовать в единственном экземпляре), а этому соответствует как раз id, а не name (которых может быть несколько на странице).
Ведь якоря нужны для однозначного обращения к месту в документе (т.е. должен присутствовать в единственном экземпляре), а этому соответствует как раз id, а не name (которых может быть несколько на странице).
Блин. Нарвался на винде на ограничение длины пути к файлу/папке (260 символов).
Может сделаешь для винды обращение к файловой системе (чтение/запись/создание файлов/папок) через юникодный путь, т.к. вида "\\?\C:\Документы\_и_т_д"?
По идее ограничение пути увеличится до 32000 с мелочью символов.
Только перед обращением к файловой системе надо будет обязательно преобразовать все / в \ и преобразовать в полный путь.
Если конечно это не происходит внутри wx, тогда фиг знает как такое обойти.
Может сделаешь для винды обращение к файловой системе (чтение/запись/создание файлов/папок) через юникодный путь, т.к. вида "\\?\C:\Документы\_и_т_д"?
По идее ограничение пути увеличится до 32000 с мелочью символов.
Только перед обращением к файловой системе надо будет обязательно преобразовать все / в \ и преобразовать в полный путь.
Если конечно это не происходит внутри wx, тогда фиг знает как такое обойти.
Цитата:
Кстати. А почему якоря создаются как <a name="якорь">, а не <a id="якорь">?
Как-то по старой памяти, когда впервые узнал про HTML вроде использовали name. Надо посмотреть, что теперь рекомендует стандарт.
Цитата:
Может сделаешь для винды обращение к файловой системе (чтение/запись/создание файлов/папок) через юникодный путь, т.к. вида "\\?\C:\Документы\_и_т_д"?
Ок, добавлю в ToDo, но это оставлю на следующую версию, потому что надо во многих местах это выискивать, а заодно можно будет обернуть обращение к файлам в отдельный класс.
Добавлено:
Цитата:
remove_br_after = r"(<(?:" + opentags + r"|table)[ >]|</(?:" + closetags + r")>)[\s\n]*<br\s*/?>"
Цитата:
Улучшена обработка якорей во внутрибазовых ссылках в движке IE
Ок, попробую.
Цитата:
Хотя пока верну как было, потому что при такой записи возникают проблемы
хотя наверно лучше оставить opentags = r"[uod]l|hr|h\d|tr|td". А то там еще кое-какие нюансы есть - кроме <table><br><tr>, еще и <tr><br><td>, которые не учитываются моим вариантом.
Выложил новую нестабильную версию под номером 1.8.0.718. В эту версию попало множество изменений:
* Теперь в панели с прикрепленными файлами показываются иконки файлов.
* Изменен алгоритм расстановки переносов строк.
* Добавлена настройка для изменения поведения клавиш Home / End в редакторе (перескакивать в начало / конец строки или абзаца).
* Добавлены диалоги для вставки команд (:attachlist, (:childlist и (:include.
* Добавлены всплывающие подсказки над иконками в окне свойств страниц.
В этой версии были переименованы многие файлы, поэтому рекомендуется перед установкой новой версии удалить старую, чтобы не плодить ненужные уже файлы.
Скачать нестабильную версию можно по ссылке - http://jenyay.net/Outwiker/Unstable
* Теперь в панели с прикрепленными файлами показываются иконки файлов.
* Изменен алгоритм расстановки переносов строк.
* Добавлена настройка для изменения поведения клавиш Home / End в редакторе (перескакивать в начало / конец строки или абзаца).
* Добавлены диалоги для вставки команд (:attachlist, (:childlist и (:include.
* Добавлены всплывающие подсказки над иконками в окне свойств страниц.
В этой версии были переименованы многие файлы, поэтому рекомендуется перед установкой новой версии удалить старую, чтобы не плодить ненужные уже файлы.
Скачать нестабильную версию можно по ссылке - http://jenyay.net/Outwiker/Unstable
смайлики отключи в твоем посте
Да я, в общем-то, видел, но решил оставить
Как в списках и подобных "однострочниках" вставлять многострочные команды?
т.е. типа
Код: * какой-то текст \
(:source:)
код
код2
(:sourceend:)
т.е. типа
Код: * какой-то текст \
(:source:)
код
код2
(:sourceend:)
Интересный случай, но можно обойтись без викинотации и писать
Код: <ul>
<li>какой-то текст
(:source:)
код
код2
(:sourceend:) </li>
</ul>
Код: <ul>
<li>какой-то текст
(:source:)
код
код2
(:sourceend:) </li>
</ul>
Ну у себя именно для source (у меня от него только "каркас" остался; подсветку делает не pygments, а динамически highlight.js) то проблема решена добавлением параметра delslashes, при присутствии которого из кода удалятся все конечные слеши.
А вот другим и вправду придется так делать.
Может в качестве "продолжения" строки кроме \ включить еще и попытку "поглощения" всего текста (если есть открывающий "тег" команды), пока не встретится закрывающий "тег" команды (если он у данной команды есть)?
А вот другим и вправду придется так делать.
Может в качестве "продолжения" строки кроме \ включить еще и попытку "поглощения" всего текста (если есть открывающий "тег" команды), пока не встретится закрывающий "тег" команды (если он у данной команды есть)?
Выложил новую нестабильную версию 1.8.0.720. Изменения в этой версии такие:
Добавлена возможность настройки цветов редактора.
Добавлена кнопка и пункт меню для открытия папки с прикрепленными файлами в системном файловом менеджере.
Добавлено сохранение последнего используемого стиля страницы.
Добавлено сохранение положения курсора на каждой странице перед закрытием.
Скачать нестабильную версию можно по ссылке - http://jenyay.net/Outwiker/Unstable
Добавлена возможность настройки цветов редактора.
Добавлена кнопка и пункт меню для открытия папки с прикрепленными файлами в системном файловом менеджере.
Добавлено сохранение последнего используемого стиля страницы.
Добавлено сохранение положения курсора на каждой странице перед закрытием.
Скачать нестабильную версию можно по ссылке - http://jenyay.net/Outwiker/Unstable
у себя "Заменил в якорях атрибут name на id."
Я, кстати, не уверен, что это идеологически правильно.
Jenyay
ну везде для якорей применяются именно id.
Особенно если судить по getElementById в JS (в отличие от getElementsByName), который как раз и должен быть в единственном числе.
ну везде для якорей применяются именно id.
Особенно если судить по getElementById в JS (в отличие от getElementsByName), который как раз и должен быть в единственном числе.
Почему заголовок страницы не может начинаться с __? Он где-то может использоваться как метод класса?
Цитата:
ну везде для якорей применяются именно id.
Посмотрел, действительно в HTML5 name признан устаревшим. Поправил.
Цитата:
Почему заголовок страницы не может начинаться с __? Он где-то может использоваться как метод класса?
Такие имена зарезервированы для самой программы, все папки, которые начинаются с __ считаются служебными.
понятно.
ЗЫ.
Добавь, плиз, возможность создания заметок оптом. К, примеру, в окне создания заметки сделать два поля: галочку "Создать несколько заметок" и поле ввода "Разделитель". В поле "Заголовок" вписать эти названия с заданным разделителем => создадутся несколько заметок с одинаковыми параметрами.
А то, к примеру, уже сейчас мне нужно создать сразу штук 20 однотиповых заметок. Вручную долговато создавать.
ЗЫ.
Добавь, плиз, возможность создания заметок оптом. К, примеру, в окне создания заметки сделать два поля: галочку "Создать несколько заметок" и поле ввода "Разделитель". В поле "Заголовок" вписать эти названия с заданным разделителем => создадутся несколько заметок с одинаковыми параметрами.
А то, к примеру, уже сейчас мне нужно создать сразу штук 20 однотиповых заметок. Вручную долговато создавать.
кстати, на будущее. Если будешь добавлять еще какие-то теги, то не используй, плиз, тег {{{{ данные }}}}.
А то у меня это википодобные-шаблоны, которые javascript'ом обрабатываются.
Добавлено:
еще.
При преобразовании в ссылки чисел вида 1.2.3.4 добавь, плиз, проверки: 1. чтобы после этого сразу (без пробельных символов) не шли цифры/буквы (может еще что); 2. Чтобы при этом числа были не больше 255.
Это защита от ненужных преобразований.
Я бы сам сделал, но не нашел, где это делается.
А то у меня это википодобные-шаблоны, которые javascript'ом обрабатываются.
Добавлено:
еще.
При преобразовании в ссылки чисел вида 1.2.3.4 добавь, плиз, проверки: 1. чтобы после этого сразу (без пробельных символов) не шли цифры/буквы (может еще что); 2. Чтобы при этом числа были не больше 255.
Это защита от ненужных преобразований.
Я бы сам сделал, но не нашел, где это делается.
Цитата:
Добавь, плиз, возможность создания заметок оптом. К, примеру, в окне создания заметки сделать два поля: галочку "Создать несколько заметок" и поле ввода "Разделитель". В поле "Заголовок" вписать эти названия с заданным разделителем => создадутся несколько заметок с одинаковыми параметрами.
А то, к примеру, уже сейчас мне нужно создать сразу штук 20 однотиповых заметок. Вручную долговато создавать.
У меня была идея сделать возможность (может быть в виде плагина) для клонирования заметок.
Цитата:
кстати, на будущее. Если будешь добавлять еще какие-то теги, то не используй, плиз, тег {{{{ данные }}}}.
А то у меня это википодобные-шаблоны, которые javascript'ом обрабатываются.
Ок, хотя пока вроде не собирался
Цитата:
При преобразовании в ссылки чисел вида 1.2.3.4 добавь, плиз, проверки: 1. чтобы после этого сразу (без пробельных символов) не шли цифры/буквы (может еще что); 2. Чтобы при этом числа были не больше 255.
Ok. А вообще делается это в tokenurl.py. Если поправишь, буду благодарен.
Добавлено:
Цитата:
Добавлено:
еще.
При преобразовании в ссылки чисел вида 1.2.3.4 добавь, плиз, проверки: 1. чтобы после этого сразу (без пробельных символов) не шли цифры/буквы (может еще что); 2. Чтобы при этом числа были не больше 255.
Это защита от ненужных преобразований.
Я бы сам сделал, но не нашел, где это делается.
Сделал
Цитата:
Сделал
заметил. Но там немного неточно. Под данное выражение подпадает и 0.1.1.1. а в 1-м байте 0 не может быть.
Я у себя улучшил. Возьми у меня. Я бы и сам какой-нибудь пул-реквест сделал бы, но у меня в нем много "лишнего" было бы. А как его сделать только для одного коммита - фиг его знает.
В твоем случае не срабатывает на примере 092.168.10.10, но распознает как IP фразы вроде 99.99.1.1.20. (я там отдельно боролся с лишними цифрами с точками).
Цитата:
В твоем случае не срабатывает на примере 092.168.10.10
изначально была поддержка доп. нулей. Потом убрал. Могу обратно добавить.
Цитата:
но распознает как IP фразы вроде 99.99.1.1.20. (я там отдельно боролся с лишними цифрами с точками).
это неоднозначно. Может . - это конец предложения и кто-то после нее забыл пробел поставить
хотя наврено лучше перебздеть, чем недобздеть.
ЗЫ.
Сделал еще коммит. Добавил твой просмотр назад и посократил часть с последними 3 байтами.
А теперь перестали распознаваться IP с 2-мя и 1 цифрой вроде 192.168.1.1.
Страницы: 123456789101112131415161718192021222324252627282930
Предыдущая тема: Acronis True Image Home vs Clonezilla
Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.