Skip to content

Commit 4c71375

Browse files
committed
fix(posts,page): handle path based permalinks
Fixes path based permalinks when there are multiple source directories configured
1 parent 0e1115b commit 4c71375

File tree

3 files changed

+12
-1
lines changed

3 files changed

+12
-1
lines changed

lib/tableau/extensions/common.ex

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,12 @@ defmodule Tableau.Extension.Common do
4646
def build_permalink(%{file: filename} = front_matter, config) do
4747
filename
4848
|> Path.rootname()
49-
|> String.replace_prefix(config.dir, "")
49+
|> then(fn rootname ->
50+
for dir <- List.wrap(config.dir), reduce: rootname do
51+
rootname ->
52+
String.replace_prefix(rootname, dir, "")
53+
end
54+
end)
5055
|> transform_permalink(front_matter)
5156
|> then(&Map.put(front_matter, :permalink, &1))
5257
end

test/tableau/extensions/page_extension_test.exs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -200,6 +200,9 @@ defmodule Tableau.PageExtensionTest do
200200
end
201201

202202
test "generates permalink from file path if not configured or in front matter", %{tmp_dir: dir, token: token} do
203+
assert {:ok, config} = PageExtension.config(%{dir: [dir], enabled: true})
204+
205+
token = put_in(token.extensions.pages.config, config)
203206
fancy_dir = Path.join(dir, "/some/fancy/path")
204207
File.mkdir_p!(fancy_dir)
205208

test/tableau/extensions/post_extension_test.exs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -266,6 +266,9 @@ defmodule Tableau.PostExtensionTest do
266266
end
267267

268268
test "generates permalink from file path if not configured or in front matter", %{tmp_dir: dir, token: token} do
269+
assert {:ok, config} = PostExtension.config(%{dir: [dir], enabled: true})
270+
271+
token = put_in(token.extensions.posts.config, config)
269272
fancy_dir = Path.join(dir, "/some/fancy/path")
270273
File.mkdir_p!(fancy_dir)
271274

0 commit comments

Comments
 (0)