GithubHelp home page GithubHelp logo

chrisgrieser / pdf-annotation-extractor-alfred Goto Github PK

View Code? Open in Web Editor NEW
71.0 2.0 5.0 1.87 MB

Alfred Workflow to extract annotations from PDF files.

License: MIT License

JavaScript 59.74% Shell 32.33% AppleScript 5.36% Just 2.57%
alfred-workflow pdf pdf-annotation pandoc

pdf-annotation-extractor-alfred's Introduction

PDF Annotation Extractor

Download count Last release

A Workflow for Alfred to extract annotations as Markdown file. Primarily for scientific papers, but can also be used for non-academic PDF files.

Automatically determines correct page numbers, inserts them as Pandoc citations, merges highlights across page breaks, prepends a YAML header with bibliographic information, and more.

Table of Contents

Installation

  • Requirement: Alfred 5 with Powerpack
  • Install Homebrew
  • Install pdfannots2json by running the following command into your terminal: brew install mgmeyers/pdfannots2json/pdfannots2json
  • Download the latest release.
  • Set the hotkey by double-clicking the sky-blue field at the top left.
  • Set up the workflow configuration inside the app.

Requirements for the PDF

PDF Annotation Extractor works on any PDF that has valid annotations saved in the PDF file. Some PDF readers like Skim or Zotero 6 do not store annotations in the PDF itself by default.

This workflow automatically determines the citekey of based on the filename of your PDF file.

  • If the citekey is found, the PDF Annotation Extractor prepends a yaml header to the annotations and automatically inserts the citekey with the correct page numbers using the Pandoc citations syntax.
  • If your filename does not contain citekey that can be found in your library, the PDF Annotation Extractor extracts the annotations without a yaml header and uses the PDF numbers as page numbers.

Automatic citekey identification

  • The filename of the PDF file MUST begin with the citekey (without @).
  • The citekey MUST NOT contain any underscores (_).
  • The name of the file MAY be followed by an underscore and some text, such as {citekey}_{title}.pdf. It MUST NOT be followed by anything else, since then the citekey would not be found.
  • Example: With the filename, Grieser2023_Interdependent Technologies.pdf, the identified citekey is Grieser2023.

Tip

You can achieve such a filename pattern with automatic renaming rules of most reference managers, for example with the ZotFile plugin for Zotero or the AutoFile feature of BibDesk.

Usage

Basics

Use the hotkey to trigger the Annotation Extraction on the PDF file currently selected in Finder. The hotkey also works when triggered from PDF Expert or Highlights. Alternatively, use the anno keyword to search for PDFs and select one.

Annotation Types extracted

Automatic Page Number Identification

Instead of the PDF page numbers, this workflow retrieves information about the real page numbers from the BibTeX library and inserts them. If there is no page data in the BibTeX entry (for example, monographies), you are prompted to enter the page number manually.

  • In that case, enter the real page number of your first PDF page.
  • In case there is content before the actual text (for example, a foreword or Table of Contents), the real page number 1 often occurs later in the PDF. If that is the case, you must enter a negative page number, reflecting the true page number the first PDF would have. Example: Your PDF is a book, which has a foreword, and uses roman numbers for it; real page number 1 is PDF page number 12. If you continued the numbering backwards, the first PDF page would have page number -10, you enter the value -10 when prompted for a page number.

Annotation Codes

Insert the following codes at the beginning of an annotation to invoke special actions on that annotation. Annotation codes do not apply to strikethroughs.

  • +: Merge this highlight with the previous highlight or underline. Works for annotations on the same PDF-page (= skipping text in between) and for annotations across two pages.
    • ? foo (free comments): Turns "foo" into a Question Callout (> ![QUESTION]) and move up. (Callouts are Obsidian-specific Syntax.)
  • ##: Turns highlighted text into a heading that is added at that location. The number of # determines the heading level. If the annotation is a free comment, the text following the # is used as heading instead. (The space after the is # required).
  • =: Adds highlighted text as tags to the YAML frontmatter. If the annotation is a free comment, uses the text after the =. In both cases, the annotation is removed afterward.
  • _: A copy of the annotation is sent Reminders.app as a task due today (default list).

Tip

You can run the Alfred command acode to display a cheat sheet of all annotation codes.

Extracting Images

  • The respective images are saved in the attachments sub-folder of the output folder, and named {citekey}_image{n}.png.
  • The images are embedded in the markdown file with the ![[ ]] syntax, for example ![[filename.png|foobar]]
  • Any rectangle type annotation in the PDF is extracted as image.
  • If the rectangle annotation has any comment, it is used as the alt-text for the image. (Note that some PDF readers like PDF Expert do not allow you to add a comment to rectangular annotations.)

Troubleshooting

  • Update to the latest version of pdfannots2json by running brew upgrade pdfannots2json in your terminal.
  • This workflow does not work with annotations that are not actually saved in the PDF file. Some PDF Readers like Skim or Zotero 6 do this, but you can tell those PDF readers to save the notes in the actual PDF.

Note

As a fallback, you can use pdfannots as extraction engine, as a different PDF engine sometimes fixes issues. This requires installing pdfannots via pip3 install pdfannots, and switching the fallback engine in the settings. Note that pdfannots does not support image extraction and the extraction quality is slightly worse, so generally you want to use pdfannots2json.

Cite this software project

If you want to mention this software project in an academic publication, please cite it as:

Grieser, C. (2023). PDF Annotation Extractor [Computer software]. 
https://github.com/chrisgrieser/pdf-annotation-extractor-alfred

For other citation styles, use the following metadata:

Credits

About the Developer

In my day job, I am a sociologist studying the social mechanisms underlying the digital economy. For my PhD project, I investigate the governance of the app economy and how software ecosystems manage the tension between innovation and compatibility. If you are interested in this subject, feel free to get in touch.

Buy Me a Coffee at ko-fi.com

pdf-annotation-extractor-alfred's People

Contributors

chrisgrieser avatar christyray avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

pdf-annotation-extractor-alfred's Issues

[Bug]: How to troubleshoot error?

Bug Description

When running anno on some pdf (to which a citekey exists in the library), it ends at "processing annotations" and yields "Unknown error".

How can I troubleshoot it? pdfannots2json seems to be working just fine.

Relevant Screenshot

No response

To Reproduce

  1. create bibtex entry with citekey townley2008
  2. run anno on the attached file
    townley2008.pdf

Debugging Log

[01:24:21.365] PDF Annotation Extractor[File Filter] Processing complete
[01:24:21.366] PDF Annotation Extractor[File Filter] Passing output '/Users/sebastianbehrens/Downloads/townley2008.pdf' to Arg and Vars
[01:24:21.366] PDF Annotation Extractor[Arg and Vars] Processing complete
[01:24:21.367] PDF Annotation Extractor[Arg and Vars] Passing output '/Users/sebastianbehrens/Downloads/townley2008.pdf' to Conditional
[01:24:21.367] PDF Annotation Extractor[Conditional] Processing complete
[01:24:21.368] PDF Annotation Extractor[Conditional] Passing output '/Users/sebastianbehrens/Downloads/townley2008.pdf' to Replace
[01:24:21.368] PDF Annotation Extractor[Replace] Processing complete
[01:24:21.369] PDF Annotation Extractor[Replace] Passing output 'townley2008' to Arg and Vars
[01:24:21.369] PDF Annotation Extractor[Arg and Vars] Processing complete
[01:24:21.373] PDF Annotation Extractor[Arg and Vars] Passing output '/Users/sebastianbehrens/Downloads/townley2008.pdf' to Run Script
[01:24:21.546] PDF Annotation Extractor[Run Script] Processing complete
[01:24:21.548] PDF Annotation Extractor[Run Script] Passing output ';;Reason's neglect . rationality and organizing;;;;Townley, Barbara;;2008;;book;;
' to Conditional
[01:24:21.549] PDF Annotation Extractor[Conditional] Processing complete
[01:24:21.549] PDF Annotation Extractor[Conditional] Passing output ';;Reason's neglect . rationality and organizing;;;;Townley, Barbara;;2008;;book;;
' to Split Arg to Vars
[01:24:21.550] PDF Annotation Extractor[Split Arg to Vars] Processing complete
[01:24:21.550] PDF Annotation Extractor[Split Arg to Vars] Passing output ';;Reason's neglect . rationality and organizing;;;;Townley, Barbara;;2008;;book;;
' to Arg and Vars
[01:24:21.551] PDF Annotation Extractor[Arg and Vars] Processing complete
[01:24:21.551] PDF Annotation Extractor[Arg and Vars] Passing output '' to Conditional
[01:24:21.552] PDF Annotation Extractor[Conditional] Processing complete
[01:24:21.552] PDF Annotation Extractor[Conditional] Passing output '' to Post Notification
[01:24:21.553] PDF Annotation Extractor[Conditional] Passing output '' to Run Script
[01:24:21.780] PDF Annotation Extractor[Run Script] Processing complete
[01:24:21.784] PDF Annotation Extractor[Run Script] Passing output '' to Arg and Vars
[01:24:21.785] PDF Annotation Extractor[Arg and Vars] Processing complete
[01:24:21.785] PDF Annotation Extractor[Arg and Vars] Passing output '' to Keyword
[01:24:23.603] PDF Annotation Extractor[Keyword] Processing complete
[01:24:23.604] PDF Annotation Extractor[Keyword] Passing output '1' to Conditional
[01:24:23.605] PDF Annotation Extractor[Conditional] Processing complete
[01:24:23.605] PDF Annotation Extractor[Conditional] Passing output '1' to Arg and Vars
[01:24:23.606] PDF Annotation Extractor[Arg and Vars] Processing complete
[01:24:23.606] PDF Annotation Extractor[Arg and Vars] Passing output '1' to Post Notification
[01:24:23.607] PDF Annotation Extractor[Post Notification] Processing complete
[01:24:23.608] PDF Annotation Extractor[Post Notification] Passing output '1' to Run Script
[01:24:23.751] PDF Annotation Extractor[Run Script] Processing complete
[01:24:23.755] PDF Annotation Extractor[Run Script] Passing output '[{"annotatedText":" computer ","color":"#d5d5d5","colorCategory":"Gray","date":"2022-06-09T01:07:41+02:00","id":"highlight-p1x189y608","page":1,"type":"highlight","x":189.33,"y":608.02},{"annotatedText":"equipped ","color":"#d5d5d5","colorCategory":"Gray","date":"2022-06-09T01:07:40+02:00","id":"highlight-p1x254y608","page":1,"type":"highlight","x":254.77,"y":608.02}]
' to Conditional
[01:24:23.756] PDF Annotation Extractor[Conditional] Processing complete
[01:24:23.756] PDF Annotation Extractor[Conditional] Passing output '[{"annotatedText":" computer ","color":"#d5d5d5","colorCategory":"Gray","date":"2022-06-09T01:07:41+02:00","id":"highlight-p1x189y608","page":1,"type":"highlight","x":189.33,"y":608.02},{"annotatedText":"equipped ","color":"#d5d5d5","colorCategory":"Gray","date":"2022-06-09T01:07:40+02:00","id":"highlight-p1x254y608","page":1,"type":"highlight","x":254.77,"y":608.02}]
' to Run Script
[01:24:23.952] PDF Annotation Extractor[Run Script] Processing complete
[01:24:23.954] PDF Annotation Extractor[Run Script] Passing output '' to Conditional
[01:24:23.954] PDF Annotation Extractor[Conditional] Processing complete
[01:24:23.955] PDF Annotation Extractor[Conditional] Passing output '' to Post Notification

