Taken from https://code.google.com/archive/p/jtexy/
Texy! is a text tool written in PHP that translates a natural text markup mixed with HTML into a valid (X)HTML code.
JTexy aims to be a fully compatible Java implementation of Texy! markup language. Also see my original Java implementation suggestion.
2012-11-12: JTexy reached the point where it's actually usable, I've decided to release version 1.0.0. Available in the Maven repository. The Sandbox will be updated later.
Whole 1.x version can be considered as path to compatibility with Texy 2.0. When that is reached, 2.0.0 will be released and Texy 2.1 improvements porting will begin.
Converts a concise easy-to-write syntax like this
Title .[myHtmlId]{my-css-class1 class2}
============================================
Hello //world!//
How are you?
I'm fine. Look at my "blog":<a href="http://www.blog.cz/">http://www.blog.cz/</a>. And my photo: [* img/me.png *]</p>
Subtitle
--------
/--code java
System.out.println("That's all.");
\-
to XHTML:
<p id="myHtmlId" class=my-css-class1 class2">Title</p>
<p>Hello <em>world!</em> How are you?
<br>I'm fine. Look at my <a href="http://www.blog.cz/">blog</a>. And my photo: </p>
<h2>Subtitle</h2>
<code>System.out.println("That's all.");</code>
Looks like yet-another-wiki-markup, but (J)Texy can do much more - see here, try here.
Natural syntax, really easy to learn, see here: http://texy.info/en/syntax
All the usual:
Supports text mixed with HTML
Fixes the embedded HTML to be valid
Auto-generated document header and TOC available through API
See Wikipedia comparison (More later).
Uncommented are done. Numbers in parens denote expected priority.
// line parsing
(8)//module = this.scriptModule = new ScriptModule();
(1)//module = this.htmlModule = new HtmlModule();
module = this.imageModule = new ImageModule(); this.registerModule( module );
module = this.phraseModule = new PhraseModule(); this.registerModule( module );
module = this.linkModule = new LinkModule(); this.registerModule( module );
(9)//module = this.emoticonModule = new EmoticonModule(); this.registerModule( module );</p>
// block parsing
module = this.paragraphModule = new ParagraphModule(); this.registerModule( module );
module = this.blockModule = new BlockModule(); this.registerModule( module );
(6)//module = this.figureModule = new FigureModule(); this.registerModule( module );
module = this.horizLineModule = new HorizontalLineModule(); this.registerModule( module );
(3)//module = this.blockQuoteModule = new BlockQuoteModule(); this.registerModule( module );
(4)//module = this.tableModule = new TableModule(); this.registerModule( module );
module = this.headingModule = new HeadingModule(); this.registerModule( module );
module = this.listModule = new ListModule(); this.registerModule( module ); // Almost done.
// post process
(5)//module = this.typographyModule = new TypographyModule(); // In progress.
(7)//module = this.longWordsModule = new LongWordsModule();
(2)//module = this.htmlOutputModule = new HtmlOutputModule();
To run the testsuite, you need to set the jtexy.phptexy.ts.dir
property in settings.xml
, pointing to the testsuite dir:
c:/java/JTexy/JTexy-google/src/phptexy20/testsuite
c:/java/JTexy/JTexy-google/src/test/resources/cz/dynawest/jtexy/ts
c:/java/JTexy/JTexy-google/target/ts-output
To add JTexy as a maven dependency, add the repo to your pom.
<project>
...
<repositories>
<repository>
<id>jtexy-google-svn-repo</id>
<snapshots> <enabled>true</enabled> </snapshots>
<name>JTexy maven repo at Google Code</name>
<url>http://jtexy.googlecode.com/svn/maven/</url>
</repository>
</repositories>
...
<dependencies>
<dependency>
<groupId>cz.dynawest.jtexy</groupId>
<artifactId>JTexy</artifactId>
<version>1.0.4</version>
</dependency>
</dependencies>
</project>