projects + reviews: Font not rendering in the plugin

未关闭
#780 2 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看

还没有人认领这个 Issue。

评估

难度
4/5
预计耗时
3-5 天
新手友好度
48/100
Issue 类型
缺陷
描述清晰度
基本清楚
活跃度
活跃
技术栈
javascript
领域
frontend

调研方向

首先,在将 MonoLisa 配置为 NotePlan 主题字体的 Project-reviews 窗格中复现该问题,然后检查 Plugin Console 的输出以确定字体加载路径。当自定义字体在插件窗格中而不是 Times New Roman 中渲染,同时现有窗格行为保持不变时,即表示完成。

由索引模型根据 Issue 内容生成。

描述

bug

Checks

  • [ x ] I confirm I have restarted NotePlan and this problem still persists.
  • [ x ] I confirm I have reinstalled the Plugin and this problem still persists.
  • [ x ] Is this a repeatable problem?

System

  • Device OS: [macOS 15.2]
  • NotePlan Version [e.g. 3.21.2]
  • Plugin Name & Version [2.08]
  • Custom Font: MonoLisa

Describe the bug
When a custom pane from Plugin is opened, it does not use my custom font as the font within the plugin.

What do you expect it to do instead?

I expect my custom font to load as the font for the plugin panes.

To Reproduce
Steps to reproduce the behavior:

  1. Use MonoLisa as a custom font in in a NotePlan theme.
  2. Open a Project-reviews pane.
  3. See Times New Roman font, rather than MonoLisa font.

Screenshots
If applicable, add screenshots to help explain your problem.

Additional context
just following up from a discussion I had with jgclark on Discord earlier this week. The font I prefer to use just isn't working with his plugins, which is a real bummer. His exact instructions to me were:

I've worked many hours to write a framework that automatically lets plugins pick up colours and sizes and fonts from the current Theme, despite them being in two completely different technologies.
All the main plugins use this framework, though the 'community' plugins (aka vibe-coded ones) probably won't.
But I've discovered some custom fonts have non-standard metadata, and that can mess up the under-the-hood translation. Please raise an issue at the GitHub repo for plugins with details of what's not working.

Thanks for any consideration.

Plugin Console Log
To provide us with more clues about where the bug/error is occurring...

  1. Open the Plugin's Preferences by going to NotePlan's menu > Preferences > Plugins and clicking the settings "cog" icon next to the plugin in question. Scroll to the bottom and set the logging level to "DEBUG" and click "Save & Close"
  2. Now open the Plugin Console by going to Noteplan > Help > Plugin Console (not the macOS Console app).
  3. Run the plugin command you're reporting
  4. Copy the output from the Plugin Console and paste it below
  5. Delete any output that has personal information you don't want in there
    [WebView Log] bridge::runPluginCommand JS file in np.Shared Sending command "onMessageFromHTMLView" to NotePlan: "jgclark.Dashboard" with args: ["refreshSomeSections",{"actionType":"refreshSomeSections","sectionCodes":["TB"]},""]
