From 91be6e2a2f9a14b5f83110162614bf1e2a3264e9 Mon Sep 17 00:00:00 2001 From: zsviczian Date: Fri, 25 Oct 2024 23:54:01 +0200 Subject: [PATCH] local cjk fonts --- assets/excalidraw-fonts.zip | Bin 12809113 -> 12727127 bytes src/constants/constants.ts | 1 + src/lang/locale/en.ts | 33 +- src/main.ts | 53 +- src/settings.ts | 89 ++- src/utils/CJKLoader.ts | 1395 +++++++++++++++++++++++++++++++++++ 6 files changed, 1535 insertions(+), 36 deletions(-) create mode 100644 src/utils/CJKLoader.ts diff --git a/assets/excalidraw-fonts.zip b/assets/excalidraw-fonts.zip index 83a0df7d4bb7cda3f608a47c09fb3bb93900e6c7..a3e3b17dd82a0ca3903536a645fe79aa0ebff824 100644 GIT binary patch delta 4564 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 qeEwdR54Thqpc9fSZiLI84Uo;oq198yWS0RO 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℘~8edFXk#yISF?B2BaXM5(ak$62@Asy8 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 z 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 diff --git a/src/constants/constants.ts b/src/constants/constants.ts index a55a32d..9f8e5d6 100644 --- a/src/constants/constants.ts +++ b/src/constants/constants.ts @@ -107,6 +107,7 @@ export const { } = excalidrawLib; export const FONTS_STYLE_ID = "excalidraw-custom-fonts"; +export const CJK_STYLE_ID = "excalidraw-cjk-fonts"; export function JSON_parse(x: string): any { return JSON.parse(x.replaceAll("[", "[")); diff --git a/src/lang/locale/en.ts b/src/lang/locale/en.ts index 91f1239..029fede 100644 --- a/src/lang/locale/en.ts +++ b/src/lang/locale/en.ts @@ -5,6 +5,7 @@ import { import { TAG_AUTOEXPORT, TAG_MDREADINGMODE, TAG_PDFEXPORT } from "src/constants/constSettingsTags"; import { labelALT, labelCTRL, labelMETA, labelSHIFT } from "src/utils/ModifierkeyHelper"; +const CJK_FONTS = "CJK Fonts"; // English export default { // main.ts @@ -229,15 +230,6 @@ export default { "You can access your scripts from Excalidraw via the Obsidian Command Palette. Assign " + "hotkeys to your favorite scripts just like to any other Obsidian command. " + "The folder may not be the root folder of your Vault. ", - ASSETS_FOLDER_NAME: "Local Font Assets Folder (cAsE sENsiTIvE!)", - ASSETS_FOLDER_DESC: `Since version 2.5.3, following the implementation of CJK font support, Excalidraw downloads fonts from the internet. - If you prefer to keep Excalidraw fully local, allowing it to work without internet access, or if your internet connection is slow - and you want to improve performance, you can download the necessary - font assets from GitHub. - After downloading, unzip the contents into a folder within your Vault.
- You can specify the location of that folder here. For example, you may choose to place it under Excalidraw/FontAssets.

- Important: Do not set this to the Vault root! Ensure that no other files are placed in this folder.

- Note: If you're using Obsidian Sync and want to synchronize these font files across your devices, ensure that Obsidian Sync is set to synchronize "All other file types".`, AI_HEAD: "AI Settings - Experimental", AI_DESC: `In the "AI" settings, you can configure options for using OpenAI's GPT API. ` + `While the OpenAI API is in beta, its use is strictly limited — as such we require you use your own API key. ` + @@ -756,6 +748,8 @@ FILENAME_HEAD: "Filename", "Enabling this feature simplifies the use of Excalidraw front matter properties, allowing you to leverage many powerful settings. If you prefer not to load these properties automatically, " + "you can disable this feature, but you will need to manually remove any unwanted properties from the suggester. " + "Note that turning on this setting requires restarting the plugin as properties are loaded at startup.", + FONTS_HEAD: "Fonts", + FONTS_DESC: "Configure local fontfaces and downloaded CJK fonts for Excalidraw.", CUSTOM_FONT_HEAD: "Local font", ENABLE_FOURTH_FONT_NAME: "Enable local font option", ENABLE_FOURTH_FONT_DESC: @@ -769,6 +763,20 @@ FILENAME_HEAD: "Filename", "If no file is selected, Excalidraw will default to the Virgil font. " + "For optimal performance, it is recommended to use a .woff2 file, as Excalidraw will encode only the necessary glyphs when exporting images to SVG. " + "Other font formats will embed the entire font in the exported file, potentially resulting in significantly larger file sizes.", + OFFLINE_CJK_NAME: "Offline CJK font support", + OFFLINE_CJK_DESC: + `Changes you make here will only take effect after restarting Obsidian.
+ Excalidraw.com offers handwritten CJK fonts. By default these fonts are not included in the plugin locally, but are served from the Internet. + If you prefer to keep Excalidraw fully local, allowing it to work without Internet access you can download the necessary font files from GitHub. + After downloading, unzip the contents into a folder within your Vault.
+ Pre-loading fonts will impact startup performance. For this reason you can select which fonts to load.`, + CJK_ASSETS_FOLDER_NAME: "CJK Font Folder (cAsE sENsiTIvE!)", + CJK_ASSETS_FOLDER_DESC: `You can set the location of the CJK fonts folder here. For example, you may choose to place it under Excalidraw/CJK Fonts.

