In the daily operation of Anqi CMS, we often need to display external links in the website content.These links, if they are just simple text, not only affect the user experience, but also cannot effectively convey information.At the same time, in order to follow the **practice** of Search Engine Optimization (SEO), especially for links pointing to external sites, we usually want to addrel="nofollow"Attribute, to avoid unnecessary 'weight loss' or passing unnecessary trust. Anqi CMS provides a concise and efficient method to solve this problem.
The core feature revelation:urlizeFilter
The AnQi CMS template engine provides powerful filter functions, whereurlizeThe filter is the core tool to solve the "automatically convert URL strings into clickable hyperlinks" requirement. Its function is to intelligently identify URL strings within the text content, whether they arehttp:///https://starting with orwww.URLs starting with, even email addresses, will be automatically wrapped in clickable HTML<a>.
What's more, urlizeThe filter will automatically add clickable links to the generated hyperlinks during the conversion processrel="nofollow"This property makes it easy to handle any plain text content containing URLs in templates, enabling clickable links and SEO-friendliness.
How to useurlizeFilter:
In the AnQi CMS template files, you can connect any variable that may contain a URL through a pipe|withurlizefilter. SinceurlizeThe filter generates HTML code, in order to ensure that these HTML codes can be correctly parsed by the browser and not displayed as plain text, you also need to add them immediately afterwards|safefilter.
Basic syntax is as follows:
{{ 您的变量 | urlize | safe }}
Among them:
您的变量: Represents a template variable containing a URL string, such as article content (archive.Content) Single-page content (page.Content) or other custom text fields.urlizeAutomatically convert URL to hyperlink and addrel="nofollow".safeTell the template engine that the output content is safe HTML and should be rendered as is, without HTML entity escaping.
Why is it automatically addednofollow?
rel="nofollow"The attribute is used by search engines to identify links that should not follow or pass weight. For most links pointing to external sites, especially those of non-cooperative nature or user-generated content, addnofollowIs a recommended SEO practice. Anqi CMSurlizeThe filter is based on this **practice, and by default, it adds hyperlinks to URLs automaticallyrel="nofollow"Thus, it eliminates the cumbersome process of manual addition.
In addition, Anqi CMS provides global options to manage the behavior of external links in the background.Content settingsAlso, it provides global options to manage the behavior of external links in the context.帮助文档 -> 后台设置 -> 内容设置(help-setting-content.mdIt was mentioned in the ).
Do you want to automatically filter external links: If you do not want external site links in the content you post, you can choose to filter out the links.This will automatically clear any external links when the document is published.If you choose not to filter external links, the links will be retained but will be added with
rel="nofollow".
This means that even if you do not use the filter in the templateurlizeIf the background has enabled the 'Do not filter external links' option, the system will also automatically add external links detected during content savingrel="nofollow".urlizeThe filter provides the same for those plain text URLs that may not have been processed by the backend during front-end renderingnofollowFeature.
In which scenarios should this technique be applied?
This method is very practical in various content types:
- Content of articles and product detail pages (
archive.Content):This is the most common application scenario. When editors paste URLs directly into articles or product descriptions, throughurlizefilters, these URLs can automatically become clickable links and come withnofollow. - Single-page content (
page.Content):For "Contact Us", "About Us" and other single-page sections, if they contain the plain text URLs of the company website or social media homepage, they can also be usedurlizePerform conversion. - Custom text field:If you define a custom text field in the content model (such as a "Reference URL" field), and the field may contain plain text URLs, it can also be done by
urlizeProcess with the filter. - Friendship Links:Although friendship links are usually through
linkListTags and background management functions are centralized for management, and may be explicitly set in the backgroundnofollowproperties such asitem.Nofollow == 1),But if some friendship links or external recommendation links are embedded in non-structured content in plain text,urlizeit can also provide a safety net.nofolloweffect.
Operation steps with code examples
Assuming you want to display the publication date of the article on the ({模型table}/detail.htmlorarchive/detail.htmlIn it, make all URL strings in the article content clickablenofollowlinks.
Open your template file:Find the template file for rendering the article content. Typically this will be
/template/{您的模板名称}/archive/detail.htmlor similar path file.Modify content output code:Find the output article content (
archive.Content) line of code. It may look like this:{% archiveDetail articleContent with name="Content" %} {{ articleContent|safe }}Modify it to use
urlizeFilter:{% archiveDetail articleContent with name="Content" %} {{ articleContent|urlize|safe }}Similarly, if your content is included in other variables, such as a custom field
my_custom_url_field, you can use it like this:{% archiveDetail myCustomUrlField with name="my_custom_url_field" %} <p>更多信息请访问:{{ myCustomUrlField|urlize|safe }}</p>
Example effect:
IfarticleContentThe variable contains the following text:
欢迎访问我们的官网 https://en.anqicms.com,这是一个优秀的CMS系统。您也可以通过邮箱联系我们:[email protected]。
after{{ articleContent|urlize|safe }}After processing, the actual HTML rendered on the page will be:
欢迎访问我们的官网 <a href="https://en.anqicms.com" rel="nofollow">https://en.anqicms.com</a>,这是一个优秀的CMS系统。您也可以通过邮箱联系我们:<a href="mailto:[email protected]" rel="nofollow">[email protected]</a>。
URL and email addresses have been successfully converted to includerel="nofollow"attributes.
Points to note
- **`|