Update core 8.3.0
This commit is contained in:
parent
da7a7918f8
commit
cd7a898e66
6144 changed files with 132297 additions and 87747 deletions
|
@ -23,4 +23,4 @@ ABOUT DRUPAL THEMING
|
|||
--------------------
|
||||
|
||||
For more information, see Drupal.org's theming guide.
|
||||
https://www.drupal.org/theme-guide/8
|
||||
https://www.drupal.org/docs/8/theming
|
||||
|
|
52
web/core/themes/stable/css/image/editors/image.css
Normal file
52
web/core/themes/stable/css/image/editors/image.css
Normal file
|
@ -0,0 +1,52 @@
|
|||
/**
|
||||
* @file
|
||||
* Functional styles for the Image module's in-place editor.
|
||||
*/
|
||||
|
||||
/**
|
||||
* A minimum width/height is required so that users can drag and drop files
|
||||
* onto small images.
|
||||
*/
|
||||
.quickedit-image-element {
|
||||
min-width: 200px;
|
||||
min-height: 200px;
|
||||
}
|
||||
|
||||
.quickedit-image-dropzone {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
.quickedit-image-icon {
|
||||
display: block;
|
||||
width: 50px;
|
||||
height: 50px;
|
||||
background-repeat: no-repeat;
|
||||
background-size: cover;
|
||||
}
|
||||
|
||||
.quickedit-image-field-info {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: flex-end;
|
||||
}
|
||||
|
||||
.quickedit-image-text {
|
||||
display: block;
|
||||
}
|
||||
|
||||
/**
|
||||
* If we do not prevent pointer-events for child elements, our drag+drop events
|
||||
* will not fire properly. This can lead to unintentional redirects if a file
|
||||
* is dropped on a child element when a user intended to upload it.
|
||||
*/
|
||||
.quickedit-image-dropzone * {
|
||||
pointer-events: none;
|
||||
}
|
100
web/core/themes/stable/css/image/editors/image.theme.css
Normal file
100
web/core/themes/stable/css/image/editors/image.theme.css
Normal file
|
@ -0,0 +1,100 @@
|
|||
/**
|
||||
* @file
|
||||
* Theme styles for the Image module's in-place editor.
|
||||
*/
|
||||
|
||||
.quickedit-image-dropzone {
|
||||
background: rgba(116, 183, 255, 0.8);
|
||||
transition: background .2s;
|
||||
}
|
||||
|
||||
.quickedit-image-icon {
|
||||
margin: 0 0 10px 0;
|
||||
transition: margin .5s;
|
||||
}
|
||||
|
||||
.quickedit-image-dropzone.hover {
|
||||
background: rgba(116, 183, 255, 0.9);
|
||||
}
|
||||
|
||||
.quickedit-image-dropzone.error {
|
||||
background: rgba(255, 52, 27, 0.81);
|
||||
}
|
||||
|
||||
.quickedit-image-dropzone.upload .quickedit-image-icon {
|
||||
background-image: url('../../../images/image/upload.svg');
|
||||
}
|
||||
|
||||
.quickedit-image-dropzone.error .quickedit-image-icon {
|
||||
background-image: url('../../../images/image/error.svg');
|
||||
}
|
||||
|
||||
.quickedit-image-dropzone.loading .quickedit-image-icon {
|
||||
margin: -10px 0 20px 0;
|
||||
}
|
||||
|
||||
.quickedit-image-dropzone.loading .quickedit-image-icon::after {
|
||||
display: block;
|
||||
content: "";
|
||||
margin-left: -10px;
|
||||
margin-top: -5px;
|
||||
animation-duration: 2s;
|
||||
animation-name: quickedit-image-spin;
|
||||
animation-iteration-count: infinite;
|
||||
animation-timing-function: linear;
|
||||
width: 60px;
|
||||
height: 60px;
|
||||
border-style: solid;
|
||||
border-radius: 35px;
|
||||
border-width: 5px;
|
||||
border-color: white transparent transparent transparent;
|
||||
}
|
||||
|
||||
@keyframes quickedit-image-spin {
|
||||
0% {transform: rotate(0deg);}
|
||||
50% {transform: rotate(180deg);}
|
||||
100% {transform: rotate(360deg);}
|
||||
}
|
||||
|
||||
.quickedit-image-text {
|
||||
text-align: center;
|
||||
color: white;
|
||||
font-family: "Droid sans", "Lucida Grande", sans-serif;
|
||||
font-size: 16px;
|
||||
user-select: none;
|
||||
-webkit-user-select: none;
|
||||
-moz-user-select: none;
|
||||
-ms-user-select: none;
|
||||
}
|
||||
|
||||
.quickedit-image-field-info {
|
||||
background: rgba(0, 0, 0, 0.05);
|
||||
border-top: 1px solid #c5c5c5;
|
||||
padding: 5px;
|
||||
}
|
||||
|
||||
.quickedit-image-field-info div {
|
||||
margin-right: 10px; /* LTR */
|
||||
}
|
||||
|
||||
.quickedit-image-field-info div:last-child {
|
||||
margin-right: 0; /* LTR */
|
||||
}
|
||||
|
||||
[dir="rtl"] .quickedit-image-field-info div {
|
||||
margin-left: 10px;
|
||||
margin-right: 0;
|
||||
}
|
||||
|
||||
[dir="rtl"] .quickedit-image-field-info div:last-child {
|
||||
margin-left: 0;
|
||||
}
|
||||
|
||||
.quickedit-image-errors .messages__wrapper {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
.quickedit-image-errors .messages--error {
|
||||
box-shadow: none;
|
||||
}
|
|
@ -0,0 +1,28 @@
|
|||
/**
|
||||
* @file
|
||||
* Styles for the system status counter component.
|
||||
*/
|
||||
|
||||
.system-status-counter__status-icon {
|
||||
display: inline-block;
|
||||
height: 25px;
|
||||
width: 25px;
|
||||
vertical-align: middle;
|
||||
}
|
||||
.system-status-counter__status-icon:before {
|
||||
content: "";
|
||||
background-size: 20px;
|
||||
background-position: center 2px;
|
||||
background-repeat: no-repeat;
|
||||
display: block;
|
||||
}
|
||||
|
||||
.system-status-counter__status-icon--error:before {
|
||||
background-image: url(../../../images/core/icons/e32700/error.svg);
|
||||
}
|
||||
.system-status-counter__status-icon--warning:before {
|
||||
background-image: url(../../../images/core/icons/e29700/warning.svg);
|
||||
}
|
||||
.system-status-counter__status-icon--checked:before {
|
||||
background-image: url(../../../images/core/icons/73b355/check.svg);
|
||||
}
|
|
@ -0,0 +1,27 @@
|
|||
/**
|
||||
* @file
|
||||
* Styles for the system status report counters.
|
||||
*/
|
||||
|
||||
.system-status-report-counters__item {
|
||||
width: 100%;
|
||||
padding: .5em 0;
|
||||
text-align: center;
|
||||
white-space: nowrap;
|
||||
background-color: rgba(0, 0, 0, 0.063);
|
||||
margin-bottom: .5em;
|
||||
}
|
||||
|
||||
@media screen and (min-width: 60em) {
|
||||
.system-status-report-counters {
|
||||
flex-wrap: wrap;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
}
|
||||
.system-status-report-counters__item--half-width {
|
||||
width: 49%;
|
||||
}
|
||||
.system-status-report-counters__item--third-width {
|
||||
width: 33%;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,14 @@
|
|||
/**
|
||||
* @file
|
||||
* Default styles for the System Status general info.
|
||||
*/
|
||||
|
||||
.system-status-general-info__item {
|
||||
border: 1px solid #ccc;
|
||||
margin-top: 1em;
|
||||
padding: 0 1em 1em;
|
||||
}
|
||||
|
||||
.system-status-general-info__item-title {
|
||||
border-bottom: 1px solid #ccc;
|
||||
}
|
|
@ -204,10 +204,11 @@ small .admin-link:after {
|
|||
.system-status-report__status-title {
|
||||
position: relative;
|
||||
vertical-align: top;
|
||||
width: 25%;
|
||||
width: 100%;
|
||||
padding: 10px 6px 10px 40px; /* LTR */
|
||||
box-sizing: border-box;
|
||||
font-weight: normal;
|
||||
background-color: transparent;
|
||||
}
|
||||
[dir="rtl"] .system-status-report__status-title {
|
||||
padding: 10px 40px 10px 6px;
|
||||
|
@ -232,6 +233,9 @@ small .admin-link:after {
|
|||
.system-status-report__status-icon--warning:before {
|
||||
background-image: url(../../images/core/icons/e29700/warning.svg);
|
||||
}
|
||||
.system-status-report__entry__value {
|
||||
padding: 1em .5em;
|
||||
}
|
||||
|
||||
/**
|
||||
* Appearance page.
|
||||
|
@ -387,3 +391,6 @@ small .admin-link:after {
|
|||
[dir="rtl"] .system-themes-admin-form {
|
||||
clear: right;
|
||||
}
|
||||
.cron-description__run-cron {
|
||||
display: block;
|
||||
}
|
||||
|
|
|
@ -170,9 +170,9 @@ details.box-padding {
|
|||
margin-bottom: 6px;
|
||||
margin-top: 6px;
|
||||
}
|
||||
.views-ui-view-title {
|
||||
.views-ui-view-name h3 {
|
||||
font-weight: bold;
|
||||
margin-top: 0;
|
||||
margin: 0.25em 0;
|
||||
}
|
||||
.view-changed {
|
||||
margin-bottom: 21px;
|
||||
|
@ -183,22 +183,33 @@ details.box-padding {
|
|||
margin-bottom: 0;
|
||||
margin-top: 18px;
|
||||
}
|
||||
.views-ui-view-displays ul {
|
||||
margin-left: 0; /* LTR */
|
||||
padding-left: 0; /* LTR */
|
||||
list-style: none;
|
||||
}
|
||||
[dir="rtl"] .views-ui-view-displays ul {
|
||||
margin-right: 0;
|
||||
padding-right: 0;
|
||||
margin-left: inherit;
|
||||
padding-left: inherit;
|
||||
}
|
||||
|
||||
/* These header classes are ambiguous and should be scoped to th elements */
|
||||
.views-ui-name {
|
||||
width: 18%;
|
||||
width: 20%;
|
||||
}
|
||||
.views-ui-description {
|
||||
width: 26%;
|
||||
width: 30%;
|
||||
}
|
||||
.views-ui-tag {
|
||||
width: 8%;
|
||||
.views-ui-machine-name {
|
||||
width: 15%;
|
||||
}
|
||||
.views-ui-path {
|
||||
width: auto;
|
||||
.views-ui-displays {
|
||||
width: 25%;
|
||||
}
|
||||
.views-ui-operations {
|
||||
width: 24%;
|
||||
width: 10%;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -604,7 +615,7 @@ td.group-title {
|
|||
margin: 0;
|
||||
padding: 6px 16px;
|
||||
}
|
||||
.views-ui-dialog .views-override {
|
||||
.views-ui-dialog .views-override:not(:empty) {
|
||||
background-color: #f3f4ee;
|
||||
padding: 8px 13px;
|
||||
}
|
||||
|
|
4
web/core/themes/stable/images/image/error.svg
Normal file
4
web/core/themes/stable/images/image/error.svg
Normal file
|
@ -0,0 +1,4 @@
|
|||
<svg fill="#FFFFFF" height="24" viewBox="0 0 24 24" width="24" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M0 0h24v24H0z" fill="none"/>
|
||||
<path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 15h-2v-2h2v2zm0-4h-2V7h2v6z"/>
|
||||
</svg>
|
After Width: | Height: | Size: 261 B |
4
web/core/themes/stable/images/image/upload.svg
Normal file
4
web/core/themes/stable/images/image/upload.svg
Normal file
|
@ -0,0 +1,4 @@
|
|||
<svg fill="#FFFFFF" height="24" viewBox="0 0 24 24" width="24" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M0 0h24v24H0z" fill="none"/>
|
||||
<path d="M9 16h6v-6h4l-7-7-7 7h4zm-4 2h14v2H5z"/>
|
||||
</svg>
|
After Width: | Height: | Size: 202 B |
|
@ -98,6 +98,12 @@ libraries-override:
|
|||
css:
|
||||
theme:
|
||||
css/image.admin.css: css/image/image.admin.css
|
||||
image/quickedit.inPlaceEditor.image:
|
||||
css:
|
||||
component:
|
||||
css/editors/image.css: css/image/editors/image.css
|
||||
theme:
|
||||
css/editors/image.theme.css: css/image/editors/image.theme.css
|
||||
|
||||
language/drupal.language.admin:
|
||||
css:
|
||||
|
@ -169,6 +175,9 @@ libraries-override:
|
|||
css/components/reset-appearance.module.css: css/system/components/reset-appearance.module.css
|
||||
css/components/resize.module.css: css/system/components/resize.module.css
|
||||
css/components/sticky-header.module.css: css/system/components/sticky-header.module.css
|
||||
css/components/system-status-counter.css: css/system/components/system-status-counter.css
|
||||
css/components/system-status-report-counters.css: css/system/components/system-status-report-counters.css
|
||||
css/components/system-status-report-general-info.css: css/system/components/system-status-report-general-info.css
|
||||
css/components/tabledrag.module.css: css/system/components/tabledrag.module.css
|
||||
css/components/tablesort.module.css: css/system/components/tablesort.module.css
|
||||
css/components/tree-child.module.css: css/system/components/tree-child.module.css
|
||||
|
|
|
@ -0,0 +1,15 @@
|
|||
{#
|
||||
/**
|
||||
* @file
|
||||
* Theme override for the status report counter.
|
||||
*
|
||||
* Available variables:
|
||||
* - amount: The number shown on counter.
|
||||
* - text: The text shown on counter.
|
||||
* - severity: The severity of the counter.
|
||||
*
|
||||
* @ingroup themable
|
||||
*/
|
||||
#}
|
||||
{{ amount }} {{ text }}
|
||||
<a href="#{{ severity }}"><span class="visually-hidden">{{ text }} </span>Details</a>
|
|
@ -0,0 +1,81 @@
|
|||
{#
|
||||
/**
|
||||
* @file
|
||||
* Theme override for the status report general info.
|
||||
*
|
||||
* Available variables:
|
||||
* - drupal: The status of Drupal installation:
|
||||
* - value: The current status of Drupal installation.
|
||||
* - description: The description for current status of Drupal installation.
|
||||
* - cron: The status of cron:
|
||||
* - value: The current status of cron.
|
||||
* - description: The description for current status of cron.
|
||||
* - cron.run_cron: An array to render a button for running cron.
|
||||
* - database_system: The status of database system:
|
||||
* - value: The current status of database sytem.
|
||||
* - description: The description for current status of cron.
|
||||
* - database_system_version: The info about current database version:
|
||||
* - value: The current version of database.
|
||||
* - description: The description for current version of database.
|
||||
* - php: The current version of PHP:
|
||||
* - value: The status of currently installed PHP version.
|
||||
* - description: The description for current installed PHP version.
|
||||
* - php_memory_limit: The info about current PHP memory limit:
|
||||
* - value: The status of currently set PHP memory limit.
|
||||
* - description: The description for currently set PHP memory limit.
|
||||
* - webserver: The info about currently installed web server:
|
||||
* - value: The status of currently installed web server.
|
||||
* - description: The description for the status of currently installed web
|
||||
* server.
|
||||
*/
|
||||
#}
|
||||
|
||||
<h2>{{ 'General System Information'|t }}</h2>
|
||||
<div class="system-status-general-info__item">
|
||||
<h3 class="system-status-general-info__item-title">{{ 'Drupal Version'|t }}</h3>
|
||||
{{ drupal.value }}
|
||||
{% if drupal.description %}
|
||||
{{ drupal.description }}
|
||||
{% endif %}
|
||||
</div>
|
||||
<div class="system-status-general-info__item">
|
||||
<h3 class="system-status-general-info__item-title">{{ 'Last Cron Run'|t }}</h3>
|
||||
{{ cron.value }}
|
||||
{% if cron.run_cron %}
|
||||
{{ cron.run_cron }}
|
||||
{% endif %}
|
||||
{% if cron.description %}
|
||||
{{ cron.description }}
|
||||
{% endif %}
|
||||
</div>
|
||||
<div class="system-status-general-info__item">
|
||||
<h3 class="system-status-general-info__item-title">{{ 'Web Server'|t }}</h3>
|
||||
{{ webserver.value }}
|
||||
{% if webserver.description %}
|
||||
{{ webserver.description }}
|
||||
{% endif %}
|
||||
</div>
|
||||
<div class="system-status-general-info__item">
|
||||
<h3 class="system-status-general-info__item-title">{{ 'PHP'|t }}</h3>
|
||||
<h4>{{ 'Version'|t }}</h4>{{ php.value }}
|
||||
{% if php.description %}
|
||||
{{ php.description }}
|
||||
{% endif %}
|
||||
|
||||
<h4>{{ 'Memory limit'|t }}</h4>{{ php_memory_limit.value }}
|
||||
{% if php_memory_limit.description %}
|
||||
{{ php_memory_limit.description }}
|
||||
{% endif %}
|
||||
</div>
|
||||
<div class="system-status-general-info__item">
|
||||
<h3 class="system-status-general-info__item-title">{{ 'Database'|t }}</h3>
|
||||
<h4>{{ 'Version'|t }}</h4>{{ database_system_version.value }}
|
||||
{% if database_system_version.description %}
|
||||
{{ database_system_version.description }}
|
||||
{% endif %}
|
||||
|
||||
<h4>{{ 'System'|t }}</h4>{{ database_system.value }}
|
||||
{% if database_system.description %}
|
||||
{{ database_system.description }}
|
||||
{% endif %}
|
||||
</div>
|
|
@ -0,0 +1,49 @@
|
|||
{#
|
||||
/**
|
||||
* @file
|
||||
* Theme override of grouped status report requirements.
|
||||
*
|
||||
* - grouped_requirements: Contains grouped requirements.
|
||||
* Each group contains:
|
||||
* - title: The title of the group.
|
||||
* - type: The severity of the group.
|
||||
* - items: The requirement instances.
|
||||
* Each requirement item contains:
|
||||
* - title: The title of the requirement.
|
||||
* - value: (optional) The requirement's status.
|
||||
* - description: (optional) The requirement's description.
|
||||
* - severity_title: The title of the severity.
|
||||
* - severity_status: Indicates the severity status.
|
||||
*/
|
||||
#}
|
||||
{{ attach_library('core/drupal.collapse') }}
|
||||
|
||||
<div>
|
||||
{% for group in grouped_requirements %}
|
||||
<div>
|
||||
<h3 id="{{ group.type }}">{{ group.title }}</h3>
|
||||
{% for requirement in group.items %}
|
||||
<details class="system-status-report__entry">
|
||||
{%
|
||||
set summary_classes = [
|
||||
'system-status-report__status-title',
|
||||
group.type in ['warning', 'error'] ? 'system-status-report__status-icon system-status-report__status-icon--' ~ group.type
|
||||
]
|
||||
%}
|
||||
<summary{{ create_attribute({'class': summary_classes}) }} role="button">
|
||||
{% if requirement.severity_title %}
|
||||
<span class="visually-hidden">{{ requirement.severity_title }}</span>
|
||||
{% endif %}
|
||||
{{ requirement.title }}
|
||||
</summary>
|
||||
<div class="system-status-report__entry__value">
|
||||
{{ requirement.value }}
|
||||
{% if requirement.description %}
|
||||
<div class="description">{{ requirement.description }}</div>
|
||||
{% endif %}
|
||||
</div>
|
||||
</details>
|
||||
{% endfor %}
|
||||
</div>
|
||||
{% endfor %}
|
||||
</div>
|
|
@ -0,0 +1,28 @@
|
|||
{#
|
||||
/**
|
||||
* @file
|
||||
* Theme override for the status report page.
|
||||
*
|
||||
* Available variables:
|
||||
* - counters: The list of counter elements.
|
||||
* - general_info: A render array to create general info element.
|
||||
* - requirements: A render array to create requirements table.
|
||||
*
|
||||
* @see template_preprocess_status_report()
|
||||
*/
|
||||
#}
|
||||
{% if counters|length == 3 %}
|
||||
{% set element_width_class = ' system-status-report-counters__item--third-width' %}
|
||||
{% elseif counters|length == 2 %}
|
||||
{% set element_width_class = ' system-status-report-counters__item--half-width' %}
|
||||
{% endif %}
|
||||
<div class="system-status-report-counters">
|
||||
{% for counter in counters %}
|
||||
<div class="system-status-report-counters__item{{ element_width_class }}">
|
||||
{{ counter }}
|
||||
</div>
|
||||
{% endfor %}
|
||||
</div>
|
||||
|
||||
{{ general_info }}
|
||||
{{ requirements }}
|
|
@ -0,0 +1,22 @@
|
|||
{#
|
||||
/**
|
||||
* @file
|
||||
* Theme override for views displays on the views listing page.
|
||||
*
|
||||
* Available variables:
|
||||
* - displays: Contains multiple display instances. Each display contains:
|
||||
* - display: Display name.
|
||||
* - path: Path to display, if any.
|
||||
*/
|
||||
#}
|
||||
<ul>
|
||||
{% for display in displays %}
|
||||
<li>
|
||||
{% if display.path %}
|
||||
{{ display.display }} <span data-drupal-selector="views-table-filter-text-source">({{ display.path }})</span>
|
||||
{% else %}
|
||||
{{ display.display }}
|
||||
{% endif %}
|
||||
</li>
|
||||
{% endfor %}
|
||||
</ul>
|
|
@ -0,0 +1,47 @@
|
|||
{#
|
||||
/**
|
||||
* @file
|
||||
* Theme override for views listing table.
|
||||
*
|
||||
* Available variables:
|
||||
* - headers: Contains table headers.
|
||||
* - rows: Contains multiple rows. Each row contains:
|
||||
* - view_name: The human-readable name of the view.
|
||||
* - machine_name: Machine name of the view.
|
||||
* - description: The description of the view.
|
||||
* - displays: List of displays attached to the view.
|
||||
* - operations: List of available operations.
|
||||
*
|
||||
* @see template_preprocess_views_ui_views_listing_table()
|
||||
*/
|
||||
#}
|
||||
<table{{ attributes.addClass('responsive-enabled') }}>
|
||||
<thead>
|
||||
<tr>
|
||||
{% for header in headers %}
|
||||
<th{{ header.attributes }}>{{ header.data }}</th>
|
||||
{% endfor %}
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{% for row in rows %}
|
||||
<tr{{ row.attributes }}>
|
||||
<td class="views-ui-view-name">
|
||||
<h3 data-drupal-selector="views-table-filter-text-source">{{ row.data.view_name.data }}</h3>
|
||||
</td>
|
||||
<td class="views-ui-view-machine-name" data-drupal-selector="views-table-filter-text-source">
|
||||
{{ row.data.machine_name.data }}
|
||||
</td>
|
||||
<td class="views-ui-view-description" data-drupal-selector="views-table-filter-text-source">
|
||||
{{ row.data.description.data }}
|
||||
</td>
|
||||
<td class="views-ui-view-displays">
|
||||
{{ row.data.displays.data }}
|
||||
</td>
|
||||
<td class="views-ui-view-operations">
|
||||
{{ row.data.operations.data }}
|
||||
</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
</table>
|
|
@ -11,7 +11,7 @@
|
|||
* @see template_preprocess_views_view_opml()
|
||||
*/
|
||||
#}
|
||||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<opml version="2.0">
|
||||
<head>
|
||||
<title>{{ title }}</title>
|
||||
|
|
|
@ -15,7 +15,7 @@
|
|||
* @see template_preprocess_views_view_rss()
|
||||
*/
|
||||
#}
|
||||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<rss version="2.0" xml:base="{{ link }}"{{ namespaces }}>
|
||||
<channel>
|
||||
<title>{{ title }}</title>
|
||||
|
|
Reference in a new issue