+ Important: Do not set this folder to the Vault root! Do not put other fonts in this folder.

+ Note: If you're using Obsidian Sync and want to synchronize these font files across your devices, ensure that Obsidian Sync is set to synchronize "All other file types".`, + LOAD_CHINESE_FONTS_NAME: "Load Chinese fonts from file at startup", + LOAD_JAPANESE_FONTS_NAME: "Load Japanese fonts from file at startup", + LOAD_KOREAN_FONTS_NAME: "Load Korean fonts frome file at startup", SCRIPT_SETTINGS_HEAD: "Settings for installed Scripts", SCRIPT_SETTINGS_DESC: "Some of the Excalidraw Automate Scripts include settings. Settings are organized by script. Settings will only become visible in this list after you have executed the newly downloaded script once.", TASKBONE_HEAD: "Taskbone Optical Character Recogntion", @@ -831,9 +839,8 @@ FILENAME_HEAD: "Filename", FONT_INFO_DETAILED: `

To improve Obsidian's startup time and manage the large CJK font family, - I've moved the fonts out of the plugin's main.js. Starting with version 2.5.3, - fonts will be loaded from the internet. This typically shouldn't cause issues as Obsidian caches - these files after first use. + I've moved the CJK fonts out of the plugin's main.js. CJK fonts will be loaded from the internet by default. + This typically shouldn't cause issues as Obsidian caches these files after first use.

If you prefer to keep Obsidian 100% local or experience performance issues, you can download the font assets. @@ -841,7 +848,7 @@ FILENAME_HEAD: "Filename",

Instructions:

  1. Download the fonts from GitHub.
  2. -
  3. Unzip and copy files into a Vault folder (default: Excalidraw/FontAssets; folder names are cAse-senSITive).
  4. +
  5. Unzip and copy files into a Vault folder (default: Excalidraw/${CJK_FONTS}; folder names are cAse-senSITive).
  6. DO NOT set this folder to the Vault root or mix with other local fonts.

For Obsidian Sync Users:

diff --git a/src/main.ts b/src/main.ts index 446153e..f7de6be 100644 --- a/src/main.ts +++ b/src/main.ts @@ -45,6 +45,7 @@ import { DEVICE, sceneCoordsToViewportCoords, FONTS_STYLE_ID, + CJK_STYLE_ID, } from "./constants/constants"; import ExcalidrawView, { TextMode, getTextMode } from "./ExcalidrawView"; import { @@ -140,6 +141,7 @@ import { Rank, SwordColors } from "./menu/ActionIcons"; import { RankMessage } from "./dialogs/RankMessage"; import { initCompressionWorker, terminateCompressionWorker } from "./workers/compression-worker"; import { WeakArray } from "./utils/WeakArray"; +import { getCJKDataURLs } from "./utils/CJKLoader"; declare let EXCALIDRAW_PACKAGES:string; declare let react:any; @@ -193,6 +195,7 @@ export default class ExcalidrawPlugin extends Plugin { //private slob:string; private ribbonIcon:HTMLElement; public loadTimestamp:number; + private isLocalCJKFontAvailabe:boolean = undefined constructor(app: App, manifest: PluginManifest) { super(app, manifest); @@ -313,8 +316,27 @@ export default class ExcalidrawPlugin extends Plugin { }; }*/ - public async loadFontFromFile(fontName: string): Promise { + public getCJKFontSettings() { const assetsFoler = this.settings.fontAssetsPath; + if(typeof this.isLocalCJKFontAvailabe === "undefined") { + this.isLocalCJKFontAvailabe = this.app.vault.getFiles().some(f=>f.path.startsWith(assetsFoler)); + } + if(!this.isLocalCJKFontAvailabe) { + return { c: false, j: false, k: false }; + } + return { + c: this.settings.loadChineseFonts, + j: this.settings.loadJapaneseFonts, + k: this.settings.loadKoreanFonts, + } + } + + public async loadFontFromFile(fontName: string): Promise { + const assetsFoler = this.settings.fontAssetsPath; + + if(!this.isLocalCJKFontAvailabe) { + return; + } const file = this.app.vault.getAbstractFileByPath(normalizePath(assetsFoler + "/" + fontName)); if(!file || !(file instanceof TFile)) { return; @@ -417,6 +439,17 @@ export default class ExcalidrawPlugin extends Plugin { this.app.workspace.onLayoutReady(async () => { (process.env.NODE_ENV === 'development') && DEBUGGING && debug(this.initializeFonts, `ExcalidrawPlugin.initializeFonts > app.workspace.onLayoutReady`); + const cjkFontDataURLs = await getCJKDataURLs(this); + if(cjkFontDataURLs) { + const fontDeclarations = cjkFontDataURLs.map(dataURL => + `@font-face { font-family: 'Xiaolai'; src: url("${dataURL}"); font-display: swap; font-weight: 400; }` + ); + for(const ownerDocument of this.getOpenObsidianDocuments()) { + await this.addFonts(fontDeclarations, ownerDocument, CJK_STYLE_ID); + }; + new Notice("Excalidraw: CJK Fonts loaded"); + } + const font = await getFontDataURL( this.app, this.settings.experimantalFourthFont, @@ -458,12 +491,12 @@ export default class ExcalidrawPlugin extends Plugin { }); } - public async addFonts(declarations: string[],ownerDocument:Document = document) { + public async addFonts(declarations: string[],ownerDocument:Document = document, styleId:string = FONTS_STYLE_ID) { // replace the old local font