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

» OutWiker

Автор: unreal666
Дата сообщения: 03.03.2014 17:40
Jenyay
смотрю, ты htmlimprover.py изменил наподобие моего
только вот непонятно.
у меня

Код: opentags = "[uod]l|table"
opentags += "|" + opentags.upper()
closetags = "li|d[td]|t[rdh]|caption|thead|tfoot|tbody|colgroup|col"
closetags += "|" + closetags.upper()
Автор: Jenyay
Дата сообщения: 03.03.2014 18:05
Это, наверное, осталось от экспериментов, я сходу не понял, зачем теги переводились в верхний регистр.

Добавлено:
Сейчас погонял тесты с upper(), вроде ничего не сломалось, можно его вернуть

Добавлено:
А почему бы тогда просто в re.sub() не добавить флаг re.IGNORECASE?
Автор: unreal666
Дата сообщения: 03.03.2014 19:02

Цитата:
А почему бы тогда просто в re.sub() не добавить флаг re.IGNORECASE?

у меня вначале так и было, но по идее с IGNORECASE должно быть медленнее. На практике не помню (потому у меня в начале файла и был импорт timeit - для тестов, но результаты не помню).
Автор: Jenyay
Дата сообщения: 03.03.2014 20:31
Написал вторую статью про описание исходников OutWiker. На этот раз она посвящена сборке и тестированию - http://jenyay.net/OutWikerDoc/Build
Автор: unreal666
Дата сообщения: 04.03.2014 23:30
будешь как-то исправлять этот lower() ?
Автор: Jenyay
Дата сообщения: 05.03.2014 06:36
Да, надо будет сделать тесты с тегами в верхнем регистре.
Автор: unreal666
Дата сообщения: 07.03.2014 08:13
Jenyay
убери, плиз, в команде "Преобразовать символы в HTML" преобразование двойных кавычек. В тексте они не все равно не опасны (опасность только внутри атрибутов тегов), а преобразование ухудшает читабельность кода.
Автор: Jenyay
Дата сообщения: 07.03.2014 16:58
Хорошо, добавлю в ToDo
Автор: unreal666
Дата сообщения: 09.03.2014 12:13
такой вопрос. Почему в базах нет корневой страницы?
Автор: unreal666
Дата сообщения: 09.03.2014 14:47
еще вопросы:
- зачем в src/outwiker/gui/htmlrender.py метод _isUrl ? Что-то ни в нем ни в htmlrenderie ни в htmlrenderwebkit не видно, чтобы он использовался.
- в htmlrenderfactory такой код

Код: def getHtmlRender (parent):
"""
Возвращает используемый HTML-рендер
"""
if os.name == "nt":
from htmlrenderie import HtmlRenderIE
return HtmlRenderIE (parent)
else:
import htmlrenderwebkit
return htmlrenderwebkit.HtmlRenderWebKit (parent)
Автор: Jenyay
Дата сообщения: 09.03.2014 17:13
unreal666

Цитата:
Почему в базах нет корневой страницы?


Не понял, каких базах?

Добавлено:

Цитата:
зачем в src/outwiker/gui/htmlrender.py метод _isUrl ? Что-то ни в нем ни в htmlrenderie ни в htmlrenderwebkit не видно, чтобы он использовался.


Похоже остался после рефакторинга. Сейчас этот метод перенесен в htmlcontroller.UriIdentifier


Цитата:
в htmlrenderfactory такой код  


Можно поправить для красоты.

Добавлено:
Поправил.
Автор: unreal666
Дата сообщения: 09.03.2014 20:55

Цитата:
Не понял, каких базах?

ну база заметок или как там наз-ся. У тебя в справке она наз-ся так.
Просто смотрю, что корень базы не имеет заметки, а можно было бы заюзать.
Автор: Jenyay
Дата сообщения: 09.03.2014 21:52
Аа, понял. В свое время я думал при выборе корня показывать какую-нибудь статистику вроде количества заметок или что-нибудь в этом роде. Так пока не решил, что с ней делать. На самом деле добавить заметки и туда особого труда не составит, но н уверен, что это лучший вариант.
Автор: unreal666
Дата сообщения: 09.03.2014 22:37
ну какая либо заметка в корне должна быть, т.к. ей (корневой) теоретически может стать другая заметка из базы. если эту базу открыть не с корня, а с вложенной заметки. Т.е. в оригинале база:

