Critic markup in TW

Is there any plugin for critic markup forr TW or another easy way to implement this?

Please, show common courtesy and provide a link when referencing things that people don’t obviously know about, especially if it is not directly about TW. I am guessing this is the canonical link for what you’re talking about: CriticMarkup

I had to laugh, because the github link did nothing to answer the “what is criticmarkup?” question for me (until I scrolled way down, which I didn’t do at first because my eyes glazed over at the code directories).

Here’s another explanatory link without the github structure: CriticMarkup

Now that I understand what it is, I’d LOVE to see a plugin that accomplishes something functionally equivalent to do this. To achieve similar purposes, I’ve always re-appropriated some existing markup, and then mucked around with home-made css classes.


Funny enough, after reading the docs at the github link I found out that the first line actually tells us what it is for:

Critic Markup is intended to provide basic editorial change tracking in plain text files. The syntax is compatible with Markdown, MultiMarkdown and HTML.

I did highlight the words that are important. … IMO it only makes sense if there is some UI with a 3-way-merge, that allows us to create a “new source of truth”, when the editorial process is finished.

In TW you can import a new tiddler into a wiki, which contains the “old” tiddler and the input dialogue will be able to show the differences.

Its is quite easy to add features to allow making more use of the “difference engine” in tiddlywiki. I have a clone button that records the source tiddler in the new tiddler and comes with a preview to see the difference between the current and the source.

Other related features easy to build for Authors includes;

  • In wiki tiddler multi-version backups for nominated tiddlers
  • Allow difference analysis between any two

Though difference engines’ are of different quality

In a related feedback review process I have done a POC or two, with allowing a read only user to make changes, capture them in a bundle and submit them to the owner for acceptance/rejection, in this case making use of the import difference check, Although a more appropriate interface would help (than default import).

@michalradacz Is the link that @twMat posted righ? … Please let us know.

The second question is. Could you be more specific about your usecase. As you saw from our answers, there are some existing mechanisms to find out about differences between 2 text.

Why would you want to use “critic markup” instead?

I’m not the OP. But I can appreciate that this protocol has room for inline comments and questions that are clearly also in editorial/suggestion voice. The CriticMarkup approach may make more sense if you’re gradually deliberating and collaborating on a shared project, rather than already having a suggested revised version already done.

Also, if someone already knows the CriticMarkup keystrokes, and/or wants to be able to shift between TW and other environments where it’s already in use, it would be great to converge on that markup.

@michalradacz what are the priorities that lead you to ask about CriticMarkup?

Yes, it will be great, but it should use tags instead CSS styling for annotations.

Hi all, my usecase for critic markup is:

I have some text in tiddler. I want to make some changes and display them in preview tagged as INS, DEL and MARK tags. After approving in discussion I want to accept or eject every change, and do it all in tiddlywiki if it is possible.

So, I am not using CM for diffs and displays differences between two tiddlers, but for displaying revisions made in one tiddler, Word revisions is good example.

I am ucing CM in my markdown applicationa, but now I am using TW as my primary work and knowledgbease tool and it may be nice to implement revision mechanism. I tested dynannotate as alternative for visual annotations, but it is unaccessible and isnt for my usecases acceptable solution.

I see. As I wrote.

It also needs a possibility to “accept” or “reject” elements that have been annotated. So there needs to be a “search / replace” function in a plugin.

from GitHub: The basic syntax looks like this.

There are five types of Critic marks:

  • Addition {++ ++}
  • Deletion {-- --}
  • Substitution {~~ ~> ~~}
  • Comment {>> <<}
  • Highlight {== ==}{>> <<}

I think it should be straight forward to implement a parser that will convert the CriticMarkup to HTML elements as described. I think it shouldn’t “clash” with the existing TW syntax. It should be different enough.


Implementing the accept reject functionality will be harder, if wikitext is involved. TW allows transclusions. eg:

title: tidder-1

Some text may look like this. This is a pragraph


This is an other paragraph. 
title: tidder-2

Some {~~test~>text~~} from tiddler 2

The substitution from tiddler-2 will show up if you open tiddler-1 … But due to the nature of transclusions the “accept/reject” function in “view mode” doesn’t know about it.

It’s possible to handle that, but the devil is in the detail. So it will be much more work as it first seems.

1 Like