Показать сообщение отдельно
  #3 (permalink)  
Старый 26.08.2011, 14:20
Интересующийся
Отправить личное сообщение для artnik Посмотреть профиль Найти все сообщения от artnik
 
Регистрация: 19.01.2011
Сообщений: 28

Вобщем кода много, но идея простая. Сначала вытаскивается html, потом я его разчленяю на строки через сплит, и циклом оборачиваю каждую строку в <li></li>. После чего старый pre удаляеться а на его место ставиться уже новый.
PS: Это jQuery

$('pre.code').each(function(index) {
	var html = $(this).find('code').html(),
		htmlArr = html.split('\n'),
		totalLines = htmlArr.length;

	$(this).after(
       '<div class="precode">'+
         '<pre>'+
           '<ol></ol>'+
         '</pre>'+
       '</div>'
	);
	
	var wrap = $(this).next('.precode');
	$(this).remove();
	
	var result = '',i;
	for(i = 0; i < totalLines; i++) {
		var curHTML = htmlArr[i],
			id = 'code'+(index+1)+'_l'+(i+1);
		curHTML = curHTML == false ? ' empty">' : '">'+curHTML;
		result += '<li id="'+id+'" rel="#'+id+'"><span class="l'+curHTML+'</span></li>';
	}
	wrap.find('ol').html(result);
});


На всяки случай цепляю и html код pre тега (внутри pre - код для теста)

<pre class="code"><code>function oversky_dynamic_vars($vars) {
    $vars[] = 'dynamic';
    return $vars;
}
add_filter('query_vars','oversky_dynamic_vars');

function oversky_dynamic_check() {
	$curVar = get_query_var('dynamic');
	if($curVar == 'css') {
		header("Content-Type: text/css");
		require (FUNCTIONS.'/dinamic-css.php');
		die;
	}
	if($curVar == 'js') {
		header('Content-type: text/javascript');
		require (FUNCTIONS.'/dinamic-js.php');
		die;
	}
}
add_action('template_redirect', 'oversky_dynamic_check');</code></pre>

Последний раз редактировалось artnik, 26.08.2011 в 14:49.
Ответить с цитированием