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