You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

50 lines
2.2 KiB

function filterPmWiki( contentFilename ){
// if (!file) return
// special filter, done via URL, no local file (for now at least)
if ( contentFilename.endsWith("?action=source") ) { // not very reliable
console.log('it is a pmwiki file', contentFilename)
// mereology option
let openingOptions = filesWithMetadata[contentFilename].openingOptions
// can be used via e.g. showFile("https://fabien.benetou.fr/?action=source",{ mereology:"whole"})
fetch( contentFilename )
.then( r => r.text() ).then( r => {
// console.log('pmwiki', r)
// TODO
// diff support to replay over time, e.g. https://fabien.benetou.fr/PIMVRdata/ItemsStates?action=diff
// index as a special case https://fabien.benetou.fr/Site/AllRecentChanges?action=source
// rendered previews e.g https://vatelier.benetou.fr/MyDemo/newtooling/textures/fabien.benetou.fr_PIMVRdata_ItemsStates.png
// server side graph generation e.g. https://vatelier.benetou.fr/MyDemo/newtooling/wiki_graph.json
// very specific
let elements = []
console.log( "mereology", openingOptions.mereology )
switch( openingOptions.mereology ) {
case "whole":
elements.push( addNewNote(r, "0 1.4 -.8") )
break;
case "section":
r.split(/! /).map( (c,i) => elements.push( addNewNote(c, "0 "+(1+i/10)+" -.8") ) ) // untested
break;
case "line":
r.split('\n').map( (c,i) => elements.push( addNewNote(c, "0 "+(1+i/10)+" -.8") ) )
break;
case "listonly":
default:
r.replaceAll('* ','').split('\n').map( (c,i) => elements.push( addNewNote(c, "0 "+(1+i/10)+" -.8") ) )
// this is specific to https://fabien.benetou.fr/PersonalInformationStream/WithoutNotesMay2025 and similar
}
elements.map( el => { el.classList.add('pmwikifilter'); el.classList.add('filterimport') } )
// for something more generic see https://www.pmwiki.org/wiki/PmWiki/PageFileFormat
AFRAME.scenes[0].emit('pmwikiloaded', contentFilename)
// to use the event consider :
//AFRAME.scenes[0].addEventListener("pmwikiloaded", e => console.log(e))
})
}
applyNextFilter( contentFilename )
}
sequentialFilters.push( filterPmWiki )