Count total tags - Time/Cost Estimate

Hey all, I’ve been using dynalist for over a year now to manage my solo video game development project.
One thing i’d find very valuable is a way to estimate the time in my project, or better yet in certain documents. So I have a feature, such as ‘Create new enemy’ and underneath I can have '3d model the character #2h" to mark that feature as taking an estimate two hours. And then another for ‘Animate the character #3h’, and then most importantly a way to tally the tags so I can read it displayed as 'total estimated time : 5 hours".
Basically exactly what this workflowy plugin does

I’ve been searching for quite some time now but haven’t found anything like this for dynalist. Has someone already made such a tool, or have something I can build off of to do this? My web-dev experience is very minimal so I wouldn’t know where to start.

Thank you for your time!

Dynalist doesn’t have much of an ecosystem for plugin apps like that.

If you google “time tracker app” there are many popular ones tho.

Yeah I was fearing so. I already use a time tracking app called Toggl, but I like to have a rough estimate of time left in my project. Might have to move programs :confused:

Oh, sorry, I missed the part where it was a bookmarklet. Yeah, in theory dynalist can run bookmarklets, just like workflowy can. You’ll have to modify the javascript code of course. I don’t recall anyone using bookmarklets on these forums but I don’t see why they wouldn’t work.

I found some folks who have done similar bookmarklets Tag Index bookmarklet

I tried working on this awhile back but never quite got it finished, as I have very little javascript experience. Here is how far I was able to get in case anyone came looking.

javascript: (function() {

var URL = location.href;

if (URL.indexOf('dynalist.io/d/') == -1) {

    alert("Can only be used on dynalist.io");

    return;

}

if (URL.indexOf('#z=') == -1) {

    qChar = '#'

} else {

    qChar = '&'

}

var tags = document.getElementsByClassName("Node-children")[0].getElementsByClassName("node-tag");

var hrs = 0;

if (tags.length > 0) {

    var i;

    for (i = 0; i < tags.length; i++) {

        var float = parseFloat(tags[i].textContent.replace("/[^0-9]/g",''));

        if(!isNan(float))

         hrs += float;

    }

}    

alert("Cur estimated time:" + hrs);

})();