mirror of
https://github.com/wassname/template.git
synced 2026-06-28 02:31:42 +08:00
Compare commits
16 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 0300b98cb6 | |||
| ecfd28bdf9 | |||
| 86ca6f72f4 | |||
| d0f5824e0c | |||
| 8bd32bdf0b | |||
| f2ae6d7aa3 | |||
| 37c7483cb0 | |||
| a272efb89c | |||
| bb19b13467 | |||
| 7e240ddf4f | |||
| 84c400184d | |||
| d187130657 | |||
| cc6b6bf595 | |||
| 9463d6e58d | |||
| 3c2f782e74 | |||
| 975c3e8256 |
@@ -11,7 +11,7 @@ To contribute a change, [check out the contributing guide](CONTRIBUTING.md).
|
||||
|
||||
### Local Development
|
||||
|
||||
Run `npm run start` to start a watching build rollup server. To view the sample pages in the repo, you can run `npm run serve` as a separate process which starts a static server. `npm run build` will run a one-time build.
|
||||
First, run `npm install` to install all node modules required. Then, run `npm run dev` to start a watching build rollup server. To view the sample pages in the repo, you can run `npm run serve` as a separate process which starts a static server. `npm run build` will run a one-time build.
|
||||
|
||||
|
||||
## Disclaimer & License
|
||||
|
||||
@@ -32,7 +32,7 @@
|
||||
{
|
||||
"author":"Chris Olah",
|
||||
"authorURL":"https://colah.github.io/",
|
||||
"affiliations": [{"name": "Google Brain", "url": "https://g.co/brain"}]
|
||||
"affiliations": [{"name": "Google Brain"}]
|
||||
},
|
||||
{
|
||||
"author":"Ludwig Schubert",
|
||||
|
||||
Generated
+1
-1
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "distill-template",
|
||||
"version": "2.2.23",
|
||||
"version": "2.3.0",
|
||||
"lockfileVersion": 1,
|
||||
"requires": true,
|
||||
"dependencies": {
|
||||
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "distill-template",
|
||||
"version": "2.2.23",
|
||||
"version": "2.3.0",
|
||||
"description": "Template for creating Distill articles.",
|
||||
"main": "dist/template.v2.js",
|
||||
"bin": {
|
||||
|
||||
@@ -24,11 +24,11 @@ export function bylineTemplate(frontMatter) {
|
||||
<p class="author">
|
||||
${author.personalURL ? `
|
||||
<a class="name" href="${author.personalURL}">${author.name}</a>` : `
|
||||
<div class="name">${author.name}</div>`}
|
||||
<span class="name">${author.name}</span>`}
|
||||
</p>
|
||||
<p class="affiliation">
|
||||
${author.affiliations.map(affiliation =>
|
||||
affiliation.url ? `<a class="affiliation" href="${affiliation.url}">${affiliation.name}</a>` : `<div class="affiliation">${affiliation.name}</div>`
|
||||
affiliation.url ? `<a class="affiliation" href="${affiliation.url}">${affiliation.name}</a>` : `<span class="affiliation">${affiliation.name}</span>`
|
||||
).join(', ')}
|
||||
</p>
|
||||
`).join('')}
|
||||
|
||||
@@ -19,7 +19,7 @@ const T = Template('d-cite', `
|
||||
<style>
|
||||
|
||||
:host {
|
||||
display: inline-block;
|
||||
|
||||
}
|
||||
|
||||
.citation {
|
||||
@@ -48,10 +48,6 @@ figcaption .citation-number {
|
||||
line-height: 1em;
|
||||
}
|
||||
|
||||
d-hover-box {
|
||||
margin-top: 1.9em;
|
||||
}
|
||||
|
||||
ul {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
@@ -71,7 +67,10 @@ ul li:last-of-type {
|
||||
|
||||
<d-hover-box id="hover-box"></d-hover-box>
|
||||
|
||||
<div id="citation-" class="citation"><slot></slot><span class="citation-number"></span></div>
|
||||
<div id="citation-" class="citation">
|
||||
<slot></slot>
|
||||
<span class="citation-number"></span>
|
||||
</div>
|
||||
`);
|
||||
|
||||
export class Cite extends T(HTMLElement) {
|
||||
@@ -103,7 +102,7 @@ export class Cite extends T(HTMLElement) {
|
||||
|
||||
attributeChangedCallback(name, oldValue, newValue) {
|
||||
const eventName = oldValue ? 'onCiteKeyChanged' : 'onCiteKeyCreated';
|
||||
const keys = newValue.split(',');
|
||||
const keys = newValue.split(',').map(k => k.trim());
|
||||
const options = { detail: [this, keys], bubbles: true };
|
||||
const event = new CustomEvent(eventName, options);
|
||||
document.dispatchEvent(event);
|
||||
|
||||
@@ -22,6 +22,7 @@ d-math[block] {
|
||||
}
|
||||
|
||||
:host {
|
||||
|
||||
}
|
||||
|
||||
sup {
|
||||
@@ -37,13 +38,6 @@ span {
|
||||
cursor: default;
|
||||
}
|
||||
|
||||
.container {
|
||||
position: absolute;
|
||||
width: 100%;
|
||||
left: 0;
|
||||
z-index: 10000;
|
||||
}
|
||||
|
||||
.footnote-container {
|
||||
padding: 10px;
|
||||
}
|
||||
|
||||
@@ -35,7 +35,7 @@ export function _moveLegacyAffiliationFormatIntoArray(frontMatter) {
|
||||
}
|
||||
|
||||
export function parseFrontmatter(element) {
|
||||
const scriptTag = element.querySelector('script');
|
||||
const scriptTag = element.firstElementChild;
|
||||
if (scriptTag) {
|
||||
const type = scriptTag.getAttribute('type');
|
||||
if (type.split('/')[1] == 'json') {
|
||||
|
||||
@@ -20,9 +20,10 @@ const T = Template('d-hover-box', `
|
||||
:host {
|
||||
position: absolute;
|
||||
width: 100%;
|
||||
left: 0;
|
||||
left: 0px;
|
||||
z-index: 10000;
|
||||
display: none;
|
||||
white-space: normal
|
||||
}
|
||||
|
||||
.container {
|
||||
@@ -40,10 +41,13 @@ const T = Template('d-hover-box', `
|
||||
left: 0;
|
||||
width: 100%;
|
||||
border: 1px solid rgba(0, 0, 0, 0.1);
|
||||
background-color: rgb(250, 250, 250);
|
||||
background-color: rgba(250, 250, 250, 0.95);
|
||||
box-shadow: 0 0 7px rgba(0, 0, 0, 0.1);
|
||||
border-radius: 4px;
|
||||
box-sizing: border-box;
|
||||
|
||||
backdrop-filter: blur(2px);
|
||||
-webkit-backdrop-filter: blur(2px);
|
||||
}
|
||||
|
||||
</style>
|
||||
@@ -117,11 +121,14 @@ export class HoverBox extends T(HTMLElement) {
|
||||
show(position) {
|
||||
this.visible = true;
|
||||
this.style.display = 'block';
|
||||
// 10px extra offset from element
|
||||
this.style.top = Math.round(position[1] + 10) + 'px';
|
||||
}
|
||||
|
||||
showAtNode(node) {
|
||||
// https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/offsetTop
|
||||
const bbox = node.getBoundingClientRect();
|
||||
this.show([bbox.right, bbox.bottom]);
|
||||
this.show([node.offsetLeft + bbox.width, node.offsetTop + bbox.height]);
|
||||
}
|
||||
|
||||
hide() {
|
||||
|
||||
@@ -96,6 +96,7 @@ export function mergeFromYMLFrontmatter(target, source) {
|
||||
target.authors = source.authors.map( (authorObject) => new Author(authorObject));
|
||||
target.katex = source.katex;
|
||||
target.password = source.password;
|
||||
target.doi = source.doi;
|
||||
}
|
||||
|
||||
export class FrontMatter {
|
||||
|
||||
@@ -227,7 +227,7 @@ d-figure {
|
||||
/* KaTeX */
|
||||
|
||||
.katex, .katex-prerendered {
|
||||
contain: content;
|
||||
contain: style;
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
|
||||
@@ -17,20 +17,20 @@ import { renderMathInElement } from '../helpers/katex-auto-render';
|
||||
|
||||
export default function(dom, data) {
|
||||
let needsCSS = false;
|
||||
const article = dom.querySelector('d-article');
|
||||
const body = dom.querySelector('body');
|
||||
|
||||
if (!article) {
|
||||
console.warn("No d-article tag found!");
|
||||
if (!body) {
|
||||
console.warn("No body tag found!");
|
||||
return;
|
||||
}
|
||||
|
||||
if (data.katex && data.katex.delimiters) {
|
||||
global.document = dom;
|
||||
renderMathInElement(article, data.katex);
|
||||
renderMathInElement(body, data.katex);
|
||||
}
|
||||
|
||||
// render d-math tags
|
||||
const mathTags = article.querySelectorAll('d-math');
|
||||
const mathTags = body.querySelectorAll('d-math');
|
||||
if (mathTags.length > 0) {
|
||||
needsCSS = true;
|
||||
console.warn(`Prerendering ${mathTags.length} math tags...`);
|
||||
|
||||
@@ -43,7 +43,7 @@ export default function(dom, data) {
|
||||
|
||||
let title = dom.querySelector('d-title');
|
||||
if (!title) {
|
||||
let title = dom.createElement('d-title');
|
||||
title = dom.createElement('d-title');
|
||||
body.insertBefore(title, byline);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user