Workflow Configuration

image

Checklist

  • I have updated to the latest version of this workflow.
  • I checked out the available options under aconf and there isn't one that enables the desired behavior.

ERROR: PDF Annotation Extractor[Run Script] mkdir: /attachments: Read-only file system

Trying to get this up and working - have installed homebrew and pdfannots2json, re-exported a Zotero library via BetterBibTex, and am getting a mkdir error after choosing a PDF and pasting in the citekey manually.

I'm not sure quite where the read-only directory is becomming an issue. My Zotero library is stored locally, but as "linked" files, not in the Zotero file structure.

[12:04:17.409] Logging Started...
[12:04:21.628] PDF Annotation Extractor[File Filter] Processing complete
[12:04:21.630] PDF Annotation Extractor[File Filter] Passing output '/Users/REDACTED/Box Sync/2022/Garnett - 2020 - The Preservation of the Sources for English Mediev.pdf' to Arg and Vars
[12:04:21.631] PDF Annotation Extractor[Arg and Vars] Processing complete
[12:04:21.632] PDF Annotation Extractor[Arg and Vars] Passing output '/Users/REDACTED/Box Sync/2022/Garnett - 2020 - The Preservation of the Sources for English Mediev.pdf' to Conditional
[12:04:21.632] PDF Annotation Extractor[Conditional] Processing complete
[12:04:21.633] PDF Annotation Extractor[Conditional] Passing output '/Users/REDACTED/Box Sync/2022/Garnett - 2020 - The Preservation of the Sources for English Mediev.pdf' to Arg and Vars
[12:04:21.633] PDF Annotation Extractor[Arg and Vars] Processing complete
[12:04:21.634] PDF Annotation Extractor[Arg and Vars] Passing output '' to Keyword
[12:04:24.625] PDF Annotation Extractor[Keyword] Processing complete
[12:04:24.626] PDF Annotation Extractor[Keyword] Passing output 'garnettPreservationSourcesEnglish2020' to Replace
[12:04:24.630] PDF Annotation Extractor[Replace] Processing complete
[12:04:24.631] PDF Annotation Extractor[Replace] Passing output 'garnettPreservationSourcesEnglish2020' to Arg and Vars
[12:04:24.631] PDF Annotation Extractor[Arg and Vars] Processing complete
[12:04:24.632] PDF Annotation Extractor[Arg and Vars] Passing output '/Users/matthew/Box Sync/2022/Garnett - 2020 - The Preservation of the Sources for English Mediev.pdf' to Run Script
[12:04:24.888] PDF Annotation Extractor[Run Script] Processing complete
[12:04:24.889] PDF Annotation Extractor[Run Script] Passing output '286;;The Preservation of the Sources for English Medieval History in the Sixteenth Century;;;;Garnett, George;;2020;;inbook;;https://doi.org/10.1093/oso/9780198726166.003.0009
' to Conditional
[12:04:24.890] PDF Annotation Extractor[Conditional] Processing complete
[12:04:24.890] PDF Annotation Extractor[Conditional] Passing output '286;;The Preservation of the Sources for English Medieval History in the Sixteenth Century;;;;Garnett, George;;2020;;inbook;;https://doi.org/10.1093/oso/9780198726166.003.0009
' to Split Arg
[12:04:24.891] PDF Annotation Extractor[Split Arg] Processing complete
[12:04:24.891] PDF Annotation Extractor[Split Arg] Passing output '286;;The Preservation of the Sources for English Medieval History in the Sixteenth Century;;;;Garnett, George;;2020;;inbook;;https://doi.org/10.1093/oso/9780198726166.003.0009
' to Arg and Vars
[12:04:24.892] PDF Annotation Extractor[Arg and Vars] Processing complete
[12:04:24.892] PDF Annotation Extractor[Arg and Vars] Passing output '286' to Conditional
[12:04:24.893] PDF Annotation Extractor[Conditional] Processing complete
[12:04:24.893] PDF Annotation Extractor[Conditional] Passing output '286' to Arg and Vars
[12:04:24.894] PDF Annotation Extractor[Arg and Vars] Processing complete
[12:04:24.894] PDF Annotation Extractor[Arg and Vars] Passing output '286' to Post Notification
[12:04:24.895] PDF Annotation Extractor[Post Notification] Processing complete
[12:04:24.895] PDF Annotation Extractor[Post Notification] Passing output '286' to Hide Alfred
[12:04:24.909] PDF Annotation Extractor[Arg and Vars] Passing output '286' to Run Script
[12:04:24.910] ERROR: PDF Annotation Extractor[Run Script] mkdir: /attachments: Read-only file system
[12:04:24.910] PDF Annotation Extractor[Run Script] Processing complete
[12:04:24.911] PDF Annotation Extractor[Run Script] Passing output '' to Conditional
[12:04:24.911] PDF Annotation Extractor[Conditional] Processing complete
[12:04:24.912] PDF Annotation Extractor[Conditional] Passing output '' to Post Notification
[12:04:24.913] PDF Annotation Extractor[Post Notification] Processing complete
[12:04:24.913] PDF Annotation Extractor[Post Notification] Passing output '' to Play Sound

[Bug]: Not a .pdf file

Bug Description

First of all, thank you for this workflow! :)

It seems the workflow can not extract annotations anymore for me. Both pdfannots2json and pdfannots methods fail with the error "Not a .pdf file".
However, when run independently of this workflow, I am able to get the annotations from a pdf using both pdfannots2json and pdfannots.

Judging from the debug log (see below) the workflow is not able to get the current_file variable?
Thanks for your help :)

Relevant Screenshot

No response

To Reproduce

  1. Select a PDF file in finder
  2. Use the hotkey
  3. Get the error "not a pdf file"

Debugging Log

[10:38:34.625] PDF Annotation Extractor[Hotkey] Processing complete
[10:38:34.634] PDF Annotation Extractor[Hotkey] Passing output '' to Run Script
[10:38:35.080] ERROR: PDF Annotation Extractor[Run Script] ./scripts/get-pdf-path.applescript:1348:1360: execution error: Variable current_file is not defined. (-2753)

Workflow Configuration

workflow

Checklist

  • I have updated to the latest version of this workflow.
  • If the extracted text is all jumbled up (special characters, spaces missing, etc.) then the issue is not with this workflow, but the underlying extraction engine, pdfannots2json. Upgrade it to the latest version with brew upgrade pdfannots2json and try again. If the issue persists, file a bug report at pdfannots2json.

Can I disable BibTex Library Path?

Bug Description

