This is an automated email from the ASF dual-hosted git repository. juanpablo pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/jspwiki.git
commit 33defb6d78f0e847f80803608c3047d7fbc752aa Author: juanpablo <[email protected]> AuthorDate: Wed Dec 27 23:10:51 2017 +0100 calling setUrl on attribute providers has unexpected consenquences; as the attribute providers are called a bunch of times changing the url there means, f.ex, an interwiki link suddenly is understood as an external link. So, meet JSPWikiLink, a wrapper around Link which retains the original wiki link --- .../apache/wiki/markdown/nodes/JSPWikiLink.java | 82 ++++++++++++++++++++++ .../org/apache/wiki/markdown/nodes/package.html | 34 +++++++++ 2 files changed, 116 insertions(+) diff --git a/jspwiki-markdown/src/main/java/org/apache/wiki/markdown/nodes/JSPWikiLink.java b/jspwiki-markdown/src/main/java/org/apache/wiki/markdown/nodes/JSPWikiLink.java new file mode 100755 index 0000000..d4f7667 --- /dev/null +++ b/jspwiki-markdown/src/main/java/org/apache/wiki/markdown/nodes/JSPWikiLink.java @@ -0,0 +1,82 @@ +/* + Licensed to the Apache Software Foundation (ASF) under one + or more contributor license agreements. See the NOTICE file + distributed with this work for additional information + regarding copyright ownership. The ASF licenses this file + to you under the Apache License, Version 2.0 (the + "License"); you may not use this file except in compliance + with the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, + software distributed under the License is distributed on an + "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + KIND, either express or implied. See the License for the + specific language governing permissions and limitations + under the License. + */ +package org.apache.wiki.markdown.nodes; + +import org.apache.commons.lang.StringUtils; + +import com.vladsch.flexmark.ast.Link; + + +/** + * Flexmark node responsible of handling JSPWiki links. + */ +public class JSPWikiLink extends Link { + + private final String wikiLink; + private final boolean hasRef; + + public JSPWikiLink( final Link other ) { + super( other.getChars(), + other.getTextOpeningMarker(), + other.getText(), + other.getTextClosingMarker(), + other.getLinkOpeningMarker(), + other.getUrl(), + other.getTitleOpeningMarker(), + other.getTitle(), + other.getTitleClosingMarker(), + other.getLinkClosingMarker() + ); + if( StringUtils.isEmpty( getUrl().toString() ) ) { // empty link == link.getText() is a wiki page + setUrl( getText() ); + hasRef = false; + } else { + hasRef = true; + } + + wikiLink = getUrl().toString(); + } + + /** + * {@inheritDoc} + */ + @Override + public String toStringAttributes() { + return super.toStringAttributes() + ", wikiLink=" + wikiLink + ", hasRef=" + hasRef; + } + + /** + * getter. + * + * @return wikiLink field. + */ + public String getWikiLink() { + return wikiLink; + } + + /** + * getter. + * + * @return hasRef field. + */ + public boolean hasRef() { + return hasRef; + } + +} diff --git a/jspwiki-markdown/src/main/java/org/apache/wiki/markdown/nodes/package.html b/jspwiki-markdown/src/main/java/org/apache/wiki/markdown/nodes/package.html new file mode 100755 index 0000000..f093c48 --- /dev/null +++ b/jspwiki-markdown/src/main/java/org/apache/wiki/markdown/nodes/package.html @@ -0,0 +1,34 @@ +<!-- + Licensed to the Apache Software Foundation (ASF) under one + or more contributor license agreements. See the NOTICE file + distributed with this work for additional information + regarding copyright ownership. The ASF licenses this file + to you under the Apache License, Version 2.0 (the + "License"); you may not use this file except in compliance + with the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, + software distributed under the License is distributed on an + "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + KIND, either express or implied. See the License for the + specific language governing permissions and limitations + under the License. +--> + +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> +<title>Insert title here</title> +</head> +<body> +Custom Flexmark node's to handle special JSPWiki elements. + +<h3>Package Specification</h3> + +<h3>Related Documentation</h3> + +</body> +</html> \ No newline at end of file -- To stop receiving notification emails like this one, please contact "[email protected]" <[email protected]>.
