Compare commits

...

20 Commits

Author SHA1 Message Date
Ludwig Schubert 0300b98cb6 2.3.0 2019-01-06 20:51:37 -08:00
Ludwig Schubert ecfd28bdf9 Allow any tag type in parseFrontMatter. <script> is still recommended where possible. 2019-01-06 20:33:19 -08:00
Ludwig Schubert 86ca6f72f4 Merge branch 'master' of github.com:distillpub/template 2019-01-03 14:42:54 -08:00
Ludwig Schubert d0f5824e0c Support specifying DOI in frontMatter (meant to be used for self-publishing; not for pre-rendered distill publishing) 2019-01-03 14:42:45 -08:00
Ludwig Schubert 8bd32bdf0b Merge pull request #100 from distillpub/d-cite-keys-whitespace
Trim whitespace
2018-12-28 19:59:06 +00:00
Shan Carter f2ae6d7aa3 Merge pull request #81 from lbertge/master
Update readme
2018-12-27 11:49:00 -08:00
Shan Carter 37c7483cb0 Trim whitespace
Trimming whitespace on keys.
2018-12-20 14:01:30 -08:00
Ludwig Schubert a272efb89c 2.2.26 2018-12-17 13:28:04 -08:00
Ludwig Schubert bb19b13467 Fixes #80 by switching a div tag inside a p tag to a span tag.
Thanks, humbertaco!
2018-12-17 13:26:33 -08:00
Ludwig Schubert 7e240ddf4f Work around wrong baseline for math tags resulting from an overzealous contain optimization that became active in Chrome 71. Fixes #96. 2018-12-17 13:17:53 -08:00
Ludwig Schubert 84c400184d Render math tags in all elements under body, not just in d-article.
Should fix #97, but still in testing.
2018-12-17 13:06:18 -08:00
Ludwig Schubert d187130657 2.2.25 2018-12-17 12:59:47 -08:00
Ludwig Schubert cc6b6bf595 Fix #95 in Chrome 69+, Safari, Firefox by reverting to JS based tooltip positioning. Also DRYs some styles 2018-12-17 12:59:38 -08:00
Ludwig Schubert 9463d6e58d 2.2.24 2018-08-30 15:37:02 -07:00
Ludwig Schubert 3c2f782e74 Fix scope typo 2018-08-30 15:36:55 -07:00
Ludwig Schubert 6bd5d0bf03 2.2.23 2018-07-11 14:00:02 -07:00
Ludwig Schubert a5f663c249 Disable converting ligatures during pre-rendering due to Chrome bug 862648 2018-07-11 13:59:54 -07:00
Albert Ge 975c3e8256 Update readme 2018-07-06 14:47:18 -07:00
Ludwig Schubert b854bd0124 Merge branch 'master' of github.com:distillpub/template 2018-06-22 12:02:59 -07:00
Ludwig Schubert a6df552537 Generalize disclaimer 2018-03-30 11:09:31 -07:00
14 changed files with 42 additions and 36 deletions
+5 -5
View File
@@ -1,8 +1,6 @@
# Distill Template
_Disclaimer: This project is research code. It is not an official Google product._
This is the repository for the distill web framework.
This is the repository for the Distill web framework.
## Contributing
@@ -13,10 +11,12 @@ 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.
## License
## Disclaimer & License
_This project is research code. It is not an official product of Google or any other institution supporting Distill._
Copyright 2018, The Distill Template Authors.
+1 -1
View File
@@ -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",
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "distill-template",
"version": "2.2.19",
"version": "2.3.0",
"lockfileVersion": 1,
"requires": true,
"dependencies": {
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "distill-template",
"version": "2.2.22",
"version": "2.3.0",
"description": "Template for creating Distill articles.",
"main": "dist/template.v2.js",
"bin": {
+2 -2
View File
@@ -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('')}
+6 -7
View File
@@ -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);
+1 -7
View File
@@ -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;
}
+1 -1
View File
@@ -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') {
+10 -3
View File
@@ -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() {
+1
View File
@@ -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 {
+1 -1
View File
@@ -227,7 +227,7 @@ d-figure {
/* KaTeX */
.katex, .katex-prerendered {
contain: content;
contain: style;
display: inline-block;
}
+5 -5
View File
@@ -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...`);
+1 -1
View File
@@ -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);
}
+6 -1
View File
@@ -24,12 +24,17 @@ export default function(dom) {
if (text && acceptNode(n)) {
text = quotes(text);
text = punctuation(text);
text = ligatures(text);
// TODO: Add back support for ligatures once their uppercased versions don't hang Chrome search anymore
// see: https://bugs.chromium.org/p/chromium/issues/detail?id=862648
// text = ligatures(text);
n.nodeValue = text;
}
}
}
// 2018-07-11 shancarter@ and ludwigschubert@ no longer know what this was meant to accomplish
// if it was trying to not replace text in any child nodes of those listed here,
// then it does not accomplish that.
function acceptNode(node) {
var parent = node.parentElement;
var isMath = (parent && parent.getAttribute && parent.getAttribute('class')) ? parent.getAttribute('class').includes('katex') || parent.getAttribute('class').includes('MathJax') : false;