|
620 | 620 |
|
621 | 621 | }, |
622 | 622 |
|
623 | | - basicVideoTemplate: function (url) { |
624 | | - var template = '<div class="ejs-video">' + |
625 | | - ' <div class="ejs-video-player">' + |
626 | | - ' <div class="player">' + |
627 | | - ' <video src="' + url + '" controls></video>' + |
628 | | - ' </div>' + |
629 | | - ' </div>' + |
630 | | - '</div>'; |
631 | | - |
632 | | - return template; |
633 | | - }, |
634 | | - |
635 | | - embedBasic: function (str) { |
| 623 | + embedBasic: function (rawStr,str) { |
636 | 624 | var basicVideoRegex = /((?:https?):\/\/\S*\.(?:ogv|webm|mp4))/gi; |
637 | 625 |
|
638 | | - if (str.match(basicVideoRegex)) { |
639 | | - var template = this.basicVideoTemplate(RegExp.$1); |
| 626 | + if (rawStr.match(basicVideoRegex)) { |
| 627 | + var template = '<div class="ejs-video"><div class="ejs-video-player"><div class="player"><video src="' + RegExp.$1 + '" controls></video></div></div></div>'; |
640 | 628 | str = str + template; |
641 | 629 | } |
642 | 630 | return str; |
643 | 631 | } |
644 | 632 | }; |
645 | 633 |
|
646 | 634 | var pdfProcess = { |
647 | | - embed: function (str) { |
| 635 | + embed: function (rawStr,str) { |
648 | 636 | var p = /((?:https?):\/\/\S*\.(?:pdf|PDF))/gi; |
649 | | - if (str.match(p)) { |
| 637 | + if (rawStr.match(p)) { |
650 | 638 | var pdfUrl = RegExp.$1; |
651 | | - |
652 | 639 | var pdfTemplate = '<div class="ejs-pdf"><div class="ejs-pdf-preview"><div class="ejs-pdf-icon"><i class="fa fa-file-pdf-o"></i></div><div class="ejs-pdf-detail" ><div class="ejs-pdf-title"> <a href="">' + pdfUrl + '</a></div> <div class="ejs-pdf-view"> <button><i class="fa fa-download"></i> <a href="' + pdfUrl + '" target="_blank">Download</a></button> <button class="ejs-pdf-view-active"><i class="fa fa-eye"></i> View PDF</button></div> </div> </div></div>'; |
653 | | - |
654 | 640 | str = str + pdfTemplate; |
655 | 641 |
|
656 | 642 | } |
|
723 | 709 | }; |
724 | 710 |
|
725 | 711 | var audioProcess = { |
726 | | - basicEmbed: function (str) { |
| 712 | + basicEmbed: function (rawStr,str) { |
727 | 713 | var a = /((?:https?):\/\/\S*\.(?:wav|mp3|ogg))/gi; |
728 | | - if (str.match(a)) { |
729 | | - var audioUrl = RegExp.$1; |
730 | | - |
731 | | - var audioTemplate = '<div class="ejs-audio"><audio src="' + audioUrl + '" controls></audio></div>'; |
732 | | - |
| 714 | + if (rawStr.match(a)) { |
| 715 | + var audioTemplate = '<div class="ejs-audio"><audio src="' + RegExp.$1 + '" controls></audio></div>'; |
733 | 716 | str = str + audioTemplate; |
734 | 717 | } |
735 | 718 | return str; |
736 | 719 | }, |
737 | 720 |
|
738 | | - soundCloudEmbed: function (str, opts) { |
| 721 | + soundCloudEmbed: function (rawStr,str, opts) { |
739 | 722 | var scRegex = /soundcloud.com\/[a-zA-Z0-9-_]+\/[a-zA-Z0-9-_]+/gi; |
740 | | - var matches = str.match(scRegex) ? str.match(scRegex).getUnique() : null; |
| 723 | + var matches = rawStr.match(scRegex) ? rawStr.match(scRegex).getUnique() : null; |
741 | 724 | if (matches) { |
742 | 725 | var i = 0; |
743 | 726 | while (i < matches.length) { |
|
762 | 745 | }; |
763 | 746 |
|
764 | 747 | var imageProcess = { |
765 | | - template: function (url) { |
766 | | - var t = '<div class="ejs-image">' + |
767 | | - ' <div class="ne-image-wrapper">' + |
768 | | - ' <img src="' + url + '"/>' + |
769 | | - ' </div>' + |
770 | | - '</div>'; |
771 | | - |
772 | | - return t; |
773 | | - |
774 | | - }, |
775 | | - embed : function (str) { |
| 748 | + embed : function (rawStr,str) { |
776 | 749 | var i = /((?:https?):\/\/\S*\.(?:gif|jpg|jpeg|tiff|png|svg|webp))/gi; |
777 | | - if (str.match(i)) { |
778 | | - var template = this.template(RegExp.$1); |
| 750 | + if (rawStr.match(i)) { |
| 751 | + var template = '<div class="ejs-image"><div class="ne-image-wrapper"><img src="' + RegExp.$1 + '"/></div></div>'; |
779 | 752 | str = str + template; |
780 | 753 | } |
781 | 754 | return str; |
|
858 | 831 | }; |
859 | 832 |
|
860 | 833 | var codeEmbedProcess = { |
861 | | - codepenEmbed: function (str, opts) { |
| 834 | + codepenEmbed: function (rawStr,str, opts) { |
862 | 835 | var codepenRegex = /http:\/\/codepen.io\/([A-Za-z0-9_]+)\/pen\/([A-Za-z0-9_]+)/gi; |
863 | | - var matches = str.match(codepenRegex) ? str.match(codepenRegex).getUnique() : null; |
| 836 | + var matches = rawStr.match(codepenRegex) ? rawStr.match(codepenRegex).getUnique() : null; |
864 | 837 | if (matches) { |
865 | 838 | var i = 0; |
866 | 839 | while (i < matches.length) { |
|
871 | 844 | return str; |
872 | 845 | }, |
873 | 846 |
|
874 | | - jsfiddleEmbed: function (str, opts) { |
| 847 | + jsfiddleEmbed: function (rawStr,str, opts) { |
875 | 848 | var jsfiddleRegex = /jsfiddle.net\/[a-zA-Z0-9_]+\/[a-zA-Z0-9_]+/gi; |
876 | | - var matches = str.match(jsfiddleRegex) ? str.match(jsfiddleRegex).getUnique() : null; |
| 849 | + var matches = rawStr.match(jsfiddleRegex) ? rawStr.match(jsfiddleRegex).getUnique() : null; |
877 | 850 | if (matches) { |
878 | 851 | var i = 0; |
879 | 852 | while (i < matches.length) { |
|
884 | 857 | return str; |
885 | 858 | }, |
886 | 859 |
|
887 | | - jsbinEmbed: function (str, opts) { |
| 860 | + jsbinEmbed: function (rawStr,str, opts) { |
888 | 861 | var jsbinRegex = /jsbin.com\/[a-zA-Z0-9_]+\/[0-9_]+/gi; |
889 | | - var matches = str.match(jsbinRegex) ? str.match(jsbinRegex).getUnique() : null; |
| 862 | + var matches = rawStr.match(jsbinRegex) ? rawStr.match(jsbinRegex).getUnique() : null; |
890 | 863 | if (matches) { |
891 | 864 | var i = 0; |
892 | 865 | while (i < matches.length) { |
|
910 | 883 |
|
911 | 884 | var that = this; |
912 | 885 |
|
| 886 | + var rawInput=input; |
| 887 | + |
913 | 888 | input = (settings.link) ? urlEmbed(input) : input; |
914 | 889 | input = insertfontSmiley(input); |
915 | 890 | input = insertEmoji(input); |
916 | | - input = (settings.pdfEmbed) ? pdfProcess.embed(input) : input; |
917 | | - input = (settings.audioEmbed) ? audioProcess.basicEmbed(input) : input; |
| 891 | + input = (settings.pdfEmbed) ? pdfProcess.embed(rawInput,input) : input; |
| 892 | + input = (settings.audioEmbed) ? audioProcess.basicEmbed(rawInput,input) : input; |
918 | 893 | input = (settings.highlightCode) ? codeProcess.highlight(input) : input; |
919 | | - input = (settings.basicVideoEmbed) ? videoProcess.embedBasic(input) : input; |
920 | | - input = (settings.imageEmbed) ? imageProcess.embed(input) : input; |
921 | | - input = (settings.codepenEmbed) ? codeEmbedProcess.codepenEmbed(input, settings) : input; |
922 | | - input = (settings.jsfiddleEmbed) ? codeEmbedProcess.jsfiddleEmbed(input, settings) : input; |
923 | | - input = (settings.jsbinEmbed) ? codeEmbedProcess.jsbinEmbed(input, settings) : input; |
924 | | - input = (settings.soundCloudEmbed) ? audioProcess.soundCloudEmbed(input, settings) : input; |
925 | | - //$(that).html(input); |
| 894 | + input = (settings.basicVideoEmbed) ? videoProcess.embedBasic(rawInput,input) : input; |
| 895 | + input = (settings.imageEmbed) ? imageProcess.embed(rawInput,input) : input; |
| 896 | + input = (settings.codepenEmbed) ? codeEmbedProcess.codepenEmbed(rawInput,input, settings) : input; |
| 897 | + input = (settings.jsfiddleEmbed) ? codeEmbedProcess.jsfiddleEmbed(rawInput,input, settings) : input; |
| 898 | + input = (settings.jsbinEmbed) ? codeEmbedProcess.jsbinEmbed(rawInput,input, settings) : input; |
| 899 | + input = (settings.soundCloudEmbed) ? audioProcess.soundCloudEmbed(rawInput,input, settings) : input; |
926 | 900 |
|
927 | 901 | videoProcess.embed(input, settings).then( |
928 | 902 | function (d) { |
|
0 commit comments