mirror of
https://github.com/flynx/pWiki.git
synced 2025-12-18 09:01:40 +00:00
added link caching...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
This commit is contained in:
parent
67ee054587
commit
ead32cb14d
42
wiki.js
42
wiki.js
@ -47,6 +47,11 @@ var Wiki = {
|
|||||||
__default_page__: 'DefaultPage',
|
__default_page__: 'DefaultPage',
|
||||||
__templates__: 'Templates',
|
__templates__: 'Templates',
|
||||||
|
|
||||||
|
__wiki_link__: RegExp('('+[
|
||||||
|
'[A-Z][a-z0-9]+[A-Z\/][a-zA-Z0-9\/]*',
|
||||||
|
'\\[[^\\]]+\\]',
|
||||||
|
].join('|') +')', 'g'),
|
||||||
|
|
||||||
|
|
||||||
// current location...
|
// current location...
|
||||||
get location(){
|
get location(){
|
||||||
@ -99,27 +104,24 @@ var Wiki = {
|
|||||||
// - aquire default page (same order as above)
|
// - aquire default page (same order as above)
|
||||||
//
|
//
|
||||||
get text(){
|
get text(){
|
||||||
// get the page directly...
|
return (this.acquireData() || {}).text || '' },
|
||||||
return (this.__wiki_data[this.location] || {}).text
|
|
||||||
// acquire the page from path...
|
|
||||||
|| (this.acquire(this.title) || {}).text
|
|
||||||
// acquire the default page...
|
|
||||||
|| (this.acquire(this.__default_page__) || {}).text
|
|
||||||
// nothing found...
|
|
||||||
|| ''
|
|
||||||
},
|
|
||||||
set text(value){
|
set text(value){
|
||||||
var l = this.location
|
var l = this.location
|
||||||
this.__wiki_data[l] = this.__wiki_data[l] || {}
|
this.__wiki_data[l] = this.__wiki_data[l] || {}
|
||||||
this.__wiki_data[l].text = value
|
this.__wiki_data[l].text = value
|
||||||
|
|
||||||
|
// cache links...
|
||||||
|
this.__wiki_data[l].links = this.links
|
||||||
},
|
},
|
||||||
|
|
||||||
// XXX
|
|
||||||
get links(){
|
get links(){
|
||||||
|
return (this.acquireData() || {}).links
|
||||||
|
|| this.text.match(this.__wiki_link__)
|
||||||
|
// unwrap explicit links...
|
||||||
|
.map(e => e[0] == '[' ? e.slice(1, -1) : e)
|
||||||
|
// unique...
|
||||||
|
.filter((e, i, l) => l.slice(0, i).indexOf(e) == -1)
|
||||||
},
|
},
|
||||||
set links(value){
|
|
||||||
},
|
|
||||||
|
|
||||||
|
|
||||||
// XXX
|
// XXX
|
||||||
get list(){
|
get list(){
|
||||||
@ -168,6 +170,20 @@ var Wiki = {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
|
acquireData: function(path, title){
|
||||||
|
path = path || this.path
|
||||||
|
title = title || this.title
|
||||||
|
|
||||||
|
// get the page directly...
|
||||||
|
return this.__wiki_data[path +'/'+ title]
|
||||||
|
// acquire the page from path...
|
||||||
|
|| this.acquire(title)
|
||||||
|
// acquire the default page...
|
||||||
|
|| this.acquire(this.__default_page__)
|
||||||
|
// nothing found...
|
||||||
|
|| null
|
||||||
|
},
|
||||||
|
|
||||||
|
|
||||||
// serialization...
|
// serialization...
|
||||||
json: function(path){
|
json: function(path){
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user