UNPKG

@wordpress/block-library

Version:
8 lines (7 loc) 3.57 kB
{ "version": 3, "sources": ["../../src/embed/transforms.js"], "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { createBlock } from '@wordpress/blocks';\nimport { isURL, getFilename } from '@wordpress/url';\n\n/**\n * Internal dependencies\n */\nimport metadata from './block.json';\nimport {\n\tfindMoreSuitableBlock,\n\trewriteXToTwitter,\n\tremoveAspectRatioClasses,\n} from './util';\n\nconst { name: EMBED_BLOCK } = metadata;\n\n/**\n * Default transforms for generic embeds.\n */\nconst transforms = {\n\tfrom: [\n\t\t{\n\t\t\ttype: 'raw',\n\t\t\tisMatch: ( node ) => {\n\t\t\t\tif ( node.nodeName !== 'P' ) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t\tconst trimmed = node.textContent.trim();\n\t\t\t\tif (\n\t\t\t\t\t! isURL( trimmed ) ||\n\t\t\t\t\t! /^https:\\/\\//i.test( trimmed ) ||\n\t\t\t\t\ttrimmed.match( /https:\\/\\//gi )?.length !== 1\n\t\t\t\t) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t\t// Reject URLs whose filename ends in a file extension,\n\t\t\t\t// except common page extensions used by permalinks.\n\t\t\t\treturn ! /\\.(?!(html?|php)$)[a-z0-9]+$/i.test(\n\t\t\t\t\tgetFilename( trimmed ) || ''\n\t\t\t\t);\n\t\t\t},\n\t\t\ttransform: ( node ) => {\n\t\t\t\tconst url = rewriteXToTwitter( node.textContent.trim() );\n\t\t\t\treturn createBlock( EMBED_BLOCK, {\n\t\t\t\t\turl,\n\t\t\t\t\t...findMoreSuitableBlock( url )?.attributes,\n\t\t\t\t} );\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\ttype: 'shortcode',\n\t\t\ttag: 'embed',\n\t\t\ttransform: ( _attrs, { shortcode } ) => {\n\t\t\t\tconst url = rewriteXToTwitter( shortcode.content?.trim() );\n\t\t\t\treturn createBlock( EMBED_BLOCK, {\n\t\t\t\t\turl,\n\t\t\t\t\t...findMoreSuitableBlock( url )?.attributes,\n\t\t\t\t} );\n\t\t\t},\n\t\t},\n\t],\n\tto: [\n\t\t{\n\t\t\ttype: 'block',\n\t\t\tblocks: [ 'core/paragraph' ],\n\t\t\tisMatch: ( { url } ) => !! url,\n\t\t\ttransform: ( { url, caption, className } ) => {\n\t\t\t\tlet value = `<a href=\"${ url }\">${ url }</a>`;\n\t\t\t\tif ( caption?.trim() ) {\n\t\t\t\t\tvalue += `<br />${ caption }`;\n\t\t\t\t}\n\t\t\t\treturn createBlock( 'core/paragraph', {\n\t\t\t\t\tcontent: value,\n\t\t\t\t\tclassName: removeAspectRatioClasses( className ),\n\t\t\t\t} );\n\t\t\t},\n\t\t},\n\t],\n};\n\nexport default transforms;\n"], "mappings": ";AAGA,SAAS,mBAAmB;AAC5B,SAAS,OAAO,mBAAmB;AAKnC,OAAO,cAAc;AACrB;AAAA,EACC;AAAA,EACA;AAAA,EACA;AAAA,OACM;AAEP,IAAM,EAAE,MAAM,YAAY,IAAI;AAK9B,IAAM,aAAa;AAAA,EAClB,MAAM;AAAA,IACL;AAAA,MACC,MAAM;AAAA,MACN,SAAS,CAAE,SAAU;AACpB,YAAK,KAAK,aAAa,KAAM;AAC5B,iBAAO;AAAA,QACR;AACA,cAAM,UAAU,KAAK,YAAY,KAAK;AACtC,YACC,CAAE,MAAO,OAAQ,KACjB,CAAE,eAAe,KAAM,OAAQ,KAC/B,QAAQ,MAAO,cAAe,GAAG,WAAW,GAC3C;AACD,iBAAO;AAAA,QACR;AAGA,eAAO,CAAE,gCAAgC;AAAA,UACxC,YAAa,OAAQ,KAAK;AAAA,QAC3B;AAAA,MACD;AAAA,MACA,WAAW,CAAE,SAAU;AACtB,cAAM,MAAM,kBAAmB,KAAK,YAAY,KAAK,CAAE;AACvD,eAAO,YAAa,aAAa;AAAA,UAChC;AAAA,UACA,GAAG,sBAAuB,GAAI,GAAG;AAAA,QAClC,CAAE;AAAA,MACH;AAAA,IACD;AAAA,IACA;AAAA,MACC,MAAM;AAAA,MACN,KAAK;AAAA,MACL,WAAW,CAAE,QAAQ,EAAE,UAAU,MAAO;AACvC,cAAM,MAAM,kBAAmB,UAAU,SAAS,KAAK,CAAE;AACzD,eAAO,YAAa,aAAa;AAAA,UAChC;AAAA,UACA,GAAG,sBAAuB,GAAI,GAAG;AAAA,QAClC,CAAE;AAAA,MACH;AAAA,IACD;AAAA,EACD;AAAA,EACA,IAAI;AAAA,IACH;AAAA,MACC,MAAM;AAAA,MACN,QAAQ,CAAE,gBAAiB;AAAA,MAC3B,SAAS,CAAE,EAAE,IAAI,MAAO,CAAC,CAAE;AAAA,MAC3B,WAAW,CAAE,EAAE,KAAK,SAAS,UAAU,MAAO;AAC7C,YAAI,QAAQ,YAAa,GAAI,KAAM,GAAI;AACvC,YAAK,SAAS,KAAK,GAAI;AACtB,mBAAS,SAAU,OAAQ;AAAA,QAC5B;AACA,eAAO,YAAa,kBAAkB;AAAA,UACrC,SAAS;AAAA,UACT,WAAW,yBAA0B,SAAU;AAAA,QAChD,CAAE;AAAA,MACH;AAAA,IACD;AAAA,EACD;AACD;AAEA,IAAO,qBAAQ;", "names": [] }