libreblog
Version:
An in-browser Static Site Generator focused on content-rich blogs and news websites
329 lines • 179 kB
JavaScript
export default {
"theme_uri": "current",
"image": "data:image/avif;base64,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",
"config": {
"pages": [
{
"name": "mainpage",
"label": "Mainpage",
"type": "mainpage"
},
{
"name": "section",
"label": "Section",
"type": "section"
},
{
"name": "series",
"label": "Series",
"type": "series"
},
{
"name": "author",
"label": "Author",
"type": "author"
},
{
"name": "article",
"label": "Article",
"type": "article"
},
{
"name": "page",
"label": "Page",
"type": "article"
},
{
"name": "analysis",
"label": "Analysis",
"type": "article"
}
],
"page_components": [
{
"name": "header",
"label": "Header",
"type": "page_component"
},
{
"name": "footer",
"label": "Footer",
"type": "page_component"
}
],
"relations": [
{
"name": "element",
"place_type": "number",
"label": "is element of"
},
{
"name": "event",
"place_type": "date",
"label": "is event of"
}
],
"strings": [
{
"name": "no-articles-found",
"label": "No articles found",
"default": "No articles have been found."
},
{
"name": "in-section-label",
"label": "In [section]",
"default": " — in "
},
{
"name": "series-label",
"label": "Label: series",
"default": "Series"
},
{
"name": "references-label",
"label": "Label: references",
"default": "References"
},
{
"name": "timeline-label",
"label": "Label: timeline",
"default": "Timeline"
},
{
"name": "key-elements-label",
"label": "Label: key elements",
"default": "Key elements"
},
{
"name": "header-search-placeholder",
"label": "Search placeholder",
"default": "Search..."
},
{
"name": "footer-social-header",
"label": "Label: footer social column",
"default": "Follow us"
},
{
"name": "footer-social-text",
"label": "Footer social text",
"default": "Subscribe to our newsletter for weekly news and analyses. Also, follow us on social media for more insights and updates!"
},
{
"name": "previous_articles",
"label": "Previous articles",
"default": "Previous articles"
},
{
"name": "initial_page",
"label": "Initial page",
"default": "Initial page"
},
{
"name": "next_articles",
"label": "Next articles",
"default": "Next articles"
},
{
"name": "published_on",
"label": "Published on (in the Article page)",
"default": "Published on"
},
{
"name": "last_updated_on",
"label": "Updated on (in the Article page)",
"default": "Updated on"
},
{
"name": "summary",
"label": "Summary (in the Article page)",
"default": "Summary"
},
{
"name": "notes",
"label": "Notes (in the Article page)",
"default": "Notes"
},
{
"name": "click_to_read",
"label": "Click to read (in the Article page)",
"default": "click to read"
},
{
"name": "written_by",
"label": "By [author] (in the Article page)",
"default": "By"
},
{
"name": "related_analyses",
"label": "Related analyses (in the Article page)",
"default": "Related analyses"
},
{
"name": "share",
"label": "Text of the share button",
"default": "Share"
},
{
"name": "feedback",
"label": "Text of the feedback button",
"default": "Feedback"
},
{
"name": "link",
"label": "Link (in references)",
"default": "link"
},
{
"name": "etal",
"label": "Et al. (in references)",
"default": "et al."
},
{
"name": "loccit",
"label": "Loc. cit. (in references)",
"default": "Loc. cit."
},
{
"name": "published_articles",
"label": "Published articles (in the Author page)",
"default": "Published articles"
},
{
"name": "contact",
"label": "Contact (in the Author page)",
"default": "Contact"
},
{
"name": "author_email",
"label": "Email (in the Author page)",
"default": "Email"
}
],
"colors": [
{
"name": "page_background",
"default": "#fafafa",
"label": "Page background"
},
{
"name": "dividers",
"default": "#dcdcdc",
"label": "Dividers"
},
{
"name": "menus_background",
"default": "#101010",
"label": "Menu background"
},
{
"name": "secondary_text",
"default": "#808080",
"label": "Secondary text"
},
{
"name": "menu_link_onhover",
"default": "#ffff00",
"label": "Menu link on hover"
},
{
"name": "primary_text",
"default": "#101010",
"label": "Primary text"
},
{
"name": "lower_contrast_text",
"default": "#202020",
"label": "Lower contrast text"
},
{
"name": "articles_title",
"default": "#a01010",
"label": "Article title"
},
{
"name": "articles_title_onhover",
"default": "#300000",
"label": "Article title on hover"
},
{
"name": "search_results_border",
"default": "#808080",
"label": "Search result border"
},
{
"name": "search_results_title",
"default": "#101010",
"label": "Search result title"
},
{
"name": "search_results_subtitle",
"default": "#2f4f4f",
"label": "Search result subtitle"
},
{
"name": "reference_onhover",
"default": "#eaeaea",
"label": "Reference text on hover"
},
{
"name": "reference_part_onhover",
"default": "#dadada",
"label": "Reference part on hover"
},
{
"name": "photo_label_background",
"default": "#202020",
"label": "Photo label background"
}
]
},
"templates": [
{
"template_uri": "mainpage_html",
"template_set": "mainpage",
"template_type": "mainpage",
"content_type": "html",
"contents": "<!doctype html>\n<html lang=\"{{ global.website_language }}\">\n<head>\n {{ global.head_code_snippets|raw }}\n <meta charset=\"utf-8\" />\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\" />\n <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\" />\n <meta name=\"generator\" content=\"LibreBlog.org\" />\n <meta name=\"description\" content=\"{{ global.website_description|escape }}\" />\n <link rel=\"schema.DC\" href=\"http://purl.org/dc/elements/1.1/\" />\n <meta name=\"DC.Title\" content=\"{{ global.website_title|escape }}\" />\n <meta name=\"DC.Description\" content=\"{{ global.website_description|escape }}\" />\n <meta property=\"og:title\" content=\"{{ global.website_title|escape }}\" />\n <meta property=\"og:description\" content=\"{{ global.website_description|escape }}\" />\n <meta property=\"og:type\" content=\"website\" />\n <title>{{ global.website_title|escape }}</title>\n <link rel=\"alternate\" type=\"application/rss+xml\" title=\"{{ global.website_title|escape }}\" href=\"{{ global.website_url }}/index.rss\" />\n {% if current_page == 1 %}\n <meta property=\"og:url\" content=\"{{ global.website_url }}/index{{ global.dot_html_for_links }}\" />\n <link rel=\"canonical\" href=\"{{ global.website_url }}/index{{ global.dot_html_for_links }}\" />\n {% else %}\n <meta property=\"og:url\" content=\"{{ global.website_url }}/index/page/{{ current_page }}{{ global.dot_html_for_links }}\" />\n <link rel=\"canonical\" href=\"{{ global.website_url }}/index/page/{{ current_page }}{{ global.dot_html_for_links }}\" />\n {% endif %}\n {% for file in css_files %}\n <link rel=\"stylesheet\" href=\"/css/{{ file }}\" />\n {% endfor %}\n {% if global.website_favicon %}\n <link rel=\"icon\" type=\"image/x-icon\" href=\"{% if global.website_favicon|slice(0,7) == 'http://' or global.website_favicon|slice(0,8) == 'https://' %}{{ global.website_favicon }}{% else %}{{ media_url(global.website_favicon, media) }}{% endif %}\" />\n {% endif %}\n {% if current_page < how_many_pages %}\n <link rel=\"next\" href=\"/page/{{ current_page + 1 }}{{ global.dot_html_for_links }}\" />\n {% endif %}\n {% if current_page > 2 %}\n <link rel=\"prev\" href=\"/page/{{ current_page - 1 }}{{ global.dot_html_for_links }}\" />\n {% else %}\n {% if current_page == 2 %}\n <link rel=\"prev\" href=\"/index{{ global.dot_html_for_links }}\" />\n {% endif %}\n {% endif %}\n</head>\n<body>\n {{ components.header }}\n <main class=\"row\">\n <section id=\"articles\" class=\"articles-column {% if series is not empty %}articles-column-width-65{% else %}articles-column-width-100{% endif %}\" vocab=\"http://purl.org/dc/elements/1.1/\" typeof=\"dc:Collection\" resource=\"{{ global.website_url }}/index{{ global.dot_html_for_links }}#articles\">\n {% for article in articles %}\n <article class='article-card' typeof=\"dc:Resource\" resource=\"{{ global.website_url }}/articles/{{ article.uri }}{{ global.dot_html_for_links }}\">\n {% if article.photo %}\n <div class='photo-row'>\n <div class=\"article-photo\">\n {% if article.label %}\n <label class=\"article-photo-label\">{{ article.label|escape }}</label>\n {% endif %}\n <a href='/articles/{{ article.uri }}{{ global.dot_html_for_links }}'>\n <img class=\"article-img\" src=\"{{ photo_version(article.photo, 'small') }}\" loading=\"lazy\" alt=\"{{ article.photo.alt_text }}\" /></a>\n </div>\n {% else %}\n <div class='nophoto-row'>\n {% endif %}\n <div class=\"article-text\">\n <div class=\"title-div\" role=\"heading\" aria-level=\"2\">\n <a class='article-title' href='/articles/{{ article.uri }}{{ global.dot_html_for_links }}' property=\"dc:title\">{{ article.title|escape }}</a>\n </div>\n {% if not article.declared_values[\"hide-byline-on-mainpage\"] %}\n <div class=\"published-div\">\n {% set article_published = article.published ? article.published : article.created %}\n <span property=\"dc:date\" resource=\"{{ iso_datetime(article_published) }}{{ global.website_timezone }}\">\n <time class=\"item-date\" datetime=\"{{ iso_datetime(article_published) }}\" timezone-abbreviation=\"{{ global.timezone_abbreviation }}\">{{ format_date(article_published) }} {{ global.timezone_abbreviation }}</time>\n </span>\n {% if article.section_title %}\n <i>{{ global.strings.in_section_label}}</i>\n <a href='/sections/{{ article.section_uri }}{{ global.dot_html_for_links }}' property=\"dc:subject\" resource=\"{{ global.website_url }}/sections/{{ article.section_uri }}{{ global.dot_html_for_links }}\">{{ article.section_title|escape }}</a>\n {% endif %}\n </div>\n {% endif %}\n <div class=\"subtitle-div\" property=\"dc:description\">{{ article.subtitle|escape }}</div>\n </div>\n </div>\n </article>\n {% if not loop.last %}<div class=\"divider\"><hr/></div>{% endif %}\n {% else %}\n <strong class=\"alert\">{{ global.strings.no_articles_found }}</strong>\n {% endfor %}\n </section>\n {% if series is not empty %}\n <section id=\"series\" class=\"series-column\" vocab=\"http://purl.org/dc/elements/1.1/\" typeof=\"dc:Collection\" resource=\"{{ global.website_url }}/index{{ global.dot_html_for_links }}#series\">\n <div class=\"series-label\">{{ global.strings.series_label }}</div>\n {% for s in series %}\n <article class=\"series-card\" typeof=\"dc:Resource\" resource=\"{{ global.website_url }}/series/{{ s.uri }}{{ global.dot_html_for_links }}\">\n <div class=\"series-text\">\n <div class=\"title-div\" role=\"heading\" aria-level=\"2\">\n <a class='series-title' href='/series/{{ s.uri }}{{ global.dot_html_for_links }}' property=\"dc:title\">{{ s.title|escape }}</a>\n </div>\n {% if not s.declared_values[\"hide-byline-on-mainpage\"] %}\n <div class=\"published-div\">\n {% set s_published = s.published ? s.published : s.created %}\n <span property=\"dc:date\" resource=\"{{ iso_datetime(s_published) }}{{ global.website_timezone }}\">\n <time class=\"item-date\" datetime=\"{{ iso_datetime(s_published) }}\" timezone-abbreviation=\"{{ global.timezone_abbreviation }}\">{{ format_date(s_published) }} {{ global.timezone_abbreviation }}</time>\n </span>\n {% if s.section_title %}\n <i>{{ global.strings.in_section_label}}</i>\n <a href='/sections/{{ s.section_uri }}{{ global.dot_html_for_links }}' property=\"dc:subject\" resource=\"{{ global.website_url }}/sections/{{ s.section_uri }}{{ global.dot_html_for_links }}\">{{ s.section_title|escape }}</a> \n {% endif %}\n </div>\n {% endif %}\n <div class=\"subtitle-div\" property=\"dc:description\">{{ s.subtitle|escape }}</div>\n </div>\n {% if s.photo %}\n <div class=\"series-photo\">\n <a href='/series/{{ s.uri }}{{ global.dot_html_for_links }}'><img class=\"series-img\" src=\"{{ photo_version(s.photo, 'small') }}\" loading=\"lazy\" alt=\"{{ s.photo.alt_text }}\" /></a>\n </div>\n {% endif %}\n </article>\n {% if not loop.last %}<div class=\"series-divider\"><hr/></div>{% endif %}\n {% endfor %}\n </section>\n {% endif %}\n </main>\n {% if how_many_pages > 1 %}\n <div class=\"pagination-wrapper\">\n <div class=\"pagination\">\n {% if current_page > 1 %}\n <a href=\"{% if current_page == 2 %}/index{% else %}/page/{{ current_page - 1 }}{% endif %}{{ global.dot_html_for_links }}\"><span>❮ </span>{{ global.strings.previous_articles }}</a>\n <span>⦁ ⦁ ⦁</span> \n <a href=\"/index{{ global.dot_html_for_links }}\">\n {{ global.strings.initial_page }}\n </a>\n {% endif %}\n {% if current_page < how_many_pages %}\n {% if current_page > 1 %}<span>⦁ ⦁ ⦁</span>{% endif %}\n <a href=\"/page/{{ current_page + 1 }}{{ global.dot_html_for_links }}\">{{ global.strings.next_articles }}<span> ❯</span></a>\n {% endif %}\n </div>\n </div>\n {% endif %}\n {{ components.footer }}\n <script src=\"/js/{{ search_js_file }}\" defer></script>\n <script src=\"/js/main.js\"></script>\n</body>\n</html>\n"
},
{
"template_uri": "mainpage_css",
"template_set": "mainpage",
"template_type": "mainpage",
"content_type": "css",
"contents": "/* This CSS file will be included in all pages */\n\n:root {\n --series-border-color: {{ global.colors.dividers }};\n --series-label-color: {{ global.colors.secondary_text }};\n --series-divider-border-color: {{ global.colors.dividers }};\n --article-divider-border-color: {{ global.colors.dividers }};\n --article-title-color: {{ global.colors.articles_title }};\n --article-title-hover-color: {{ global.colors.articles_title_onhover }};\n --series-title-color: {{ global.colors.articles_title }};\n --series-title-hover-color: {{ global.colors.articles_title_onhover }};\n --published-div-color: {{ global.colors.secondary_text }};\n --subtitle-div-color: {{ global.colors.lower_contrast_text }};\n --article-photo-label-background-color: {{ global.colors.photo_label_background }};\n --article-photo-label-color: {{ global.colors.page_background }};\n --body-background-color: {{ global.colors.page_background }};\n --font-color: {{ global.colors.primary_text }};\n --pagination-font-color: {{ global.colors.secondary_text }};\n --pagination-background-hover: {{ global.colors.reference_onhover }};\n --pagination-dots-color: {{ global.colors.dividers }};\n --pagination-arrows-color: {{ global.colors.secondary_text }};\n --article-image-size: 300px;\n --article-max-image-size: 400px;\n --article-max-width: 1000px;\n --main-min-height: 260px;\n}\n\n* { \n -moz-box-sizing: border-box; \n -ms-box-sizing: border-box; \n box-sizing: border-box; \n}\n\nhtml {\n font-family: 'Roboto', 'Helvetica Neue', 'Arial Nova', 'Helvetica', 'Verdana', sans-serif;\n font-size: 22px;\n color: var(---font-color);\n line-height: 1.4;\n overflow: hidden;\n height: 100%;\n}\n\nbody {\n margin: 0;\n height: 100%;\n overflow: auto;\n background-color: var(--body-background-color);\n}\n\nmain {\n min-height: var(--main-min-height);\n word-break: auto-phrase;\n}\n\nfigure {\n width: 100%;\n height: fit-content;\n margin: 0;\n padding: 0;\n}\n\n.article-card {\n max-width: var(--article-max-width);\n width: 100%;\n\n .article-text {\n margin-top: 0;\n margin-bottom: 1rem;\n\n .title-div {\n font-size: calc(1rem + 4px);\n font-weight: bold;\n color: var(--article-title-color);\n overflow: hidden;\n display: -webkit-box;\n -webkit-line-clamp: 3;\n line-clamp: 3; \n -webkit-box-orient: vertical;\n\n .article-title {\n padding: 5px 0;\n text-decoration: none;\n color: var(--article-title-color);\n }\n \n .article-title:hover {\n color: var(--article-title-hover-color);\n }\n }\n\n .title-div:hover {\n color: var(--article-title-hover-color);\n }\n \n .published-div {\n margin-top: 0.4rem;\n font-size: calc(1rem - 2px);\n color: var(--published-div-color);\n \n a {\n text-decoration: none;\n color: var(--published-div-color);\n }\n }\n \n .subtitle-div {\n margin-top: 0.2rem;\n font-size: 1rem;\n color: var(--subtitle-div-color);\n overflow: hidden;\n display: -webkit-box;\n -webkit-line-clamp: 3;\n line-clamp: 3; \n -webkit-box-orient: vertical;\n }\n }\n \n .photo-row, .nophoto-row {\n display: inline-block;\n width: 100%;\n }\n \n .photo-row {\n .article-photo {\n position: relative;\n width: var(--article-image-size);\n margin-bottom: 1rem;\n float: left;\n \n .article-img {\n width: 100%;\n aspect-ratio: 4/3;\n object-fit: cover;\n border-radius: 8px;\n }\n \n .article-photo-label {\n position: absolute;\n padding: 2px 5px;\n font-size: calc(1rem - 1px);\n top: 0;\n left: 0;\n background-color: var(--article-photo-label-background-color);\n color: var(--article-photo-label-color);\n border-radius: 8px 1px 3px 1px;\n }\n }\n \n .article-text {\n float: left;\n width: calc(100% - var(--article-image-size));\n \n .title-div, .published-div, .subtitle-div {\n margin-left: 1.2rem;\n } \n }\n }\n}\n\n.divider {\n margin: 1.25rem 0 2.5rem 0;\n max-width: var(--article-max-width);\n width: 100%;\n hr {\n border: 1px solid var(--article-divider-border-color);\n }\n}\n\n.series-card {\n max-width: var(--article-max-width);\n width: 100%;\n /* display: table; */\n\n .series-text {\n width: 100%;\n margin-top: 1rem;\n margin-bottom: 1rem;\n\n .title-div {\n font-size: calc(1rem + 4px);\n font-weight: bold;\n color: var(--article-title-color);\n overflow: hidden;\n display: -webkit-box;\n -webkit-line-clamp: 3;\n line-clamp: 3; \n -webkit-box-orient: vertical;\n\n .series-title {\n padding: 5px 0;\n text-decoration: none;\n color: var(--series-title-color);\n }\n \n .title-div:hover {\n color: var(--series-title-hover-color);\n }\n }\n \n .series-title:hover {\n color: var(--series-title-hover-color);\n }\n \n .published-div {\n margin-top: 0.4rem;\n font-size: calc(1rem - 2px);\n color: var(--published-div-color);\n \n a {\n text-decoration: none;\n color: var(--published-div-color);\n }\n }\n \n .subtitle-div {\n margin-top: 0.2rem;\n font-size: 1rem;\n color: var(--subtitle-div-color);\n overflow: hidden;\n display: -webkit-box;\n -webkit-line-clamp: 3;\n line-clamp: 3; \n -webkit-box-orient: vertical;\n }\n }\n\n .series-text:has(+ div) {\n float: left;\n width: calc(100% - var(--article-image-size));\n padding-right: 1.2rem\n }\n\n .series-photo {\n display: inline-block;\n float: right;\n width: var(--article-image-size);\n\n .series-img {\n margin-top: 1rem;\n margin-bottom: 1rem;\n width: 100%;\n aspect-ratio: 4/3;\n object-fit: cover;\n border-radius: 8px;\n }\n }\n}\n\n.articles-column, .series-column {\n display: grid;\n place-items: center;\n padding-top: 1rem;\n padding-bottom: 1rem;\n padding-left: 1rem;\n margin-bottom: 1rem;\n}\n\n.articles-column {\n padding-right: 2rem;\n}\n\n.articles-column-width-65 {\n float: left;\n width: 65%;\n}\n\n.articles-column-width-100 {\n float: left;\n width: 100%;\n}\n\n.series-column {\n float: right;\n width: 35%;\n padding-right: 1rem;\n border-left: 2px solid var(--series-border-color);\n\n .series-divider {\n padding: 1rem 0 1rem 0;\n width: 100%;\n \n hr {\n border: 1px solid var(--series-divider-border-color);\n }\n }\n\n .series-label {\n width: 100%;\n color: var(--series-label-color);\n font-size: calc(1rem + 2px);\n font-style: italic;\n }\n}\n\n.row {\n padding: 40px 5% 30px 5%;\n display: block;\n overflow: auto;\n}\n\n.row:after {\n display: table-column;\n content: \"\";\n clear: both;\n}\n\n.alert {\n font-size: calc(1rem + 2px);\n}\n\n.spaces {\n -moz-user-select: none;\n -khtml-user-select: none;\n -webkit-user-select: none;\n -ms-user-select: none;\n user-select: none;\n}\n\n.pagination-wrapper {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 100%;\n padding: 20px 0;\n\n span {\n color: var(--pagination-dots-color);\n -webkit-user-select: none;\n user-select: none;\n }\n\n .pagination a {\n color: var(--pagination-font-color);\n font-size: 0.8rem;\n font-weight: 500;\n padding: 6px 12px;\n text-decoration: none;\n transition: background-color .3s;\n \n span {\n color: var(--pagination-arrows-color);\n }\n }\n \n .pagination a:hover {\n background-color: var(--pagination-background-hover);;\n }\n}\n\n@media (max-width:2500px) {\n html {\n font-size: 21px;\n }\n\n .series-card { \n .series-photo {\n width: 30%;\n \n .series-img {\n aspect-ratio: 1;\n border-radius: 5px;\n }\n }\n \n .series-text:has(+ div) {\n width: 70%;\n }\n }\n}\n\n@media (max-width:2000px) {\n html {\n font-size: 20px;\n }\n\n .series-card { \n .series-photo {\n width: 32%;\n }\n \n .series-text:has(+ div) {\n width: 68%;\n }\n }\n}\n\n@media (max-width:1700px) {\n html {\n font-size: 19px;\n }\n\n .series-card { \n .series-photo {\n display: none;\n }\n\n .series-text:has(+ div) {\n width: 100%;\n }\n }\n}\n\n@media (max-width:1350px) {\n html {\n font-size: 18px;\n }\n}\n\n@media screen and (max-width: 1050px) {\n html {\n font-size: 17px;\n }\n\n .article-card {\n .photo-row {\n .article-photo {\n width: 27%;\n }\n \n .article-text {\n width: 73%;\n }\n }\n }\n\n .articles-column-width-65, .series-column {\n width: 100%;\n }\n \n .articles-column, .series-column {\n padding: 1rem;\n }\n\n .series-column {\n float: left;\n border-left: none;\n border-top: 2px solid var(--series-border-color);\n \n .series-divider {\n margin: 1.25rem 0 1.25rem 0;\n }\n \n .title-div {\n font-size: calc(1rem + 4px);\n }\n }\n\n .series-card { \n .series-photo {\n display: inline-block;\n width: 27%;\n\n .series-img {\n aspect-ratio: 4/3;\n border-radius: 6px;\n }\n }\n \n .series-text:has(+ div) {\n width: 73%;\n }\n }\n}\n\n@media screen and (max-width: 750px) {\n .article-card {\n .photo-row {\n .article-photo {\n width: 30%;\n \n .article-img {\n border-radius: 6px;\n aspect-ratio: 1;\n }\n \n .article-photo-label {\n border-radius: 6px 1px 3px 1px;\n }\n }\n \n .article-text {\n width: 70%;\n }\n }\n }\n \n .series-card {\n .series-text:has(+ div) {\n width: 70%;\n }\n\n .series-photo {\n width: 30%;\n \n .series-img {\n aspect-ratio: 1;\n }\n }\n }\n}\n\n@media screen and (max-width: 600px) {\n .article-card {\n .photo-row {\n .article-photo {\n display: flex;\n justify-content: center;\n align-items: center;\n width: 100%;\n margin-bottom: 1.5rem;\n \n .article-img {\n width: 100%;\n max-width: var(--article-max-image-size);\n aspect-ratio: 16/9;\n border-radius: 8px;\n }\n \n .article-photo-label {\n left: 0;\n border-radius: 8px 1px 3px 1px;\n }\n }\n \n .article-text {\n width: 100%;\n \n .title-div, .published-div, .subtitle-div {\n margin-left: 0;\n }\n \n .title-div {\n font-size: calc(1rem + 3px);\n }\n }\n }\n }\n\n .series-card {\n display: inline-block;\n\n .series-text {\n .title-div {\n font-size: calc(1rem + 3px);\n }\n }\n\n .series-text:has(+ div) {\n width: 100%;\n }\n\n .series-photo {\n display: flex;\n justify-content: center;\n align-items: center;\n width: 100%;\n\n .series-img {\n width: 100%;\n max-width: var(--article-max-image-size);\n aspect-ratio: 16/9;\n border-radius: 8px;\n }\n }\n }\n}\n\n@media screen and (max-width: 420px) {\n .articles-column, .series-column {\n padding: 1rem 0.5rem;\n }\n}\n\n@media screen and (max-width: 360px) {\n .articles-column, .series-column {\n padding: 1rem 0;\n }\n}\n"
},
{
"template_uri": "mainpage_rss",
"template_set": "mainpage",
"template_type": "mainpage",
"content_type": "rss",
"contents": "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n<rss version=\"2.0\">\n<channel>\n <title>{{ global.website_title|escape }}</title>\n <link>{{ global.website_url }}</link>\n <description>{{ global.website_description|escape }}</description>\n <generator>LibreBlog.org</generator>\n{% for item in items %}\n <item>\n <title>{{ item.title|escape }}</title>\n <link>{{ global.website_url }}/{% if item.type %}articles{% else %}series{% endif %}/{{ item.uri }}</link>\n {% if item.subtitle %}<description>{{ item.subtitle|escape }}</description>{% endif %}\n <pubDate>{{ item.updated }}</pubDate>\n {% if item.section_title %}<category>{{ item.section_title|escape }}</category>{% endif %}\n {% if item.photo %}<media:content url=\"{{ global.img_url_prefix ~ item.photo }}\" medium=\"image\" />{% endif %}\n </item>\n{% endfor %}\n</channel>\n</rss>"
},
{
"template_uri": "section_html",
"template_set": "section",
"template_type": "section",
"content_type": "html",
"contents": "<!doctype html>\n<html lang=\"{{ global.website_language }}\">\n<head>\n {{ global.head_code_snippets|raw }}\n <meta charset=\"utf-8\" />\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\" />\n <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\" />\n <meta name=\"generator\" content=\"LibreBlog.org\" />\n <link rel=\"schema.DC\" href=\"http://purl.org/dc/elements/1.1/\" />\n <meta name=\"DC.Title\" content=\"{{ section.title|escape }}{% if global.website_name %}{{ ' | ' ~ global.website_name|escape }}{% endif %}\" />\n <meta name=\"DC.Description\" content=\"{{ section.description|escape }}\" />\n <meta property=\"og:title\" content=\"{{ section.title|escape }}{% if global.website_name %}{{ ' | ' ~ global.website_name|escape }}{% endif %}\" />\n <meta name=\"description\" content=\"{{ section.description|escape }}\" />\n <meta property=\"og:description\" content=\"{{ section.description|escape }}\" />\n <meta property=\"og:type\" content=\"website\" />\n <title>{{ section.title|escape }}{% if global.website_name %}{{ ' | ' ~ global.website_name|escape }}{% endif %}</title>\n <link rel=\"alternate\" type=\"application/rss+xml\" title=\"{{ global.website_title|escape }}\" href=\"{{ global.website_url }}/sections/{{ section.uri }}.rss\" />\n {% if current_page == 1 %}\n <meta property=\"og:url\" content=\"{{ global.website_url }}/sections/{{ section.uri }}{{ global.dot_html_for_links }}\" />\n <link rel=\"canonical\" href=\"{{ global.website_url }}/sections/{{ section.uri }}{{ global.dot_html_for_links }}\" />\n {% else %}\n <meta property=\"og:url\" content=\"{{ global.website_url }}/sections/{{ section.uri }}/page/{{ current_page }}{{ global.dot_html_for_links }}\" />\n <link rel=\"canonical\" href=\"{{ global.website_url }}/sections/{{ section.uri }}/page/{{ current_page }}{{ global.dot_html_for_links }}\" />\n {% endif %}\n {% for file in css_files %}\n <link rel=\"stylesheet\" href=\"/css/{{ file }}\" />\n {% endfor %}\n {% if global.website_favicon %}\n <link rel=\"icon\" type=\"image/x-icon\" href=\"{% if global.website_favicon|slice(0,7) == 'http://' or global.website_favicon|slice(0,8) == 'https://' %}{{ global.website_favicon }}{% else %}{{ media_url(global.website_favicon, media) }}{% endif %}\" />\n {% endif %}\n {% if current_page < how_many_pages %}\n <link rel=\"next\" href=\"/page/{{ current_page + 1 }}{{ global.dot_html_for_links }}\" />\n {% endif %}\n {% if current_page > 2 %}\n <link rel=\"prev\" href=\"/page/{{ current_page - 1 }}{{ global.dot_html_for_links }}\" />\n {% else %}\n {% if current_page == 2 %}\n <link rel=\"prev\" href=\"/index{{ global.dot_html_for_links }}\" />\n {% endif %}\n {% endif %}\n</head>\n<body>\n {{ components.header }}\n <main class=\"row\">\n <section id=\"articles\" class=\"articles-column {% if series is not empty %}articles-column-width-65{% else %}articles-column-width-100{% endif %}\" vocab=\"http://purl.org/dc/elements/1.1/\" typeof=\"dc:Collection\" resource=\"{{ global.website_url }}/sections/{{ section.uri }}{{ global.dot_html_for_links }}#articles\">\n <div id=\"section-card\" class=\"sectionpg-card\" typeof=\"dc:Resource\" resource=\"{{ global.website_url }}/sections/{{ section.uri }}{{ global.dot_html_for_links }}#section-card\">\n <div class=\"sectionpg-title\" role=\"heading\" aria-level=\"1\" property=\"dc:title\">{{ section.title|upper|escape }}</div>\n <div class=\"sectionpg-description\" property=\"dc:description\">{{ section.contents }}</div>\n </div>\n {% for article in articles %}\n <article class='article-card' typeof=\"dc:Resource\" resource=\"{{ global.website_url }}/articles/{{ article.uri }}{{ global.dot_html_for_links }}\">\n {% if article.photo %}\n <div class='photo-row'>\n <div class=\"article-photo\">\n {% if article.label %}\n <label class=\"article-photo-label\">{{ article.label|escape }}</label>\n {% endif %}\n <a href='/articles/{{ article.uri }}{{ global.dot_html_for_links }}'><img class=\"article-img\" src=\"{{ photo_version(article.photo, 'small') }}\" loading=\"lazy\" alt=\"{{ article.photo.alt_text }}\" /></a>\n </div>\n {% else %}\n <div class='nophoto-row'>\n {% endif %}\n <div class=\"article-text\">\n <div class=\"title-div\" role=\"heading\" aria-level=\"2\">\n <a class='article-title' href='/articles/{{ article.uri }}{{ global.dot_html_for_links }}' property=\"dc:title\">{{ article.title|escape }}</a>\n </div>\n {% set article_published = article.published ? article.published : article.created %}\n {% if not article.declared_values[\"hide-byline-on-section-page\"] %}\n <div class=\"published-div\" property=\"dc:date\" resource=\"{{ iso_datetime(article_published) }}{{ global.website_timezone }}\">\n <time class=\"item-date\" datetime=\"{{ iso_datetime(article_published) }}\" timezone-abbreviation=\"{{ global.timezone_abbreviation }}\">{{ format_date(article_published) }} {{ global.timezone_abbreviation }}</time>\n </div>\n {% endif %}\n <div class=\"subtitle-div\" property=\"dc:description\">\n {{ article.subtitle|escape }}\n </div>\n </div>\n </div>\n </article>\n {% if not loop.last %}<div class=\"divider\"><hr/></div>{% endif %}\n {% else %}\n <strong class=\"alert\">{{ global.strings.no_articles_found }}</strong>\n {% endfor %}\n </section>\n {% if series is not empty %}\n <section id=\"series\" class=\"series-column\" vocab=\"http://purl.org/dc/elements/1.1/\" typeof=\"dc:Collection\" resource=\"{{ global.website_url }}/sections/{{ section.uri }}{{ global.dot_html_for_links }}#series\">\n <div class=\"series-label\">{{ global.strings.series_label }}</div>\n {% for s in series %}\n <article class=\"series-card\" typeof=\"dc:Resource\" resource=\"{{ global.website_url }}/series/{{ s.uri }}{{ global.dot_html_for_links }}\">\n <div class=\"series-text\">\n <div class=\"title-div\" role=\"heading\" aria-level=\"2\">\n <a class='series-title' href='/series/{{ s.uri }}{{ global.dot_html_for_links }}' property=\"dc:title\">{{ s.title|escape }}</a>\n </div>\n {% set s_published = s.published ? s.published : s.created %}\n {% if not s.declared_values[\"hide-byline-on-section-page\"] %}\n <div class=\"published-div\" property=\"dc:date\" resource=\"{{ iso_datetime(s_published) }}{{ global.website_timezone }}\">\n <time class=\"item-date\" datetime=\"{{ iso_datetime(s_published) }}\" timezone-abbreviation=\"{{ global.timezone_abbreviation }}\">{{ format_date(s_published) }} {{ global.timezone_abbreviation }}</time>\n </div>\n {% endif %}\n <div class=\"subtitle-div\" property=\"dc:description\">{{ s.subtitle|escape }}</div>\n </div>\n {% if s.photo %}\n <div class=\"series-photo\">\n <a href='/series/{{ s.uri }}{{ global.dot_html_for_links }}'><img class=\"series-img\" src=\"{{ photo_version(s.photo, 'small') }}\" loading=\"lazy\" alt=\"{{ s.photo.alt_text }}\" /></a>\n </div>\n {% endif %}\n </article>\n {% if not loop.last %}<div class=\"series-divider\"><hr/></div>{% endif %}\n {% endfor %}\n </section>\n {% endif %}\n </main>\n {% if how_many_pages > 1 %}\n <div class=\"pagination-wrapper\">\n <div class=\"pagination\">\n {% if current_page > 1 %}\n <a href=\"{% if current_page == 2 %}/sections/{{ section.uri }}{% else %}/section/{{ section.uri }}/page/{{ current_page - 1 }}{% endif %}{{ global.dot_html_for_links }}\"><span>❮</span> {{ global.strings.previous_articles }}</a>\n <span>⦁ ⦁ ⦁</span> \n <a href=\"/sections/{{ section.uri }}{{ global.dot_html_for_links }}\">{{ global.strings.initial_page }}</a>\n {% endif %}\n {% if current_page < how_many_pages %}\n {% if current_page > 1 %}<span>⦁ ⦁ ⦁</span>{% endif %}\n <a href=\"/sections/{{ section.uri }}/page/{{ current_page + 1 }}{{ global.dot_html_for_links }}\">{{ global.strings.next_articles }} <span>❯</span></a>\n {% endif %}\n </div>\n </div>\n {% endif %}\n {{ components.footer }}\n <script src=\"/js/{{ search_js_file }}\" defer></script>\n <script src=\"/js/main.js\"></script>\n</body>\n</html>\n"
},
{
"template_uri": "section_css",
"template_set": "section",
"template_type": "section",
"content_type": "css",
"contents": ":root {\n --sectionpg-title-color: {{ global.colors.primary_text }};\n --sectionpg-description-color: {{ global.colors.lower_contrast_text }};\n --contents-cell-border: {{ global.colors.dividers }};\n --contents-table-border: {{ global.colors.secondary_text }};\n --contents-hr-color: {{ global.colors.dividers }};\n --photo-info-color: {{ global.colors.secondary_text }};\n --blockquote-color: {{ global.colors.lower_contrast_text }};\n --sectionpg-card-max-width: 1000px;\n}\n\n.sectionpg-card {\n display: block;\n padding-bottom: 2.5rem;\n width: 100%;\n max-width: var(--sectionpg-card-max-width);\n\n .sectionpg-title {\n width: 100%;\n margin-bottom: 0.32rem;\n font-size: calc(1rem + 6px);\n font-weight: bold;\n color: var(--sectionpg-title-color);\n }\n\n .sectionpg-description {\n width: 100%;\n font-size: 1rem;\n color: var(--sectionpg-description-color);\n display: flex;\n flex-flow: column;\n align-items: center;\n gap: 1rem;\n line-height: 1.3;\n padding-bottom: 1.5rem;\n \n img {\n max-width: 100%;\n border-radius: 4px;\n }\n \n pre:has(code) {\n display: block; \n max-width: 90vw;\n width: 100%;\n overflow-x: hidden;\n padding: 0;\n margin: 0;\n font-size: 90%;\n \n &:first-line {\n line-height: 0;\n }\n \n code {\n display: block;\n width: 100%;\n overflow-x: auto;\n padding-left: 0.5em;\n padding-right: 0.5em;\n margin: 0;\n }\n }\n \n code {\n border-radius: 5px; \n -moz-border-radius: 5px; \n -webkit-border-radius: 5px; \n background-color: #ececec;\n padding: 2px;\n font: 0.9rem Monaco, Consolas, monospace;\n }\n \n p, h1, h2, h3, h4, h5, h6, pre {\n width: 100%;\n padding: 0;\n margin: 0;\n }\n \n p:has(img) {\n width: unset;\n \n img[style*='float:left'], img[style*='float: left'] {\n margin-right: 0.5rem;\n }\n \n img[style*='float:right'], img[style*='float: right'] {\n margin-left: 0.5rem;\n }\n }\n \n ol, ul {\n width: 100%;\n margin-top: 0;\n margin-bottom: 0;\n }\n \n p + ul, p + ol {\n margin-top: -1rem;\n }\n \n blockquote {\n width: 100%;\n margin: 0;\n padding-left: 20px;\n color: var(--blockquote-color);\n font-style: italic;\n }\n \n a {\n text-decoration: none;\n color: blue;\n }\n \n figure {\n width: 100%;\n margin: 0;\n padding: 0;\n }\n \n figcaption {\n font-size: calc(1rem - 1px);\n color: var(--photo-info-color);\n padding-left: 10px;\n }\n \n hr {\n border: 0;\n clear:both;\n display:block;\n width: 96%; \n background-color: var(--contents-hr-color);\n height: 1px;\n }\n \n table {\n margin-top: 0;\n margin-bottom: 0;\n font-size: 1rem;\n border: 1px solid var(--contents-table-border);\n border-spacing: 0;\n border-radius: 4px;\n \n th {\n font-weight: 500;\n border-bottom: 1px solid var(--contents-table-border);\n }\n \n tr:not(:first-child) td {\n border-top: 1px solid var(--contents-cell-border);\n }\n \n th, td {\n padding: 10px 15px;\n }\n }\n \n li {\n line-height: 1;\n }\n \n h1, h2, h3, h4, h5 {\n font-weight: bold;\n }\n \n h1 {\n font-size: calc(1rem + 6px);\n }\n \n h2 {\n font-size: calc(1rem + 4px);\n }\n \n h3 {\n font-size: calc(1rem + 2px);\n }\n \n h4 {\n font-size: 1rem;\n }\n \n h5 {\n font-size: 1rem;\n font-weight: 500;\n }\n \n h6 {\n font-size: calc(1rem - 2px);\n font-weight: 500;\n }\n }\n}\n\n@media screen and (max-width: 1050px) {\n .sectionpg-card {\n margin-top: 1.25rem;\n }\n}\n"
},
{
"template_uri": "section_rss",
"template_set": "section",
"template_type": "section",
"content_type": "rss",
"contents": "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n<rss version=\"2.0\">\n<channel>\n <title>{{ section.title|escape ~ ' | ' ~ global.website_name|escape }}</title>\n <link>{{ global.website_url }}/sections/{{ section.uri }}</link>\n <description>{{ global.website_description|escape }}</description>\n <generator>LibreBlog.org</generator>\n{% for item in items %}\n <item>\n <title>{{ item.title|escape }}</title>\n <link>{{ global.website_url }}/{% if item.type %}articles{% else %}series{% endif %}/{{ item.uri }}</link>\n {% if item.subtitle %}<description>{{ item.subtitle|escape }}</description>{% endif %}\n <pubDate>{{ item.updated }}</pubDate>\n {% if item.photo %}<media:content url=\"{{ global.img_url_prefix ~ item.photo }}\" medium=\"image\" />{% endif %}\n </item>\n{% endfor %}\n</channel>\n</rss>"
},
{
"template_uri": "series_html",
"template_set": "series",
"template_type": "series",
"content_type": "html",
"contents": "<!doctype html>\n<html lang=\"{{ global.website_language }}\">\n<head>\n {{ global.head_code_snippets|raw }}\n <meta charset=\"utf-8\" />\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\" />\n <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\" />\n <meta name=\"generator\" content=\"LibreBlog.org\" />\n <link rel=\"schema.DC\" href=\"http://purl.org/dc/elements/1.1/\" />\n <meta name=\"DC.Title\" content=\"{{ series.title|escape }}\" />\n <meta name=\"DC.Subject\" content=\"{{ global.website_url }}/sections/{{ section.uri }}{{ global.dot_html_for_links }}\" />\n <meta name=\"DC.Description\" content=\"{{ series.subtitle|escape }}\" />\n {% set series_published = series.published ? series.published : series.created %}\n <meta name=\"DC.Date\" content=\"{{ iso_datetime(series_published) }}{{ global.website_timezone }}\" />\n <meta property=\"og:title\" content=\"{{ series.title|escape }}\" />\n <meta name=\"description\" content=\"{{ series.subtitle|escape }}\" />\n <meta property=\"og:description\" content=\"{{ series.subtitle|escape }}\" />\n {% if series.authors %}\n {% for author in series.authors %}\n <meta name=\"DC.Creator\" content=\"{{ global.website_url }}/authors/{{ author.uri }}{{ global.dot_html_for_links }}\" />\n <meta property=\"article:author\" content=\"{{ global.website_url }}/authors/{{ author.uri }}{{ global.dot_html_for_links }}\" />\n {% endfor %}\n {% endif %}\n {% if series.photo %}\n <meta property=\"og:image\" content=\"{{ photo_version(series.photo, 'large') }}\" />\n <meta property=\"og:image:alt\" content=\"{{ series.photo.alt_text }}\" />\n {% endif %}\n <meta property=\"og:type\" content=\"article\" />\n {% if section.title %}<meta property=\"article:section\" content=\"{{ section.title }}\" />{% endif %}\n <meta property=\"article:published_time\" content=\"{{ iso_datetime(series_published) }}{{ global.website_timezone }}\" />\n <meta property=\"article:modified_time\" content=\"{{ iso_datetime(series.updated) }}{{ global.website_timezone }}\" />\n <title>{{ series.title|escape }}{% if global.website_name %}{{ ' | ' ~ global.website_name|escape }}{% endif %}</title>\n {% if current_page == 1 %}\n <meta property=\"og:url\" content=\"{{ global.website_url }}/series/{{ series.uri }}{{ global.dot_html_for_links }}\" />\n <link rel=\"canonical\" href=\"{{ global.website_url }}/series/{{ series.uri }}{{ global.dot_html_for_links }}\" />\n {% else %}\n <meta property=\"og:url\" content=\"{{ global.website_url }}/series/{{ series.uri }}/page/{{ current_page }}{{ global.dot_html_for_links }}\" />\n <link rel=\"canonical\" href=\"{{ global.website_url }}/series/{{ series.uri }}/page/{{ current_page }}{{ global