diff --git a/lib/csp.js b/lib/csp.js index ac06722d6..e6827758d 100644 --- a/lib/csp.js +++ b/lib/csp.js @@ -10,18 +10,17 @@ const defaultDirectives = { connectSrc: ['\'self\'', buildDomainOriginWithProtocol(config, 'ws')], fontSrc: ['\'self\''], manifestSrc: ['\'self\''], - frameSrc: ['\'self\'', 'https://player.vimeo.com', 'https://www.slideshare.net/slideshow/embed_code/key/', 'https://www.youtube.com'], + frameSrc: ['\'self\'', 'https://player.vimeo.com', 'https://www.slideshare.net/slideshow/embed_code/key/', 'https://www.youtube.com', 'https://gist.github.com'], imgSrc: ['*', 'data:'], // we allow using arbitrary images & explicit data for mermaid scriptSrc: [ config.serverURL + '/build/', config.serverURL + '/js/', config.serverURL + '/config', - 'https://gist.github.com/', 'https://vimeo.com/api/oembed.json', 'https://www.slideshare.net/api/oembed/2', '\'unsafe-inline\'' // this is ignored by browsers supporting nonces/hashes ], - styleSrc: [config.serverURL + '/build/', config.serverURL + '/css/', '\'unsafe-inline\'', 'https://github.githubassets.com'], // unsafe-inline is required for some libs, plus used in views + styleSrc: [config.serverURL + '/build/', config.serverURL + '/css/', '\'unsafe-inline\''], // unsafe-inline is required for some libs, plus used in views objectSrc: ['*'], // Chrome PDF viewer treats PDFs as objects :/ formAction: ['\'self\''], mediaSrc: ['*'] diff --git a/package.json b/package.json index e1196330f..35c4756f9 100644 --- a/package.json +++ b/package.json @@ -167,7 +167,6 @@ "file-saver": "2.0.5", "flowchart.js": "1.18.0", "fork-awesome": "1.2.0", - "gist-embed": "2.6.0", "globals": "16.0.0", "highlight.js": "10.7.3", "html-webpack-plugin": "4.5.2", diff --git a/public/css/extra.css b/public/css/extra.css index d5945ba93..d108a5ec1 100644 --- a/public/css/extra.css +++ b/public/css/extra.css @@ -63,6 +63,11 @@ -webkit-transition: opacity 0.2s; /* Safari */ transition: opacity 0.2s; } +iframe.github-gist-frame { + width: 100%; + border: none; + height: 32rem; +} .slideshare .inner, .speakerdeck .inner { diff --git a/public/js/extra.js b/public/js/extra.js index 210f8da9d..36668b1c3 100644 --- a/public/js/extra.js +++ b/public/js/extra.js @@ -15,8 +15,6 @@ import markdownitContainer from 'markdown-it-container' /* Defined regex markdown it plugins */ import Plugin from 'markdown-it-regexp' -import 'gist-embed' - require('prismjs/themes/prism.css') require('prismjs/components/prism-wiki') require('prismjs/components/prism-haskell') @@ -304,10 +302,6 @@ export function finishView (view) { } }) }) - // gist - view.find('code[data-gist-id]').each((key, value) => { - if ($(value).children().length === 0) { $(value).gist(window.viewAjaxCallback) } - }) // sequence diagram const sequences = view.find('div.sequence-diagram.raw').removeClass('raw') sequences.each((key, value) => { @@ -639,8 +633,6 @@ function generateCleanHTML (view) { src.find('*[class=""]').removeAttr('class') eles.removeAttr('data-startline data-endline') src.find("a[href^='#'][smoothhashscroll]").removeAttr('smoothhashscroll') - // remove gist content - src.find('code[data-gist-id]').children().remove() // disable todo list src.find('input.task-list-item-checkbox').attr('disabled', '') // replace emoji image path @@ -1156,8 +1148,7 @@ const gistPlugin = new Plugin( (match, utils) => { const gistid = match[1] - const code = `` - return code + return `` } ) // TOC diff --git a/public/js/htmlExport.js b/public/js/htmlExport.js index 676e2b1bc..2f4a09872 100644 --- a/public/js/htmlExport.js +++ b/public/js/htmlExport.js @@ -22,4 +22,3 @@ const $ = require('jquery') window.jQuery = $ window.$ = $ require('bootstrap') -require('gist-embed/gist-embed.min') diff --git a/yarn.lock b/yarn.lock index d2e7ce287..631aa2cfb 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1395,7 +1395,6 @@ __metadata: flowchart.js: "npm:1.18.0" fork-awesome: "npm:1.2.0" formidable: "npm:2.1.2" - gist-embed: "npm:2.6.0" globals: "npm:16.0.0" graceful-fs: "npm:4.2.11" helmet: "npm:8.1.0" @@ -7421,13 +7420,6 @@ __metadata: languageName: node linkType: hard -"gist-embed@npm:2.6.0": - version: 2.6.0 - resolution: "gist-embed@npm:2.6.0" - checksum: 10/6b9e1266e86f856a0ba64f27fe735748f1754b8a945b629ff5ab7705554a274d06ead0c177f503d4d94490851abb4caf533ef076c9d794ecc34c142491b4aff6 - languageName: node - linkType: hard - "github-from-package@npm:0.0.0": version: 0.0.0 resolution: "github-from-package@npm:0.0.0"