|  | @@ -1,6 +1,6 @@
 | 
	
		
			
				|  |  |  const JSZip = require('jszip');
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -window.ExportHtml = (Popup) => {
 | 
	
		
			
				|  |  | +window.ExportHtml = Popup => {
 | 
	
		
			
				|  |  |    const saveAs = function(blob, filename) {
 | 
	
		
			
				|  |  |      let dl = document.createElement('a');
 | 
	
		
			
				|  |  |      dl.href = window.URL.createObjectURL(blob);
 | 
	
	
		
			
				|  | @@ -12,21 +12,22 @@ window.ExportHtml = (Popup) => {
 | 
	
		
			
				|  |  |      dl.click();
 | 
	
		
			
				|  |  |    };
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -  const asyncForEach = async function (array, callback) {
 | 
	
		
			
				|  |  | +  const asyncForEach = async function(array, callback) {
 | 
	
		
			
				|  |  |      for (let index = 0; index < array.length; index++) {
 | 
	
		
			
				|  |  |        await callback(array[index], index, array);
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |    };
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |    const getPageHtmlString = () => {
 | 
	
		
			
				|  |  | -    return `<!doctype html>${
 | 
	
		
			
				|  |  | -      window.document.querySelector('html').outerHTML
 | 
	
		
			
				|  |  | -    }`;
 | 
	
		
			
				|  |  | +    return `<!doctype html>${window.document.querySelector('html').outerHTML}`;
 | 
	
		
			
				|  |  |    };
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |    const removeAnchors = htmlString => {
 | 
	
		
			
				|  |  | -    const replaceOpenAnchor = htmlString.replace(new RegExp('<a ', 'gim'), '<span ');
 | 
	
		
			
				|  |  | -    return replaceOpenAnchor.replace(new RegExp('<\/a', 'gim'), '</span');
 | 
	
		
			
				|  |  | +    const replaceOpenAnchor = htmlString.replace(
 | 
	
		
			
				|  |  | +      new RegExp('<a ', 'gim'),
 | 
	
		
			
				|  |  | +      '<span ',
 | 
	
		
			
				|  |  | +    );
 | 
	
		
			
				|  |  | +    return replaceOpenAnchor.replace(new RegExp('</a', 'gim'), '</span');
 | 
	
		
			
				|  |  |    };
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |    const ensureSidebarRemoved = () => {
 | 
	
	
		
			
				|  | @@ -83,9 +84,8 @@ window.ExportHtml = (Popup) => {
 | 
	
		
			
				|  |  |        elem.src = elem.src;
 | 
	
		
			
				|  |  |      });
 | 
	
		
			
				|  |  |      Array.from(document.querySelectorAll('.is-editable')).forEach(elem => {
 | 
	
		
			
				|  |  | -      elem.classList.remove('is-editable')
 | 
	
		
			
				|  |  | -    })
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | +      elem.classList.remove('is-editable');
 | 
	
		
			
				|  |  | +    });
 | 
	
		
			
				|  |  |    };
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |    const getBoardSlug = () => {
 | 
	
	
		
			
				|  | @@ -104,7 +104,8 @@ window.ExportHtml = (Popup) => {
 | 
	
		
			
				|  |  |        const responseBody = await response.text();
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |        const finalResponse = responseBody.replace(
 | 
	
		
			
				|  |  | -        new RegExp('packages\/[^\/]+\/upstream\/', 'gim'), '../'
 | 
	
		
			
				|  |  | +        new RegExp('packages/[^/]+/upstream/', 'gim'),
 | 
	
		
			
				|  |  | +        '../',
 | 
	
		
			
				|  |  |        );
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |        const filename = elem.href
 | 
	
	
		
			
				|  | @@ -138,30 +139,33 @@ window.ExportHtml = (Popup) => {
 | 
	
		
			
				|  |  |    };
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |    const removeCssUrlSurround = url => {
 | 
	
		
			
				|  |  | -    const working = url || "";
 | 
	
		
			
				|  |  | +    const working = url || '';
 | 
	
		
			
				|  |  |      return working
 | 
	
		
			
				|  |  | -      .split("url(")
 | 
	
		
			
				|  |  | -      .join("")
 | 
	
		
			
				|  |  | -      .split("\")")
 | 
	
		
			
				|  |  | -      .join("")
 | 
	
		
			
				|  |  | -      .split("\"")
 | 
	
		
			
				|  |  | -      .join("")
 | 
	
		
			
				|  |  | +      .split('url(')
 | 
	
		
			
				|  |  | +      .join('')
 | 
	
		
			
				|  |  | +      .split('")')
 | 
	
		
			
				|  |  | +      .join('')
 | 
	
		
			
				|  |  | +      .split('"')
 | 
	
		
			
				|  |  | +      .join('')
 | 
	
		
			
				|  |  |        .split("')")
 | 
	
		
			
				|  |  | -      .join("")
 | 
	
		
			
				|  |  | +      .join('')
 | 
	
		
			
				|  |  |        .split("'")
 | 
	
		
			
				|  |  | -      .join("")
 | 
	
		
			
				|  |  | -      .split(")")
 | 
	
		
			
				|  |  | -      .join("");
 | 
	
		
			
				|  |  | +      .join('')
 | 
	
		
			
				|  |  | +      .split(')')
 | 
	
		
			
				|  |  | +      .join('');
 | 
	
		
			
				|  |  |    };
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |    const getCardCovers = () => {
 | 
	
		
			
				|  |  | -    return Array.from(document.querySelectorAll('.minicard-cover'))
 | 
	
		
			
				|  |  | -      .filter(elem => elem.style['background-image'])
 | 
	
		
			
				|  |  | -  }
 | 
	
		
			
				|  |  | +    return Array.from(document.querySelectorAll('.minicard-cover')).filter(
 | 
	
		
			
				|  |  | +      elem => elem.style['background-image'],
 | 
	
		
			
				|  |  | +    );
 | 
	
		
			
				|  |  | +  };
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |    const downloadCardCovers = async (elements, zip, boardSlug) => {
 | 
	
		
			
				|  |  |      await asyncForEach(elements, async elem => {
 | 
	
		
			
				|  |  | -      const response = await fetch(removeCssUrlSurround(elem.style['background-image']));
 | 
	
		
			
				|  |  | +      const response = await fetch(
 | 
	
		
			
				|  |  | +        removeCssUrlSurround(elem.style['background-image']),
 | 
	
		
			
				|  |  | +      );
 | 
	
		
			
				|  |  |        const responseBody = await response.blob();
 | 
	
		
			
				|  |  |        const filename = removeCssUrlSurround(elem.style['background-image'])
 | 
	
		
			
				|  |  |          .split('/')
 | 
	
	
		
			
				|  | @@ -179,9 +183,12 @@ window.ExportHtml = (Popup) => {
 | 
	
		
			
				|  |  |    const addBoardHTMLToZip = (boardSlug, zip) => {
 | 
	
		
			
				|  |  |      ensureSidebarRemoved();
 | 
	
		
			
				|  |  |      const htmlOutputPath = `${boardSlug}/index.html`;
 | 
	
		
			
				|  |  | -    zip.file(htmlOutputPath, new Blob([
 | 
	
		
			
				|  |  | -      removeAnchors(getPageHtmlString())
 | 
	
		
			
				|  |  | -    ], { type: 'application/html' }));
 | 
	
		
			
				|  |  | +    zip.file(
 | 
	
		
			
				|  |  | +      htmlOutputPath,
 | 
	
		
			
				|  |  | +      new Blob([removeAnchors(getPageHtmlString())], {
 | 
	
		
			
				|  |  | +        type: 'application/html',
 | 
	
		
			
				|  |  | +      }),
 | 
	
		
			
				|  |  | +    );
 | 
	
		
			
				|  |  |    };
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |    return async () => {
 | 
	
	
		
			
				|  | @@ -202,5 +209,5 @@ window.ExportHtml = (Popup) => {
 | 
	
		
			
				|  |  |      const content = await zip.generateAsync({ type: 'blob' });
 | 
	
		
			
				|  |  |      saveAs(content, `${boardSlug}.zip`);
 | 
	
		
			
				|  |  |      window.location.reload();
 | 
	
		
			
				|  |  | -  }
 | 
	
		
			
				|  |  | +  };
 | 
	
		
			
				|  |  |  };
 |