Hello, I just upgraded to 1.7 and I see that you added title to the description, which is good actually, for SEO.

Now, I have a few problem, here's what I have in my description as shown in the nodeword block:
Blabla "keyword"⇒ this is the text of the teaser and "keyword"

and this as in the html source:
Blabla "keyword"⇒ this is the text of the teaser and "keyword"

Ideally all html should be handled like the last " meaning : in description meta tag all html in title and content should end up as html tags. " => &quote;

This is not happening at the moment, because I put in the source of my content ⇒ and it ends up as ⇒ when I'd like it to stay ⇒ in the description meta tags.
Secondly, the title and the teaser are not handled the same way. For example the quotes are handled one way in the title and another way in the teaser and end up different in the description meta tags.

Comments

Robrecht Jacques’s picture

This is probably due to the revised handling of the auto-generation of the description. The problem is a bit that some people expect the content other modules inject into the body (or teaser) to be present in the DESCRIPTION meta tag. See the

            $node = node_build_content($node, TRUE, FALSE);
            $content = drupal_render($node->content);

code part in nodewords/metatags/description.inc.

This needs to be run to allow other modules to do their magic. The problem is probably that drupal_render() also runs check_plain() on this content, next to the

  $text = strip_tags($text);
  $text = check_plain($text);

code part in _nodewords_check_content() in nodewords/nodewords.module.

So " becomes " the first time and then " the second time.

So probably I need to avoid running check_plain() twice on the description.

The title does not have that problem because this is just a string and check_plain() is only run once on that (because there is no drupal_render() for that).

A possible (workaround) solution is to only use UTF8 characters instead of HTML entities. Eg use: (the UTF8 character) instead of → (the HTML entity).

I'll try to look into it but if you have any ideas...

alliax’s picture

Honestly I don't have an idea, what I ended up doing is, since I control content input, not use html entities and not use quotes. That way the content in description is only text, and that's good for what it is for: search engines.

Of course I also use nodewords on other sites where I don't have control, I guess the description will end up screwed a little, well what can we do, it's already better than nothing to have that module on. So if some of the content is not ideal, that's life.

apaderno’s picture

Status: Active » Closed (won't fix)

As the Drupal 5 version is not supported anymore, I am changing the status of this report.

apaderno’s picture

Title: html in title and teaser are not handled correctly » HTML tags in title and teaser are not handled correctly