base: vimflavour: nvim documentlist: defaultstyle: multiline marked-icon: "" multilinestyle: rows: # TODO: show if already note attached; have info window display note content? - "{doc.alias('type')} {doc['ref']}{' 󰘓 ' if doc['file'] else ''} {doc.alias('readstatus')}" - "{doc.html_escape['title']}" - "{doc.html_escape['author']}" - "{doc.foreach('tags', '({})', split = ', ', sep = ' ')}" tablestyle: separator: " " headerstyle: "underline|bold" rowstyle: "white_bg" cursorrowstyle: "black_white|bold" columns: - { 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: "", incollection: "󰪧", inbook: "", software: "", presentation: "󰐨", thesis: "", _default_: "", } readstatus: { read: "󰗠", skimmed: "󰗡" } keymappings: q: quit "?": help T: toggle_style S: cmd "sort " /: search_mode : scroll_down : scroll_up : page_down : 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 : 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 unread entries "'r": - search "NOT readstatus:read AND NOT readstatus:skimmed" - limit to read entries " ": mark_selected mm: mark_selected M: mark_down J: mark_down mu: unmark_all mv: mark_view ",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 ",t": cmd "tag " i: - info_toggle - "Toggle info window" I: - info_cycle - "Cycle info windows" : info_scroll_up : 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: " {info['mode_upper']} " normal: " {info['mode_upper']} " command: " {info['mode_upper']} " select: " {info['mode_upper']} " search: " {info['mode_upper']} " right: default: "{info['sortkeys']} {info['idx']} < {info['marked']} < {info['view']} < {info['items']} "