Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/achabotl/popthings
iOS and command line tool to import a TaskPaper template with placeholders into Things by Cultured Code
https://github.com/achabotl/popthings
Last synced: 1 day ago
JSON representation
iOS and command line tool to import a TaskPaper template with placeholders into Things by Cultured Code
- Host: GitHub
- URL: https://github.com/achabotl/popthings
- Owner: achabotl
- License: mit
- Created: 2018-07-08T00:03:05.000Z (over 6 years ago)
- Default Branch: main
- Last Pushed: 2022-03-25T13:29:50.000Z (over 2 years ago)
- Last Synced: 2024-09-27T17:35:29.151Z (about 1 month ago)
- Language: Python
- Size: 2.77 MB
- Stars: 2
- Watchers: 2
- Forks: 1
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
# popthings
iOS and command line tool to import a TaskPaper template with placeholders
into Things by Cultured Code## Installation
### On macOS
Install popthings using pip. Both Python 2 and Python 3 are supported.
```bash
$ pip install popthings
```### On iOS
Use
[Pythonista](https://itunes.apple.com/us/app/pythonista-3/id1085978097?ls=1&mt=8)
to execute the script. Download the [`popthings.py`](./popthings.py)
file 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 the `popthings.py` script as
a new shortcut in the Pythonista settings. See the [Pythonista
Documentation](http://omz-software.com/pythonista/docs/ios/pythonista.html')
for more details.![Pythonista Edit Shortcut](img/pythonista-edit-shortcut.png)
To add a button on the Today Widget, use the following entry for the
`SHORTCUT` variable in the `Examples/Widget/Launcher.py` file:```python
{
'title': 'PopThings',
'url': 'pythonista3://popthings.py?action=run',
'color': '#5e96ff',
'icon': 'iow:checkmark_24'
},
```## Usage
`popthings` supports placeholder replacement, headers and checklist items.
Date parsing is done by Things itself, so anything Things supports is also
supported here.- The indentation _must_ be 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 `@start` and `@due` tags 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:
```taskpaper
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) @home
```To import the template on the Mac, pass the TaskPaper filename to the
`popthings` executable. If there are any placeholders, you'll be prompted for
their value.```bash
$ popthings templatex-travel.taskpaper
Start value? 2018-09-01
Due value? 2018-09-10
Destination value? Paris
```Here's the result of parsing the template above.
![Parsed template in Things](./img/templatex-travel-things.png)
On iOS, you can use popthings via:
- **The Share Sheet** to share the content of a TaskPaper document from any
application.
- **From Pythonista or from the Today Widget** where 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.![](img/ipad-run-from-pythonista.gif)
## Known limitations
- The 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 Release
1. Bump the version in `popthings.py`
2. Update the changelog, link the versions.
3. Commit and tag with version number. Push tags. Update the release on GitHub.
4. Build a source dist with `python3 setup.py clean && rm dist/* && python3 setup.py sdist bdist_wheel`
5. Test upload to PyPI test with `twine upload --repository-url https://test.pypi.org/legacy/ dist/*`
6. Create a temporary environment `mktmpenv` and test install with `pip install --index-url https://test.pypi.org/simple/ popthings`
7. If everything looks good, upload for real with `twine upload dist/*`