<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://hna.wiki/MediaWiki:Gadget-InvertImages.js?action=history&amp;feed=atom</id>
	<title>MediaWiki:Gadget-InvertImages.js - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://hna.wiki/MediaWiki:Gadget-InvertImages.js?action=history&amp;feed=atom"/>
	<link rel="alternate" type="text/html" href="https://hna.wiki/MediaWiki:Gadget-InvertImages.js?action=history"/>
	<updated>2026-10-13T07:12:01Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.46.0</generator>
	<entry>
		<id>https://hna.wiki/MediaWiki:Gadget-InvertImages.js?diff=10617&amp;oldid=prev</id>
		<title>ReisuDesign: Created page with &quot;(function () { 	&#039;use strict&#039;;  	// Prevent duplicate initialization 	if (window.PetitPlanetInvertImagesLoaded) { 		return; 	}  	window.PetitPlanetInvertImagesLoaded = true;   	// ============================================================ 	// CONFIG 	// ============================================================  	var JSON_PAGE = &#039;MediaWiki:Gadget-InvertImages.json&#039;;  	var DAY_CLASS = &#039;day-invert-image&#039;; 	var NIGHT_CLASS = &#039;night-invert-image&#039;;   	// ==================...&quot;</title>
		<link rel="alternate" type="text/html" href="https://hna.wiki/MediaWiki:Gadget-InvertImages.js?diff=10617&amp;oldid=prev"/>
		<updated>2026-10-10T17:17:33Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;(function () { 	&amp;#039;use strict&amp;#039;;  	// Prevent duplicate initialization 	if (window.PetitPlanetInvertImagesLoaded) { 		return; 	}  	window.PetitPlanetInvertImagesLoaded = true;   	// ============================================================ 	// CONFIG 	// ============================================================  	var JSON_PAGE = &amp;#039;MediaWiki:Gadget-InvertImages.json&amp;#039;;  	var DAY_CLASS = &amp;#039;day-invert-image&amp;#039;; 	var NIGHT_CLASS = &amp;#039;night-invert-image&amp;#039;;   	// ==================...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;(function () {&lt;br /&gt;
	&amp;#039;use strict&amp;#039;;&lt;br /&gt;
&lt;br /&gt;
	// Prevent duplicate initialization&lt;br /&gt;
	if (window.PetitPlanetInvertImagesLoaded) {&lt;br /&gt;
		return;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	window.PetitPlanetInvertImagesLoaded = true;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
	// ============================================================&lt;br /&gt;
	// CONFIG&lt;br /&gt;
	// ============================================================&lt;br /&gt;
&lt;br /&gt;
	var JSON_PAGE = &amp;#039;MediaWiki:Gadget-InvertImages.json&amp;#039;;&lt;br /&gt;
&lt;br /&gt;
	var DAY_CLASS = &amp;#039;day-invert-image&amp;#039;;&lt;br /&gt;
	var NIGHT_CLASS = &amp;#039;night-invert-image&amp;#039;;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
	// ============================================================&lt;br /&gt;
	// STATE&lt;br /&gt;
	// ============================================================&lt;br /&gt;
&lt;br /&gt;
	var dayImages = new Set();&lt;br /&gt;
	var nightImages = new Set();&lt;br /&gt;
&lt;br /&gt;
	var loaded = false;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
	// ============================================================&lt;br /&gt;
	// NORMALIZE FILE NAME&lt;br /&gt;
	// ============================================================&lt;br /&gt;
&lt;br /&gt;
	function normalizeFileName(name) {&lt;br /&gt;
		if (!name) {&lt;br /&gt;
			return &amp;#039;&amp;#039;;&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		name = String(name);&lt;br /&gt;
&lt;br /&gt;
		// Decode URL encoding&lt;br /&gt;
		try {&lt;br /&gt;
			name = decodeURIComponent(name);&lt;br /&gt;
		} catch (e) {&lt;br /&gt;
			// Ignore decoding errors&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		// Remove File: namespace&lt;br /&gt;
		name = name.replace(/^File:/i, &amp;#039;&amp;#039;);&lt;br /&gt;
&lt;br /&gt;
		// MediaWiki treats underscores and spaces equivalently&lt;br /&gt;
		name = name.replace(/_/g, &amp;#039; &amp;#039;);&lt;br /&gt;
&lt;br /&gt;
		return name.trim();&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
	// ============================================================&lt;br /&gt;
	// GET FILE NAME FROM IMAGE&lt;br /&gt;
	// ============================================================&lt;br /&gt;
&lt;br /&gt;
	function getFileName(img) {&lt;br /&gt;
		if (!img) {&lt;br /&gt;
			return null;&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
		// --------------------------------------------------------&lt;br /&gt;
		// 1. MediaWiki&amp;#039;s File link&lt;br /&gt;
		// --------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
		/*&lt;br /&gt;
		 * This is the most reliable method.&lt;br /&gt;
		 *&lt;br /&gt;
		 * Normal wiki images:&lt;br /&gt;
		 *&lt;br /&gt;
		 * &amp;lt;a href=&amp;quot;/File:Crab_Icon.png&amp;quot;&amp;gt;&lt;br /&gt;
		 *     &amp;lt;img ...&amp;gt;&lt;br /&gt;
		 * &amp;lt;/a&amp;gt;&lt;br /&gt;
		 *&lt;br /&gt;
		 * Category pages / galleries use the same structure.&lt;br /&gt;
		 */&lt;br /&gt;
&lt;br /&gt;
		var link = img.closest(&amp;#039;a.mw-file-description&amp;#039;);&lt;br /&gt;
&lt;br /&gt;
		if (!link) {&lt;br /&gt;
			link = img.closest(&amp;#039;a&amp;#039;);&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		if (link) {&lt;br /&gt;
&lt;br /&gt;
			// Check href&lt;br /&gt;
			var href = link.getAttribute(&amp;#039;href&amp;#039;);&lt;br /&gt;
&lt;br /&gt;
			if (href) {&lt;br /&gt;
&lt;br /&gt;
				/*&lt;br /&gt;
				 * Matches:&lt;br /&gt;
				 *&lt;br /&gt;
				 * /File:Crab_Icon.png&lt;br /&gt;
				 * /wiki/File:Crab_Icon.png&lt;br /&gt;
				 * ./File:Crab_Icon.png&lt;br /&gt;
				 */&lt;br /&gt;
&lt;br /&gt;
				var match = href.match(&lt;br /&gt;
					/(?:^|\/)(?:wiki\/)?File:([^#?]+)/i&lt;br /&gt;
				);&lt;br /&gt;
&lt;br /&gt;
				if (match) {&lt;br /&gt;
					return normalizeFileName(match[1]);&lt;br /&gt;
				}&lt;br /&gt;
			}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
			// Check title as another MediaWiki fallback&lt;br /&gt;
			var title = link.getAttribute(&amp;#039;title&amp;#039;);&lt;br /&gt;
&lt;br /&gt;
			if (title &amp;amp;&amp;amp; /^File:/i.test(title)) {&lt;br /&gt;
				return normalizeFileName(title);&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
		// --------------------------------------------------------&lt;br /&gt;
		// 2. MediaWiki resource attribute&lt;br /&gt;
		// --------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
		var resource = img.getAttribute(&amp;#039;resource&amp;#039;);&lt;br /&gt;
&lt;br /&gt;
		if (resource) {&lt;br /&gt;
&lt;br /&gt;
			var resourceMatch = resource.match(&lt;br /&gt;
				/(?:File:|\/File:)([^#?]+)/i&lt;br /&gt;
			);&lt;br /&gt;
&lt;br /&gt;
			if (resourceMatch) {&lt;br /&gt;
				return normalizeFileName(resourceMatch[1]);&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
		// --------------------------------------------------------&lt;br /&gt;
		// 3. File-specific data attributes&lt;br /&gt;
		// --------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
		var dataAttributes = [&lt;br /&gt;
			&amp;#039;data-file-name&amp;#039;,&lt;br /&gt;
			&amp;#039;data-filename&amp;#039;,&lt;br /&gt;
			&amp;#039;data-file&amp;#039;&lt;br /&gt;
		];&lt;br /&gt;
&lt;br /&gt;
		for (var i = 0; i &amp;lt; dataAttributes.length; i++) {&lt;br /&gt;
&lt;br /&gt;
			var value = img.getAttribute(&lt;br /&gt;
				dataAttributes[i]&lt;br /&gt;
			);&lt;br /&gt;
&lt;br /&gt;
			if (value) {&lt;br /&gt;
				return normalizeFileName(value);&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
		// --------------------------------------------------------&lt;br /&gt;
		// 4. Image source&lt;br /&gt;
		// --------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
		var sources = [&lt;br /&gt;
			img.currentSrc,&lt;br /&gt;
			img.src,&lt;br /&gt;
			img.getAttribute(&amp;#039;data-src&amp;#039;),&lt;br /&gt;
			img.getAttribute(&amp;#039;data-lazy-src&amp;#039;)&lt;br /&gt;
		];&lt;br /&gt;
&lt;br /&gt;
		for (var j = 0; j &amp;lt; sources.length; j++) {&lt;br /&gt;
&lt;br /&gt;
			var source = sources[j];&lt;br /&gt;
&lt;br /&gt;
			if (!source) {&lt;br /&gt;
				continue;&lt;br /&gt;
			}&lt;br /&gt;
&lt;br /&gt;
			try {&lt;br /&gt;
&lt;br /&gt;
				var url = new URL(&lt;br /&gt;
					source,&lt;br /&gt;
					window.location.href&lt;br /&gt;
				);&lt;br /&gt;
&lt;br /&gt;
				var path = url.pathname;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
				/*&lt;br /&gt;
				 * Thumbnail URL:&lt;br /&gt;
				 *&lt;br /&gt;
				 * /thumb/a/ab/&lt;br /&gt;
				 * Crab_Icon.png/&lt;br /&gt;
				 * 150px-Crab_Icon.png&lt;br /&gt;
				 */&lt;br /&gt;
&lt;br /&gt;
				var thumbMatch = path.match(&lt;br /&gt;
					/\/thumb\/[^/]+\/[^/]+\/([^/]+)\/[^/]+$/i&lt;br /&gt;
				);&lt;br /&gt;
&lt;br /&gt;
				if (thumbMatch) {&lt;br /&gt;
					return normalizeFileName(&lt;br /&gt;
						thumbMatch[1]&lt;br /&gt;
					);&lt;br /&gt;
				}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
				// Last path component&lt;br /&gt;
				var parts = path.split(&amp;#039;/&amp;#039;);&lt;br /&gt;
				var filename = parts[parts.length - 1];&lt;br /&gt;
&lt;br /&gt;
				if (filename) {&lt;br /&gt;
&lt;br /&gt;
					// Remove thumbnail size prefix&lt;br /&gt;
					filename = filename.replace(&lt;br /&gt;
						/^\d+px-/i,&lt;br /&gt;
						&amp;#039;&amp;#039;&lt;br /&gt;
					);&lt;br /&gt;
&lt;br /&gt;
					return normalizeFileName(filename);&lt;br /&gt;
				}&lt;br /&gt;
&lt;br /&gt;
			} catch (e) {&lt;br /&gt;
				// Ignore invalid URLs&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
		return null;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
	// ============================================================&lt;br /&gt;
	// PROCESS ONE IMAGE&lt;br /&gt;
	// ============================================================&lt;br /&gt;
&lt;br /&gt;
	function processImage(img) {&lt;br /&gt;
&lt;br /&gt;
		if (!img || img.nodeType !== 1) {&lt;br /&gt;
			return;&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		if (&lt;br /&gt;
			!img.tagName ||&lt;br /&gt;
			img.tagName.toLowerCase() !== &amp;#039;img&amp;#039;&lt;br /&gt;
		) {&lt;br /&gt;
			return;&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
		var fileName = getFileName(img);&lt;br /&gt;
&lt;br /&gt;
		if (!fileName) {&lt;br /&gt;
			return;&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
		// --------------------------------------------------------&lt;br /&gt;
		// Determine desired class&lt;br /&gt;
		// --------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
		var desiredClass = null;&lt;br /&gt;
&lt;br /&gt;
		if (nightImages.has(fileName)) {&lt;br /&gt;
&lt;br /&gt;
			desiredClass = NIGHT_CLASS;&lt;br /&gt;
&lt;br /&gt;
		} else if (dayImages.has(fileName)) {&lt;br /&gt;
&lt;br /&gt;
			desiredClass = DAY_CLASS;&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
		// --------------------------------------------------------&lt;br /&gt;
		// Apply desired state&lt;br /&gt;
		// --------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
		if (desiredClass === NIGHT_CLASS) {&lt;br /&gt;
&lt;br /&gt;
			img.classList.add(NIGHT_CLASS);&lt;br /&gt;
			img.classList.remove(DAY_CLASS);&lt;br /&gt;
&lt;br /&gt;
		} else if (desiredClass === DAY_CLASS) {&lt;br /&gt;
&lt;br /&gt;
			img.classList.add(DAY_CLASS);&lt;br /&gt;
			img.classList.remove(NIGHT_CLASS);&lt;br /&gt;
&lt;br /&gt;
		} else {&lt;br /&gt;
&lt;br /&gt;
			// Not in either JSON list&lt;br /&gt;
			img.classList.remove(DAY_CLASS);&lt;br /&gt;
			img.classList.remove(NIGHT_CLASS);&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
	// ============================================================&lt;br /&gt;
	// PROCESS ALL IMAGES&lt;br /&gt;
	// ============================================================&lt;br /&gt;
&lt;br /&gt;
	function processAllImages(root) {&lt;br /&gt;
&lt;br /&gt;
		root = root || document;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
		// Root itself&lt;br /&gt;
		if (&lt;br /&gt;
			root.nodeType === 1 &amp;amp;&amp;amp;&lt;br /&gt;
			root.tagName &amp;amp;&amp;amp;&lt;br /&gt;
			root.tagName.toLowerCase() === &amp;#039;img&amp;#039;&lt;br /&gt;
		) {&lt;br /&gt;
			processImage(root);&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
		if (!root.querySelectorAll) {&lt;br /&gt;
			return;&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
		var images = root.querySelectorAll(&amp;#039;img&amp;#039;);&lt;br /&gt;
&lt;br /&gt;
		for (var i = 0; i &amp;lt; images.length; i++) {&lt;br /&gt;
			processImage(images[i]);&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
	// ============================================================&lt;br /&gt;
	// LOAD JSON&lt;br /&gt;
	// ============================================================&lt;br /&gt;
&lt;br /&gt;
	function loadJSON() {&lt;br /&gt;
&lt;br /&gt;
		var url = mw.util.getUrl(&lt;br /&gt;
			JSON_PAGE,&lt;br /&gt;
			{&lt;br /&gt;
				action: &amp;#039;raw&amp;#039;&lt;br /&gt;
			}&lt;br /&gt;
		);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
		fetch(url, {&lt;br /&gt;
			credentials: &amp;#039;same-origin&amp;#039;,&lt;br /&gt;
			cache: &amp;#039;no-cache&amp;#039;&lt;br /&gt;
		})&lt;br /&gt;
&lt;br /&gt;
		.then(function (response) {&lt;br /&gt;
&lt;br /&gt;
			if (!response.ok) {&lt;br /&gt;
				throw new Error(&lt;br /&gt;
					&amp;#039;Failed to load &amp;#039; +&lt;br /&gt;
					JSON_PAGE +&lt;br /&gt;
					&amp;#039; (&amp;#039; +&lt;br /&gt;
					response.status +&lt;br /&gt;
					&amp;#039;)&amp;#039;&lt;br /&gt;
				);&lt;br /&gt;
			}&lt;br /&gt;
&lt;br /&gt;
			return response.text();&lt;br /&gt;
		})&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
		.then(function (text) {&lt;br /&gt;
&lt;br /&gt;
			var data;&lt;br /&gt;
&lt;br /&gt;
			try {&lt;br /&gt;
&lt;br /&gt;
				data = JSON.parse(text);&lt;br /&gt;
&lt;br /&gt;
			} catch (e) {&lt;br /&gt;
&lt;br /&gt;
				throw new Error(&lt;br /&gt;
					&amp;#039;Invalid JSON in &amp;#039; +&lt;br /&gt;
					JSON_PAGE&lt;br /&gt;
				);&lt;br /&gt;
			}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
			// ----------------------------------------------------&lt;br /&gt;
			// Day&lt;br /&gt;
			// ----------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
			dayImages.clear();&lt;br /&gt;
&lt;br /&gt;
			if (Array.isArray(data.day)) {&lt;br /&gt;
&lt;br /&gt;
				data.day.forEach(function (fileName) {&lt;br /&gt;
&lt;br /&gt;
					var normalized =&lt;br /&gt;
						normalizeFileName(fileName);&lt;br /&gt;
&lt;br /&gt;
					if (normalized) {&lt;br /&gt;
						dayImages.add(normalized);&lt;br /&gt;
					}&lt;br /&gt;
				});&lt;br /&gt;
			}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
			// ----------------------------------------------------&lt;br /&gt;
			// Night&lt;br /&gt;
			// ----------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
			nightImages.clear();&lt;br /&gt;
&lt;br /&gt;
			if (Array.isArray(data.night)) {&lt;br /&gt;
&lt;br /&gt;
				data.night.forEach(function (fileName) {&lt;br /&gt;
&lt;br /&gt;
					var normalized =&lt;br /&gt;
						normalizeFileName(fileName);&lt;br /&gt;
&lt;br /&gt;
					if (normalized) {&lt;br /&gt;
						nightImages.add(normalized);&lt;br /&gt;
					}&lt;br /&gt;
				});&lt;br /&gt;
			}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
			loaded = true;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
			// Process everything currently rendered&lt;br /&gt;
			processAllImages(document);&lt;br /&gt;
&lt;br /&gt;
		})&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
		.catch(function (error) {&lt;br /&gt;
&lt;br /&gt;
			console.error(&lt;br /&gt;
				&amp;#039;[InvertImages] &amp;#039; +&lt;br /&gt;
				error.message&lt;br /&gt;
			);&lt;br /&gt;
&lt;br /&gt;
		});&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
	// ============================================================&lt;br /&gt;
	// DYNAMIC CONTENT / LAZY LOADING&lt;br /&gt;
	// ============================================================&lt;br /&gt;
&lt;br /&gt;
	var observer = new MutationObserver(function (mutations) {&lt;br /&gt;
&lt;br /&gt;
		if (!loaded) {&lt;br /&gt;
			return;&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
		for (var i = 0; i &amp;lt; mutations.length; i++) {&lt;br /&gt;
&lt;br /&gt;
			var mutation = mutations[i];&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
			// ----------------------------------------------------&lt;br /&gt;
			// Newly inserted elements&lt;br /&gt;
			// ----------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
			if (mutation.type === &amp;#039;childList&amp;#039;) {&lt;br /&gt;
&lt;br /&gt;
				for (&lt;br /&gt;
					var j = 0;&lt;br /&gt;
					j &amp;lt; mutation.addedNodes.length;&lt;br /&gt;
					j++&lt;br /&gt;
				) {&lt;br /&gt;
&lt;br /&gt;
					var node = mutation.addedNodes[j];&lt;br /&gt;
&lt;br /&gt;
					if (node.nodeType === 1) {&lt;br /&gt;
						processAllImages(node);&lt;br /&gt;
					}&lt;br /&gt;
				}&lt;br /&gt;
			}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
			// ----------------------------------------------------&lt;br /&gt;
			// Lazy-loaded / changed image&lt;br /&gt;
			// ----------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
			if (&lt;br /&gt;
				mutation.type === &amp;#039;attributes&amp;#039; &amp;amp;&amp;amp;&lt;br /&gt;
				mutation.target &amp;amp;&amp;amp;&lt;br /&gt;
				mutation.target.tagName &amp;amp;&amp;amp;&lt;br /&gt;
				mutation.target.tagName.toLowerCase() === &amp;#039;img&amp;#039;&lt;br /&gt;
			) {&lt;br /&gt;
&lt;br /&gt;
				processImage(mutation.target);&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
	});&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
	observer.observe(&lt;br /&gt;
		document.documentElement,&lt;br /&gt;
		{&lt;br /&gt;
			childList: true,&lt;br /&gt;
			subtree: true,&lt;br /&gt;
			attributes: true,&lt;br /&gt;
			attributeFilter: [&lt;br /&gt;
				&amp;#039;src&amp;#039;,&lt;br /&gt;
				&amp;#039;srcset&amp;#039;,&lt;br /&gt;
				&amp;#039;resource&amp;#039;,&lt;br /&gt;
				&amp;#039;data-src&amp;#039;,&lt;br /&gt;
				&amp;#039;data-lazy-src&amp;#039;,&lt;br /&gt;
				&amp;#039;data-file-name&amp;#039;,&lt;br /&gt;
				&amp;#039;data-filename&amp;#039;,&lt;br /&gt;
				&amp;#039;data-file&amp;#039;&lt;br /&gt;
			]&lt;br /&gt;
		}&lt;br /&gt;
	);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
	// ============================================================&lt;br /&gt;
	// START&lt;br /&gt;
	// ============================================================&lt;br /&gt;
&lt;br /&gt;
	loadJSON();&lt;br /&gt;
&lt;br /&gt;
})();&lt;/div&gt;</summary>
		<author><name>ReisuDesign</name></author>
	</entry>
</feed>