2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




Начать новую тему Ответить на тему На страницу 1, 2  След.
 
 Параметр inline тега code/syntax (коллективная просьба)
Сообщение24.11.2011, 11:06 
Заслуженный участник


26/07/09
1559
Алматы
Здравствуйте, давно назревало желание попросить о добавлении параметра (атрибута) inline к тегу [cоde] или [syntаx]. Эта возможность необходима для семантического и визуального выделения небольших фрагментов программного кода без создания отдельного выключенного окружения.

Параметр может просто менять атрибуты шрифта так, чтобы фрагмент кода совпадал по внешнему своему виду с текстом окружения [cоde] (маленький зеленый моноширинный) или же он может обрабатываться движком подсветки синтаксиса в inline-режиме (в этом случае должен учитываться параметр-атрибут lang тега [syntаx]). Опционально может быть запрещено использование переносов строки в содержимом тега.

Пример: Размеченный текст [cоde inline]int main(){/*comment*/ return 0;}[/cоde] должен давать что-то вроде \definecolor{mygreen}{HTML}{008000}\small\sffamily\mdseries{\color{blue}int} main()\{{\color{mygreen}/*comment*/} {\color{blue}return} 0;\} или int main(){/*comment*/ return 0;}.

Возможно ли осуществление такого желания?

Решение о создании этой темы появилось после небольшого обсуждения этой проблемы с участником arseniiv. Поэтому можно считать, что просьба исходит от целого коллектива пользователей форума (как минимум 2 человека, причем помешанных). :)

Учитывая возникшие в прошлом технические проблемы с разбором смайликов, можно предположить, что добавление нового тега, вроде tt не есть простая секундная формальность. Но вместе с тем не видится затруднений с добавление параметра к уже существующему тегу.

В добавок, у arseniiv'а возникла неплохая идея об опять таки технически вполне реализуемой корректировке CSS-стиля существующих окружений [cоde]/[syntаx] с целью указания более приемлемого шрифта без засечек. Впрочем, эта затея, по-видимому, тоже не совсем тривиальна и упирается в вопросы web-дизайна, а именно в обеспечение кросс-браузерной совместимости при использовании нестандартных (?) шрифтов (моноширинный рубленный).

Алюминь.

 Профиль  
                  
 
 Re: Параметр inline тега code/syntax (коллективная просьба)
Сообщение24.11.2011, 11:47 
Основатель
Аватара пользователя


11/05/05
4313
Новый тег для моноширинного шрифта в инлайне сделать просто, а вот ковырять существующий тег code я воздержусь, ибо там много тонкостей в его реализации, и легко наделать ошибок.

Syntax -- вообще специальный случай, потому что работает в обход системы bbcode, потому и не дружит со смайликами и другими тегами.

В общем, дайте знать, если простейшая реализация устроит ваш коллектив :-)

 Профиль  
                  
 
 Re: Параметр inline тега code/syntax (коллективная просьба)
Сообщение24.11.2011, 16:16 
Заслуженный участник


26/07/09
1559
Алматы
Спасибо за отклик! Надо же, не думал, что отдельный тег проще. А как это повлияет на существовавшие до его введения сообщения? Они же могут испортится. :)

Какой тег возможно приспособить для этого? Возможно tt или inline... Главное, чтобы имитировался (точнее говоря, использовался тот же самый) шрифт тега [cоde] (фон скорее всего не нужен, только текст).

А у syntax'а там никакой соответсвующей недокументированной опции нет? Просто там вон сколько всего, даже отдельные строчки подсвечивать можно, нумерацию включать, вот я и подумал, может есть и inline-реализация...

Ладно, это не обязательно, достаточно простейшего выделения отдельным тегом. А как насчет рубленности? Это возможно, хотя бы в будущем? Или стоит забыть?

Ещё раз спасибо.

 Профиль  
                  
 
 Re: Параметр inline тега code/syntax (коллективная просьба)
Сообщение24.11.2011, 20:15 
Основатель
Аватара пользователя


11/05/05
4313
Circiter в сообщении #507370 писал(а):
Какой тег возможно приспособить для этого?

Думаю, tt сойдет.

Circiter в сообщении #507370 писал(а):
А как это повлияет на существовавшие до его введения сообщения?


Ну если кто-то использовал этот тег просто так, до его введения, то он будет распарсен и обработан как положено.

Circiter в сообщении #507370 писал(а):
А у syntax'а там никакой соответсвующей недокументированной опции нет?

Хм, надо посмотреть. Но я не помню такого.

Circiter в сообщении #507370 писал(а):
А как насчет рубленности?

Я не понял, о чем именно речь; можно ли с картинками пояснить, как для дураков?

 Профиль  
                  
 
 Re: Параметр inline тега code/syntax (коллективная просьба)
Сообщение24.11.2011, 20:44 
Заслуженный участник


26/07/09
1559
Алматы
2cepesh
Цитата:
Я не понял, о чем именно речь; можно ли с картинками пояснить, как для дураков?

{\Huge\sffamily Без засечек}\quad versus\quad{\Huge С засечками}

