Ru-Board.club
← Вернуться в раздел «Тестирование»

» Тест подсветки кода

Автор: batva
Дата сообщения: 13.09.2004 01:20
[code=perl]
sub parse {
my ($self,$raw_cookie) = @_;
my %results;

my(@pairs) = split("; ?",$raw_cookie);
foreach (@pairs) {
s/\s*(.*?)\s*/$1/;
my($key,$value) = split("=");

# Some foreign cookies are not in name=value format, so ignore
# them.
next if !defined($value);
my @values = ();
if ($value ne '') {
@values = map CGI::unescape($_),split(/[&;]/,$value.'&dmy');
pop @values;
}
$key = unescape($key);
# A bug in Netscape can cause several cookies with same name to
# appear. The FIRST one in HTTP_COOKIE is the most recent version.
$results{$key} ||= $self->new(-name=>$key,-value=>\@values);
}
return \%results unless wantarray;
return %results;
}

[/code]


[code=php]
<pre>
<?php

include "classes.inc";

// функции-утилиты

function print_vars($obj)
{
$arr = get_object_vars($obj);
while (list($prop, $val) = each($arr))
echo "\t$prop = $val\n";
}

function print_methods($obj)
{
$arr = get_class_methods(get_class($obj));
foreach ($arr as $method)
echo "\tfunction $method()\n";
}

function class_parentage($obj, $class)
{
if (is_subclass_of($GLOBALS[$obj], $class)) {
echo "Object $obj belongs to class " . get_class($$obj);
echo " a subclass of $class\n";
} else {
echo "Object $obj does not belong to a subclass of $class\n";
}
}

// создание экземпляров объектов

$veggie = new Vegetable(true, "blue");
$leafy = new Spinach();

// распечатка информации об объектах
echo "veggie: CLASS " . get_class($veggie) . "\n";
echo "leafy: CLASS " . get_class($leafy);
echo ", PARENT " . get_parent_class($leafy) . "\n";
[/code]


[code=c]
int FindMax(int n1, int n2)
{
if (n1 > n2)
{
return n1;
}
else
{
return n2;
}
}

void PrintMax(int someNumber)
{
cout << "The max is " << someNumber << endl;
}

void PrintHW()
{
cout << "Hello World" << endl;
}

float FtoC(float faren)
{
float factor = 5./9.;
float freezing = 32.0;
float celsius;

celsius = factor * (faren - freezing);

return celsius;
}
[/code]

[code=sql]
BEGIN
SET NOCOUNT ON

DECLARE @sql varchar(500) --Holds to SQL needed to create columns from error log

IF (SELECT OBJECT_ID(@log_name,'U')) IS NOT NULL
BEGIN
IF @overwrite = 0
BEGIN
RAISERROR('Table already exists. Specify another name or pass 1 to @overwrite parameter',18,1)
RETURN -1
END
ELSE
BEGIN
EXEC('DROP TABLE ' + @log_name)
END
END


--Temp table to hold the output of sp_readerrorlog
CREATE TABLE #errlog
(
err varchar(1000),
controw tinyint
)

--Populating the temp table using sp_readerrorlog
INSERT #errlog
EXEC sp_readerrorlog @log_number

--This will remove the header from the errolog
SET ROWCOUNT 4
DELETE #errlog
SET ROWCOUNT 0


SET @sql = 'SELECT
CONVERT(DATETIME,LEFT(err,23)) [Date],
SUBSTRING(err,24,10) [spid],
RIGHT(err,LEN(err) - 33) [Message],
controw
INTO ' + QUOTENAME(@log_name) +
' FROM #errlog ' +
'WHERE controw = 0'

--Creates the table with the columns Date, spid, message and controw
EXEC (@sql)

--Dropping the temporary table
DROP TABLE #errlog

SET NOCOUNT OFF
PRINT 'Error log successfully imported to table: ' + @log_name
END

[/code]

