Some HAT... |
= Анабар.ru |
| Вход | Регистрация | |
Чтобы иметь возможность писать сообщения в форум
Нужно либо осуществить вход (для зарегистрированных пользователей), либо зарегистрироваться и войти. Для этих действий в верхнем правом углу каждой станицы (непосредственно после зеленоватой линии) существуют две ссылки: Вход и Регистрация.Правила оформления сообщения
Существуют всего два простых, хотя и не очевидных правила оформления сообщений:
Абзацы друг от друга нужно отделять пустыми строками.
Для того, чтобы сохранить всю разметку какой-то части сообщения, т.е. оставить на месте все пробелы, переносы, сохранить отступы и т.п., нужно заключить эту часть в конструкцию [code:langname] ....... [/code]. Как правило это требуется, если внутри вашего сообщения содежится исходный код на каком-нибудь языке программирования или языке разметки. Здесь langname — как раз и есть имя этого языка.
Чуть подробнее об использовании [code:langname]
Какие языки поддерживатся? Т.е., какие значения может принимать langname? Точное число вариантов мне назвать затруднительно, но большинство языков программирования и разметки поддеживается, включая самые неожиданные (часть из которых настолько сумеречна, что, вероятно, никому из читателей никогда не доведётся видеть кода на этих языках). Вот некоторые из известных: python, tex, cpp, html, javascript, c, perl и многие другие. Полный список подготовлю позже.
Хотя указание :langname не обязательно, но это поможет «движку» форума сделать подсветку синтаксиса в этой части сообщения строго согласно грамматике языка langname. Например, Вы хотите процитировать некоторый код на языке Python, тогда Вам нужно написать следующее
[code:python] import sys, traceback, os, time, re, types from os.path import exists, isfile from string import atol, atoi, split, lstrip from cgi import * def someSum(i_filename): '''Функция считает сумму...''' summa, lines = 0, [] fullname = "/var/tmp/" + i_filename if exists(fullname) and isfile(fullname): try: fp = open( "/var/tmp/" + i_filename, "rb") lines = fp.readlines(); fp.close() except: pass else: return summa for lin in lines: a = 0 try: a = atoi(lin) except: pass summa += a return summa [/code]Вы получите такой результат на выходе:1 import sys, traceback, os, time, re, types 2 from os.path import exists, isfile 3 from string import atol, atoi, split, lstrip 4 from cgi import * 5 6 def someSum(i_filename): 7 '''Функция считает сумму...''' 8 summa, lines = 0, [] 9 fullname = "/var/tmp/" + i_filename 10 if exists(fullname) and isfile(fullname): 11 try: 12 fp = open( "/var/tmp/" + i_filename, "rb") 13 lines = fp.readlines(); fp.close() 14 except: 15 pass 16 else: return summa 17 18 for lin in lines: 19 a = 0 20 try: a = atoi(lin) 21 except: pass 22 summa += a 23 return summaТ.е. получился вполне читабельный питоновский код. Строки в нём также автоматически пронумерованы. Мне кажется это полезным, особенно при цитировании, ведь очень просто можно указать строку.
В сообщении может быть несколько последовательных конструкций [code:langname] ....... [/code], перемежающихся с текстом; при этом языки langname могут быть различными. Вложенные конструкции [code:langname] ....... [/code] не распознаются, — на мой взгляд это совершенно не нужно.
Дополнительные свойства обработчика сообщений
Помимо вышеприведённых правил существует ещё несколько деталей, на которые стоит обратить внимание. Ниже приведена таблица в которой показано, какие ещё замены происходят. Это оценят те, кто привык различать три вида тире, а также предпочитает «кавычки-ёлочки» знакам "дюйма".
Что меняем На что меняем Примечание Символы Комментарий Символ Комментарий Табуляция 4 пробела происходит повсеместно --- Три дефиса подряд — длинное тире за исключением блоков [code]...[/code] -- Два дефиса подряд – короткое тире за исключением блоков [code]...[/code] << Два знака 'меньше' подряд « левая кавычка-ёлочка за исключением блоков [code]...[/code] >> Два знака 'больше' подряд » правая кавычка-ёлочка за исключением блоков [code]...[/code] Программисты пусть обратят внимание на первую строку: знак табуляции ВСЕГДА и неотвратимо заменяется на четыре пробела. Незнание сего обстоятельства может привести к неожиданным результатам.
Vasily Ivanov,
29 января 2004 г.,
Исправлено 22 мая 2006 г.