Exemple #1
0
const string& Package::Title(bool localized) const
{
    IRI titleTypeIRI(MakePropertyIRI("title-type"));      // http://idpf.org/epub/vocab/package/#title-type
    
    // find the main one
    for ( auto& item : PropertiesMatching(titleTypeIRI) )
    {
        PropertyExtensionPtr extension = item->ExtensionWithIdentifier(titleTypeIRI);
        if ( extension == nullptr )
            continue;
        
        if ( extension->Value() == "main" )
            return (localized? item->LocalizedValue() : item->Value());
    }
    
    // no 'main title' found: just get the dc:title value
    auto items = PropertiesMatching(DCType::Title);
    if ( items.empty() )
        return string::EmptyString;
    
    if ( localized )
        return items[0]->LocalizedValue();
    
    return items[0]->Value();
}
Exemple #2
0
const string Package::Subtitle() const
{
    IRI titleTypeIRI(MakePropertyIRI("title-type"));      // http://idpf.org/epub/vocab/package/#title-type
    
    // find the main one
    for ( auto item : MetadataItemsWithProperty(titleTypeIRI) )
    {
        const Metadata::Extension* extension = item->ExtensionWithProperty(titleTypeIRI);
        if ( extension == nullptr )
            continue;
        
        if ( extension->Value() == "subtitle" )
            return item->Value();
    }
    
    // no 'subtitle' found, so no subtitle
    return string::EmptyString;
}
Exemple #3
0
const string Package::Title() const
{
    IRI titleTypeIRI(MakePropertyIRI("title-type"));      // http://idpf.org/epub/vocab/package/#title-type
    
    // find the main one
    for ( auto item : MetadataItemsWithProperty(titleTypeIRI) )
    {
        const Metadata::Extension* extension = item->ExtensionWithProperty(titleTypeIRI);
        if ( extension == nullptr )
            continue;
        
        if ( extension->Value() == "main" )
            return item->Value();
    }
    
    // no 'main title' found: just get the dc:title value
    const MetadataMap items = MetadataItemsWithDCType(Metadata::DCType::Title);
    if ( items.empty() )
        return string::EmptyString;
    return items[0]->Value();
}
Exemple #4
0
const string& Package::ShortTitle(bool localized) const
{
    IRI titleTypeIRI(MakePropertyIRI("title-type"));      // http://idpf.org/epub/vocab/package/#title-type
    
    // find the main one
    for ( auto item : PropertiesMatching(titleTypeIRI) )
    {
        PropertyExtensionPtr extension = item->ExtensionWithIdentifier(titleTypeIRI);
        if ( extension == nullptr )
            continue;
        
        if ( extension->Value() == "short" )
        {
            if ( localized )
                return item->LocalizedValue();
            return item->Value();
        }
    }
    
    // no 'subtitle' found, so no subtitle
    return string::EmptyString;
}