Executing function 'onMessageFromHTMLView'
2026-08-22 22:58:57 | INFO  | ************* bridgeClickDashboardItem: refreshSomeSections *************
[WebView Log] CommsBridge UPDATE_DATA message: "UPDATE_DATA Starting refresh for sections TB"
2026-08-22 22:58:57 | INFO  | paragraph/findStartOfActivePartOfNote :: Note was empty; adding a blank line to make writing to the note work
[WebView Log] CommsBridge UPDATE_DATA message: "UPDATE_DATA Finished refreshSomeSections for [TB] (84ms)"
[WebView Log] bridge::runPluginCommand JS file in np.Shared Sending command "onMessageFromHTMLView" to NotePlan: "jgclark.Dashboard" with args: ["refreshSomeSections",{"actionType":"refreshSomeSections","sectionCodes":["TB"]},""]
Executing function 'onMessageFromHTMLView'
2026-08-22 22:59:51 | INFO  | ************* bridgeClickDashboardItem: refreshSomeSections *************
[WebView Log] CommsBridge UPDATE_DATA message: "UPDATE_DATA Starting refresh for sections TB"
2026-08-22 22:59:52 | INFO  | paragraph/findStartOfActivePartOfNote :: Note was empty; adding a blank line to make writing to the note work
[WebView Log] CommsBridge UPDATE_DATA message: "UPDATE_DATA Finished refreshSomeSections for [TB] (94ms)"
[WebView Log] bridge::runPluginCommand JS file in np.Shared Sending command "onMessageFromHTMLView" to NotePlan: "jgclark.Dashboard" with args: ["refreshSomeSections",{"actionType":"refreshSomeSections","sectionCodes":["TB"]},""]
Executing function 'onMessageFromHTMLView'
2026-08-22 23:00:46 | INFO  | ************* bridgeClickDashboardItem: refreshSomeSections *************
[WebView Log] CommsBridge UPDATE_DATA message: "UPDATE_DATA Starting refresh for sections TB"
2026-08-22 23:00:46 | INFO  | paragraph/findStartOfActivePartOfNote :: Note was empty; adding a blank line to make writing to the note work
[WebView Log] CommsBridge UPDATE_DATA message: "UPDATE_DATA Finished refreshSomeSections for [TB] (83ms)"
Executing function 'onSettingsUpdated'
2026-08-22 23:00:48 | INFO  | generateAllProjectsList :: usePerspectives=false perspective='-' foldersToInclude=[Projects] foldersToIgnore=[Reviews,Summaries,Saved Searches]
2026-08-22 23:00:48 | INFO  | generateAllProjectsList :: enumerated 0 project instance(s) to write
2026-08-22 23:00:48 | INFO  | updateRichProjectListIfOpen :: About to run Reviews:renderProjectListsIfOpen(...)
Executing function 'renderProjectListsIfOpen'
2026-08-22 23:00:48 | INFO  | jgclark.Reviews v2.0.8-full :: renderProjectLists ------------------------------------
2026-08-22 23:00:48 | INFO  | filterAndSortProjectsList :: Starting with tag '' for 0 projects
2026-08-22 23:00:48 | INFO  | filterAndSortProjectsList :: - filtered 0 projects, sorted 0 projects (before perspective filters: 0)
2026-08-22 23:00:48 | INFO  | updateDashboardIfOpen :: About to invoke ✳️ Dashboard:refreshSectionByCode(...)
Executing function 'refreshSectionsByCode'
2026-08-22 23:00:49 | INFO  | jgclark.Reviews v2.0.9-full :: getReviewSettings() Starting from a different plugin ...
2026-08-22 23:00:49 | INFO  | filterAndSortProjectsList :: Starting with tag '' for 0 projects
2026-08-22 23:00:49 | INFO  | filterAndSortProjectsList :: - filtered 0 projects, sorted 0 projects (before perspective filters: 0)
2026-08-22 23:00:49 🥺 WARN 🥺 getNextNoteToReview :: No active projects found, so stopping
2026-08-22 23:00:49 | INFO  | jgclark.Reviews v2.0.9-full :: getReviewSettings() Starting from a different plugin ...
2026-08-22 23:00:49 | INFO  | filterAndSortProjectsList :: Starting with tag '' for 0 projects
2026-08-22 23:00:49 | INFO  | filterAndSortProjectsList :: - filtered 0 projects, sorted 0 projects (before perspective filters: 0)
2026-08-22 23:00:49 🥺 WARN 🥺 reviews/getNextProjectsToReview :: No active projects found, so stopping
[WebView Log] CommsBridge UPDATE_DATA message: "UPDATE_DATA Starting refresh for sections PROJACT,PROJREVIEW,PROJ"
2026-08-22 23:00:49 | INFO  | jgclark.Reviews v2.0.8-full :: renderProjectLists ------------------------------------
2026-08-22 23:00:49 | INFO  | filterAndSortProjectsList :: Starting with tag '' for 0 projects
2026-08-22 23:00:49 | INFO  | filterAndSortProjectsList :: - filtered 0 projects, sorted 0 projects (before perspective filters: 0)
[WebView Log] CommsBridge UPDATE_DATA message: "UPDATE_DATA Finished refreshSomeSections for [PROJACT,PROJREVIEW,PROJ] (142ms)"
[WebView Log] bridge::runPluginCommand JS file in np.Shared Sending command "onMessageFromHTMLView" to NotePlan: "jgclark.Dashboard" with args: ["refreshSomeSections",{"actionType":"refreshSomeSections","sectionCodes":["TB"]},""]
Executing function 'onMessageFromHTMLView'
2026-08-22 23:01:43 | INFO  | ************* bridgeClickDashboardItem: refreshSomeSections *************
[WebView Log] CommsBridge UPDATE_DATA message: "UPDATE_DATA Starting refresh for sections TB"
2026-08-22 23:01:43 | INFO  | paragraph/findStartOfActivePartOfNote :: Note was empty; adding a blank line to make writing to the note work
[WebView Log] CommsBridge UPDATE_DATA message: "UPDATE_DATA Finished refreshSomeSections for [TB] (92ms)"
[WebView Log] bridge::runPluginCommand JS file in np.Shared Sending command "onMessageFromHTMLView" to NotePlan: "jgclark.Dashboard" with args: ["refreshSomeSections",{"actionType":"refreshSomeSections","sectionCodes":["TB"]},""]
Executing function 'onMessageFromHTMLView'
2026-08-22 23:02:37 | INFO  | ************* bridgeClickDashboardItem: refreshSomeSections *************
[WebView Log] CommsBridge UPDATE_DATA message: "UPDATE_DATA Starting refresh for sections TB"
2026-08-22 23:02:37 | INFO  | paragraph/findStartOfActivePartOfNote :: Note was empty; adding a blank line to make writing to the note work
[WebView Log] CommsBridge UPDATE_DATA message: "UPDATE_DATA Finished refreshSomeSections for [TB] (93ms)"
主要语言
JavaScript
星标
204
派生
82
平均合并
22 小时 27 分钟
30 天内合并 PR
3

贡献指南

这个仓库没有索引到贡献指南

从这里开始

  1. 先读完整个 Issue,再读项目的贡献指南。
  2. 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
  3. Fork 仓库,在一个分支上完成修改。
  4. 提交 Pull Request,并在描述里引用这个 Issue 编号。

NotePlan/plugins 的其他 Issue

查看 NotePlan/plugins 的全部 Issue

相似的 Issue

更多 JavaScript Issue

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。