Romul81
Advanced Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Цитата: Но можно и к другим прикрутить, буде возникнет такая потребность. | Просто добавьте плиз сюда: Код: case 'h': // Html content { string articleText = "<div class=\"sdct_h\">" + string( resource, size ) + "</div>"; return ( QString::fromUtf8( articleText.c_str() ) .replace( QRegExp( "(<\\s*img\\s+[^>]*src\\s*=\\s*[\"']+)((?!data:)[^\"']*)", Qt::CaseInsensitive ), "\\1bres://" + QString::fromStdString( getId() ) + "/\\2" ) .replace( QRegExp( "(<\\s*link\\s+[^>]*href\\s*=\\s*[\"']+)((?!data:)[^\"']*)", Qt::CaseInsensitive ), "\\1bres://" + QString::fromStdString( getId() ) + "/\\2" ) .toUtf8().data() ); } | что-то типа: Код: .replace( QRegExp( "(<\\s*a\\s+[^>]*href\\s*=\\s*[\"']+)((?!data:)[^\"']*\\.(?:wav|mp3|ogg))", Qt::CaseInsensitive ), "\\1bres://" + QString::fromStdString( getId() ) + "/\\2" ) | ну и плюс &resourceZip ... хотя это наверное не по стандарту... Добавлено: Посмотрел, как сделано для mdx: Код: // anchors .replace( anchorLinkRe, "\\1" + uniquePrefix ) .replace( QRegExp( "(href\\s*=\\s*[\"'])entry://#", Qt::CaseInsensitive ), "\\1#" + uniquePrefix ) // sounds, and audio link script .replace( QRegExp( "(<\\s*(?:a|area)\\s+[^>]*\\bhref\\b\\s*=\\s*\")sound://([^\"']*)", Qt::CaseInsensitive ), QString::fromStdString( addAudioLink( "\"gdau://" + getId() + "/\\2\"", getId() ) ) + "\\1gdau://" + id + "/\\2" ) // stylesheets .replace( QRegExp( "(<\\s*link\\s+[^>]*\\bhref\\b\\s*=\\s*[\"']+)(?:file://)?[\\x00-\\x30\\x7f]*([^\"']*)", Qt::CaseInsensitive, QRegExp::RegExp2 ), "\\1bres://" + id + "/\\2" ) .replace( QRegExp( "(<\\s*link\\s+[^>]*\\bhref\\b\\s*=\\s*)(?!['\"]+)(?!bres:|data:)(?:file://)?([^\\s>]+)", Qt::CaseInsensitive, QRegExp::RegExp2 ), "\\1\"bres://" + id + "/\\\"" ) // javascripts .replace( QRegExp( "(<\\s*script\\s+[^>]*\\bsrc\\b\\s*=\\s*[\"']+)(?:file://)?[\\x00-\\x30\\x7f]*([^\"']*)", Qt::CaseInsensitive, QRegExp::RegExp2 ), "\\1bres://" + id + "/\\2" ) .replace( QRegExp( "(<\\s*script\\s+[^>]*\\bsrc\\b\\s*=\\s*)(?!['\"]+)(?!bres:|data:)(?:file://)?([^\\s>]+)", Qt::CaseInsensitive, QRegExp::RegExp2 ), "\\1\"bres://" + id + "/\\\"" ) // images .replace( QRegExp( "(<\\s*img\\s+[^>]*\\bsrc\\b\\s*=\\s*[\"']+)(?:file://)?[\\x00-\\x1f\\x7f]*([^\"']*)", Qt::CaseInsensitive, QRegExp::RegExp2 ), "\\1bres://" + id + "/\\2" ) .replace( QRegExp( "(<\\s*img\\s+[^>]*\\bsrc\\b\\s*=\\s*)(?!['\"]+)(?!bres:|data:)(?:file://)?([^\\s>]+)", Qt::CaseInsensitive, QRegExp::RegExp2 ), "\\1\"bres://" + id + "/\\2\"" ); | Сделано через "sound:". Так что, по идее, всё это может работать и в StarDict -h. Вопрос в том, выходит ли это за рамки формата. |