来自 YAML front matters 的 Typora 封面标题和作者
Typora coverpage title and author from YAML front matters
我正在尝试使用 WebKit / JS 自动生成封面。
目前正在打印标题,但是当我尝试导出作者时它崩溃了
当前实施
<meta name="title" content="${title}">
<div id='_export_cover' style="height:100vh;">
<div id='_export_title' style="margin-top: 25%;text-align: center;font-size: 3rem;">
<div id='_export_author' style="margin-top: 40%;text-align: center;font-size: 1.5rem;">
</div>
</div>
<script>
var $cover = document.querySelector("#_export_cover");
var title = document.querySelector("meta[name='title']").getAttribute("content");
var author = document.querySelector("meta[name='author']").getAttribute("content");
if(!title || title == "${title}" || !author || author == "${author}") {
// no title
$cover.remove();
} else {
document.body.insertBefore($cover, document.body.childNodes[0])
$cover.querySelector("#_export_title").textContent = title;
$cover.querySelector("#_export_author").textContent = author;
}
</script>
有人看到这个片段的问题吗?
我尝试 运行 你的 HTML 并发现 meta
标签没有 name='author'
var author = document.querySelector("meta[name='author']").getAttribute("content");
显示 Uncaught TypeError: Cannot read property 'getAttribute' of null
的错误
您应该像这样添加元标记 <meta name="author" content="${author}" />
。
你应该添加一个元标记
<meta name="author" content="${author}" />
点赞this.This即可解决您的问题。
我正在尝试使用 WebKit / JS 自动生成封面。
目前正在打印标题,但是当我尝试导出作者时它崩溃了
当前实施
<meta name="title" content="${title}">
<div id='_export_cover' style="height:100vh;">
<div id='_export_title' style="margin-top: 25%;text-align: center;font-size: 3rem;">
<div id='_export_author' style="margin-top: 40%;text-align: center;font-size: 1.5rem;">
</div>
</div>
<script>
var $cover = document.querySelector("#_export_cover");
var title = document.querySelector("meta[name='title']").getAttribute("content");
var author = document.querySelector("meta[name='author']").getAttribute("content");
if(!title || title == "${title}" || !author || author == "${author}") {
// no title
$cover.remove();
} else {
document.body.insertBefore($cover, document.body.childNodes[0])
$cover.querySelector("#_export_title").textContent = title;
$cover.querySelector("#_export_author").textContent = author;
}
</script>
有人看到这个片段的问题吗?
我尝试 运行 你的 HTML 并发现 meta
标签没有 name='author'
var author = document.querySelector("meta[name='author']").getAttribute("content");
显示 Uncaught TypeError: Cannot read property 'getAttribute' of null
您应该像这样添加元标记 <meta name="author" content="${author}" />
。
你应该添加一个元标记
<meta name="author" content="${author}" />
点赞this.This即可解决您的问题。