Mercurial Hosting > freedit
comparison src/test/tiny.html @ 24:fccbe5554fcc
tinymce work
author | Franklin Schmidt <fschmidt@gmail.com> |
---|---|
date | Tue, 19 Jul 2022 22:07:02 -0600 |
parents | cdcd1b70c15e |
children | 0837820b97fb |
comparison
equal
deleted
inserted
replaced
23:cdcd1b70c15e | 24:fccbe5554fcc |
---|---|
1 <!doctype html> | 1 <!doctype html> |
2 <html> | 2 <html> |
3 <head> | 3 <head> |
4 <meta name="viewport" content="width=device-width, initial-scale=1"> | 4 <meta name="viewport" content="width=device-width, initial-scale=1"> |
5 <script src="https://cdn.tiny.cloud/1/no-api-key/tinymce/6/tinymce.min.js" referrerpolicy="origin"></script> | 5 <script src="http://tinymce.luan.software/tinymce.min.js" xreferrerpolicy="origin"></script> |
6 <style> | 6 <style> |
7 </style> | 7 </style> |
8 <script> | 8 <script> |
9 var youtubePtn1 = new RegExp('https://youtu.be/([a-zA-Z0-9_-]+)(?:\\?t=([0-9]+))?'); | 9 var youtubePtn1 = new RegExp('https://youtu.be/([a-zA-Z0-9_-]+)(?:\\?t=([0-9]+))?'); |
10 var youtubePtn2 = new RegExp('https://www.youtube.com/watch\\?v=([a-zA-Z0-9_-]+)(?:\\?t=([0-9]+)s)?'); | 10 var youtubePtn2 = new RegExp('https://www.youtube.com/watch\\?v=([a-zA-Z0-9_-]+)(?:\\?t=([0-9]+)s)?'); |
27 html = '<a data-video="'+url+'" href="'+url+'">'+url+'</a>'; | 27 html = '<a data-video="'+url+'" href="'+url+'">'+url+'</a>'; |
28 } | 28 } |
29 resolve({ html: html }); | 29 resolve({ html: html }); |
30 } | 30 } |
31 | 31 |
32 | |
32 function tinymceSetup(editor) { | 33 function tinymceSetup(editor) { |
33 editor.ui.registry.addButton('styleCode', { | 34 |
34 text: 'code', | 35 editor.ui.registry.addToggleButton('styleCode', { |
35 onAction: () => alert('Button clicked!') | 36 //text: 'code', |
37 icon: 'sourcecode', | |
38 tooltip: 'Code', | |
39 onAction: function(api) { | |
40 editor.execCommand('mceToggleFormat', false, 'code') | |
41 //api.setActive( !api.isActive() ); | |
42 }, | |
43 onSetup: function(api) { | |
44 api.setActive(editor.formatter.match('code')); | |
45 let changed = editor.formatter.formatChanged('code', api.setActive); | |
46 return function() { changed.unbind(); }; | |
47 } | |
48 }); | |
49 | |
50 editor.ui.registry.addMenuButton('styleText', { | |
51 icon: 'format', | |
52 tooltip: 'Text', | |
53 fetch: function(callback) { | |
54 callback([ | |
55 'fontsize', | |
56 'forecolor', | |
57 ]) | |
58 } | |
36 }); | 59 }); |
37 } | 60 } |
38 | 61 |
39 tinymce.init({ | 62 tinymce.init({ |
40 selector: 'textarea', | 63 selector: 'textarea', |
41 setup: tinymceSetup, | 64 setup: tinymceSetup, |
42 plugins: ['link', 'image', 'media', 'lists'], | 65 toolbar: 'link image media | styleCode bold italic underline strikethrough superscript styleText | blockquote numlist bullist', |
66 plugins: ['link', 'image', 'media', 'lists', 'code'], | |
43 link_target_list: false, | 67 link_target_list: false, |
44 link_title: false, | 68 link_title: false, |
45 image_description: false, | 69 image_description: false, |
46 image_dimensions: false, | 70 image_dimensions: false, |
47 object_resizing: false, | 71 object_resizing: false, |
51 media_poster: false, | 75 media_poster: false, |
52 media_url_resolver: media_url_resolver, | 76 media_url_resolver: media_url_resolver, |
53 text_patterns: false, | 77 text_patterns: false, |
54 content_style: 'img {max-width: 500px;}', | 78 content_style: 'img {max-width: 500px;}', |
55 //newline_behavior: 'linebreak', | 79 //newline_behavior: 'linebreak', |
56 toolbar: 'link image media | styleCode bold | numlist bullist', | |
57 extended_valid_elements: 'b,i', | 80 extended_valid_elements: 'b,i', |
58 formats: { | 81 formats: { |
59 bold: { inline: 'b' }, | 82 bold: { inline: 'b' }, |
60 italic: {inline: 'i'}, | 83 italic: {inline: 'i'}, |
61 underline: {inline: 'u'}, | 84 underline: {inline: 'u'}, |