libreblog
Version:
An in-browser Static Site Generator focused on content-rich blogs and news websites
305 lines • 194 kB
JavaScript
export default {
"theme_uri": "current",
"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": "latex",
"label": "LaTeX",
"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": "analysis_css",
"template_set": "analysis",
"template_type": "article",
"content_type": "css",
"contents": ":root {\n --reference-number-color: {{ global.colors.secondary_text }};\n --references-label-color: {{ global.colors.secondary_text }};\n --reference-text-normal-color: {{ global.colors.secondary_text }};\n --reference-text-important-color: {{ global.colors.primary_text }};\n --reference-hover-background: {{ global.colors.reference_onhover }};\n --reference-part-hover-background: {{ global.colors.reference_part_onhover }};\n --reference-url-color: {{ global.colors.secondary_text }};\n --reference-url-color-hover: {{ global.colors.primary_text }};\n --timeline-separator-color: {{ global.colors.primary_text }};\n --timeline-label-color: {{ global.colors.secondary_text }};\n --key-elements-label-color: {{ global.colors.secondary_text }};\n --timeline-title-color: {{ global.colors.articles_title }};\n --elements-title-color: {{ global.colors.articles_title }};\n --timeline-title-color-hover: {{ global.colors.articles_title_onhover }};\n --elements-title-color-hover: {{ global.colors.articles_title_onhover }};\n --timeline-date-color: {{ global.colors.primary_text }};\n --timeline-border-color: {{ global.colors.dividers }};\n --elements-border-color: {{ global.colors.dividers }};\n --timeline-description-color: {{ global.colors.lower_contrast_text }};\n --an-title-color: {{ global.colors.primary_text }};\n --an-subtitle-color: {{ global.colors.lower_contrast_text }};\n --photo-info-color: {{ global.colors.secondary_text }};\n --author-name-color: {{ global.colors.secondary_text }};\n --published-text-color: {{ global.colors.secondary_text }};\n --an-notes-summary: {{ global.colors.lower_contrast_tex }};\n --an-notes-contents: {{ global.colors.lower_contrast_text }};\n --an-notes-border: {{ global.colors.dividers }};\n --an-summary-summary: {{ global.colors.lower_contrast_tex }};\n --an-summary-contents: {{ global.colors.lower_contrast_text }};\n --an-click-to-read: {{ global.colors.secondary_text }};\n --an-summary-border: {{ global.colors.dividers }};\n --section-link-color: {{ global.colors.secondary_text }};\n --share-color: {{ global.colors.lower_contrast_text }};\n --share-border: {{ global.colors.dividers }};\n --feedback-color: {{ global.colors.lower_contrast_text }};\n --feedback-border: {{ global.colors.dividers }};\n --elements-mobile-border: {{ global.colors.dividers }};\n --timeline-mobile-border: {{ global.colors.dividers }};\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 --element-image-size: 400px;\n --element-image-size-small-screen: 250px;\n /*--element-image-size-tablet: XXpx;*/\n --max-width-only-column-small-screen: 700px;\n --max-width-side-column-big-screen: 450px;\n --max-width-main: 725px;\n}\n\n/* This class is part of the functionality of inserting references into the article */\n.ref-link {\n color: var(--reference-number-color);\n text-decoration: none;\n vertical-align: super;\n font-size: 75%;\n \n &::before {\n content: \"[\";\n }\n \n &::after {\n content: \"]\";\n }\n}\n\n.an-row {\n width: 100%;\n padding-bottom: 3rem;\n\n .an-column {\n float: left;\n padding-top: 1rem;\n padding-bottom: 1rem;\n display: flex;\n flex-flow: column;\n }\n \n .an-left {\n width: 25%;\n padding-left: 1rem;\n padding-right: 0;\n align-items: flex-end;\n }\n \n .an-right {\n width: 25%;\n padding-left: 0;\n padding-right: 1.5rem; \n align-items: flex-start;\n }\n \n .an-middle {\n width: 50%;\n padding-left: 1.5rem;\n padding-right: 1.5rem;\n align-items: center;\n }\n\n .an-middle-large {\n width: 70%;\n padding-left: 2rem;\n padding-right: 2rem;\n align-items: center;\n }\n\n .an-only-column {\n width: 100%;\n align-items: center;\n }\n}\n\n.an-row:after {\n content: \"\";\n display: table;\n clear: both;\n}\n\n.key-elements-label {\n display: block;\n color: var(--key-elements-label-color);\n width: 100%;\n max-width: var(--max-width-side-column-big-screen);\n font-size: calc(1rem + 2px);\n padding-top: 0.6rem;\n padding-bottom: 1rem;\n border-left: 1px solid var(--elements-border-color);\n padding-left: 1.5rem;\n}\n\n.elements {\n border-left: 1px solid var(--elements-border-color);\n padding-left: 1.5rem;\n width: 100%;\n max-width: var(--max-width-side-column-big-screen);\n \n .element-card {\n width: 100%;\n \n .title-div {\n width: 100%;\n overflow: hidden;\n text-overflow: ellipsis;\n color: var(--elements-title-color);\n font-size: calc(1rem + 2px);\n display: -webkit-box;\n -webkit-line-clamp: 3;\n line-clamp: 3; \n -webkit-box-orient: vertical;\n \n &:has([aria-current='page']) {\n color: var(--an-title-color);\n }\n \n .element-title {\n text-decoration: none;\n font-weight: 500;\n color: var(--elements-title-color);\n \n &[aria-current='page'] {\n pointer-events: none;\n cursor: default;\n color: var(--an-title-color);\n }\n }\n \n .element-title:hover {\n color: var(--elements-title-color-hover);\n }\n }\n \n .title-div:hover {\n color: var(--elements-title-color-hover);\n }\n \n .element-contents {\n display: flex;\n flex-flow: column;\n justify-content: center;\n width: 100%;\n \n .element-img {\n width: 100%;\n display: block;\n margin-top: 1rem;\n margin-left: auto;\n margin-right: auto;\n max-width: var(--element-image-size);\n aspect-ratio: 4/3;\n border-radius: 16px;\n object-fit: cover;\n }\n \n .element-description {\n margin-top: 0.5rem;\n font-size: calc(1rem - 2px);\n }\n }\n }\n}\n\n.timeline-label {\n display: block;\n color: var(--timeline-label-color);\n border-right: 1px solid var(--timeline-border-color);\n padding-top: 0.8rem;\n padding-right: 1.5rem;\n padding-bottom: 1rem;\n padding-left: 0;\n text-align: center;\n font-size: calc(1rem + 2px);\n width: 100%;\n max-width: var(--max-width-side-column-big-screen);\n}\n\n.timeline {\n display: grid;\n grid-column-gap: 1rem;\n grid-template-columns: 2.7rem 0.1rem 1fr;\n border-right: 1px solid var(--timeline-border-color);\n padding-right: 1.5rem;\n width: 100%;\n max-width: var(--max-width-side-column-big-screen);\n \n .timeline-date {\n margin-top: 0.25rem;\n color: var(--timeline-date-color);\n font-size: 0.7rem;\n font-weight: bold;\n text-align: right;\n }\n\n .timeline-separator {\n background-color: var(--timeline-separator-color);\n position: relative;\n }\n \n .timeline-separator::before {\n content: '';\n position: absolute;\n top: 0.25rem;\n left: 50%;\n transform: translateX(-50%);\n background: inherit;\n border-radius: 50%;\n height: 0.7rem;\n width: 0.7rem;\n }\n \n .timeline-contents {\n .timeline-title {\n a {\n color: var(--timeline-title-color);\n text-decoration: none;\n cursor: pointer;\n font-weight: 500;\n font-size: 1rem;\n \n &[aria-current='page'] {\n pointer-events: none;\n cursor: default;\n color: var(--an-title-color);\n }\n }\n \n a:hover {\n color: var(--timeline-title-color-hover);\n }\n }\n \n .timeline-description {\n font-size: calc(1rem - 2px);\n color: var(--timeline-description-color);\n margin-bottom: 1rem;\n }\n }\n}\n\n#an-main {\n max-width: var(--max-width-main);\n display: flex;\n flex-flow: column;\n align-items: center;\n \n #an-breadcrumbs {\n width: 100%;\n color: var(--section-link-color);\n margin-top: 1rem;\n }\n \n #an-section-link, #an-series-link {\n text-decoration: none;\n color: var(--section-link-color);\n margin-top: 0.5rem;\n font-size: 0.85rem;\n }\n \n #an-title {\n width: 100%;\n font-size: calc(1rem + 9px);\n font-weight: bold;\n color: var(--an-title-color);\n margin-top: 1rem;\n -webkit-hyphens: auto;\n -moz-hyphens: auto;\n -ms-hyphens: auto;\n hyphens: auto;\n }\n \n #an-subtitle {\n width: 100%;\n font-size: 1rem;\n color: var(--an-subtitle-color);\n margin-top: 1rem;\n }\n \n #an-published-div {\n display: block;\n margin-top: 1rem;\n width: 100%;\n font-size: 0.85rem;\n color: var(--published-text-color);\n border-left: 1px solid var(--published-text-color);\n padding-left: 0.4rem;\n \n #an-published {\n margin-right: 1rem;\n white-space: nowrap;\n }\n \n #an-updated {\n white-space: nowrap;\n }\n }\n \n #an-authors {\n width: 100%;\n height: 32px;\n display: flex;\n align-items: center;\n overflow-x: scroll;\n scrollbar-width: none;\n margin-top: 1rem;\n -webkit-user-select: none; \n -moz-user-select: none; \n -ms-user-select: none; \n user-select: none;\n \n .and {\n color: var(--author-name-color);\n margin-right: 0.6rem;\n margin-left: 0.6rem;\n }\n \n .author-card {\n display: inline-block; \n white-space: nowrap;\n font-size: calc(1rem - 1px);\n color: var(--author-name-color);\n \n .by {\n display: inline-block;\n margin-right: 0.4rem;\n }\n \n img {\n vertical-align: middle;\n margin-right: 4px;\n width: 32px;\n height: 32px;\n border-radius: 50%;\n }\n \n a {\n text-decoration: none;\n color: var(--author-name-color);\n font-weight: 500;\n white-space: nowrap;\n }\n \n a:hover {\n text-decoration-line: underline;\n }\n }\n }\n \n #an-share {\n font-size: calc(1rem - 1px);\n color: var(--share-color);\n text-align: right;\n padding-top: 1rem;\n padding-right: 0.5rem;\n width: 100%;\n \n #feedback-button{\n border: 1px solid var(--feedback-border);\n border-radius: 5px;\n padding: 0.3rem 0.5rem;\n text-decoration: none;\n color: var(--feedback-color);\n \n &:hover {\n background-color: var(--feedback-border);\n }\n }\n \n #share-button {\n cursor: pointer;\n border: 1px solid var(--share-border);\n border-radius: 5px;\n padding: 0.3rem 0.5rem;\n width: fit-content;\n display: inline;\n \n span {\n margin-right: 0.3rem;\n }\n \n &:hover {\n background-color: var(--share-border);\n }\n }\n }\n \n #an-photo {\n padding-top: 1.5rem;\n\n img {\n width: 100%;\n object-fit: cover;\n border-radius: 8px;\n }\n }\n \n #an-photo-info {\n font-size: 0.85rem;\n margin-top: 0.5rem;\n width: 100%;\n align-items: flex-start;\n color: var(--photo-info-color);\n border-left: 1px solid var(--photo-info-color);\n padding-left: 0.4rem;\n }\n\n #an-notes {\n width: 100%;\n margin-top: 1rem;\n font-size: calc(1rem - 2px);\n \n summary {\n color: var(--an-notes-summary);\n cursor: pointer;\n \n .click-to-read {\n font-weight: normal;\n color: var(--an-click-to-read);\n }\n }\n \n #an-notes-contents {\n margin-top: 0.4rem;\n color: var(--an-notes-contents);\n border: 1px solid var(--an-notes-border);\n border-radius: 5px;\n padding: 0 1rem;\n }\n }\n \n #an-summary {\n width: 100%;\n margin-top: 1rem;\n font-size: calc(1rem - 2px);\n \n summary {\n color: var(--an-summary-summary);\n cursor: pointer;\n \n .click-to-read {\n font-weight: normal;\n color: var(--an-click-to-read);\n }\n }\n \n #an-summary-contents {\n margin-top: 0.4rem;\n color: var(--an-summary-contents);\n border: 1px solid var(--an-summary-border);\n border-radius: 5px;\n padding: 0 1rem;\n }\n }\n\n #an-contents {\n width: 100%;\n display: flex;\n flex-flow: column;\n align-items: center;\n margin-top: 1.5rem;\n font-size: 1rem;\n line-height: 1.5;\n gap: 1.5rem;\n \n img {\n margin: 0.5rem 0;\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:not(.ref-link) {\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.5;\n }\n \n h1, h2, h3, h4, h5 {\n font-weight: bold;\n }\n \n h1 {\n font-size: calc(1rem + 8px);\n }\n \n h2 {\n font-size: calc(1rem + 6px);\n }\n \n h3 {\n font-size: calc(1rem + 4px);\n }\n \n h4 {\n font-size: calc(1rem + 2px);\n }\n \n h5 {\n font-size: 1rem;\n }\n\n h6 {\n font-size: 1rem;\n font-weight: 500;\n }\n }\n}\n\n#an-references {\n width: 100%;\n \n #references-label {\n display: block;\n margin-top: 2.5rem;\n margin-bottom: 1rem;\n font-size: calc(1rem + 2px);\n font-weight: 500;\n color: var(--references-label-color);\n }\n \n #references {\n padding-inline-start: 1.5rem;\n \n .reference-item {\n font-size: calc(1rem - 2px);\n \n &:not(:last-child) { \n margin-bottom: 0.4rem; \n }\n \n &:hover {\n background-color: var(--reference-hover-background);\n }\n \n .ref-author {\n color: var(--reference-text-important-color);\n\n &:hover {\n background-color: var(--reference-part-hover-background);\n }\n }\n \n .ref-py {\n color: var(--reference-text-normal-color);\n white-space: nowrap;\n }\n \n .ref-title {\n color: var(--reference-text-important-color);\n font-weight: 500;\n\n &:hover {\n background-color: var(--reference-part-hover-background);\n }\n }\n \n .ref-source {\n &:hover {\n background-color: var(--reference-part-hover-background);\n }\n\n .source-part-label {\n color: var(--reference-text-normal-color);\n }\n \n .source-part-content {\n color: var(--reference-text-important-color);\n font-style: italic;\n }\n }\n \n .reference-url {\n a {\n text-decoration: none;\n color: var(--reference-url-color);\n }\n \n a:hover {\n color: var(--reference-url-color-hover);\n }\n }\n \n .ref-type {\n color: var(--reference-text-normal-color);\n white-space: nowrap;\n }\n \n .loc-cit {\n font-style: italic;\n color: var(--reference-text-normal-color);\n white-space: nowrap;\n }\n } \n }\n}\n\n#comments-section {\n margin-top: 1.5rem;\n margin-bottom: 1.5rem;\n width: 100%;\n}\n\n@media screen and (max-width: 1200px) {\n .an-row .an-column {\n width: 100%;\n padding-left: max(calc((100% - var(--max-width-only-column-small-screen))/2), 1rem);\n padding-right: max(calc((100% - var(--max-width-only-column-small-screen))/2), 1rem);\n }\n\n .an-row .an-only-column {\n margin-left: 0;\n }\n \n .an-row {\n display:flex;\n flex-flow: column;\n \n .an-left {\n order: 2;\n }\n \n .an-right {\n order: 3; \n }\n \n .an-middle {\n order: 1;\n }\n \n .an-middle-large {\n order: 1;\n }\n }\n \n .timeline {\n max-width: var(--max-width-only-column-small-screen);\n border: none;\n }\n \n .timeline-label {\n max-width: var(--max-width-only-column-small-screen);\n text-align: left;\n padding-top: 1rem;\n border-top: 1px solid var(--timeline-mobile-border);\n border-right: none;\n }\n \n .key-elements-label {\n padding-left: 0;\n max-width: var(--max-width-only-column-small-screen);\n padding-top: 1rem;\n border-top: 1px solid var(--elements-mobile-border);\n border-left: none;\n }\n \n .elements {\n padding-left: 0;\n max-width: var(--max-width-only-column-small-screen);\n border: none;\n \n .element-card {\n .title-div {\n text-align: left;\n margin-bottom: 0;\n }\n \n .element-contents {\n flex-flow: row;\n justify-content: space-between;\n width: 100%;\n\n .element-description {\n margin-top: 0;\n }\n \n .element-img {\n width: var(--element-image-size-small-screen);\n float: left;\n margin-top: 1rem;\n margin-right: 1rem;\n }\n }\n }\n }\n}\n\n@media (min-width:1700px) {\n #an-main {\n #an-title {\n font-size: 26px;\n }\n }\n}\n\n@media (max-width: 768px) {\n #an-main {\n #an-title {\n font-size: calc(1rem + 5px);\n }\n }\n \n .elements {\n .element-card {\n .element-contents {\n flex-flow: column;\n align-items: center;\n \n .element-description {\n margin-top: 0.5rem;\n }\n \n .element-img {\n width: 100%;\n /*max-width: var(--element-image-size-tablet);*/\n margin-top: 1rem;\n margin-left: auto;\n margin-right: auto;\n aspect-ratio: 16/9;\n border-radius: 8px;\n }\n }\n }\n }\n}\n\n@media screen and (max-width: 420px) {\n #an-main {\n #an-title {\n font-size: calc(1rem + 4px);\n }\n }\n}\n\n@media screen and (max-width: 360px) {\n #an-main {\n #an-title {\n font-size: calc(1rem + 2px);\n }\n }\n}"
},
{
"template_uri": "analysis_html",
"template_set": "analysis",
"template_type": "article",
"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=\"{{ article.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=\"{{ article.subtitle|escape }}\" />\n {% set article_published = article.published ? article.published : article.created %}\n <meta name=\"DC.Date\" content=\"{{ iso_datetime(article_published) }}{{ global.website_timezone }}\" />\n <meta property=\"og:title\" content=\"{{ article.title |escape }}{% if global.website_name %}{{ ' | ' ~ global.website_name|escape }}{% endif %}\" />\n <meta name=\"description\" content=\"{{ article.subtitle|escape }}\" />\n <meta property=\"og:description\" content=\"{{ article.subtitle|escape }}\" />\n {% if article.authors %}\n {% for author in article.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 article.photo %}\n <meta property=\"og:image\" content=\"{{ photo_version(article.photo, 'large') }}\" />\n <meta property=\"og:image:alt\" content=\"{{ article.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(article_published) }}{{ global.website_timezone }}\" />\n <meta property=\"article:modified_time\" content=\"{{ iso_datetime(article.updated) }}{{ global.website_timezone }}\" />\n <meta property=\"og:url\" content=\"{{ global.website_url }}/articles/{{ article.uri }}{{ global.dot_html_for_links }}\" />\n <title>{{ article.title |escape }}{% if global.website_name %}{{ ' | ' ~ global.website_name|escape }}{% endif %}</title>\n <link rel=\"canonical\" href=\"{{ global.website_url }}/articles/{{ article.uri }}{{ global.dot_html_for_links }}\" />\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 <script type=\"application/ld+json\">\n {\n \"@context\": \"https://schema.org\",\n \"@type\": \"Article\",\n \"headline\": \"{{ article.title|escape }}\",\n \"image\": [\n \"{{ photo_version(article.photo, 'large') }}\"\n ],\n \"datePublished\": \"{{ iso_datetime(article_published) }}{{ global.website_timezone }}\",\n \"dateModified\": \"{{ iso_datetime(article.updated) }}{{ global.website_timezone }}\",\n \"author\": [\n {% for author in article.authors %}\n {\n \"@type\": \"Person\",\n \"name\": \"{{ author.name|escape }}\",\n \"url\": \"{{ global.website_url }}/authors/{{ author.uri }}{{ global.dot_html_for_links }}\"\n }{% if not loop.last %},{% endif %}\n {% endfor %}\n ]\n }\n </script>\n {% if article.declared_values[\"head-snippet\"] %}{{ article.declared_values[\"head-snippet\"]|raw }}{% endif %}\n</head>\n<body>\n {{ components.header }}\n <article class=\"an-row\">\n {% if relations.first_articles.event %}\n <aside id=\"events\" class=\"an-column an-left\" vocab=\"http://purl.org/dc/elements/1.1/\" typeof=\"dc:Collection\" resource=\"{{ global.website_url }}/articles/{{ article.uri }}{{ global.dot_html_for_links }}#events\">\n <label class=\"timeline-label\" property=\"dc:type\">{%if article.declared_values[\"timeline-label\"] %}{{ article.declared_values[\"timeline-label\"] }}{% else %}{{ global.strings.timeline_label }}{% endif %}</label>\n <div class=\"timeline\">\n {% set events = relations.first_articles.event %} \n {% if article.declared_values[\"timeline-asc\"] %}\n {% set events = events|reverse %}\n {% endif %}\n {% for event in events %}\n <div class=\"timeline-date\"> {{ format_date(event.relation.place) }} </div>\n <div class=\"timeline-separator\"></div>\n <article class=\"timeline-contents\" typeof=\"dc:Resource\" resource=\"{{ global.website_url }}/articles/{{ event.uri }}{{ global.dot_html_for_links }}\">\n <div class=\"timeline-title\" role=\"heading\" aria-level=\"2\"><a href=\"/articles/{{ event.uri }}{{ global.dot_html_for_links }}\" {% if event.uri == article.uri %}aria-current='page'{% endif %} property=\"dc:title\">{% if event.relation.title %}{{ event.relation.title|escape }}{% else %}{{ event.title|escape }}{% endif %}</a></div>\n <div class=\"timeline-description\" property=\"dc:description\">\n {{ event.relation.contents|raw }}\n </div>\n </article>\n {% endfor %}\n </div>\n </aside>\n {% endif %}\n <main id=\"article-body\" class=\"an-column {% if relations.first_articles.event and relations.first_articles.element %}an-middle{% else %}an-middle-large{% endif %}{% if not relations.first_articles.event and not relations.first_articles.element %} an-only-column{% endif %}\" vocab=\"http://purl.org/dc/elements/1.1/\" typeof=\"dc:Resource\" resource=\"{{ global.website_url }}/articles/{{ article.uri }}{{ global.dot_html_for_links }}#article-body\">\n <div id=\"an-main\">\n {% if section.title or series.title %}\n <div id=\"an-breadcrumbs\">\n {% if section.title %}\n <a id=\"an-section-link\" href=\"/sections/{{ section.uri }}{{ global.dot_html_for_links }}\" property=\"dc:subject\" resource=\"{{ global.website_url }}/sections/{{ section.uri }}{{ global.dot_html_for_links }}\">{{ section.title|upper|escape }}</a>\n {% endif %}\n {% if section.title and series.title %}<span> / </span>{% endif %}\n {% if series.title %}\n <a id=\"an-series-link\" href=\"/series/{{ series.uri }}{{ global.dot_html_for_links }}\" property=\"dc:subject\" resource=\"{{ global.website_url }}/series/{{ series.uri }}{{ global.dot_html_for_links }}\">{{ series.title|upper|escape }}</a>\n {% endif %}\n </div>\n {% endif %}\n <div id=\"an-title\" role=\"heading\" aria-level=\"1\" property=\"dc:title\">\n {{ article.title|escape }}\n </div>\n <div id=\"an-subtitle\" role=\"heading\" aria-level=\"2\" property=\"dc:description\">\n {{ article.subtitle|escape }}\n </div>\n <div id=\"an-published-div\">\n <span id=\"an-published\">{{ global.strings.published_on }}: {{ format_date(article_published) }} {{ global.timezone_abbreviation }}</span>\n {% if date(iso_datetime(article_published)) < date(iso_datetime(article.updated)) %}\n <span id=\"an-updated\">{{ global.strings.last_updated_on }}: {{ format_date(article.updated) }} {{ global.timezone_abbreviation }}</span>\n {% endif %}\n </div>\n {% if article.authors %}\n <div id=\"an-authors\">\n {% for author in article.authors %}\n <article class=\"author-card\">\n {% if author.photo %}\n <a href=\"/authors/{{ author.uri }}{{ global.dot_html_for_links }}\">\n <img src=\"{{ photo_version(author.photo, 'small') }}\" alt=\"{{ author.photo.alt_text }}\" />\n </a>\n {% else %}\n {% if loop.first %}\n <div class=\"by\">{{ global.strings.written_by }}</div>\n {% endif %}\n {% endif %}\n <a href=\"/authors/{{ author.uri }}{{ global.dot_html_for_links }}\" property=\"dc:creator\" resource=\"{{ global.website_url }}/authors/{{ author.uri }}{{ global.dot_html_for_links }}\">{{ author.name|escape }}</a>\n </article>\n {% if not loop.last %}<div class=\"and\">|</div>{% endif %}\n {% endfor %}\n </div>\n {% endif %}\n {% if global.feedback_uri_prefix or global.share_button %}\n <div id=\"an-share\">\n {% if global.feedback_uri_prefix %}\n <a id=\"feedback-button\" href=\"{{ global.feedback_uri_prefix }}{% if global.article_in_feedback %}{{ article.uri }}{% endif %}\" target=\"_blank\" rel=\"nofollow\" >{{ global.strings.feedback }}</a>\n {% endif %}\n {% if global.share_button %}\n <div id=\"share-button\" data-url=\"{{ global.website_url }}/articles/{{ article.uri }}{{ global.dot_html_for_links }}\" data-title=\"{{ article.title |escape }}{% if global.website_name %}{{ ' | ' ~ global.website_name|escape }}{% endif %}\"> \n <span>{{ global.strings.share }}</span>\n <svg width=\"0.65rem\" height=\"0.7rem\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M11 6C12.6569 6 14 4.65685 14 3C14 1.34315 12.6569 0 11 0C9.34315 0 8 1.34315 8 3C8 3.22371 8.02449 3.44169 8.07092 3.65143L4.86861 5.65287C4.35599 5.24423 3.70652 5 3 5C1.34315 5 0 6.34315 0 8C0 9.65685 1.34315 11 3 11C3.70652 11 4.35599 10.7558 4.86861 10.3471L8.07092 12.3486C8.02449 12.5583 8 12.7763 8 13C8 14.6569 9.34315 16 11 16C12.6569 16 14 14.6569 14 13C14 11.3431 12.6569 10 11 10C10.2935 10 9.644 10.2442 9.13139 10.6529L5.92908 8.65143C5.97551 8.44169 6 8.22371 6 8C6 7.77629 5.97551 7.55831 5.92908 7.34857L9.13139 5.34713C9.644 5.75577 10.2935 6 11 6Z\" fill=\"{{ global.colors.lower_contrast_text }}\"/>\n </svg>\n </div>\n {% endif %}\n </div>\n {% endif %}\n {% if article.photo %}\n <figure>\n <div id=\"an-photo\">\n <img src=\"{{ photo_version(article.photo, 'medium') }}\" alt=\"{{ article.photo.alt_text }}\" />\n </div>\n <figcaption id=\"an-photo-info\">\n {% if article.photo_info %}{{ article.photo_info|raw }}{% else %}{{ article.photo.info|raw }}{% endif %}\n </figcaption>\n </figure>\n {% endif %}\n {% if article.summary %}\n <details id=\"an-summary\" open>\n <summary><span>{{ global.strings.summary }}</span></summary>\n <div id=\"an-summary-contents\" property=\"dc:description\">\n {{ article.summary|raw }}\n </div>\n </details>\n {% endif %}\n {% if article.notes %}\n <details id=\"an-notes\">\n <summary><span>{{ global.strings.notes }}</span><span class=\"click-to-read\">({{ global.strings.click_to_read }})</span></summary>\n <div id=\"an-notes-contents\">\n {{ article.notes|raw }}\n </div>\n </details>\n {% endif %}\n <div id=\"an-contents\">\n {{ article.contents|raw }}\n </div>\n {% if references_length(article.uri) > 0 %}\n <section id=\"an-references\">\n <span id=\"references-label\">{%if article.declared_values[\"references-label\"] %}{{ article.declared_values[\"references-label\"] }}{% else %}{{ global.strings.references_label }}{% endif %}</span>\n <ol id=\"references\" vocab=\"http://purl.org/dc/elements/1.1/\" typeof=\"dc:Collection\" resource=\"{{ global.website_url }}/articles/{{ article.uri }}{{ global.dot_html_for_links }}#references\">\n {% for i in 1..references_length(article.uri) %}\n {% set refid = reference(article.uri, i) %}\n {% if references[refid] %}\n <li id=\"ref-{{ i }}\" class=\"reference-item\" typeof=\"dc:BibliographicResource\" resource=\"{{ refid }}\">\n {% set ref_authors = get_authors(references[refid]) %} \n {% if ref_authors|length > 0 and reference_loc(article.uri, i) %}\n {% set new_ref_authors = ref_authors|slice(0, 2) %}\n {% if ref_authors|length > 2 %}{% set new_ref_authors = new_ref_authors|merge(['et al.']) %}{% endif %}\n {% for ref_author in new_ref_authors %}\n {% if not loop.last %}\n <span class=\"ref-author\" property=\"dc:creator\">{{ ref_author }}</span>\n <span>|</span>\n {% else %}\n <span class=\"ref-author\" property=\"dc:creator\">{% if ref_author != 'et al.' %}{{ ref_author }}{% else %}{{ global.strings.etal }}{% endif %}{% if ref_author|last != '.' %}.{% endif %}</span>\n {% endif %}\n {% endfor %}\n <span class=\"ref-title\" property=\"dc:title\">{{ get_title(references[refid]) }}</span>\n <span class=\"loc-cit\">{{ global.strings.loccit }}</span>\n {% else %}\n {% for ref_author in ref_authors %}\n {% if not loop.last %}\n <span class=\"ref-author\" property=\"dc:creator\">{{ ref_author }}</span>\n <span>|</span>\n {% else %}\n <span class=\"ref-author\" property=\"dc:creator\">{% if ref_author != 'et al.' %}{{ ref_author }}{% else %}{{ global.strings.etal }}{% endif %}{% if ref_author|last != '.' %}.{% endif %}</span>\n {% endif %}\n {% endfor %}\n {% if ref_authors|length > 0 and get_py(references[refid]) %}\n <span class=\"ref-py\">( <span property=\"dc:date\">{{ get_py(references[refid]) }}</span> ).</span>\n {% endif %}\n <span class=\"ref-title\" property=\"dc:title\">{{ get_title(references[refid]) }}{% if get_title(references[refid])|last != '.' and get_title(references[refid])|last != '?' %}.{% endif %}</span>\n {% if ref_authors|length == 0 and get_py(references[refid]) %}\n <span class=\"ref-py\">( <span property=\"dc:date\">{{ get_py(references[refid]) }}</span> ).</span>\n {% endif %}\n <span class=\"ref-source\" property=\"dc:description\">\n {% set ref_source = get_tags(references[refid], [[\"JO\", \"JF\", \"T2\"], [\"VL\", \"VO\", \"T3\"], \"IS\", \"SP\", \"EP\", \"PB\", \"N1\"]) %}\n {% for part in ref_source %}\n <span class=\"source-part-label\">{{ part[1] }}:</span>\n <span class=\"source-part-content\">\n {{ part[2] }}{% if not loop.last %},{% endif %}\n </span>\n {% endfor %}\n </span>\n {% if references[refid]['ris_ur'] %}\n {% set ref_urls = get_urls(references[refid]) %}\n <span class=\"reference-url\" property=\"dc:identifier\" resource=\"{{ ref_urls|first }}\">\n (<a href=\"{{ ref_urls|first }}\" target=\"_blank\" rel=\"nofollow\">{{ global.strings.link }}</a>)\n </span>\n {% endif %}\n {% if get_type(references[refid]) %}\n <span class=\"ref-type\">[ <span property=\"dc:type\">{{ get_type(references[refid]) }}</span> ]</span>\n {% endif %}\n {% endif %} \n </li>\n {% else %}\n <li id=\"ref-{{ i }}\" class=\"reference-item\">\n <span class=\"ref-title\">{{ refid }}</span>\n </li>\n {% endif %}\n {% endfor %}\n </ol>\n </section>\n {% endif %}\n {% if global.comment_box_snippet and article.enable_comments %}\n <section id=\"comments-section\">\n {{ global.comment_box_snippet|raw }}\n </section>\n {% endif %}\n </div>\n </main>\n {% if relations.first_articles.element %}\n <aside id=\"elements\" class=\"an-column an-right\" vocab=\"http://purl.org/dc/elements/1.1/\" typeof=\"dc:Collection\" resource=\"{{ global.website_url }}/articles/{{ article.uri }}{{ global.dot_html_for_links }}#elements\">\n <label class=\"key-elements-label\" property=\"dc:type\">{% if article.declared_values[\"key-elements-label\"] %}{{ article.declared_values[\"key-elements-label\"] }}{% else %}{{ global.strings.key_elements_label }}{% endif %}</label>\n <div class=\"elements\">\n {% for element in relations.first_articles.element %}\n <article class='element-card' typeof=\"dc:Resource\" resource=\"{{ global.website_url }}/articles/{{ element.uri }}{{ global.dot_html_for_links }}\">\n <div class=\"title-div\" role=\"heading\" aria-level=\"2\">\n <a class='element-title' href='/articles/{{ element.uri }}{{ global.dot_html_for_links }}' {% if element.uri == article.uri %}aria-current='page'{% endif %} {% if element.relation.title and element.relation.title|length > 85 %}title=\"{{ element.relation.title|escape }}\"{% else %}{% if element.title and element.title|length > 85 %}title=\"{{ element.title|escape }}\"{% endif %}{% endif %} property=\"dc:title\">{% if element.relation.title %}{{ element.relation.title|escape }}{% else %}{{ element.title|escape }}{% endif %}</a>\n </div>\n <div class=\"element-contents\">\n {% if element.relation.photo %}\n <img class=\"element-img\" src=\"{{ photo_version(element.relation.photo, 'small') }}\" loading=\"lazy\" title=\"{{ element.relation.photo.title }}\" alt=\"{{ element.relation.photo.alt_text }}\" />\n {% else %}\n {% if element.photo %}\n <img class=\"element-img\" src=\"{{ photo_version(element.photo, 'small') }}\" loading=\"lazy\" title=\"{{ element.photo.title }}\" alt=\"{{ element.photo.alt_text }}\" /> \n {% endif %}\n {% endif %}\n <div class=\"element-description\" property=\"dc:description\">\n {{ element.relation.contents|raw }}\n </div>\n </div>\n </article>\n {% if not loop.last %}<div class=\"divider\"><hr/></div>{% endif %}\n {% endfor %}\n </div>\n </aside>\n {% endif %}\n </article>\n {{ components.footer }}\n <script src=\"/js/{{ search_js_file }}\" defer></script>\n <script src=\"/js/main.js\"></script>\n {% if article.declared_values[\"body-snippet\"] %}{{ article.declared_values[\"body-snippet\"]|raw }}{% endif %}\n</body>\n</html>"
},
{
"template_uri": "article_css",
"template_set": "article",
"template_type": "article",
"content_type": "css",
"contents": ":root {\n --reference-number-color: {{ global.colors.secondary_text }};\n --references-label-color: {{ global.colors.secondary_text }};\n --reference-text-normal-color: {{ global.colors.secondary_text }};\n --reference-text-important-color: {{ global.colors.primary_text }};\n --reference-hover-background: {{ global.colors.reference_onhover }};\n --reference-part-hover-background: {{ global.colors.reference_part_onhover }};\n --reference-url-color: {{ global.colors.secondary_text }};\n --reference-url-color-hover: {{ global.colors.primary_text }};\n --an-title-color: {{ global.colors.primary_text }};\n --an-subtitle-color: {{ global.colors.lower_contrast_text }};\n --photo-info-color: {{ global.colors.secondary_text }};\n --author-name-color: {{ global.colors.secondary_text }};\n --published-text-color: {{ global.colors.secondary_text }};\n --an-notes-summary: {{ global.colors.lower_contrast_tex }};\n --an-notes-contents: {{ global.colors.lower_contrast_text }};\n --an-notes-border: {{ global.colors.dividers }};\n --an-summary-summary: {{ global.colors.lower_contrast_tex }};\n --an-summary-contents: {{ global.colors.lower_contrast_text }};\n --an-click-to-read: {{ global.colors.secondary_text }};\n --an-summary-border: {{ global.colors.dividers }};\n --section-link-color: {{ global.colors.secondary_text }};\n --share-color: {{ global.colors.lower_contrast_text }};\n --share-border: {{ global.colors.dividers }};\n --feedback-color: {{ global.colors.lower_contrast_text }};\n --feedback-border: {{ global.colors.dividers }};\n --related-analyses-label-color: {{ global.colors.secondary_text }};\n --analysis-title-color: {{ global.colors.articles_title }};\n --analysis-title-color-hover: {{ global.colors.articles_title_onhover }};\n --related-analyses-border: {{ global.colors.dividers }};\n --contents-cell-border: {{ global.colors.dividers }};\n --contents-table-border: {{ global.colors.secondary_text }};\n --contents-hr-color: {{ global.colors.dividers }};\n --blockquote-color: {{ global.colors.lower_contrast_text }};\n --analysis-image-size: 400px;\n /*--analysis-image-size-tablet: 700px;*/\n --analysis-image-size-small-screen: 250px;\n --max-width-main: 725px;\n}\n\n/* This class is part of the functionality of inserting references into the article */\n.ref-link {\n color: var(--reference-number-color);\n text-decoration: none;\n vertical-align: super;\n font-size: 75%;\n \n &::before {\n content: \"[\";\n }\n \n &::after {\n content: \"]\";\n }\n}\n\n.an-column {\n padding-top: 1rem;\n padding-bottom: 3rem;\n display: flex;\n flex-flow: column;\n width: 100%;\n align-items: center;\n}\n \n#an-main {\n max-width: var(--max-width-main);\n display: flex;\n flex-flow: column;\n align-items: center;\n margin-left: 1.5rem;\n margin-right: 1.5rem;\n \n #an-breadcrumbs {\n width: 100%;\n color: var(--section-link-color);\n margin-top: 1rem;\n }\n \n #an-section-link, #an-series-link {\n text-decoration: none;\n color: var(--section-link-color);\n margin-top: 0.5rem;\n font-size: 0.85rem;\n }\n \n #an-title {\n width: 100%;\n font-size: calc(1rem + 8px);\n font-weight: bold;\n color: var(--an-title-color);\n margin-top: 1rem;\n -webkit-hyphens: auto;\n -moz-hyphens: auto;\n -ms-hyphens: auto;\n hyphens: auto;\n }\n \n #an-subtitle {\n width: 100%;\n font-size: 1rem;\n color: var(--an-subtitle-color);\n margin-top: 1rem;\n }\n \n #an-published-div {\n display: block;\n margin-top: 1rem;\n width: 100%;\n font-size: 0.85rem;\n color: var(--published-text-color);\n border-left: 1px solid var(--published-text-color);\n padding-left: 0.4rem;\n \n #an-published {\n margin-right: 1rem;\n white-space: nowrap;\n }\n \n #an-updated {\n white-space: nowrap;\n }\n }\n \