I believe this is possible with some minor theme changes.
Prior discussion:
https://community.nodebb.org/topic/12751/topic-voting-like-adult-swim-boards-had/11
@Developers
What's the right way to update a topic slug?
I am trying to "parse and convert" all topic titles, but I would like the slugs to match the changes.
basically something like this
var parse = function() { /* some custom parser function ...*/ };
var slugify = utils.slugify; // the core NodeBB utils.slugify
var newTitle = parse(oldTitle);
db.setObjectField('topic:' + topic.tid, 'title', newTitle, function(err) {
if (err) return cb(err);
db.setObjectField('topic:' + topic.tid, 'slug', slugify(newTitle), cb);
});
This results in some weird behavior, the topic generated URLs no longer include the tid
so
/topic/1/my-topic-title
changed to /topic/my-topic-title
I am assuming there is another field that needs to be updated, but can't find it
relevant issue: https://github.com/akhoury/nodebb-plugin-import/issues/45, last few comments are the most relevant.
The topic slugs include the topic id so the value stored in the database for this topic is 2647/update-topic-slug
for example.
Your code should be
db.setObjectField('topic:' + topic.tid, 'title', newTitle, function(err) {
if (err) return cb(err);
db.setObjectField('topic:' + topic.tid, 'slug', topic.tid + '/' + slugify(newTitle), cb);
});