Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // ==UserScript==
- // @name Tumblr Smaller Text
- // @namespace gracefulally
- // @description Surrounds post text with small tags.
- // @include http://www.tumblr.com/reblog/*
- // @include http://www.tumblr.com/new/*
- // @include http://www.tumblr.com/edit/*
- // @include http://www.tumblr.com/inbox
- // @require http://code.jquery.com/jquery-latest.min.js
- // ==/UserScript==
- (function(){
- SHRINKBTNURL = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoV2luZG93cykiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6NjIyQkE0M0YwQ0I5MTFFMkEzRTFCRjE4MTU2MzI1REYiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6NjIyQkE0NDAwQ0I5MTFFMkEzRTFCRjE4MTU2MzI1REYiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo2MjJCQTQzRDBDQjkxMUUyQTNFMUJGMTgxNTYzMjVERiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo2MjJCQTQzRTBDQjkxMUUyQTNFMUJGMTgxNTYzMjVERiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PlZ7XgQAAADVSURBVHja3FRRDYMwFKRkBrAwC7WABSzMQjUgYUiohkkACbNQJHTX5bG8NG1ft/FBuOTSAMflcfeC8t43e6JtdsZJDJVSBvSgFcWhFInAM0hBB3YlbVsx3YDjSpcdePtrQmBm04VzLuoFM00mluiJ/a+Gm0kPDszw/rUh5eX4J9aUUyrFkOnE7k1iORWrkmOynEtukWlVHuASPdaUqYZOw2QRJ6RVSeYUlWPFUlizthCHY6YmaxgJ320mmi/mGWc40ksb1iieFbmNidg/OnX4P/ZLgAEAGMqkTGvOzxwAAAAASUVORK5CYII=';
- if (document.body.id=='tinymce')
- return; //hack in order to prevent script from running inside editor frame.
- function shrinkPostText(v) {
- //we need to do the contents() trick in order to manipulate the content of the #post_two_ifr iframe.
- var post = $(v).contents().find('iframe').contents().find('#tinymce');
- var markup = $('<body>').append(post.html()); // temporary container
- $.merge(markup.find('p'), markup.find('li')).each(function(i,e) {
- if(!($(e).children().size() > 0) || $(e).children()[0].tagName != 'SMALL') {
- e.innerHTML = '<small>' + e.innerHTML + '</small>';
- }
- });
- //setting new post text. Yay!
- post.html(markup.html());
- }
- function appendButton() {
- //dirty, DIRTY hack -_- But I have no idea how to do it right, as editor seems to load dynamically.
- $('.mceEditor').each( function (i,v) {
- if ($(v).contents().find('a.post_shrink_text').size() == 0) {
- //forming the button, adding the handler...
- var button = $('<td style="position:relative;"><a class="mceButton mceButtonEnabled post_shrink_text" role="button" href="javascript:;" title="Shrink Post Text"><img src="'+SHRINKBTNURL+'" /></a></td>');
- button.find('a').on("click", function () { shrinkPostText(v); });
- //...and placing it!
- $($(v).contents().find('a.mce_blockquote').parents('td')[0]).after(button);
- }
- });
- setTimeout(appendButton, 500);
- return false;
- }
- appendButton();
- })();
Add Comment
Please, Sign In to add comment