panvimwiki package

Subpackages

Submodules

panvimwiki.catvimwiki module

Concatenate Vimwiki diary files.

panvimwiki.catvimwiki.catdiary(startdate: date, enddate: date, wikidiary: Path | None = None) Path[source]

Concatenate Vimwiki diary files.

Assume diary wiki files are named using ISO date, e.g., 2021-06-09.wiki.

Parameters:
  • startdate – Starting date for Vimwiki diary entry.

  • enddate – End date date for Vimwiki diary entry.

  • wikidiary – Path to Vimwiki diary directory. Defaults to $HOME/vimwiki/diary.

Returns:

Path to concatenated Vimwiki diary entries from startdate to enddate, inclusive of both.

Return type:

pathlib.Path

Raises:

ValueError – If startdate is after enddate

panvimwiki.catvimwiki.get_last_monday(today: date | None = None) date[source]

Return datetime for closest Monday before today.

Parameters:

today – Any date object

Returns:

Previous Monday before today, unless today is Monday.

Return type:

datetime.date

panvimwiki.catvimwiki.get_last_thursday(today: date | None = None) date[source]

Return datetime for closest Thursday before today.

Parameters:

today – Any date object

Returns:

Previous Thursday before today, unless today is Thursday.

Return type:

datetime.date

panvimwiki.convert module

Process filters and convert to output format using pandoc.

panvimwiki.convert.convert(inputfile: str, outputfile: str | None, format: str = 'vimwiki', to: str = 'markdown', prefilters: tuple[str, ...] | None = ('delete_bullet_star', 'delete_task_pending'), filters: tuple[str, ...] | None = ('delete_tag_lines', 'delete_empty_heading', 'delete_taskwiki_heading'), postfilters: tuple[str, ...] | None = None, extra_args: tuple[str, ...] | None = ('--shift-heading-level-by', '1', '--data-dir', '/home/docs/vimwiki_html/templates')) str | None[source]

Convert Vimwiki with pandoc, applying selected filters.

panvimwiki.filter lists provided pre-, post- and pandoc-filters.

Parameters:
  • inputfile – Vimwiki file absolute path

  • outputfile – Converted file absolute path or None to return a string.

  • format – Pandoc input format. See pandoc --list-input-formats

  • to – Pandoc output format. See pandoc --list-output-formats

  • prefilters – Selected Vimwiki stdio executable filters. Any executable that receives input format as stdin and produces stdout should work. None skips prefilters.

  • filters – Selected pandoc filters. Any valid pandoc --filter <filter name> should work. None skips filters but still runs pandoc.

  • postfilters – Selected Vimwiki stdio executable filters. Any executable that receives pandoc to format as stdin and produces stdout should work. None skips postfilters.

  • extra_args – Additional pandoc arguments and parameters to pass to pypandoc.convert_text(). Refer to pandoc --help for valid content.

Raises:

RuntimeError – Output to docx only works by using a outputfile. Pandoc requires an outputfile for binary document formats.

Returns:

Converted string, if outputfile is None, or None.

Return type:

str or None

panvimwiki.vimwiki_week module

Convert str dates to datetime and Path. Set default days for missing dates.

panvimwiki.vimwiki_week.concatenate_diary(diary_path: str, start_date: str | None = None, end_date: str | None = None) Path[source]

Concatenate Vimwiki diary from start_date through end_date.

If the start and end dates are None, concatenate Vimwiki Diary from Monday - Thursday. E.g., Thursday through Sunday returns this week. Monday - Wednesday returns last week.

Parameters:
  • diary_path – Vimwiki Diary absolute path

  • start_date – ISO date, e.g., ‘2017-10-10’, the same or earlier than end_date. Defaults to the previous Monday before end_date, unless end_date is Monday.

  • end_date – ISO date, e.g., ‘2017-10-10’, defaults to the previous Thursday before today, unless today is Thursday.

Returns:

Path to concatenated Vimwiki diary file

Return type:

pathlib.Path

Raises:

ValueErrorcatdiary() raises ValueError if start_date is after end_date

panvimwiki.wiki2pandoc module

Vim interface to convert Vimwiki to another format using pandoc.

panvimwiki.wiki2pandoc.FORMAT = 'commonmark_x+wikilinks_title_after_pipe'

Pandoc commonmark_x to hopefully maximize MyST compatibility.

panvimwiki.wiki2pandoc.FROMCITE = 'markdown+wikilinks_title_after_pipe-task_lists'

Pandoc commonmark_x does not support citeproc yet.

panvimwiki.wiki2pandoc.expand_citeproc() None

Resolve pandoc citeproc references to GFM div anchors.

Preserve Vimwiki [[URL|Description]] style links with commonmark_x+wikilinks_title_after_pipe.

wikilink_markdown removes backslash-escapes from task_lists for compatibility with Vimwiki and Taskwiki vimwiki-todo-lists.

Convert pandoc tasks and wikilinks to Vimwiki markdown.

Recommended mdformat extensions:

  • mdformat_wikilink: wikilink

  • mdformat_myst: myst installs,

  • mdformat_simple_breaks: simple_breaks

Example

Call pandoc to convert vimwiki-syntax-links to pandoc markdown. Remove pandoc link title, “wikilink”, for compatibility with Vimiwki markdown syntax, equivalent to:

$ cat wikilink_markdown.md |
  pandoc \
    --from=commonmark_x+wikilinks_title_after_pipe \
    --standalone \
    --wrap=preserve \
    --to=commonmark_x |
  mdformat --number \
    --extensions=wikilink \
    --extensions=myst \
    --extensions=simple_breaks - |
  wikilink_markdown
panvimwiki.wiki2pandoc.wiki2pandoc(is_diary: str, is_concatenate: str, to: str = 'docx', end_date: str | None = '', start_date: str | None = '', extra_args: Literal['0'] | list[str] = '0') str

Bridged to Vim function Wiki2pandoc.

Concatenate Diary Notes and/or convert Vimwiki Notes to selected format.

Parameters:
  • is_diary – String containing a 0, False, or 1, True, whether current buffer is a Vimwiki DiaryNote.

  • is_concatenate – String containing a 0, False, or 1, True, whether multiple Vimwiki DiaryNotes from start_date to end_date should concatenate before conversion. Otherwise convert the current buffer only and ignore the dates.

  • to – Output format (defaults to docx)

  • end_date – Depending on is_concatenate, the end date for concatenating Vimwiki DiaryNotes. Coerce an empty string to None.

  • start_date – Depending on is_concatenate, the start date for concatenating Vimwiki DiaryNotes. Coerce an empty string to None.

  • extra_args (list or str) –

    “0” or a list of valid pandoc arguments, e.g.,

    ["--shift-heading-level-by", "1", "--data-dir", "vimwiki_html/templates"]
    

    Coerce “0” to an empty list. See pydoc pypandoc.convert_text for details and pandoc –help for valid content.

Returns:

Absolute path to converted Vimwiki file

Return type:

str

Module contents

Pandoc filters and Vim plugin VimwikiConvert from Vimwiki to Docx.

Panvimwiki provides tools for conversion to Microsoft Word docx or other output formats supported by Pandoc a universal document converter. Panvimwiki provides command line tools as well as Vim commands to concatenate and convert Diary Notes or convert any Vimwiki note.