diff --git a/dsl.cc b/dsl.cc index 20e1c62b..1be87892 100644 --- a/dsl.cc +++ b/dsl.cc @@ -893,7 +893,12 @@ string DslDictionary::nodeToHtml( ArticleDom::Node const & node ) } else if ( node.tagName == GD_NATIVE_TO_WS( L"url" ) ) - result += "" + processNodeChildren( node ) + ""; + { + string link = Html::escape( Utf8::encode( node.renderAsText() ) ); + if( QUrl::fromEncoded( link.c_str() ).scheme().isEmpty() ) + link = "http://" + link; + result += "" + processNodeChildren( node ) + ""; + } else if ( node.tagName == GD_NATIVE_TO_WS( L"!trs" ) ) result += "" + processNodeChildren( node ) + "";