#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-символа …)