PublishingJS:TheNewSocial

From H&D Publishing Wiki
Revision as of 13:27, 30 May 2023 by Karl (talk | contribs)
const origin = window.location.origin
const title = "TheNewSocial"
const wikilink_rel = "mw:WikiLink"

document.onreadystatechange = function () {

	console.log( 'Hello from PublishingJS namespace!' )
	
	make_case_studies_collapsible()
	make_principles_collapsible()
	hashify_all_wikilinks()
	shuffle_worker_ants()

}





function $( selector ) {
	return document.querySelectorAll( selector )
}


function make_case_studies_collapsible() {
	const nav_links = $('#toc a, #Principles a')
	window.onhashchange = function() {
	    for (let i = 0; i < nav_links.length; i++) {
	        if (nav_links[i].href.match(/(#.*)/)[1] == window.location.hash) {
	            nav_links[i].className = 'selected'
	        } else {
	            nav_links[i].className = ''
	        }
	    }
	}
	
}

function hashify_all_wikilinks() {
	const wikilinks = $( `a[rel="${ wikilink_rel }"]` )
	for ( const wikilink of wikilinks ) {
		if ( !wikilink.href.includes('#') ) {
			wikilink.href = wikilink.href.replace( `${ origin }/html/`, '#' )
		}
	}
}

function make_principles_collapsible() {
	const principles = $( '#Principles > section' )
}

function shuffle_worker_ants() {
	const ants = $( '.clippy_ant' )
	for ( const ant of ants ) {
		ant.style.setProperty( '--index', Math.floor(Math.random() * 21 ) )
	}
}