diff --git a/docs/templatetags.md b/docs/templatetags.md
index eb7037a..5ddd343 100644
--- a/docs/templatetags.md
+++ b/docs/templatetags.md
@@ -873,7 +873,7 @@ Outputs:
Posts that 'Sam Jones' wrote
```
-## post_categories_link
+## post_categories
Returns a list of links to the categories of the current post.
@@ -892,7 +892,7 @@ An HTML string containing a list of category links for the current post.
Just the tag with no arguments:
```django
-{% post_categories_link %}
+{% post_categories %}
```
Outputs:
@@ -908,7 +908,7 @@ Outputs:
The tag with all options provided as arguments and using a `div` for the outer tag:
```django
-{% post_categories_link outer="div" outer_class="post-categories" link_class="category-link" %}
+{% post_categories outer="div" outer_class="post-categories" link_class="category-link" %}
```
Outputs the following HTML:
@@ -922,7 +922,7 @@ Outputs the following HTML:
The tag with a `span` for the outer tag:
```django
-{% post_categories_link outer="span" %}
+{% post_categories outer="span" %}
```
Outputs the following HTML:
diff --git a/src/djpress/templates/djpress/index.html b/src/djpress/templates/djpress/index.html
index 47a7096..eaba0a3 100644
--- a/src/djpress/templates/djpress/index.html
+++ b/src/djpress/templates/djpress/index.html
@@ -33,7 +33,7 @@ {% blog_title_link %}
{% post_content outer_tag="section" %}
- Categories: {% post_categories_link "span" "badge" %}
+ Categories: {% post_categories "span" "badge" %}
{% end_post_wrap %}
@@ -54,7 +54,7 @@ Latest Posts
{% post_content outer_tag="section" %}
- Categories: {% post_categories_link "span" "badge" %}
+ Categories: {% post_categories "span" "badge" %}
{% end_post_wrap %}
diff --git a/src/djpress/templatetags/djpress_tags.py b/src/djpress/templatetags/djpress_tags.py
index a488af5..d852cd3 100644
--- a/src/djpress/templatetags/djpress_tags.py
+++ b/src/djpress/templatetags/djpress_tags.py
@@ -649,7 +649,7 @@ def author_name(
@register.simple_tag(takes_context=True)
-def post_categories_link(
+def post_categories(
context: Context,
outer: str = "ul",
outer_class: str = "",
diff --git a/src/djpress/templatetags/helpers.py b/src/djpress/templatetags/helpers.py
index f371f15..03b01c8 100644
--- a/src/djpress/templatetags/helpers.py
+++ b/src/djpress/templatetags/helpers.py
@@ -66,7 +66,19 @@ def category_link(category: Category, link_class: str = "") -> str:
"""
category_url = category.url
- link_class_html = f' class="{link_class}"' if link_class else ""
+ link_classes = ""
+
+ # Add p-category if microformats are enabled
+ if djpress_settings.MICROFORMATS_ENABLED:
+ link_classes += "p-category "
+
+ # Add the user-defined link class
+ link_classes += link_class
+
+ # Trim any trailing spaces
+ link_classes = link_classes.strip()
+
+ link_class_html = f' class="{link_classes}"' if link_classes else ""
return (
f'{category1.title} '
+ expected_output = f'{category1.title} '
+ assert djpress_tags.post_category_link(category1) == expected_output
+
+ # disable microformats
+ settings.DJPRESS_SETTINGS["MICROFORMATS_ENABLED"] = False
+ expected_output = f'{category1.title} '
assert djpress_tags.post_category_link(category1) == expected_output
@@ -316,8 +321,13 @@ def test_post_category_link_with_category_path_with_one_link_class(settings, cat
assert settings.DJPRESS_SETTINGS["CATEGORY_ENABLED"] is True
assert settings.DJPRESS_SETTINGS["CATEGORY_PREFIX"] == "test-url-category"
- expected_output = f'{category1.title} '
+ expected_output = f'{category1.title} '
+ assert djpress_tags.post_category_link(category1, "class1") == expected_output
+
+ # disable microformats
+ settings.DJPRESS_SETTINGS["MICROFORMATS_ENABLED"] = False
+ expected_output = f'{category1.title} '
assert djpress_tags.post_category_link(category1, "class1") == expected_output
@@ -327,7 +337,7 @@ def test_post_category_link_with_category_path_with_two_link_classes(settings, c
assert settings.DJPRESS_SETTINGS["CATEGORY_ENABLED"] is True
assert settings.DJPRESS_SETTINGS["CATEGORY_PREFIX"] == "test-url-category"
- expected_output = f'{category1.title} '
+ expected_output = f'{category1.title} '
assert djpress_tags.post_category_link(category1, "class1 class2") == expected_output
@@ -596,23 +606,23 @@ def test_post_categories(settings, test_post1):
# Confirm settings are set according to settings_testing.py
assert settings.DJPRESS_SETTINGS["CATEGORY_PREFIX"] == "test-url-category"
- expected_output = f''
+ expected_output = f''
- assert djpress_tags.post_categories_link(context) == expected_output
+ assert djpress_tags.post_categories(context) == expected_output
def test_post_categories_none_post_context():
context = Context({"post": None})
expected_output = ""
- assert djpress_tags.post_categories_link(context) == expected_output
+ assert djpress_tags.post_categories(context) == expected_output
def test_post_categories_no_post_context():
context = Context({"foo": None})
expected_output = ""
- assert djpress_tags.post_categories_link(context) == expected_output
+ assert djpress_tags.post_categories(context) == expected_output
@pytest.mark.django_db
@@ -621,7 +631,7 @@ def test_post_categories_no_categories_context(test_post1):
context = Context({"post": test_post1})
expected_output = ""
- assert djpress_tags.post_categories_link(context) == expected_output
+ assert djpress_tags.post_categories(context) == expected_output
@pytest.mark.django_db
@@ -631,9 +641,9 @@ def test_post_categories_ul(settings, test_post1):
# Confirm settings are set according to settings_testing.py
assert settings.DJPRESS_SETTINGS["CATEGORY_PREFIX"] == "test-url-category"
- expected_output = f''
+ expected_output = f''
- assert djpress_tags.post_categories_link(context, "ul") == expected_output
+ assert djpress_tags.post_categories(context, "ul") == expected_output
@pytest.mark.django_db
@@ -643,9 +653,9 @@ def test_post_categories_ul_class1(settings, test_post1):
# Confirm settings are set according to settings_testing.py
assert settings.DJPRESS_SETTINGS["CATEGORY_PREFIX"] == "test-url-category"
- expected_output = f''
+ expected_output = f''
- assert djpress_tags.post_categories_link(context, outer="ul", link_class="class1") == expected_output
+ assert djpress_tags.post_categories(context, outer="ul", link_class="class1") == expected_output
@pytest.mark.django_db
@@ -655,9 +665,9 @@ def test_post_categories_ul_class1_class2(settings, test_post1):
# Confirm settings are set according to settings_testing.py
assert settings.DJPRESS_SETTINGS["CATEGORY_PREFIX"] == "test-url-category"
- expected_output = f''
+ expected_output = f''
- assert djpress_tags.post_categories_link(context, outer="ul", link_class="class1 class2") == expected_output
+ assert djpress_tags.post_categories(context, outer="ul", link_class="class1 class2") == expected_output
@pytest.mark.django_db
@@ -667,9 +677,9 @@ def test_post_categories_div(settings, test_post1):
# Confirm settings are set according to settings_testing.py
assert settings.DJPRESS_SETTINGS["CATEGORY_PREFIX"] == "test-url-category"
- expected_output = f''
+ expected_output = f''
- assert djpress_tags.post_categories_link(context, outer="div") == expected_output
+ assert djpress_tags.post_categories(context, outer="div") == expected_output
@pytest.mark.django_db
@@ -679,9 +689,9 @@ def test_post_categories_div_class1(settings, test_post1):
# Confirm settings are set according to settings_testing.py
assert settings.DJPRESS_SETTINGS["CATEGORY_PREFIX"] == "test-url-category"
- expected_output = f''
+ expected_output = f''
- assert djpress_tags.post_categories_link(context, outer="div", link_class="class1") == expected_output
+ assert djpress_tags.post_categories(context, outer="div", link_class="class1") == expected_output
@pytest.mark.django_db
@@ -691,9 +701,9 @@ def test_post_categories_div_class1_class2(settings, test_post1):
# Confirm settings are set according to settings_testing.py
assert settings.DJPRESS_SETTINGS["CATEGORY_PREFIX"] == "test-url-category"
- expected_output = f''
+ expected_output = f''
- assert djpress_tags.post_categories_link(context, outer="div", link_class="class1 class2") == expected_output
+ assert djpress_tags.post_categories(context, outer="div", link_class="class1 class2") == expected_output
@pytest.mark.django_db
@@ -703,9 +713,9 @@ def test_post_categories_span(settings, test_post1):
# Confirm settings are set according to settings_testing.py
assert settings.DJPRESS_SETTINGS["CATEGORY_PREFIX"] == "test-url-category"
- expected_output = f'Test Category1 '
+ expected_output = f'Test Category1 '
- assert djpress_tags.post_categories_link(context, outer="span") == expected_output
+ assert djpress_tags.post_categories(context, outer="span") == expected_output
@pytest.mark.django_db
@@ -715,9 +725,9 @@ def test_post_categories_span_class1(settings, test_post1):
# Confirm settings are set according to settings_testing.py
assert settings.DJPRESS_SETTINGS["CATEGORY_PREFIX"] == "test-url-category"
- expected_output = f'Test Category1 '
+ expected_output = f'Test Category1 '
- assert djpress_tags.post_categories_link(context, outer="span", link_class="class1") == expected_output
+ assert djpress_tags.post_categories(context, outer="span", link_class="class1") == expected_output
@pytest.mark.django_db
@@ -727,9 +737,9 @@ def test_post_categories_span_class1_class2(settings, test_post1):
# Confirm settings are set according to settings_testing.py
assert settings.DJPRESS_SETTINGS["CATEGORY_PREFIX"] == "test-url-category"
- expected_output = f'Test Category1 '
+ expected_output = f'Test Category1 '
- assert djpress_tags.post_categories_link(context, outer="span", link_class="class1 class2") == expected_output
+ assert djpress_tags.post_categories(context, outer="span", link_class="class1 class2") == expected_output
@pytest.mark.django_db
diff --git a/tests/test_templatetags_helpers.py b/tests/test_templatetags_helpers.py
index ec8f4f9..19b878e 100644
--- a/tests/test_templatetags_helpers.py
+++ b/tests/test_templatetags_helpers.py
@@ -25,9 +25,9 @@ def test_categories_html(category1, category2, category3):
link_class = "category"
expected_output = (
'"
)
assert categories_html(categories, outer=outer, outer_class=outer_class, link_class=link_class) == expected_output
@@ -38,9 +38,9 @@ def test_categories_html(category1, category2, category3):
link_class = ""
expected_output = (
""
)
assert categories_html(categories, outer=outer, outer_class=outer_class, link_class=link_class) == expected_output
@@ -51,9 +51,9 @@ def test_categories_html(category1, category2, category3):
link_class = "category"
expected_output = (
'"
)
assert categories_html(categories, outer=outer, outer_class=outer_class, link_class=link_class) == expected_output
@@ -64,9 +64,9 @@ def test_categories_html(category1, category2, category3):
link_class = ""
expected_output = (
""
)
assert categories_html(categories, outer=outer, outer_class=outer_class, link_class=link_class) == expected_output
@@ -77,9 +77,9 @@ def test_categories_html(category1, category2, category3):
link_class = "category"
expected_output = (
''
- f'{category1.title} , '
- f'{category2.title} , '
- f'{category3.title} '
+ f'{category1.title} , '
+ f'{category2.title} , '
+ f'{category3.title} '
" "
)
assert categories_html(categories, outer=outer, outer_class=outer_class, link_class=link_class) == expected_output
@@ -90,9 +90,9 @@ def test_categories_html(category1, category2, category3):
link_class = ""
expected_output = (
""
- f'{category1.title} , '
- f'{category2.title} , '
- f'{category3.title} '
+ f'{category1.title} , '
+ f'{category2.title} , '
+ f'{category3.title} '
" "
)
assert categories_html(categories, outer=outer, outer_class=outer_class, link_class=link_class) == expected_output
@@ -104,12 +104,12 @@ def testcategory_link(category1):
# Test case 1 - no link class
link_class = ""
- expected_output = f'{category1.title} '
+ expected_output = f'{category1.title} '
assert category_link(category1, link_class) == expected_output
# Test case 2 - with link class
link_class = "category-class"
- expected_output = f'{category1.title} '
+ expected_output = f'{category1.title} '
assert category_link(category1, link_class) == expected_output