ti-html2as

1.3.1 • Public • Published

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

Package Sidebar

Install

npm i ti-html2as

Weekly Downloads

1

Version

1.3.1

License

LGPL-2.1

Last publish

Collaborators

  • jasonkneen
  • fokkezb