Код: корень
|_заметка1
|_заметка2
|_заметка2.1
|_заметка2.2
Автор: Jenyay
Дата сообщения: 10.03.2014 07:50

Цитата:
еще.
в файле src/tests.py есть строка  Application.init ("../test/testconfig.ini") , но при этом файла testconfig.ini нет.
Что в нем должно быть?


А ничего не должно быть. И файла этого быть не должно. По этому пути создается файл настроек, который используется для тестов. После выполнения тестов он удаляется.
Автор: Jenyay
Дата сообщения: 11.03.2014 08:53

Цитата:
будешь как-то исправлять этот lower() ?


Поправил. Теперь это все работает независимо от регистра.
Автор: Jenyay
Дата сообщения: 13.03.2014 20:13
Выложил следующую нестабильную версию (1.8.0.714). В этой версии была добавлена возможность поиска и замены по странице.

Скачать нестабильную версию можно по ссылке - http://jenyay.net/Outwiker/Unstable
Автор: Jenyay
Дата сообщения: 16.03.2014 09:33
Выложил следующую нестабильную версию (1.8.0.716) с исправлением одной неприятной ошибки при поиске и замене, которая может приводить к зависанию программы. Если у вас установлена версия 1.8.0.714, советую обновиться.

Скачать нестабильную версию можно по ссылке - http://jenyay.net/Outwiker/Unstable
Автор: Jenyay
Дата сообщения: 17.03.2014 19:35
Выложил новую версию плагина Source, предназначенного для раскраски кода на странице. В версии 1.11.1 исправлена раскраска кода на языке 1С.

Скачать плагин можно по ссылке - http://jenyay.net/Outwiker/SourcePlugin
Автор: unreal666
Дата сообщения: 21.03.2014 08:40
Гхм.


Цитата:
Теперь HtmlImprover работает с любыми регистрами тегов


Код: blocktags = r"[uod]l|h[1-6]|pre|table|div|blockquote|hr"
opentags = r"[uod]l|table"
opentags += r"|" + opentags
closetags = r"li|d[td]|t[rdh]|caption|thead|tfoot|tbody|colgroup|col"
closetags += r"|" + closetags
Автор: Jenyay
Дата сообщения: 21.03.2014 11:03

Цитата:
Улучшена обработка в движке IE относительных URL вида "..\..\заметка".
Теперь, если такая заметка существует, то при клике на нее происходит переход на заметку, а не открытие данной папки в проводнике.


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


Цитата:
blocktags = r"[uod]l|h[1-6]|pre|table|div|blockquote|hr"
        opentags = r"[uod]l|table"
        opentags += r"|" + opentags
        closetags = r"li|d[td]|t[rdh]|caption|thead|tfoot|tbody|colgroup|col"
        closetags += r"|" + closetags



Ок. А вообще собираюсь отказаться от обертывания абзацев в тег p, от этого, по-моему, только больше проблем.
Автор: unreal666
Дата сообщения: 21.03.2014 11:37

Цитата:
Я тут все-таки решил сделать для страниц идентификаторы, чтобы на них можно было бы ссылаться, даже если страницы переименовываются или переносятся.

это хорошо. Давно мечтал о такой возможности.
Автор: Jenyay
Дата сообщения: 21.03.2014 20:16
Сегодня глобально переделал расстановку переносов. Вроде стало более аккуратно.
Автор: unreal666
Дата сообщения: 21.03.2014 21:57
как тогда теперь регулировать форматирование абзацев, если абзацы перестали существовать?

Добавлено:
+ не учитывается момент, что некоторый код может быть сгенерирован каким-нибудь плагинами со своими заморочками (типа использование <hr/> вместо <hr> и т.п.)
Автор: Jenyay
Дата сообщения: 21.03.2014 22:20

