# Journal Plugin

**URL:** https://meta.discourse.org/t/journal-plugin/317785
**Category:** Plugin
**Tags:** pavilion, broken, experimental
**Created:** [July 23, 2024, 9:04am UTC](https://meta.discourse.org/t/journal-plugin/317785 "2024-07-23T09:04:50Z")
**Posts on this page:** 20
**Page:** 1

<div class="post-metadata">

### Author: ![angus](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/angus/32/341715_2.png) [@angus](https://meta.discourse.org/u/angus)
#### Post date: [July 23, 2024, 9:04am UTC](https://meta.discourse.org/t/journal-plugin/317785/1 "2024-07-23T09:04:50Z")

</div>

| | | |
| --- | --- | --- |
| ℹ | **Summary** | Turn a Discourse topic into a one-to-many journal where one user can post entries that other users comment on |
| 🛠 | **Repository Link** | `https://github.com/paviliondev/discourse-journal` |
| 📖 | **Install Guide** | [How to install plugins in Discourse](https://meta.discourse.org/t/install-plugins-in-discourse/19157) |

Watch this video for an introduction to the plugin:

https://www.loom.com/embed/3e26d5e4b75f467490c3bd1d3f521abc?sid=9dd7ebe4-e1ae-4212-b04d-29d58f89a18c

### How to get started

First, enable journaling for a category in the category settings. Click “Settings” on the left, scroll down to the bottom, check “Enable journaling in this category” click “Save Category” and refresh the page. The “New Topic” button in the category will now read “Create Journal”, click it to create your first journal.

---

<div class="post-metadata">

### Author: ![jrgong](https://avatars.discourse-cdn.com/v4/letter/j/c57346/32.png) [@jrgong](https://meta.discourse.org/u/jrgong)
#### Post date: [July 23, 2024, 9:33am UTC](https://meta.discourse.org/t/journal-plugin/317785/2 "2024-07-23T09:33:57Z")

</div>

Thx for posting! From our practical experience, journal/diary/log category format is one of the most powerful categories you can add to your community.

We are looking forward for further development of the plugin.

---

<div class="post-metadata">

### Author: ![Jagster](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/jagster/32/192154_2.png) [@Jagster](https://meta.discourse.org/u/Jagster)
#### Post date: [July 23, 2024, 9:37am UTC](https://meta.discourse.org/t/journal-plugin/317785/3 "2024-07-23T09:37:37Z")

</div>

It works only on category level, not via a tag?  
Will comments fall back to normal places if the plugin is deactivated?

---

<div class="post-metadata">

### Author: ![angus](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/angus/32/341715_2.png) [@angus](https://meta.discourse.org/u/angus)
#### Post date: [July 23, 2024, 10:36am UTC](https://meta.discourse.org/t/journal-plugin/317785/4 "2024-07-23T10:36:13Z")

</div>

> [@Jagster](#):
>
> It works only on category level, not via a tag?

Currently, yes.

> [@Jagster](#):
>
> Will comments fall back to normal places if the plugin is deactivated?

Discourse doesn’t have plugin deactivation hooks like Wordpress, so it won’t happen automatically, but there’s a button in the category settings that lets you restore posts in a category to their normal order. So while the plugin is still enabled you would:

1. Disable the journal functionality in the category.
2. Restore the posts to normal order.
3. Deactivate the plugin (if you want to).

---

<div class="post-metadata">

### Author: ![jrgong](https://avatars.discourse-cdn.com/v4/letter/j/c57346/32.png) [@jrgong](https://meta.discourse.org/u/jrgong)
#### Post date: [July 26, 2024, 10:09am UTC](https://meta.discourse.org/t/journal-plugin/317785/5 "2024-07-26T10:09:35Z")

</div>

A few points of potential improvements for a possible future v2.0 of the journal plugin. Consider this just spitballing ideas and not actual feature requests. I just wanna hammer them out into the public and see what other users thin.

## Better or different comment “engine”

Instead of regular posts, comments (aka replies to journal entries) should work in a similar fashion as in the [post voting plugin](https://meta.discourse.org/t/discourse-post-voting/227808). Gotta reference big brother Facebook here, where posting comment experience is the best example.

The question is whether those comments are counted into user activityor should even be counted in the first place.

That way also the timeline won’t be as buggy as only topic owner posts will be counted towards it.

Spec suggestion/draft:

- Post voting comment “engine”
- Comments don’t count towards activity (possible plugin setting on/off)
- display half size user avatar and username next to comments (but hide avatar flair)

## Shared journals (rather a nice-to have)

This is rather a stretch and not super crucial. But we had some users requesting journal topics whereas you basically have two topic owners. Question is how feasible it is in the first place?

Spec ideas:

- topic owner can add co-authors
- co-author can make new journal entry
- (if feasible) topic owner and co-author avatar displayed stacked over each other in topic list

---

<div class="post-metadata">

### Author: ![Mr.X\_Mr.X](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/mr.x_mr.x/32/126610_2.png) [@Mr.X\_Mr.X](https://meta.discourse.org/u/Mr.X_Mr.X)
#### Post date: [July 28, 2024, 1:02pm UTC](https://meta.discourse.org/t/journal-plugin/317785/6 "2024-07-28T13:02:09Z")

</div>

I recommend one improvement to the plug-in (which is awesome!). The comment button should be more visible, for examples for instances using Reactions, the button is not even visible unless one horizontal scrolls. Since this is this a new feature, for UI/UX purposes I’d put the comment button in a clear visible way.

---

<div class="post-metadata">

### Author: ![Jagster](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/jagster/32/192154_2.png) [@Jagster](https://meta.discourse.org/u/Jagster)
#### Post date: [July 28, 2024, 10:15pm UTC](https://meta.discourse.org/t/journal-plugin/317785/7 "2024-07-28T22:15:57Z")

</div>

Just to be sure… I don’t allow mega-topics and after 50th post that topic shall be closed and new topic is created.

- such automatic created are own by system, so I have to change owner, right?
- in my case 50 post limit is still valid and because Journal is ”just” a topic in steroids, even comments of enries are counted toward 50 limit because technically those are comments of a post when entries are comments of topic, right?

This is more area of Discourse, but can I change a comment that is now entry instead beeing comment of an entry? I couldn’t find from UI such option. If I have to use rails, then I don’t bother. Too much hazzle because of such minor thing.

I have a lot journal type topics and Ichanged those to this system, but everyone commented to topic, and now those show as entries. Well, old topic and quite few new members read those even and I’m totally sure they don’t care how content is shown.

---

<div class="post-metadata">

### Author: ![piffy](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/piffy/32/254198_2.png) [@piffy](https://meta.discourse.org/u/piffy)
#### Post date: [July 29, 2024, 12:59am UTC](https://meta.discourse.org/t/journal-plugin/317785/8 "2024-07-29T00:59:09Z")

</div>

Thanks for the plugin! I started using it not too long ago but it had an “abandoned” vibe so I was unsure about it. It seems to work well though! ([Here’s an example that uses it](https://www.elitefourum.com/t/reganrampages-complete-prerelease-promo-set-and-stuff/47216) , I have modified the css to hide details and streamline the look)

I think the only thing I could highly recommend improving is how it jumps to new comments when you revisit the topic. It’s hard to explain but sometimes it’s janky/unclear where the new comments is when you’re catching up

---

<div class="post-metadata">

### Author: ![angus](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/angus/32/341715_2.png) [@angus](https://meta.discourse.org/u/angus)
#### Post date: [July 29, 2024, 8:34am UTC](https://meta.discourse.org/t/journal-plugin/317785/9 "2024-07-29T08:34:07Z")

</div>

> [@jrgong](#):
>
> Instead of regular posts, comments (aka replies to journal entries) should work in a similar fashion as in the [post voting plugin](https://meta.discourse.org/t/discourse-post-voting/227808)

Could you be more specific on this front? You think it should be identical?

Note that the Post Voting plugin was originally the Question Answer Plugin, which the Journal Plugin was a spun out of ([see further](https://meta.discourse.org/t/question-answer-plugin/56032/284)). Bringing this one up to speed with the commenting changes in Post Voting is doable.

> [@Mr.X\_Mr.X](#):
>
> The comment button should be more visible, for examples for instances using Reactions, the button is not even visible unless one horizontal scrolls.

Interesting. Not sure if that’s an issue with this plugin or the post menu itself, but yes that’d need to be resolved. Is that mobile or desktop? What browser is it?

> [@Jagster](#):
>
> I don’t allow mega-topics and after 50th post that topic shall be closed and new topic is created.
> 
> - such automatic created are own by system, so I have to change owner, right?
> - in my case 50 post limit is still valid and because Journal is ”just” a topic in steroids, even comments of enries are counted toward 50 limit because technically those are comments of a post when entries are comments of topic, right?

hm, interesting system you have going there. The answer will depend on how you’ve set up this automated topic splitting system. Entries are distinguished from Comments on the basis of whether the post has a `reply_to_post_number`, i.e.

```ruby
entries = posts.where(reply_to_post_number: nil)
comments = posts.where.not(reply_to_post_number: nil)

```

So you could tweak your topic splitting algorithm to take that into account.

> [@Jagster](#):
>
> can I change a comment that is now entry instead beeing comment of an entry

To turn a Comment into an Entry remove its `reply_to_post_number` value.

> [@Jagster](#):
>
> I have a lot journal type topics and Ichanged those to this system, but everyone commented to topic, and now those show as entries. Well, old topic and quite few new members read those even and I’m totally sure they don’t care how content is shown.

hm not quite sure what you mean here, but hopefully my explanation of the distinction between entries and comments will give you the answer.

> [@piffy](#):
>
> I think the only thing I could highly recommend improving is how it jumps to new comments when you revisit the topic. It’s hard to explain but sometimes it’s janky/unclear where the new comments is when you’re catching up

Yes, the “topic entry” and timeline UX would need to be improved.

### Working to do list

- Improve comment UX
- Improve topic entry and timeline UX
- Add full suites of frontend and backend tests
- Resolve UX conflicts with other widely used plugins and core.

---

<div class="post-metadata">

### Author: ![Moin](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/moin/32/554653_2.png) [@Moin](https://meta.discourse.org/u/Moin)
#### Post date: [July 29, 2024, 8:48am UTC](https://meta.discourse.org/t/journal-plugin/317785/10 "2024-07-29T08:48:00Z")

</div>

> [@angus](#):
>
> The answer will depend on how you’ve set up this automated topic splitting system.

It’s a core feature

> [@Linked topics (splitting and managing megatopics)](https://meta.discourse.org/t/linked-topics-splitting-and-managing-megatopics/168992):
>
> I’ve just [merged a feature](https://github.com/discourse/discourse/commit/1476e17c354bc30e23485d921bdb9a9feb35adca) which creates a new linked topic automatically when a topic is auto-closed based on auto close topics post count site setting. This feature is especially useful for automatically splitting and managing [megatopics](https://meta.discourse.org/t/the-megatopic-public-good-or-public-menace/85592). Here’s how it works Let’s say auto close topics post count setting is set to 10000 posts and a topic (with title “Introduce yourself!”) just reached that limit. Now we’ll close that topic and create a new linked topic to continue the discussion. The first …

---

<div class="post-metadata">

### Author: ![Jagster](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/jagster/32/192154_2.png) [@Jagster](https://meta.discourse.org/u/Jagster)
#### Post date: [July 29, 2024, 8:53am UTC](https://meta.discourse.org/t/journal-plugin/317785/11 "2024-07-29T08:53:38Z")

</div>

> [@angus](#):
>
> Entries are distinguished from Comments on the basis of whether the post has a `reply_to_post_number`, i.e.
> 
> ```plaintext
> entries = posts.where(reply_to_post_number: nil)
> comments = posts.where.not(reply_to_post_number: nil)
> 
> ```
> 
> So you could tweak your topic splitting algorithm to take that into account

Well, I’m using the feature of the core, so propably I don’t tweak anything. As usual 😂

I’m trying just to understand what will happend in the future. But if I understand that right entries are counted toward max post limit, but comments not. If so, it is splendeed.

> [@angus](#):
>
> hm, interesting system you have going there

Meta’ish off topic, but are mega topic generally accepted norm 😳 Those are hidious reading to every new member and horrific to find something to older ones. Now I start understand why summaries are so wanted feature. It is inevitable that mega topics will lead endless repetions and large amount of off topic.

---

<div class="post-metadata">

### Author: ![angus](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/angus/32/341715_2.png) [@angus](https://meta.discourse.org/u/angus)
#### Post date: [July 29, 2024, 9:33am UTC](https://meta.discourse.org/t/journal-plugin/317785/12 "2024-07-29T09:33:53Z")

</div>

I see.

> [@Jagster](#):
>
> I’m trying just to understand what will happend in the future. But if I understand that right entries are counted toward max post limit, but comments not. If so, it is splendeed.

As it stands, both entries and comments will be counted toward the limit. I could possibly tweak it so that only entries would count. But I’d have to look at that more closely.

---

<div class="post-metadata">

### Author: ![Jagster](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/jagster/32/192154_2.png) [@Jagster](https://meta.discourse.org/u/Jagster)
#### Post date: [July 29, 2024, 9:56am UTC](https://meta.discourse.org/t/journal-plugin/317785/13 "2024-07-29T09:56:30Z")

</div>

I start missing focus here, and I’m asking 101 level things, but if `posts.where` and `posts.where.not` does same thing what is the difference then? But I assume that `nil` was just an example and real value is used 🤔

But anyway. This limited length question is really not major one, so if you want to look it do it when you are bored and you have nothing more important to do. Because at some moment I will know how it works in live environment.

---

<div class="post-metadata">

### Author: ![angus](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/angus/32/341715_2.png) [@angus](https://meta.discourse.org/u/angus)
#### Post date: [July 29, 2024, 11:35am UTC](https://meta.discourse.org/t/journal-plugin/317785/14 "2024-07-29T11:35:30Z")

</div>

> [@Jagster](#):
>
> but if `posts.where` and `posts.where.not` does same thing what is the difference then?

They don’t mean the same thing. `nil` is the real value.

```plaintext
posts.where(reply_to_post_number: nil)

```

means posts where `reply_to_post_number` is nil, which means it’s a post not in reply to another post (i.e. it’s an entry).

```plaintext
posts.where.not(reply_to_post_number: nil)

```

means posts where `reply_to_post_number` is not nil, which means it’s a post in reply to another post (i.e. a comment).

Anyway, you probably don’t need to worry about rails querying. I’ll let you know if we add support for not counting comments in core auto-topic-splitting.

---

<div class="post-metadata">

### Author: ![Jagster](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/jagster/32/192154_2.png) [@Jagster](https://meta.discourse.org/u/Jagster)
#### Post date: [July 29, 2024, 11:36am UTC](https://meta.discourse.org/t/journal-plugin/317785/15 "2024-07-29T11:36:44Z")

</div>

Thanks to explain that. Now I get it.

---

<div class="post-metadata">

### Author: ![apidevlab](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/apidevlab/32/423316_2.png) [@apidevlab](https://meta.discourse.org/u/apidevlab)
#### Post date: [August 6, 2024, 1:38am UTC](https://meta.discourse.org/t/journal-plugin/317785/16 "2024-08-06T01:38:37Z")

</div>

I have successfully installed the plugin and enabled it but now am a bit lost?

Would it be possible to update this thread with a bit of a getting started post?

---

<div class="post-metadata">

### Author: ![angus](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/angus/32/341715_2.png) [@angus](https://meta.discourse.org/u/angus)
#### Post date: [August 6, 2024, 3:00am UTC](https://meta.discourse.org/t/journal-plugin/317785/17 "2024-08-06T03:00:25Z")

</div>

Hey @apidevlab, I’ve added a little description of how to get started above

> [@angus](#):
>
> ### How to get started
> 
> First, enable journaling for a category in the category settings. Click “Settings” on the left, scroll down to the bottom, check “Enable journaling in this category” click “Save Category” and refresh the page. The “New Topic” button in the category will now read “Create Journal”, click it to create your first journal.

---

<div class="post-metadata">

### Author: ![apidevlab](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/apidevlab/32/423316_2.png) [@apidevlab](https://meta.discourse.org/u/apidevlab)
#### Post date: [August 6, 2024, 1:47pm UTC](https://meta.discourse.org/t/journal-plugin/317785/18 "2024-08-06T13:47:13Z")

</div>

Hi @angus thanks so much really appreciated, I have been able to locate the additional settings when setting up a category and it’s now working as expected, many thanks for your addition and work on this excellent plugin 🙂

---

<div class="post-metadata">

### Author: ![angus](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/angus/32/341715_2.png) [@angus](https://meta.discourse.org/u/angus)
#### Post date: [August 7, 2024, 8:39am UTC](https://meta.discourse.org/t/journal-plugin/317785/19 "2024-08-07T08:39:17Z")

</div>

Hey guys, a work spec is currently being ironed out for this plugin. If you’re interested in extending / using this plugin and want to know more please [send me a message on coop.pavilion.tech](https://coop.pavilion.tech/new-message?username=angus).

---

<div class="post-metadata">

### Author: ![Heliosurge](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/heliosurge/32/571810_2.png) [@Heliosurge](https://meta.discourse.org/u/Heliosurge)
#### Post date: [August 9, 2024, 8:12am UTC](https://meta.discourse.org/t/journal-plugin/317785/20 "2024-08-09T08:12:29Z")

</div>

This plugin is pretty cool. I can see a variety of uses for this.

[Next page](https://meta.discourse.org/t/journal-plugin/317785.md?page=2)
