This function is called for every token encountered in the input text.
67 MyUserData *u = (MyUserData *)userData;
70 if (!strcmp(tag.getName(),
"p")) {
71 if ((!tag.isEndTag()) && (!tag.isEmpty())) {
74 else if (tag.isEndTag()) {
85 else if (!strcmp(tag.getName(),
"hi")) {
86 if ((!tag.isEndTag()) && (!tag.isEmpty())) {
87 SWBuf rend = tag.getAttribute(
"rend");
90 if (rend ==
"italic" || rend ==
"ital")
92 else if (rend ==
"bold")
94 else if (rend ==
"super" || rend ==
"sup")
96 else if (rend ==
"sub")
98 else if (rend ==
"overline")
99 buf +=
"<span style=\"text-decoration:overline\">";
101 else if (tag.isEndTag()) {
102 SWBuf rend = u->lastHi;
103 if (rend ==
"italic" || rend ==
"ital")
105 else if (rend ==
"bold")
107 else if (rend ==
"super" || rend ==
"sup")
109 else if (rend ==
"sub")
111 else if (rend ==
"overline")
117 else if (!strcmp(tag.getName(),
"entryFree")) {
118 if ((!tag.isEndTag()) && (!tag.isEmpty())) {
119 SWBuf n = tag.getAttribute(
"n");
129 else if (!strcmp(tag.getName(),
"sense")) {
130 if ((!tag.isEndTag()) && (!tag.isEmpty())) {
131 SWBuf n = tag.getAttribute(
"n");
141 else if (!strcmp(tag.getName(),
"div")) {
143 if ((!tag.isEndTag()) && (!tag.isEmpty())) {
146 else if (tag.isEndTag()) {
151 else if (!strcmp(tag.getName(),
"lb")) {
156 else if (!strcmp(tag.getName(),
"pos") ||
157 !strcmp(tag.getName(),
"gen") ||
158 !strcmp(tag.getName(),
"case") ||
159 !strcmp(tag.getName(),
"gram") ||
160 !strcmp(tag.getName(),
"number") ||
161 !strcmp(tag.getName(),
"pron")
163 if ((!tag.isEndTag()) && (!tag.isEmpty())) {
166 else if (tag.isEndTag()) {
172 else if (!strcmp(tag.getName(),
"tr")) {
173 if ((!tag.isEndTag()) && (!tag.isEmpty())) {
176 else if (tag.isEndTag()) {
182 else if (!strcmp(tag.getName(),
"orth")) {
183 if ((!tag.isEndTag()) && (!tag.isEmpty())) {
186 else if (tag.isEndTag()) {
192 else if (!strcmp(tag.getName(),
"etym") ||
193 !strcmp(tag.getName(),
"usg")) {
196 else if (!strcmp(tag.getName(),
"ref")) {
197 if (!tag.isEndTag()) {
198 u->suspendTextPassThru =
true;
203 int was_osisref =
false;
204 if(tag.getAttribute(
"osisRef"))
206 target += tag.getAttribute(
"osisRef");
209 else if(tag.getAttribute(
"target"))
210 target += tag.getAttribute(
"target");
214 const char* the_ref = strchr(target,
':');
231 buf.
appendFormatted(
"<a href=\"passagestudy.jsp?action=showRef&type=scripRef&value=%s&module=%s\">",
251 buf += u->lastTextNode.
c_str();
254 u->suspendTextPassThru =
false;
259 else if (!strcmp(tag.getName(),
"note")) {
260 if (!tag.isEndTag()) {
261 if (!tag.isEmpty()) {
262 u->suspendTextPassThru =
true;
265 if (tag.isEndTag()) {
266 SWBuf footnoteNumber = tag.getAttribute(
"swordFootnote");
267 SWBuf noteName = tag.getAttribute(
"n");
269 buf.
appendFormatted(
"<a href=\"passagestudy.jsp?action=showNote&type=n&value=%s&module=%s&passage=%s\"><small><sup class=\"n\">*n%s</sup></small></a>",
275 u->suspendTextPassThru =
false;
279 else if (!strcmp(tag.getName(),
"graphic")) {
280 const char *url = tag.getAttribute(
"url");
285 if ((filepath.
size()) && (filepath[filepath.
size()-1] !=
'/') && (url[0] !=
'/'))
290 buf.
appendFormatted(
"<a href=\"passagestudy.jsp?action=showImage&value=%s&module=%s\"><img src=\"file:%s\" border=\"0\" /></a>",
294 u->suspendTextPassThru =
true;
298 else if (!strcmp(tag.getName(),
"table")) {
299 if ((!tag.isEndTag()) && (!tag.isEmpty())) {
300 buf +=
"<table><tbody>\n";
302 else if (tag.isEndTag()) {
303 buf +=
"</tbody></table>\n";
304 u->supressAdjacentWhitespace =
true;
308 else if (!strcmp(tag.getName(),
"row")) {
309 if ((!tag.isEndTag()) && (!tag.isEmpty())) {
312 else if (tag.isEndTag()) {
316 else if (!strcmp(tag.getName(),
"cell")) {
317 if ((!tag.isEndTag()) && (!tag.isEmpty())) {
320 else if (tag.isEndTag()) {
326 else if (!strcmp(tag.getName(),
"list")) {
327 if ((!tag.isEndTag()) && (!tag.isEmpty())) {
329 SWBuf rend = tag.getAttribute(
"rend");
332 if (rend ==
"numbered") {
335 else if (rend ==
"lettered") {
336 buf +=
"<ol type=\"A\">\n";
338 else if (rend ==
"bulleted") {
342 buf +=
"<ul class=\"list ";
347 else if (tag.isEndTag()) {
348 SWBuf rend = u->lastHi;
349 if (rend ==
"numbered") {
352 else if (rend ==
"lettered") {
355 else if (rend ==
"bulleted") {
361 u->supressAdjacentWhitespace =
true;
364 else if (!strcmp(tag.getName(),
"item")) {
365 if ((!tag.isEndTag()) && (!tag.isEmpty())) {
368 else if (tag.isEndTag()) {
SWBuf & appendFormatted(const char *format,...)
virtual const char * getConfigEntry(const char *key) const
bool substituteToken(SWBuf &buf, const char *token)
const char * c_str() const
unsigned long size() const
static const SWBuf encode(const char *urlText)
void setSize(unsigned long len)