projects + reviews: Font not rendering in the plugin
Nobody has claimed this yet.
- Dominant language
- JavaScript
- Stars
- 204
- Forks
- 82
- Avg merge
- 22h 27m
- Merged PRs (30d)
- 3
Description
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:
- Use MonoLisa as a custom font in in a NotePlan theme.
- Open a Project-reviews pane.
- 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...
- Open the Plugin's Preferences by going to
NotePlan's menu > Preferences > Pluginsand 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" - Now open the Plugin Console by going to
Noteplan > Help > Plugin Console(not the macOS Console app). - Run the plugin command you're reporting
- Copy the output from the Plugin Console and paste it below
- 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)"
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reproducing the problem in a Project-reviews pane with MonoLisa configured as the NotePlan theme font, then inspect the Plugin Console output for the font-loading path. Done means the custom font renders in the plugin pane instead of Times New Roman, while existing pane behavior remains intact.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- javascript
- Domain
- frontend
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 48/100