ti-html2as
v1.3.1
Published
HTML to Attributed String parser for Titanium
Downloads
11
Readme
HTML to Attributed String
HTML to Ti.UI.AttributedString parser for Titanium.
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 withTi.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
- @patrickknaap for adding support of HTML entities
- @fb55 for htmlparser2
- @smclab for titaniumifier
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