MCPcopy Index your code
hub / github.com/NightWhistler/HtmlSpanner

github.com/NightWhistler/HtmlSpanner @0.4

Chat with this repo
repository ↗ · DeepWiki ↗ · release 0.4 ↗ · + Follow
133 symbols 305 edges 26 files 43 documented · 32%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

Android HTML rendering library

HtmlSpanner started as the HTML rendering library for PageTurner, but looking through some questions on StackOverflow I noticed how many people were struggling with the infamous Html.fromHtml() and getting its results to display properly in TextViews.

HtmlSpanner allows you full control over how tags are rendered and gives you all the data about the location of a tag in the text. This allows proper handling of anchors, tables, numbered lists and unordered lists.

It currently renders:

  • <pre> tags
  • <i>, <strong>, <cite>, <dfn> as italic text
  • <b> and <strong> as bold text
  • <blockquote>
  • <ul> and <ol> with bullets and numbering
  • ``

and

with optional whitespace limiting *

..

**,*and*

****`` tags with size, face and color attributes

The default link implementation just opens URLs, but it can be easily overridden to support anchors.

HtmlSpanner uses HtmlCleaner to do most of the heavy lifting for parsing HTML files.

Usage

In its simplest form, just call (new HtmlSpanner()).fromHtml() to get similar output as Android's Html.fromHtml().

HTMLCleaner Source

see http://htmlcleaner.sourceforge.net/index.php

The fork under https://github.com/amplafi/htmlcleaner can not be used on Android <= 2.1 as it uses java.lang.String.isEmpty

Core symbols most depended-on inside this repo

registerHandler
called by 29
src/main/java/net/nightwhistler/htmlspanner/HtmlSpanner.java
appendNewLine
called by 8
src/main/java/net/nightwhistler/htmlspanner/TagNodeHandler.java
getSpanner
called by 7
src/main/java/net/nightwhistler/htmlspanner/TagNodeHandler.java
getName
called by 6
src/main/java/net/nightwhistler/htmlspanner/FontFamily.java
getDefaultFont
called by 4
src/main/java/net/nightwhistler/htmlspanner/HtmlSpanner.java
fromTagNode
called by 4
src/main/java/net/nightwhistler/htmlspanner/HtmlSpanner.java
getFontFamilySpan
called by 4
src/main/java/net/nightwhistler/htmlspanner/TagNodeHandler.java
setBold
called by 4
src/main/java/net/nightwhistler/htmlspanner/spans/FontFamilySpan.java

Shape

Method 105
Class 28

Languages

Java100%

Modules by API surface

src/main/java/net/nightwhistler/htmlspanner/handlers/TableHandler.java25 symbols
src/main/java/net/nightwhistler/htmlspanner/HtmlSpanner.java19 symbols
src/main/java/net/nightwhistler/htmlspanner/FontFamily.java13 symbols
src/main/java/net/nightwhistler/htmlspanner/spans/FontFamilySpan.java10 symbols
src/main/java/net/nightwhistler/htmlspanner/TagNodeHandler.java8 symbols
src/main/java/net/nightwhistler/htmlspanner/spans/ListItemSpan.java4 symbols
src/main/java/net/nightwhistler/htmlspanner/handlers/PreHandler.java4 symbols
src/main/java/net/nightwhistler/htmlspanner/handlers/ListItemHandler.java4 symbols
src/main/java/net/nightwhistler/htmlspanner/handlers/HeaderHandler.java4 symbols
src/main/java/net/nightwhistler/htmlspanner/handlers/AlignmentHandler.java4 symbols
src/main/java/net/nightwhistler/htmlspanner/handlers/RelativeSizeHandler.java3 symbols
src/main/java/net/nightwhistler/htmlspanner/handlers/NewLineHandler.java3 symbols

For agents

$ claude mcp add HtmlSpanner \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact

Ask about this repo answers extend the page