Bounty: 50 € for a new release of template plugin

There are some really useful features regarding the specification of relative dates in note templates that seem to have been merged in the plugin-templates repo, but a new version has not since been released (see #79).

For about a year I've been waiting patiently to update my personal journaling and task management workflows, always hoping that this will soon be released, but I have not found any concrete information about what's blocking a new version.

Now, I do understand that this is an Open Source software and I cannot simply make demands and expect the devs to comply. Moreover, I'm unfortunately not versed enough in web development to really be of much help speeding up the release. So instead, I'm offering a 50 € bounty for anyone who makes a release happen by the end of September.

I hope that this does not come across as impolite or anything; maybe it's not appropriate for Joplin ? If so, please feel free to reject this proposal. I just thought I'd try something different instead of complaining. :nerd_face:

13 Likes

CC @nishantwrp in case this is of interest for him

2 Likes

I can't do a release on that repo, but I've checked whether I can maybe make a build and post it here (for free :D)
But I'm currently unable to get it to build - seems like a fixup of dependencies might be needed, and I currently don't have enough time to attempt that. :frowning:
Sorry.

1 Like

Thanks for trying, I appreciate it! :nerd_face:

1 Like

Apologies for all the broken promises to get it done earlier. I've been really busy with work. I can take a look this month on weekends. I'll not be able make any promises if I'll be able to get to release this month.

The thing is when I had originally thought of v3.0.0. I had really big things planned for this plugin. And now I have lost almost all context :(. I'm afraid there were some breaking changes in the plugin. I'll try to go through my work again and try to regain the context.

I'd really appreciate if some people using non-trivial tempates could beta test the new plugin features and if anything breaks.

4 Likes

For the new release, there are ton of features being added. It would need extensive documentation. Would really appreciate if someone could assist me with that.

No worries and thanks for all the work you've already put into the Plugin! :nerd_face:

I'd be more than happy to test it! Unfortunately, I didn't manage to build it locally and I don't know if that was due to my lack of knowledge or if there were some dependency / API issues. I'll try again later and post the error.

Edit: I tried (from master) and this is the error message:

❯ npm run dist

> joplin-plugin-templates@2.4.0 dist
> webpack --joplin-plugin-config buildMain && webpack --joplin-plugin-config buildExtraScripts && webpack --joplin-plugin-config createArchive

[webpack-cli] Error: Unknown option '--joplin-plugin-config'
[webpack-cli] Run 'webpack --help' to see available commands and options

I don't have terribly complex templates, but when a new version is out, I can help testing

FYI, I'm very much willing to remove the "deadline" I had set. I had hoped for a quick release but it seems there is more work to be done before it can be updated. In any case thanks for trying!

BTW, obviously, I'm also more than happy to test Jew features, i.e. if I manage to build the dev version.

(Doubling my odds of you seeing this by replying here as well as on GitHub, apologies for the multiple pings)

I'm happy to help with docs, if you let me know what topics need covering on the issue I opened I can get the text written up for you

Thanks @Imperial_Squid, I'll reach out when I have a list of things to be documented in a more organized manner.

2 Likes

Isn't it possible to create an initial draft of the doc using ChatGPT or similar?

Hi everyone,

is there still hope for a release at some point?

I don't want to sound demanding; I really appreciate all of your guys work!

I want Joplin to be at the core of my personal knowledge / project management but for this purpose advanced templating is crucial.

Hi, I don't mean to take over @nishantwrp's great work, and I understand that some things take time. I'm a fan of the plugin too. I simply tried to build the plugin based on the current state of the main branch of the code repo, and uploaded it here (EDIT: I see that there is an automatic dev build in the original plugin repo), in case anyone wants to give it a try (I will). I don't know how stable this build is (nothing bad happened so far), so use it at your own risk.

If anyone knows enough about the new features, please tell us what to look for. :slight_smile:

1 Like

I mean, I'm slightly biased because I'm the one who suggested it and got the ball rolling on implementing it, but I think the new complex operators are very cool and incredibly powerful! (PRs here and here for the coder types)

Essentially they massively overhaul how expressive you can make your templates, rather than the usual "replace this bit with a value I give you" functionality they already have, the templates become a mini formatting language.

For example, if you had a template for taking meeting notes and have a variable number of headers, you would have to use this previously:

---
topic_1:
    label: Header 1
    type: boolean
topic_2:
    label: Header 2
    type: boolean
topic_3:
    label: Header 3
    type: boolean
---
{{#if topic_1}}
# First Header

{{/if}}
{{#if topic_2}}
# Second Header

{{/if}}
{{#if topic_3}}
# Third Header

{{/if}}

The thing I found annoying about this, and what prompted me into looking into improving it, is that when you create a note from this template, you have a yes/no box for each header you want to include, as opposed to what would be the (imo) sane approach of having one dropdown to pick a number of headers, then the template would figure it out from there. After the feature was added you can do that, with the below:

---
topic_num:
  label: Header number?
  type: number
---
{{#if (compare topic_num ">=" 1) }}
# Header 1

{{#if (compare topic_num ">=" 2) }}
# Header 2

{{#if (compare topic_num ">=" 3) }}
# Header 3

{{/if}}
{{/if}}
{{/if}}

Initially this wasn't planned to go any further than basic numerical comparisons, but @nishantwrp added a bunch more little helper operations so you can now do stuff like this:

---
topic_num:
  label: Header number?
  type: number
---
{{#repeat topic_num}}
# Header {{math repeat_index "+" 1}}

{{/repeat}}

(Every thing below here is just to show off the features)

{{#repeat topic_num}}
The square of {{math repeat_index "+" 1}} is {{math (math repeat_index "+" 1) "**" 2}}

{{ repeat_index }} is {{#if (compare repeat_index "!=" 2)}} not {{/if}} equal to 2

{{/repeat}}

Today is {{ date }}, tomorrow is {{ datetime set_date=date delta_days="1"}}

So now you can do all kinds of things, like maths operations, logical comparisons, string case changing, powerful datetime manipulation, etc

(this is also why writing the docs is a big and legitimate hurdle to the next release (though since I'm fairly familiar with this stuff I might do it myself and make a PR if he hasn't appeared in a month or so))

3 Likes

Thanks for summarising the new features of the plugin @Imperial_Squid! As you correctly pointed out; writing docs is the biggest hurdle for me to make an official 3.0.0 release. If you're interested in helping out we can chat this weekend on discord probably?

1 Like

Also as @shikuz rightly pointed out if someone wants to try out the plugin built from the latest code; feel free to download and install the plugin binary from official dev release of the plugin.

The binary is updated on github whenever any change to the plugin gets submitted, so you can always try out the latest plugin changes even before an official release.

2 Likes

Hi everyone,

sorry for the late reply, I was drowning in work a bit. :sweat_smile:

Thanks a lot @shikuz, I highly appreciate you stepping in and moving the release forward! I will definitely go ahead and test it.