Marty Oehme
6e60101b9b
We render the priority of an entry in both table and multiline mode, with priority >=1 being highest, >=3 being medium and everything >5 being low priority. We also have some maps for quickly setting the priority of an entry from the tui: `,ph` | `,pm` | `,pl` (for high, medium, low - so 1,3,5). Lastly, I quickly added some to-dos that require the input of the maintainer or some work in a fork, so I don't forget. I also should not forget that I implemented some of them locally already and am using them.
201 lines
6.3 KiB
YAML
201 lines
6.3 KiB
YAML
# current issues/requests
|
|
# - [ ] call arbitrary shell command
|
|
# - [ ] non-blocking opening of files
|
|
# - [ ] distinguish in config between aliases for multiline/table
|
|
# - [ ] update view after more operations
|
|
# - if I call an 'update' command (e.g. set new tag or read status), it will not update in list until 'edit' command invoked and rebuilding the list
|
|
# - two selection additions:
|
|
# - [ ] select all in view
|
|
# - [ ] limit view to currently selected
|
|
#
|
|
base:
|
|
vimflavour: nvim
|
|
documentlist:
|
|
defaultstyle: multiline
|
|
marked-icon: ""
|
|
multilinestyle:
|
|
rows:
|
|
# TODO: show if already note attached; have info window display note content?
|
|
- "{' ' if 'priority' not in doc or doc['priority'] > 3 else '<red> </red>' if doc['priority'] <= 1 else '<yellow> </yellow>'}<cyan>{doc.alias('type')} {doc['ref']}</cyan> {doc.alias('readstatus')} {' ' if doc['notes'] else ''}"
|
|
- "<white><bold>{doc.html_escape['title']}</bold></white>"
|
|
- "<blue>{doc.html_escape['author']}</blue>"
|
|
- "{doc.foreach('tags', '<lightgray>(</lightgray><gray><dim>{}</dim></gray><lightgray>)</lightgray>', split = ', ', sep = ' ')}"
|
|
tablestyle:
|
|
separator: " "
|
|
headerstyle: "underline|bold"
|
|
rowstyle: "white_bg"
|
|
cursorrowstyle: "black_white|bold"
|
|
columns:
|
|
- {
|
|
header: "",
|
|
content: "{'' if 'priority' not in doc or doc['priority'] > 3 else '' if doc['priority'] <= 1 else ''}",
|
|
width: 1,
|
|
}
|
|
- {
|
|
header: "",
|
|
content: "{'' if doc['readstatus'] == 'read' else '' if doc['readstatus'] == 'skimmed' else ' '}",
|
|
width: 1,
|
|
}
|
|
- {
|
|
header: "",
|
|
content: "{'' if doc['notes'] else '' if doc['note'] else ' '}",
|
|
width: 1,
|
|
}
|
|
- {
|
|
header: "",
|
|
content: "{doc.alias('type')}",
|
|
width: 1,
|
|
}
|
|
- { header: "Authors", content: "{doc['author']}", width: 25 }
|
|
- { header: "Year", content: "{str(doc['year'])}", width: 4 }
|
|
- { header: "Title", content: "{doc['title']}", width: 125 }
|
|
- { header: "Reference", content: "{doc['ref']}", width: 15 }
|
|
- {
|
|
header: "",
|
|
content: "{str(len(doc.get_files()) if len(doc.get_files()) > 0 else '')}",
|
|
width: 1,
|
|
}
|
|
- { header: "Tags", content: "{doc['tags'] if isinstance(doc['tags'], str) else doc.foreach('tags', '{}', sep=', ')}", width: 35 }
|
|
aliases:
|
|
type:
|
|
{
|
|
article: "",
|
|
book: "",
|
|
inbook: "",
|
|
incollection: "",
|
|
software: "",
|
|
presentation: "",
|
|
thesis: "",
|
|
techreport: "",
|
|
_default_: "",
|
|
}
|
|
readstatus:
|
|
{
|
|
read: "<green></green>",
|
|
skimmed: "<yellow></yellow>"
|
|
}
|
|
|
|
keymappings:
|
|
q: quit
|
|
"?": help
|
|
T: toggle_style
|
|
S: cmd "sort "
|
|
/: search_mode
|
|
<key_down>: scroll_down
|
|
<key_up>: scroll_up
|
|
<ctrl-f>: page_down
|
|
<ctrl-b>: page_up
|
|
G: jump_to_bottom
|
|
gg: jump_to_top
|
|
j: scroll_down
|
|
k: scroll_up
|
|
o: open -r "pdf$"
|
|
O: open -d
|
|
b: browse
|
|
B: browse -k doi
|
|
R: view_reset
|
|
<c-r>: reload
|
|
e:
|
|
- edit
|
|
- edit info
|
|
n:
|
|
- papis edit -n papis_id:{doc['papis_id']}
|
|
- edit notes
|
|
"'n":
|
|
- search "notes:.+"
|
|
- limit to entries with notes
|
|
"'u":
|
|
- search "readstatus:read OR readstatus:skimmed"
|
|
- limit to read entries
|
|
"'r":
|
|
- search "NOT readstatus:read AND NOT readstatus:skimmed"
|
|
- limit to unread entries
|
|
" ": mark_selected
|
|
mm: mark_selected
|
|
M: mark_down
|
|
J: mark_down
|
|
mu: unmark_all
|
|
mv: mark_view
|
|
",t": cmd "tag "
|
|
",r":
|
|
- papis update -s readstatus read papis_id:{doc['papis_id']}
|
|
- set readstatus read
|
|
",k":
|
|
- papis update -s readstatus skimmed papis_id:{doc['papis_id']}
|
|
- set readstatus skimmed
|
|
",u":
|
|
- papis update -s readstatus "" papis_id:{doc['papis_id']}
|
|
- set readstatus unread
|
|
",ph":
|
|
- papis update -s priority 1 papis_id:{doc['papis_id']}
|
|
- set priority high
|
|
",pm":
|
|
- papis update -s priority 2 read papis_id:{doc['papis_id']}
|
|
- set priority medium
|
|
",pl":
|
|
- papis update -s priority 3 read papis_id:{doc['papis_id']}
|
|
- set priority low
|
|
i:
|
|
- info_toggle
|
|
- "Toggle info window"
|
|
I:
|
|
- info_cycle
|
|
- "Cycle info windows"
|
|
<ctrl-p>: info_scroll_up
|
|
<ctrl-n>: info_scroll_down
|
|
# all require 'clip' script to be available on PATH
|
|
yy:
|
|
- copy_to_clipboard "[@{doc['ref']}]"
|
|
- yank pandoc-styled reference
|
|
ss:
|
|
- vim_send "[@{doc['ref']}]"
|
|
- send vim pandoc-styled reference
|
|
yl:
|
|
- copy_to_clipboard "\\cite\{{doc['ref']}\}"
|
|
- yank latex-styled reference
|
|
sl:
|
|
- vim_send "\\cite\{{doc['ref']}\}"
|
|
- send vim latex-styled reference
|
|
yr:
|
|
- copy_to_clipboard "{format_reference(doc,style='apa')}"
|
|
- yank apa-styled reference
|
|
sr:
|
|
- vim_send "{format_reference(doc,style='apa')}"
|
|
- send vim apa-styled reference
|
|
yt:
|
|
- copy_to_clipboard "{doc['title']}"
|
|
- yank title
|
|
yu:
|
|
- copy_to_clipboard "{doc['url']}"
|
|
- yank url
|
|
yd:
|
|
- copy_to_clipboard "{doc['doi']}"
|
|
- yank doi
|
|
# TODO look into https://github.com/supersambo/papis-tui vim-send mappings
|
|
|
|
infowindow:
|
|
default_on: False
|
|
views:
|
|
doc:
|
|
content: "author: {doc['author'].strip()}\n title: {doc['title'].strip()}\n tags:{doc['tags'] if isinstance(doc['tags'], str) else doc.foreach('tags', '{}', sep=', ')}"
|
|
height: 8
|
|
apa:
|
|
content: "{format_reference(doc,style='apa')}"
|
|
abstract:
|
|
content: "{doc['abstract']}"
|
|
linewrap: True
|
|
height: 8
|
|
|
|
commandline:
|
|
search:
|
|
keyword_aliases: { a: "author:", t: "title:", y: "year:", k: "tags:" }
|
|
|
|
statusbar:
|
|
left:
|
|
default: "<black_green><bold> {info['mode_upper']} </black_green></bold><green_bg></green_bg>"
|
|
normal: "<black_green><bold> {info['mode_upper']} </black_green></bold><green_bg></green_bg>"
|
|
command: "<black_cyan><bold> {info['mode_upper']} </black_cyan></bold><cyan_bg></cyan_bg>"
|
|
select: "<black_red><bold> {info['mode_upper']} </black_red></bold><red_bg></red_bg>"
|
|
search: "<black_magenta><bold> {info['mode_upper']} </black_magenta></bold><magenta_bg></magenta_bg>"
|
|
right:
|
|
default: "<green>{info['sortkeys']} </green><cyan_bg></cyan_bg><black_cyan> {info['idx']} < {info['marked']} < {info['view']} < {info['items']} </black_cyan>"
|