Использование пользовательских шрифтов в TinyMCE API для редактора в админке django
Я пытаюсь использовать TinyMCE API в админке Django для редактирования записей в блоге.
Он работает безупречно. Однако теперь я хочу добавить пользовательские шрифты в мой редактор.
Согласно tinymce документации для добавления пользовательских шрифтов я выполнил все шаги, но все еще не могу понять, что не так.
Шаг-1: Добавьте шрифты в соответствии с опциями меню
admin/base.html:
font_formats:"Andale Mono=andale mono,times; ........ ; Montserrat = Montserrat , sans-serif",`
Шаг-2: Импорт шрифтов в tinymce
admin/base.html:
{% extends "admin/base.html" %}
{% load static %}
{% block footer %}
tinymce.init({
....
content_css: "{% static "TinyMCE/style.css" %}",
content_style:"@importurl('https://fonts.googleapis.com/css2family=Montserrat:ital,wght@0,400;0,600;1,400&display=swap');",
....
{% endblock %}
TinyMCE/style.css
@import url('https://fonts.googleapis.com/css2family=Montserrat:ital,wght@0,400;0,600;1,400&display=swap');
моментальный снимок: пользовательский шрифт добавлен в выпадающее меню 'Monstserrat'
Шаг 3: Импортируйте шрифт на страницу
admin/base.html
{% block extrahead %}
<style>
@import url('https://fonts.googleapis.com/css2?family=Montserrat:ital,wght@0,400;0,600;1,400&display=swap');
* {font-family : 'Montserrat', sans-serif;}
</style>
{% endblock %}
моментальный снимок: в выпадающем списке пользовательский шрифт меняется с fallback-шрифта на 'Monstserrat'
Шаг 4: Импорт шрифта на любые опубликованные страницы Я использую tailwind в своем проекте, и мой шрифт по умолчанию - Monstserrat, который отлично работает на сайте
style.css
@import url('https://fonts.googleapis.com/css2?family=Montserrat:ital,wght@0,400;0,600;1,400&display=swap');
body{
font-family: Montserrat, sans-serif;
}
Проблема:
- Хотя я вижу пользовательский шрифт 'Montserrat' в выпадающем списке редактора tincymce, но при выборе он возвращается к sans-serf. Вы можете посмотреть сниппет здесь .
Обратите внимание, что я не использую пакет django-tinymce, а использую API tinymce.
Шаг-1:
Убрать пробел между шрифтами
Montserrat=Montserrat,sans-serif
Это связано с тем, что font-family: 'Montserrat'
будет отображаться правильно, а с пробелом font-family: ' Montserrat'
не отображается. В случае пробела шрифт не будет загружаться в браузер.
Шаг-2:
Нам не нужно указывать content_style
после того, как мы указали content_css
. В некоторых случаях это может быть полезно, но в данном случае нет смысла добавлять оба тега. Плюс добавьте тег {% load static %}
перед вашим скриптом
{% extends "admin/base.html" %}
{% load static %}
{% block footer %}
{{ block.super }}
{% load static %}
<script>
tinymce.init({
....
content_css: '{% static "TinyMCE/style.css" %}',
....
{% endblock %}
Моя проблема решена. Дайте мне знать, если у вас есть какие-либо вопросы.