docpad-plugin-geturl

Adds getUrl function for retreiving absolute path

npm install docpad-plugin-geturl
19 downloads in the last day
22 downloads in the last week
461 downloads in the last month

Get Url Plugin for DocPad

Take a href URL and an optional base URL and resolve them as a browser would for an anchor tag. Useful for calculating URLs relative to @site.url. See examples below.

Install

npm install --save docpad-plugin-geturl

Install for testing

git clone https://github.com/Hypercubed/docpad-plugin-geturl.git
cd docpad-plugin-geturl
npm install
make compile

Test

make test

Configuration

Requires a @site.url:

# ...
  templateData:
        site:
            url: 'http://localhost:9778'
# ...

Examples

Absolute

Call Returned
@getUrl('/') http://localhost:9778/
@getUrl('/test') http://localhost:9778/test
@getUrl('/test/') http://localhost:9778/test/
@getUrl('/test.html') http://localhost:9778/test.html

Relative

Call Returned
@getUrl('') http://localhost:9778/document.md
@getUrl('test.html') http://localhost:9778/test.html
@getUrl('../test.html') http://localhost:9778/test.html

External

Call Returned
@getUrl('//test.com') http://test.com/
@getUrl('http://test.com') http://test.com/
@getUrl('https://test.com') https://test.com/
@getUrl('test.html', 'https://test.com') https://test.com/test.html
@getUrl('../test.html', 'https://test.com/sub/') https://test.com/test.html

Objects

Call Returned
@getUrl(@document) http://localhost:9778/document.md

Arrays

Call Returned
@getUrl(['/', '/test', 'test']) http://localhost:9778/,http://localhost:9778/test,http://localhost:9778/test
@getBlock('styles').add(@getUrl(@site.styles)).toHTML() <link rel="stylesheet" href="http://localhost:9778/root_style.css&quot; /><link rel="stylesheet" href="http://localhost:9778/sub_style.css&quot; />

Arrays of objects

Call Returned
@getUrl(@getCollection('documents')) http://localhost:9778/sub/documents.md,http://localhost:9778/document.md

License

Licensed under the incredibly permissive MIT License
Copyright © 2013+ J. Harshbarger

npm loves you