BibTex Library Path is a required field. However, I have lots of private PDFs. How can I work without a .bib file?
(Actually, I don't know what a .bib file is.)

Relevant Screenshot

No response

To Reproduce

No response

Debugging Log

N/A

Workflow Configuration

Default

Checklist

  • I have updated to the latest version of this workflow.
  • If the extracted text is all jumbled up (special characters, spaces missing, etc.) then the issue is not with this workflow, but the underlying extraction engine, pdfannots2json. Upgrade it to the latest version with brew upgrade pdfannots2json and try again. If the issue persists, file a bug report at pdfannots2json.

rectangular selections?

Hi folks, is it possible to select rectangular (image) selections and have them exported to markdown (links to graphics files for example)?

[Bug]: Possible Off-by-One Error regarding true page number

Bug Description

When entering the true first page number it is off by 1, e.g. the most recent paper I read starts with a title page which is followed by the first text page which is numbered 1. When I enter -1 in the dialoge I still get page 2 for highlights on page 1. This behaviour is consistent for every paper I had to enter a page number, so either I misunderstand how the feature works or there is an off-by-one error.

Relevant Screenshot

hooghe_2020_PostfunctionalistTheoryMultilevel.pdf

Bibtex entry:

@Article{hooghe2009PostfunctionalistTheoryMultilevel,
title = {A Postfunctionalist Theory of Multilevel Governance},
author = {Hooghe, Liesbet and Marks, Gary},
date = {2009},
journaltitle = {The British Journal of Politics and International Relations},
shortjournal = {The British Journal of Politics and International Relations},
volume = {22},
number = {4},
pages = {1--23},
issn = {1369-1481, 1467-856X},
doi = {10.1177/1369148120935303},
url = {http://journals.sagepub.com/doi/10.1177/1369148120935303},
urldate = {2022-11-29},
abstract = {Multilevel governance describes the diffusion of authority away from the central state. In this contribution, we recount how an archaic term, governance, became part of the vocabulary of political science. We then outline three building blocks of a postfunctionalist theory of multilevel governance. The first is that multilevel governance is cooperation to provide collective goods at diverse scales. The second is that the form governance takes depends on the sociality of the participants. The third is that conflict over community enables or impedes multilevel governance.},
langid = {english},
keywords = {read},
file = {/Users/jan/Zotero/storage/EJTC87K5/Hooghe and Marks - 2020 - A postfunctionalist theory of multilevel governanc.pdf}
}

To Reproduce

  1. Press shortcut to extract
  2. Enter -1 as the pdf starts with a title page, followed by page 1.

Debugging Log

[10:03:19.688] PDF Annotation Extractor[Hotkey] Processing complete
[10:03:19.700] PDF Annotation Extractor[Hotkey] Passing output '' to Run Script
[10:03:23.697] STDERR: PDF Annotation Extractor[Run Script] rmdir: /Users/jan/Obsidian/0 Seedbox/attachments: Directory not empty
[10:03:23.705] PDF Annotation Extractor[Run Script] Processing complete
[10:03:23.706] PDF Annotation Extractor[Run Script] Passing output '' to Post Notification

Workflow Configuration

CleanShot 2024-02-19 at 15 13 17@2x

Checklist

  • I have updated to the latest version of this workflow.
  • If the extracted text is all jumbled up (special characters, spaces missing, etc.) then the issue is not with this workflow, but the underlying extraction engine, pdfannots2json. Upgrade it to the latest version with brew upgrade pdfannots2json and try again. If the issue persists, file a bug report at pdfannots2json.

Feature Request: Modify the file name requirement of citekey_[...].pdf to just citekey.pdf

Feature Requested

I wondered whether it would be possible to allow one to change the requirement for an underscore in the pdfs-title through some workflow addition, or manually somewhere in the workflow or its file.

Relevant Screenshot

No response

Checklist

  • The feature would be useful to more users than just me.
  • I have read the README and also checked that the aconf does not already offer an option for the feature I am requesting.

Feature Request: Support customizing note name when extracting annotations from PDF files that are not part of the BibTeX library

Feature Requested

It would be great if one can customize the note name when extracting annotations from PDF files that are not part of the BibTeX library, as one may already have existing daily notes. For instance, it would great if one can add a suffix or prefix, e.g., 2022-04-09_annotation.md.

Taken from #5 (comment).

Relevant Screenshot

No response

Checklist

  • The feature would be useful to more users than just me.
  • I have read the README and also checked that the aconf does not already offer an option for the feature I am requesting.

[Bug]: Markdown file created but no annotation extracted from pdf

Bug Description

When running the shortcut on a selected file in Finder, the .md file is correctly created with the YAML and the Author/Title, but the annotations are not attached to the file. Same happens if I use the 'anno' command.

Debugging log file: alfredDebug.txt

Edit: I just ran the workflow inside PDF Expert, and I get the warning "File is not a PDF", don't know if that helps.

Relevant Screenshot

No response

To Reproduce

  1. Select a pdf file in the Finder
  2. Run the shortcut with the hotkey
  3. The .md file is created but no annotation are present

Debugging Log

See attached file above

Workflow Configuration

image

Checklist

  • I have updated to the latest version of this workflow.
  • If the extracted text is all jumbled up (special characters, spaces missing, etc.) then the issue is not with this workflow, but the underlying extraction engine, pdfannots2json. Upgrade it to the latest version with brew upgrade pdfannots2json and try again. If the issue persists, file a bug report at pdfannots2json.

Feature Request: check whether the bib library path and the output path setting, maybe bug

Feature Requested

I use this workflow, it can output annotation, but without citekey and the output can not be exported to the path I fill in the alfred(still in the path where the pdf locates).
I check the introduction of the version before 2022 or so. That version can check whether or not the bib library path is right or not. So could you add back that feature?
mac sonoma, alfred5. the PDF title name already renamed begin with citekey.
image

Relevant Screenshot

No response

Checklist

  • The feature would be useful to more users than just me.

Bug: "error it is not a pdf file"

Feature Requested

hi , when I open the pdf file and try to extract it tell me that the document: error it is not a pdf file

Thanks

Relevant Screenshot

No response

Checklist

  • The feature would be useful to more users than just me.
  • I have read the README and also checked that the aconf does not already offer an option for the feature I am requesting.

[Bug]: Meta Data Extraction not working anymore

Bug Description

Only the highlights will get extracted, not the meta data.

Relevant Screenshot

No response

To Reproduce

  1. Open the PDF in PDF Expert
  2. Run the keyboard shortcut

Debugging Log

[15:10:22.320] Logging Started...
[15:10:29.710] PDF Annotation Extractor[Hotkey] Processing complete
[15:10:29.718] PDF Annotation Extractor[Hotkey] Passing output '' to Run Script
[15:10:31.147] PDF Annotation Extractor[Run Script] Processing complete
[15:10:31.153] PDF Annotation Extractor[Run Script] Passing output '' to Post Notification

Workflow Configuration

CleanShot 2024-02-19 at 15 13 17@2x

Checklist

  • I have updated to the latest version of this workflow.
  • If the extracted text is all jumbled up (special characters, spaces missing, etc.) then the issue is not with this workflow, but the underlying extraction engine, pdfannots2json. Upgrade it to the latest version with brew upgrade pdfannots2json and try again. If the issue persists, file a bug report at pdfannots2json.

Feature Request: Support Readwise Annotation Codes

Besides the current version of the Annotation Codes, is it also possible to support Annotation Codes with Readwise syntax? For instance, a few commonly used Annotation Codes/Tags in Readwise for me are as follows:

  • If .h1, .h2, .h3, etc. are added to the comments corresponding to specific highlights, the highlighted text would be converted as Markdown headers of the corresponding levels.
  • If .c1, .c2, .c3, etc. are added to the comments corresponding to specific highlights, the highlights and comments would be combined.
  • For ordinary tags, one can use .tag1, .tag2, etc. in the comments.

A few other notes for adding tags in the Readwise syntax are as follows:

  • Tags should be separated from each other with spaces, e.g. .tag1 .tag2.
  • Tags should be separated from actual comments with new lines. For instance, the first line of the comments can be tags, and the second line can be actual comments.

A few related articles on this are as follows:

[BUG] pdfminer and pdfannots not found

Describe the Bug
I have installed pdfminer and pdfannots as described in the readme. However, it seems they are not being found by the Alfred workflow:

So, when I invoke the workflow, everything seems to run properly and the note is created in Obsidian. However, only the bib information appears--it does not pull any highlights from the file. (These are highlights created in DevonThink and are embedded in the file).

I wonder if there is some kind of path error that I need to address. That seems to always be the problem with command line stuff installed with homebrew in my experience. When I just type "pdfannots" into the command line, it says "command not found." But if I re-run "pip3 install pdfannots" it gives a bunch of lines that all say it's installed.

Debugging Log

[13:46:56.201] ERROR: PDF Annotation Extractor[Run Script] Traceback (most recent call last):
  File "<string>", line 1, in <module>
ModuleNotFoundError: No module named 'pdfminer'
/Users/derekvan/Library/Caches/com.runningwithcrayons.Alfred/Workflow Scripts/698D0770-C158-4C37-B1F2-CB5DC18825CB:4: command not found: pdfannots

Checklist

  • [x ] I have read and checked the Troubleshooting.
  • [x ] I have updated to the latest version.

[Bug]: cannot create note

Bug Description

When triggered keywords or hotkeys , cannot create a notes into goal file.(obsidian show cannot find notes in literaurenotes.

Relevant Screenshot

CleanShot 2023-08-02 at 16 53 10

To Reproduce

No response

Debugging Log

[16:47:21.368] Logging Started...
[16:47:39.541] PDF Annotation Extractor[File Filter] Processing complete
[16:47:39.542] PDF Annotation Extractor[File Filter] Passing output '/Users/zephyrfang/Zotero/storage/JKQDT4CA/dunlosky2013_improving_students’_learning_with_effective_learning_techniques.pdf' to Run Script
[16:47:39.951] PDF Annotation Extractor[Run Script] Processing complete
[16:47:39.952] PDF Annotation Extractor[Run Script] Passing output '' to Post Notification

Workflow Configuration

CleanShot 2023-08-02 at 16 46 59
CleanShot 2023-08-02 at 16 51 13

Checklist

  • I have updated to the latest version of this workflow.
  • If the extracted text is all jumbled up (special characters, spaces missing, etc.) then the issue is not with this workflow, but the underlying extraction engine, pdfannots2json. Upgrade it to the latest version with brew upgrade pdfannots2json and try again. If the issue persists, file a bug report at pdfannots2json.

Feature Request: Customizable Template

Feature Requested

I'd like to propose to make the export template customizable. Background is that I need more/different properties for my workflow, e.g. a status field and several others which get added by hand right now.

Relevant Screenshot

No response

Checklist

  • The feature would be useful to more users than just me.

Feature Request: An alternative extraction engine

Feature Requested

Unfortunately, mgmeyer's pdfannots2json has some major flaws as it wrongly interprets certain letter combinations (e.g. fl or Th). I have already filed a bug report with him a couple of weeks ago but got no response (see here: mgmeyers/pdfannots2json#22). If possible, I would therefore propose the possibility of adding a third engine to mitigate the issue – preferably one that is maintained by more than one person, if such exists.

Relevant Screenshot

No response

Checklist

  • The feature would be useful to more users than just me.

[Bug]: instead of spaces appears unicode character �

Bug Description

  1. When I extract the pdf annotations, the md document is filled with � characters instead of spaces. When I extract using Zotero, it looks normal.

  2. Apart from the first paragraph, the rest of the annotations are meshed into one single quote block. How can it make sure to separate the annotations into separate quote blocks?

  3. Is it possible to include a link to the page of the pdf by the reference? When I extract with Zotero, that's what it does & it's very useful. If I ever want to see the context of an annotation, I just click it and it opens.

Relevant Screenshot

Screenshot 2022-09-09 at 12 35 27

To Reproduce

Hit hot key or select command from Alfred window to extract.

Debugging Log

[12:36:18.989] Logging Started...
[12:36:40.477] PDF Annotation Extractor[List Filter] Processing complete
[12:36:40.485] PDF Annotation Extractor[List Filter] Passing output 'run' to Conditional
[12:36:40.487] PDF Annotation Extractor[Conditional] Processing complete
[12:36:40.488] PDF Annotation Extractor[Conditional] Passing output 'run' to Call External Trigger
[12:36:40.489] PDF Annotation Extractor[External] Processing complete
[12:36:40.491] PDF Annotation Extractor[External] Passing output '' to Arg and Vars
[12:36:40.493] PDF Annotation Extractor[Arg and Vars] Processing complete
[12:36:40.494] PDF Annotation Extractor[Arg and Vars] Passing output ' ' to File Filter
[12:36:43.982] PDF Annotation Extractor[File Filter] Processing complete
[12:36:43.986] PDF Annotation Extractor[File Filter] Passing output '/Users/michaelbaldwin/Library/CloudStorage/OneDrive-Personal/Zotero/manata2011FreeWillMoral.pdf' to Arg and Vars
[12:36:43.987] PDF Annotation Extractor[Arg and Vars] Processing complete
[12:36:43.989] PDF Annotation Extractor[Arg and Vars] Passing output '/Users/michaelbaldwin/Library/CloudStorage/OneDrive-Personal/Zotero/manata2011FreeWillMoral.pdf' to Conditional
[12:36:43.990] PDF Annotation Extractor[Conditional] Processing complete
[12:36:43.992] PDF Annotation Extractor[Conditional] Passing output '/Users/michaelbaldwin/Library/CloudStorage/OneDrive-Personal/Zotero/manata2011FreeWillMoral.pdf' to Replace
[12:36:43.994] PDF Annotation Extractor[Replace] Processing complete
[12:36:43.996] PDF Annotation Extractor[Replace] Passing output 'manata2011FreeWillMoral' to Arg and Vars
[12:36:43.997] PDF Annotation Extractor[Arg and Vars] Processing complete
[12:36:43.999] PDF Annotation Extractor[Arg and Vars] Passing output '/Users/michaelbaldwin/Library/CloudStorage/OneDrive-Personal/Zotero/manata2011FreeWillMoral.pdf' to Run Script
[12:36:44.359] PDF Annotation Extractor[Run Script] Processing complete
[12:36:44.379] PDF Annotation Extractor[Run Script] Passing output '79;;Free Will, Moral Responsibility, and Reformed Theology;;;;Manata, Paul;;2011;;article;;
' to Conditional
[12:36:44.380] PDF Annotation Extractor[Conditional] Processing complete
[12:36:44.382] PDF Annotation Extractor[Conditional] Passing output '79;;Free Will, Moral Responsibility, and Reformed Theology;;;;Manata, Paul;;2011;;article;;
' to Split Arg
[12:36:44.384] PDF Annotation Extractor[Split Arg] Processing complete
[12:36:44.385] PDF Annotation Extractor[Split Arg] Passing output '79;;Free Will, Moral Responsibility, and Reformed Theology;;;;Manata, Paul;;2011;;article;;
' to Arg and Vars
[12:36:44.387] PDF Annotation Extractor[Arg and Vars] Processing complete
[12:36:44.389] PDF Annotation Extractor[Arg and Vars] Passing output '79' to Conditional
[12:36:44.391] PDF Annotation Extractor[Conditional] Processing complete
[12:36:44.392] PDF Annotation Extractor[Conditional] Passing output '79' to Arg and Vars
[12:36:44.394] PDF Annotation Extractor[Arg and Vars] Processing complete
[12:36:44.395] PDF Annotation Extractor[Arg and Vars] Passing output '79' to Post Notification
[12:36:44.397] PDF Annotation Extractor[Post Notification] Processing complete
[12:36:44.399] PDF Annotation Extractor[Post Notification] Passing output '79' to Run Script
[12:36:45.485] PDF Annotation Extractor[Run Script] Processing complete
[12:36:45.512] PDF Annotation Extractor[Run Script] Passing output '[{"annotatedText":"men’s�actions�may�be�free�(because�done�spontaneously�and�by a�previous�judgment�of�reason),�they�do�not�cease�to�be�necessary�with respect�to�the�divine�decree�and�foreknowledge.�Now�the�foreknowledge of�God�implies�indeed�the�infallibility�of�futurition�and�of�the�event�and�the necessity�of�consequence,�and�yet�does�not�imply�coaction�or�violence,�nor take�away�from�the�will�its�intrinsic�liberty.","color":"#ffff7f","colorCategory":"Yellow","comment":"An action being ‘done spontaneously \u0026 by a previous judgment of reason’ is what makes it free, despite it also being necessary w.r.t. God’s plan or intentions.","date":"2022-09-06T13:22:33Z","id":"highlight-p24x126y405","page":24,"pageLabel":"24","type":"highlight","x":126.57,"y":405.14},{"annotatedText":"�the�ground�of�God’s�foreknowledge�is�God’s�decree�according to�the�counsel�of�his�will.�The�truths�about�all�that�happens�in�time�are�ultimately grounded�in�God,�not�in�the�creature.�","color":"#ffff7f","colorCategory":"Yellow","comment":"Classical theism, though? Doesn’t the doctrine of mixed relations teach that all contingency is ultimately grounded in something other than God?","date":"2022-09-06T13:39:30Z","id":"highlight-p25x90y489","page":25,"pageLabel":"25","type":"highlight","x":90.57,"y":489.38},{"annotatedText":"in�answer�to�the�“could�you�do�otherwise”�question,�classical compatibilism�says�you�could�do�otherwise�in�this�sense:�if�you�had�wanted�to�do otherwise,�then�you�would�have.�The�point�here�is�that�“can”�in�the�question�“can you�do�otherwise”�is�ambiguous.�Thus,�as�long�as�“freedom�to�do�otherwise”�is given�this�hypothetical�gloss,�classical�compatibilism�allows�for�ability�to�do otherwise.","color":"#ffff7f","colorCategory":"Yellow","date":"2022-09-07T11:25:40Z","id":"highlight-p35x90y537","page":35,"pageLabel":"35","type":"highlight","x":90.57,"y":537.14},{"annotatedText":"They�deny�the�hypothetical�analysis�of�‘can’�and�claim�it�is� fraught�with�problems,�and�so�claim�that�freedom�(in�the�sense�of�ability�to�do otherwise)�cannot�be�had�on�determinism.�However,�they�claim�that�moral responsibility�does�not�require�ability�to�do�otherwise.�So�it’s�‘semi-‘ compatibilism:�compatibilism�about�moral�responsibility,�incompatibilism�about ability�to�do�otherwise.","color":"#ffff7f","colorCategory":"Yellow","date":"2022-09-07T11:35:08Z","id":"highlight-p39x90y214","page":39,"pageLabel":"39","type":"highlight","x":90.57,"y":214.58},{"annotatedText":"two�kinds�of�control: regulative�control�and�guidance�control.�The�former�requires�the�ability�to�do otherwise,�the�latter�does�not;�and�it�is�only�the�latter,�they�argue,�that�is required�for�responsibility.","color":"#ffff7f","colorCategory":"Yellow","date":"2022-09-07T11:35:39Z","id":"highlight-p41x90y476","page":41,"pageLabel":"41","type":"highlight","x":90.57,"y":476.42},{"annotatedText":"They�claim�that�the�morally responsible�individual�would�have�to�be�responsive�to�different�reasons�(reasons responsiveness)�if�she�or�he�were�to�have�them.�The�turning�of�the�car�could�not be�done�out�of�compulsion,�something�done�regardless�of�reasons�to�the contrary.�On�top�of�this,�they�argue�that�the�reasoning�mechanism�must�be�the person’s�‘own,’�and�that�he�or�she�would�‘take�responsibility’�or�‘ownership’�of their�actions,�especially�when�they�have�been�informed�of�the�determinism involved.","color":"#ffff7f","colorCategory":"Yellow","date":"2022-09-07T11:36:15Z","id":"highlight-p42x90y537","page":42,"pageLabel":"42","type":"highlight","x":90.57,"y":537.14},{"annotatedText":"d�Frankfurt�libertarians,49�claim�that�the�relevant�factor�required�for�moral responsibility�is�that�the�agent�be�the�ultimate�source�of�her�actions,�whether�or not�they�have�alternative�possibilities�available�to�them.�They�are�libertarians","color":"#ffff7f","colorCategory":"Yellow","date":"2022-09-06T14:23:20Z","id":"highlight-p45x90y163","page":45,"pageLabel":"45","type":"highlight","x":90.57,"y":163.46},{"annotatedText":"because�they�claim�that�ultimate�sourcehood�is�incompatible�with�our�wills�or character�being�determined�by�anything�other�than�us.�This�view�is�also sometimes�known�as�narrow�source�incompatibilism.","color":"#ffff7f","colorCategory":"Yellow","date":"2022-09-06T14:23:27Z","id":"highlight-p46x90y656","page":46,"pageLabel":"46","type":"highlight","x":90.57,"y":656.18},{"annotatedText":"Wide�source�incompatibilism�means�that�moral responsibility�is�incompatible�with�determinism�and�requires�alternative possibilities�at�the�moment�of�character�forming�or�will-setting�to�ensure�ultimate sourcehood.�","color":"#ffff7f","colorCategory":"Yellow","date":"2022-09-06T14:24:43Z","id":"highlight-p46x90y203","page":46,"pageLabel":"46","type":"highlight","x":90.57,"y":203.78},{"annotatedText":"Perhaps�the�idea�that�we�really�can�do�other�than�God�decrees— not�in�any�of�the�compatibilist�or�conditional�senses�above,�but�that�we�could really�do�any�action�we�want�regardless�of�God’s�decree?�That�is:�same�decree,� possible�different�futures.�If�not,�then�compatibilism�must�be�affirmed.�","color":"#ffff7f","colorCategory":"Yellow","date":"2022-09-06T14:33:58Z","id":"highlight-p55x90y537","page":55,"pageLabel":"55","type":"highlight","x":90.57,"y":537.14},{"annotatedText":"What�I�do�is�conditionally�necessary�on God’s�decree,�contingent�on�his�decree.","color":"#ffff7f","colorCategory":"Yellow","date":"2022-09-06T15:06:49Z","id":"highlight-p58x90y537","page":58,"pageLabel":"58","type":"highlight","x":90.57,"y":537.14},{"annotatedText":"�James�Frank,�“Duns�Scotus�on�Autonomous�Freedom�and�Divine�Co-Causality,” in�Medieval�Philosophy�and�Theology.�Vol�2.�Ed.�By�Norman�Kretzmann,�et�al. (University�of�Notre�Dame�Press,�1992","date":"2022-09-06T15:07:21Z","id":"highlight-p58x90y71","page":58,"pageLabel":"58","type":"highlight","x":90.57,"y":71.65},{"annotatedText":"�Thomas�Williams,�“Human�Nature�and�Free�Will”�forthcoming�in�the�Oxford� Handbook�of�Aquinas�(Oxford�University�Press),�available�online,�\u003c� http://shell.cas.usf.edu/~thomasw/Human%20freedom%20and%20agency%20(A quinas).pdf\u003e,�last�accessed�7/17/11.�","date":"2022-09-06T15:08:13Z","id":"highlight-p59x90y85","page":59,"pageLabel":"59","type":"highlight","x":90.57,"y":85.57},{"annotatedText":"the�two�main contingency�desiderata�needed�for�Reformed�orthodoxy�(epistemic�contingency and�secondary�causes)�are�completely�consistent�with�determinism.�","color":"#ffff7f","colorCategory":"Yellow","date":"2022-09-06T15:08:42Z","id":"highlight-p60x90y654","page":60,"pageLabel":"60","type":"highlight","x":90.57,"y":654.26},{"annotatedText":"�John�Duns�Scotus,�Contingency�and�Freedom.�Lectura�I,�39,�eds.�A.�Vos�Jaczn.,�H. Veldhuis,�A.�H.�Looman-Graaskamp,�E.�Dekker�and�N.�W.�den�Bok�(Springer�1994)","date":"2022-09-06T15:13:17Z","id":"highlight-p60x90y127","page":60,"pageLabel":"60","type":"highlight","x":90.57,"y":127.81},{"annotatedText":"necessity�and�freedom�are�neither contraries�nor�contradictories:�the�contrary�of�necessity�is�impossibility;�the contrary�of�freedom�is�coercion.","color":"#ffff7f","colorCategory":"Yellow","date":"2022-09-07T07:42:03Z","id":"highlight-p63x90y190","page":63,"pageLabel":"63","type":"highlight","x":90.57,"y":190.82},{"annotatedText":"if�the contingency�is�only�a�human�epistemic�one,�then�that�fits�with�determinism�and compatibilism.�If�the�contingency�needed�is�that�of�secondary�causality,�that�fits with�determinism�too—so�long�as�the�secondary�cause�cannot�do�otherwise given�the�same�prior�conditions,�and�so�long�as�the�secondary�cause�is�not�the ultimate�source�or�originator�of�its�actions.�If�the�contingency�needed�is�supposed to�be�logical,�that�fits�with�determinism�too�(determinism�simpliciter,�not�logical� determinism).","color":"#ffff7f","colorCategory":"Yellow","date":"2022-09-07T07:55:48Z","id":"highlight-p68x90y210","page":68,"pageLabel":"68","type":"highlight","x":90.57,"y":210.98},{"annotatedText":"how�God could�bring�about�an�inspired�and�inerrant�Bible�if�all�the�writers�wrote�with libertarian�free�will.�","color":"#ffff7f","colorCategory":"Yellow","date":"2022-09-07T08:16:46Z","id":"highlight-p70x90y192","page":70,"pageLabel":"70","type":"highlight","x":90.57,"y":192.5},{"annotatedText":"how�God could�bring�about�an�inspired�and�inerrant�Bible�if�all�the�writers�wrote�with libertarian�free�will.�","color":"#ffff7f","colorCategory":"Yellow","date":"2022-09-07T08:16:49Z","id":"strike-p70x90y192","page":70,"pageLabel":"70","type":"strike","x":90.57,"y":192.5}]
' to Conditional
[12:36:45.520] PDF Annotation Extractor[Conditional] Processing complete
[12:36:45.522] PDF Annotation Extractor[Conditional] Passing output '[{"annotatedText":"men’s�actions�may�be�free�(because�done�spontaneously�and�by a�previous�judgment�of�reason),�they�do�not�cease�to�be�necessary�with respect�to�the�divine�decree�and�foreknowledge.�Now�the�foreknowledge of�God�implies�indeed�the�infallibility�of�futurition�and�of�the�event�and�the necessity�of�consequence,�and�yet�does�not�imply�coaction�or�violence,�nor take�away�from�the�will�its�intrinsic�liberty.","color":"#ffff7f","colorCategory":"Yellow","comment":"An action being ‘done spontaneously \u0026 by a previous judgment of reason’ is what makes it free, despite it also being necessary w.r.t. God’s plan or intentions.","date":"2022-09-06T13:22:33Z","id":"highlight-p24x126y405","page":24,"pageLabel":"24","type":"highlight","x":126.57,"y":405.14},{"annotatedText":"�the�ground�of�God’s�foreknowledge�is�God’s�decree�according to�the�counsel�of�his�will.�The�truths�about�all�that�happens�in�time�are�ultimately grounded�in�God,�not�in�the�creature.�","color":"#ffff7f","colorCategory":"Yellow","comment":"Classical theism, though? Doesn’t the doctrine of mixed relations teach that all contingency is ultimately grounded in something other than God?","date":"2022-09-06T13:39:30Z","id":"highlight-p25x90y489","page":25,"pageLabel":"25","type":"highlight","x":90.57,"y":489.38},{"annotatedText":"in�answer�to�the�“could�you�do�otherwise”�question,�classical compatibilism�says�you�could�do�otherwise�in�this�sense:�if�you�had�wanted�to�do otherwise,�then�you�would�have.�The�point�here�is�that�“can”�in�the�question�“can you�do�otherwise”�is�ambiguous.�Thus,�as�long�as�“freedom�to�do�otherwise”�is given�this�hypothetical�gloss,�classical�compatibilism�allows�for�ability�to�do otherwise.","color":"#ffff7f","colorCategory":"Yellow","date":"2022-09-07T11:25:40Z","id":"highlight-p35x90y537","page":35,"pageLabel":"35","type":"highlight","x":90.57,"y":537.14},{"annotatedText":"They�deny�the�hypothetical�analysis�of�‘can’�and�claim�it�is� fraught�with�problems,�and�so�claim�that�freedom�(in�the�sense�of�ability�to�do otherwise)�cannot�be�had�on�determinism.�However,�they�claim�that�moral responsibility�does�not�require�ability�to�do�otherwise.�So�it’s�‘semi-‘ compatibilism:�compatibilism�about�moral�responsibility,�incompatibilism�about ability�to�do�otherwise.","color":"#ffff7f","colorCategory":"Yellow","date":"2022-09-07T11:35:08Z","id":"highlight-p39x90y214","page":39,"pageLabel":"39","type":"highlight","x":90.57,"y":214.58},{"annotatedText":"two�kinds�of�control: regulative�control�and�guidance�control.�The�former�requires�the�ability�to�do otherwise,�the�latter�does�not;�and�it�is�only�the�latter,�they�argue,�that�is required�for�responsibility.","color":"#ffff7f","colorCategory":"Yellow","date":"2022-09-07T11:35:39Z","id":"highlight-p41x90y476","page":41,"pageLabel":"41","type":"highlight","x":90.57,"y":476.42},{"annotatedText":"They�claim�that�the�morally responsible�individual�would�have�to�be�responsive�to�different�reasons�(reasons responsiveness)�if�she�or�he�were�to�have�them.�The�turning�of�the�car�could�not be�done�out�of�compulsion,�something�done�regardless�of�reasons�to�the contrary.�On�top�of�this,�they�argue�that�the�reasoning�mechanism�must�be�the person’s�‘own,’�and�that�he�or�she�would�‘take�responsibility’�or�‘ownership’�of their�actions,�especially�when�they�have�been�informed�of�the�determinism involved.","color":"#ffff7f","colorCategory":"Yellow","date":"2022-09-07T11:36:15Z","id":"highlight-p42x90y537","page":42,"pageLabel":"42","type":"highlight","x":90.57,"y":537.14},{"annotatedText":"d�Frankfurt�libertarians,49�claim�that�the�relevant�factor�required�for�moral responsibility�is�that�the�agent�be�the�ultimate�source�of�her�actions,�whether�or not�they�have�alternative�possibilities�available�to�them.�They�are�libertarians","color":"#ffff7f","colorCategory":"Yellow","date":"2022-09-06T14:23:20Z","id":"highlight-p45x90y163","page":45,"pageLabel":"45","type":"highlight","x":90.57,"y":163.46},{"annotatedText":"because�they�claim�that�ultimate�sourcehood�is�incompatible�with�our�wills�or character�being�determined�by�anything�other�than�us.�This�view�is�also sometimes�known�as�narrow�source�incompatibilism.","color":"#ffff7f","colorCategory":"Yellow","date":"2022-09-06T14:23:27Z","id":"highlight-p46x90y656","page":46,"pageLabel":"46","type":"highlight","x":90.57,"y":656.18},{"annotatedText":"Wide�source�incompatibilism�means�that�moral responsibility�is�incompatible�with�determinism�and�requires�alternative possibilities�at�the�moment�of�character�forming�or�will-setting�to�ensure�ultimate sourcehood.�","color":"#ffff7f","colorCategory":"Yellow","date":"2022-09-06T14:24:43Z","id":"highlight-p46x90y203","page":46,"pageLabel":"46","type":"highlight","x":90.57,"y":203.78},{"annotatedText":"Perhaps�the�idea�that�we�really�can�do�other�than�God�decrees— not�in�any�of�the�compatibilist�or�conditional�senses�above,�but�that�we�could really�do�any�action�we�want�regardless�of�God’s�decree?�That�is:�same�decree,� possible�different�futures.�If�not,�then�compatibilism�must�be�affirmed.�","color":"#ffff7f","colorCategory":"Yellow","date":"2022-09-06T14:33:58Z","id":"highlight-p55x90y537","page":55,"pageLabel":"55","type":"highlight","x":90.57,"y":537.14},{"annotatedText":"What�I�do�is�conditionally�necessary�on God’s�decree,�contingent�on�his�decree.","color":"#ffff7f","colorCategory":"Yellow","date":"2022-09-06T15:06:49Z","id":"highlight-p58x90y537","page":58,"pageLabel":"58","type":"highlight","x":90.57,"y":537.14},{"annotatedText":"�James�Frank,�“Duns�Scotus�on�Autonomous�Freedom�and�Divine�Co-Causality,” in�Medieval�Philosophy�and�Theology.�Vol�2.�Ed.�By�Norman�Kretzmann,�et�al. (University�of�Notre�Dame�Press,�1992","date":"2022-09-06T15:07:21Z","id":"highlight-p58x90y71","page":58,"pageLabel":"58","type":"highlight","x":90.57,"y":71.65},{"annotatedText":"�Thomas�Williams,�“Human�Nature�and�Free�Will”�forthcoming�in�the�Oxford� Handbook�of�Aquinas�(Oxford�University�Press),�available�online,�\u003c� http://shell.cas.usf.edu/~thomasw/Human%20freedom%20and%20agency%20(A quinas).pdf\u003e,�last�accessed�7/17/11.�","date":"2022-09-06T15:08:13Z","id":"highlight-p59x90y85","page":59,"pageLabel":"59","type":"highlight","x":90.57,"y":85.57},{"annotatedText":"the�two�main contingency�desiderata�needed�for�Reformed�orthodoxy�(epistemic�contingency and�secondary�causes)�are�completely�consistent�with�determinism.�","color":"#ffff7f","colorCategory":"Yellow","date":"2022-09-06T15:08:42Z","id":"highlight-p60x90y654","page":60,"pageLabel":"60","type":"highlight","x":90.57,"y":654.26},{"annotatedText":"�John�Duns�Scotus,�Contingency�and�Freedom.�Lectura�I,�39,�eds.�A.�Vos�Jaczn.,�H. Veldhuis,�A.�H.�Looman-Graaskamp,�E.�Dekker�and�N.�W.�den�Bok�(Springer�1994)","date":"2022-09-06T15:13:17Z","id":"highlight-p60x90y127","page":60,"pageLabel":"60","type":"highlight","x":90.57,"y":127.81},{"annotatedText":"necessity�and�freedom�are�neither contraries�nor�contradictories:�the�contrary�of�necessity�is�impossibility;�the contrary�of�freedom�is�coercion.","color":"#ffff7f","colorCategory":"Yellow","date":"2022-09-07T07:42:03Z","id":"highlight-p63x90y190","page":63,"pageLabel":"63","type":"highlight","x":90.57,"y":190.82},{"annotatedText":"if�the contingency�is�only�a�human�epistemic�one,�then�that�fits�with�determinism�and compatibilism.�If�the�contingency�needed�is�that�of�secondary�causality,�that�fits with�determinism�too—so�long�as�the�secondary�cause�cannot�do�otherwise given�the�same�prior�conditions,�and�so�long�as�the�secondary�cause�is�not�the ultimate�source�or�originator�of�its�actions.�If�the�contingency�needed�is�supposed to�be�logical,�that�fits�with�determinism�too�(determinism�simpliciter,�not�logical� determinism).","color":"#ffff7f","colorCategory":"Yellow","date":"2022-09-07T07:55:48Z","id":"highlight-p68x90y210","page":68,"pageLabel":"68","type":"highlight","x":90.57,"y":210.98},{"annotatedText":"how�God could�bring�about�an�inspired�and�inerrant�Bible�if�all�the�writers�wrote�with libertarian�free�will.�","color":"#ffff7f","colorCategory":"Yellow","date":"2022-09-07T08:16:46Z","id":"highlight-p70x90y192","page":70,"pageLabel":"70","type":"highlight","x":90.57,"y":192.5},{"annotatedText":"how�God could�bring�about�an�inspired�and�inerrant�Bible�if�all�the�writers�wrote�with libertarian�free�will.�","color":"#ffff7f","colorCategory":"Yellow","date":"2022-09-07T08:16:49Z","id":"strike-p70x90y192","page":70,"pageLabel":"70","type":"strike","x":90.57,"y":192.5}]
' to Run Script
[12:36:46.539] PDF Annotation Extractor[Run Script] Processing complete
[12:36:46.543] PDF Annotation Extractor[Run Script] Passing output '- __An action being ‘done spontaneously & by a previous judgment of reason’ is what makes it free, despite it also being necessary w.r.t. God’s plan or intentions.:__ "men’s�actions�may�be�free�(because�done�spontaneously�and�by a�previous�judgment�of�reason),�they�do�not�cease�to�be�necessary�with respect�to�the�divine�decree�and�foreknowledge.�Now�the�foreknowledge of�God�implies�indeed�the�infallibility�of�futurition�and�of�the�event�and�the necessity�of�consequence,�and�yet�does�not�imply�coaction�or�violence,�nor take�away�from�the�will�its�intrinsic�liberty." [@manata2011FreeWillMoral, p. 102]
- __Classical theism, though? Doesn’t the doctrine of mixed relations teach that all contingency is ultimately grounded in something other than God?:__ "�the�ground�of�God’s�foreknowledge�is�God’s�decree�according to�the�counsel�of�his�will.�The�truths�about�all�that�happens�in�time�are�ultimately grounded�in�God,�not�in�the�creature.�" [@manata2011FreeWillMoral, p. 103]
> "in�answer�to�the�“could�you�do�otherwise'�question,�classical compatibilism�says�you�could�do�otherwise�in�this�sense:�if�you�had�wanted�to�do otherwise,�then�you�would�have.�The�point�here�is�that�“can'�in�the�question�“can you�do�otherwise'�is�ambiguous.�Thus,�as�long�as�“freedom�to�do�otherwise'�is given�this�hypothetical�gloss,�classical�compatibilism�allows�for�ability�to�do otherwise." [@manata2011FreeWillMoral, p. 113]
> "They�deny�the�hypothetical�analysis�of�‘can’�and�claim�it�is� fraught�with�problems,�and�so�claim�that�freedom�(in�the�sense�of�ability�to�do otherwise)�cannot�be�had�on�determinism.�However,�they�claim�that�moral responsibility�does�not�require�ability�to�do�otherwise.�So�it’s�‘semi-‘ compatibilism:�compatibilism�about�moral�responsibility,�incompatibilism�about ability�to�do�otherwise." [@manata2011FreeWillMoral, p. 117]
> "two�kinds�of�control: regulative�control�and�guidance�control.�The�former�requires�the�ability�to�do otherwise,�the�latter�does�not;�and�it�is�only�the�latter,�they�argue,�that�is required�for�responsibility." [@manata2011FreeWillMoral, p. 119]
> "They�claim�that�the�morally responsible�individual�would�have�to�be�responsive�to�different�reasons�(reasons responsiveness)�if�she�or�he�were�to�have�them.�The�turning�of�the�car�could�not be�done�out�of�compulsion,�something�done�regardless�of�reasons�to�the contrary.�On�top�of�this,�they�argue�that�the�reasoning�mechanism�must�be�the person’s�‘own,’�and�that�he�or�she�would�‘take�responsibility’�or�‘ownership’�of their�actions,�especially�when�they�have�been�informed�of�the�determinism involved." [@manata2011FreeWillMoral, p. 120]
> "d�Frankfurt�libertarians9�claim�that�the�relevant�factor�required�for�moral responsibility�is�that�the�agent�be�the�ultimate�source�of�her�actions,�whether�or not�they�have�alternative�possibilities�available�to�them.�They�are�libertarians" [@manata2011FreeWillMoral, p. 123]
> "because�they�claim�that�ultimate�sourcehood�is�incompatible�with�our�wills�or character�being�determined�by�anything�other�than�us.�This�view�is�also sometimes�known�as�narrow�source�incompatibilism." [@manata2011FreeWillMoral, p. 124]
> "Wide�source�incompatibilism�means�that�moral responsibility�is�incompatible�with�determinism�and�requires�alternative possibilities�at�the�moment�of�character�forming�or�will-setting�to�ensure�ultimate sourcehood.�" [@manata2011FreeWillMoral, p. 124]
> "Perhaps�the�idea�that�we�really�can�do�other�than�God�decrees— not�in�any�of�the�compatibilist�or�conditional�senses�above,�but�that�we�could really�do�any�action�we�want�regardless�of�God’s�decree?�That�is:�same�decree,� possible�different�futures.�If�not,�then�compatibilism�must�be�affirmed.�" [@manata2011FreeWillMoral, p. 133]
> "What�I�do�is�conditionally�necessary�on God’s�decree,�contingent�on�his�decree." [@manata2011FreeWillMoral, p. 136]
> "�James�Frank,�“Duns�Scotus�on�Autonomous�Freedom�and�Divine�Co-Causality,' in�Medieval�Philosophy�and�Theology.�Vol�2.�Ed.�By�Norman�Kretzmann,�et�al. (University�of�Notre�Dame�Press,�1992" [@manata2011FreeWillMoral, p. 136]
> "�Thomas�Williams,�“Human�Nature�and�Free�Will'�forthcoming�in�the�Oxford� Handbook�of�Aquinas�(Oxford�University�Press),�available�online,�<� http://shell.cas.usf.edu/~thomasw/Human%20freedom%20and%20agency%20(A quinas).pdf>,�last�accessed�7/17/11.�" [@manata2011FreeWillMoral, p. 137]
> "the�two�main contingency�desiderata�needed�for�Reformed�orthodoxy�(epistemic�contingency and�secondary�causes)�are�completely�consistent�with�determinism.�" [@manata2011FreeWillMoral, p. 138]
> "�John�Duns�Scotus,�Contingency�and�Freedom.�Lectura�I,�39,�eds.�A.�Vos�Jaczn.,�H. Veldhuis,�A.�H.�Looman-Graaskamp,�E.�Dekker�and�N.�W.�den�Bok�(Springer�1994)" [@manata2011FreeWillMoral, p. 138]
> "necessity�and�freedom�are�neither contraries�nor�contradictories:�the�contrary�of�necessity�is�impossibility;�the contrary�of�freedom�is�coercion." [@manata2011FreeWillMoral, p. 141]
> "if�the contingency�is�only�a�human�epistemic�one,�then�that�fits�with�determinism�and compatibilism.�If�the�contingency�needed�is�that�of�secondary�causality,�that�fits with�determinism�too—so�long�as�the�secondary�cause�cannot�do�otherwise given�the�same�prior�conditions,�and�so�long�as�the�secondary�cause�is�not�the ultimate�source�or�originator�of�its�actions.�If�the�contingency�needed�is�supposed to�be�logical,�that�fits�with�determinism�too�(determinism�simpliciter,�not�logical� determinism)." [@manata2011FreeWillMoral, p. 146]
> "how�God could�bring�about�an�inspired�and�inerrant�Bible�if�all�the�writers�wrote�with libertarian�free�will.�" [@manata2011FreeWillMoral, p. 148]
> ~~"how�God could�bring�about�an�inspired�and�inerrant�Bible�if�all�the�writers�wrote�with libertarian�free�will.�"~~ [@manata2011FreeWillMoral, p. 148]

' to Conditional
[12:36:46.552] PDF Annotation Extractor[Conditional] Processing complete
[12:36:46.554] PDF Annotation Extractor[Conditional] Passing output '- __An action being ‘done spontaneously & by a previous judgment of reason’ is what makes it free, despite it also being necessary w.r.t. God’s plan or intentions.:__ "men’s�actions�may�be�free�(because�done�spontaneously�and�by a�previous�judgment�of�reason),�they�do�not�cease�to�be�necessary�with respect�to�the�divine�decree�and�foreknowledge.�Now�the�foreknowledge of�God�implies�indeed�the�infallibility�of�futurition�and�of�the�event�and�the necessity�of�consequence,�and�yet�does�not�imply�coaction�or�violence,�nor take�away�from�the�will�its�intrinsic�liberty." [@manata2011FreeWillMoral, p. 102]
- __Classical theism, though? Doesn’t the doctrine of mixed relations teach that all contingency is ultimately grounded in something other than God?:__ "�the�ground�of�God’s�foreknowledge�is�God’s�decree�according to�the�counsel�of�his�will.�The�truths�about�all�that�happens�in�time�are�ultimately grounded�in�God,�not�in�the�creature.�" [@manata2011FreeWillMoral, p. 103]
> "in�answer�to�the�“could�you�do�otherwise'�question,�classical compatibilism�says�you�could�do�otherwise�in�this�sense:�if�you�had�wanted�to�do otherwise,�then�you�would�have.�The�point�here�is�that�“can'�in�the�question�“can you�do�otherwise'�is�ambiguous.�Thus,�as�long�as�“freedom�to�do�otherwise'�is given�this�hypothetical�gloss,�classical�compatibilism�allows�for�ability�to�do otherwise." [@manata2011FreeWillMoral, p. 113]
> "They�deny�the�hypothetical�analysis�of�‘can’�and�claim�it�is� fraught�with�problems,�and�so�claim�that�freedom�(in�the�sense�of�ability�to�do otherwise)�cannot�be�had�on�determinism.�However,�they�claim�that�moral responsibility�does�not�require�ability�to�do�otherwise.�So�it’s�‘semi-‘ compatibilism:�compatibilism�about�moral�responsibility,�incompatibilism�about ability�to�do�otherwise." [@manata2011FreeWillMoral, p. 117]
> "two�kinds�of�control: regulative�control�and�guidance�control.�The�former�requires�the�ability�to�do otherwise,�the�latter�does�not;�and�it�is�only�the�latter,�they�argue,�that�is required�for�responsibility." [@manata2011FreeWillMoral, p. 119]
> "They�claim�that�the�morally responsible�individual�would�have�to�be�responsive�to�different�reasons�(reasons responsiveness)�if�she�or�he�were�to�have�them.�The�turning�of�the�car�could�not be�done�out�of�compulsion,�something�done�regardless�of�reasons�to�the contrary.�On�top�of�this,�they�argue�that�the�reasoning�mechanism�must�be�the person’s�‘own,’�and�that�he�or�she�would�‘take�responsibility’�or�‘ownership’�of their�actions,�especially�when�they�have�been�informed�of�the�determinism involved." [@manata2011FreeWillMoral, p. 120]
> "d�Frankfurt�libertarians9�claim�that�the�relevant�factor�required�for�moral responsibility�is�that�the�agent�be�the�ultimate�source�of�her�actions,�whether�or not�they�have�alternative�possibilities�available�to�them.�They�are�libertarians" [@manata2011FreeWillMoral, p. 123]
> "because�they�claim�that�ultimate�sourcehood�is�incompatible�with�our�wills�or character�being�determined�by�anything�other�than�us.�This�view�is�also sometimes�known�as�narrow�source�incompatibilism." [@manata2011FreeWillMoral, p. 124]
> "Wide�source�incompatibilism�means�that�moral responsibility�is�incompatible�with�determinism�and�requires�alternative possibilities�at�the�moment�of�character�forming�or�will-setting�to�ensure�ultimate sourcehood.�" [@manata2011FreeWillMoral, p. 124]
> "Perhaps�the�idea�that�we�really�can�do�other�than�God�decrees— not�in�any�of�the�compatibilist�or�conditional�senses�above,�but�that�we�could really�do�any�action�we�want�regardless�of�God’s�decree?�That�is:�same�decree,� possible�different�futures.�If�not,�then�compatibilism�must�be�affirmed.�" [@manata2011FreeWillMoral, p. 133]
> "What�I�do�is�conditionally�necessary�on God’s�decree,�contingent�on�his�decree." [@manata2011FreeWillMoral, p. 136]
> "�James�Frank,�“Duns�Scotus�on�Autonomous�Freedom�and�Divine�Co-Causality,' in�Medieval�Philosophy�and�Theology.�Vol�2.�Ed.�By�Norman�Kretzmann,�et�al. (University�of�Notre�Dame�Press,�1992" [@manata2011FreeWillMoral, p. 136]
> "�Thomas�Williams,�“Human�Nature�and�Free�Will'�forthcoming�in�the�Oxford� Handbook�of�Aquinas�(Oxford�University�Press),�available�online,�<� http://shell.cas.usf.edu/~thomasw/Human%20freedom%20and%20agency%20(A quinas).pdf>,�last�accessed�7/17/11.�" [@manata2011FreeWillMoral, p. 137]
> "the�two�main contingency�desiderata�needed�for�Reformed�orthodoxy�(epistemic�contingency and�secondary�causes)�are�completely�consistent�with�determinism.�" [@manata2011FreeWillMoral, p. 138]
> "�John�Duns�Scotus,�Contingency�and�Freedom.�Lectura�I,�39,�eds.�A.�Vos�Jaczn.,�H. Veldhuis,�A.�H.�Looman-Graaskamp,�E.�Dekker�and�N.�W.�den�Bok�(Springer�1994)" [@manata2011FreeWillMoral, p. 138]
> "necessity�and�freedom�are�neither contraries�nor�contradictories:�the�contrary�of�necessity�is�impossibility;�the contrary�of�freedom�is�coercion." [@manata2011FreeWillMoral, p. 141]
> "if�the contingency�is�only�a�human�epistemic�one,�then�that�fits�with�determinism�and compatibilism.�If�the�contingency�needed�is�that�of�secondary�causality,�that�fits with�determinism�too—so�long�as�the�secondary�cause�cannot�do�otherwise given�the�same�prior�conditions,�and�so�long�as�the�secondary�cause�is�not�the ultimate�source�or�originator�of�its�actions.�If�the�contingency�needed�is�supposed to�be�logical,�that�fits�with�determinism�too�(determinism�simpliciter,�not�logical� determinism)." [@manata2011FreeWillMoral, p. 146]
> "how�God could�bring�about�an�inspired�and�inerrant�Bible�if�all�the�writers�wrote�with libertarian�free�will.�" [@manata2011FreeWillMoral, p. 148]
> ~~"how�God could�bring�about�an�inspired�and�inerrant�Bible�if�all�the�writers�wrote�with libertarian�free�will.�"~~ [@manata2011FreeWillMoral, p. 148]

' to Conditional
[12:36:46.564] PDF Annotation Extractor[Conditional] Processing complete
[12:36:46.565] PDF Annotation Extractor[Conditional] Passing output '- __An action being ‘done spontaneously & by a previous judgment of reason’ is what makes it free, despite it also being necessary w.r.t. God’s plan or intentions.:__ "men’s�actions�may�be�free�(because�done�spontaneously�and�by a�previous�judgment�of�reason),�they�do�not�cease�to�be�necessary�with respect�to�the�divine�decree�and�foreknowledge.�Now�the�foreknowledge of�God�implies�indeed�the�infallibility�of�futurition�and�of�the�event�and�the necessity�of�consequence,�and�yet�does�not�imply�coaction�or�violence,�nor take�away�from�the�will�its�intrinsic�liberty." [@manata2011FreeWillMoral, p. 102]
- __Classical theism, though? Doesn’t the doctrine of mixed relations teach that all contingency is ultimately grounded in something other than God?:__ "�the�ground�of�God’s�foreknowledge�is�God’s�decree�according to�the�counsel�of�his�will.�The�truths�about�all�that�happens�in�time�are�ultimately grounded�in�God,�not�in�the�creature.�" [@manata2011FreeWillMoral, p. 103]
> "in�answer�to�the�“could�you�do�otherwise'�question,�classical compatibilism�says�you�could�do�otherwise�in�this�sense:�if�you�had�wanted�to�do otherwise,�then�you�would�have.�The�point�here�is�that�“can'�in�the�question�“can you�do�otherwise'�is�ambiguous.�Thus,�as�long�as�“freedom�to�do�otherwise'�is given�this�hypothetical�gloss,�classical�compatibilism�allows�for�ability�to�do otherwise." [@manata2011FreeWillMoral, p. 113]
> "They�deny�the�hypothetical�analysis�of�‘can’�and�claim�it�is� fraught�with�problems,�and�so�claim�that�freedom�(in�the�sense�of�ability�to�do otherwise)�cannot�be�had�on�determinism.�However,�they�claim�that�moral responsibility�does�not�require�ability�to�do�otherwise.�So�it’s�‘semi-‘ compatibilism:�compatibilism�about�moral�responsibility,�incompatibilism�about ability�to�do�otherwise." [@manata2011FreeWillMoral, p. 117]
> "two�kinds�of�control: regulative�control�and�guidance�control.�The�former�requires�the�ability�to�do otherwise,�the�latter�does�not;�and�it�is�only�the�latter,�they�argue,�that�is required�for�responsibility." [@manata2011FreeWillMoral, p. 119]
> "They�claim�that�the�morally responsible�individual�would�have�to�be�responsive�to�different�reasons�(reasons responsiveness)�if�she�or�he�were�to�have�them.�The�turning�of�the�car�could�not be�done�out�of�compulsion,�something�done�regardless�of�reasons�to�the contrary.�On�top�of�this,�they�argue�that�the�reasoning�mechanism�must�be�the person’s�‘own,’�and�that�he�or�she�would�‘take�responsibility’�or�‘ownership’�of their�actions,�especially�when�they�have�been�informed�of�the�determinism involved." [@manata2011FreeWillMoral, p. 120]
> "d�Frankfurt�libertarians9�claim�that�the�relevant�factor�required�for�moral responsibility�is�that�the�agent�be�the�ultimate�source�of�her�actions,�whether�or not�they�have�alternative�possibilities�available�to�them.�They�are�libertarians" [@manata2011FreeWillMoral, p. 123]
> "because�they�claim�that�ultimate�sourcehood�is�incompatible�with�our�wills�or character�being�determined�by�anything�other�than�us.�This�view�is�also sometimes�known�as�narrow�source�incompatibilism." [@manata2011FreeWillMoral, p. 124]
> "Wide�source�incompatibilism�means�that�moral responsibility�is�incompatible�with�determinism�and�requires�alternative possibilities�at�the�moment�of�character�forming�or�will-setting�to�ensure�ultimate sourcehood.�" [@manata2011FreeWillMoral, p. 124]
> "Perhaps�the�idea�that�we�really�can�do�other�than�God�decrees— not�in�any�of�the�compatibilist�or�conditional�senses�above,�but�that�we�could really�do�any�action�we�want�regardless�of�God’s�decree?�That�is:�same�decree,� possible�different�futures.�If�not,�then�compatibilism�must�be�affirmed.�" [@manata2011FreeWillMoral, p. 133]
> "What�I�do�is�conditionally�necessary�on God’s�decree,�contingent�on�his�decree." [@manata2011FreeWillMoral, p. 136]
> "�James�Frank,�“Duns�Scotus�on�Autonomous�Freedom�and�Divine�Co-Causality,' in�Medieval�Philosophy�and�Theology.�Vol�2.�Ed.�By�Norman�Kretzmann,�et�al. (University�of�Notre�Dame�Press,�1992" [@manata2011FreeWillMoral, p. 136]
> "�Thomas�Williams,�“Human�Nature�and�Free�Will'�forthcoming�in�the�Oxford� Handbook�of�Aquinas�(Oxford�University�Press),�available�online,�<� http://shell.cas.usf.edu/~thomasw/Human%20freedom%20and%20agency%20(A quinas).pdf>,�last�accessed�7/17/11.�" [@manata2011FreeWillMoral, p. 137]
> "the�two�main contingency�desiderata�needed�for�Reformed�orthodoxy�(epistemic�contingency and�secondary�causes)�are�completely�consistent�with�determinism.�" [@manata2011FreeWillMoral, p. 138]
> "�John�Duns�Scotus,�Contingency�and�Freedom.�Lectura�I,�39,�eds.�A.�Vos�Jaczn.,�H. Veldhuis,�A.�H.�Looman-Graaskamp,�E.�Dekker�and�N.�W.�den�Bok�(Springer�1994)" [@manata2011FreeWillMoral, p. 138]
> "necessity�and�freedom�are�neither contraries�nor�contradictories:�the�contrary�of�necessity�is�impossibility;�the contrary�of�freedom�is�coercion." [@manata2011FreeWillMoral, p. 141]
> "if�the contingency�is�only�a�human�epistemic�one,�then�that�fits�with�determinism�and compatibilism.�If�the�contingency�needed�is�that�of�secondary�causality,�that�fits with�determinism�too—so�long�as�the�secondary�cause�cannot�do�otherwise given�the�same�prior�conditions,�and�so�long�as�the�secondary�cause�is�not�the ultimate�source�or�originator�of�its�actions.�If�the�contingency�needed�is�supposed to�be�logical,�that�fits�with�determinism�too�(determinism�simpliciter,�not�logical� determinism)." [@manata2011FreeWillMoral, p. 146]
> "how�God could�bring�about�an�inspired�and�inerrant�Bible�if�all�the�writers�wrote�with libertarian�free�will.�" [@manata2011FreeWillMoral, p. 148]
> ~~"how�God could�bring�about�an�inspired�and�inerrant�Bible�if�all�the�writers�wrote�with libertarian�free�will.�"~~ [@manata2011FreeWillMoral, p. 148]

' to Write Text File
[12:36:46.574] PDF Annotation Extractor[Write Text File] Processing complete
[12:36:46.590] PDF Annotation Extractor[Write Text File] Passing output '/Users/michaelbaldwin/Library/Mobile Documents/iCloud~md~obsidian/Documents/Zettelkasten/manata2011FreeWillMoral.md' to Run Script
[12:36:47.447] PDF Annotation Extractor[Run Script] Processing complete
[12:36:47.450] PDF Annotation Extractor[Run Script] Passing output '' to Copy to Clipboard
[12:36:47.452] PDF Annotation Extractor[Copy to Clipboard] Processing complete
[12:36:47.455] PDF Annotation Extractor[Copy to Clipboard] Passing output '' to Post Notification
[12:36:47.457] PDF Annotation Extractor[Post Notification] Processing complete
[12:36:47.459] PDF Annotation Extractor[Post Notification] Passing output '' to Play Sound
[12:36:47.462] PDF Annotation Extractor[Play Sound] Processing complete
[12:36:47.465] PDF Annotation Extractor[Play Sound] Passing output '' to Conditional
[12:36:47.510] PDF Annotation Extractor[Conditional] Processing complete
[12:36:47.536] PDF Annotation Extractor[Conditional] Passing output '' to Run Script
[12:36:47.538] PDF Annotation Extractor[Play Sound] Passing output '' to Run Script

Workflow Configuration

Screenshot 2022-09-09 at 12 37 44

Checklist

  • I have updated to the latest version of this workflow.
  • I checked out the available options under aconf and there isn't one that enables the desired behavior.

[Bug]: Manual Citekey not accepted

Bug Description

When using the workflow to extract annotations, alfred returns a "no citekey found" error (error message in screenshot). The citekey is a custom citekey that is listed in the relevant bibTeX file.

Relevant Screenshot

Screenshot 2022-06-11 at 8 50 28 pm

Screenshot 2022-06-11 at 8 58 06 pm

To Reproduce

No response

Debugging Log

[8:53:13.989 pm] PDF Annotation Extractor[Hotkey] Processing complete
[8:53:13.995 pm] PDF Annotation Extractor[Hotkey] Passing output '' to Run Script
[8:53:14.245 pm] PDF Annotation Extractor[Run Script] Processing complete
[8:53:14.249 pm] PDF Annotation Extractor[Run Script] Passing output '/GoogleDrive/My Drive/Everything/Work/Reference Attachments/Bedard & Deschênes (2005) Sex Preferences, Marital Dissolution, and the Economic Status of Women.pdf
' to Replace
[8:53:14.251 pm] PDF Annotation Extractor[Replace] Processing complete
[8:53:14.251 pm] PDF Annotation Extractor[Replace] Passing output '/GoogleDrive/My Drive/Everything/Work/Reference Attachments/Bedard & Deschênes (2005) Sex Preferences, Marital Dissolution, and the Economic Status of Women.pdf' to Conditional
[8:53:14.252 pm] PDF Annotation Extractor[Conditional] Processing complete
[8:53:14.253 pm] PDF Annotation Extractor[Conditional] Passing output '/GoogleDrive/My Drive/Everything/Work/Reference Attachments/Bedard & Deschênes (2005) Sex Preferences, Marital Dissolution, and the Economic Status of Women.pdf' to Arg and Vars
[8:53:14.255 pm] PDF Annotation Extractor[Arg and Vars] Processing complete
[8:53:14.256 pm] PDF Annotation Extractor[Arg and Vars] Passing output '/GoogleDrive/My Drive/Everything/Work/Reference Attachments/Bedard & Deschênes (2005) Sex Preferences, Marital Dissolution, and the Economic Status of Women.pdf' to Conditional
[8:53:14.258 pm] PDF Annotation Extractor[Conditional] Processing complete
[8:53:14.259 pm] PDF Annotation Extractor[Conditional] Passing output '/GoogleDrive/My Drive/Everything/Work/Reference Attachments/Bedard & Deschênes (2005) Sex Preferences, Marital Dissolution, and the Economic Status of Women.pdf' to Arg and Vars
[8:53:14.259 pm] PDF Annotation Extractor[Arg and Vars] Processing complete
[8:53:14.260 pm] PDF Annotation Extractor[Arg and Vars] Passing output '' to Keyword
[8:53:19.317 pm] PDF Annotation Extractor[Keyword] Processing complete
[8:53:19.328 pm] PDF Annotation Extractor[Keyword] Passing output 'Bedard(2005)SexPreferencesMarital' to Replace
[8:53:19.330 pm] PDF Annotation Extractor[Replace] Processing complete
[8:53:19.331 pm] PDF Annotation Extractor[Replace] Passing output 'Bedard(2005)SexPreferencesMarital' to Arg and Vars
[8:53:19.332 pm] PDF Annotation Extractor[Arg and Vars] Processing complete
[8:53:19.332 pm] PDF Annotation Extractor[Arg and Vars] Passing output '/GoogleDrive/My Drive/Everything/Work/Reference Attachments/Bedard & Deschênes (2005) Sex Preferences, Marital Dissolution, and the Economic Status of Women.pdf' to Run Script
[8:53:19.527 pm] PDF Annotation Extractor[Run Script] Processing complete
[8:53:19.543 pm] PDF Annotation Extractor[Run Script] Passing output 'No citekey found.

Check your BibTeX Library for the correct citekey.
' to Conditional
[8:53:19.545 pm] PDF Annotation Extractor[Conditional] Processing complete
[8:53:19.546 pm] PDF Annotation Extractor[Conditional] Passing output 'No citekey found.

Check your BibTeX Library for the correct citekey.
' to Large Type
[8:53:19.547 pm] PDF Annotation Extractor[Large Type] Processing complete
[8:53:19.548 pm] PDF Annotation Extractor[Large Type] Passing output 'No citekey found.

Check your BibTeX Library for the correct citekey.
' to Play Sound

Workflow Configuration

Screenshot 2022-06-11 at 9 01 03 pm

Checklist

  • I have updated to the latest version of this workflow.
  • I checked out the available options under aconf and there isn't one that enables the desired behavior.

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.