⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 xhtmlelementtowikitranslator.java

📁 jspwiki source code,jspwiki source code
💻 JAVA
📖 第 1 页 / 共 3 页
字号:
                    if( !m_preStack.isPreMode() )                    {                        print( " " );                    }                }                else if( n.equals( "a" ) )                {                    if( !isIgnorableWikiMarkupLink( e ) )                    {                        if( e.getChild( "IMG" ) != null )                        {                            printImage( e );                        }                        else                        {                            String ref = e.getAttributeValue( "href" );                            if( ref == null )                            {                                if( isUndefinedPageLink( e ) )                                {                                    m_out.print( "[" );                                    print( e );                                    m_out.print( "]" );                                }                                else                                {                                    print( e );                                }                            }                            else                            {                                ref = trimLink( ref );                                if( ref != null )                                {                                    if( ref.startsWith( "#" ) )                                    {                                        print( e );                                    }                                    else                                    {                                        Map augmentedWikiLinkAttributes = getAugmentedWikiLinkAttributes( e );                                        m_out.print( "[" );                                        print( e );                                        if( !e.getTextTrim().equalsIgnoreCase( ref ) )                                        {                                            m_out.print( "|" );                                            print( ref );                                            if( !augmentedWikiLinkAttributes.isEmpty() )                                            {                                                m_out.print( "|" );                                                String augmentedWikiLink = augmentedWikiLinkMapToString( augmentedWikiLinkAttributes );                                                m_out.print( augmentedWikiLink );                                            }                                        }                                        else if( !augmentedWikiLinkAttributes.isEmpty() )                                        {                                            // If the ref has the same value as the text and also if there                                            // are attributes, then just print: [ref|ref|attributes] .                                            m_out.print( "|" + ref + "|" );                                            String augmentedWikiLink = augmentedWikiLinkMapToString( augmentedWikiLinkAttributes );                                            m_out.print( augmentedWikiLink );                                        }                                        m_out.print( "]" );                                    }                                }                            }                        }                    }                }                else if( n.equals( "b" ) || n.equals("strong") )                {                    m_out.print( "__" );                    print( e );                    m_out.print( "__" );                }                else if( n.equals( "i" ) || n.equals("em") || n.equals( "address" ) )                {                    m_out.print( "''" );                    print( e );                    m_out.print( "''" );                }                else if( n.equals( "u" ) )                {                    m_out.print( "%%( text-decoration:underline; )" );                    print( e );                    m_out.print( "%%" );                }                else if( n.equals( "strike" ) )                {                    m_out.print( "%%strike " );                    print( e );                    m_out.print( "%%" );                    // NOTE: don't print a space before or after the double percents because that can break words into two.                    // For example: %%(color:red)ABC%%%%(color:green)DEF%% is different from %%(color:red)ABC%% %%(color:green)DEF%%                }                else if( n.equals( "sup" ) )                {                    m_out.print( "%%sup " );                    print( e );                    m_out.print( "%%" );                }                else if( n.equals( "sub" ) )                {                    m_out.print( "%%sub " );                    print( e );                    m_out.print( "%%" );                }                else if( n.equals("dl") )                {                    m_out.print( "\n" );                    print( e );                    // print a newline after the definition list. If we don't,                    // it may cause problems for the subsequent element.                    m_out.print( "\n" );                }                else if( n.equals("dt") )                {                    m_out.print( ";" );                    print( e );                }                else if( n.equals("dd") )                {                    m_out.print( ":" );                    print( e );                }                else if( n.equals( "ul" ) )                {                    m_out.println();                    m_liStack.push( "*" );                    print( e );                    m_liStack.pop();                }                else if( n.equals( "ol" ) )                {                    m_out.println();                    m_liStack.push( "#" );                    print( e );                    m_liStack.pop();                }                else if( n.equals( "li" ) )                {                    m_out.print( m_liStack + " " );                    print( e );                    // The following line assumes that the XHTML has been "pretty-printed"                    // (newlines separate child elements from their parents).                    boolean lastListItem = base.indexOf( e ) == ( base.getContentSize() - 2 );                    boolean sublistItem = m_liStack.toString().length() > 1;                    // only print a newline if this <li> element is not the last item within a sublist.                    if( !sublistItem || !lastListItem )                    {                        m_out.println();                    }                }                else if( n.equals( "pre" ) )                {                    m_out.print( "\n{{{\n" ); // start JSPWiki "code blocks" on its own line                    m_preStack.push();                    print( e );                    m_preStack.pop();                    // print a newline before the closing braces for aesthetics and a newline after it                    // to avoid breaking any subsequent wiki markup that follows.                    m_out.print( "\n}}}\n" );                }                else if( n.equals( "code" ) || n.equals( "tt" ) )                {                    m_out.print( "{{" );                    m_preStack.push();                    print( e );                    m_preStack.pop();                    m_out.print( "}}" );                    // NOTE: don't print a newline after the closing brackets because if the Text is inside                    // a table or list, it would break it if there was a subsequent row or list item.                }                else if( n.equals( "img" ) )                {                    if( !isIgnorableWikiMarkupLink( e ) )                    {                        m_out.print( "[" );                        print( trimLink( e.getAttributeValue( "src" ) ) );                        m_out.print( "]" );                    }                }                else if( n.equals( "form" ) )                {                    // remove the hidden input where name="formname" since a new one will be generated again when the xhtml is rendered.                    Element formName = (Element)XPath.selectSingleNode( e, "INPUT[@name='formname']" );                    if( formName != null )                    {                        formName.detach();                    }                    String name = e.getAttributeValue( "name" );                    m_out.print( "\n[{FormOpen" );                    if( name != null )                    {                        m_out.print( " form='" + name + "'" );                    }                    m_out.print( "}]\n" );                    print( e );                    m_out.print( "\n[{FormClose}]\n" );                }                else if( n.equals( "input" ) )                {                    String type = e.getAttributeValue( "type" );                    String name = e.getAttributeValue( "name" );                    String value = e.getAttributeValue( "value" );                    String checked = e.getAttributeValue( "checked" );                    m_out.print( "[{FormInput" );                    if( type != null )                    {                        m_out.print( " type='" + type + "'" );                    }                    if( name != null )                    {                        // remove the "nbf_" that was prepended since new one will be generated again when the xhtml is rendered.                        if( name.startsWith( "nbf_" ) )                        {                            name = name.substring( 4, name.length( ));                        }                        m_out.print( " name='" + name + "'" );                    }                    if( value != null && !value.equals( "" ) )                    {                        m_out.print( " value='" + value + "'" );                    }                    if( checked != null )                    {                        m_out.print( " checked='" + checked + "'" );                    }                    m_out.print( "}]" );                    print( e );                }                else if( n.equals( "textarea" ) )                {                    String name = e.getAttributeValue( "name" );                    String rows = e.getAttributeValue( "rows" );                    String cols = e.getAttributeValue( "cols" );                    m_out.print( "[{FormTextarea" );                    if( name != null )                    {                        if( name.startsWith( "nbf_" ) )                        {                            name = name.substring( 4, name.length( ));                        }                        m_out.print( " name='" + name + "'" );                    }                    if( rows != null )                    {                        m_out.print( " rows='" + rows + "'" );                    }                    if( cols != null )                    {                        m_out.print( " cols='" + cols + "'" );                    }                    m_out.print( "}]" );                    print( e );                }                else if( n.equals( "select" ) )                {                    String name = e.getAttributeValue( "name" );                    m_out.print( "[{FormSelect" );                    if( name != null )                    {                        if( name.startsWith( "nbf_" ) )                        {                            name = name.substring( 4, name.length( ));                        }                        m_out.print( " name='" + name + "'" );                    }                    m_out.print( " value='" );                    print( e );                    m_out.print( "'}]" );                }                else if( n.equals( "option" ) )                {                    // If this <option> element isn't the second child element within the parent <select>                    // element, then we need to print a semicolon as a separator. (The first child element                    // is expected to be a newline character which is at index of 0).                    if( base.indexOf( e ) != 1 )                    {                        m_out.print( ";" );                    }                    Attribute selected = e.getAttribute( "selected" );                    if( selected !=  null )                    {                        m_out.print( "*" );                    }                    String value = e.getAttributeValue( "value" );                    if( value != null )                    {                        m_out.print( value );                    }                    else                    {                        print( e );                    }                }                else                {                    print( e );                }            }            else            {                print( c );            }        }    }    @SuppressWarnings("unchecked")    private void printImage( Element base ) throws JDOMException    {        Element child = (Element)XPath.selectSingleNode( base, "TBODY/TR/TD/*" );        if( child == null )        {            child = base;        }        Element img;        String href;        Map<Object,Object> map = new ForgetNullValuesLinkedHashMap();        if( child.getName().equals( "A" ) )        {            img = child.getChild( "IMG" );            href = child.getAttributeValue( "href" );        }        else        {            img = child;            href = null;        }        if( img == null )        {            return;        }

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -