# 2020.6.29 今天是每日时报陪伴您的第 358 天
[文章] 封装一个超个性化的 Vue 框架,框架里面内容较全: https://juejin.im/post/5ef7cc526fb9a07ea672a4d6 (opens new window)
[文章] 告诉世界,前端也能做 AI:https://mp.weixin.qq.com/s/QzO6ZNfeAm_ujckVTkjgmQ (opens new window)
[工具] 解锁网易云音乐客户端变灰歌曲,原理是使用 QQ/酷狗 等音源替换变灰歌曲的链接:https://github.com/meng-chuan/Unlock-netease-cloud-music (opens new window)
[工具] 如果你不习惯新版的 Github 的 UI 界面,可以试试这款插件: https://github.com/sreenivasanramesh/old-github-ui (opens new window)
[类库] pdf-lib 可以操作 PDF 文件,如复制、添加、删除、添加附件页面等操作:https://github.com/Hopding/pdf-lib (opens new window)
[资源] 前端开发人员需要了解的设计模式:https://github.com/MudOnTire/frontend-design-patterns (opens new window)
# 配图 - 个性化的 Vue 框架
# 配图 - 解锁网易云音乐客户端变灰歌曲
# 配图 - Old GitHub UI
# 配图 - 前端开发人员需要了解的设计模式
# 示例 - pdf-lib
import { PDFDocument, StandardFonts, rgb } from "pdf-lib";
// Create a new PDFDocument
const pdfDoc = await PDFDocument.create();
// Embed the Times Roman font
const timesRomanFont = await pdfDoc.embedFont(StandardFonts.TimesRoman);
// Add a blank page to the document
const page = pdfDoc.addPage();
// Get the width and height of the page
const { width, height } = page.getSize();
// Draw a string of text toward the top of the page
const fontSize = 30;
page.drawText("Creating PDFs in JavaScript is awesome!", {
x: 50,
y: height - 4 * fontSize,
size: fontSize,
font: timesRomanFont,
color: rgb(0, 0.53, 0.71)
});
// Serialize the PDFDocument to bytes (a Uint8Array)
const pdfBytes = await pdfDoc.save();