mirror of
https://github.com/flynx/pWiki.git
synced 2025-12-24 20:01:56 +00:00
Merge branch 'master' of github.com:flynx/pWiki
This commit is contained in:
commit
869cb08cba
@ -1911,20 +1911,19 @@ module.System = {
|
|||||||
// page actions...
|
// page actions...
|
||||||
//
|
//
|
||||||
|
|
||||||
/* XXX broken...
|
// XXX broken...
|
||||||
// XXX this does not work as energetic...
|
// XXX this does not work as energetic...
|
||||||
// XXX for some reason this is called twice...
|
|
||||||
time: async function(){
|
time: async function(){
|
||||||
var t = Date.now()
|
var t = Date.now()
|
||||||
var text = await this.get('../_text').text
|
var text = await this.get('../_text').text
|
||||||
var time = Date.now() - t
|
var time = Date.now() - t
|
||||||
|
|
||||||
console.log('RENDER TIME:', time)
|
console.log('RENDER TIME:', time)
|
||||||
|
|
||||||
return object.doc`
|
return object.doc`
|
||||||
Time to render: ${time}ms <br>
|
Time to render: ${time}ms <br>
|
||||||
<ht>
|
<ht>
|
||||||
${text}`},
|
${text}`},
|
||||||
//*/
|
//*/
|
||||||
|
|
||||||
// XXX EXPERIMENTAL -- page types...
|
// XXX EXPERIMENTAL -- page types...
|
||||||
@ -2011,8 +2010,6 @@ module.Test = {
|
|||||||
// XXX do we support this???
|
// XXX do we support this???
|
||||||
//'list/action': function(){
|
//'list/action': function(){
|
||||||
// return [...'abcdef'] },
|
// return [...'abcdef'] },
|
||||||
// XXX BUG CHROME: this hangs under chrome...
|
|
||||||
// (see: pwiki2.js)
|
|
||||||
'list/generator': function*(){
|
'list/generator': function*(){
|
||||||
yield* [...'abcdef'] },
|
yield* [...'abcdef'] },
|
||||||
'list/static': {
|
'list/static': {
|
||||||
|
|||||||
@ -334,16 +334,17 @@ module.BaseStore = {
|
|||||||
args = pwpath.joinArgs('', args)
|
args = pwpath.joinArgs('', args)
|
||||||
// NOTE: we are matching full paths only here so leading and
|
// NOTE: we are matching full paths only here so leading and
|
||||||
// trainling '/' are optional...
|
// trainling '/' are optional...
|
||||||
// NOTE: we ensure that we match full names and always split
|
var pattern = new RegExp(`^\\/?`
|
||||||
// at '/' only...
|
+RegExp.quoteRegExp(
|
||||||
var pattern = new RegExp(`^\\/?${
|
// remove leading/trailing '/'
|
||||||
path
|
path.replace(/^\/|\/$/g, ''))
|
||||||
.replace(/^\/|\/$/g, '')
|
// pattern: **
|
||||||
.replace(/\//g, '\\/')
|
.replace(/\\\*\\\*/g, '(.*)')
|
||||||
//.replace(/\*\*/g, '.*')
|
// pattern: *
|
||||||
.replace(/([\\\/]?)\*\*/g, '($1.*)')
|
// NOTE: we are prepping the leading '.' of a pattern
|
||||||
.replace(/(?<=^|[\\\/]+|[^.])\*/g, '[^\\/]*')
|
// dir for hidden tests...
|
||||||
}(?=[\\\\\/]|$)`)
|
.replace(/(^|\\\/+)(\\\.|)([^\/]*)\\\*/g, '$1$2($3[^\\/]*)')
|
||||||
|
+'(?=[\\/]|$)', 'g')
|
||||||
/*/ XXX CACHED....
|
/*/ XXX CACHED....
|
||||||
var name = pwpath.basename(path)
|
var name = pwpath.basename(path)
|
||||||
return [...(name.includes('*') ?
|
return [...(name.includes('*') ?
|
||||||
@ -359,14 +360,17 @@ module.BaseStore = {
|
|||||||
// skip metadata paths...
|
// skip metadata paths...
|
||||||
if(p.includes('*')){
|
if(p.includes('*')){
|
||||||
return res }
|
return res }
|
||||||
/*/ XXX HIDE this is wrong -- need to check for
|
var m = [...p.matchAll(pattern)]
|
||||||
// hidden paths within the match...
|
m.length > 0
|
||||||
if(pwpath.basename(p)[0] == '.'
|
&& (!all ?
|
||||||
&& !all){
|
// test if we need to hide things....
|
||||||
return res }
|
m.reduce(function(res, m){
|
||||||
//*/
|
return res === false ?
|
||||||
var m = p.match(pattern)
|
res
|
||||||
m
|
: !/(^\.|[\\\/]\.)/.test(m[1])
|
||||||
|
}, true)
|
||||||
|
: true)
|
||||||
|
&& (m = m[0])
|
||||||
&& (!strict
|
&& (!strict
|
||||||
|| m[0] == p)
|
|| m[0] == p)
|
||||||
&& res.add(
|
&& res.add(
|
||||||
@ -464,9 +468,6 @@ module.BaseStore = {
|
|||||||
// this can be the result of matching a/* in a a/b/c
|
// this can be the result of matching a/* in a a/b/c
|
||||||
// and returning a a/b which can be undefined...
|
// and returning a a/b which can be undefined...
|
||||||
return that.get(p, strict) })
|
return that.get(p, strict) })
|
||||||
// XXX BUG CHROME: this hangs on Chrome when getting a
|
|
||||||
// generator function...
|
|
||||||
// ...should not require any editing when bug fixed.
|
|
||||||
: (await this.__get__(path)
|
: (await this.__get__(path)
|
||||||
?? ((this.next || {}).__get__
|
?? ((this.next || {}).__get__
|
||||||
&& this.next.get(path, strict))) },
|
&& this.next.get(path, strict))) },
|
||||||
|
|||||||
@ -166,6 +166,7 @@ require.config({
|
|||||||
|
|
||||||
document.pwikiloaded = new Event('pwikiloaded')
|
document.pwikiloaded = new Event('pwikiloaded')
|
||||||
|
|
||||||
|
REFRESH_DELAY = 20
|
||||||
|
|
||||||
// start loading pWiki...
|
// start loading pWiki...
|
||||||
require(['./browser'], function(browser){
|
require(['./browser'], function(browser){
|
||||||
@ -186,8 +187,9 @@ require(['./browser'], function(browser){
|
|||||||
: '/'+path
|
: '/'+path
|
||||||
startSpinner()
|
startSpinner()
|
||||||
// NOTE: setTimeout(..) to allow the spinner to start...
|
// NOTE: setTimeout(..) to allow the spinner to start...
|
||||||
|
// NOTE: this seems not to work if the REFRESH_DELAY is too small...
|
||||||
setTimeout(function(){
|
setTimeout(function(){
|
||||||
pwiki.location = [path, hash] }, 0) })
|
pwiki.location = [path, hash] }, REFRESH_DELAY) })
|
||||||
pwiki
|
pwiki
|
||||||
.onBeforeNavigate(function(){
|
.onBeforeNavigate(function(){
|
||||||
saveNow() })
|
saveNow() })
|
||||||
@ -226,7 +228,7 @@ require(['./browser'], function(browser){
|
|||||||
lnk.addEventListener('click', function(evt){
|
lnk.addEventListener('click', function(evt){
|
||||||
startSpinner()
|
startSpinner()
|
||||||
setTimeout(function(){
|
setTimeout(function(){
|
||||||
that.refresh() }, 0) }) } })
|
that.refresh() }, REFRESH_DELAY) }) } })
|
||||||
|
|
||||||
// wait for stuff to finish...
|
// wait for stuff to finish...
|
||||||
browser.setup.then(function(){
|
browser.setup.then(function(){
|
||||||
|
|||||||
30
pwiki2.js
30
pwiki2.js
@ -1,18 +1,14 @@
|
|||||||
/**********************************************************************
|
/**********************************************************************
|
||||||
*
|
*
|
||||||
*
|
*
|
||||||
* XXX BUG: .hide_paths:
|
* XXX BUG:
|
||||||
* - hidden dir should hide all the children -- BROKEN
|
* /System/info
|
||||||
* (see /.hidden/suppage)
|
* and:
|
||||||
* - listing a hidden subtree should work regardless of :all -- BROKEN
|
* /System/info/_view
|
||||||
* (see: /.hidden/tree)
|
* are not the same...
|
||||||
|
* ...bug likely in .text
|
||||||
* XXX might also be a good idea to investigate a .tree directory index
|
* XXX might also be a good idea to investigate a .tree directory index
|
||||||
* as a supplement to .paths()
|
* as a supplement to .paths()
|
||||||
* XXX BUG: changing the URL does not start the spinner...
|
|
||||||
* chech:
|
|
||||||
* - url (hashchange)
|
|
||||||
* - click link
|
|
||||||
* - history back/foreward
|
|
||||||
* XXX Q: can we access fs from a pwa???
|
* XXX Q: can we access fs from a pwa???
|
||||||
* XXX start writing docs in pwiki
|
* XXX start writing docs in pwiki
|
||||||
* - WYSIWYG markdown editor/viewer (ASAP)
|
* - WYSIWYG markdown editor/viewer (ASAP)
|
||||||
@ -62,20 +58,6 @@
|
|||||||
* i.e. a way to pass tags through path...
|
* i.e. a way to pass tags through path...
|
||||||
* /some/path:tags=a,b,c
|
* /some/path:tags=a,b,c
|
||||||
* XXX FEATURE images...
|
* XXX FEATURE images...
|
||||||
* XXX BUG CHROME: can't .get(..) a generator...
|
|
||||||
* affected code:
|
|
||||||
* BaseStore's .get(..)
|
|
||||||
* bug report:
|
|
||||||
* https://bugs.chromium.org/p/chromium/issues/detail?id=1361981
|
|
||||||
* when done test:
|
|
||||||
* .get('/test/list/generator').asPages()
|
|
||||||
* .get('/test/list/generator').raw
|
|
||||||
* .get('/test/list/generator').data
|
|
||||||
* .get('/test/list/generator').text
|
|
||||||
* potential temporaty fix:
|
|
||||||
* wrap all .__get__(..) call in an async function testing if
|
|
||||||
* it's return value is a generator function (return) or anything
|
|
||||||
* else (await)...
|
|
||||||
* XXX rename??
|
* XXX rename??
|
||||||
* System -> .system
|
* System -> .system
|
||||||
* Config -> .pwiki
|
* Config -> .pwiki
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user