-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
POC: For Style Plugin, Support Automatic Tag
- Loading branch information
1 parent
d773289
commit 711acfd
Showing
4 changed files
with
94 additions
and
2 deletions.
There are no files selected for viewing
Submodule djangocms-bootstrap4
added at
21db69
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,23 @@ | ||
{% load preferred_tag_for_class %} | ||
|
||
{# SEE: https://github.com/django-cms/djangocms-style/blob/9e9ba9f/djangocms_style/templates/djangocms_style/default/style.html #} | ||
|
||
{# FAQ: CMS editor may not choose a semantic tag, so we'll do it for them #} | ||
{% load cms_tags %}<{# NOTE: (Begin) Change from original #}{% spaceless %} | ||
{{ instance.tag_type|preferred_tag_for_class:instance.class_name }}{% endspaceless %}{# NOTE: (End) Change from original #} {% spaceless %} | ||
{% endspaceless %}{% if instance.id_name %}id="{{ instance.id_name }}" {% endif %}{% spaceless %} | ||
{% endspaceless %}{% if instance.class_name or instance.additional_classes %}class="{% spaceless %} | ||
{{ instance.class_name }} {{ instance.get_additional_classes }} | ||
{% endspaceless %}"{% endif %}{% spaceless %} | ||
{% endspaceless %}{% if inline_styles %} style="{{ inline_styles }}"{% endif %}{% if instance.attributes_str %} {{ instance.attributes_str }}{% endif %}>{% for plugin in instance.child_plugin_instances %}{% render_plugin plugin %}{% endfor %}</{# NOTE: (Begin) Change from original #}{{ instance.tag_type|preferred_tag_for_class:instance.class_name }}{# NOTE: (End) Change from original #}>{% comment %} | ||
# The formatting of this file is very specific to remove unnecessary whitespaces | ||
# Available variables: | ||
{{ instance.label }} | ||
{{ instance.tag_type }} | ||
{{ instance.class_name }} | ||
{{ instance.additional_classes }} or {{ instance.get_additional_classes }} | ||
{{ instance.id_name }} | ||
{{ instance.attributes_str }} | ||
{{ instance.padding_top|right|bottom|left }} or {{ inline_styles }} | ||
{{ instance.margin_top|right|bottom|left }} oe {{ inline_styles }} | ||
{% endcomment %} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,38 @@ | ||
from django import template | ||
|
||
from django.conf import settings | ||
|
||
register = template.Library() | ||
|
||
def preferred_tag_for_class(tag, classname): | ||
""" | ||
Custom Template Tag Filter `preferred_tag_for_class` | ||
Use: Get the preferred HTML tag to use for a given class | ||
Load custom tag into template: | ||
{% load preferred_tag_for_class %} | ||
Template inline usage: | ||
{% fallback_tag|preferred_tag_for_class:classname %} | ||
Example: | ||
{% with tag=instance.tag_type|preferred_tag_for_class:classname %} | ||
<{{ tag }}">{% instance.tag_type %}</{{ tag }}> | ||
{% endwith %} | ||
""" | ||
new_tag = tag | ||
|
||
# If user chose div, they | ||
if (tag == settings.DJANGOCMS_STYLE_TAGS_DEFAULT): | ||
if (classname == 'o-section o-section--style-light' or | ||
classname == 'o-section o-section--style-dark'): | ||
new_tag = 'section' | ||
elif (classname == 'c-callout' or | ||
classname == 'c-recognition c-recognition--style-light' or | ||
classname == 'c-recognition c-recognition--style-dark'): | ||
new_tag = 'aside' | ||
|
||
return new_tag | ||
|
||
register.filter('preferred_tag_for_class', preferred_tag_for_class) |