You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by ro...@apache.org on 2018/07/24 21:57:56 UTC

[sling-whiteboard] 01/04: Ensure that index.md files take precedence over other files.

This is an automated email from the ASF dual-hosted git repository.

rombert pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/sling-whiteboard.git

commit aa03cb604a31224678a20958ca3bdb2dee5b31aa
Author: Robert Munteanu <ro...@localhost>
AuthorDate: Tue Jul 24 23:28:18 2018 +0200

    Ensure that index.md files take precedence over other files.
---
 .../mdresource/impl/MarkdownResourceProvider.java   | 21 +++++++++++++--------
 1 file changed, 13 insertions(+), 8 deletions(-)

diff --git a/mdresourceprovider/src/main/java/org/apache/sling/mdresource/impl/MarkdownResourceProvider.java b/mdresourceprovider/src/main/java/org/apache/sling/mdresource/impl/MarkdownResourceProvider.java
index 3e30f52..159d205 100644
--- a/mdresourceprovider/src/main/java/org/apache/sling/mdresource/impl/MarkdownResourceProvider.java
+++ b/mdresourceprovider/src/main/java/org/apache/sling/mdresource/impl/MarkdownResourceProvider.java
@@ -78,13 +78,13 @@ public class MarkdownResourceProvider extends ResourceProvider<Object> {
         
         log.info("getResource(" + path + ")");
         
-        // try .md file first
-        Path filePath = Paths.get(fsPath, path + ".md");
+        // try index.md file first
+        Path filePath = Paths.get(fsPath, path, "index.md");
         File backingFile = filePath.toFile();
         if ( !backingFile.exists() ) {
             log.info("File at " + filePath + " does not exist");
-            // try /index.md next
-            filePath = Paths.get(fsPath, path, "index.md");
+            // try direct file .md next
+            filePath = Paths.get(fsPath, path + ".md");
             backingFile = filePath.toFile();
             if ( !backingFile.exists() ) {
                 log.info("File at " + filePath + " does not exist");
@@ -117,10 +117,7 @@ public class MarkdownResourceProvider extends ResourceProvider<Object> {
 
     private Resource asResource(Path path, Path parent, ResolveContext<Object> ctx) {
         File backingFile = path.toFile();
-        if ( backingFile.isFile() && backingFile.canRead() && backingFile.getName().endsWith(".md") && !backingFile.getName().equals("index.md")) {
-            return asResource0(path, parent, ctx, backingFile);
-        }
-        
+
         if ( backingFile.isDirectory() ) {
             backingFile = new File(backingFile, "index.md");
             if ( backingFile.exists() && backingFile.canRead() ) {
@@ -128,6 +125,14 @@ public class MarkdownResourceProvider extends ResourceProvider<Object> {
             }
         }
         
+        if ( backingFile.isFile() && backingFile.canRead() && backingFile.getName().endsWith(".md") && !backingFile.getName().equals("index.md")) {
+        	Path potentialDirectory = Paths.get(backingFile.getAbsolutePath().substring(0, backingFile.getAbsolutePath().length() - ".md".length() ));
+        	if ( potentialDirectory.resolve("index.md").toFile().exists() ) {
+        		return null;
+        	}
+            return asResource0(path, parent, ctx, backingFile);
+        }
+        
         return null;
     }