PardallMarkdown.Content.Utils (PardallMarkdown v0.1.0)

Link to this section Summary

Functions

Convert map string keys to :atom keys

Transforms a source string into a taxonomy title.

Transforms a source string into a post title.

Splits a path into a tree of categories, containing both readable category names and slugs for all categories in the hierarchy. The categories list is indexed from the topmost to the lowermost in the hiearchy, example: Games > PC > RPG.

Examples

iex> PardallMarkdown.Content.Utils.extract_slug_from_path("/blog/art/3d/post.md")
"/blog/art/3d/post"

iex> PardallMarkdown.Content.Utils.extract_slug_from_path("/blog/My new Project.md")
"/blog/my-new-project"

iex> PardallMarkdown.Content.Utils.extract_slug_from_path("/blog/_index.md")
"/blog/-index"

Transforms a file name from a path into a readable post title.

Link to this section Functions

Link to this function

atomize_keys(struct)

Convert map string keys to :atom keys

Link to this function

capitalize_as_taxonomy_name(source)

Transforms a source string into a taxonomy title.

Examples

iex> PardallMarkdown.Content.Utils.capitalize_as_taxonomy_name("post-about-art")
"Post About Art"

iex> PardallMarkdown.Content.Utils.capitalize_as_taxonomy_name("3d-models")
"3D Models"

iex> PardallMarkdown.Content.Utils.capitalize_as_taxonomy_name("Products: wood-chairs")
"Products: Wood Chairs"

iex> PardallMarkdown.Content.Utils.capitalize_as_taxonomy_name("products-above-$300mm")
"Products Above $300MM"
Link to this function

capitalize_as_title(source)

Transforms a source string into a post title.

Examples

iex> PardallMarkdown.Content.Utils.capitalize_as_title("post-about-art")
"Post about art"

iex> PardallMarkdown.Content.Utils.capitalize_as_title("My new Project")
"My new Project"

iex> PardallMarkdown.Content.Utils.capitalize_as_title("2d 3D 4d-art: this is bugged, 3d should've been preserved as 3d not separate strings")
"2d 3D 4d art: this is bugged, 3d should've been preserved as 3d not separate strings"

iex> PardallMarkdown.Content.Utils.capitalize_as_title("Some Startup plans to expand quantum Platform of the Platforms with $500M investment")
"Some Startup plans to expand quantum Platform of the Platforms with $500M investment"
Link to this function

default_position()

Link to this function

default_sort_by()

Link to this function

default_sort_order()

Link to this function

extract_categories_from_path(full_path)

Splits a path into a tree of categories, containing both readable category names and slugs for all categories in the hierarchy. The categories list is indexed from the topmost to the lowermost in the hiearchy, example: Games > PC > RPG.

Also returns the level in the tree in which the category can be found, as well as all parent categories slugs recursively, where level: 0 is for root pages (i.e. no category).

TODO: For the initial purpose of this project, this solution is ok, but eventually let's implement it with a "real" tree or linked list.

Examples

iex> PardallMarkdown.Content.Utils.extract_categories_from_path("/blog/art/3d-models/post.md")
[
  %{title: "Blog", slug: "/blog", level: 0, parents: ["/"]},
  %{
    title: "Art",
    slug: "/blog/art",
    level: 1,
    parents: ["/", "/blog"]
  },
  %{
    title: "3D Models",
    slug: "/blog/art/3d-models",
    level: 2,
    parents: ["/", "/blog", "/blog/art"]
  }
]

iex> PardallMarkdown.Content.Utils.extract_categories_from_path("/blog/post.md")
[%{title: "Blog", slug: "/blog", level: 0, parents: ["/"]}]

iex> PardallMarkdown.Content.Utils.extract_categories_from_path("/post.md")
[%{title: "Home", slug: "/", level: 0, parents: ["/"]}]
Link to this function

extract_slug_from_path(path)

Examples

iex> PardallMarkdown.Content.Utils.extract_slug_from_path("/blog/art/3d/post.md")
"/blog/art/3d/post"

iex> PardallMarkdown.Content.Utils.extract_slug_from_path("/blog/My new Project.md")
"/blog/my-new-project"

iex> PardallMarkdown.Content.Utils.extract_slug_from_path("/blog/_index.md")
"/blog/-index"
Link to this function

extract_title_from_path(path)

Transforms a file name from a path into a readable post title.

Examples

iex> PardallMarkdown.Content.Utils.extract_title_from_path("/blog/art/3d/post-about-art.md")
"Post about art"

iex> PardallMarkdown.Content.Utils.extract_title_from_path("/blog/My new Project.md")
"My new Project"
Link to this function

is_datetime?(date)

Link to this function

is_index_file?(path)

Link to this function

is_path_from_static_assets?(path)

Link to this function

maybe_to_atom(val)

Link to this function

remove_root_path(path)

Link to this function

static_assets_folder_name()

Link to this function

static_assets_path()

Link to this function

taxonomy_index_file()