Package: popthings
popthingsiOS and command line tool to import a TaskPaper template with placeholders
into Things by Cultured CodeInstallationOn macOSInstall popthings using pip. Both Python 2 and Python 3 are supported.$pipinstallpopthingsOn iOSUsePythonistato execute the script. Download thepopthings.pyfile to the "This iPhone/iPad" location. The script cannot be on iCloud
if you want to use the Share Sheet Extension. To add popthings to
the Share Extension shortcut, add thepopthings.pyscript as
a new shortcut in the Pythonista settings. See thePythonista
Documentationfor more details.To add a button on the Today Widget, use the following entry for theSHORTCUTvariable in theExamples/Widget/Launcher.pyfile:{'title':'PopThings','url':'pythonista3://popthings.py?action=run','color':'#5e96ff','icon':'iow:checkmark_24'},Usagepopthingssupports placeholder replacement, headers and checklist items.
Date parsing is done by Things itself, so anything Things supports is also
supported here.The indentationmustbe done with Tabs, which is the normal TaskPaper behavior.Placeholders must be defined on the second line of the file. They must have
a$prefix and be space-separated.The@startand@duetags expect a value and will be used for the "when"
and "deadline" attributes of a project or task. All other tags are passed
through and their values are ignored.A project under a project is a considered a heading. It can't have notes.
Tasks under it can be indented or not, which is more flexible than the
TaskPaper format.A task under a task is a checklist item.Here is a packing list template with 3 placeholders:Prepare luggage for trip to $destination: @start($start)
    $start $due $destination
    Before leaving:
        - Find good place for dinner @research
            Don't forget to check NYT's "36 hours in ..."
    Packing:
        - Passport @due($due)
        - Clothes @due($due)
            - Pants
            - T-shirts
    Last minute: @due($due)
        - Set thermostat to travel mode @due($due) @home
        - Water plants @due($due) @homeTo import the template on the Mac, pass the TaskPaper filename to thepopthingsexecutable. If there are any placeholders, you'll be prompted for
their value.$popthingstemplatex-travel.taskpaper
Startvalue?2018-09-01
Duevalue?2018-09-10
Destinationvalue?ParisHere's the result of parsing the template above.On iOS, you can use popthings via:The Share Sheetto share the content of a TaskPaper document from any
application.From Pythonista or from the Today Widgetwhere you'll be prompted to
pick a file using the File picker.In both cases, Pythonista will prompt you for the placeholder values if there
are any.Known limitationsThe TaskPaper file must start with a project.If a header has a comment, the previous task or project is going to end up
with that comment.Making a ReleaseBump the version inpopthings.pyUpdate the changelog, link the versions.Commit and tag with version number. Push tags. Update the release on GitHub.Build a source dist withpython3 setup.py clean && rm dist/* && python3 setup.py sdist bdist_wheelTest upload to PyPI test withtwine upload --repository-url https://test.pypi.org/legacy/ dist/*Create a temporary environmentmktmpenvand test install withpip install --index-url https://test.pypi.org/simple/ popthingsIf everything looks good, upload for real withtwine upload dist/*