nodebb-theme-harmony 1.0.0-beta.70 → 1.0.0-beta.71
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +12 -1
- package/package.json +1 -1
- package/screenshots/categories.png +0 -0
- package/screenshots/recent.png +0 -0
- package/screenshots/topic.png +0 -0
- package/templates/account/theme.tpl +12 -12
- package/templates/partials/post_bar.tpl +1 -1
- package/templates/partials/topic/post-menu-list.tpl +3 -3
- package/templates/partials/topic/post-menu.tpl +5 -0
- package/templates/partials/topic/post.tpl +4 -2
- package/templates/topic.tpl +73 -71
package/README.md
CHANGED
|
@@ -5,4 +5,15 @@ The Harmony theme is the default theme for NodeBB for versions spanning v3.0.0 o
|
|
|
5
5
|
|
|
6
6
|
## Issues
|
|
7
7
|
|
|
8
|
-
Issues are tracked in [the main project issue tracker](https://github.com/NodeBB/NodeBB/issues?q=is%3Aopen+is%3Aissue+label%3Athemes).
|
|
8
|
+
Issues are tracked in [the main project issue tracker](https://github.com/NodeBB/NodeBB/issues?q=is%3Aopen+is%3Aissue+label%3Athemes).
|
|
9
|
+
|
|
10
|
+
## Screenshots
|
|
11
|
+
|
|
12
|
+
### Categories
|
|
13
|
+
<img height="450" src="screenshots/categories.png">
|
|
14
|
+
|
|
15
|
+
### Recent
|
|
16
|
+
<img height="450" src="screenshots/recent.png">
|
|
17
|
+
|
|
18
|
+
### Topic
|
|
19
|
+
<img height="450" src="screenshots/topic.png">
|
package/package.json
CHANGED
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -7,34 +7,34 @@
|
|
|
7
7
|
</div>
|
|
8
8
|
|
|
9
9
|
<form id="theme-settings" role="form">
|
|
10
|
-
<div class="form-check mb-
|
|
10
|
+
<div class="form-check mb-3">
|
|
11
11
|
<input class="form-check-input" type="checkbox" id="enableQuickReply" name="enableQuickReply" {{{ if config.theme.enableQuickReply }}}checked{{{ end }}}>
|
|
12
|
-
<label class="form-check-label">[[harmony:settings.enableQuickReply]]</label>
|
|
12
|
+
<label class="form-check-label" for="enableQuickReply">[[harmony:settings.enableQuickReply]]</label>
|
|
13
13
|
</div>
|
|
14
14
|
|
|
15
|
-
<div class="form-check mb-
|
|
15
|
+
<div class="form-check mb-3">
|
|
16
16
|
<input class="form-check-input" type="checkbox" id="centerHeaderElements" name="centerHeaderElements" {{{ if config.theme.centerHeaderElements }}}checked{{{ end }}}>
|
|
17
|
-
<label class="form-check-label">[[harmony:settings.centerHeaderElements]]</label>
|
|
17
|
+
<label class="form-check-label" for="centerHeaderElements">[[harmony:settings.centerHeaderElements]]</label>
|
|
18
18
|
</div>
|
|
19
19
|
|
|
20
|
-
<div class="form-check mb-
|
|
20
|
+
<div class="form-check mb-3">
|
|
21
21
|
<input class="form-check-input" type="checkbox" id="stickyToolbar" name="stickyToolbar" {{{ if config.theme.stickyToolbar }}}checked{{{ end }}}>
|
|
22
|
-
<
|
|
22
|
+
<label class="form-check-label" for="stickyToolbar">
|
|
23
23
|
[[harmony:settings.stickyToolbar]]
|
|
24
|
-
<p class="form-text">
|
|
24
|
+
<p class="form-text mb-0">
|
|
25
25
|
[[harmony:settings.stickyToolbar.help]]
|
|
26
26
|
</p>
|
|
27
|
-
</
|
|
27
|
+
</label>
|
|
28
28
|
</div>
|
|
29
29
|
|
|
30
|
-
<div class="form-check mb-
|
|
30
|
+
<div class="form-check mb-3">
|
|
31
31
|
<input class="form-check-input" type="checkbox" id="autohideBottombar" name="autohideBottombar" {{{ if config.theme.autohideBottombar }}}checked{{{ end }}}>
|
|
32
|
-
<
|
|
32
|
+
<label class="form-check-label" for="autohideBottombar">
|
|
33
33
|
[[harmony:settings.autohideBottombar]]
|
|
34
|
-
<p class="form-text">
|
|
34
|
+
<p class="form-text mb-0">
|
|
35
35
|
[[harmony:settings.autohideBottombar.help]]
|
|
36
36
|
</p>
|
|
37
|
-
</
|
|
37
|
+
</label>
|
|
38
38
|
</div>
|
|
39
39
|
|
|
40
40
|
</form>
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
<!-- IMPORT partials/topic/tools.tpl -->
|
|
15
15
|
|
|
16
16
|
{{{ if (!feeds:disableRSS && rssFeedUrl) }}}
|
|
17
|
-
<a class="btn-ghost-sm d-none d-lg-flex align-self-stretch" target="_blank" href="{rssFeedUrl}"
|
|
17
|
+
<a class="btn-ghost-sm d-none d-lg-flex align-self-stretch" target="_blank" href="{rssFeedUrl}"><i class="fa fa-rss text-primary"></i></a>
|
|
18
18
|
{{{ end }}}
|
|
19
19
|
|
|
20
20
|
{{{ if browsingUsers }}}
|
|
@@ -75,11 +75,11 @@
|
|
|
75
75
|
<li>
|
|
76
76
|
<a class="dropdown-item" component="post/bookmark" role="menuitem" tabindex="-1" href="#" data-bookmarked="{posts.bookmarked}">
|
|
77
77
|
<span class="menu-icon">
|
|
78
|
-
<i component="post/bookmark/on" class="fa fa-fw fa-
|
|
79
|
-
<i component="post/bookmark/off" class="fa fa-fw fa-
|
|
78
|
+
<i component="post/bookmark/on" class="fa fa-fw fa-bookmark {{{ if !posts.bookmarked }}}hidden{{{ end }}}"></i>
|
|
79
|
+
<i component="post/bookmark/off" class="fa fa-fw fa-bookmark-o {{{ if posts.bookmarked }}}hidden{{{ end }}}"></i>
|
|
80
80
|
</span>
|
|
81
81
|
<span class="bookmark-text">[[topic:bookmark]]</span>
|
|
82
|
-
<span component="post/bookmark-count" class="bookmarkCount badge" data-bookmarks="{posts.bookmarks}">{posts.bookmarks}</span>
|
|
82
|
+
<span component="post/bookmark-count" class="bookmarkCount badge bg-secondary" data-bookmarks="{posts.bookmarks}">{posts.bookmarks}</span>
|
|
83
83
|
</a>
|
|
84
84
|
</li>
|
|
85
85
|
{{{ end }}}
|
|
@@ -21,5 +21,10 @@
|
|
|
21
21
|
<div class="placeholder" style="width: 20px;"></div>
|
|
22
22
|
<div class="placeholder col-10"></div>
|
|
23
23
|
</li>
|
|
24
|
+
<li class="dropdown-divider"></li>
|
|
25
|
+
<li class="dropdown-item placeholder-wave">
|
|
26
|
+
<div class="placeholder" style="width: 20px;"></div>
|
|
27
|
+
<div class="placeholder col-10"></div>
|
|
28
|
+
</li>
|
|
24
29
|
</ul>
|
|
25
30
|
</span>
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
</div>
|
|
16
16
|
|
|
17
17
|
<div class="post-container d-flex flex-grow-1 flex-column w-100" style="min-width: 0;">
|
|
18
|
-
<div class="d-flex align-items-center gap-1 flex-wrap w-100 post-header mt-1">
|
|
18
|
+
<div class="d-flex align-items-center gap-1 flex-wrap w-100 post-header mt-1" itemprop="author" itemscope itemtype="https://schema.org/Person">
|
|
19
19
|
<div class="icon bg-body d-sm-none">
|
|
20
20
|
<a class="d-inline-block position-relative text-decoration-none" href="{{{ if ./user.userslug }}}{config.relative_path}/user/{./user.userslug}{{{ else }}}#{{{ end }}}">
|
|
21
21
|
{buildAvatar(posts.user, "20px", true, "", "user/picture")}
|
|
@@ -24,7 +24,7 @@
|
|
|
24
24
|
</div>
|
|
25
25
|
|
|
26
26
|
<span class="text-nowrap">
|
|
27
|
-
<a class="fw-bold" href="{{{ if ./user.userslug }}}{config.relative_path}/user/{./user.userslug}{{{ else }}}#{{{ end }}}" itemprop="
|
|
27
|
+
<a class="fw-bold" href="{{{ if ./user.userslug }}}{config.relative_path}/user/{./user.userslug}{{{ else }}}#{{{ end }}}" itemprop="name" data-username="{posts.user.username}" data-uid="{posts.user.uid}">{posts.user.displayname}</a>
|
|
28
28
|
</span>
|
|
29
29
|
|
|
30
30
|
{{{ each posts.user.selectedGroups }}}
|
|
@@ -112,6 +112,8 @@
|
|
|
112
112
|
<i class="fa fa-chevron-up text-primary"></i>
|
|
113
113
|
</a>
|
|
114
114
|
|
|
115
|
+
<meta itemprop="upvoteCount" content="{posts.upvotes}">
|
|
116
|
+
<meta itemprop="downvoteCount" content="{posts.downvotes}">
|
|
115
117
|
<div class="d-inline-block px-2 mx-1 btn-ghost-sm" component="post/vote-count" data-votes="{posts.votes}">{posts.votes}</div>
|
|
116
118
|
|
|
117
119
|
{{{ if !downvote:disabled }}}
|
package/templates/topic.tpl
CHANGED
|
@@ -6,90 +6,92 @@
|
|
|
6
6
|
</div>
|
|
7
7
|
{{{ end }}}
|
|
8
8
|
|
|
9
|
-
<
|
|
10
|
-
<
|
|
11
|
-
</
|
|
9
|
+
<div itemid="{url}" itemscope itemtype="https://schema.org/DiscussionForumPosting">
|
|
10
|
+
<h2 component="post/header" class="fs-2 mb-0 text-break {{{ if config.theme.centerHeaderElements }}}text-center{{{ end }}}" itemprop="headline">
|
|
11
|
+
<span class="topic-title" component="topic/title">{title}</span>
|
|
12
|
+
</h2>
|
|
12
13
|
|
|
13
|
-
<div class="topic-info d-flex gap-2 align-items-center flex-wrap {{{ if config.theme.centerHeaderElements }}}justify-content-center{{{ end }}}">
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
14
|
+
<div class="topic-info d-flex gap-2 align-items-center flex-wrap {{{ if config.theme.centerHeaderElements }}}justify-content-center{{{ end }}}">
|
|
15
|
+
<span component="topic/labels" class="d-flex gap-2">
|
|
16
|
+
<span component="topic/scheduled" class="badge badge border border-gray-300 text-primary {{{ if !scheduled }}}hidden{{{ end }}}">
|
|
17
|
+
<i class="fa fa-clock-o"></i>
|
|
18
|
+
[[topic:scheduled]]
|
|
19
|
+
</span>
|
|
20
|
+
<span component="topic/pinned" class="badge badge border border-gray-300 text-primary {{{ if (scheduled || !pinned) }}}hidden{{{ end }}}">
|
|
21
|
+
<i class="fa fa-thumb-tack"></i>
|
|
22
|
+
{{{ if !pinExpiry }}}[[topic:pinned]]{{{ else }}}[[topic:pinned-with-expiry, {pinExpiryISO}]]{{{ end }}}
|
|
23
|
+
</span>
|
|
24
|
+
<span component="topic/locked" class="badge badge border border-gray-300 text-primary {{{ if !locked }}}hidden{{{ end }}}">
|
|
25
|
+
<i class="fa fa-lock"></i>
|
|
26
|
+
[[topic:locked]]
|
|
27
|
+
</span>
|
|
28
|
+
<span class="badge badge border border-gray-300 text-primary {{{ if !oldCid }}}hidden{{{ end }}}">
|
|
29
|
+
<i class="fa fa-arrow-circle-right"></i>
|
|
30
|
+
{{{ if privileges.isAdminOrMod }}}[[topic:moved-from, {oldCategory.name}]]{{{ else }}}[[topic:moved]]{{{ end }}}
|
|
31
|
+
</span>
|
|
32
|
+
{{{each icons}}}<span>{@value}</span>{{{end}}}
|
|
18
33
|
</span>
|
|
19
|
-
<
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
<i class="fa fa-lock"></i>
|
|
25
|
-
[[topic:locked]]
|
|
26
|
-
</span>
|
|
27
|
-
<span class="badge badge border border-gray-300 text-primary {{{ if !oldCid }}}hidden{{{ end }}}">
|
|
28
|
-
<i class="fa fa-arrow-circle-right"></i>
|
|
29
|
-
{{{ if privileges.isAdminOrMod }}}[[topic:moved-from, {oldCategory.name}]]{{{ else }}}[[topic:moved]]{{{ end }}}
|
|
30
|
-
</span>
|
|
31
|
-
{{{each icons}}}<span>{@value}</span>{{{end}}}
|
|
32
|
-
</span>
|
|
33
|
-
<a class="lh-1" href="{config.relative_path}/category/{category.slug}">{function.buildCategoryLabel, category, "border"}</a>
|
|
34
|
-
<div class="lh-1 tags tag-list d-flex hidden-xs gap-2"><!-- IMPORT partials/topic/tags.tpl --></div>
|
|
35
|
-
<div class="d-flex hidden-xs gap-2">
|
|
36
|
-
<!-- IMPORT partials/topic/stats.tpl -->
|
|
34
|
+
<a class="lh-1" href="{config.relative_path}/category/{category.slug}">{function.buildCategoryLabel, category, "border"}</a>
|
|
35
|
+
<div class="lh-1 tags tag-list d-flex hidden-xs gap-2"><!-- IMPORT partials/topic/tags.tpl --></div>
|
|
36
|
+
<div class="d-flex hidden-xs gap-2">
|
|
37
|
+
<!-- IMPORT partials/topic/stats.tpl -->
|
|
38
|
+
</div>
|
|
37
39
|
</div>
|
|
38
|
-
</div>
|
|
39
40
|
|
|
40
|
-
<div class="row">
|
|
41
|
-
|
|
42
|
-
|
|
41
|
+
<div class="row">
|
|
42
|
+
<div class="topic {{{ if widgets.sidebar.length }}}col-lg-9 col-sm-12{{{ else }}}col-lg-12{{{ end }}}">
|
|
43
|
+
<!-- IMPORT partials/post_bar.tpl -->
|
|
43
44
|
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
45
|
+
{{{ if merger }}}
|
|
46
|
+
<!-- IMPORT partials/topic/merged-message.tpl -->
|
|
47
|
+
{{{ end }}}
|
|
47
48
|
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
49
|
+
{{{ if !scheduled }}}
|
|
50
|
+
<!-- IMPORT partials/topic/deleted-message.tpl -->
|
|
51
|
+
{{{ end }}}
|
|
51
52
|
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
53
|
+
<div class="d-flex gap-0 gap-lg-5">
|
|
54
|
+
<ul component="topic" class="posts timeline mt-sm-2 p-0 py-3" style="min-width: 0;" data-tid="{tid}" data-cid="{cid}">
|
|
55
|
+
{{{each posts}}}
|
|
56
|
+
<li component="post" class="pt-4 {{{ if posts.deleted }}}deleted{{{ end }}} {{{ if posts.selfPost }}}self-post{{{ end }}} {{{ if posts.topicOwnerPost }}}topic-owner-post{{{ end }}}" <!-- IMPORT partials/data/topic.tpl -->>
|
|
57
|
+
<a component="post/anchor" data-index="{./index}" id="{increment(./index, "1")}"></a>
|
|
57
58
|
|
|
58
|
-
|
|
59
|
-
|
|
59
|
+
<meta itemprop="datePublished" content="{./timestampISO}">
|
|
60
|
+
<meta itemprop="dateModified" content="{./editedISO}">
|
|
60
61
|
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
62
|
+
<!-- IMPORT partials/topic/post.tpl -->
|
|
63
|
+
</li>
|
|
64
|
+
{{{ if (config.topicPostSort != "most_votes") }}}
|
|
65
|
+
{{{ each ./events}}}
|
|
66
|
+
<!-- IMPORT partials/topic/event.tpl -->
|
|
67
|
+
{{{ end }}}
|
|
68
|
+
{{{ end }}}
|
|
69
|
+
{{{end}}}
|
|
70
|
+
</ul>
|
|
70
71
|
|
|
71
|
-
|
|
72
|
-
|
|
72
|
+
<!-- IMPORT partials/topic/navigator.tpl -->
|
|
73
|
+
</div>
|
|
73
74
|
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
75
|
+
{{{ if browsingUsers }}}
|
|
76
|
+
<div class="visible-xs">
|
|
77
|
+
<!-- IMPORT partials/topic/browsing-users.tpl -->
|
|
78
|
+
<hr/>
|
|
79
|
+
</div>
|
|
80
|
+
{{{ end }}}
|
|
80
81
|
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
82
|
+
{{{ if config.theme.enableQuickReply }}}
|
|
83
|
+
<!-- IMPORT partials/topic/quickreply.tpl -->
|
|
84
|
+
{{{ end }}}
|
|
84
85
|
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
86
|
+
{{{ if config.usePagination }}}
|
|
87
|
+
<!-- IMPORT partials/paginator.tpl -->
|
|
88
|
+
{{{ end }}}
|
|
89
|
+
</div>
|
|
90
|
+
<div data-widget-area="sidebar" class="col-lg-3 col-sm-12 {{{ if !widgets.sidebar.length }}}hidden{{{ end }}}">
|
|
91
|
+
{{{each widgets.sidebar}}}
|
|
92
|
+
{{widgets.sidebar.html}}
|
|
93
|
+
{{{end}}}
|
|
94
|
+
</div>
|
|
93
95
|
</div>
|
|
94
96
|
</div>
|
|
95
97
|
|