<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE dictionary SYSTEM "file://localhost/System/Library/DTDs/sdef.dtd">
<dictionary title="Marked">
	<suite name="Standard Suite" code="????"
		description="Common classes and commands for most applications.">
		<cocoa name="NSCoreSuite" />
		<enumeration name="save options" code="savo">
			<enumerator name="yes" code="yes " description="Save the file." />
			<enumerator name="no" code="no  " description="Do not save the file." />
			<enumerator name="ask" code="ask "
				description="Ask the user whether or not to save the file." />
		</enumeration>
		<class name="item" code="cobj" description="A scriptable object.">
			<cocoa class="AbstractObject" />
			<property name="class" code="pcls" description="The class of the object." type="type"
				access="r">
				<cocoa key="classCode" />
			</property>
			<property name="properties" code="pALL"
				description="All of the object&apos;s properties." type="record">
				<cocoa key="scriptingProperties" />
			</property>
			<!--
						The blank method declarations are needed to emulate the existing
						NSCoreSuite.scriptSuite.framework.  Ordinarily, you wouldn't do this.
					-->
			<responds-to command="count">
				<cocoa method="" />
			</responds-to>
			<responds-to command="delete">
				<cocoa method="" />
			</responds-to>
			<responds-to command="duplicate">
				<cocoa method="" />
			</responds-to>
			<responds-to command="exists">
				<cocoa method="" />
			</responds-to>
			<responds-to command="get">
				<cocoa method="" />
			</responds-to>
			<responds-to command="move">
				<cocoa method="" />
			</responds-to>
			<responds-to command="set">
				<cocoa method="" />
			</responds-to>
		</class>
		<class name="application" code="capp"
			description="An application&apos;s top level scripting object.">
			<cocoa class="NSApplication" />
			<element type="document" access="r">
				<cocoa key="orderedDocuments" />
			</element>
			<element type="window" access="r">
				<cocoa key="orderedWindows" />
			</element>
			<property name="name" code="pnam" description="The name of the application." type="text"
				access="r" />
			<property name="frontmost" code="pisf"
				description="Is this the frontmost (active) application?" type="boolean" access="r">
				<cocoa key="isActive" />
			</property>
			<property name="version" code="vers" description="The version of the application."
				type="text" access="r" />
			<property name="profiles" code="prof"
				description="The list of all available export profiles."
				type="list of text" access="r">
				<cocoa key="profiles" />
			</property>
			<command name="fetch_profile_names" code="gpls"
				description="Get the list of all available export profiles.">
				<cocoa method="getProfilesList" />
			</command>

			<!-- Convert to Action for Shortcuts -->
			<command name="convert_to" code="conv"
				description="Convert a markdown file or text to the specified format.">
				<cocoa method="handleConvertToScriptCommand:" />
				<direct-parameter description="The markdown file or text to convert." type="any" />
				<parameter name="format" code="fmt "
					description="The target format (html, pdf, epub, docx, rtf, etc.)." type="text">
					<cocoa key="Format" />
				</parameter>
				<parameter name="profile" code="prof"
					description="The export profile to use. Use 'get_available_profiles' action to see available profiles."
					type="text" optional="yes">
					<cocoa key="Profile" />
				</parameter>
				<parameter name="output_path" code="outp"
					description="The output file path (optional)." type="text" optional="yes">
					<cocoa key="OutputPath" />
				</parameter>
				<result description="The path to the converted file." type="text" />
			</command>

			<!-- Get Available Formats Action -->
			<command name="get_available_formats" code="gfmt"
				description="Get the list of available export formats.">
				<cocoa method="handleGetAvailableFormatsScriptCommand:" />
				<result description="List of available export formats." type="list of text" />
			</command>

			<!-- Get Available Export Profiles Action -->
			<command name="get_available_profiles" code="gprf"
				description="Get the list of available export profiles.">
				<cocoa method="handleGetAvailableProfilesScriptCommand:" />
				<result description="List of available export profiles." type="list of text" />
			</command>

			<record name="preferences_record" code="prec">
				<!-- Dynamic properties will be added at runtime based on actual preference keys -->
			</record>

			<record name="profile_record" code="prec">
				<property name="name" code="pnam" description="The profile name." type="text" />
				<property name="preferences" code="pref" description="The profile preferences."
					type="preferences_record" />
			</record>

			<property name="profiles" code="prof"
				description="The list of all available export profiles with their preferences."
				type="any" access="r">
				<cocoa key="profiles" />
			</property>

			<property name="profile" code="prfl" description="Get a specific profile by name."
				type="any" access="r">
				<cocoa method="getProfileByName:" />
				<parameter name="named" code="pnam" description="The profile name." type="text" />
			</property>

			<!-- Commented out experimental properties and commands
			<property name="preference" code="pref"
				description="Get a specific preference value for a profile." type="any" access="r">
				<cocoa method="getPreference:forProfile:" />
				<parameter name="for_profile" code="prfn" description="The profile name."
					type="text" />
			</property>
			<command name="fetch_profile_details" code="gpif"
				description="Get information about a specific export profile.">
				<parameter name="profile_name" code="pnam"
					description="The name of the profile to get information about." type="text" />
				<cocoa method="getProfileInfo:" />
			</command>
			<property name="export_profile" code="expr"
				description="The current export profile name." type="text">
				<cocoa key="exportProfile" />
			</property>
			<property name="default_style" code="dsty" description="The default preview style name."
				type="text">
				<cocoa key="defaultStyle" />
			</property>
			-->

			<responds-to command="open">
				<cocoa method="handleOpenScriptCommand:" />
			</responds-to>
			<responds-to command="print">
				<cocoa method="handlePrintScriptCommand:" />
			</responds-to>
			<responds-to command="quit">
				<cocoa method="handleQuitScriptCommand:" />
			</responds-to>
			<!-- Commented out experimental export commands
			<responds-to command="create_export_profile">
				<cocoa method="handleCreateProfileScriptCommand:" />
			</responds-to>
			<responds-to command="update_export_profile">
				<cocoa method="handleUpdateProfileScriptCommand:" />
			</responds-to>
			<responds-to command="fetch_export_profile">
				<cocoa method="handleGetProfileScriptCommand:" />
			</responds-to>
			<responds-to command="exportMarkdown">
				<cocoa method="handleExportMarkdownScriptCommand:" />
				<parameter name="of" code="of  " type="document" optional="yes">
					<cocoa key="Document" />
				</parameter>
			</responds-to>
			<responds-to command="export_paginated_pdf">
				<cocoa method="handleExportPaginatedPDFScriptCommand:" />
				<parameter name="of" code="of  " type="document" optional="yes">
					<cocoa key="Document" />
				</parameter>
			</responds-to>
			<responds-to command="export_continuous_pdf">
				<cocoa method="handleExportContinuousPDFScriptCommand:" />
				<parameter name="of" code="of  " type="document" optional="yes">
					<cocoa key="Document" />
				</parameter>
			</responds-to>
			<responds-to command="export_html">
				<cocoa method="handleExportHTMLScriptCommand:" />
				<parameter name="of" code="of  " type="document" optional="yes">
					<cocoa key="Document" />
				</parameter>
			</responds-to>
			<responds-to command="export_epub">
				<cocoa method="handleExportEPUBScriptCommand:" />
				<parameter name="of" code="of  " type="document" optional="yes">
					<cocoa key="Document" />
				</parameter>
			</responds-to>
			<responds-to command="export_docx">
				<cocoa method="handleExportDOCXScriptCommand:" />
				<parameter name="of" code="of  " type="document" />
				<parameter name="of" code="of  " type="document" optional="yes">
					<cocoa key="Document" />
				</parameter>
			</responds-to>
			<responds-to command="export_odt">
				<cocoa method="handleExportODTScriptCommand:" />
				<parameter name="of" code="of  " type="document" optional="yes">
					<cocoa key="Document" />
				</parameter>
			</responds-to>
			<responds-to command="export_textbundle">
				<cocoa method="handleExportTextBundleScriptCommand:" />
				<parameter name="of" code="of  " type="document" optional="yes">
					<cocoa key="Document" />
				</parameter>
			</responds-to>
			<responds-to command="export_rtf">
				<cocoa method="handleExportRTFScriptCommand:" />
				<parameter name="of" code="of  " type="document" optional="yes">
					<cocoa key="Document" />
				</parameter>
			</responds-to>
			-->
			<!-- Commented out export_opml command
			<responds-to command="export_opml">
				<cocoa method="handleExportOPMLScriptCommand:" />
				<parameter name="of" code="of  " type="document" optional="yes">
					<cocoa key="Document" />
				</parameter>
			</responds-to>
			-->

		</class>

		<!-- Commented out profile record structure - not currently used
		<record name="profile_record" code="prec"
			description="A profile record containing name and description.">
			<property name="name" code="pnam" description="The name of the profile." type="text"
				access="r" />
			<property name="description" code="desc" description="The profile description."
				type="text"
				access="r" />
		</record>
		-->

		<class name="color" code="colr" description="A color.">
			<cocoa class="NSColor" />
		</class>
		<class name="document" code="docu" description="A document.">
			<cocoa class="MarkdownDocument" />
			<property name="path" code="ppth" description="The document&apos;s path." type="text"
				access="r">
				<cocoa key="filePath" />
			</property>
			<property name="modified" code="imod"
				description="Has the document been modified since the last save?" type="boolean"
				access="r">
				<cocoa key="isDocumentEdited" />
			</property>
			<property name="name" code="pnam" description="The document&apos;s name." type="text"
				access="r">
				<cocoa key="displayName" />
			</property>
		</class>
		<class name="window" code="cwin" description="A window.">
			<cocoa class="NSWindow" />
			<property name="name" code="pnam" description="The full title of the window."
				type="text" access="r">
				<cocoa key="title" />
			</property>
			<property name="bounds" code="pbnd" description="The bounding rectangle of the window."
				type="rectangle" access="rw">
				<cocoa key="frame" />
			</property>
			<property name="document" code="docu"
				description="The document displayed in this window." type="document" access="r">
				<cocoa key="document" />
			</property>
			<property name="closeable" code="hclb" description="Whether the window has a close box."
				type="boolean" access="r">
				<cocoa key="isClosable" />
			</property>
			<property name="titled" code="ptit" description="Whether the window has a title bar."
				type="boolean" access="r">
				<cocoa key="isTitled" />
			</property>
			<property name="index" code="pidx"
				description="The index of the window in the back-to-front window ordering."
				type="number">
				<cocoa key="orderedIndex" />
			</property>
			<property name="floating" code="isfl" description="Whether the window floats."
				type="boolean" access="r">
				<cocoa key="isFloatingPanel" />
			</property>
			<property name="miniaturizable" code="ismn"
				description="Whether the window can be miniaturized." type="boolean" access="r">
				<cocoa key="isMiniaturizable" />
			</property>
			<property name="miniaturized" code="pmnd"
				description="Whether the window is currently miniaturized." type="number">
				<cocoa key="isMiniaturized" />
			</property>
			<property name="modal" code="pmod"
				description="Whether the window is the application&apos;s current modal window."
				type="boolean" access="r">
				<cocoa key="isModalPanel" />
			</property>
			<property name="resizable" code="prsz" description="Whether the window can be resized."
				type="boolean" access="r">
				<cocoa key="isResizable" />
			</property>
			<property name="visible" code="pvis"
				description="Whether the window is currently visible." type="boolean">
				<cocoa key="isVisible" />
			</property>
			<property name="zoomable" code="iszm" description="Whether the window can be zoomed."
				type="boolean" access="r">
				<cocoa key="isZoomable" />
			</property>
			<property name="zoomed" code="pzum"
				description="Whether the window is currently zoomed." type="boolean" access="r">
				<cocoa key="isZoomed" />
			</property>
			<property name="style" code="styl"
				description="The current preview style name for this window." type="text">
				<cocoa key="style" />
			</property>
			<responds-to command="close">
				<cocoa method="handleCloseScriptCommand:" />
			</responds-to>
			<responds-to command="print">
				<cocoa method="handlePrintScriptCommand:" />
			</responds-to>
			<responds-to command="save">
				<cocoa method="handleSaveScriptCommand:" />
			</responds-to>
		</class>
		<!-- The old Standard Suite: run, reopen, open, print, and quit. -->
		<command name="open" code="aevtodoc" description="Open an object.">
			<direct-parameter description="The file(s) to be opened." type="file" />
		</command>
		<!-- NSCoreSuite doesn't define these.
			<command name="run" code="aevtoapp" description="Run an application.  Most applications will open an
		empty, untitled window."/>
			<command name="reopen" code="aevtrapp" description="Reactivate a running application.  Some
		applications will open a new untitled window if no window is open."/>
			-->
		<command name="print" code="aevtpdoc" description="Print an object.">
			<!-- type would be better written as "file | document". -->
			<direct-parameter description="The file(s) or document(s) to be printed." type="file" />
		</command>
		<command name="quit" code="aevtquit" description="Quit an application.">
			<cocoa class="NSQuitCommand" />
			<parameter name="saving" code="savo"
				description="Specifies whether changes should be saved before quitting."
				type="save options" optional="yes">
				<cocoa key="SaveOptions" />
			</parameter>
		</command>
		<!-- The old Core Suite: the object model commands, plus a few more. -->
		<command name="close" code="coreclos" description="Close an object.">
			<cocoa class="NSCloseCommand" />
			<direct-parameter description="the object to close" type="specifier" />
			<parameter name="saving" code="savo"
				description="Specifies whether changes should be saved before closing."
				type="save options" optional="yes">
				<cocoa key="SaveOptions" />
			</parameter>
			<parameter name="saving in" code="kfil"
				description="The file in which to save the object." type="file" optional="yes">
				<cocoa key="File" />
			</parameter>
		</command>
		<command name="count" code="corecnte"
			description="Return the number of elements of a particular class within an object.">
			<cocoa class="NSCountCommand" />
			<direct-parameter description="the object whose elements are to be counted"
				type="specifier" />
			<parameter name="each" code="kocl" description="The class of objects to be counted."
				type="type" optional="yes">
				<cocoa key="ObjectClass" />
			</parameter>
			<result description="the number of elements" type="integer" />
		</command>
		<command name="delete" code="coredelo" description="Delete an object.">
			<cocoa class="NSDeleteCommand" />
			<direct-parameter description="the object to delete" type="specifier" />
		</command>
		<command name="duplicate" code="coreclon"
			description="Copy object(s) and put the copies at a new location.">
			<cocoa name="Copy" class="NSCloneCommand" />
			<direct-parameter description="the object(s) to duplicate" type="specifier" />
			<!-- "duplicate" is supposed to return the new objects.
				<result type="object" description="to the duplicated object(s)"/>
				-->
			<!-- "to" is supposed to be optional. -->
			<parameter name="to" code="insh" description="The location for the new object(s)."
				type="location specifier">
				<cocoa key="ToLocation" />
			</parameter>
			<parameter name="with properties" code="prdt"
				description="Properties to be set in the new duplicated object(s)." type="record"
				optional="yes">
				<cocoa key="WithProperties" />
			</parameter>
		</command>
		<command name="exists" code="coredoex" description="Verify if an object exists.">
			<cocoa class="NSExistsCommand" />
			<direct-parameter description="the object in question" type="specifier" />
			<result description="true if it exists, false if not" type="boolean" />
		</command>
		<!-- "get" is supposed to be hidden. -->
		<command name="get" code="coregetd" description="Get the data for an object.">
			<cocoa class="NSGetCommand" />
			<direct-parameter type="specifier" />
			<result type="any" />
		</command>
		<command name="make" code="corecrel" description="Make a new object.">
			<cocoa name="Create" class="NSCreateCommand" />
			<parameter name="new" code="kocl" description="The class of the new object." type="type">
				<cocoa key="ObjectClass" />
			</parameter>
			<parameter name="at" code="insh"
				description="The location at which to insert the object." type="location specifier"
				optional="yes">
				<cocoa key="Location" />
			</parameter>
			<parameter name="with data" code="data" description="The initial data for the object."
				type="any" optional="yes">
				<cocoa key="ObjectData" />
			</parameter>
			<parameter name="with properties" code="prdt"
				description="The initial values for properties of the object." type="record"
				optional="yes">
				<cocoa key="KeyDictionary" />
			</parameter>
			<result description="to the new object" type="specifier" />
		</command>
		<command name="move" code="coremove" description="Move object(s) to a new location.">
			<cocoa class="NSMoveCommand" />
			<direct-parameter description="the object(s) to move" type="specifier" />
			<!-- "move" is supposed to return the relocated objects.
				<result type="object" description="to the object(s) after they have been moved"/>
				-->
			<parameter name="to" code="insh" description="The new location for the object(s)."
				type="location specifier">
				<cocoa key="ToLocation" />
			</parameter>
		</command>
		<command name="save" code="coresave" description="Save an object.">
			<direct-parameter description="the object to save, usually a document or window"
				type="specifier" />
			<parameter name="in" code="kfil" description="The file in which to save the object."
				type="file" optional="yes">
				<cocoa key="File" />
			</parameter>
			<parameter name="as" code="fltp" description="The file type in which to save the data."
				type="text" optional="yes">
				<cocoa key="FileType" />
			</parameter>
		</command>
		<!-- "set" is supposed to be hidden. -->
		<command name="set" code="coresetd" description="Set an object&apos;s data.">
			<cocoa class="NSSetCommand" />
			<direct-parameter type="specifier" />
			<!-- "set" is supposed to return the fully evaluated "to" data.
				<result type="any"/>
				-->
			<parameter name="to" code="data" description="The new value." type="any">
				<cocoa key="Value" />
			</parameter>
		</command>
	</suite>


	<!-- <command name="create_export_profile" code="crprof"
		description="Create a new export profile with the specified properties.">
		<cocoa method="handleCreateProfileScriptCommand:" />
		<direct-parameter description="The name of the new profile." type="text" />
		<parameter name="with" code="with"
			description="The properties for the new profile as key-value pairs." type="record">
			<cocoa key="Properties" />
		</parameter>
	</command>
	<command name="update_export_profile" code="upprof"
		description="Update an existing export profile with new properties.">
		<cocoa method="handleUpdateProfileScriptCommand:" />
		<direct-parameter description="The name of the profile to update." type="text" />
		<parameter name="with" code="with"
			description="The new properties for the profile as key-value pairs." type="record">
			<cocoa key="Properties" />
		</parameter>
	</command>
	<command name="fetch_export_profile" code="getprof"
		description="Get the properties of an export profile.">
		<cocoa method="handleGetProfileScriptCommand:" />
		<direct-parameter description="The name of the profile to get." type="text" />
		<result description="The profile properties as key-value pairs." type="record">
			<cocoa key="result" />
		</result>
	</command> -->
</dictionary>