在几乎任何django CMS插件中检查断链的可扩展方法。
项目描述
在几乎任何django CMS插件中检查断链的可扩展方法。
概述
在django CMS中,有众多插件提供超链接功能,每个插件都有自己的字段来存储各种类型的超链接。因此,在项目整个范围内查找坏链接可能成为一项挑战。本项目试图以可扩展的方式提供解决方案。
安装
此软件包需要Python 2.7或更高版本以及Django 1.8或更高版本。
首先,从PyPI安装此软件包
pip install djangocms-link-manager
然后将它添加到您的INSTALLED_APPS
# settings.py ... INSTALLED_APPS = [ ... 'djangocms_link_manager', ]
使用方法
运行此软件包最简单的方法是
python manage.py check_links
但是,此命令接受多个可选参数
--verify-exists Check that each link's target exists (use caution, makes HTTP HEAD requests). --scheme SCHEME Default scheme to use for scheme-less URLs (default: "http"). --host NETLOC Default [host:port] to use for relative URLs (defaults to "localhost:8000"). --template TEMPLATE Override the report rendering template. --mail-managers Instead of printing report to the console, email it to the addresses defined in the MANAGERS list in the project's settings.py.
扩展
此包目前支持以下通过类名识别的插件:Bootstrap3ButtonCMSPlugin和LinkPlugin,分别来自aldryn_bootstrap3和djangocms_link包。要添加对新CMSPlugin的支持,只需创建一个继承自djangocms_link_manager.link_manager.LinkManager的类,并根据您希望支持的CMSPlugin的具体情况重写check_link()方法。
创建完成后,在启动时使用以下代码将链接管理器注册到链接管理器池中:
from djangocms_link_manager.link_manager import LinkManager, LinkReport from djangocms_link_manager.link_manager_pool import link_manager_pool class MyLinkPluginLinkManager(LinkManager): """MyLinkPlugin only contains the fields 'name' and 'url'.""" def check_link(self, instance, verify_exists=False): """Override this method and adapt to MyLinkPlugin.""" return LinkReport( valid=self.validate_url(instance.url, verify_exists=verify_exists), text=instance.name, url=instance.url ) link_manager_pool.register('MyLinkPlugin', MyLinkPluginLinkManager)
支持额外的URL方案
此包已经提供了以下URL方案的支持:ftp、ftps、http、https、bitcoin、mailto和tel。如果项目需要验证其他方案,它们可以通过包含一个名为validate_MYSCHEME的方法添加到链接管理器(LinkManager的子类),该方法的签名如下:
def validate_MYSCHEME(self, parts, verify_exists=False): # Do your thing here if valid: return True else: return False
将“MYSCHEME”替换为您选择的方案的小写名称。
当verify_exists设置为True时,其目的是检查资源是否真正可用。例如,对于http(s)、ftp(s)验证器将实际尝试获取URL(使用HTTP HEAD请求),如果结果是HTTP 404错误,则返回False。请负责任地使用此功能。
parts是包含URL各个部分的字典,如下所示
parts = { 'scheme': ..., 'netloc': ..., 'path': ..., 'params': ..., 'query': ..., 'fragment': ..., }
有关这些元素的更多信息,请参阅urllib.parse的文档。
项目详情
下载文件
下载适用于您平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。
源代码发行版
构建发行版
djangocms-link-manager-0.2.1.tar.gz的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 25f8171c15405daaa14d1a7c41b1ee9bd92f7d67b5e5f3779812e0aca57546ff |
|
MD5 | 11479d93129308a301af15e63828e7d8 |
|
BLAKE2b-256 | 470904a3adab7bf9c020dba7eb569b50dbc3669aa211980ccab6d744b9904455 |
djangocms_link_manager-0.2.1-py2-none-any.whl的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 9b24baa5356e194f01fdea18b34641f10eb5b6db1ab905d819f4ea786f43d846 |
|
MD5 | afa6a879c3b4cf3d9c751d953605653c |
|
BLAKE2b-256 | 63f8cf53f42a204a1821520448e96458022a1901eb01999809b889e24369d155 |