Jun. 19th, 2015

akuklev: (ДР Цертуса 2011)
Придумал клёвую мысль: литературное программирование, это же когда не комменты отмечаются в коде, а код в "комментах", следовательно в идеале исходник программы должен быть маркдауном с вкраплёнными кусками кода, благо в языках питоновского типа они автоматически индентированы, а первая строка помечена ключевым словом, обозначающим что дальше пойдёт код: def, structure, object, theorem и т.д.

Так вот, оказалось что эта идея (причём в качестве языка комментов взят в точности маркдаун) уже применена в literate coffescript, единственное в кофескрипте нету ключевых слов интродукции сущностей, что чуть ухудшает внешний вид: индентить нужно не только тело, как в любом исходнике, но весь код.

Ну и идея не доведена до логического завершения: в отличие от CWEB, тут нету умных инклудов и возможности augment'ить (это когда какую-то секцию кода недописали, оставив там многоточие в конце, которое оператор throws NotYetImplementedException, отвлеклись на что-то другое, а потом сказали augment SectionName: и написали, на что многоточия заменять) и ammend'ить секции (это когда к уже написанным секциям с аннотацией, что определение @preliminary или @incomplete, применяются трансформации). Я думаю, что амменды и аппенды должны поддерживаться самим языком в рамках общей поддержки аспектно-ориентированности, а инклуды в любом синтаксически допустимом месте в рамках поддержки макросов. Ну и ссылки на идентификаторы в litcoffee не саморесолвятся, а чего, казалось бы, нет чтобы заюзать для инклюзии валидных кусков кода специально зарезервированную под это конструкцию [code].
akuklev: (ДР Цертуса 2011)
В SGMLе была концепция просто тега, это нетекстовый элемент, вставленный в текст, например картинка <img ...> или буллит <li> или место, где курсор стоит <cur>. Тег это нетекстовая вставка или markup-modifier. Там для текстов придумали маркап модифаеры Italic и Bold, и соответственно их отменялки записываемые по аналогии и зачеркнутым знаком равенства /= через /I и /B, а отображать планировалось, как и не-равно, накладывая черту на букву. Так вот, <I>вот <B>это<I> вот<B> — корректный SGML.

Конь-цепция, что это оказывается открывающие и закрывающие теги и должна соблюдаться структура вложенности, это потом извратили, и ещё и в стандарт XML превратили, на стыд. На самом деле, когда в текст вкрапляется не маркап модифаер, а отдельная инлайновая сущность: формула, вставка кода, цитата, картинка, редакторская пометка, туда надо вставлять _один_ тег с контентом. И синтаксис должен быть навроде <formula[ ax^2 - b/2 ]>, с опциональным дублированием тега в закрывающей части и возможностью указывать параметры с любой стороны: <quote[и плакала Рыва, бо влюбилась в гоя] source=unknown>, и даже дефолтным тегом (в качестве которого логично взять media): <[smiley] /images/smiley.png>.

В XMLе идеи настолко извращены, что для обычных тегов даже введено новое обозначение и /> в конце, нарушающим всю визуальную симметрию. Позорная вещица, всё таки. Хорошо что HTML5 ушел от XMLя. Жду-недождусь, что может и идея "тегов с контентом" со вменяемым синтаксисом оживёт, депрекейтя открывающие и закрывающие теги там, где требуется вложенность.

* * *

Ну а дальше хочется, чтобы разные маркдауны могли такой HTML содержать на случаи, когда он нужен, потому что он расширяем (всяким там реактом) и хорош на случай, если в середину контента надо какой, нибудь интерактивный элемент вставить, форму сделать, или сложный лейаут на flexbox'е с бутстрапом сделать. Задача же самого маркдауна только в том, чтобы сделать интуитивные и визуально привлекательные шорткаты для самых распространённых элементов текста: выделение смысловых ударений (emph), ключевых слов и словосочетаний (strong), ссылки, сноски, библиоссылки, перекрестные ссылки, цитаты, микроформатная разметка, редакторская разметка, нумерованные и ненумерованные списки, списки определений, заглавия, абзацы, типированные секции и абзацы (цитаты, эпиграфы, примечания, определения, правила, теоремы, врезки и выноски), астеризмы (в форме горизонтальных полос, звёздочек, виньеток, оформление стихов, возможно также таблиц.

December 2016

S M T W T F S
    123
456789 10
11121314151617
18192021222324
25262728293031

Style Credit

Expand Cut Tags

No cut tags
Page generated Aug. 31st, 2025 03:37 pm
Powered by Dreamwidth Studios