Procedural Text Edit [PTE]

written in Haskell, HTML, CSS and JS

Procedural Text Edit consists of its own programming language and a GUI to easily use that language.
It’s main purpose is to easily define very powerful programs which are then interpreted to change a given input text. It’s currently not finished, so this page will likely change in the future.
Below a small demo video of its current state.

Every function or action is applied in sequence.

Actions

Actions directly alter the text. There’s actions to append text, align the input, sort it, move words, remove duplicates and much more.
There’s also combinators to apply other actions e.g. per line, per word or at certain split characters.

sort word
reverse char
forEachLine {
    prepend "[] "
    append "."
}

Conditions

Conditions can be used in if statements to only alter the text in certain cases.
contains, endsWith, isNumber, … . There’s also combinators such as all or not.

if (not (isNumber)) {
    append "."
}

Selectors

With selectors actions can be applied to certain parts of the input. There’s selectors such as after, between, firstN and nth.

forEachLine {
    select (nth word 3) {
        replace "third"
    }
}

A documentation explaining every single function with usage examples is currently also being developed and will be linked here once it is deployed online.