GithubHelp home page GithubHelp logo

ryotaushio / obsidian-pdf-plus Goto Github PK

View Code? Open in Web Editor NEW
443.0 3.0 11.0 114.11 MB

The most Obsidian-native PDF annotation, viewing & editing tool ever. Comes with optional Vim keybindings.

Home Page: https://ryotaushio.github.io/obsidian-pdf-plus/

License: MIT License

JavaScript 0.21% TypeScript 97.66% CSS 1.83% Python 0.30%
obsidian pdf pdf-annotation pdf-editor pdf-generation obsidian-plugin vim

obsidian-pdf-plus's Issues

Double click > Jump to Annotation

If you double-click on a highlighted area in the PDF, it jumps to the correct location in the annotations file. However, the problem is that the tab with the note file does not get focused. Because the tab with the note file is not focused, you cannot immediately edit or delete the annotation. It would be better if, upon double-clicking on a highlight in the PDF, the note file in the other tab is focused so that you can edit or delete the annotation right away.

Open annotaion note in sidebar

Would it be possible to add a setting that allows to open the annotation note in the right sidebar when clicking on a highlight, which corresponding note is not opened yet?
Having the annotation notes in the sidebar is very convenient when working on small laptop screens because this way they can be expanded an collapsed quickly.

[Disscussion] better context view in backlink panel?

When we make an annotation in Zotero's PDF viewer, we can comment on that annotation directly in the comment card (the comment in the left panel, not the entry comment in the right panel).

By using this plugin, we could distribute the annotation throughout the vault, and we might also take some comments around that annotation.

