public LinkReMapperV3(KeyValuePair<string, List<Anchor>> link, IDictionary<string, HTMLItem> ids, BookStructureManager structureManager, IEPubV3Settings v3Settings) { _link = link; _ids = ids; _v3Settings = v3Settings; _structureManager = structureManager; _idString = ReferencesUtils.GetIdFromLink(link.Key); // Get ID of a link target; _linkTargetItem = ids[_idString]; // get object targeted by link _linkTargetDocument = GetItemParentDocument(_linkTargetItem); // get parent document (file) containing targeted object if (_linkTargetDocument != null) // if link target container document (document containing item with ID we jump to) found { _linkParentContainer = DetectItemParentContainer(_linkTargetItem); // get parent container of link target item } }
protected void SetClassType(HTMLItem item, string elementClassName) { item.GlobalAttributes.Class.Value = elementClassName; }
/// <summary> /// Add item to the list of footnotes /// </summary> /// <param name="newItemId">ID item will be added (referenced) with</param> /// <param name="item">item to add</param> public void AddFootNote(string newItemId, HTMLItem item) { if (!_footnotes.ContainsKey(newItemId)) { _footnotes.Add(newItemId,item); } }
/// <summary> /// Add used ID to the list /// </summary> /// <param name="id">Id to list as used</param> /// <param name="item">item that ID belong to</param> /// <returns>returns and registers the id if available, empty string if ID already exists</returns> public string AddIdUsed(string id, HTMLItem item) { if (string.IsNullOrEmpty(id)) { return id; } string newid = EnsureGoodId(id); if (_ids.ContainsKey(newid)) { // we get here if in file same ID used twice // The assumption here that since the text located in FB2 main body we should not have same ID used more than once // otherwise we would not know how (and where to) go back Logger.Log.InfoFormat("item with ID {0} already defined, ignoring to avoid inconsistences", newid); return string.Empty; } _ids.Add(newid, item); return newid; }