Например, основной шрифт форума -- рубленный (без засечек, т.е. без оптимизированных для печати ограничительных "черточек" у символов, лишних при экранном просмотре), а в теге [cоde] сейчас -- с засечками:
Код:
ABCDEFGH


Вообще, у arseniiv'а какое-то более конкретное предложение было, видимо он глубже копал. Поэтому давайте по поводу второй части просьбы все-таки дождемся его, ok? Куда-то он исчез.

 Профиль  
                  
 
 Re: Параметр inline тега code/syntax (коллективная просьба)
Сообщение24.11.2011, 21:27 
Заслуженный участник


27/04/09
28128
Подтверждаю, что я тоже прошу эту возможность. Сейчас дочитаю тему до конца. Дочитал.

Простите, что исчез.

О шрифтах: сейчас, наверно, в CSS, касающегося тега [code], написано что-то такое:
Код:
font-family: monospace, Courier New;
Предлагаю всего-навсего туда дописать DejaVu Sans Mono, Consolas (мне-то последний только нужен, но тогда те, кому он не нравится, обидятся. Не помню, какие ещё есть моноширинные шрифты, удобные на глаз, но можно бы добавить и ещё).

И если тогда вы захотите туда много шрифтов повписать кроме этих, то вот ещё нашёл обзор здесь.

 Профиль  
                  
 
 Re: Параметр inline тега code/syntax (коллективная просьба)
Сообщение25.11.2011, 00:14 
Заслуженный участник


26/07/09
1559
Алматы
К этому вопросу необходимо подходить аккуратнее. Лично вы у себя локально можете раскрасить любимые теги dxdy как угодно, например opera точно позволяет применять пользовательские css к сайту. Но в публичном css'е надо подобрать шрифты так чтобы они гарантированно были у большинства пользователей.

Кстати, порядок следования шрифтов в css-стиле тоже ведь важен, сначала (левее) должны идти наиболее подходящие шрифты, потом компромиссные, и в конце -- заведомо имеющиеся (курьер). Вроде так?

А может быть есть возможность использовать моноширинные рубленные шрифты не выходя из стандартных наборов? Попробую поразбираться...

-- Пт ноя 25, 2011 03:23:25 --

Сейчас шрифт тега [cоde], оказывается, описывается как font-weight:normal;color:#006600;font-size:0.85em;font-family:Monaco, 'Courier New', monospace;.

-- Пт ноя 25, 2011 03:38:44 --

Другими словами, владельцы гарнитуры Monaco, e.g. пользователи Mac'а уже видять код на dxdy без засечек. У меня этот шрифт, к примеру, не установлен и браузер подсовывает серифный новый курьер.

Шрифт Concolas мне что-то не нравится. У него старомодный перечеркнутый ноль и необходимость использования продвинутого сглаживания (он оптимизирован для ClearType).

В общем, поиграться со стилем конечно стоит, например начать с вписывания той же Lucida Console перед Courier New, но и оставить все как есть тоже наверное можно. Насколько я знаю, Monaco свободно скачивается (?).

Можно порекомендовать такой шрифтовый стек: font-family: Consolas, Monaco, 'Deja Vu Sans Mono', 'Lucida Console', 'Courier New', monospace;

FIXME: Уточнить название Deja Vu Sans Mono (нужен ли пробел между Deja и Vu). :)

Главный вопрос, насколько это все дружит с кириллицей и/или юникодом? Не, я лично бы предпочел игнорировать проблему и писать код только латиницей, благо 1С'ники пока не тревожат, :) но все равно, иногда попадаются комментарии на русском (раз в год)... Не знаю в общем, но проголосовал бы в любом случае в пользу рубленности, сам-то кириллицей в программном коде не пользуюсь...

 Профиль  
                  
 
 Re: Параметр inline тега code/syntax (коллективная просьба)
Сообщение25.11.2011, 12:49 
Заслуженный участник


27/04/09
28128
Circiter в сообщении #507575 писал(а):
Но в публичном css'е надо подобрать шрифты так чтобы они гарантированно были у большинства пользователей.
Так для того там список и нужен — выбираются с начала и, если не найден, продвигаются в конец. Если ничего не помогло, последним, как правило, стоит где serif, где sans, где monospace, который браузер заменяет выбранным по умолчанию шрифтом (пользователь как раз этот сам выбирает на случай провала в стилях). [А, ну вот, вы же сами этот эффект уже подметили.] :-)

Не, пробел между Deja и Vu сдесь не нужен.

Предложенные мной два дружат с кириллицей, а первый сильно дружит с уникодом. Второй тоже ничего так.

Circiter в сообщении #507575 писал(а):
старомодный перечеркнутый ноль
Разве он не улучшает отделение 0 от О? Они и в моноширинных, конечно, по ширине различаются, но не так уж и сильно! :roll:

 Профиль  
                  
 
 Re: Параметр inline тега code/syntax (коллективная просьба)
Сообщение25.11.2011, 22:27 
Заслуженный участник


26/07/09
1559
Алматы
2arseniiv
Цитата:
Не, пробел между Deja и Vu сдесь не нужен.

