Commit Graph

87 Commits

Author SHA1 Message Date
charlie
136325af25 fix(plugin): extension hooks 2024-08-15 09:02:51 +08:00
charlie
159c0bf03e enhance(ux): disable file based graph for web 2024-08-08 16:39:06 +08:00
charlie
0e1829e634 fix(plugin): package.json item cause ui error #11449 2024-08-02 15:14:59 +08:00
charlie
f1f7d6810b enhance(ui): theme-related components 2024-06-21 16:21:22 +08:00
charlie
18a1655cac enhance(plugin): support custom daemon renderer from the plugin sdk 2024-03-22 15:25:02 +08:00
Gabriel Horner
e3b67a9d9a fix lints 2024-03-21 12:35:28 -04:00
charlie
53125d6315 enhance(plugin): support custom routes from the plugin sdk 2024-03-21 19:07:16 +08:00
charlie
7e1868ba90 enhance(ui): refactor the plugin related modal with the shui dialog 2024-03-19 10:51:43 +08:00
Tienson Qin
b06b01b88b Merge branch 'master' into feat/db 2024-01-22 12:08:37 +08:00
Charlie
7db164ab47 Enhance: APIs related issues (#10782)
* fix(plugins): load unpacked package for the existed plugin

* enhance(plugin): increase timeout time for the plugin handshake

* enhance(api): support option to insert block with auto ordered list

* fix(api): skip empty target for the batch insertion blocks

* fix(api): before option for the batch blocks insertion

* enhance(api): types

* chore: bump minor version

* fix(apis): Empty `payload.uuid` when executing onMacroRendererSlotted inside query table
2024-01-16 15:47:56 +08:00
Tienson Qin
018e1ae8ee Merge branch 'master' into feat/db 2023-12-23 14:18:25 +08:00
Charlie
036df25a17 Enhance: plugin APIs (#10399)
* enhance(plugin): call apis with the sdk ns

* enhance(plugin): types

* enhance(api): get value from the computed style

* enhance(api): types

* enhance(plugin): types

* enhance(plugin): types

* fix: lint

* fix(apis): incorrect shortcut command registion for block editing mode #10392

* fix(api): types

* enhance(apis): support register shortcuts with multi binding vals

* fix(plugins): normalize command key to make the internal keyword legal

* chore(plugin): build libs core

* chore(plugin): bump version

* enhance(apis): normalize apis cljs data

* chore(plugin): update libs user sdk

* chore(plugin): CHANGELOG.md

* fix: typo

* fix(ux): support querying plugins with right space chars
2023-12-13 15:42:21 +08:00
Tienson Qin
8c7098b21f enhance: move enum property choices to hidden page
related to LOG-2871
2023-10-30 20:35:39 +08:00
Charlie
6d6da2046c Enhance/shortcuts (#9803)
* refactor(shortcuts): simplify to build handler category map

* fix(shortcuts): redundant re-mount for the pdf shortcuts

* refactor(shortcuts): simplify names

* refactor(shortcuts): simplify user keynames

* fix(shortcuts): persist inited state for dev mode

* refactor(shortcuts): simplify handlers installation

* refactor(shortcuts): optimize shortcuts mixin

* fix: incorrect function ref

* refactor(shortcuts): shortcuts mixin

* fix(shortcuts): incorrect initialization for the pdf shortcut handler

* refactor(shortcuts): optimize binding keys map

* refactor(shortcuts): optimize shortcuts conflicts detection

* refactor(shortcuts): optimize binding ids map

* refactor(shortcuts): WIP the new keymap page

* refactor(shortcuts): WIP the new keymap related components

* feat(shortcuts): WIP fuzzy search for the shortcuts

* refactor(shortcuts): WIP the new keymap related components

* feat(shortcuts): WIP the new shorcuts record component

* feat(shortcuts): WIP the new shorcuts record component

* feat(shortcuts): WIP check shortcut conflicts component

* feat(shortcuts): WIP the new shorcuts record component

* refactor(shortcuts): WIP persist user shortcuts

* fix(shortcuts): detection for the conflicts

* feat(shortcuts): WIP detection for the conflicts

* feat(shortcuts): WIP persist user shortcuts

* refactor(shortcuts): add unit tests

* enhance(ux): search pane for the shortcuts

* feat(shortcuts): remove the existent shortcut item

* feat(shortcuts): fold/unfold categories

* feat(shortcuts): add shortcuts filters

* enhance(shortcuts): resove binding map description

* enhance(shortcuts): reactive category shortcuts

* enhance(shortcuts): register api for plugins

* feat(shortcuts): add keyboard shortcuts filters

* feat(shortcuts): impl keyboard shortcuts filters

* enhance(shortcuts): leader keys for the shortcut conflicts detection

* enhance(tests): leader keys conflicts for the shortucts

* enhance(shortcuts): parse conflicts from current binding list

* enhance(ui): polish the component of the restore shortcut action

* enhance(shortcuts): get conflicts with specific handler id

* enhance(shortcuts): polish the confilts component

* enhance(shortcuts): polish keymap conflicts component

* enhance(shortcuts): ux for handling shorcuts conflicts

* enhance(ui): polish notifications cp

* fix(shortcuts): remove reduplicate shortcuts for category

* enhance(shortcuts): polish ux for handling shorcuts conflicts

* chore(plugin): build libs core

* enhance(plugin): support shortcut command lifecycle hooks

* enhance(plugin): support shortcut command lifecycle hooks

* chore(plugin): build libs core

* enhance(shortcuts): support shortcuts saved to global config

* enhance(shortcuts): support shortcuts be saved to global config

* feat(shortcuts): support keymap manager to global settings

* enhance(shortcuts): shortcut to open keymap settings

* fix(units): tests

* fix: lints

* enhance(shortcuts): unlisten all shortcuts

* fix: lints

* fix: lints

* fix(units): tests

* fix(units): tests

* fix(units): tests

* enhance(shortcuts): unlisten/listen all shortcuts

* enhance(shortcuts): polish conflicts component

* fix(ui): modal size

* fix(ui): modal panel container

* enhance(shortcuts): i18n

* enhance(ui): layout of the shortcuts recorder component

* fix(lint): i18n

* enhance(ui): keyboard icon for the keymap settings tab

* fix(shortcuts): incorrect filters for the collaspsed shortcuts

* enhance(ui): polish details for the keymap settings

* enhance(ui): polish details for the keymap settings

* fix(shortcuts): get shortcut description error when the associated handler-id not exist

* fix(ui): the shortcut disabled label overlaps with section headers.

* refactor(shortcuts): names

* enhance(ui): filter icons
2023-08-29 19:33:48 +08:00
Konstantinos Kaloutas
33f6438d38 fix marked parse call 2023-08-04 11:17:30 +08:00
charlie
c5d9a51db4 fix(plugin): hook fenced code renderer for multiple providers 2023-07-12 15:05:11 +08:00
Charlie
741edecc57 Enhance(UX): marketplace (#9609)
* fix(ui): hidden proxy label for the default system proxy network mode

* improve(plugin): support option to enable/disable the auto-check the installed plugins

* fix(revert): codes

* improve(ux): add the auto-check updates switcher to the toolbar plugins manager

* improve(i18n): plugin-related i18n

* enhance(plugin): add Github proxy server for the plugin updates

* enhance(plugin): add Github proxy server for the plugin updates

* fix(ui): warning

* fix: typo

* fix(ui): hidden proxy label for the default system proxy network mode

* improve(plugin): support option to enable/disable the auto-check the installed plugins

* fix(revert): codes

* improve(ux): add the auto-check updates switcher to the toolbar plugins manager

* improve(i18n): plugin-related i18n

* enhance(plugin): add Github proxy server for the plugin updates

* enhance(plugin): add Github proxy server for the plugin updates

* fix(ui): warning

* fix: typo
2023-06-19 12:51:40 +08:00
Konstantinos Kaloutas
4d9549314d Merge branch 'master' into chore/i18n-refactoring 2023-06-12 12:31:41 +03:00
Konstantinos Kaloutas
135e3228b6 fix: translations 2023-06-09 13:54:32 +03:00
charlie
c4c9be91e8 fix(plugin): normalize plugin keybindings to adapt for the closure lib legal keynames 2023-05-08 17:17:31 +08:00
Charlie
60fbfdf2f7 Enhance: plugin-related improvements (#8787)
- fix: Select and Input elements rendered using provideUI via onMacroRendererSlotted don't function #8374
 - fix: logseq.Editor.getPageBlocksTree does not work when page uuid is passed in as param #4920
 - feat: add a plug-in flag for the plugin slash commands item
 - feat: add logseq.App.setCurrentGraphConfigs: (configs: {}) => Promise<void>
 - feat: add hook logseq.App.onTodayJournalCreated: IUserHook<{ title: string }
 - enhance: auto-check updates for the installed plugins from Marketplace
 - feat: expose template-related APIs to SDK
2023-04-12 21:27:40 +08:00
Andelf
1cd7f89cd9 refactor(fs): handle global file write 2023-03-28 09:14:42 +08:00
charlie
a4edd4fb94 fix(plugin): remove plugin settings entry when plugin disabled 2023-02-09 11:46:48 +08:00
charlie
9aa626dcf3 improve(plugin): filter hooks of db block changes for performance 2023-01-05 20:59:42 +08:00
Tienson Qin
4b6004f9d5 fix: move group-by out and limit notify blocks' length 2023-01-05 19:25:04 +08:00
Charlie
020317911f Enhance/plugin APIs (#7555)
* feat: WIP native cli command support

* Add :shell/command-whitelist option

* Integrate cli to code block

* Add :code-block/command-whitelist option

* fix: size of icon

* improve(shell): cache user shell whitelist on application configures file

* improve(electron): promisify run cli command

* chore(libs): update version

* fix(plugin): incorrect payload of pdf highlights section hook

* improve(plugin): block renderer with specific block uuid

* improve(plugin): expose logger for user lib

* improve(plugin): block hooks type

* improve(plugin): block slot hook with specific block

* improve(plugin): auto generate key for provide UI options

* improve(plugin): style of injected ui container

* improve(plugin): types

* improve(plugin): async messaging api from host to plugin

* improve(plugin): add types

* improve(apis): get external plugin metadata

* improve(apis): invoke external plugin impls

* improve(apis): call external plugin impls for simple commands

* enhance(apis): datascript query api for predicate inputs

* enhance(apis): datascript query api for predicate inputs

* fix(apis): redundant args of datascript query api

* enhance(plugins): position of float ui container

* enhance(plugins): style of setting options

* enhance(plugins): layouts data for float ui

* chore(plugins): update CHANGELOG.md

* improve(apis): add types

* chore: fix some inclusive terms

* improve(apis): types

* chore(plugins): update CHANGELOG.md

* chore(plugins): build libs

* chore: update CHANGELOG.md

* chore: remove experiemental alda integration

* fix(lint): remove unused methods

Co-authored-by: Tienson Qin <tiensonqin@gmail.com>
Co-authored-by: Andelf <andelf@gmail.com>
2022-12-19 20:23:25 +08:00
Charlie
dda1f9bd9f Enhance / Plugin APIs (#6945)
Added
1. All configurations of current graph.
App.getCurrentGraphConfigs: () => Promise<any>
2. All favorite pages list of current graph.
App.getCurrentGraphFavorites: () => Promise<Array<string> | null>
3. All recent pages list of current graph.
App.getCurrentGraphRecent: () => Promise<Array<string> | null>
4. Clear right sidebar blocks.
App.clearRightSidebarBlocks: (opts?: { close: boolean }) => void
5. Support register CodeMirror enhancer. #Experiment feature
Experiments.registerExtensionsEnhancer<T = any>(type: 'katex' | 'codemirror', enhancer: (v: T) => Promise<any>)
6. Support hooks for app search service. #Alpha stage
App.registerSearchService<T extends IPluginSearchServiceHooks>(s: T): void
7. Support focus option for App.insertBlock. Credit to [[tennox]] #PR

Fixed
1. Adjust build script to be compatible for shadow-cljs bundler.
How to set up a clojurescript project with shadow-cljs?
https://github.com/rlhk/logseq-url-plus/blob/main/doc/dev-notes.md
2022-11-22 22:00:29 +08:00
Soumik
1e09f35063 fix: rebase issue 2022-11-21 14:03:11 +08:00
charlie
135717e08e improve: reuse function about filter installed plugins 2022-11-21 14:03:11 +08:00
Soumik
8e10239b87 feat: show theme plugin settings under Settings menu 2022-11-21 14:03:11 +08:00
Yue Yang
a842818ab6 fix: use name to detect default theme 2022-11-17 17:50:56 +08:00
charlie
7c6c829d87 fix(plugin): strategy to validate plugin id duplicated 2022-11-11 17:33:15 +08:00
charlie
955c8502b6 improve(ux): shortcut items for plugins bar 2022-11-11 17:33:15 +08:00
Gabriel Horner
0c570a0300 Fix more bugs, move plugins.edn and add enabled
- Move plugins.edn to config/ as it is user configuration
- Add plugin-config enabled flag and moved plugin enabled
- Fixed bugs with manual install
- Refactored plugin-config component to have its own listener
- Split out shared plugin fns to a common ns - plugin-config shouldn't
  need to depend on a component like plugin-handler
- Bump rewrite-edn to include upstream fix and avoid tons of cljs
  warnings with earlier versions
- Fix react warning introduced outside this PR in ui/icon
2022-10-17 10:13:27 -04:00
Gabriel Horner
c8cda90373 Fix plugin install bugs and add plugin-config tests
- Add validation for plugins.edn with malli
- Add bb task using malli schema
- Add first async test that interacts with frontend.fs
- Add test helpers to make future async testing easier
2022-10-17 10:13:27 -04:00
Gabriel Horner
bf79db9d54 Install and uninstall plugins from file
Change plugins.edn to key off id as it is unique and all operations
work off of it.
Note: there are still some bugs with certain plugin installs
2022-10-17 10:13:27 -04:00
Gabriel Horner
da6c617a5b First pass at writing plugins.edn on install/update/uninstall 2022-10-17 10:13:27 -04:00
Gabriel Horner
1f0e22275d Add ns docstrings for most ns in src/main
- Added to CI now that it passes
- Added no-doc for docstrings that don't add any more than what's in the
ns name or for ones where I didn't know the ns that well
2022-09-27 13:55:16 +08:00
Gabriel Horner
2ce6dfad41 Use catch :default for default error handling in cljs
This is considered normal practice for cljs. See
https://clojure.atlassian.net/browse/CLJS-661 for when it was introduced
and background on it
2022-09-23 02:00:55 +08:00
Gabriel Horner
b1d210d26b Merge configs and create global config file if not present
- Cleanup repo and global config with system components
- test merging
- fix edge cases
2022-09-08 12:34:27 +08:00
Gabriel Horner
9c0bb02dcd Can access read global config file from UI
Only for reload case
2022-09-08 12:34:27 +08:00
charlie
5dd26a0180 fix: lint vars 2022-08-26 18:48:00 +08:00
charlie
04e04e4005 improve(plugin): plugin perf tips for initial loader 2022-08-26 18:48:00 +08:00
charlie
560d8fb5dc fix(plugin): initial pluign core with fatal argument of empty plugin root path 2022-08-13 15:06:38 +08:00
Charlie
7c4d7cd61a improve(plugin): fetch marketplace plugins list via system proxy if no proxy configured. (#5716) 2022-06-20 10:33:35 +08:00
charlie
5b14b6f50f fix(plugin): repeat registration key to plugin ui items 2022-06-20 10:33:02 +08:00
charlie
6029a2998f improve(plugin): pin or unpin for plugin ui button from toolbar 2022-06-16 01:43:49 +08:00
charlie
f3bedb200e improve(plugin): add theme changed hook 2022-06-16 01:43:49 +08:00
charlie
3b0e1c58a3 improve(plugin): WIP api of http request 2022-06-16 01:43:49 +08:00
charlie
de9ab5ed44 enhance(plugin): change marketplace metadata requests to node fetch client 2022-06-13 15:23:07 +08:00