Add mindjet support.

This commit is contained in:
Paulo Gustavo Veiga
2013-03-29 11:28:26 -03:00
parent fcb99490d8
commit ed508d646c
134 changed files with 22707 additions and 3102 deletions

View File

@@ -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.

View File

@@ -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-')) &lt; 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

View File

@@ -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

View File

@@ -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>

View File

@@ -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>&#xA;</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>&#xA;</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>&#xA;</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>

View File

@@ -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>&#xA;&#xA;%TOC%&#xA;&#xA;</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>&#xA;&#xA;</xsl:text>
<xsl:apply-templates select="hook" />
<xsl:apply-templates select="node" />
</xsl:when>
<xsl:when test="$depth=1">
<xsl:text>&#xA;</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>&#xA;&#xA;</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>&#xA;</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>&#xA;</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>&#xA;&lt;verbatim&gt;&#xA;</xsl:text>
<xsl:copy-of select="." mode="html"/>
<xsl:text>&#xA;&lt;/verbatim&gt;&#xA;</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

View File

@@ -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;
}

View File

@@ -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>