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" %} {% end_post_wrap %} @@ -54,7 +54,7 @@

Latest Posts

{% post_content outer_tag="section" %} {% 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'
Test Category1
' + expected_output = f'
Test Category1
' - 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'
Test Category1
' + expected_output = f'
Test Category1
' - 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'
Test Category1
' + expected_output = f'
Test Category1
' - 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 = ( '
' - 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 @@ -64,9 +64,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 @@ -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