gpt4 book ai didi

wagtail - 从 Wagtail RichTextField 链接选择器中删除 "Internal link"选项

转载 作者:行者123 更新时间:2023-12-02 14:21:45 25 4
gpt4 key购买 nike

我的公司将 Wagtail 作为 headless API 运行,更多地使用它来存储部分内容而不是整个页面。因此,偶尔会有一些功能对我们来说没有意义。在本例中,它是“内部链接”功能。由于我们本身不管理“页面”,因此我想从富文本字段上的选择器中删除此选项,如下所示。

enter image description here

我已经确定了几个可以覆盖以删除此功能的管理模板,但我想首先看看是否有一些东西可以简单地禁用此“内部链接”选项,以便它甚至不会显示。

_link_types.html template允许我删除内部链接作为一个选项,但看起来 Wagtail 默认为内部链接,这意味着即使该选项消失,内部链接选择器仍然会显示。除了可以关闭的简单选项之外,我应该在哪里寻找外部链接的默认选择?

最佳答案

下面是一种方法,感觉有点老套,如果有一种更自然的方法来做到这一点那就太好了,但希望这会有所帮助。

请参阅文档以了解 Wagtail Hooks 的说明.

第 1 步 - 隐藏内部链接选项

  • 使用钩子(Hook) insert_editor_css注入(inject)一些CSS来“隐藏”第一个链接。
  • 这与您尝试的 _link_types 模板覆盖实现了相同的目标,但仅限于编辑器模式。
  • 这很重要,因为您希望避免破坏“移动页面”和显示页面选择器的场景。 CSS 感觉有点老套,但希望能完成工作。

第 2 步 - 将模式的内部链接选项覆盖为外部链接

  • 使用钩子(Hook) insert_editor_js覆盖 window.chooserUrls.pageChooser 值,这将再次仅出现在编辑器页面上并且仅适用于模式。
  • 将此值设置为您想要的新“默认值”,在下面的代码中,我们已将其设置为外部链接选项。
  • 您可以在editor_js.html中查看这些值是如何全局设置的。模板。

代码


# file: wagtail_hooks.py

from django.contrib.staticfiles.templatetags.staticfiles import static
from django.utils.html import format_html
from django.urls import reverse

from wagtail.core import hooks


@hooks.register('insert_editor_css')
def editor_css():
"""Add /static/css/admin.css to the admin."""
return format_html(
'<link rel="stylesheet" href="{}">',
static("css/admin.css")
)


@hooks.register('insert_editor_js')
def editor_js():
return format_html(
"""
<script>
window.chooserUrls.pageChooser = '{}';
</script>
""",
reverse('wagtailadmin_choose_page_external_link')
)
/* file: static/css/admin.css */

.modal-content .link-types :first-child {
/* hide the 'internal' link option from the page chooser */
display: none;
}

.modal-content .link-types {
/* ensure the 'before' element can be positioned absolute */
position: relative;
}

.modal-content .link-types::before {
/* hide the left '|' bar */
background: white;
bottom: 0;
content: '';
left: 0;
position: absolute;
top: 0;
width: 5px;
}

关于wagtail - 从 Wagtail RichTextField 链接选择器中删除 "Internal link"选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58860547/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com