summaryrefslogtreecommitdiffhomepage
path: root/docs/content/extras/localfiles.md
diff options
context:
space:
mode:
Diffstat (limited to 'docs/content/extras/localfiles.md')
-rw-r--r--docs/content/extras/localfiles.md57
1 files changed, 57 insertions, 0 deletions
diff --git a/docs/content/extras/localfiles.md b/docs/content/extras/localfiles.md
new file mode 100644
index 000000000..28b611870
--- /dev/null
+++ b/docs/content/extras/localfiles.md
@@ -0,0 +1,57 @@
+---
+aliases:
+- /doc/localfiles/
+lastmod: 2016-09-12
+date: 2015-06-12
+menu:
+ main:
+ parent: extras
+next: /extras/urls
+notoc: true
+prev: /extras/toc
+title: Traversing Local Files
+---
+## Traversing Local Files
+
+Using Hugo's function `readDir`,
+you can traverse your web site's files on your server.
+## Using _readDir_
+
+The `readDir` function returns an array
+of [`os.FileInfo`](https://golang.org/pkg/os/#FileInfo).
+It takes a single, string argument: a path.
+This path can be to any directory of your web site
+(as found on your server's filesystem).
+
+Whether the path is absolute or relative makes no difference,
+because—at least for `readDir`—the root of your web site (typically `./public/`)
+in effect becomes both:
+
+1. The filesystem root; and
+1. The current working directory.
+
+## New Shortcode
+
+So, let's create a new shortcode using `readDir`:
+
+**layouts/shortcodes/directoryindex.html**
+```html
+{{< readfile "layouts/shortcodes/directoryindex.html" >}}
+```
+For the files in any given directory,
+this shortcode usefully lists their basenames and sizes,
+while providing links to them.
+
+Already&mdash;actually&mdash;this shortcode
+has been included in this very web site.
+So, let's list some of its CSS files.
+(If you click on their names, you can reveal the contents.)
+{{< directoryindex path="/static/css" pathURL="/css" >}}
+<br />
+This is the call that rendered the above output:
+```html
+{{</* directoryindex path="/static/css" pathURL="/css" */>}}
+```
+By the way,
+regarding the pathURL argument, the initial slash `/` is important.
+Otherwise, it becomes relative to the current web page.