Mercurial Hosting > freedit
changeset 22:d87a8f9f43d7
tinymce work
author | Franklin Schmidt <fschmidt@gmail.com> |
---|---|
date | Sun, 17 Jul 2022 21:47:55 -0600 |
parents | 33731231093a |
children | cdcd1b70c15e |
files | src/test/tiny.html |
diffstat | 1 files changed, 68 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
diff -r 33731231093a -r d87a8f9f43d7 src/test/tiny.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/test/tiny.html Sun Jul 17 21:47:55 2022 -0600 @@ -0,0 +1,68 @@ +<!doctype html> +<html> + <head> + <meta name="viewport" content="width=device-width, initial-scale=1"> + <script src="https://cdn.tiny.cloud/1/no-api-key/tinymce/6/tinymce.min.js" referrerpolicy="origin"></script> + <style> + </style> + <script> + var youtubePtn1 = new RegExp('https://youtu.be/([a-zA-Z0-9_-]+)(?:\\?t=([0-9]+))?'); + var youtubePtn2 = new RegExp('https://www.youtube.com/watch\\?v=([a-zA-Z0-9_-]+)(?:\\?t=([0-9]+)s)?'); + var bitchutePtn = new RegExp('https://www.bitchute.com/video/([a-zA-Z0-9]+)/'); + var url2; + + function media_url_resolver(data,resolve,reject) { + let html; + let url = data.url; + url2 = url; + let result; + if( result = url.match(youtubePtn1) || url.match(youtubePtn2) ) { + html = '<iframe data-url="'+url+'" width="560" height="315" src="https://www.youtube.com/embed/' + result[1]; + if( result[2] ) + html += '?start=' + result[2] + html += '" frameborder="0" allowfullscreen></iframe>'; + } else if( result = url.match(bitchutePtn) ) { + html = '<iframe data-url="'+url+'" width="560" height="315" scrolling="no" frameborder="0" style="border: none;" src="https://www.bitchute.com/embed/' + result[1] + '/"></iframe>'; + } else { + html = '<a href="'+url+'">'+url+'</a>'; + } + resolve({ html: html }); + } + + tinymce.init({ + selector: 'textarea', + plugins: ['link', 'image', 'media'], + link_target_list: false, + link_title: false, + image_description: false, + image_dimensions: false, + object_resizing: false, + contextmenu: false, + media_alt_source: false, + media_dimensions: false, + media_poster: false, + media_url_resolver: media_url_resolver, + text_patterns: false, + content_style: 'img {max-width: 500px;}', + newline_behavior: 'linebreak', + //toolbar: 'image', + extended_valid_elements: 'b,i', + formats: { + bold: { inline: 'b' }, + italic: {inline: 'i'}, + underline: {inline: 'u'}, + }, + }); + + function log() { + console.log(tinymce.activeEditor.getContent()); + } + </script> + </head> + <body> + <p>top</p> + <textarea></textarea> + <p><button onclick="log()">log</button></p> + <p>bottom</p> + </body> +</html>