Ditaa не выравнивается

#compilation #alignment #diagram

#Сборник #выравнивание #диаграмма

Вопрос:

Должно быть ясно, чтобы знать (для человека), как я хочу, чтобы этот файл ditaa-input выглядел

 /---------------------------
|           TEST            |
 -------------- ------------ 
| foo()        | "yuck < 3" |
 -------------- ------------ 
| bar()        | NEVEREVER! |
 -------------- ------------ 
| antlioneater | (x>5) || d |
-------------- ------------/
  

Но это не так. Посмотрите на знаки меньше / больше. Кроме того, это один не в форме antlioneater!

Что я делаю не так? Я вызвал ditaa v0.9 как ditaa -E -e utf8 test.txt .

Ответ №1:

Я предлагаю использовать другой символ, похожий на него, например и .

Это небольшая хитрость, но поскольку вывод ditaa в любом случае представляет собой изображение, обычно достаточно иметь визуально похожий символ.

Я лично использую это для встраивания HTML-разметки в мои диаграммы ditaa.

Ответ №2:

Ditaa анализирует > и < как стрелки, даже если они не прикреплены к строке ( —> ), отсюда и странный рендеринг. К сожалению, но так оно и есть!

Комментарии:

1. Спасибо за ответ! Не изучая кодовую базу ditaa, есть ли какое-либо место, которое вы бы предложили использовать для внедрения механизма выхода? Как при >, <, ^, v рендеринге стрелок, amp;>, amp;<, amp;^, amp;v (явно) рендеринге как «>, <, ^, v», amp;amp; рендеринге «amp;»?

2. Механизм экранирования усложняет выравнивание строк, содержащих экранированные символы, с теми, которые этого не делают. Будет ли amp; отображаться как пустое пространство или будет отображаться так, как будто его там не было?

3. Оставив «amp;» в качестве примера escape-символа, я бы предложил отображать future Aamp;amp;B как текущий Aamp;B . Таким образом, нет пробела между «A» и «amp;» соответственно. «amp;» и «B». Вместо этого добавьте этот символ пробела в сторону «A amp; B», в которой больше пробелов (или разделите его, если «A amp; B» должно быть по центру). Таким образом, future | Aamp;amp;B | обрабатывается как current | Aamp;B | , в то время как future | Aamp;amp;B , за которым следуют пробелы или конец строки, обрабатывается как current | Aamp;B , за которыми следуют пробелы или EOL.

4. Кроме того, если бы это было для меня, я бы ввел переключатель командной строки (например, --escape ) для совместимости с понижением, чтобы избежать взлома ранее созданных ditaas, содержащих какие-либо amp; . Учитывая это, я бы, вероятно, сделал этот переключатель опцией --escape <char> , чтобы любой мог использовать escape-символ, который ему нравится больше всего. (Кроме того, я бы, наверное, посмеялся над первой жалобой, которая использовала » » в качестве escape-символа …)