Add mindjet support.
This commit is contained in:
@@ -1,17 +0,0 @@
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy of
|
||||
this software and associated documentation files (the "Software"), to deal in
|
||||
the Software without restriction, including without limitation the rights to
|
||||
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
|
||||
of the Software, and to permit persons to whom the Software is furnished to do
|
||||
so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
|
||||
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
|
||||
DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
|
||||
ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
||||
DEALINGS IN THE SOFTWARE.
|
@@ -0,0 +1,459 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!--
|
||||
# Simple XSL for the conversion of Mindmaps from Freemind-0.9 to MindManager-8
|
||||
#
|
||||
# Version-1.1
|
||||
#
|
||||
# Copyright (c) 2009 Christian Lorandi
|
||||
# http://freemind2mindmanager.fdns.net
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 2 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
-->
|
||||
|
||||
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"
|
||||
xmlns:ap="http://schemas.mindjet.com/MindManager/Application/2003"
|
||||
xmlns:cor="http://schemas.mindjet.com/MindManager/Core/2003"
|
||||
xmlns:pri="http://schemas.mindjet.com/MindManager/Primitive/2003"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://schemas.mindjet.com/MindManager/Application/2003 http://schemas.mindjet.com/MindManager/Application/2003 http://schemas.mindjet.com/MindManager/Core/2003 http://schemas.mindjet.com/MindManager/Core/2003 http://schemas.mindjet.com/MindManager/Delta/2003 http://schemas.mindjet.com/MindManager/Delta/2003 http://schemas.mindjet.com/MindManager/Primitive/2003 http://schemas.mindjet.com/MindManager/Primitive/2003">
|
||||
<xsl:template match="map">
|
||||
<xsl:element name="ap:Map">
|
||||
<xsl:element name="ap:OneTopic">
|
||||
<xsl:apply-templates select="node"/>
|
||||
</xsl:element>
|
||||
<xsl:element name="ap:Relationships">
|
||||
<xsl:apply-templates select="descendant-or-self::arrowlink"> </xsl:apply-templates>
|
||||
</xsl:element>
|
||||
</xsl:element>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template match="node">
|
||||
<xsl:element name="ap:Topic">
|
||||
<xsl:attribute name="OId">
|
||||
<xsl:value-of
|
||||
select="concat(substring-after(@ID, '_'), substring('rW54nezC90m8NYAi2fjQvw==', string-length(substring-after(@ID, '_'))+1))"
|
||||
/>
|
||||
</xsl:attribute>
|
||||
<xsl:if test="node">
|
||||
<xsl:element name="ap:SubTopics">
|
||||
<xsl:apply-templates select="node"/>
|
||||
</xsl:element>
|
||||
</xsl:if>
|
||||
<xsl:apply-templates select="cloud"/>
|
||||
<xsl:apply-templates select="richcontent//body//img"/>
|
||||
<xsl:element name="ap:Text">
|
||||
<xsl:attribute name="PlainText">
|
||||
<xsl:value-of select="@TEXT"/>
|
||||
</xsl:attribute>
|
||||
<xsl:element name="ap:Font">
|
||||
<xsl:if test="@COLOR">
|
||||
<xsl:attribute name="Color">
|
||||
<xsl:value-of select="concat('ff', substring-after(@COLOR, '#'))"/>
|
||||
</xsl:attribute>
|
||||
</xsl:if>
|
||||
<xsl:apply-templates select="font"/>
|
||||
</xsl:element>
|
||||
</xsl:element>
|
||||
<xsl:if test="not(contains(icon/@BUILTIN, 'full-'))">
|
||||
<xsl:apply-templates select="icon"/>
|
||||
</xsl:if>
|
||||
<xsl:if test="@BACKGROUND_COLOR">
|
||||
<xsl:element name="ap:Color">
|
||||
<xsl:attribute name="FillColor">
|
||||
<xsl:value-of select="concat('ff', substring-after(@BACKGROUND_COLOR, '#'))"
|
||||
/>
|
||||
</xsl:attribute>
|
||||
</xsl:element>
|
||||
</xsl:if>
|
||||
|
||||
<xsl:if test="@STYLE">
|
||||
<xsl:element name="ap:SubTopicShape">
|
||||
<xsl:if test="@STYLE = 'bubble'">
|
||||
<xsl:attribute name="SubTopicShape"
|
||||
>urn:mindjet:RoundedRectangle</xsl:attribute>
|
||||
</xsl:if>
|
||||
<xsl:if test="@STYLE = 'fork'">
|
||||
<xsl:attribute name="SubTopicShape">urn:mindjet:Line</xsl:attribute>
|
||||
</xsl:if>
|
||||
</xsl:element>
|
||||
</xsl:if>
|
||||
|
||||
<xsl:if test="not(@STYLE)">
|
||||
<xsl:element name="ap:SubTopicShape">
|
||||
<xsl:if test="parent::map">
|
||||
<xsl:attribute name="SubTopicShape"
|
||||
>urn:mindjet:RoundedRectangle</xsl:attribute>
|
||||
</xsl:if>
|
||||
<xsl:if test="not(parent::map)">
|
||||
<xsl:attribute name="SubTopicShape">urn:mindjet:Line</xsl:attribute>
|
||||
</xsl:if>
|
||||
<xsl:for-each select="ancestor::node">
|
||||
<xsl:if test="@STYLE = 'bubble'">
|
||||
<xsl:attribute name="SubTopicShape"
|
||||
>urn:mindjet:RoundedRectangle</xsl:attribute>
|
||||
</xsl:if>
|
||||
<xsl:if test="@STYLE = 'fork'">
|
||||
<xsl:attribute name="SubTopicShape">urn:mindjet:Line</xsl:attribute>
|
||||
</xsl:if>
|
||||
</xsl:for-each>
|
||||
</xsl:element>
|
||||
</xsl:if>
|
||||
|
||||
<xsl:if test="child::edge/@STYLE|parent::map">
|
||||
<xsl:element name="ap:SubTopicsShape">
|
||||
<xsl:if test="contains(child::edge/@STYLE, 'bezier')">
|
||||
<xsl:attribute name="SubTopicsConnectionStyle"
|
||||
>urn:mindjet:Curve</xsl:attribute>
|
||||
</xsl:if>
|
||||
<xsl:if test="contains(child::edge/@STYLE, 'linear')">
|
||||
<xsl:attribute name="SubTopicsConnectionStyle"
|
||||
>urn:mindjet:Straight</xsl:attribute>
|
||||
</xsl:if>
|
||||
<xsl:if test="parent::map">
|
||||
<xsl:attribute name="SubTopicsAlignment">urn:mindjet:Center</xsl:attribute>
|
||||
<xsl:attribute name="SubTopicsGrowth">urn:mindjet:Horizontal</xsl:attribute>
|
||||
<xsl:attribute name="SubTopicsGrowthDirection"
|
||||
>urn:mindjet:AutomaticHorizontal</xsl:attribute>
|
||||
<xsl:attribute name="VerticalDistanceBetweenSiblings">150</xsl:attribute>
|
||||
</xsl:if>
|
||||
</xsl:element>
|
||||
</xsl:if>
|
||||
<xsl:if test="@LINK">
|
||||
<xsl:element name="ap:Hyperlink">
|
||||
<xsl:attribute name="Url">
|
||||
<xsl:value-of select="@LINK"/>
|
||||
</xsl:attribute>
|
||||
</xsl:element>
|
||||
</xsl:if>
|
||||
|
||||
<xsl:if test="contains(icon/@BUILTIN, 'full-')">
|
||||
<xsl:apply-templates select="icon"/>
|
||||
</xsl:if>
|
||||
</xsl:element>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template match="font">
|
||||
<xsl:if test="@BOLD">
|
||||
<xsl:attribute name="Bold">
|
||||
<xsl:value-of select="@BOLD"/>
|
||||
</xsl:attribute>
|
||||
</xsl:if>
|
||||
<xsl:if test="@ITALIC">
|
||||
<xsl:attribute name="Italic">
|
||||
<xsl:value-of select="@ITALIC"/>
|
||||
</xsl:attribute>
|
||||
</xsl:if>
|
||||
<xsl:if test="@SIZE">
|
||||
<xsl:attribute name="Size">
|
||||
<xsl:value-of select="@SIZE"/>
|
||||
</xsl:attribute>
|
||||
</xsl:if>
|
||||
<xsl:if test="@NAME">
|
||||
<xsl:attribute name="Name">
|
||||
<xsl:value-of select="@NAME"/>
|
||||
</xsl:attribute>
|
||||
</xsl:if>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template match="richcontent//body//img">
|
||||
<xsl:element name="ap:OneImage">
|
||||
<xsl:element name="ap:Image">
|
||||
<xsl:element name="ap:ImageData">
|
||||
<xsl:attribute name="ImageType">urn:mindjet:PngImage</xsl:attribute>
|
||||
<xsl:attribute name="CustomImageType"> </xsl:attribute>
|
||||
<xsl:element name="cor:Uri">
|
||||
<xsl:attribute name="xsi:nil">false</xsl:attribute>
|
||||
<xsl:text>mmarch://bin/</xsl:text>
|
||||
<xsl:value-of select="@src"/>
|
||||
</xsl:element>
|
||||
</xsl:element>
|
||||
</xsl:element>
|
||||
</xsl:element>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template match="arrowlink">
|
||||
<xsl:element name="ap:Relationship">
|
||||
<xsl:element name="ap:ConnectionGroup">
|
||||
<xsl:attribute name="Index">0</xsl:attribute>
|
||||
<xsl:element name="ap:Connection">
|
||||
<xsl:element name="ap:ObjectReference">
|
||||
<xsl:attribute name="OIdRef">
|
||||
<xsl:value-of
|
||||
select="concat(substring-after(parent::node/@ID, '_'), substring('rW54nezC90m8NYAi2fjQvw==', string-length(substring-after(parent::node/@ID, '_'))+1))"
|
||||
/>
|
||||
</xsl:attribute>
|
||||
</xsl:element>
|
||||
</xsl:element>
|
||||
</xsl:element>
|
||||
<xsl:element name="ap:ConnectionGroup">
|
||||
<xsl:attribute name="Index">1</xsl:attribute>
|
||||
<xsl:element name="ap:Connection">
|
||||
<xsl:element name="ap:ObjectReference">
|
||||
<xsl:attribute name="OIdRef">
|
||||
<xsl:value-of
|
||||
select="concat(substring-after(@DESTINATION, '_'), substring('rW54nezC90m8NYAi2fjQvw==', string-length(substring-after(@DESTINATION, '_'))+1))"
|
||||
/>
|
||||
</xsl:attribute>
|
||||
</xsl:element>
|
||||
</xsl:element>
|
||||
</xsl:element>
|
||||
<xsl:element name="ap:AutoRoute">
|
||||
<xsl:attribute name="AutoRouting">true</xsl:attribute>
|
||||
</xsl:element>
|
||||
</xsl:element>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template match="cloud">
|
||||
<xsl:element name="ap:OneBoundary">
|
||||
<xsl:element name="ap:Boundary">
|
||||
<xsl:if test="@COLOR">
|
||||
<xsl:element name="ap:Color">
|
||||
<xsl:attribute name="FillColor">
|
||||
<xsl:value-of select="concat('2e', substring-after(@COLOR, '#'))"/>
|
||||
</xsl:attribute>
|
||||
<xsl:attribute name="LineColor">
|
||||
<xsl:value-of select="concat('ff', substring-after(@COLOR, '#'))"/>
|
||||
</xsl:attribute>
|
||||
</xsl:element>
|
||||
</xsl:if>
|
||||
<xsl:element name="ap:BoundaryShape">
|
||||
<xsl:attribute name="BoundaryShape">urn:mindjet:CurvedLine</xsl:attribute>
|
||||
</xsl:element>
|
||||
</xsl:element>
|
||||
</xsl:element>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template match="icon">
|
||||
<xsl:if test="number(substring-after(@BUILTIN, 'full-')) < 6">
|
||||
<xsl:if test="contains(@BUILTIN, 'full-')">
|
||||
<xsl:element name="ap:Task">
|
||||
<xsl:attribute name="TaskPriority">urn:mindjet:Prio<xsl:value-of
|
||||
select="substring-after(@BUILTIN, 'full-')"/></xsl:attribute>
|
||||
</xsl:element>
|
||||
</xsl:if>
|
||||
</xsl:if>
|
||||
<xsl:if test="@BUILTIN = 'help'">
|
||||
<xsl:element name="ap:IconsGroup">
|
||||
<xsl:element name="ap:Icons">
|
||||
<xsl:element name="ap:Icon">
|
||||
<xsl:attribute name="xsi:type">ap:StockIcon</xsl:attribute>
|
||||
<xsl:attribute name="IconType">urn:mindjet:QuestionMark</xsl:attribute>
|
||||
</xsl:element>
|
||||
</xsl:element>
|
||||
</xsl:element>
|
||||
</xsl:if>
|
||||
<xsl:if test="@BUILTIN = 'yes'">
|
||||
<xsl:element name="ap:IconsGroup">
|
||||
<xsl:element name="ap:Icons">
|
||||
<xsl:element name="ap:Icon">
|
||||
<xsl:attribute name="xsi:type">ap:StockIcon</xsl:attribute>
|
||||
<xsl:attribute name="IconType">urn:mindjet:ExclamationMark</xsl:attribute>
|
||||
</xsl:element>
|
||||
</xsl:element>
|
||||
</xsl:element>
|
||||
</xsl:if>
|
||||
<xsl:if test="@BUILTIN = 'messagebox_warning'">
|
||||
<xsl:element name="ap:IconsGroup">
|
||||
<xsl:element name="ap:Icons">
|
||||
<xsl:element name="ap:Icon">
|
||||
<xsl:attribute name="xsi:type">ap:StockIcon</xsl:attribute>
|
||||
<xsl:attribute name="IconType">urn:mindjet:Emergency</xsl:attribute>
|
||||
</xsl:element>
|
||||
</xsl:element>
|
||||
</xsl:element>
|
||||
</xsl:if>
|
||||
<xsl:if test="@BUILTIN = 'button_ok'">
|
||||
<xsl:element name="ap:IconsGroup">
|
||||
<xsl:element name="ap:Icons">
|
||||
<xsl:element name="ap:Icon">
|
||||
<xsl:attribute name="xsi:type">ap:StockIcon</xsl:attribute>
|
||||
<xsl:attribute name="IconType">urn:mindjet:ThumbsUp</xsl:attribute>
|
||||
</xsl:element>
|
||||
</xsl:element>
|
||||
</xsl:element>
|
||||
</xsl:if>
|
||||
<xsl:if test="@BUILTIN = 'button_cancel'">
|
||||
<xsl:element name="ap:IconsGroup">
|
||||
<xsl:element name="ap:Icons">
|
||||
<xsl:element name="ap:Icon">
|
||||
<xsl:attribute name="xsi:type">ap:StockIcon</xsl:attribute>
|
||||
<xsl:attribute name="IconType">urn:mindjet:ThumbsDown</xsl:attribute>
|
||||
</xsl:element>
|
||||
</xsl:element>
|
||||
</xsl:element>
|
||||
</xsl:if>
|
||||
<xsl:if test="@BUILTIN = 'calendar'">
|
||||
<xsl:element name="ap:IconsGroup">
|
||||
<xsl:element name="ap:Icons">
|
||||
<xsl:element name="ap:Icon">
|
||||
<xsl:attribute name="xsi:type">ap:StockIcon</xsl:attribute>
|
||||
<xsl:attribute name="IconType">urn:mindjet:Calendar</xsl:attribute>
|
||||
</xsl:element>
|
||||
</xsl:element>
|
||||
</xsl:element>
|
||||
</xsl:if>
|
||||
<xsl:if test="@BUILTIN = 'up'">
|
||||
<xsl:element name="ap:IconsGroup">
|
||||
<xsl:element name="ap:Icons">
|
||||
<xsl:element name="ap:Icon">
|
||||
<xsl:attribute name="xsi:type">ap:StockIcon</xsl:attribute>
|
||||
<xsl:attribute name="IconType">urn:mindjet:ArrowUp</xsl:attribute>
|
||||
</xsl:element>
|
||||
</xsl:element>
|
||||
</xsl:element>
|
||||
</xsl:if>
|
||||
<xsl:if test="@BUILTIN = 'down'">
|
||||
<xsl:element name="ap:IconsGroup">
|
||||
<xsl:element name="ap:Icons">
|
||||
<xsl:element name="ap:Icon">
|
||||
<xsl:attribute name="xsi:type">ap:StockIcon</xsl:attribute>
|
||||
<xsl:attribute name="IconType">urn:mindjet:ArrowDown</xsl:attribute>
|
||||
</xsl:element>
|
||||
</xsl:element>
|
||||
</xsl:element>
|
||||
</xsl:if>
|
||||
<xsl:if test="@BUILTIN = 'forward'">
|
||||
<xsl:element name="ap:IconsGroup">
|
||||
<xsl:element name="ap:Icons">
|
||||
<xsl:element name="ap:Icon">
|
||||
<xsl:attribute name="xsi:type">ap:StockIcon</xsl:attribute>
|
||||
<xsl:attribute name="IconType">urn:mindjet:ArrowRight</xsl:attribute>
|
||||
</xsl:element>
|
||||
</xsl:element>
|
||||
</xsl:element>
|
||||
</xsl:if>
|
||||
<xsl:if test="@BUILTIN = 'back'">
|
||||
<xsl:element name="ap:IconsGroup">
|
||||
<xsl:element name="ap:Icons">
|
||||
<xsl:element name="ap:Icon">
|
||||
<xsl:attribute name="xsi:type">ap:StockIcon</xsl:attribute>
|
||||
<xsl:attribute name="IconType">urn:mindjet:ArrowLeft</xsl:attribute>
|
||||
</xsl:element>
|
||||
</xsl:element>
|
||||
</xsl:element>
|
||||
</xsl:if>
|
||||
<xsl:if test="@BUILTIN = 'flag-black'">
|
||||
<xsl:element name="ap:IconsGroup">
|
||||
<xsl:element name="ap:Icons">
|
||||
<xsl:element name="ap:Icon">
|
||||
<xsl:attribute name="xsi:type">ap:StockIcon</xsl:attribute>
|
||||
<xsl:attribute name="IconType">urn:mindjet:FlagBlack</xsl:attribute>
|
||||
</xsl:element>
|
||||
</xsl:element>
|
||||
</xsl:element>
|
||||
</xsl:if>
|
||||
<xsl:if test="@BUILTIN = 'flag-green'">
|
||||
<xsl:element name="ap:IconsGroup">
|
||||
<xsl:element name="ap:Icons">
|
||||
<xsl:element name="ap:Icon">
|
||||
<xsl:attribute name="xsi:type">ap:StockIcon</xsl:attribute>
|
||||
<xsl:attribute name="IconType">urn:mindjet:FlagGreen</xsl:attribute>
|
||||
</xsl:element>
|
||||
</xsl:element>
|
||||
</xsl:element>
|
||||
</xsl:if>
|
||||
<xsl:if test="@BUILTIN = 'flag'">
|
||||
<xsl:element name="ap:IconsGroup">
|
||||
<xsl:element name="ap:Icons">
|
||||
<xsl:element name="ap:Icon">
|
||||
<xsl:attribute name="xsi:type">ap:StockIcon</xsl:attribute>
|
||||
<xsl:attribute name="IconType">urn:mindjet:FlagRed</xsl:attribute>
|
||||
</xsl:element>
|
||||
</xsl:element>
|
||||
</xsl:element>
|
||||
</xsl:if>
|
||||
<xsl:if test="@BUILTIN = 'flag-yellow'">
|
||||
<xsl:element name="ap:IconsGroup">
|
||||
<xsl:element name="ap:Icons">
|
||||
<xsl:element name="ap:Icon">
|
||||
<xsl:attribute name="xsi:type">ap:StockIcon</xsl:attribute>
|
||||
<xsl:attribute name="IconType">urn:mindjet:FlagYellow</xsl:attribute>
|
||||
</xsl:element>
|
||||
</xsl:element>
|
||||
</xsl:element>
|
||||
</xsl:if>
|
||||
<xsl:if test="@BUILTIN = 'flag-orange'">
|
||||
<xsl:element name="ap:IconsGroup">
|
||||
<xsl:element name="ap:Icons">
|
||||
<xsl:element name="ap:Icon">
|
||||
<xsl:attribute name="xsi:type">ap:StockIcon</xsl:attribute>
|
||||
<xsl:attribute name="IconType">urn:mindjet:FlagOrange</xsl:attribute>
|
||||
</xsl:element>
|
||||
</xsl:element>
|
||||
</xsl:element>
|
||||
</xsl:if>
|
||||
<xsl:if test="@BUILTIN = 'flag-pink'">
|
||||
<xsl:element name="ap:IconsGroup">
|
||||
<xsl:element name="ap:Icons">
|
||||
<xsl:element name="ap:Icon">
|
||||
<xsl:attribute name="xsi:type">ap:StockIcon</xsl:attribute>
|
||||
<xsl:attribute name="IconType">urn:mindjet:FlagPurple</xsl:attribute>
|
||||
</xsl:element>
|
||||
</xsl:element>
|
||||
</xsl:element>
|
||||
</xsl:if>
|
||||
<xsl:if test="@BUILTIN = 'flag-blue'">
|
||||
<xsl:element name="ap:IconsGroup">
|
||||
<xsl:element name="ap:Icons">
|
||||
<xsl:element name="ap:Icon">
|
||||
<xsl:attribute name="xsi:type">ap:StockIcon</xsl:attribute>
|
||||
<xsl:attribute name="IconType">urn:mindjet:FlagBlue</xsl:attribute>
|
||||
</xsl:element>
|
||||
</xsl:element>
|
||||
</xsl:element>
|
||||
</xsl:if>
|
||||
|
||||
<xsl:if test="@BUILTIN = 'ksmiletris'">
|
||||
<xsl:element name="ap:IconsGroup">
|
||||
<xsl:element name="ap:Icons">
|
||||
<xsl:element name="ap:Icon">
|
||||
<xsl:attribute name="xsi:type">ap:StockIcon</xsl:attribute>
|
||||
<xsl:attribute name="IconType">urn:mindjet:SmileyHappy</xsl:attribute>
|
||||
</xsl:element>
|
||||
</xsl:element>
|
||||
</xsl:element>
|
||||
</xsl:if>
|
||||
<xsl:if test="@BUILTIN = 'smiley-neutral'">
|
||||
<xsl:element name="ap:IconsGroup">
|
||||
<xsl:element name="ap:Icons">
|
||||
<xsl:element name="ap:Icon">
|
||||
<xsl:attribute name="xsi:type">ap:StockIcon</xsl:attribute>
|
||||
<xsl:attribute name="IconType">urn:mindjet:SmileyNeutral</xsl:attribute>
|
||||
</xsl:element>
|
||||
</xsl:element>
|
||||
</xsl:element>
|
||||
</xsl:if>
|
||||
<xsl:if test="@BUILTIN = 'smiley-angry'">
|
||||
<xsl:element name="ap:IconsGroup">
|
||||
<xsl:element name="ap:Icons">
|
||||
<xsl:element name="ap:Icon">
|
||||
<xsl:attribute name="xsi:type">ap:StockIcon</xsl:attribute>
|
||||
<xsl:attribute name="IconType">urn:mindjet:SmileyAngry</xsl:attribute>
|
||||
</xsl:element>
|
||||
</xsl:element>
|
||||
</xsl:element>
|
||||
</xsl:if>
|
||||
<xsl:if test="@BUILTIN = 'smily_bad'">
|
||||
<xsl:element name="ap:IconsGroup">
|
||||
<xsl:element name="ap:Icons">
|
||||
<xsl:element name="ap:Icon">
|
||||
<xsl:attribute name="xsi:type">ap:StockIcon</xsl:attribute>
|
||||
<xsl:attribute name="IconType">urn:mindjet:SmileySad</xsl:attribute>
|
||||
</xsl:element>
|
||||
</xsl:element>
|
||||
</xsl:element>
|
||||
</xsl:if>
|
||||
</xsl:template>
|
||||
</xsl:stylesheet>
|
Binary file not shown.
Before Width: | Height: | Size: 209 B |
Binary file not shown.
Before Width: | Height: | Size: 447 B |
Binary file not shown.
Before Width: | Height: | Size: 203 B |
@@ -1,473 +0,0 @@
|
||||
/* MarkTree JavaScript code
|
||||
*
|
||||
* Distributed under the terms of the MIT License.
|
||||
* See "LICENCE.MIT" or http://www.opensource.org/licenses/mit-license.php for details.
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS IS" basis,
|
||||
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
||||
* for the specific language governing rights and limitations under the
|
||||
* License.
|
||||
*
|
||||
* Miika Nurminen, 12.7.2004.
|
||||
*/
|
||||
|
||||
/* cross-browser (tested with ie5, mozilla 1 and opera 5) keypress detection */
|
||||
function get_keycode(evt) {
|
||||
// IE
|
||||
code = document.layers ? evt.which
|
||||
: document.all ? event.keyCode // event.keyCode!=evt.keyCode!
|
||||
: evt.keyCode;
|
||||
|
||||
if (code==0)
|
||||
code=evt.which; // for NS
|
||||
return code;
|
||||
}
|
||||
|
||||
var lastnode=null;
|
||||
var listnodes = null;
|
||||
var list_index=1;
|
||||
var lastnodetype=''; // determines if node is a link, input or text;
|
||||
|
||||
// up, left, down, right, keypress codes
|
||||
//ijkl
|
||||
//var keys = new Array(105,106,107,108);
|
||||
//num arrows
|
||||
//var keys = new Array(56,52,50,54);
|
||||
//wasd
|
||||
// var press2 = new Array(119,97,115,100);
|
||||
var press = new Array(47,45,42,43);
|
||||
|
||||
// keydown codes
|
||||
// var keys2=new Array(87,65,83,68);
|
||||
var keys= new Array(38,37,40,39);
|
||||
|
||||
// keyset 1 = keydown, otherwise press
|
||||
function checkup(keyset,n) {
|
||||
if (keyset==1) return (n==keys[0]);
|
||||
return ((n==press[0]) /*|| (n==press2[0])*/)
|
||||
}
|
||||
|
||||
function checkdn(keyset,n) {
|
||||
if (keyset==1) return (n==keys[2]);
|
||||
return ((n==press[2]) /*|| (n==press2[2])*/)
|
||||
}
|
||||
|
||||
function checkl(keyset,n) {
|
||||
if (keyset==1) return (n==keys[1]);
|
||||
return ((n==press[1]) /*|| (n==press2[1])*/)
|
||||
}
|
||||
|
||||
function checkr(keyset,n) {
|
||||
if (keyset==1) return (n==keys[3]);
|
||||
return ((n==press[3]) /*|| (n==press2[3])*/)
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
function is_exp(n) {
|
||||
if (n==null) return false;
|
||||
return ((n.className=='exp') || (n.className=='exp_active'));
|
||||
}
|
||||
|
||||
function is_col(n) {
|
||||
if (n==null) return false;
|
||||
return ((n.className=='col') || (n.className=='col_active'));
|
||||
}
|
||||
|
||||
function is_basic(n) {
|
||||
if (n==null) return false;
|
||||
return ((n.className=='basic') || (n.className=='basic_active'));
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* returns i>=0 if true */
|
||||
function is_active(node) {
|
||||
if (node.className==null) return false
|
||||
return node.className.indexOf('_active');
|
||||
}
|
||||
|
||||
function toggle_class(node) {
|
||||
if ((node==null) || (node.className==null)) return;
|
||||
str=node.className;
|
||||
result="";
|
||||
i = str.indexOf('_active');
|
||||
if (i>0)
|
||||
result= str.substr(0,i);
|
||||
else
|
||||
result= str+"_active";
|
||||
node.className=result;
|
||||
return node;
|
||||
}
|
||||
|
||||
function activate(node) {
|
||||
node.style.backgroundColor='#eeeeff';
|
||||
}
|
||||
|
||||
function deactivate(node) {
|
||||
node.style.backgroundColor='#ffffff';
|
||||
}
|
||||
|
||||
function is_list_node(n) {
|
||||
if (n==null) return false;
|
||||
if (n.className==null) return false;
|
||||
if ( (is_exp(n)) ||
|
||||
(is_col(n)) ||
|
||||
(is_basic(n)) )
|
||||
return true; else return false;
|
||||
}
|
||||
|
||||
|
||||
function get_href(n) {
|
||||
alist=n.attributes;
|
||||
if (alist!=null) {
|
||||
hr = alist.getNamedItem('href');
|
||||
if (hr!=null) return hr.nodeValue;
|
||||
}
|
||||
if (n.childNodes.length==0) return '';
|
||||
for (var i=0; i<n.childNodes.length; i++) {
|
||||
s = get_href(n.childNodes[i]);
|
||||
if (s!='') return s;
|
||||
}
|
||||
return '';
|
||||
}
|
||||
|
||||
function get_link(n) {
|
||||
if (n==null) return null;
|
||||
if (n.style==null) return null;
|
||||
|
||||
// disabling uncontrolled recursion to prevent error messages on IE
|
||||
// when trying to focus to invisible links (readonly mode)
|
||||
// alert(n.nodeName+' '+n.className);
|
||||
if ((n.nodeName=='UL') && (n.className=='sub')) return null;
|
||||
|
||||
if (n.nodeName=='A') return n;
|
||||
if (n.childNodes.length==0) return null;
|
||||
for (var i=0; i<n.childNodes.length; i++) {
|
||||
s = get_link(n.childNodes[i]);
|
||||
if (s!=null) return s;
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
function set_lastnode(n) {
|
||||
/*var d = new Date();
|
||||
var t_mil = d.getMilliseconds();*/
|
||||
// testattu nopeuksia explorerilla, ei merkitt<74>vi<76> eroja
|
||||
if (lastnode==n) return;
|
||||
/* deactivate(lastnode)
|
||||
lastnode=n;
|
||||
activate(lastnode);*/
|
||||
|
||||
if (is_active(lastnode)>=0)
|
||||
toggle_class(lastnode);
|
||||
lastnode=n;
|
||||
if (!(is_active(lastnode)>=0))
|
||||
toggle_class(lastnode);
|
||||
|
||||
|
||||
/*var d2 = new Date();
|
||||
var t_mil2 = d2.getMilliseconds();
|
||||
window.alert(t_mil2-t_mil);*/
|
||||
}
|
||||
|
||||
function next_list_node() {
|
||||
tempIndex = list_index;
|
||||
while (tempIndex<listnodes.length-1) {
|
||||
tempIndex++;
|
||||
var x = listnodes[tempIndex];
|
||||
if (is_list_node(x)) {
|
||||
list_index=tempIndex;
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function prev_list_node() {
|
||||
tempIndex = list_index;
|
||||
while (tempIndex>0) {
|
||||
tempIndex--;
|
||||
var x = listnodes[tempIndex];
|
||||
if (is_list_node(x)) {
|
||||
list_index=tempIndex;
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
function getsub (li) {
|
||||
if (li.childNodes.length==0) return null;
|
||||
for (var c = 0; c < li.childNodes.length; c++)
|
||||
if ( (li.childNodes[c].className == 'sub') || (li.childNodes[c].className == 'subexp') )
|
||||
return li.childNodes[c];
|
||||
}
|
||||
|
||||
function find_listnode_recursive (li) {
|
||||
if (is_list_node(li)) return li;
|
||||
if (li.childNodes.length==0) return null;
|
||||
result=null;
|
||||
for (var c = 0; c < li.childNodes.length; c++) {
|
||||
result=find_listnode_recursive(li.childNodes[c]);
|
||||
if (result!=null) return result;
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
function next_child_listnode(li) {
|
||||
var result=null;
|
||||
for (var i=0; i<li.childNodes.length; i++) {
|
||||
result=find_listnode_recursive(li.childNodes[i]);
|
||||
if (result!=null) return result;
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
function next_actual_sibling_listnode(li) {
|
||||
if (li==null) return null;
|
||||
var temp=li;
|
||||
while (1) {
|
||||
var n = temp.nextSibling;
|
||||
if (n==null) {
|
||||
n=parent_listnode(temp);
|
||||
return next_actual_sibling_listnode(n);
|
||||
}
|
||||
if (is_list_node(n)) return n;
|
||||
temp=n;
|
||||
}
|
||||
}
|
||||
|
||||
function next_sibling_listnode(li) {
|
||||
if (li==null) return null;
|
||||
var result=null;
|
||||
var temp=li;
|
||||
if (is_col(temp)) return next_child_listnode(temp);
|
||||
while (1) {
|
||||
var n = temp.nextSibling;
|
||||
if (n==null) {
|
||||
n=parent_listnode(temp);
|
||||
return next_actual_sibling_listnode(n);
|
||||
}
|
||||
if (is_list_node(n)) return n;
|
||||
temp=n;
|
||||
}
|
||||
}
|
||||
|
||||
function last_sibling_listnode(li) {
|
||||
if (li==null) return null;
|
||||
var temp=li;
|
||||
var last=null;
|
||||
while(1) {
|
||||
var n = temp.nextSibling;
|
||||
if (is_list_node(temp))
|
||||
last = temp;
|
||||
if (n==null) {
|
||||
if (is_col(last)) return last_sibling_listnode(next_child_listnode(last));
|
||||
else return last;
|
||||
}
|
||||
temp = n;
|
||||
}
|
||||
}
|
||||
|
||||
function prev_sibling_listnode(li) {
|
||||
if (li==null) return null;
|
||||
var temp=li;
|
||||
var n = null;
|
||||
while (1) {
|
||||
n = temp.previousSibling;
|
||||
if (n==null) {
|
||||
return parent_listnode(li);
|
||||
}
|
||||
if (is_list_node(n)) {
|
||||
if (is_col(n)) {
|
||||
return last_sibling_listnode(next_child_listnode(n));
|
||||
}
|
||||
else {
|
||||
return n;
|
||||
}
|
||||
}
|
||||
temp=n;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
function parent_listnode(li) {
|
||||
// added 12.7.2004 to prevent IE error when readonly mode==true
|
||||
if (li==null) return null;
|
||||
n=li;
|
||||
while (1) {
|
||||
n=n.parentNode;
|
||||
if (n==null) return null;
|
||||
if (is_list_node(n)) return n;
|
||||
}
|
||||
}
|
||||
|
||||
function getVisibleParents(id) {
|
||||
var n = document.getElementById(id);
|
||||
while(1) {
|
||||
expand(n);
|
||||
n = parent_listnode(n);
|
||||
if (n==null) return;
|
||||
}
|
||||
}
|
||||
|
||||
function onClickHandler (evt) {
|
||||
if (lastnode==null)
|
||||
{
|
||||
listnodes = document.getElementsByTagName('li');
|
||||
lastnode=listnodes[1];
|
||||
temp=listnodes[1];
|
||||
}
|
||||
|
||||
|
||||
var target = evt ? evt.target : event.srcElement;
|
||||
if (!is_list_node(target)) return;
|
||||
toggle(target);
|
||||
set_lastnode(target);
|
||||
}
|
||||
|
||||
|
||||
function expand(node) {
|
||||
if (!is_exp(node)) return;
|
||||
if (node.className=='exp_active')
|
||||
node.className='col_active';
|
||||
else
|
||||
node.className='col';
|
||||
setSubClass(node,'subexp');
|
||||
// getsub(node).className='subexp';
|
||||
}
|
||||
|
||||
function collapse(node) {
|
||||
if (!is_col(node)) return;
|
||||
|
||||
if (node.className=='col_active')
|
||||
node.className='exp_active'
|
||||
else
|
||||
node.className='exp';
|
||||
|
||||
setSubClass(node,'sub');
|
||||
// getsub(node).className='sub';
|
||||
|
||||
}
|
||||
|
||||
function setSubClass(node,name) {
|
||||
sub = getsub(node);
|
||||
if (sub==null) return;
|
||||
sub.className=name;
|
||||
}
|
||||
|
||||
function toggle(target) {
|
||||
if (!is_list_node(target)) return;
|
||||
if (is_col(target)) {
|
||||
target.className='exp';
|
||||
setSubClass(target,'sub');
|
||||
// getsub(target).className='sub';
|
||||
}
|
||||
else if (is_exp(target)) {
|
||||
target.className='col';
|
||||
setSubClass(target,'subexp');
|
||||
// getsub(target).className='subexp';
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
function expandAll(node) {
|
||||
if (node.className=='exp') {
|
||||
node.className='col';
|
||||
setSubClass(node,'subexp');
|
||||
// getsub(node).className='subexp';
|
||||
}
|
||||
var i;
|
||||
if (node.childNodes!=null)
|
||||
// if (node.hasChildNodes())
|
||||
for ( i = 0; i<node.childNodes.length; i++)
|
||||
expandAll(node.childNodes[i]);
|
||||
}
|
||||
|
||||
function collapseAll(node) {
|
||||
if (node.className=='col') {
|
||||
node.className='exp';
|
||||
setSubClass(node,'sub');
|
||||
// getsub(node).className='sub';
|
||||
}
|
||||
var i;
|
||||
if (node.childNodes!=null)
|
||||
// for opera if (node.hasChildNodes())
|
||||
for ( i = 0; i<node.childNodes.length; i++)
|
||||
collapseAll(node.childNodes[i]);
|
||||
}
|
||||
|
||||
|
||||
|
||||
function unFocus(node) {
|
||||
// unfocuses potential link that is to be hidden (if a==null there is no link so it should not be blurred).
|
||||
// tested with mozilla 1.7, 12.7.2004. /mn (
|
||||
intemp=parent_listnode(node);
|
||||
a = get_link(intemp); // added 6.4. to get keyboard working with
|
||||
// moved before collapse to prevent an error message with IE when readonly==true
|
||||
if (a!=null) a.blur(); // netscape after collapsing a focused node
|
||||
return intemp;
|
||||
}
|
||||
|
||||
// mode: 0==keypress, 1==keyup
|
||||
function keyfunc(evt,mode) {
|
||||
var c = get_keycode(evt);
|
||||
var temp = null;
|
||||
var a = null;
|
||||
|
||||
if (lastnode==null) {
|
||||
listnodes = document.getElementsByTagName('li');
|
||||
lastnode=listnodes[1];
|
||||
temp=listnodes[1];
|
||||
}
|
||||
|
||||
//window.alert(c);
|
||||
if (checkup(mode,c)) { // i
|
||||
temp=prev_sibling_listnode(lastnode);
|
||||
}
|
||||
else if (checkdn(mode,c)) { // k
|
||||
temp=next_sibling_listnode(lastnode);
|
||||
}
|
||||
else if (checkr(mode,c)) { // l
|
||||
expand(lastnode);
|
||||
// temp=next_child_listnode(lastnode);
|
||||
// if (temp==null) {
|
||||
a = get_link(lastnode);
|
||||
if (a!=null) a.focus(); else self.focus();
|
||||
//}
|
||||
}
|
||||
else if (checkl(mode,c)) { // j
|
||||
if (is_col(lastnode)) {
|
||||
unFocus(lastnode);
|
||||
collapse(lastnode);
|
||||
}
|
||||
else {
|
||||
temp=unFocus(lastnode);
|
||||
collapse(temp);
|
||||
}
|
||||
// if (temp==null) lastnode.focus(); // forces focus to correct div (try mozilla typesearch) (doesn't seem to work -mn/6.4.2004)
|
||||
}
|
||||
else return;
|
||||
if (temp!=null) set_lastnode(temp);
|
||||
|
||||
// alert('pressed ' + String.fromCharCode(c) + '(' + c + ')');
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
function keytest (evt) {
|
||||
return keyfunc(evt,1);
|
||||
};
|
||||
|
||||
|
||||
function presstest (evt) {
|
||||
return keyfunc(evt,0);
|
||||
};
|
||||
|
||||
|
||||
document.onclick = onClickHandler;
|
||||
document.onkeypress = presstest;
|
||||
document.onkeyup = keytest;
|
Binary file not shown.
Before Width: | Height: | Size: 1012 B |
@@ -1,77 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!--
|
||||
|
||||
Document : mm2tsk.xsl
|
||||
Created on : 02 October 2010 - 22:14
|
||||
Author : Giacomo Lacava toyg@users at sourceforge.net
|
||||
Description: transforms freemind mm format to tsk, used by TaskCoach.
|
||||
|
||||
Note: this doesn't handle richtext nodes yet
|
||||
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License
|
||||
* as published by the Free Software Foundation; either version 2
|
||||
* of the License, or any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
|
||||
Patches item #3080120, was opened at 2010-10-02 21:34
|
||||
https://sourceforge.net/tracker/?func=detail&atid=307118&aid=3080120&group_id=7118
|
||||
Summary: Export to TaskCoach
|
||||
|
||||
Initial Comment:
|
||||
The attached XSL will convert a MM file to TSK, the format used by TaskCoach ( http://www.taskcoach.org ), a popular todo manager (FOSS).
|
||||
|
||||
At the moment it doesn't export richtext nodes properly -- surely you already have a good way to "flatten" them, but I can't find it. TaskCoach doesn't handle HTML, afaik.
|
||||
|
||||
TSK files require a date-time value in the "startdate" attribute of tasks; it has to be set in the past for nodes to be seen as "active". I don't know if your XSL parser handles XSLT 2.0 (many don't), so I used a 1.0 extension available online in order to do that -- I add the current timestamp, and since more than a second will always pass between the file being saved and the export being opened in TaskCoach, it seems to work.
|
||||
|
||||
Let me know if you need anything else.
|
||||
|
||||
-->
|
||||
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
|
||||
xmlns:datetime="http://exslt.org/dates-and-times" exclude-result-prefixes="datetime">
|
||||
|
||||
<xsl:param name="datestr" select="datetime:dateTime()" />
|
||||
<xsl:param name="date">
|
||||
<xsl:value-of select="substring($datestr,0,5)" />
|
||||
<xsl:text>-</xsl:text>
|
||||
<xsl:value-of select="substring($datestr,6,2)" />
|
||||
<xsl:text>-</xsl:text>
|
||||
<xsl:value-of select="substring($datestr,9,2)" />
|
||||
<xsl:text> </xsl:text>
|
||||
<xsl:value-of select="substring($datestr,12,2)" />
|
||||
<xsl:text>:</xsl:text>
|
||||
<xsl:value-of select="substring($datestr,15,2)" />
|
||||
<xsl:text>:</xsl:text>
|
||||
<xsl:value-of select="substring($datestr,18,2)" />
|
||||
</xsl:param>
|
||||
|
||||
<xsl:template match="/">
|
||||
<xsl:processing-instruction name="taskcoach">release="1.1.4" tskversion="30"</xsl:processing-instruction>
|
||||
<tasks>
|
||||
<xsl:apply-templates />
|
||||
</tasks>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template match="node">
|
||||
<task>
|
||||
<xsl:attribute name="startdate">
|
||||
<xsl:value-of select="$date"/>
|
||||
</xsl:attribute>
|
||||
<xsl:attribute name="status">1</xsl:attribute>
|
||||
<xsl:attribute name="subject">
|
||||
<xsl:value-of select="@TEXT"/>
|
||||
</xsl:attribute>
|
||||
<xsl:apply-templates />
|
||||
</task>
|
||||
</xsl:template>
|
||||
|
||||
</xsl:stylesheet>
|
@@ -1,118 +0,0 @@
|
||||
<?xml version="1.0" encoding="iso-8859-1"?>
|
||||
<!--
|
||||
(c) by Stephen Fitch, 2005
|
||||
This file is licensed under the GPL.
|
||||
-->
|
||||
|
||||
<xsl:stylesheet version="1.0"
|
||||
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<xsl:output method="text" indent="no"/>
|
||||
|
||||
<xsl:strip-space elements="*"/>
|
||||
|
||||
<xsl:template match="map">
|
||||
<xsl:apply-templates select="node"/>
|
||||
</xsl:template>
|
||||
|
||||
<!-- match "node" -->
|
||||
<xsl:template match="node">
|
||||
<xsl:variable name="depth">
|
||||
<xsl:apply-templates select=".." mode="depthMesurement"/>
|
||||
</xsl:variable>
|
||||
<xsl:choose>
|
||||
<xsl:when test="$depth=0">
|
||||
<xsl:choose>
|
||||
<xsl:when test="@LINK">
|
||||
<xsl:text>---+ [[</xsl:text><xsl:value-of select="@LINK"/><xsl:text> </xsl:text><xsl:value-of select="@TEXT"/><xsl:text>]]</xsl:text>
|
||||
</xsl:when>
|
||||
<xsl:otherwise>
|
||||
<xsl:text>---+ </xsl:text><xsl:value-of select="@TEXT"/>
|
||||
</xsl:otherwise>
|
||||
</xsl:choose>
|
||||
<xsl:text>
</xsl:text>
|
||||
<xsl:apply-templates select="hook"/>
|
||||
<xsl:apply-templates select="node"/>
|
||||
</xsl:when>
|
||||
<xsl:otherwise>
|
||||
<xsl:choose>
|
||||
<xsl:when test="ancestor::node[@FOLDED='true']">
|
||||
<xsl:apply-templates select=".." mode="childoutput">
|
||||
<xsl:with-param name="nodeText">
|
||||
<xsl:value-of select="@TEXT"/>
|
||||
</xsl:with-param>
|
||||
</xsl:apply-templates>
|
||||
</xsl:when>
|
||||
<xsl:otherwise>
|
||||
<xsl:apply-templates select=".." mode="childoutput">
|
||||
<xsl:with-param name="nodeText">
|
||||
<xsl:if test="$depth=1">
|
||||
<xsl:text>
</xsl:text>
|
||||
</xsl:if>
|
||||
<xsl:call-template name="spaces">
|
||||
<xsl:with-param name="count"
|
||||
select="$depth * 3"/>
|
||||
</xsl:call-template>
|
||||
<!-- Do we have text with a LINK attribute? -->
|
||||
<xsl:choose>
|
||||
<xsl:when test="@LINK">
|
||||
<xsl:text>* [[</xsl:text><xsl:value-of select="@LINK"/><xsl:text> </xsl:text><xsl:value-of select="@TEXT"/><xsl:text>]]</xsl:text>
|
||||
</xsl:when>
|
||||
<xsl:otherwise>
|
||||
<xsl:text>* </xsl:text><xsl:value-of select="@TEXT"/>
|
||||
</xsl:otherwise>
|
||||
</xsl:choose>
|
||||
<xsl:text>
</xsl:text>
|
||||
</xsl:with-param>
|
||||
</xsl:apply-templates>
|
||||
</xsl:otherwise>
|
||||
</xsl:choose>
|
||||
<!-- <xsl:apply-templates select="hook|@LINK"/> -->
|
||||
<xsl:apply-templates select="node"/>
|
||||
</xsl:otherwise>
|
||||
</xsl:choose>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template name="spaces">
|
||||
<xsl:param name="count" select="1"/>
|
||||
<xsl:if test="$count > 0">
|
||||
<xsl:text> </xsl:text>
|
||||
<xsl:call-template name="spaces">
|
||||
<xsl:with-param name="count" select="$count - 1"/>
|
||||
</xsl:call-template>
|
||||
</xsl:if>
|
||||
</xsl:template>
|
||||
|
||||
<!-- hook -->
|
||||
<xsl:template match="hook"/>
|
||||
|
||||
<!-- hook -->
|
||||
<xsl:template match="hook[@NAME='accessories/plugins/NodeNote.properties']">
|
||||
<xsl:choose>
|
||||
<xsl:when test="./text">
|
||||
<xsl:value-of select="./text"/>
|
||||
</xsl:when>
|
||||
</xsl:choose>
|
||||
</xsl:template>
|
||||
|
||||
<!-- Node - Output -->
|
||||
<xsl:template match="node" mode="childoutput">
|
||||
<xsl:param name="nodeText"></xsl:param>
|
||||
<xsl:copy-of select="$nodeText"/>
|
||||
</xsl:template>
|
||||
|
||||
<!-- Node Depth Mesurement -->
|
||||
<xsl:template match="node" mode="depthMesurement">
|
||||
<xsl:param name="depth" select=" '0' "/>
|
||||
<xsl:apply-templates select=".." mode="depthMesurement">
|
||||
<xsl:with-param name="depth" select="$depth + 1"/>
|
||||
</xsl:apply-templates>
|
||||
</xsl:template>
|
||||
|
||||
<!-- Map Depth Mesurement -->
|
||||
<xsl:template match="map" mode="depthMesurement">
|
||||
<xsl:param name="depth" select=" '0' "/>
|
||||
<xsl:value-of select="$depth"/>
|
||||
</xsl:template>
|
||||
|
||||
</xsl:stylesheet>
|
@@ -1,192 +0,0 @@
|
||||
<?xml version="1.0" encoding="iso-8859-1"?>
|
||||
<!--
|
||||
(c) by Stephen Fitch, 2005 This file is licensed under the GPL.
|
||||
-->
|
||||
<xsl:stylesheet version="1.0"
|
||||
xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<xsl:output method="text" indent="no" />
|
||||
<xsl:strip-space elements="*" />
|
||||
<xsl:template match="map">
|
||||
<xsl:apply-templates select="node" />
|
||||
</xsl:template>
|
||||
<xsl:template match="font" />
|
||||
<xsl:template match="@TEXT">
|
||||
<xsl:value-of select="normalize-space(.)" />
|
||||
</xsl:template>
|
||||
<!-- match "node" -->
|
||||
<xsl:template match="node">
|
||||
<xsl:variable name="depth">
|
||||
<xsl:apply-templates select=".."
|
||||
mode="depthMesurement" />
|
||||
</xsl:variable>
|
||||
<xsl:choose>
|
||||
<xsl:when test="$depth=0">
|
||||
<xsl:text>

%TOC%

</xsl:text>
|
||||
<xsl:choose>
|
||||
<xsl:when test="@LINK">
|
||||
<xsl:text>---+ [[</xsl:text>
|
||||
<xsl:value-of select="@LINK" />
|
||||
<xsl:text>][</xsl:text>
|
||||
<xsl:apply-templates
|
||||
select="richcontent/html/body|@TEXT" />
|
||||
<xsl:text>]]</xsl:text>
|
||||
</xsl:when>
|
||||
<xsl:otherwise>
|
||||
<xsl:text>---+ </xsl:text>
|
||||
<xsl:apply-templates
|
||||
select="richcontent/html/body|@TEXT" />
|
||||
</xsl:otherwise>
|
||||
</xsl:choose>
|
||||
<xsl:text>

</xsl:text>
|
||||
<xsl:apply-templates select="hook" />
|
||||
<xsl:apply-templates select="node" />
|
||||
</xsl:when>
|
||||
<xsl:when test="$depth=1">
|
||||
<xsl:text>
</xsl:text>
|
||||
<xsl:choose>
|
||||
<xsl:when test="@LINK">
|
||||
<xsl:text>---++ [[</xsl:text>
|
||||
<xsl:value-of select="@LINK" />
|
||||
<xsl:text>][</xsl:text>
|
||||
<xsl:apply-templates
|
||||
select="richcontent/html/body|@TEXT" />
|
||||
<xsl:text>]]</xsl:text>
|
||||
</xsl:when>
|
||||
<xsl:otherwise>
|
||||
<xsl:text>---++ </xsl:text>
|
||||
<xsl:apply-templates
|
||||
select="richcontent/html/body|@TEXT" />
|
||||
</xsl:otherwise>
|
||||
</xsl:choose>
|
||||
<xsl:text>

</xsl:text>
|
||||
<xsl:apply-templates select="hook" />
|
||||
<xsl:apply-templates select="node" />
|
||||
</xsl:when>
|
||||
<xsl:otherwise>
|
||||
<xsl:choose>
|
||||
<xsl:when test="ancestor::node[@FOLDED='true']">
|
||||
<xsl:apply-templates select=".."
|
||||
mode="childoutput">
|
||||
<xsl:with-param name="nodeText">
|
||||
<xsl:value-of select="@TEXT" />
|
||||
</xsl:with-param>
|
||||
</xsl:apply-templates>
|
||||
</xsl:when>
|
||||
<xsl:otherwise>
|
||||
<xsl:apply-templates select=".."
|
||||
mode="childoutput">
|
||||
<xsl:with-param name="nodeText">
|
||||
<xsl:if test="$depth=1">
|
||||
<xsl:text>
</xsl:text>
|
||||
</xsl:if>
|
||||
<xsl:call-template
|
||||
name="spaces">
|
||||
<xsl:with-param name="count"
|
||||
select="($depth -1) * 3" />
|
||||
</xsl:call-template>
|
||||
<!-- Do we have text with a LINK attribute? -->
|
||||
<xsl:choose>
|
||||
<xsl:when test="@LINK">
|
||||
<xsl:text>* [[</xsl:text>
|
||||
<xsl:value-of
|
||||
select="@LINK" />
|
||||
<xsl:text>][</xsl:text>
|
||||
<xsl:apply-templates
|
||||
select="richcontent/html/body|@TEXT" />
|
||||
<xsl:text>]]</xsl:text>
|
||||
</xsl:when>
|
||||
<xsl:otherwise>
|
||||
<xsl:text>* </xsl:text>
|
||||
<xsl:apply-templates
|
||||
select="richcontent/html/body|@TEXT" />
|
||||
</xsl:otherwise>
|
||||
</xsl:choose>
|
||||
<xsl:text>
</xsl:text>
|
||||
</xsl:with-param>
|
||||
</xsl:apply-templates>
|
||||
</xsl:otherwise>
|
||||
</xsl:choose>
|
||||
<!-- <xsl:apply-templates select="hook|@LINK"/> -->
|
||||
<xsl:apply-templates select="node" />
|
||||
</xsl:otherwise>
|
||||
</xsl:choose>
|
||||
</xsl:template>
|
||||
<xsl:template name="spaces">
|
||||
<xsl:param name="count" select="1" />
|
||||
<xsl:if test="$count > 0">
|
||||
<xsl:text> </xsl:text>
|
||||
<xsl:call-template name="spaces">
|
||||
<xsl:with-param name="count" select="$count - 1" />
|
||||
</xsl:call-template>
|
||||
</xsl:if>
|
||||
</xsl:template>
|
||||
|
||||
<!-- hook -->
|
||||
<xsl:template match="hook" />
|
||||
|
||||
<!-- hook -->
|
||||
<xsl:template
|
||||
match="hook[@NAME='accessories/plugins/NodeNote.properties']">
|
||||
<xsl:choose>
|
||||
<xsl:when test="./text">
|
||||
<xsl:value-of select="./text" />
|
||||
</xsl:when>
|
||||
</xsl:choose>
|
||||
</xsl:template>
|
||||
|
||||
<!-- Node - Output -->
|
||||
<xsl:template match="node" mode="childoutput">
|
||||
<xsl:param name="nodeText"></xsl:param>
|
||||
<xsl:copy-of select="$nodeText" />
|
||||
</xsl:template>
|
||||
|
||||
<!-- Node Depth Mesurement -->
|
||||
<xsl:template match="node" mode="depthMesurement">
|
||||
<xsl:param name="depth" select=" '0' " />
|
||||
<xsl:apply-templates select=".."
|
||||
mode="depthMesurement">
|
||||
<xsl:with-param name="depth" select="$depth + 1" />
|
||||
</xsl:apply-templates>
|
||||
</xsl:template>
|
||||
|
||||
<!-- Map Depth Mesurement -->
|
||||
<xsl:template match="map" mode="depthMesurement">
|
||||
<xsl:param name="depth" select=" '0' " />
|
||||
<xsl:value-of select="$depth" />
|
||||
</xsl:template>
|
||||
<xsl:template match="richcontent/html/body">
|
||||
<xsl:apply-templates mode="html" />
|
||||
</xsl:template>
|
||||
<xsl:template match="text()" mode="html">
|
||||
<xsl:value-of select="normalize-space(.)" />
|
||||
</xsl:template>
|
||||
<xsl:template match="li" mode="html">
|
||||
<xsl:text> </xsl:text>
|
||||
<xsl:apply-templates mode="html" />
|
||||
</xsl:template>
|
||||
<xsl:template match="p" mode="html">
|
||||
<xsl:apply-templates mode="html" />
|
||||
</xsl:template>
|
||||
<xsl:template match="i|em" mode="html">
|
||||
<xsl:text> _</xsl:text>
|
||||
<xsl:apply-templates mode="html" />
|
||||
<xsl:text>_ </xsl:text>
|
||||
</xsl:template>
|
||||
<xsl:template match="b|strong" mode="html">
|
||||
<xsl:text> *</xsl:text>
|
||||
<xsl:apply-templates mode="html" />
|
||||
<xsl:text>* </xsl:text>
|
||||
</xsl:template>
|
||||
<xsl:template match="code" mode="html">
|
||||
<xsl:text> =</xsl:text>
|
||||
<xsl:copy-of select="." mode="html" />
|
||||
<xsl:text>= </xsl:text>
|
||||
</xsl:template>
|
||||
<xsl:template match="pre" mode="html">
|
||||
<xsl:text>
<verbatim>
</xsl:text>
|
||||
<xsl:copy-of select="." mode="html"/>
|
||||
<xsl:text>
</verbatim>
</xsl:text>
|
||||
</xsl:template>
|
||||
</xsl:stylesheet>
|
||||
|
||||
|
Binary file not shown.
Before Width: | Height: | Size: 1020 B |
Binary file not shown.
Before Width: | Height: | Size: 216 B |
@@ -1,247 +0,0 @@
|
||||
|
||||
body {
|
||||
background-color: #eeeeee;
|
||||
color: #000000;
|
||||
font-family:sans-serif;
|
||||
}
|
||||
|
||||
:link { color: #0000ff; text-decoration:none;}
|
||||
:visited { color: #6666ff; text-decoration:none; }
|
||||
a:active { color: #0000ff; text-decoration:none;}
|
||||
a:hover {color: #0000ff; text-decoration:underline; }
|
||||
|
||||
div.basetext {
|
||||
background-color:#ffffff;
|
||||
margin-top:11px;
|
||||
margin-bottom:11px;
|
||||
margin-left:1%;
|
||||
margin-right:1%;
|
||||
padding-top:11px;
|
||||
padding-left:11px;
|
||||
padding-right:11px;
|
||||
padding-bottom:11px;
|
||||
text-align:left;
|
||||
font-weight:normal;
|
||||
border-width:thin;
|
||||
border-style:solid;
|
||||
border-color:#dddddd;
|
||||
}
|
||||
|
||||
div.basetop {
|
||||
position: fixed;
|
||||
width:auto;
|
||||
height:auto;
|
||||
right:0em;
|
||||
top:0em;
|
||||
left:auto;
|
||||
top:0;
|
||||
background-color:#ffffff;
|
||||
margin-top:0;
|
||||
margin-bottom:0;
|
||||
margin-left:1%;
|
||||
margin-right:1%;
|
||||
padding-top:2px;
|
||||
padding-left:11px;
|
||||
padding-right:11px;
|
||||
padding-bottom:2px;
|
||||
text-align:left;
|
||||
font-weight:normal;
|
||||
text-align:right;
|
||||
border-width:thin;
|
||||
border-style:solid;
|
||||
border-color:#dddddd;
|
||||
}
|
||||
|
||||
h1 {
|
||||
text-align:center;
|
||||
}
|
||||
|
||||
span.h2 {
|
||||
font-family:sans-serif;
|
||||
font-weight:bold;
|
||||
}
|
||||
|
||||
div.year {
|
||||
margin-right:2%;
|
||||
background-color:#eeeeee;
|
||||
}
|
||||
|
||||
div.form {
|
||||
}
|
||||
|
||||
span.cpt {
|
||||
color:#005500;
|
||||
font-weight:bold;
|
||||
}
|
||||
|
||||
span.cm {
|
||||
color:#666666;
|
||||
}
|
||||
|
||||
.fl {
|
||||
color:#0000FF;
|
||||
font-style:italic;
|
||||
}
|
||||
|
||||
ul {
|
||||
margin-top:1px;
|
||||
margin-bottom:1px;
|
||||
margin-left:0px;
|
||||
padding-left:3%;
|
||||
}
|
||||
|
||||
li {
|
||||
list-style:outside;
|
||||
margin-top:10px;
|
||||
margin-bottom:10px;
|
||||
}
|
||||
|
||||
ul li {
|
||||
list-style:square;
|
||||
font-family:sans-serif;
|
||||
font-weight:normal;
|
||||
}
|
||||
|
||||
li.basic {
|
||||
list-style:square;
|
||||
list-style-image:none;
|
||||
margin-top:2px;
|
||||
margin-bottom:2px;
|
||||
}
|
||||
|
||||
span.links {
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
.sub { display: none; }
|
||||
.subexp {display: block; }
|
||||
.sub { display: none; }
|
||||
|
||||
.subexp {display: block; }
|
||||
|
||||
li.exp {
|
||||
list-style-image:url("plus.png");
|
||||
margin-top:10px;
|
||||
margin-bottom:10px;
|
||||
cursor:pointer;
|
||||
}
|
||||
|
||||
li.col {
|
||||
list-style-image:url("minus.png");
|
||||
margin-top:10px;
|
||||
margin-bottom:10px;
|
||||
cursor:pointer;
|
||||
}
|
||||
|
||||
li.exp_active {
|
||||
list-style-image:url("plus.png");
|
||||
margin-top:10px;
|
||||
margin-bottom:10px;
|
||||
background-color:#eeeeff;
|
||||
cursor:pointer;
|
||||
}
|
||||
|
||||
li.col_active {
|
||||
list-style-image:url("minus.png");
|
||||
margin-top:10px;
|
||||
margin-bottom:10px;
|
||||
background-color:#eeeeff;
|
||||
cursor:pointer; /* if not included, bullets are not shown right in moz*/
|
||||
}
|
||||
|
||||
|
||||
li.basic_active {
|
||||
list-style:square;
|
||||
list-style-image:none;
|
||||
background-color:#eeeeff;
|
||||
margin-top:2px;
|
||||
margin-bottom:2px;
|
||||
}
|
||||
|
||||
/* the 'boxed' and 'attributes' styles are used to display notes and attributes
|
||||
*/
|
||||
|
||||
.boxed,.nodecontent {display:inline;}
|
||||
.boxed .note-and-attributes {display:none;}
|
||||
|
||||
.boxed:hover .note-and-attributes {
|
||||
position:fixed; top:2em;right:10px;z-index:3;
|
||||
display:block;
|
||||
min-width:33%;
|
||||
max-width:60%;
|
||||
max-height:95%;
|
||||
color:black;
|
||||
background:#ffffff;
|
||||
font:normal 16px courier, sans-serif;
|
||||
border:1px solid black;
|
||||
padding:10px;
|
||||
}
|
||||
|
||||
.note:before {
|
||||
content:"NOTE: ";
|
||||
font-weight:bold;
|
||||
}
|
||||
|
||||
table.attributes {
|
||||
border-collapse:collapse;
|
||||
empty-cells:show;
|
||||
border:thin black solid;
|
||||
}
|
||||
table.attributes td,th {
|
||||
border:thin black solid;
|
||||
padding-top:2px;
|
||||
padding-bottom:2px;
|
||||
padding-left:3px;
|
||||
padding-right:3px;
|
||||
}
|
||||
table.attributes th {
|
||||
text-align:center;
|
||||
}
|
||||
table.attributes caption {
|
||||
margin-top:1em;
|
||||
font-style:italic;
|
||||
text-align:center;
|
||||
}
|
||||
/* Thanks to wolfgangradke, https://sourceforge.net/forum/message.php?msg_id=5991663 */
|
||||
div.nodecontent > p {
|
||||
margin-top:0pt;
|
||||
margin-bottom:0pt;
|
||||
display:inline;
|
||||
}
|
||||
|
||||
p + p {
|
||||
margin-top: 0.5em !important;
|
||||
display:block !important;
|
||||
}
|
||||
|
||||
/* Thanks to erne100, https://sourceforge.net/tracker/?func=detail&atid=107118&aid=2747128&group_id=7118*/
|
||||
table {
|
||||
border-collapse:collapse;
|
||||
empty-cells:show;
|
||||
border:thin black solid;
|
||||
}
|
||||
table td {
|
||||
border:thin black solid;
|
||||
padding-top:2px;
|
||||
padding-bottom:2px;
|
||||
padding-left:3px;
|
||||
padding-right:3px;
|
||||
}
|
||||
|
||||
/* Thanks to erne100, https://sourceforge.net/tracker/?func=detail&atid=107118&aid=2747000&group_id=7118*/
|
||||
ol {
|
||||
margin-top:1px;
|
||||
margin-bottom:1px;
|
||||
margin-left:0px;
|
||||
padding-left:3%;
|
||||
}
|
||||
|
||||
ol li {
|
||||
list-style:decimal;
|
||||
font-family:sans-serif;
|
||||
font-weight:normal;
|
||||
}
|
||||
|
||||
|
@@ -1,59 +0,0 @@
|
||||
<?xml version="1.0" standalone="no" ?>
|
||||
<!--
|
||||
: xbel2mm.xsl
|
||||
: XSL stylesheet to convert from XBEL to Mindmap
|
||||
:
|
||||
: This code released under the GPL.
|
||||
: (http://www.gnu.org/copyleft/gpl.html)
|
||||
:
|
||||
: William McVey <wam@wamber.net>
|
||||
: September 11, 2003
|
||||
:
|
||||
: $Id: xbel2mm.xsl,v 1.1 2003/11/03 11:02:42 sviles Exp $
|
||||
:
|
||||
-->
|
||||
|
||||
<xsl:stylesheet version="1.0"
|
||||
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
|
||||
|
||||
<xsl:strip-space elements="*" />
|
||||
<xsl:output method="xml" indent="yes" encoding="UTF-8" />
|
||||
|
||||
<xsl:template match="/xbel">
|
||||
<map>
|
||||
<node>
|
||||
<xsl:attribute name="TEXT">
|
||||
<xsl:value-of select="title" />
|
||||
</xsl:attribute>
|
||||
<xsl:apply-templates />
|
||||
</node>
|
||||
</map>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template match="folder">
|
||||
<node>
|
||||
<xsl:attribute name="TEXT">
|
||||
<xsl:value-of select="title" />
|
||||
</xsl:attribute>
|
||||
<xsl:attribute name="FOLDED">
|
||||
<xsl:value-of select="@folded" />
|
||||
</xsl:attribute>
|
||||
<xsl:apply-templates />
|
||||
</node>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template match="bookmark">
|
||||
<node>
|
||||
<xsl:attribute name="TEXT">
|
||||
<xsl:value-of select="title" />
|
||||
</xsl:attribute>
|
||||
<xsl:attribute name="LINK">
|
||||
<xsl:value-of select="@href" />
|
||||
</xsl:attribute>
|
||||
</node>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template match = "node()|@*" />
|
||||
|
||||
|
||||
</xsl:stylesheet>
|
Reference in New Issue
Block a user