mirror of
https://github.com/flynx/pWiki.git
synced 2025-10-29 18:10:09 +00:00
better id generation...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
This commit is contained in:
parent
812c32d073
commit
29650ba7c9
@ -614,6 +614,24 @@ var toc = {
|
|||||||
depth++ }
|
depth++ }
|
||||||
parent = parent.parentElement }
|
parent = parent.parentElement }
|
||||||
return depth }
|
return depth }
|
||||||
|
// XXX revise...
|
||||||
|
var seen = new Set()
|
||||||
|
var makeID = function(text){
|
||||||
|
var id = encodeURI(
|
||||||
|
text
|
||||||
|
.trim()
|
||||||
|
.replace(/[#?$%:;.,]/g, '')
|
||||||
|
.replace(/\s+/g, '-'))
|
||||||
|
if(seen.has(id)
|
||||||
|
|| document.getElementById(id)){
|
||||||
|
var i = 1
|
||||||
|
var candidate = id +'-'+ i
|
||||||
|
while(seen.has(candidate)
|
||||||
|
|| document.getElementById(candidate)){
|
||||||
|
candidate = id +'-'+ i++ }
|
||||||
|
id = id +'-'+ i }
|
||||||
|
seen.add(id)
|
||||||
|
return id }
|
||||||
var makeTOC = function(root=outline){
|
var makeTOC = function(root=outline){
|
||||||
var index = 0
|
var index = 0
|
||||||
var lst = document.createElement('ul')
|
var lst = document.createElement('ul')
|
||||||
@ -639,7 +657,8 @@ var toc = {
|
|||||||
var elem = document.createElement('li')
|
var elem = document.createElement('li')
|
||||||
var id = block.id == '' ?
|
var id = block.id == '' ?
|
||||||
// XXX do a better default...
|
// XXX do a better default...
|
||||||
'__'+ index++
|
//'__'+ index++
|
||||||
|
makeID(e.innerText)
|
||||||
: block.id
|
: block.id
|
||||||
block.id = id
|
block.id = id
|
||||||
elem.innerHTML = `<a href="#${id}">${e.innerHTML.trim()}</a>`
|
elem.innerHTML = `<a href="#${id}">${e.innerHTML.trim()}</a>`
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user