Compare commits

..

7 Commits

Author SHA1 Message Date
httpjamesm 3aac1467cd feat: version 1.4 2023-01-01 00:16:05 -05:00
httpjamesm 062ffbcbdc refactor: move comments styles to another file 2022-12-30 18:18:13 -05:00
httpjamesm aa13c8515f feat: change comments to plural if greater than 1 2022-12-30 18:15:35 -05:00
httpjamesm d49c0f2ffd feat: display comment upvotes 2022-12-30 18:11:59 -05:00
httpjamesm 89d8dee958 Merge branch 'main' of https://github.com/httpjamesm/AnonymousOverflow 2022-12-30 10:53:27 -05:00
httpjamesm 0ad3f08ef5 docs: add smnz.de 2022-12-30 10:53:26 -05:00
httpjamesm d5bcf7fa38 docs: link deployment wiki page 2022-12-29 17:14:14 -05:00
8 changed files with 66 additions and 41 deletions
+6 -11
View File
@@ -19,6 +19,7 @@ This project is super lightweight by design. The UI is simple and the frontend i
| [code.whatever.social](https://code.whatever.social) | United States & Germany | Operated by [Whatever Social](https://whatever.social) and [http.james](https://httpjames.space) |
| [overflow.777.tf](https://overflow.777.tf/) | The Netherlands | Operated by [Jae](https://777.tf) |
| [ao.vern.cc](https://ao.vern.cc) | United States | Operated by [vern.cc](https://vern.cc) |
| [overflow.smnz.de](https://overflow.smnz.de) | Germany | Operated by [smnz.de](https://smnz.de) |
## Other Instances
@@ -29,7 +30,7 @@ This project is super lightweight by design. The UI is simple and the frontend i
## Why use AnonymousOverflow over StackOverflow?
- StackOverflow collects a lot of information
- StackOverflow collects a lot of information
While it's understandable that StackOverflow collects a lot of technical data for product development, debugging and to serve the best experience to its users, not everyone wants their
@@ -37,16 +38,16 @@ While it's understandable that StackOverflow collects a lot of technical data fo
to be collected and stored.
- StackOverflow shares your information with third-parties
- StackOverflow shares your information with third-parties
StackOverflow does not sell your information, but it does share it with third-parties, including conglomerates.
> We also partner with other third parties, such as Google Ads and Microsoft Bing, to serve advertising content and manage advertising campaigns. When we use Google Ads or Microsoft Bing Customer Match for advertising campaigns, your personal data will be protected using hashed codes.
Google users can control the ads that they see on Google services, including Customer Match ads, in their Google Ads Settings.
> Google users can control the ads that they see on Google services, including Customer Match ads, in their Google Ads Settings.
Their main website also [contains trackers from Alphabet](https://themarkup.org/blacklight?url=stackoverflow.com).
- Reduced clutter
- Reduced clutter
StackOverflow has a cluttered UI that might distract you from the content you're trying to find. AnonymousOverflow simplifies the interface to make it easier to read and navigate.
@@ -86,13 +87,7 @@ Thanks to [Manav from ente.io](https://ente.io/about) for the handy tool.
## How to deploy
AnonymousOverflow uses Docker for deployment.
Install Docker for your platform and copy the `docker-compose.example.yml` file to `docker-compose.yml`.
Then, tweak settings if needed.
Run `docker compose up -d` to build and start the container.
Read the [wiki page](https://github.com/httpjamesm/AnonymousOverflow/wiki/Deployment).
## Attribution
+1 -1
View File
@@ -1,3 +1,3 @@
package config
var Version = "1.3.4"
var Version = "1.4"
+35
View File
@@ -0,0 +1,35 @@
.comments {
margin-top: 1rem;
}
.comments-parent {
display: flex;
flex-direction: column;
gap: 1rem;
margin-top: 1rem;
}
.comment-parent {
cursor: text;
}
.comment-top {
display: flex;
}
.comment-score {
border-right: 1px solid white;
padding-right: .5rem;
}
.comment-body {
font-size: 0.95rem;
padding-left: .5rem;
}
.comment-author {
color: var(--muted-text-color);
font-size: 0.8rem;
padding-left: 1.5rem;
margin-top: .25rem;
}
+2 -25
View File
@@ -50,7 +50,8 @@ pre {
font-size: 0.8rem;
}
.post-divider, .answer-divider {
.post-divider,
.answer-divider {
margin-top: 3rem;
margin-bottom: 3rem;
}
@@ -102,30 +103,6 @@ img {
height: 2rem;
}
.comments {
margin-top: 1rem;
}
.comments-parent {
display: flex;
flex-direction: column;
gap: 1rem;
margin-top: 1rem;
}
.comment-parent {
cursor: text;
}
.comment-body {
font-size: 0.95rem;
}
.comment-author {
color: var(--muted-text-color);
font-size: 0.8rem;
}
.s-notice {
background-color: var(--meta-bg);
padding: 1rem;
+1
View File
@@ -7,4 +7,5 @@ type FilteredComment struct {
Timestamp string
AuthorName string
AuthorURL string
Upvotes string
}
+9
View File
@@ -17,6 +17,14 @@ func FindAndReturnComments(inHtml string, postLayout *goquery.Selection) (commen
allComments := commentsList2.Find("li.comment")
allComments.Each(func(i int, s *goquery.Selection) {
commentScoreParent := s.Find("div.comment-score")
// find the first span within commentScoreParent
commentScore := commentScoreParent.Find("span").First().Text()
if commentScore == "" {
commentScore = "0"
}
commentText := s.Find("div.comment-text")
commentBody := commentText.Find("div.comment-body")
@@ -45,6 +53,7 @@ func FindAndReturnComments(inHtml string, postLayout *goquery.Selection) (commen
Timestamp: commentTimestamp,
AuthorName: commentAuthor.Text(),
AuthorURL: commentAuthorURL,
Upvotes: commentScore,
}
comments = append(comments, newFilteredComment)
+10 -3
View File
@@ -1,13 +1,20 @@
<details class="comments">
<summary>
Show <b>{{ (len .Comments) }} comments</b>
Show
<b
>{{ (len .Comments) }} comment{{ if gt (len .Comments) 1 }}s{{
end }}</b
>
</summary>
<div class="comments-parent">
{{ range $comment := .Comments }}
<div class="comment-parent">
<div class="comment">
<div class="comment-body">
{{ $comment.Text }}
<div class="comment-top">
<div class="comment-score" title="Comment Upvotes">
{{ $comment.Upvotes }}
</div>
<div class="comment-body">{{ $comment.Text }}</div>
</div>
<div class="comment-author">
Commented {{ $comment.Timestamp }} by
+2 -1
View File
@@ -4,6 +4,7 @@
<title>{{ .question.Title }}</title>
<link rel="stylesheet" href="/static/question.css" />
<link rel="stylesheet" href="/static/syntax.css" />
<link rel="stylesheet" href="/static/comments.css" />
<meta
http-equiv="Content-Security-Policy"
content="default-src 'none'; style-src 'self'; script-src 'none'; img-src {{ .imagePolicy }};"
@@ -21,7 +22,7 @@
alt="4 circles with alternating colors between green and white"
/>
</a>
{{ template "themeSwitcher.html" .}}
{{ template "themeSwitcher.html" . }}
</div>
<div class="card">
<div class="card-header">