最近の検索
最近の検索はありません

Lily Svetnik
参加日2021年4月16日
·
前回のアクティビティ2021年10月27日
フォロー中
0
フォロワー
0
合計アクティビティ
3
投票
0
サブスクリプション
1
アクティビティの概要
バッジ
記事
投稿
コミュニティへのコメント
記事へのコメント
アクティビティの概要
さんの最近のアクティビティ Lily Svetnik
Lily Svetnikさんがコメントを作成しました:
Hi Jessie!
I was using the latest code that was posted here. Apparently, it wasn't working mostly because of syntax errors and other minor issues.
We've corrected and slightly modified the script, it's working perfectly fine now and I'm loving it!
Here's my version if anyone else is looking for a solution:
/*** Table of contents code ***/
var $headers = $('.article-body:first h1');
if ($headers.length == 0) $headers = $('.article-body:first h2');
if ($headers.length > 0) {
var $toc = $('
var $firstUl = $('
- ');
var $currentUl = $firstUl;
var previous_level = 1;
var $arrayUl = [];
$firstUl.appendTo($toc);
$('#table-of-contents').length > 0 ? $toc.appendTo('#table-of-contents') : $toc.prependTo('.article-body:first');
// start with first H1
insertHeading($headers[0]);
}
function insertHeading(heading) {
var $heading = $(heading);
// what level heading are we on?
var current_level = headingLevel(heading);
// if it's an H1, add it to the original list
if (current_level === 1) {
newLi($heading, $firstUl);
$currentUl = $firstUl;
$arrayUl = [];
$arrayUl.push($firstUl);
}
// if it's the same as the one before it, add it to the current list
else if (current_level === previous_level) {
newLi($heading, $currentUl);
}
// if it's one level higher than the one before it... time to make a new nested list
else if (current_level > previous_level) {
nestUl();
$arrayUl.push($currentUl);
newLi($heading, $currentUl);
}
else if (current_level for (i = 0; i < (previous_level-current_level); i++) {
$arrayUl.pop();
}
$currentUl = $arrayUl[$arrayUl.length-1];
newLi($heading, $currentUl);
}
previous_level = current_level;
var $nextHeading = $heading.nextAll("h1, h2, h3, h4, h5, h6").first()[0];
// if there's any headings left... run this again
if ($nextHeading) insertHeading($nextHeading);
}
// adds a new UL to the current UL
function nestUl() {
var $newUl = $('
- ');
$newUl.appendTo($currentUl);
$currentUl = $newUl;
}
// returns a numerical value for each heading
function headingLevel(heading) {
switch (heading.nodeName) {
case 'H1':
return 1;
break;
case 'H2':
return 2;
break;
case 'H3':
return 3;
break;
case 'H4':
return 4;
break;
case 'H5':
return 5;
break;
case 'H6':
return 6;
break;
default:
return 0;
}
}
// inserts a new line to the current list
function newLi(heading, $list) {
var $heading = $(heading);
if ($heading.text().replace(/\s/g, '') == '') return null;
var $wrapper = $('
//var $link = $('').prop('href', '#' + $heading.prop('id'));
var $anchorname = $heading[0].outerText.replace (/\s/g,'');
var $link = $('').prop('href', '#' + $anchorname);
$link.html($heading.text());
$link.appendTo($wrapper);
$wrapper.appendTo($list);
var place_in_parent = $list.children('li').length;
$heading.html("" + $link.find('.index').text() + ' ' + $heading.text());
}
});
コメントを表示 · 投稿日時:2018年6月25日 · Lily Svetnik
0
フォロワー
0
投票
0
コメント
Lily Svetnikさんがコメントを作成しました:
Hi, can someone please post a working version of this script? I've tested all of them from original to the last one and unfortunately nothing happens at all with my articles :(
Thank you in advance
コメントを表示 · 投稿日時:2018年6月20日 · Lily Svetnik
0
フォロワー
0
投票
0
コメント