mirror of
https://github.com/aljazceru/njump.git
synced 2026-01-31 19:54:29 +01:00
Revert global status to basicFormatting and replaceURLsWithTags
This commit is contained in:
@@ -242,8 +242,8 @@ func render(w http.ResponseWriter, r *http.Request) {
|
||||
}
|
||||
|
||||
funcMap := template.FuncMap{
|
||||
"BasicFormatting": BasicFormatting,
|
||||
"SanitizeString": html.EscapeString,
|
||||
"basicFormatting": basicFormatting,
|
||||
"sanitizeString": html.EscapeString,
|
||||
}
|
||||
|
||||
tmpl := template.Must(
|
||||
|
||||
@@ -1,16 +1,16 @@
|
||||
<div class="field {{if not (eq .type "other")}}advanced{{end}}">
|
||||
<div class="label">Published at</div>
|
||||
{{.createdAt | SanitizeString}}
|
||||
{{.createdAt | sanitizeString}}
|
||||
</div>
|
||||
|
||||
<div class="field {{if not (eq .type "other")}}advanced{{end}}">
|
||||
<div class="label">Kind type</div>
|
||||
{{.kindID}} - <a href="https://github.com/nostr-protocol/nips/blob/master/{{.kindNIP | SanitizeString}}.md">{{.kindDescription | SanitizeString}}</a>
|
||||
{{.kindID}} - <a href="https://github.com/nostr-protocol/nips/blob/master/{{.kindNIP | sanitizeString}}.md">{{.kindDescription | sanitizeString}}</a>
|
||||
</div>
|
||||
|
||||
<div class="field {{if not (eq .type "other")}}advanced{{end}}">
|
||||
<div class="label">Nevent</div>
|
||||
<div>{{.nevent | SanitizeString}}</div>
|
||||
<div>{{.nevent | sanitizeString}}</div>
|
||||
</div>
|
||||
|
||||
<div class="field {{if not (eq .type "other")}}advanced{{end}} boxed">
|
||||
|
||||
@@ -1,19 +1,19 @@
|
||||
<head>
|
||||
{{if eq .type "profile"}}
|
||||
<title>Nostr Public Key {{.npub}}</title>
|
||||
<meta property="og:site_name" content="{{.npub | SanitizeString}}" />
|
||||
<meta property="og:title" content="{{.title | SanitizeString}}" />
|
||||
<link rel="canonical" href="/{{.npub | SanitizeString }}" />
|
||||
<meta property="og:site_name" content="{{.npub | sanitizeString}}" />
|
||||
<meta property="og:title" content="{{.title | sanitizeString}}" />
|
||||
<link rel="canonical" href="/{{.npub | sanitizeString }}" />
|
||||
{{ if .metadata.Picture }}
|
||||
<meta property="og:image" content="{{.metadata.Picture | SanitizeString}}" />
|
||||
<meta property="og:image" content="{{.metadata.Picture | sanitizeString}}" />
|
||||
<meta
|
||||
property="twitter:image"
|
||||
content="{{.proxy}}{{.metadata.Picture | SanitizeString}}"
|
||||
content="{{.proxy}}{{.metadata.Picture | sanitizeString}}"
|
||||
/>
|
||||
{{end}} {{ if .metadata.About }}
|
||||
<meta
|
||||
property="og:description"
|
||||
content="{{.metadata.About | SanitizeString}}"
|
||||
content="{{.metadata.About | sanitizeString}}"
|
||||
/>
|
||||
{{end}}
|
||||
<meta property="twitter:card" content="summary" />
|
||||
@@ -21,45 +21,45 @@
|
||||
<!----------->
|
||||
{{ if eq .type "note" }}
|
||||
<title>Nostr Event {{.nevent}}</title>
|
||||
<meta property="og:site_name" content="{{.authorLong | SanitizeString}}" />
|
||||
<meta property="og:title" content="{{.title | SanitizeString}}" />
|
||||
<meta name="twitter:title" content="{{.twitterTitle | SanitizeString}}" />
|
||||
<link rel="canonical" href="/{{.note | SanitizeString }}" />
|
||||
<meta property="og:site_name" content="{{.authorLong | sanitizeString}}" />
|
||||
<meta property="og:title" content="{{.title | sanitizeString}}" />
|
||||
<meta name="twitter:title" content="{{.twitterTitle | sanitizeString}}" />
|
||||
<link rel="canonical" href="/{{.note | sanitizeString }}" />
|
||||
<!---->
|
||||
{{ if .textImageURL }}
|
||||
<meta name="twitter:card" content="summary_large_image" />
|
||||
<meta name="twitter:site" content="@nostrprotocol" />
|
||||
<meta property="og:image" content="{{.textImageURL | SanitizeString}}" />
|
||||
<meta name="twitter:image" content="{{.textImageURL | SanitizeString}}" />
|
||||
<meta property="og:image" content="{{.textImageURL | sanitizeString}}" />
|
||||
<meta name="twitter:image" content="{{.textImageURL | sanitizeString}}" />
|
||||
{{ else }}
|
||||
<!---->
|
||||
<meta property="twitter:card" content="summary" />
|
||||
{{ if .image }}
|
||||
<meta property="og:image" content="{{.image | SanitizeString}}" />
|
||||
<meta name="twitter:image" content="{{.proxy}}{{.image | SanitizeString}}" />
|
||||
<meta property="og:image" content="{{.image | sanitizeString}}" />
|
||||
<meta name="twitter:image" content="{{.proxy}}{{.image | sanitizeString}}" />
|
||||
{{end}} {{ if .video }}
|
||||
<meta property="og:video" content="{{.video | SanitizeString}}" />
|
||||
<meta property="og:video:secure_url" content="{{.video | SanitizeString}}" />
|
||||
<meta property="og:video" content="{{.video | sanitizeString}}" />
|
||||
<meta property="og:video:secure_url" content="{{.video | sanitizeString}}" />
|
||||
<meta
|
||||
property="og:video:type"
|
||||
content="video/{{.videoType | SanitizeString}}"
|
||||
content="video/{{.videoType | sanitizeString}}"
|
||||
/>
|
||||
{{end}}
|
||||
<!---->
|
||||
{{end}}
|
||||
<meta property="og:description" content="{{.description | SanitizeString}}" />
|
||||
<meta property="og:description" content="{{.description | sanitizeString}}" />
|
||||
<meta
|
||||
name="twitter:description"
|
||||
content="{{.description | SanitizeString}}"
|
||||
content="{{.description | sanitizeString}}"
|
||||
/>
|
||||
{{end}}
|
||||
<!----------->
|
||||
{{ if eq .type "address" }}
|
||||
<title>Nostr Address {{.naddr | SanitizeString }}</title>
|
||||
<title>Nostr Address {{.naddr | sanitizeString }}</title>
|
||||
{{end}}
|
||||
<!----------->
|
||||
{{ if eq .type "other" }}
|
||||
<title>Nostr Event {{.kindID }} - {{.kindDescription | SanitizeString }}</title>
|
||||
<title>Nostr Event {{.kindID }} - {{.kindDescription | sanitizeString }}</title>
|
||||
{{end}}
|
||||
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
|
||||
@@ -10,34 +10,34 @@
|
||||
<div class="container">
|
||||
<div class="column column_content">
|
||||
<div class="profile_intro">
|
||||
<a href="/{{.npub | SanitizeString}}">
|
||||
<a href="/{{.npub | sanitizeString}}">
|
||||
<div class="pic-wrapper">
|
||||
<img class="pic" src="{{.metadata.Picture | SanitizeString}}" />
|
||||
<img class="pic" src="{{.metadata.Picture | sanitizeString}}" />
|
||||
</div>
|
||||
<div class="info-wrapper">
|
||||
<div class="name">
|
||||
{{.metadata.Name | SanitizeString}}
|
||||
{{.metadata.Name | sanitizeString}}
|
||||
<span class="display"
|
||||
>{{.metadata.DisplayName | SanitizeString}}</span
|
||||
>{{.metadata.DisplayName | sanitizeString}}</span
|
||||
>
|
||||
</div>
|
||||
<div class="npub">{{.npubShort | SanitizeString}}</div>
|
||||
<div class="npub">{{.npubShort | sanitizeString}}</div>
|
||||
</div>
|
||||
<div class="published_at">{{.createdAt | SanitizeString}}</div>
|
||||
<div class="published_at">{{.createdAt | sanitizeString}}</div>
|
||||
</a>
|
||||
</div>
|
||||
|
||||
<div class="field separator"></div>
|
||||
|
||||
<div class="field content">
|
||||
{{.content | SanitizeString | BasicFormatting }}
|
||||
{{.content | sanitizeString | basicFormatting }}
|
||||
</div>
|
||||
|
||||
<div class="field separator"></div>
|
||||
|
||||
<div class="field">
|
||||
<div class="label">Author Public key</div>
|
||||
{{.npub | SanitizeString}}
|
||||
{{.npub | sanitizeString}}
|
||||
</div>
|
||||
|
||||
<div class="field advanced-switch-wrapper">
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
<div class="profile_intro">
|
||||
<div class="info-wrapper">
|
||||
<div class="kind_desc">
|
||||
{{.kindDescription | SanitizeString}}
|
||||
{{.kindDescription | sanitizeString}}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -21,7 +21,7 @@
|
||||
|
||||
<div class="field">
|
||||
<div class="label">Author Public key</div>
|
||||
<a href="/{{.npub | SanitizeString}}">{{.npub | SanitizeString}}</a>
|
||||
<a href="/{{.npub | sanitizeString}}">{{.npub | sanitizeString}}</a>
|
||||
</div>
|
||||
|
||||
{{template "details.html" .}}
|
||||
|
||||
@@ -10,53 +10,53 @@
|
||||
<div class="container">
|
||||
<div class="column columnA">
|
||||
<div class="info-wrapper">
|
||||
{{.metadata.Name | SanitizeString}}
|
||||
{{.metadata.Name | sanitizeString}}
|
||||
<span class="display"
|
||||
>{{.metadata.DisplayName | SanitizeString}}</span
|
||||
>{{.metadata.DisplayName | sanitizeString}}</span
|
||||
>
|
||||
</div>
|
||||
<div class="pic-wrapper">
|
||||
<img class="pic" src="{{.metadata.Picture | SanitizeString}}" />
|
||||
<img class="pic" src="{{.metadata.Picture | sanitizeString}}" />
|
||||
</div>
|
||||
<div class="last_update">
|
||||
Last update:<br />
|
||||
{{.createdAt | SanitizeString}}
|
||||
{{.createdAt | sanitizeString}}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="column column_content">
|
||||
<div class="field info-wrapper">
|
||||
<div class="name">
|
||||
{{.metadata.Name | SanitizeString}}
|
||||
{{.metadata.Name | sanitizeString}}
|
||||
<span class="display"
|
||||
>{{.metadata.DisplayName | SanitizeString}}</span
|
||||
>{{.metadata.DisplayName | sanitizeString}}</span
|
||||
>
|
||||
</div>
|
||||
</div>
|
||||
<div class="field separator long"></div>
|
||||
<div class="field">
|
||||
<a href="{{.metadata.Website | SanitizeString}}"
|
||||
>{{.metadata.Website | SanitizeString}}</a
|
||||
<a href="{{.metadata.Website | sanitizeString}}"
|
||||
>{{.metadata.Website | sanitizeString}}</a
|
||||
>
|
||||
</div>
|
||||
<div class="field about">{{.metadata.About | SanitizeString | BasicFormatting}}</div>
|
||||
<div class="field about">{{.metadata.About | sanitizeString | basicFormatting}}</div>
|
||||
<div class="field separator"></div>
|
||||
<div class="field">
|
||||
<div class="label">Public key</div>
|
||||
{{.npub | SanitizeString}}
|
||||
{{.npub | sanitizeString}}
|
||||
</div>
|
||||
<div class="field">
|
||||
<div class="label">NIP-05</div>
|
||||
{{.metadata.NIP05 | SanitizeString}}
|
||||
{{.metadata.NIP05 | sanitizeString}}
|
||||
</div>
|
||||
<div class="field">
|
||||
<div class="label">LN Address</div>
|
||||
{{.metadata.LUD16 | SanitizeString}}
|
||||
{{.metadata.LUD16 | sanitizeString}}
|
||||
</div>
|
||||
|
||||
<div class="field last_update">
|
||||
Last update:<br />
|
||||
{{.createdAt | SanitizeString}}
|
||||
{{.createdAt | sanitizeString}}
|
||||
</div>
|
||||
|
||||
<div class="field separator"></div>
|
||||
|
||||
6
utils.go
6
utils.go
@@ -166,19 +166,19 @@ func getPreviewStyle(r *http.Request) string {
|
||||
}
|
||||
}
|
||||
|
||||
func BasicFormatting(input string) string {
|
||||
func basicFormatting(input string) string {
|
||||
lines := strings.Split(input, "\n")
|
||||
|
||||
var processedLines []string
|
||||
for _, line := range lines {
|
||||
processedLine := ReplaceURLsWithTags(line)
|
||||
processedLine := replaceURLsWithTags(line)
|
||||
processedLines = append(processedLines, processedLine)
|
||||
}
|
||||
|
||||
return strings.Join(processedLines, "<br/>")
|
||||
}
|
||||
|
||||
func ReplaceURLsWithTags(line string) string {
|
||||
func replaceURLsWithTags(line string) string {
|
||||
|
||||
// Match and replace image URLs with <img> tags
|
||||
imageExtensions := []string{".jpg", ".jpeg", ".png", ".webp", ".gif"}
|
||||
|
||||
Reference in New Issue
Block a user