since this plugin could display the backlink for a specific pdf page, is it possible to display more context when triggering the context button in the backlink panel (for now this button doesn't affect anything), like the behaviour in the markdown file?

Currently I use three monitors, there is no such requirement for this feature actually, I could just display multiple windows at the same time, one for pdf, one for markdown.
It is also a quality of life improvement, I just wonder if there is a way to make the backlink view better, more like zotero or zotlit's annotation view.

handwriting

annotation with handwriting in pdf and pen support

Bug with copy & auto-paste link command

If I highlight a text passage (copy as quote format) with the marker and then execute the "copy & auto-paste link" command with the hotkey, copy formats like "copy as quote" often result in wrong focusing in the annotation tab. The text input cursor (the blinking cursor while typing) jumps around inside the copied text selection or above.
You can reproduce it by creating several links with the copy as quote format, but every time use the copy & auto-paste command. While creating the links look at the open annotation file in the other tab: It doesn't synchronize with the pasted links. The focus in the annotation tab keeps on the first pasted link, and doesn't move to the bottom of the tab where new links are pasted.

Callouts with highlight color

Is there a way for passing the selected hightlight color to the callout which is created when pasting the selection to my annotation note? That way the colors would match in the pdf and the annotation note and it would be easier for me to get them visually in line. It would be great to have the automatically colored callouts because when highlighting, the colors have distinct meanings for me and it would make reading my annotation note even more convenient to have this logic also applied in the callouts.

Right now I already love the view of callouts holding the annotations and my thoughts. It is very similar to the zotero view and would become even better with the automatic coloring functionality.

zotero rectangle annotation

This plugin really amazes me and is my dream plugin! However, I feel very laggy while using it. I have an idea in the labeling of rectangular areas if it can be done by screenshot and can generate links like zotero's. Of course, I'm not familiar with programming, it's just a whim, thank you very much for developing this plugin!

Small bug

When a link is copied and pasted into a note, the link to the PDF (the clickable link with title+page for example) is only visible if "wiki-links" is enabled in the obsidian settings.

[FR] resizable selection area?

hi, I just wonder if there any possible to update the selection area, after initially pasting the quote to the markdown file

it's two separate problems actually

  • update the backlink
  • update the quoted text with newly selected

I've noticed that the link to the annotation contains the selection area, like below

#page=60&selection=100,8,102,65

simply envision this, implementing the resize may depend too much on obsidian internals, and may take too much effort.

since now you can manage backlinks, just updating the backlinks may be more approachable. if we could update the selection query params in links, we can somehow emulate such resize behavior

the second problem may not be so easy, and if we use embedded with margin, maybe it is not necessary to implement this. but I am somehow concerned about the performance if you embed too many PDF viewer instances in tabs, especially when you open dozens of tabs.

the way how logseq implements this feature may give an inspiration. it establishes an external identifier manager, in which the annotation and the quoted are both linked to that identifier, once the annotation changes, the corresponding quoted text will also get updated. but this will also need too much effort.

by the way, is there any other way I could sponsor you? Neither GitHub sponsor nor buymeacoffee support PayPal, while I don't have any bank card which I can use directly on these websites

[FR] An option for setting sidebar width

it's very disturbing to resize the sidebar whenever open a new PDF file, i found a way to automatically adjust the width of the sidebar

.pdf-content-container.node-insert-event.sidebarOpen {
    --sidebar-width: 330px;
}

we could provide a setting option to set the width, this may help others who suffering the same pain

Renaming this plugin?

I noticed that the name "PDF++" is very hard to search. The suffix "++" is often just ignored.
Enclosing it with double quotes seems to have no effect.

So it might be nice to consider renaming this plugin.

If you have any ideas about a better alternative name for this plugin, please share them here!

Requirements:

  • Keep it short & simple.
  • PDF++ is not just about annotation. It adds many small QOL improvements to the native viewer. So I don't want to give it a name that suggests only its annotation capability.

[FR] Automatic pasting into note after copying

This feature would be amazing: If a text is highlighted with a marker, the text will be automatically inserted in the corresponding annotation note file. This corresponding annotation file is glued to the PDF file. So when opening the PDF, the note with the glued annotations will open as well in an adjacent pane.

[FR]Improved behavior of opening notes from pdf citation section

設定によると,command+hover によって,PDFから引用部分のnoteが開かれる筈ですが,hover editor プラグインを使っていくと,hover 画面が出て,tab や new window では開かれません。
これは,キーがバッティングしているだと思いますが,そこで,この設定を,command+hover 以外にして欲しいです(ctr+hoverなど)。
また,ダブルクリックすると,新しいタブで必ず開かれますが,そうすると並べて見られないので,これも設定で変更できるようにして欲しいです。

よろしくご検討ください。

pdf.mov

Mixed Colors when clicking links

When a page link is clicked in the annotation file tab, the text in the PDF tab is focused but highlighted again with the yellow color (the yellow color is only temporary). However, the problem now is that if you have highlighted your text in the PDF with the green color and then click on a page link in the annotation file, the green color mixes with the yellow color, making it difficult to read and not looking good. Therefore, an additional option would be good: that PDF++ does not display any additional highlight when clicking on a page link.

[FR] Changing page layout in embed

If the page layout is set to double page in the pdf viewer, it also shows double page in the embed, which makes it very difficult to read. Is it possible to set a page layout in the embed that is independent of the main pdf viewer?

resim

Visualizing `&offset=...` backlinks in PDF viewer like sticky notes

Currently, PDF++ can generate a markdown list consisting of links to each outline item (i.e. beginning of each section or chapter) with the command "Copy PDF outline as markdown list", like so

- [[file.pdf#page=1&offset=...]]
    - [[file.pdf#page=2&offset=...]]
    - [[file.pdf#page=3&offset=...]]
- [[file.pdf#page=5&offset=...]]

The problem is that this link is invisible in PDF viewer, unlike a link to text selection or an annotation.
If they were, we would be able to more easily navigate back and forth between a PDF page and the corresponding markdown file.

[FR] Icons for custom copy formats

Selecting a text with the marker > right click > add bookmark. When "add bookmark" is clicked from this context menu, it creates a special page link in the annotation file. Maybe this link is then named "Bookmark:" And after this word "Bookmark:" the user can name this bookmark, for example "Bookmark: Chapter 3".

Add custom color palette actions to right click menu

Awsome plugin, great work!

Would it be possible to show the custom color palette actions also in the right click menu, that pops up, when I right click the selected text? Now, only the defualt options pop up so I have to go back and select my custom action in the top menu if I need one of theese.

[FR] Assign custom copy formats to single markers

Thank you for the great plugin and your great work on it!

In the PDF++ settings a new setting for markers could be introduced: The highlight markers could be bound to specific custom copy formats. For example I have bound the "copy as quote" format to the blue color. Everytime when I switch the markers in the PDF viewer, the custom copy formats switches automatically to the format that is bound to this marker color. Advantage would be here, that you can switch the custom copy format just by changing the markers color in the PDF viewer. For example when the green marker is selected, all my links will have the "bookmark" custom copy format. And if I select the blue color marker, all my links that I assign with that color will have the "Copy as quote" copy format.

[FR] Disable left sidebar in embed

When the embed is rendered after opening the left sidebar in the pdf viewer, it also appears in the embed. If the embed is trimmed, the option to turn off the left bar is not accessible. Is it possible to add a feature to never show left sidebar in the embed?

resim

Better page label support

  • Set the PageLabels entry of the document catalog
  • Take care of page labels number dictionary updates when adding/inserting/removing/merging/extracting pages

Auto-focus cannot detect the last pasted .md file on Windows

Hey,
so I did some more testing and the behaviour was consistent in the sandbox vault as well in my productive vault:

  • Opening the hover editor using auto focus opens a new hover editor, which is the command to be carried out when no corresponding md file can be found. However even if I had a specific file open and pasted before the hover editor sill only opens a new window instead of the last active and pasted one
  • This problem does not turn up when I have my note open in the sidebar. Then everything workes like a charm

Here are the debug logs, hope they help. Let me know if I can do further testing for you.

SYSTEM INFO: Obsidian version: v1.5.3 Installer version: v1.5.3 Operating system: Windows 10 Enterprise 10.0.19045 Login status: not logged in Insider build toggle: off Live preview: on Base theme: dark Community theme: Atom v0.0.0 Snippets enabled: 4 Restricted mode: off Plugins installed: 25 Plugins enabled: 25 1: Kanban v1.5.3 2: Tag Wrangler v0.6.1 3: ProZen v0.3 4: Iconize v2.10.0 5: Projects v1.17.1 6: Paste image rename v1.6.1 7: Dataview v0.5.64 8: Citations v0.4.5 9: QuickAdd v1.7.0 10: Git v2.23.2 11: Pandoc Reference List v2.0.25 12: Pandoc Plugin v0.4.1 13: Callout Manager v1.0.1 14: Editor Syntax Highlight v0.1.3 15: BRAT v0.8.4 16: PDF++ v0.35.21 17: Style Settings v1.0.7 18: Annotator v0.2.11 19: Hotkey Helper v0.3.18 20: Zotero Integration v3.1.7 21: Better Search Views v0.2.2 22: BibNotes Formatter v0.9.219 23: Omnisearch v1.21.1 24: Text Extractor v0.5.1 25: Hover Editor v0.11.17

{ "settings": { "displayTextFormats": [ { "name": "Title & page", "template": "{{file.basename}}, p.{{page}}" }, { "name": "Page only", "template": "p.{{pageLabel}}" } ], "defaultDisplayTextFormatIndex": 0, "syncDisplayTextFormat": true, "syncDefaultDisplayTextFormat": false, "copyCommands": [ { "name": "Copy as quote", "template": "> {{selection}}\n\n{{linkWithDisplay}}" }, { "name": "Copy link to selection", "template": "{{linkWithDisplay}}" }, { "name": "Copy embed of selection", "template": "!{{link}}" }, { "name": "citation allout", "template": "> [!{{calloutType}}|{{colorName}}] {{selection}} {{linkWithDisplay}}\n>" }, { "name": "highlight callout ", "template": "> [!{{calloutType}}|{{colorName}}] {{linkWithDisplay}}\n>" }, { "name": "nw", "template": "> [!{{calloutType}}|{{colorName}}] {{linkWithDisplay}}\n>" } ], "useAnotherCopyTemplateWhenNoSelection": false, "copyTemplateWhenNoSelection": "{{linkToPageWithDisplay}}", "trimSelectionEmbed": true, "embedMargin": 18, "noSidebarInEmbed": true, "noSpreadModeInEmbed": true, "embedUnscrollable": false, "singleTabForSinglePDF": true, "highlightExistingTab": true, "existingTabHighlightOpacity": 0.5, "existingTabHighlightDuration": 1, "paneTypeForFirstPDFLeaf": "left", "openLinkNextToExistingPDFTab": true, "openPDFWithDefaultApp": false, "openPDFWithDefaultAppAndObsidian": true, "focusObsidianAfterOpenPDFWithDefaultApp": true, "syncWithDefaultApp": false, "dontActivateAfterOpenPDF": true, "dontActivateAfterOpenMD": true, "highlightDuration": 0, "noTextHighlightsInEmbed": false, "noAnnotationHighlightsInEmbed": true, "persistentTextHighlightsInEmbed": true, "persistentAnnotationHighlightsInEmbed": false, "highlightBacklinks": true, "dblclickEmbedToOpenLink": true, "highlightBacklinksPane": true, "highlightOnHoverBacklinkPane": true, "backlinkHoverColor": "", "colors": { "info": "#ffd000", "method": "#346aea", "disagree": "#f04242", "agree": "#2ebf2b" }, "defaultColor": "info", "defaultColorPaletteItemIndex": 1, "syncColorPaletteItem": true, "syncDefaultColorPaletteItem": false, "colorPaletteInToolbar": true, "noColorButtonInColorPalette": false, "colorPaletteInEmbedToolbar": false, "showStatusInToolbar": true, "highlightColorSpecifiedOnly": false, "doubleClickHighlightToOpenBacklink": true, "hoverHighlightAction": "preview", "paneTypeForFirstMDLeaf": "right-sidebar", "singleMDLeafInSidebar": true, "alwaysUseSidebar": true, "defaultColorPaletteActionIndex": 4, "syncColorPaletteAction": true, "syncDefaultColorPaletteAction": false, "proxyMDProperty": "PDF", "hoverPDFLinkToOpen": false, "ignoreHeightParamInPopoverPreview": true, "filterBacklinksByPageDefault": true, "enableHoverPDFInternalLink": true, "recordPDFInternalLinkHistory": true, "alwaysRecordHistory": true, "renderMarkdownInStickyNote": true, "enalbeWriteHighlightToFile": false, "author": "", "writeHighlightToFileOpacity": 0.5, "defaultWriteFileToggle": false, "syncWriteFileToggle": true, "syncDefaultWriteFileToggle": false, "enableAnnotationDeletion": true, "warnEveryAnnotationDelete": false, "warnBacklinkedAnnotationDelete": true, "enableAnnotationContentEdit": true, "enableEditEncryptedPDF": false, "pdfLinkColor": "#04a802", "pdfLinkBorder": false, "replaceContextMenu": true, "executeBuiltinCommandForOutline": true, "executeBuiltinCommandForZoom": true, "executeFontSizeAdjusterCommand": true, "closeSidebarWithShowCommandIfExist": true, "outlineDrag": true, "outlineContextMenu": true, "outlineLinkDisplayTextFormat": "{{file.basename}}, {{text}}", "outlineLinkCopyFormat": "{{linkWithDisplay}}", "recordHistoryOnOutlineClick": true, "popoverPreviewOnOutlineHover": true, "thumbnailDrag": true, "thumbnailContextMenu": true, "thumbnailLinkDisplayTextFormat": "{{file.basename}}, page {{pageLabel}}", "thumbnailLinkCopyFormat": "{{linkWithDisplay}}", "recordHistoryOnThumbnailClick": true, "popoverPreviewOnThumbnailHover": false, "annotationPopupDrag": true, "useCallout": true, "calloutType": "PDF", "calloutIcon": "highlighter", "highlightBacklinksInEmbed": false, "highlightBacklinksInHoverPopover": false, "highlightBacklinksInCanvas": true, "clickPDFInternalLinkWithModifierKey": true, "clickOutlineItemWithModifierKey": true, "clickThumbnailWithModifierKey": true, "focusEditorAfterAutoPaste": true, "autoFocus": true, "autoFocusTarget": "last-active-and-open-then-last-paste", "autoPasteTarget": "last-active-and-open-then-last-paste", "openAutoFocusTargetIfNotOpened": true, "howToOpenAutoFocusTargetIfNotOpened": "hover-editor", "closeHoverEditorWhenLostFocus": true, "closeSidebarWhenLostFocus": true, "openAutoFocusTargetInEditingView": true, "executeCommandWhenTargetNotIdentified": true, "commandToExecuteWhenTargetNotIdentified": "obsidian-hover-editor:open-new-popover", "selectToCopyToggleRibbonIcon": true, "autoFocusToggleRibbonIcon": true, "viewSyncFollowPageNumber": true, "viewSyncPageDebounceInterval": 0.3, "openAfterExtractPages": true, "howToOpenExtractedPDF": "tab", "warnEveryPageDelete": false, "warnBacklinkedPageDelete": true, "extractPageInPlace": false, "askExtractPageInPlace": true, "pageLabelUpdateWhenInsertPage": "keep", "pageLabelUpdateWhenDeletePage": "keep", "pageLabelUpdateWhenExtractPage": "keep", "askPageLabelUpdateWhenInsertPage": true, "askPageLabelUpdateWhenDeletePage": true, "askPageLabelUpdateWhenExtractPage": true, "copyOutlineAsListFormat": "{{linkWithDisplay}}", "copyOutlineAsListDisplayTextFormat": "{{text}}", "copyOutlineAsHeadingsFormat": "{{text}}\n\n{{linkWithDisplay}}", "copyOutlineAsHeadingsDisplayTextFormat": "p.{{pageLabel}}", "copyOutlineAsHeadingsMinLevel": 2, "newFileNameFormat": "", "newFileTemplatePath": "", "newPDFLocation": "current", "newPDFFolderPath": "", "pageLabelUpdateWhenDividePDFs": "keep", "askPageLabelUpdateWhenDividePDFs": true, "alias": true, "writeFileLibrary": "pdfAnnotate", "auther": "", "clickEmbedToOpenLink": true }, "styleSheet": ".pdf-plus-backlink-highlight-layer .pdf-plus-backlink:not(.hovered-highlight)[data-highlight-color=\"info\"],\n.pdf-embed[data-highlight-color=\"info\"] .textLayer .mod-focused {\n background-color: #ffd000;\n}\n.pdf-plus-backlink-highlight-layer .pdf-plus-backlink:not(.hovered-highlight)[data-highlight-color=\"method\"],\n.pdf-embed[data-highlight-color=\"method\"] .textLayer .mod-focused {\n background-color: #346aea;\n}\n.pdf-plus-backlink-highlight-layer .pdf-plus-backlink:not(.hovered-highlight)[data-highlight-color=\"disagree\"],\n.pdf-embed[data-highlight-color=\"disagree\"] .textLayer .mod-focused {\n background-color: #f04242;\n}\n.pdf-plus-backlink-highlight-layer .pdf-plus-backlink:not(.hovered-highlight)[data-highlight-color=\"agree\"],\n.pdf-embed[data-highlight-color=\"agree\"] .textLayer .mod-focused {\n background-color: #2ebf2b;\n}\n.pdf-plus-backlink-highlight-layer .pdf-plus-backlink:not(.hovered-highlight) {\n background-color: #ffd000;\n}\n.pdf-plus-backlink-highlight-layer .pdf-plus-backlink.hovered-highlight {\n\tbackground-color: green;\n}\n.pdf-plus-color-palette-item[data-highlight-color=\"info\"] > .pdf-plus-color-palette-item-inner {\n background-color: #ffd000;\n}\n.pdf-plus-color-palette-item[data-highlight-color=\"method\"] > .pdf-plus-color-palette-item-inner {\n background-color: #346aea;\n}\n.pdf-plus-color-palette-item[data-highlight-color=\"disagree\"] > .pdf-plus-color-palette-item-inner {\n background-color: #f04242;\n}\n.pdf-plus-color-palette-item[data-highlight-color=\"agree\"] > .pdf-plus-color-palette-item-inner {\n background-color: #2ebf2b;\n}\n.pdf-plus-color-palette-item:not([data-highlight-color]) > .pdf-plus-color-palette-item-inner {\n background-color: transparent;\n}\n.workspace-leaf.pdf-plus-link-opened.is-highlighted::before {\n\topacity: 0.5;\n}\nbody {\n --pdf-plus-info-rgb: 255, 208, 0\n}\nbody {\n --pdf-plus-method-rgb: 52, 106, 234\n}\nbody {\n --pdf-plus-disagree-rgb: 240, 66, 66\n}\nbody {\n --pdf-plus-agree-rgb: 46, 191, 43\n}\nbody {\n --pdf-plus-default-color-rgb: var(--pdf-plus-info-rgb)\n}\n.pdf-plus-backlink-highlight-layer .pdf-plus-backlink:not(.hovered-highlight) {\n background-color: #ffd000;\n}\n.callout[data-callout=\"pdf\"][data-callout-metadata=\"info\"] {\n\t--callout-color: var(--pdf-plus-info-rgb);\n background-color: rgba(var(--callout-color), var(--pdf-plus-highlight-opacity, 0.2))\n}\n.callout[data-callout=\"pdf\"][data-callout-metadata=\"method\"] {\n\t--callout-color: var(--pdf-plus-method-rgb);\n background-color: rgba(var(--callout-color), var(--pdf-plus-highlight-opacity, 0.2))\n}\n.callout[data-callout=\"pdf\"][data-callout-metadata=\"disagree\"] {\n\t--callout-color: var(--pdf-plus-disagree-rgb);\n background-color: rgba(var(--callout-color), var(--pdf-plus-highlight-opacity, 0.2))\n}\n.callout[data-callout=\"pdf\"][data-callout-metadata=\"agree\"] {\n\t--callout-color: var(--pdf-plus-agree-rgb);\n background-color: rgba(var(--callout-color), var(--pdf-plus-highlight-opacity, 0.2))\n}\n.callout[data-callout=\"pdf\"] {\n\t--callout-color: var(--pdf-plus-default-color-rgb);\n background-color: rgba(var(--callout-color), var(--pdf-plus-highlight-opacity, 0.2))\n}\n.callout[data-callout=\"pdf\"] {\n --callout-icon: lucide-highlighter;\n}" }

Originally posted by @programlich in #44 (comment)

Color palette customization options

PDF++ adds some controllers like color icons and dropdowns in PDF toolbars, but the current one is not very easy to use.
For example, I often want easier access to the copy format menu than the color selector.

So it would be a nice idea to allow several choices of the UI.


Redefine a color palette (or a PDF++ toolbar component) as anything that satisfies the following:

  • It has a state represented by
    interface ColorPaletteState {
        colorName: string | null; // or colorIndex: number
        actionIndex: number; // index of a custom copy format (or color palette action)
        displayTextFormatIndex: number;
        writeFile: boolean;
        selectToCopy: boolean;
        autoPaste: boolean;
    }
  • It supports getState(): ColorPaletteState; and setState(state: ColorPaletteState): void;

Provide several classes that implement the above requirements, and leave the choice to the user.


Unfortunately, I don't have great experience in UI coding so I will welcome PRs adding new UI choices or improving the existing one.

[FR] Split right by default

Hi

Thank you for this plugin! It is something that logseq has that I have been missing in obsidian.

But, would it be possible to add a feature so that wikilinks to PDFs (when pressed without any modifier keys) automatically open the PDF in a split view to the left or right? This would help with the muscle memory coming from logseq.

Also, for the option How to open markdown file with ctrl+hover when there is no open markdown file, would it be possible to add the option Split left?

Thank you!

Edit: To add more context, I am aware of modifier keys. What I would like to do is overriding the default opening behavior only for links to PDFs. So that I don't have to press the modifier keys when it comes to links to PDFs.

Hover sync

I don't know why this works when the feature is turned off. Possibly a bug?
image

Canvas

Interesting: https://forum.obsidian.md/t/make-a-better-pdf-annotation-in-canvas/61298

Currently, PDF++ does not support Canvas because internal links in canvas files are not indexed by Obsidian.
However, it would be possible to highlight backlinks from the same canvas file that the PDF viewer is embedded in.

We could also add a new option such as "create a card from text selection" in Canvas.

BUG PDF's won't open anymore

After changing some of the Custom color palette actions the PDFs won't open anymore, its just a blank tab.

The developer consoles displays:
image

Debug Info:

SYSTEM INFO:
Obsidian version: v1.5.6
Installer version: v1.4.13
Operating system: Darwin Kernel Version 23.3.0: Tue Dec 19 20:55:03 PST 2023; root:xnu-10002.80.20.505.4~2/RELEASE_ARM64_T6000 23.3.0
Login status: logged in
Catalyst license: vip
Insider build toggle: on
Live preview: on
Base theme: dark
Community theme: Minimal v7.4.7
Snippets enabled: 10
Restricted mode: off
Plugins installed: 66
Plugins enabled: 61
1: Advanced URI v1.40.0
2: Breadcrumbs v3.6.11
3: Better File Link v1.1.4
4: File path to URI v1.4.1
5: BRAT v0.8.4
6: Vault Statistics v0.1.3
7: Zoom v1.1.2
8: Various Complements v9.3.0
9: Dataview v0.5.64
10: Find orphaned files and broken links v1.9.1
11: Workspaces Plus v0.3.3
12: Another Quick Switcher v11.0.0
13: Automatic Table Of Contents v1.3.2
14: Canvas Style Menu v0.0.6
15: Creases v0.7.0
16: Copy Image and URL context menu v1.5.2
17: Copy Block Link v1.0.4
18: Convert url to preview (iframe) v0.5.0
19: Commander v0.5.1
20: Carry-Forward v1.4.5
21: Image Converter v1.1.7
22: Image Captions v1.1.0
23: Hover Editor v0.11.17
24: Hotkeys++ v0.2.7
25: Footnote Shortcut v0.1.3
26: Hotkey Helper v0.3.18
27: Heading Shifter v1.5.1
28: Get Info v1.1.0
29: Front Matter Title v3.8.4
30: Omnisearch v1.21.1
31: Obsidian better Internal Link Inserter v1.0.0
32: Minimal Theme Settings v7.3.1
33: Metadata Menu v0.8.2
34: Media Extended v3.0.1-beta.1
35: Linter v1.22.0
36: Leaflet v6.0.2
37: Latex Suite v1.9.0
38: Keyboard Analyzer v0.1.3
39: Image Toolkit v1.4.1
40: Quiet Outline v0.3.24
41: PodNotes v2.10.8
42: Persistent Links v0.2.0
43: Periodic Notes v0.0.17
44: Paste URL into selection v1.7.0
45: Paste image rename v1.6.1
46: Pane Relief v0.5.2
47: Outliner v4.8.0
48: Open files with commands v1.2.3
49: Style Settings v1.0.7
50: Tab Switcher v1.4.0
51: Sort & Permute lines v0.7.0
52: Strange New Worlds (SNW) v1.2.5
53: Size History v1.0.0
54: Short links v1.1.5
55: Settings Search v1.3.10
56: Regex Find/Replace v1.2.0
57: Readwise Official v2.0.1
58: Quiz Generator v1.1.0
59: Templater v2.2.1
60: Better Search Views v0.2.2
61: PDF++ v0.35.16

RECOMMENDATIONS:
Custom theme and snippets: for cosmetic issues, please first try updating your theme and disabling your snippets. If still not fixed, please try to make the issue happen in the Sandbox Vault or disable community theme and snippets.
Community plugins: for bugs, please first try updating all your plugins to latest. If still not fixed, please try to make the issue happen in the Sandbox Vault or disable community plugins.

{
"settings": {
"displayTextFormats": [
{
"name": "Obsidian default",
"template": "{{file.basename}}, page {{page}}"
},
{
"name": "Title & page",
"template": "{{file.basename}}, p.{{pageLabel}}"
},
{
"name": "Page only",
"template": "p.{{pageLabel}}"
},
{
"name": "Text",
"template": "{{text}}"
}
],
"defaultDisplayTextFormatIndex": 0,
"syncDisplayTextFormat": true,
"syncDefaultDisplayTextFormat": false,
"copyCommands": [
{
"name": "Callout",
"template": "- {{text}}\n- [!{{calloutType}}|{{colorName}}] {{linkWithDisplay}}\n\n"
},
{
"name": "Quote in callout",
"template": "> [!{{calloutType}}|{{colorName}}] {{linkWithDisplay}}\n> > {{text}}\n> \n> "
},
{
"name": "Custom ",
"template": "- {{text}}\n - {{linkWithDisplay}}\n"
}
],
"useAnotherCopyTemplateWhenNoSelection": false,
"copyTemplateWhenNoSelection": "{{linkToPageWithDisplay}}",
"trimSelectionEmbed": true,
"embedMargin": 50,
"noSidebarInEmbed": true,
"noSpreadModeInEmbed": true,
"embedUnscrollable": false,
"singleTabForSinglePDF": true,
"highlightExistingTab": false,
"existingTabHighlightOpacity": 0.5,
"existingTabHighlightDuration": 0.75,
"paneTypeForFirstPDFLeaf": "",
"openLinkNextToExistingPDFTab": true,
"openPDFWithDefaultApp": false,
"openPDFWithDefaultAppAndObsidian": true,
"focusObsidianAfterOpenPDFWithDefaultApp": true,
"syncWithDefaultApp": false,
"dontActivateAfterOpenPDF": true,
"dontActivateAfterOpenMD": true,
"highlightDuration": 0.75,
"noTextHighlightsInEmbed": false,
"noAnnotationHighlightsInEmbed": true,
"persistentTextHighlightsInEmbed": true,
"persistentAnnotationHighlightsInEmbed": false,
"highlightBacklinks": true,
"dblclickEmbedToOpenLink": true,
"highlightBacklinksPane": true,
"highlightOnHoverBacklinkPane": true,
"backlinkHoverColor": "",
"colors": {
"Yellow": "#ffd000",
"Red": "#EA5252",
"Note": "#086ddd",
"Important": "#bb61e5"
},
"defaultColor": "",
"defaultColorPaletteItemIndex": 0,
"syncColorPaletteItem": true,
"syncDefaultColorPaletteItem": false,
"colorPaletteInToolbar": true,
"noColorButtonInColorPalette": true,
"colorPaletteInEmbedToolbar": false,
"showStatusInToolbar": true,
"highlightColorSpecifiedOnly": false,
"doubleClickHighlightToOpenBacklink": true,
"hoverHighlightAction": "preview",
"paneTypeForFirstMDLeaf": "right",
"singleMDLeafInSidebar": true,
"alwaysUseSidebar": true,
"defaultColorPaletteActionIndex": -1,
"syncColorPaletteAction": true,
"syncDefaultColorPaletteAction": false,
"proxyMDProperty": "PDF",
"hoverPDFLinkToOpen": false,
"ignoreHeightParamInPopoverPreview": true,
"filterBacklinksByPageDefault": true,
"enableHoverPDFInternalLink": true,
"recordPDFInternalLinkHistory": true,
"alwaysRecordHistory": true,
"renderMarkdownInStickyNote": true,
"enalbeWriteHighlightToFile": false,
"author": "",
"writeHighlightToFileOpacity": 0.2,
"defaultWriteFileToggle": false,
"syncWriteFileToggle": true,
"syncDefaultWriteFileToggle": false,
"enableAnnotationDeletion": true,
"warnEveryAnnotationDelete": false,
"warnBacklinkedAnnotationDelete": true,
"enableAnnotationContentEdit": true,
"enableEditEncryptedPDF": false,
"pdfLinkColor": "#04a802",
"pdfLinkBorder": false,
"replaceContextMenu": true,
"executeBuiltinCommandForOutline": true,
"executeBuiltinCommandForZoom": true,
"executeFontSizeAdjusterCommand": true,
"closeSidebarWithShowCommandIfExist": true,
"outlineDrag": true,
"outlineContextMenu": true,
"outlineLinkDisplayTextFormat": "{{file.basename}}, {{text}}",
"outlineLinkCopyFormat": "{{linkWithDisplay}}",
"recordHistoryOnOutlineClick": true,
"popoverPreviewOnOutlineHover": true,
"thumbnailDrag": true,
"thumbnailContextMenu": true,
"thumbnailLinkDisplayTextFormat": "{{file.basename}}, page {{pageLabel}}",
"thumbnailLinkCopyFormat": "{{linkWithDisplay}}",
"recordHistoryOnThumbnailClick": true,
"popoverPreviewOnThumbnailHover": true,
"annotationPopupDrag": true,
"useCallout": true,
"calloutType": "PDF",
"calloutIcon": "highlighter",
"highlightBacklinksInEmbed": false,
"highlightBacklinksInHoverPopover": false,
"highlightBacklinksInCanvas": true,
"clickPDFInternalLinkWithModifierKey": true,
"clickOutlineItemWithModifierKey": true,
"clickThumbnailWithModifierKey": true,
"focusEditorAfterAutoPaste": true,
"autoFocus": false,
"autoFocusTarget": "last-active-and-open-then-last-paste",
"autoPasteTarget": "last-active-and-open-then-last-paste",
"openAutoFocusTargetIfNotOpened": true,
"howToOpenAutoFocusTargetIfNotOpened": "right",
"closeHoverEditorWhenLostFocus": true,
"closeSidebarWhenLostFocus": true,
"openAutoFocusTargetInEditingView": true,
"executeCommandWhenTargetNotIdentified": true,
"commandToExecuteWhenTargetNotIdentified": "switcher:open",
"selectToCopyToggleRibbonIcon": true,
"autoFocusToggleRibbonIcon": true,
"viewSyncFollowPageNumber": true,
"viewSyncPageDebounceInterval": 0.3,
"openAfterExtractPages": true,
"howToOpenExtractedPDF": "tab",
"warnEveryPageDelete": false,
"warnBacklinkedPageDelete": true,
"extractPageInPlace": false,
"askExtractPageInPlace": true,
"pageLabelUpdateWhenInsertPage": "keep",
"pageLabelUpdateWhenDeletePage": "keep",
"pageLabelUpdateWhenExtractPage": "keep",
"askPageLabelUpdateWhenInsertPage": true,
"askPageLabelUpdateWhenDeletePage": true,
"askPageLabelUpdateWhenExtractPage": true,
"copyOutlineAsListFormat": "{{linkWithDisplay}}",
"copyOutlineAsListDisplayTextFormat": "{{text}}",
"copyOutlineAsHeadingsFormat": "{{text}}\n\n{{linkWithDisplay}}",
"copyOutlineAsHeadingsDisplayTextFormat": "p.{{pageLabel}}",
"copyOutlineAsHeadingsMinLevel": 2,
"newFileNameFormat": "",
"newFileTemplatePath": "",
"pageLabelUpdateWhenDividePDFs": "keep",
"askPageLabelUpdateWhenDividePDFs": true
},
"styleSheet": ".pdf-plus-backlink-highlight-layer .pdf-plus-backlink:not(.hovered-highlight)[data-highlight-color="yellow"],\n.pdf-embed[data-highlight-color="yellow"] .textLayer .mod-focused {\n background-color: #ffd000;\n}\n.pdf-plus-backlink-highlight-layer .pdf-plus-backlink:not(.hovered-highlight)[data-highlight-color="red"],\n.pdf-embed[data-highlight-color="red"] .textLayer .mod-focused {\n background-color: #EA5252;\n}\n.pdf-plus-backlink-highlight-layer .pdf-plus-backlink:not(.hovered-highlight)[data-highlight-color="note"],\n.pdf-embed[data-highlight-color="note"] .textLayer .mod-focused {\n background-color: #086ddd;\n}\n.pdf-plus-backlink-highlight-layer .pdf-plus-backlink:not(.hovered-highlight)[data-highlight-color="important"],\n.pdf-embed[data-highlight-color="important"] .textLayer .mod-focused {\n background-color: #bb61e5;\n}\n.pdf-plus-backlink-highlight-layer .pdf-plus-backlink:not(.hovered-highlight) {\n background-color: rgb(var(--text-highlight-bg-rgb));\n}\n.pdf-plus-backlink-highlight-layer .pdf-plus-backlink.hovered-highlight {\n\tbackground-color: green;\n}\n.pdf-plus-color-palette-item[data-highlight-color="yellow"] > .pdf-plus-color-palette-item-inner {\n background-color: #ffd000;\n}\n.pdf-plus-color-palette-item[data-highlight-color="red"] > .pdf-plus-color-palette-item-inner {\n background-color: #EA5252;\n}\n.pdf-plus-color-palette-item[data-highlight-color="note"] > .pdf-plus-color-palette-item-inner {\n background-color: #086ddd;\n}\n.pdf-plus-color-palette-item[data-highlight-color="important"] > .pdf-plus-color-palette-item-inner {\n background-color: #bb61e5;\n}\n.pdf-plus-color-palette-item:not([data-highlight-color]) > .pdf-plus-color-palette-item-inner {\n background-color: transparent;\n}\n.workspace-leaf.pdf-plus-link-opened.is-highlighted::before {\n\topacity: 0.5;\n}\nbody {\n --pdf-plus-yellow-rgb: 255, 208, 0\n}\nbody {\n --pdf-plus-red-rgb: 234, 82, 82\n}\nbody {\n --pdf-plus-note-rgb: 8, 109, 221\n}\nbody {\n --pdf-plus-important-rgb: 187, 97, 229\n}\nbody {\n --pdf-plus-default-color-rgb: var(--text-highlight-bg-rgb)\n}\n.pdf-plus-backlink-highlight-layer .pdf-plus-backlink:not(.hovered-highlight) {\n background-color: rgb(var(--text-highlight-bg-rgb));\n}\n.callout[data-callout="pdf"][data-callout-metadata="yellow"] {\n\t--callout-color: var(--pdf-plus-yellow-rgb);\n background-color: rgba(var(--callout-color), var(--pdf-plus-highlight-opacity, 0.2))\n}\n.callout[data-callout="pdf"][data-callout-metadata="red"] {\n\t--callout-color: var(--pdf-plus-red-rgb);\n background-color: rgba(var(--callout-color), var(--pdf-plus-highlight-opacity, 0.2))\n}\n.callout[data-callout="pdf"][data-callout-metadata="note"] {\n\t--callout-color: var(--pdf-plus-note-rgb);\n background-color: rgba(var(--callout-color), var(--pdf-plus-highlight-opacity, 0.2))\n}\n.callout[data-callout="pdf"][data-callout-metadata="important"] {\n\t--callout-color: var(--pdf-plus-important-rgb);\n background-color: rgba(var(--callout-color), var(--pdf-plus-highlight-opacity, 0.2))\n}\n.callout[data-callout="pdf"] {\n\t--callout-color: var(--pdf-plus-default-color-rgb);\n background-color: rgba(var(--callout-color), var(--pdf-plus-highlight-opacity, 0.2))\n}\n.callout[data-callout="pdf"] {\n --callout-icon: lucide-highlighter;\n}"
}

Record progress & share it across devices

I was wondering whether you would consider storing the reading progress of each file that is viewed, rather than storing the progress of only the current file viewed?

Currently, I rely on Omnivore for reading longer pdfs from beginning to end, because Obsidian tends to lose track of my reading progress when I'm reading across several sessions and/or devices. With this plugin recording the reading progress of each pdf, Obsidian may be able to replace this functionality of Omnivore.

Originally posted by @callumalpass in RyotaUshio/obsidian-view-sync#1 (comment)


That would be a nice feature to have. It would be better handled by PDF++ rather than this plugin, though.
What I have in mind for now is:

  1. Each device records the latest progress (page, zoom level etc) and a timestamp in its own dedicated file like pdf-progress-macbook.json.
  2. When opening a PDF file, PDF++ looks up the latest progress in the file, then sets the page number and so on accordingly.

This way, we will be able to record progress in each device. In addition, we could add an option like "share progress across devices" and specify which file to read another device's progress from (e.g. pdf-progress-ipad.json).

If this option is enabled, PDF++ compares the timestamps from all the devices and follows the latest one.

[FR] Hightlight content without copy text

Hi, thanks for you effort into this wonderful pulgin!
And a little polishment will definitely make it better.
I find that "hightlight" is only applicable when I copy the text into my note
but sometimes i just want to hightlight without citing or copying content into my note.

[FR] open pdf in obsidian from zotero

if we directly set obsidian as the default app for PDF, when we open the PDF, we will redirected to the vault select panel in fact,

I found a way to use the URI scheme, but this needs extra setup

I create a Python file and packaged it as a .exe file, which simply transfers the open/start CLI command trigger by Zotero, to an obsidian open file scheme

file_path = sys.argv[1]

# url encode
url_file_path = urllib.parse.quote(file_path)

# open by URL scheme
os.system(f"start obsidian://open?path={url_file_path}")

I just wonder if there is any better method to accomplish this behavior, since now with this plugin, we could use obsidian as the viewer and annotator, but we still need the capability Zotero provided to manage literature.

copy embed of selection

Why is it that when I select copy embed of selection, the link after pasting is an embed of the whole PDF?

It should be a bug!
Change the setting to the one shown below and it works fine, before it was {{link}}.
image

[FR] Extract Highlights

First of all thanks!!
I never really used PDF in obsmd, but it's now changing and that in part of PDF++.
I just scrolled trough the settings and it's crazy how big this is. Props!

One thing I would find really useful, is to extract all highlights of a PDF and be able to paste them in a .md file, with the backlinks to the pdf.
I think it's something a lot of people could find helpful. :)

[BUG] Cannot use display text format

When I use {{file.basename}}, {{page}}/{{pageCount}}, "{{selection}}" or {{file.basename}} as Display text format, I get the following errors

resim

resim

[FR] Sorting Annotations by Page Number

I don't know if it's possible, but this function would be awesome: When executed, the annotations in the markdown file will be sorted by page number. This would be helpful if the annotations are mixed up from different chapters on different pages, and you are using only one annotation markdown file.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.