ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Четверг
11 июля
351870 Топик полностью
fk0, легенда (04.09.2012 22:12, просмотров: 69) ответил Evgeny_CD на Отметим начало нового сезона! Придумалось!!! Как сделать удобную систему разметки исходников на любом «обычном» языке программирования.
Херня. google literate programming. Не надо изобретать велосипед, всё давно изобретено... Ничто не мешает сразу в одном исходнике смешивать какой-то подвид sgml (xml как более узкое множество и неудобное для ручной правки) и какой-либо ЯВУ. Более того, редактор может сразу делать WYSWYG. А для diff и т.п. попросту отрезается часть ответственная за разметку чем-то не хитрым, вроде xsltproc. google docbook ещё. В svn естесственно должно попадать вместе с разметкой. Иначе разбираться с её версиями отдельно -- одуреешь. А вот svn diff должен во-первых выводить все строки (даже не изменившиеся), во-вторых потом должна отрезаться разметка, как сказано выше. Это не сложно. Ну и перед компиляцией разметку отрезать. Впрочем, её заранее можно завернуть в комментарии, которые тоже сделать частью и языка разметки и языка программирования. Весь вопрос за WYSWYG-редактором, на самом деле-то. Почему выше я говорю sgml -- в моём представлении (La)TeX -- это ещё тот brainfuck... и всё что на нём основано. А xml имеет слишком жёсткие требования и не подходит для ручного набора (vs классический html 90-х годов, который, естесственно, ни разу не valid xml). Ещё советую обратить взор на формат документации для perl. Не эталон, но просто для кругозора. И ещё из собственного. Пример просто: #ifdef MAKE_DOC <section> <title id="blablabla"> file.c </title> <simpara>Short description blablabla...</simpara> <para>Blablabla blablabla blablabla, blablabla.</para> <para>Blablabla <superscript>blabla</superscript> blabla, blabla <link endterm="file.h" />... </para< </section> #else #include <stdio.h> int function(int x, int y) { .... } #endif Компилируется нормальным образом. А для документации делается cpp -DMAKE_DOC | xscltproc -o documentation.html format.xsl
[ZX]