[code=html]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>Яndex</title>
<link rel="SHORTCUT ICON" href="/favicon.ico">
<base target="_top">
</head>
<body bgcolor="white" text="black" link="999999" vlink="999999" alink="999999"
onLoad="if( self.parent.frames.length != 0 ) self.parent.location = document.location">
<table height="100%" width="100%" border="0">
<tr>
<td align="center">
<form name="web" method="get" action="http://www.yandex.ru/yandsearch">
<input type="hidden" name="rpt" value="rad">
<table border="0" cellspacing="10" cellpadding="0">
<tr>
<td><a href="http://www.yandex.ru/"><img src="logo.gif" alt="Яндекс" width="76" height="44" border="0" /></a></td>
<td><input type="text" name="text" size="50" value="" maxlength="160" /></td>
<td><input type="submit" value="Найти!" /></td>
</tr>
</table>
</form>
<script><!--
document.web.text.focus()
// --></script>
</td>
</tr>
<tr>
[/code]

[code=css]
<style><!--
body,td,div,.p,a{font-family:arial,sans-serif }
div,td{color:#000}
.f,.fl:link{color:#6f6f6f}
a:link,.w,a.w:link,.w a:link{color:#00c}
a:visited,.fl:visited{color:#551a8b}
a:active,.fl:active{color:#f00}
.t a:link,.t a:active,.t a:visited,.t{color:#000}
.t{background-color:#e5ecf9}
.k{background-color:#36c}
.j{width:34em}
.h{color:#36c}
.i,.i:link{color:#a90a08}
.a,.a:link{color:#008000}
.z{display:none}
div.n {margin-top: 1ex}
.n a{font-size:10pt; color:#000}
.n .i{font-size:10pt; font-weight:bold}
.q a:visited,.q a:link,.q a:active,.q {color: #00c; }
.b{font-size: 12pt; color:#00c; font-weight:bold}
.ch{cursor:pointer;cursor:hand}
.e{margin-top: .75em; margin-bottom: .75em}
.g{margin-top: 1em; margin-bottom: 1em}
//-->
</style>
[/code]

[code=javascript]
function ss(w){window.status=w;return true;}
function cs(){window.status='';}
function clk(el,ct,cd) {
if(document.images){
(new Image()).src="/url?sa=T&ct="+escape(ct)+"&cd="+escape(cd)+"&url="+escape(el.href);}
return true;
}
function ga(o,e){if (document.getElementById){
a=o.id.substring(1); p = "";r = "";g = e.target;
if (g) { t = g.id;f = g.parentNode;
if (f) {p = f.id;h = f.parentNode;if (h) r = h.id;}}
else{h = e.srcElement;f = h.parentNode;
if (f) p = f.id;t = h.id;
}
if (t==a || p==a || r==a) return true;
location.href=document.getElementById(a).href}
}
[/code]

http://forum.ru-board.com/topic_c3.cgi?forum=2&topic=1289
Автор: xntx
Дата сообщения: 13.09.2004 01:31
уррааа!! батва, урааааа! баттва, урааааааа!
а почему еще полностью не прикрутил?
только вот цвета бы поменять на красные/синие/зеленые вместо розовых/фиолетовых/кислотных

Добавлено
насчет того что я тебе в ПМ сказал:
[code=php]
<?php
$message = $_POST['message'];
$img_open = preg_quote ('[img]');
$img_close = preg_quote ('[/img]');
$message = preg_replace ("/".$img_open."http:\/\/(.+?)".$img_close."/i", "<img src='http://".str_replace('\'', '&quot;', $1)."'>", $message);
print $message;
?>
[/code]

[no][code=php]
<?php
$message = $_POST['message'];
$img_open = preg_quote ('[img]');
$img_close = preg_quote ('[/img]');
$message = preg_replace ("/".$img_open."http:\/\/(.+?)".$img_close."/i", "<img src='http://".str_replace('\'', '&quot;', $1)."'>", $message);
print $message;
?>
[/code][/no]

(программисты не бейте меня, я не смотрел манюал, и не знаю будет ли работать там str_replace; но это я так, для примера...

Добавлено
ЗЫ: ну и линии кода можно было бы обрезать...

Добавлено
а еще лучше как на других форумах, запихивать в <iframe></iframe>, и две кнопочки, чтоб больше, и чтоб меньше размер был
Автор: batva
Дата сообщения: 13.09.2004 02:09
цвета тут -->
Поменяй на свое усмотрение.



Цитата:
а почему еще полностью не прикрутил?

Потому что тормозит. Нужно еще кеширование сделать.
И еще непонятно, нужно оно вообще.

Не форум, а гирлянда.
Разве что на новый год включать.



Добавлено
Да и глючит еще все.
Автор: Cheery
Дата сообщения: 13.09.2004 02:57
batva

Цитата:
Потому что тормозит.

дык.. только при постинге и модификации.. не каждый раз подсветку то создавать заново.
Автор: batva
Дата сообщения: 13.09.2004 03:32
xntx
по поводу кодов внутри [code]
исправил.

остальные баги, типа &quot; тоже еще нужно отлавливать..



Цитата:
ЗЫ: ну и линии кода можно было бы обрезать...

какие линии?


Цитата:
а еще лучше как на других форумах, запихивать в <iframe></iframe>, и две кнопочки, чтоб больше, и чтоб меньше размер был

покажи пример плииз.
я не видел такое, наверно мало по другим форумам хожу.

Cheery

Цитата:
дык.. только при постинге и модификации.. не каждый раз подсветку то создавать заново.


Не знаю что лучше, парсить в обратную сторону, или сделать кеширование. (Один раз прошлись по коду, потом берем из кеша вплоть до перезапуска apache.)
Кеш храним в DB файле.



Автор: Cheery
Дата сообщения: 13.09.2004 03:49
batva
думаю, что в обратную.. иначе придется каждый раз при перезапуске.. маленькая, но выгода.
Автор: batva
Дата сообщения: 13.09.2004 04:00
Cheery
вот с кешированием.
http://forum.ru-board.com/topic_c2.cgi?forum=2&topic=1289

вот без
http://forum.ru-board.com/topic_c.cgi?forum=2&topic=1289

сравни на глаз выигрыш в скорости.

Добавлено
А это с постоянно висящим в памяти
http://forum.ru-board.com/topic_c3.cgi?forum=2&topic=1289
Автор: Cheery
Дата сообщения: 13.09.2004 04:08
не могу.. комп считает и тормозит.
поэтому по разному все страницы открываются.
Автор: batva
Дата сообщения: 13.09.2004 04:22
Первое попавшееся в гугле
http://www.websiteoptimization.com/services/analyze/
но не то.

Этот измеряет время загрузки, а не отклика.



Добавлено
[code=python]
"""Python implementation of the access control machinery."""

import os
import string

from Acquisition import aq_base
from ExtensionClass import Base
from zLOG import LOG, PROBLEM

# This is used when a permission maps explicitly to no permission. We
# try and get this from cAccessControl first to make sure that if both
# security implementations exist, we can switch between them later.
try:
from cAccessControl import _what_not_even_god_should_do
except ImportError:
_what_not_even_god_should_do = []

from AccessControl import SecurityManagement
from AccessControl import Unauthorized
from AccessControl.SimpleObjectPolicies import Containers, _noroles
from AccessControl.ZopeGuards import guarded_getitem


# AccessControl.PermissionRole
# ----------------------------

_ident_chars = string.ascii_letters + string.digits + "_"
name_trans = filter(lambda c, an=_ident_chars: c not in an,
map(chr, range(256)))
name_trans = string.maketrans(''.join(name_trans), '_' * len(name_trans))


def rolesForPermissionOn(perm, object, default=('Manager',)):
"""Return the roles that have the given permission on the given object
"""
im = imPermissionRole()
im._p = '_' + string.translate(perm, name_trans) + "_Permission"
im._d = default
return im.__of__(object)


class PermissionRole(Base):
"""Implement permission-based roles.

Under normal circumstances, our __of__ method will be
called with an unwrapped object. The result will then be called
with a wrapped object, if the original object was wrapped.
To deal with this, we have to create an intermediate object.

"""

def __init__(self, name, default=('Manager',)):
self.__name__ = name
self._p = '_' + string.translate(name, name_trans) + "_Permission"
self._d = self.__roles__ = default

def __of__(self, parent):
r = imPermissionRole()
r._p = self._p
r._pa = parent
r._d = self._d
p = getattr(parent, 'aq_inner', None)
if p is not None:
return r.__of__(p)
else:
return r



[/code]
Автор: Eric Lazzy
Дата сообщения: 13.09.2004 08:59

Цитата:
сравни на глаз выигрыш в скорости

а у меня всё одинаково быстро
Автор: xntx
Дата сообщения: 13.09.2004 13:56
batva

Цитата:
покажи пример плииз.

http://forum.siemens-club.ru/viewtopic.php?TopicID=35764&page=1
9тый пост сверху, там кода огого, а на странице (визуально) место не занимает пока не развернешь

Цитата:
сравни на глаз выигрыш в скорости.

ну разница конечно есть...

Цитата:
остальные баги, типа &quot; тоже еще нужно отлавливать..

это не баг, это я прописал &quot; (тоесть это фича )

Цитата:
какие линии?

всмысле когда сильно много кода в одной строке, даже если с пробелами, то все-равно разезжается...
Автор: batva
Дата сообщения: 13.09.2004 14:47
xntx

Цитата:
это не баг, это я прописал &quot; (тоесть это фича )

да, ты так написал, но подсветка заменила кавычкой.

http://forum.ru-board.com/topic_c3.cgi?forum=2&topic=1289#2

Значит это баг.




Цитата:
всмысле когда сильно много кода в одной строке, даже если с пробелами, то все-равно разезжается...

ага, это потому что я поставил <pre>
если убрать, тогда как отступы(табы) форматировать?




Цитата:
http://forum.siemens-club.ru/viewtopic.php?TopicID=35764&page=1
9тый пост сверху, там кода огого, а на странице (визуально) место не занимает пока не развернешь


ага, интересная фича.
Это их, или в движке в том присутствует?

Пойду гляну на сайт движка, это tForum

Добавлено

Код:
if ($a){
print "hello";
}
else{
print "hello2";
}
Автор: xntx
Дата сообщения: 14.09.2004 23:51
да уж, цвета нормальные подобрать у меня не получилось...
Автор: batva
Дата сообщения: 15.09.2004 22:40
xntx

Цитата:
да уж, цвета нормальные подобрать у меня не получилось...

Значит оставляем эти?
Автор: xntx
Дата сообщения: 15.09.2004 22:44
batva
похоже что да
Автор: Cheery
Дата сообщения: 24.02.2008 23:06
Эх.. доработал бы кто это
http://shjs.sourceforge.net/
чтобы выглядело как (внешнее представление, не больше)
http://code.google.com/p/syntaxhighlighter/
времени нету
ps: это не сложно, на самом деле
Автор: KADABRA
Дата сообщения: 25.02.2008 00:06

Цитата:
http://shjs.sourceforge.net/

Похоже скоро для того чтобы почитать форум нужен будет 4-х ядерный процессор и 8ГБ оперативки...
Автор: Cheery
Дата сообщения: 25.02.2008 00:08
KADABRA

Цитата:
Похоже скоро для того чтобы почитать форум нужен будет 4-х ядерный процессор и 8ГБ оперативки...

это все равно лучше, чем грузить сервер..
тем более там ничего с нагрузкой нет, как и вообще на руборде.
js есть, но он "не работает" постоянно.
плюс подсветку, опять же, можно будет вырубить.
и если делать, то чтобы подгружались те языки, которые есть на данной странице, а не все сразу
Автор: KADABRA
Дата сообщения: 25.02.2008 00:13
Каждый скрипт всё-таки увеличивает время готовности страницы, так что, я конечно преувеличиваю, но всё-таки

Да, и чем SHJS лучше гугловского хайлайтера?
Автор: Cheery
Дата сообщения: 25.02.2008 00:15
KADABRA

Цитата:
Да, и чем SHJS лучше гугловского хайлайтера?

1) тем, что кода действительно меньше и он более "открыт" (css - 3кб, основной код - 10кб.. +регулярка для конкретного языка от 2 до 25 кб.. в основном 2-3 кб)
2) удобность именно в том, что конвертируются файлы типа "highlight", чего нет в другом (он не гугловский, просто автор туда переехал. парой писем я с ним перекидывался и предлагал использовать именно набор регулярок от программы хайлайт - там ОЧЕНЬ большой выбор языков)
3) у второго даже нет перла в списке (автор признался в его незнании).

морду, аналогичную второму, можно написать.. вот и спрашиваю ктобы взялся.. какие нить вопросы я бы помог решить, просто сейчас со временем напряг.. надо статью доделывать
Автор: KADABRA
Дата сообщения: 25.02.2008 00:42
Могу сделать, в течении недельки, надеюсь...
Автор: Cheery
Дата сообщения: 25.02.2008 00:52
KADABRA

Цитата:
в течении недельки

спешить некуда, батва пока не ответил насчет того скрипта ( серверной стороны тоже нужна поддержка небольшая ) .. просто я, раньше чем через полгода, вряд ли освобожусь.
Автор: KADABRA
Дата сообщения: 25.02.2008 00:53
В shjs нету нумерации и раскрашивания строк?
Автор: Cheery
Дата сообщения: 25.02.2008 00:55

Цитата:
В shjs нету нумерации и раскрашивания строк?

я про это и говорю.. насчет оформления.
принцип то понятен - надо забирать исходный код, создавать новый элемент (в том коде, что у гугла.. таблица, что ли, используется - надо проверить), старый с кодом прятать.. и форматировать вывод
Автор: KADABRA
Дата сообщения: 25.02.2008 00:55
Да, полгода это срок... однозначно...




Блин, почему мне всё так лень?

Добавлено:

Цитата:
я про это и говорю.. насчет оформления.

это я понял, я как раз исчу различия в предствалении
Автор: Cheery
Дата сообщения: 25.02.2008 00:59
вот пример того, с гугла
http://forall.ru-board.com/Cheery/projects/syntax2/Tests.html
да, рисует через таблицы.
можно сделать как на других форумах, чтобы показывалась часть кода, а потом разворачивалась
идея как вот у них
forum.vingrad.ru

Цитата:
Блин, почему мне всё так лень?

а мне нет ? давно бы сделал - авитаминоз
Автор: KADABRA
Дата сообщения: 25.02.2008 01:00

Код: /* line numbers (not yet implemented) */
pre.sh_sourceCode .sh_linenum { color: black; font-family: monospace; }
Автор: Cheery
Дата сообщения: 25.02.2008 01:02

Цитата:
/* line numbers (not yet implemented) */

ну либо подождать, пока все имплементят просто с августа нет нового.
Автор: KADABRA
Дата сообщения: 25.02.2008 01:04

Цитата:
вот пример того, с гугла
http://forall.ru-board.com/Cheery/projects/syntax2/Tests.html

Вот ..., это ж архинеудобно, когда при выделении выделяется ещё и номер строки. Я конечно понимаю, есть plain-вариант, но это +1 лшний клик.
Автор: Cheery
Дата сообщения: 25.02.2008 01:08

Цитата:
Вот ..., это ж архинеудобно, когда при выделении выделяется ещё и номер строки. Я конечно понимаю, есть plain-вариант, но это +1 лшний клик.

в таблице это невозможно, но можно отловить выделение и спрятать столбец с номерами

Страницы: 123

Предыдущая тема: Вопрос : куда подевался Svarga ?


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.