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
4312
Новый тег для моноширинного шрифта в инлайне сделать просто, а вот ковырять существующий тег 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
4312
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
4312
Держите наздоровье. Если этот текст не зеленый и не набран моноширинным шрифтом -- нажимайте 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
4312
Circiter в сообщении #508163 писал(а):
Или все нормально?

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

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

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



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

Сейчас этот форум просматривают: нет зарегистрированных пользователей


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

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