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
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 )
|
|
|