Гугл дает противоречивые результаты поиска. Необходимо уточнение на основе оригинального источника. Если вам не сложно, предоставьте ссылку.

Цитата:
Разве он не улучшает отделение 0 от О?

Это актуально на маленьких кеглях или консолях малого разрешения. В хороших шрифтах перечеркнутый ноль (или ноль с точкой) -- просто дань старому стилю. Как говорится, дело вкуса. Все равно, как видите, в рекомендованный список шрифтов я включил эту гарнитуру первой (несмотря на ноль).

Ещё пару вопросов. Во-первых, что вы думаете о предложенном мной стеке шрифтов? Годится? Во-вторых, нет ли проблем у какого-нибудь из них с зависимостью ширины символа от насыщенности? Скажем, движок подсветки, обрабатывающий тег [syntаx], может (?) выделять ключевые слова полужирным, не изменит ли это ширину таких слов и не приведет ли к порче выравнивания текста кода?

2cepesh
Каким будет ваше решение по поводу добавления тега tt и модификации css-стиля шрифта тегов [cоde] и [syntаx] в соотвествии с приведенным выше упорядоченным списком гарнитур?

 Профиль  
                  
 
 Re: Параметр inline тега code/syntax (коллективная просьба)
Сообщение25.11.2011, 22:47 
Заслуженный участник


27/04/09
28128
Circiter в сообщении #508075 писал(а):
Если вам не сложно, предоставьте ссылку.
Предоставляю. :-) http://dejavu-fonts.org/wiki/Main_Page
Ещё могу заверить, что в ворде и в диалогах шрифтов у меня их название именно DejaVu XXXX, т. е. клиенты воспринимают его именно так, и нет сомнений, что браузеры воспримут его точно таким же, несмотря на возможные нестыковки каких-нибудь разных видов названий в файле шрифта, если такие есть.

Circiter в сообщении #508075 писал(а):
Ещё пару вопросов. Во-первых, что вы думаете о предложенном мной стеке шрифтов? Годится? Во-вторых, нет ли проблем у какого-нибудь из них с зависимостью ширины символа от насыщенности? Скажем, движок подсветки, обрабатывающий тег [syntаx], может выделять ключевые слова полужирным, не изменит ли это ширину таких слов и не приведет ли к порче выравнивания текста кода?
Напишу наоборот. Вроде бы нерушимый запрет менять ширину в полужирном варианте в случае этих шрифтов. Все указанные вами шрифты, кроме Monaco (тут я не знаю), точно имеют ширину одинаковую для bold и regular. Стек? Хороший стек! Только я не умею судить сразу за мног человек, но ведь всё это в будущем исправимо!

Выглядит странным, что вы всё время спрашиваете, как мне пойдёт. :-) Кажется, всё просто замечательно выглядит! А вот вам самому нравится?

 Профиль  
                  
 
 Re: Параметр inline тега code/syntax (коллективная просьба)
Сообщение25.11.2011, 23:52 
Заслуженный участник


26/07/09
1559
Алматы
2arseniiv
Цитата:
Выглядит странным, что вы всё время спрашиваете, как мне пойдёт

Не, ну вопросы-то подразумевали объективное мнение. И направлены были на выработку оптимального решения с превентивной ликвидацией возможных подводных граблей.

Сейчас всё более-менее ясно, слово за админом.

 Профиль  
                  
 
 Re: Параметр inline тега code/syntax (коллективная просьба)
Сообщение25.11.2011, 23:55 
Основатель
Аватара пользователя


11/05/05
4313
Держите наздоровье. Если этот текст не зеленый и не набран моноширинным шрифтом -- нажимайте Ctrl+F5 или Ctrl+R или что там у вас очищает кеш.

 Профиль  
                  
 
 Re: Параметр inline тега code/syntax (коллективная просьба)
Сообщение26.11.2011, 00:12 
Заслуженный участник


27/04/09
28128
«…Используйте f /@ e или, что то же самое, Map[f, e]…»

Спасибо!! :D

P. S. Так вот отчего форум был недоступен. :mrgreen:

 Профиль  
                  
 
 Re: Параметр inline тега code/syntax (коллективная просьба)
Сообщение26.11.2011, 01:03 
Заслуженный участник


26/07/09
1559
Алматы
2cepesh
Здорово. Но остались вопросы. Разве цвет #060 равен #006600? И почему размер решили не трогать?

Сравните:
Код:
class Lift
{
    public:
        void Up();
        void Down();
};


Или все нормально? А может быть, наоборот, у тега [cоde] размер увеличить? Подумайте над этим пожалуйста.

А так все хорошо. Спасибо.

 Профиль  
                  
 
 Re: Параметр inline тега code/syntax (коллективная просьба)
Сообщение26.11.2011, 01:14 
Основатель
Аватара пользователя


11/05/05
4313
Circiter в сообщении #508163 писал(а):
Или все нормально?

Все нормально )

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 20 ]  На страницу 1, 2  След.

Модераторы: cepesh, Forum Administration



Кто сейчас на конференции

Сейчас этот форум просматривают: YandexBot [bot]


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group