Цитата:
как тогда теперь регулировать форматирование абзацев, если абзацы перестали существовать?


Все теги вроде %center% и т.п. работают. В принципе, после всей существующей обработки можно попытаться выделить абзацы и обернуть в <p>.


Цитата:
+ не учитывается момент, что некоторый код может быть сгенерирован каким-нибудь плагинами со своими заморочками (типа использование <hr/> вместо <hr> и т.п.)


В добавлении перевода строки такой случай уже предусмотрен. А если этот код генерит плагин, то по идее он должен будет сам добавить <br>, где надо.



Добавлено:
А еще для коррекции HTML можно было бы использовать Beautiful Soup, но ИМХО здесь это уже перебор.
Автор: unreal666
Дата сообщения: 21.03.2014 22:29

Цитата:
Все теги вроде %center% и т.п. работают. В принципе, после всей существующей обработки можно попытаться выделить абзацы и обернуть в <p>.  

ну div - это все-таки не абзацы, а просто блоки. Да и для каждого абзаца пихать подобное накладно.
ИМХО. Надо все-таки проставлять <p>, но как-то по умнее, с просмотром вперед/назад на "запрещенные" теги.
Это надо продумать

Цитата:
В добавлении перевода строки такой случай уже предусмотрен.

<hr/> не предусмотрен. В моем был предусмотрен, в твоем текущем нет, т.к. под

Код: opentags = r"[uod]l|hr|h\d"
...
remove_br_before = r"<br\s*/?>[\s\n]*(?=<(?:" + opentags + r")[ >])"
result = re.sub(remove_br_before, "", result, flags=re.I)
Автор: Jenyay
Дата сообщения: 21.03.2014 22:35

Цитата:
<hr/> не предусмотрен. В моем был предусмотрен, в твоем текущем нет, т.к. под  


Я поэтому и говорю, что <br> пусть расставляет тот, кто создает такой <hr>, но красивую расстановку тегов на строках обеспечим. Хотя это можно решить изменением регулярного выражения.

Единственное, где могли бы пригодиться <p> на мой взгляд - это шаблоны страниц. Есть еще мысль вместо старых <p> использовать <span>, чтобы они не добавляли переносы строк.



Добавлено:

Цитата:
если код, снегеренный плагином, будет обычным, не <pre> кодом, то улучшайзер же все-равно его код будет пытаться обрабатывать, т.к. он не отличит код, сгенеренный  плагином, от остального кода.


Надо будет поиграться в тестах.
Автор: unreal666
Дата сообщения: 21.03.2014 22:47

Цитата:
Есть еще мысль вместо старых <p> использовать <span>, чтобы они не добавляли переносы строк.

чего-то не понял. А какой-то тогда от них толк, если ими управлять через css нельзя будет, т.к. они будут неотличимы от других span'ов?

Добавлено:
и что насчет

Цитата:
убери, плиз, в команде "Преобразовать символы в HTML" преобразование двойных кавычек. В тексте они не все равно не опасны (опасность только внутри атрибутов тегов), а преобразование ухудшает читабельность кода.

это же минутное дело. Я бы и сам сделал, но потом при вливании твоей ветки в мою опять у меня конфликты возникнут
Автор: Jenyay
Дата сообщения: 22.03.2014 09:16

Цитата:
чего-то не понял. А какой-то тогда от них толк, если ими управлять через css нельзя будет, т.к. они будут неотличимы от других span'ов?


Разумеется, им надо будет добавить свой класс.


Цитата:
убери, плиз, в команде "Преобразовать символы в HTML" преобразование двойных кавычек. В тексте они не все равно не опасны (опасность только внутри атрибутов тегов), а преобразование ухудшает читабельность кода.


Ок, поправил.
Автор: unreal666
Дата сообщения: 22.03.2014 11:06

Цитата:
Разумеется, им надо будет добавить свой класс.

Сначала тоже хотел такое написать (типа <span class="p">) и подумал, что с помощью CSS можно сделать так, что будет один хрен, что и <p>

Страницы: 123456789101112131415161718192021222324252627282930

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


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