1.3.1 • Published 9 years ago

ti-html2as v1.3.1

Weekly downloads
2
License
LGPL-2.1
Repository
github
Last release
9 years ago

HTML to Attributed String

Dependencies Dev Dependencies

HTML to Ti.UI.AttributedString parser for Titanium.

Screencast

screencast

Usage

A packaged CommonJS module can be found via Releases. Follow the guide on Using a Module or use gitTio:

gittio install nl.fokkezb.html2as

The module exports a single function that takes an HTML string and a callback to receive an error or Ti.UI.AttributedString object.

var html2as = require('nl.fokkezb.html2as');

html2as(
	'<font size="17" face="AmericanTypewriter">Hello <b>Bold</b> <a href="http://tidev.io">World</a></font>',
	function(err, as) {

		if (err) {
			console.error(err);

		} else {

			var label = Titanium.UI.createLabel({
				attributedString: as
			});

			label.addEventListener('link', function(e) {
				alert('Longtap on link to: ' + e.url);
			});

			view.add(label);
		}
	}
);

Alloy

In Alloy you can use the XP.UI CommonJS module to emulate the html attribute Android has for <Label />:

<Alloy>
	<Window>
		<Label module="xp.ui" html="<font size=17>Hello <b>Bold</b> <font color=#FF0000>World!</font></font>" />
	</Window>
</Alloy> 

Or you can use the Widget, which has the advantage that you can set the html property in a later stage as well:

<Alloy>
	<Window>
		<Widget src="nl.fokkezb.html2as.widget" html="<font size=17>Hello <b>Bold</b> <font color=#FF0000>World!</font></font>" />
	</Window>
</Alloy> 

Supported tags and attributes

Standard (old) HTML:

  • <strong>, <b>
  • <u>
  • <em>, <i>
  • <strike>, <del>, <s>
  • <font face="Arial" size="12" color="red">
  • <a href="http://appcelerator.com">

Non-standard:

  • <effect> (letterpress-style)
  • <kern value="10"> (spacing between characters)
  • <expansion value="0.5"> (stretch text horizontally)

Example

The example folder includes a Titanium project demonstrating the module. To build the module and then run the example project use the included grunt tasks:

npm install
grunt

Changelog

  • 1.3.1: Fixes #21
  • 1.3.0: Adds support for Ti.UI.AttributedString, backwards compatible with Ti.UI.iOS.AttributedString.
  • 1.2.0: Adds support for HTML entities
  • 1.1.0: Updated for Titaniumifier 1.0.0
  • 1.0.0: Initial version

Issues

Please report issues and features requests in the repo's issue tracker.

Credits

License

This library, ti-html2as, is free software ("Licensed Software"); you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version.

This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; including but not limited to, the implied warranty of MERCHANTABILITY, NONINFRINGEMENT, or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.

You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA