Format text in iOS app with another app via share sheet?


#1

I’m wondering if anyone knows of an app that can format highlighted text in another app via a share sheet in iOS. I’m not even sure this is possible. Basically I have text in one app (in several areas) that is all caps and I want to change it to title case…but without doing a lot of copy and pasting. I was hoping I could highlight the text, run some sort of share extension that gives formatting options, then do it again and again.


#2

This is my go to app for that nowadays. You can do a lot with Shortcuts too though.


#3

Thanks, Rose! I gave Clean Text a try (Sparky recommended it a couple years ago) and it did what I needed…but no share extension and no shortcuts. It was pretty great for what it does do, though (regx support built in). I’ll try Text Case next!


#4

This is part of what I call a “value added shelf”. (For a Marketing guy I sure come up with some snappy names.) :slight_smile:

I would really like a programmable shelf. Shortcuts almost gets there but doesn’t have a “repository” capability. But, as you noted, you could do arbitrary text (and image, etc) transforms by dropping on it.


#5

Copied can both transform text in the clipboard and act as a shelf for most purposes.


#6

Right. But can you write your own formatting (etc) scripts? I don’t care which language.


#7

Yes, in Javascript.

Here’s the template for a new one:

// A clipping object is a JavaScript object
// that contains the following properties.
// Properties values may be null.
//  title       (String)
//  text        (String)
//  url         (String)
//  saveDate    (Date)

// Return true if the clipping can be reformatted with this script.

function canFormat(clipping) {
    return clipping.text != null
}

// Process data and return a new/updated clipping object or a string.

function format(clipping) {
    return encodeURI(clipping.text)
}

And a sample Remove Extra Whitespace:

function canFormat(clipping) {
    return clipping.text != null
}

function format(clipping) {
    var text = clipping.text
    text = text.trim()
    text = text.replace(/(\r\n|\r|\n){2,}/g, '$1\n')
    return text
}

As far as I can tell this isn’t documented on the app web site. But it’s in the iOS app.


#8

Oh…I already have copied and didn’t know that!