mirror of
https://github.com/by-jp/www.byjp.me.git
synced 2025-08-09 09:46:11 +01:00
Imports are now standard
This commit is contained in:
parent
900aa820a7
commit
f99ba8a8f5
6 changed files with 60 additions and 36 deletions
|
@ -14,20 +14,20 @@ references:
|
||||||
of habit-forming products and that inevitably lead me to the (in)famous neurotransmitter
|
of habit-forming products and that inevitably lead me to the (in)famous neurotransmitter
|
||||||
dopamine. 3/ Before we dive into what dopamine does, let''s first make one thing
|
dopamine. 3/ Before we dive into what dopamine does, let''s first make one thing
|
||||||
clear: dopamine…'
|
clear: dopamine…'
|
||||||
games-problems:
|
|
||||||
url: https://invertedpassion.com/games-are-problems-people-pay-to-solve/
|
|
||||||
name: Games are problems people pay to solve
|
|
||||||
rel: +agree +accurate
|
|
||||||
skimmable:
|
|
||||||
url: https://invertedpassion.com/why-you-will-skim-this-article/
|
|
||||||
name: Why you will skim this article
|
|
||||||
rel: +agree +accurate
|
|
||||||
dopamine-and-value-of-work:
|
dopamine-and-value-of-work:
|
||||||
url: https://www.ncbi.nlm.nih.gov/pmc/articles/PMC4696912/
|
url: https://www.ncbi.nlm.nih.gov/pmc/articles/PMC4696912/
|
||||||
name: Mesolimbic Dopamine Signals the Value of Work
|
name: Mesolimbic Dopamine Signals the Value of Work
|
||||||
|
games-problems:
|
||||||
|
url: https://invertedpassion.com/games-are-problems-people-pay-to-solve/
|
||||||
|
rel: +agree +accurate
|
||||||
|
name: Games are problems people pay to solve
|
||||||
|
skimmable:
|
||||||
|
url: https://invertedpassion.com/why-you-will-skim-this-article/
|
||||||
|
rel: +agree +accurate
|
||||||
|
name: Why you will skim this article
|
||||||
tags:
|
tags:
|
||||||
- curious
|
|
||||||
- biology
|
- biology
|
||||||
|
- curious
|
||||||
---
|
---
|
||||||
|
|
||||||
I really enjoyed reading about dopamine, desire and pleasure here! It’s worth a read, even if it slightly veers into the “how to abuse this knowledge for personal gain with your new product” space.
|
I really enjoyed reading about dopamine, desire and pleasure here! It’s worth a read, even if it slightly veers into the “how to abuse this knowledge for personal gain with your new product” space.
|
||||||
|
@ -151,7 +151,7 @@ I’m not sure I agree that this is _all_ that stories are, but to the extent th
|
||||||
---
|
---
|
||||||
|
|
||||||
> Plus, [why everything looks the same now](https://invertedpassion.com/why-you-will-skim-this-article/).
|
> Plus, [why everything looks the same now](https://invertedpassion.com/why-you-will-skim-this-article/).
|
||||||
>
|
>
|
||||||
> Hint: that’s because before beating expectations, you have to meet them.
|
> Hint: that’s because before beating expectations, you have to meet them.
|
||||||
|
|
||||||
I don’t agree with the base premise here, I think this is inverted. You can set yourself apart from expectations & reset them; if you end up looking like others _then_ you have to meet all the expectations folks have of everyone else, but if you can find a niche and be different enough that people roll back their higher-level expectations, then you can carve out some particularly interesting reward.
|
I don’t agree with the base premise here, I think this is inverted. You can set yourself apart from expectations & reset them; if you end up looking like others _then_ you have to meet all the expectations folks have of everyone else, but if you can find a niche and be different enough that people roll back their higher-level expectations, then you can carve out some particularly interesting reward.
|
||||||
|
|
|
@ -12,8 +12,8 @@ references:
|
||||||
ideas.
|
ideas.
|
||||||
author: Henrik Karlsson, Johanna Wiberg
|
author: Henrik Karlsson, Johanna Wiberg
|
||||||
tags:
|
tags:
|
||||||
- self-help
|
|
||||||
- creativity
|
- creativity
|
||||||
|
- self-help
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|
||||||
|
@ -32,4 +32,3 @@ This has also put me to thinking about raising kids; how to ensure there’s alw
|
||||||
---
|
---
|
||||||
|
|
||||||
> The songs he’s looking for are the ones that he’s ashamed of liking.
|
> The songs he’s looking for are the ones that he’s ashamed of liking.
|
||||||
|
|
||||||
|
|
|
@ -69,4 +69,3 @@ I love the origins of this phrase; a Ren and Stimpy cartoon where Ren (?) has to
|
||||||
I love this concept! It feels like we’re missing it a lot on the web (see [the web’s missing communication faculty](/posts/webs-missing-communication-faculty/)), I fully intend to seek out and recognise people who can be my _epistemic peers_.
|
I love this concept! It feels like we’re missing it a lot on the web (see [the web’s missing communication faculty](/posts/webs-missing-communication-faculty/)), I fully intend to seek out and recognise people who can be my _epistemic peers_.
|
||||||
|
|
||||||
(Though I think declaring who they are might be a security risk?)
|
(Though I think declaring who they are might be a security risk?)
|
||||||
|
|
||||||
|
|
|
@ -38,4 +38,3 @@ I plan on taking some every day risks this year & always.
|
||||||
---
|
---
|
||||||
|
|
||||||
> Aliveness is risk, not comfort.
|
> Aliveness is risk, not comfort.
|
||||||
|
|
||||||
|
|
|
@ -11,9 +11,9 @@ references:
|
||||||
summary: We are stuck in a hell of frictionlessness.
|
summary: We are stuck in a hell of frictionlessness.
|
||||||
author: P.E. Moskowitz
|
author: P.E. Moskowitz
|
||||||
tags:
|
tags:
|
||||||
|
- Miriscient
|
||||||
- curious
|
- curious
|
||||||
- grief
|
- grief
|
||||||
- Miriscient
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|
||||||
|
@ -30,4 +30,3 @@ I think I've certainly trained myself for a frictionless existence, and have (up
|
||||||
> there are many forces preventing us from feeling abstractly and confusingly and deeply, and from producing things that help others feel so.
|
> there are many forces preventing us from feeling abstractly and confusingly and deeply, and from producing things that help others feel so.
|
||||||
|
|
||||||
I keep finding myself coming back to this thought in particular. I _want_ to feel abstractly and deeply — it feels much more like "living".
|
I keep finding myself coming back to this thought in particular. I _want_ to feel abstractly and deeply — it feels much more like "living".
|
||||||
|
|
||||||
|
|
|
@ -56,27 +56,34 @@ var hashtags = regexp.MustCompile(`#\w+`)
|
||||||
|
|
||||||
func outputArticle(article Article, outputDir string) error {
|
func outputArticle(article Article, outputDir string) error {
|
||||||
slug := kebab(article.Title)
|
slug := kebab(article.Title)
|
||||||
hugoPost, err := os.Create(path.Join(outputDir, fmt.Sprintf("%s.md", slug)))
|
articlePath := path.Join(outputDir, fmt.Sprintf("%s.md", slug))
|
||||||
|
|
||||||
|
fm, _ := loadFrontmatter(articlePath)
|
||||||
|
|
||||||
|
hugoPost, err := os.Create(articlePath)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
fm := FrontMatter{
|
if fm.Date == "" {
|
||||||
Title: article.Title,
|
fm.Date = article.BookmarkDate.Format(time.RFC3339)
|
||||||
Date: article.BookmarkDate.Format(time.RFC3339),
|
|
||||||
BookmarkOf: article.OriginalURL,
|
|
||||||
References: map[string]Ref{
|
|
||||||
"bookmark": {
|
|
||||||
URL: article.OriginalURL,
|
|
||||||
Type: "entry",
|
|
||||||
Name: article.OriginalTitle,
|
|
||||||
Summary: article.OriginalSummary,
|
|
||||||
Author: article.OriginalAuthor,
|
|
||||||
},
|
|
||||||
},
|
|
||||||
Tags: article.Tags,
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fm.Title = article.Title
|
||||||
|
fm.BookmarkOf = article.OriginalURL
|
||||||
|
fm.Tags = removeDupes(append(fm.Tags, article.Tags...))
|
||||||
|
|
||||||
|
if fm.References == nil {
|
||||||
|
fm.References = make(map[string]Ref)
|
||||||
|
}
|
||||||
|
ref := fm.References["bookmark"]
|
||||||
|
ref.URL = article.OriginalURL
|
||||||
|
ref.Type = "entry"
|
||||||
|
ref.Name = article.OriginalTitle
|
||||||
|
ref.Summary = article.OriginalSummary
|
||||||
|
ref.Author = article.OriginalAuthor
|
||||||
|
fm.References["bookmark"] = ref
|
||||||
|
|
||||||
if !article.PublishDate.IsZero() {
|
if !article.PublishDate.IsZero() {
|
||||||
fm.PublishDate = article.PublishDate.Format(time.RFC3339)
|
fm.PublishDate = article.PublishDate.Format(time.RFC3339)
|
||||||
}
|
}
|
||||||
|
@ -96,14 +103,14 @@ func outputArticle(article Article, outputDir string) error {
|
||||||
|
|
||||||
for i, highlight := range article.Highlights {
|
for i, highlight := range article.Highlights {
|
||||||
quote := "> " + strings.ReplaceAll(trimQuote(highlight.Quote), "\n", "\n> ")
|
quote := "> " + strings.ReplaceAll(trimQuote(highlight.Quote), "\n", "\n> ")
|
||||||
fmt.Fprint(hugoPost, "\n"+quote+"\n\n")
|
fmt.Fprint(hugoPost, "\n"+quote+"\n")
|
||||||
|
|
||||||
if highlight.Comment != "" {
|
if highlight.Comment != "" {
|
||||||
fmt.Fprint(hugoPost, linkHashtags(highlight.Comment, fm.Tags)+"\n\n")
|
fmt.Fprint(hugoPost, "\n"+linkHashtags(highlight.Comment, fm.Tags)+"\n")
|
||||||
}
|
}
|
||||||
|
|
||||||
if i < len(article.Highlights)-1 {
|
if i < len(article.Highlights)-1 {
|
||||||
fmt.Fprint(hugoPost, "---\n")
|
fmt.Fprint(hugoPost, "\n---\n")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -112,11 +119,32 @@ func outputArticle(article Article, outputDir string) error {
|
||||||
|
|
||||||
var allBold = regexp.MustCompile(`\*\*([^*]+)\*\*(\W)?`)
|
var allBold = regexp.MustCompile(`\*\*([^*]+)\*\*(\W)?`)
|
||||||
|
|
||||||
|
func removeDupes(tags []string) []string {
|
||||||
|
slices.Sort(tags)
|
||||||
|
return slices.Compact(tags)
|
||||||
|
}
|
||||||
|
|
||||||
func trimQuote(quote string) string {
|
func trimQuote(quote string) string {
|
||||||
noTrail := strings.TrimRight(quote, "\n ")
|
noTrail := strings.TrimRight(quote, "\n ")
|
||||||
return allBold.ReplaceAllString(noTrail, "$1$2")
|
return allBold.ReplaceAllString(noTrail, "$1$2")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func loadFrontmatter(path string) (FrontMatter, error) {
|
||||||
|
f, err := os.Open(path)
|
||||||
|
if err != nil {
|
||||||
|
return FrontMatter{}, err
|
||||||
|
}
|
||||||
|
defer f.Close()
|
||||||
|
|
||||||
|
decoder := yaml.NewDecoder(f)
|
||||||
|
var fm FrontMatter
|
||||||
|
if err := decoder.Decode(&fm); err != nil {
|
||||||
|
return FrontMatter{}, err
|
||||||
|
}
|
||||||
|
|
||||||
|
return fm, nil
|
||||||
|
}
|
||||||
|
|
||||||
func linkHashtags(text string, tags []string) string {
|
func linkHashtags(text string, tags []string) string {
|
||||||
return hashtags.ReplaceAllStringFunc(text, func(hashtag string) string {
|
return hashtags.ReplaceAllStringFunc(text, func(hashtag string) string {
|
||||||
tags = append(tags, hashtag[1:])
|
tags = append(tags, hashtag[1:])
|
||||||
|
@ -167,7 +195,8 @@ type FrontMatter struct {
|
||||||
|
|
||||||
type Ref struct {
|
type Ref struct {
|
||||||
URL string `yaml:"url"`
|
URL string `yaml:"url"`
|
||||||
Type string `yaml:"type"`
|
Rel string `yaml:"rel,omitempty"`
|
||||||
|
Type string `yaml:"type,omitempty"`
|
||||||
Name string `yaml:"name"`
|
Name string `yaml:"name"`
|
||||||
Summary string `yaml:"summary,omitempty"`
|
Summary string `yaml:"summary,omitempty"`
|
||||||
Author string `yaml:"author,omitempty"`
|
Author string `yaml:"author,omitempty"`
|
||||||
|
@ -295,7 +324,6 @@ func parseResponse(body []byte) ([]Article, string, error) {
|
||||||
}
|
}
|
||||||
|
|
||||||
if len(annotation) == 0 {
|
if len(annotation) == 0 {
|
||||||
fmt.Fprintf(os.Stderr, "No annotation for %s\n", articleURL)
|
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue