mirror of
https://github.com/xiaoyifang/goldendict-ng.git
synced 2024-11-27 23:34:06 +00:00
Fix links with anchor while save article to file
This commit is contained in:
parent
4290734589
commit
f9085fad1f
|
@ -3308,12 +3308,25 @@ void MainWindow::on_saveArticle_triggered()
|
||||||
while ( ( pos = rx3.indexIn( html, pos ) ) != -1 )
|
while ( ( pos = rx3.indexIn( html, pos ) ) != -1 )
|
||||||
{
|
{
|
||||||
QString name = QUrl::fromPercentEncoding( rx3.cap( 2 ).simplified().toLatin1() );
|
QString name = QUrl::fromPercentEncoding( rx3.cap( 2 ).simplified().toLatin1() );
|
||||||
|
QString anchor;
|
||||||
|
name.replace( "?gdanchor=", "#" );
|
||||||
|
int n = name.indexOf( '#' );
|
||||||
|
if( n > 0 )
|
||||||
|
{
|
||||||
|
anchor = name.mid( n );
|
||||||
|
name.truncate( n );
|
||||||
|
anchor.replace( QRegExp( "(g[0-9a-f]{32}_)[0-9a-f]+_" ), "\\1" ); // MDict anchors
|
||||||
|
}
|
||||||
name.replace( rxName, "_" );
|
name.replace( rxName, "_" );
|
||||||
name = QString( "href=\"" ) + QUrl::toPercentEncoding( name ) + ".html\"";
|
name = QString( "href=\"" ) + QUrl::toPercentEncoding( name ) + ".html" + anchor + "\"";
|
||||||
html.replace( pos, rx3.cap().length(), name );
|
html.replace( pos, rx3.cap().length(), name );
|
||||||
pos += name.length();
|
pos += name.length();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// MDict anchors
|
||||||
|
QRegExp anchorLinkRe( "(<\\s*a\\s+[^>]*\\b(?:name|id)\\b\\s*=\\s*[\"']*g[0-9a-f]{32}_)([0-9a-f]+_)(?=[^\"'])", Qt::CaseInsensitive );
|
||||||
|
html.replace( anchorLinkRe, "\\1" );
|
||||||
|
|
||||||
if ( complete )
|
if ( complete )
|
||||||
{
|
{
|
||||||
QString folder = fi.absoluteDir().absolutePath() + "/" + fi.baseName() + "_files";
|
QString folder = fi.absoluteDir().absolutePath() + "/" + fi.baseName() + "_files";
|
||||||
|
|
Loading…
Reference in a new issue