UNPKG

create-modulo

Version:

Starter projects for Modulo.html - Ready for all uses - Markdown-SSG / SSR / API-backed SPA

192 lines (169 loc) 4.24 kB
<script src=../Modulo.html></script><template type=f> <Props slotclass></Props> <Template> {% if global.page %} <title>{{ global.page.page_title }}</title> {% endif %} <nav class="page-nav u--container"> <ul> <li> <!-- Replace this logo with one of your own! <img src="./static/images/example_logo.svg" title="Site Logo" style="float: left; height: 80px" /> --> <span style="font-size: 24px; font-family: serif">&ldquo;WEB-<br />SITE&rdquo;</span> </li> {% for row in global.definitions.contentlist.data %} <li><a href="{{ row|get:0 }}">{{ row|get:1|upper }}</a></li> {% endfor %} </ul> </nav> <main class="u--container"> <div class="page-container"> {% if not global.page %} {# Default to "slot" #} <slot class="{{ props.slotclass }}"></slot> {% else %} {# Show page meta info #} <h1>{{ global.page.page_title|default:'' }}</h1> <h4>{{ global.page.page_author|default:'' }}</h4> {# Show body #} {% if global.page.body|trim %} <div class="page-content markdown-page"> {{ global.page.body|syntax:"md"|safe }} </div> {% endif %} {# Show all articles #} {% if global.page.bottomlist is "articles" %} {% for article in global.definitions.articlelist.files %} <article class="page-article"> <a class="page-article-title u--blocklink" href="{{ article.Source }}"> {{ article.page_title }}</a> <p>{{ article.desc }}</p> </article> {% endfor %} {% endif %} {% endif %} </div> </main> </Template> <Style> .page-container, .page-content, .page-nav, .page-article, .page-nav a { display: block; background-color: var(--color); box-shadow: 0 0 0 4px var(--color), -5px -5px 100px 3px inset var(--fg-shading), 0 0 0 10px inset var(--color); border: 3px groove var(--color); border-radius: 8px; padding: 20px; margin: 4px; color: var(--fg); } .page-nav a { text-decoration: none; font-weight: bold; border-color: var(--fg-shading); } .page-content { background-color: var(--bg); box-shadow: none; } .page-article { position: relative; background: var(--bg); } .page-article-title { font-size: 38px; color: var(--fg); } .page-article:hover { background: var(--color); } /* Utility class */ .u--blocklink { display: block; } .u--blocklink::before { content: ' '; position: absolute; top: 0; left: 0; width: 100%; height: 100%; } /* Layout */ .u--container { display: grid; grid-template-columns: 1fr minmax(auto, var(--page-width)) 1fr; font-family: sans-serif; } .u--container > * { grid-column: 2; } /* Nav bar */ .page-nav ul li:first-child { margin-right: auto; } .page-nav a:hover { border-color: var(--fg); } .page-nav a:active, .page-nav a.nav--selected{ border-color: var(--bg); } .page-nav ul { display: flex; margin: 0; flex-wrap: wrap; } .page-nav li { list-style: none; } @media (max-width: 992px) { /* Make it fit better on mobile */ .page-container, .page-nav { padding: 4px; margin: 2px; } } @media (max-width: 576px) { .page-nav ul { display: block } } </Style> <Style prefix=".markdown-page"> p { line-height: 1.6; font-size: 18px } h2[h] { margin: 60px 0 0 0; font-family: sans-serif; font-weight: 500; } h2[h='#'] { font-size: 64px; } h2[h='##'] { font-size: 46px; } h2[h='###'] { font-size: 30px } h2[h='#'], h2[h='##'] { text-align: center; } code, tt { background: #88888855; } hr { border: 0.5vw solid #88888855; margin: 5vw 30% 5vw 30% } </Style>