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);

})();