Bug 8080

Summary: неправильная конвертация в latex ссылки на URL
Product: Sisyphus Reporter: kirill <kirill>
Component: ALDConvertAssignee: Nobody's working on this, feel free to take it <nobody>
Status: CLOSED FIXED QA Contact: qa-sisyphus
Severity: normal    
Priority: P2    
Version: unstable   
Hardware: all   
OS: Linux   

Description kirill 2005-09-28 17:17:58 MSD
Вот такая конструкция 

@http://localhost:631@

конвертируется вот так:

\Href[http://localhost:631]{http://localhost:631}

А нужно вот так:

\Href{http://localhost:631}

(для этого, собственно, первый аргумент и необязательный)
Comment 1 Fr. Br. George 2005-09-28 19:56:29 MSD
Отдельного тега "ссылка, не имеющая текста" в ALDF нет. Ссылка всегда имеет
текст. При чтении из m-k содержимое такой ссылки просто дублируется. Явная
ошибка в том, что его следует в этом слкчае закавычить, да. Получится что-то
вроде \Href[\Sys{http://localhost:631}]{http://localhost:631}
Пойдёт?
Comment 2 kirill 2005-09-29 17:33:34 MSD
(In reply to comment #1)
> Отдельного тега "ссылка, не имеющая текста" в ALDF нет. Ссылка всегда имеет
> текст. При чтении из m-k содержимое такой ссылки просто дублируется. Явная
> ошибка в том, что его следует в этом слкчае закавычить, да. Получится что-то
> вроде \Href[\Sys{http://localhost:631}]{http://localhost:631}
> Пойдёт?

Э, нет. Ты пытаешься таким образом в конвертере решать задачи преобразования
в формат представления, повторяешь ошибку db2latex'а. А этого совсем не нужно в
этом случае, нужно просто разметку заменить. Вот смотри, 

В m-k было  @http://cmth.xx@
В LaTeX нужно \Href{http://smth.xx}

А \Sys я уже сам подставляю при обработке аргументов в ТеХе. И могу эту 
логику как хочу менять, потому что это уже вопросы представления. 

А то, что ты дублируешь содержание ссылки при чтении из m-k, так это 
проблема твоего reader'a, который изначально был слишком ориентирован 
на генерацию HTML.
Comment 3 Fr. Br. George 2005-09-29 23:01:05 MSD
Итак, ты за введение нового тега ALDF? Это будет _новый_ тег, шаг навстречу докбуку.
Comment 4 kirill 2005-09-29 23:29:59 MSD
> Итак, ты за введение нового тега ALDF? Это будет _новый_ тег, шаг навстречу
докбуку.

Не понимаю твоей логики: почему новый? Мы же пишем в m-k-файле @URL@, подразумевая
при этом, что и ссылка и текст одновременно. Я понимаю, что во внутреннем формате
у тебя ссылка и метка окажутся двумя сущностями, ну и что: это же просто 
сокращённая запись, поддерживаемая в m-k? Чем LaTeX принципиально отличается, 
что в нём нельзя поддерживать аналогичную сокращённую запись? 

При чтении m-k ты раскрываешь сокращение в две сущности, а при записи в LaТеХ
потребуется сравнить, что у тебя текст и ссылка совпадают и выбрать 
сокращённый вариант. 
Аргумент в пользу того, что такая логика правильная: представь, что ты 
пишешь m-k-writer. Если не делать сокращения в этом случае, то нарушится
обратимость конвертации: из m-k во внутренний и обратно в m-k будет 
давать заведомо отличный от исходного документ.  
Comment 5 Fr. Br. George 2005-09-30 11:01:23 MSD
(In reply to comment #4)
Делать то же самое и для внутренних ссылок?
Comment 6 Fr. Br. George 2005-09-30 11:13:19 MSD
(In reply to comment #4)
> > Итак, ты за введение нового тега ALDF? Это будет _новый_ тег, шаг навстречу
> докбуку.
> 
> Не понимаю твоей логики: почему новый?
Потому что до сегодняшнего дня в ALDF такого тега не было. А чем меньше тегов в
ALDF, тем короче _входной_, конвертор -- а ведь сейчас в ALDConvert входной
конвертор на два порядка сложнее выходного (как и в ReST, кстати).

Например, в данном случае можно просто _пустой_ текст вставлять в ALDF.
Во-первых, это так и есть. Во-вторых, легко проверить. В-третьих, у разных
выходных конверторов будет разная реакция. Конкретно в laTeX-е будет тебе то,
что нужно. Только чуть позже: так или иначе, но поправлять _все_ выходныен
конверторы придётся. Хорошо, что я придумал держать версию ALDF для каждого
конвертора, см. ALDConvert -V

Вообще, с введением контекстной зависимости у меня планов громадьё по резкому
сокращению количества тегов в ALDF. Пускай writer разбирается. Но это, конечно,
после выхода Compact, то есть в конце апреля :).
Comment 7 kirill 2005-09-30 23:34:37 MSD
(In reply to comment #5)
> Делать то же самое и для внутренних ссылок?

По-моему, да, делать. Ведь они же ничем не отличаются: так же могут 
иметь пустой/непустой текст ссылки, верно?
Comment 8 Fr. Br. George 2005-12-16 03:53:42 MSK
Кажется, это давно исправлено