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

Reply via email to