Module:Citation/CS1/Utilities: Difference between revisions

    m>Trappist the monk
    No edit summary
    m>Trappist the monk
    No edit summary
    Line 213: Line 213:
    table.insert( z.maintenance_cats, substitute (cfg.maint_cats [key], arguments)); -- make name then add to table
    table.insert( z.maintenance_cats, substitute (cfg.maint_cats [key], arguments)); -- make name then add to table
    end
    end
    end
    --[[--------------------------< S A F E _ F O R _ I T A L I C S >----------------------------------------------
    Protects a string that will be wrapped in wiki italic markup '' ... ''
    Note: We cannot use <i> for italics, as the expected behavior for italics specified by ''...'' in the title is that
    they will be inverted (i.e. unitalicized) in the resulting references.  In addition, <i> and '' tend to interact
    poorly under Mediawiki's HTML tidy.
    ]]
    local function safe_for_italics( str )
    if not is_set(str) then
    return str;
    else
    if str:sub(1,1) == "'" then str = "<span />" .. str; end
    if str:sub(-1,-1) == "'" then str = str .. "<span />"; end
    -- Remove newlines as they break italics.
    return str:gsub( '\n', ' ' );
    end
    end
    --[[--------------------------< W R A P _ S T Y L E >----------------------------------------------------------
    Applies styling to various parameters.  Supplied string is wrapped using a message_list configuration taking one
    argument; protects italic styled parameters.  Additional text taken from citation_config.presentation - the reason
    this function is similar to but separate from wrap_msg().
    ]]
    local function wrap_style (key, str)
    if not is_set( str ) then
    return "";
    elseif in_array( key, { 'italic-title', 'trans-italic-title' } ) then
    str = safe_for_italics( str );
    end
    return substitute( cfg.presentation[key], {str} );
    end
    end


    Line 224: Line 266:
    select_one = select_one,
    select_one = select_one,
    add_maint_cat = add_maint_cat,
    add_maint_cat = add_maint_cat,
    wrap_style = wrap_style;
    safe_for_italics = safe_for_italics;
    z = z,
    z = z,
    }
    }