Skip to main content
Glama
MadCapAliasFile.js3.42 kB
/*! * Copyright MadCap Software * http://www.madcapsoftware.com/ * Unlicensed use is strictly prohibited * * v20.0.8886.22535 */ /* -CatapultCompiler- -Begin- -Copy to CSH Javascript- */ // // Class CMCAliasFile // function CMCAliasFile( xmlFile, helpSystem, OnLoadFunc ) { // Private member variables var mRootNode = null; var mHelpSystem = helpSystem; var mNameMap = null; var mIDMap = null; // Public properties // Constructor (function() { })(); // Public member functions this.Load = function (OnCompleteFunc) { function OnLoad(xmlDoc) { if (xmlDoc) mRootNode = xmlDoc.documentElement; OnCompleteFunc(); } CMCXmlParser.GetXmlDoc(xmlFile, true, OnLoad, null); }; this.GetIDs = function() { var ids = new Array(); AssureInitializedMap(); mIDMap.ForEach( function( key, value ) { ids[ids.length] = key; return true; } ); return ids; }; this.GetNames = function() { var names = new Array(); AssureInitializedMap(); mNameMap.ForEach( function( key, value ) { names[names.length] = key; return true; } ); return names; }; this.LookupID = function( id ) { var found = false; var topic = null; var skin = null; if ( id ) { if ( typeof( id ) == "string" && id.indexOf( "." ) != -1 ) { var pipePos = id.indexOf( "|" ); if ( pipePos != -1 ) { topic = id.substring( 0, pipePos ); skin = id.substring( pipePos + 1 ); } else { topic = id; } found = true; } else { var mapInfo = GetFromMap( id ); if ( mapInfo != null ) { found = true; topic = mapInfo.Topic; skin = mapInfo.Skin; } } } else { found = true; } if ( !skin ) { if (mRootNode) { skin = mRootNode.getAttribute("DefaultSkinName"); } } if ( topic ) { topic = mHelpSystem.ContentFolder + topic; } return { Found: found, Topic: topic, Skin: skin }; }; // Private member functions function GetFromMap( id ) { var mapInfo = null; AssureInitializedMap(); if ( mNameMap != null ) { if ( typeof( id ) == "string" ) { mapInfo = mNameMap.GetItem( id ); if ( mapInfo == null ) { mapInfo = mIDMap.GetItem( id ); } } else if ( typeof( id ) == "number" ) { mapInfo = mIDMap.GetItem( id.toString() ); } } return mapInfo; } function AssureInitializedMap() { if ( mNameMap == null ) { if (mRootNode) { mNameMap = new CMCDictionary(); mIDMap = new CMCDictionary(); var maps = mRootNode.getElementsByTagName("Map"); for ( var i = 0; i < maps.length; i++ ) { var topic = maps[i].getAttribute( "Link" ); var skin = maps[i].getAttribute( "Skin" ); if ( skin ) { skin = skin.substring( "Skin".length, skin.indexOf( "/" ) ); } var currMapInfo = { Topic: topic, Skin: skin }; var name = maps[i].getAttribute( "Name" ); if ( name != null ) { mNameMap.Add( name, currMapInfo ); } var resolvedId = maps[i].getAttribute( "ResolvedId" ); if ( resolvedId != null ) { mIDMap.Add( resolvedId, currMapInfo ); } } } } } } // // End class CMCAliasFile // /* -CatapultCompiler- -End- -Copy to CSH Javascript- */

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/multiluca2020/visum-thinker-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server