Platform
Resources
Pricing
Sign in
Contact us
Mauricio Foronda
Workspace
Fork
Public
By
Mauricio Foronda
Edited
Nov 17, 2022
Insert cell
Insert cell
chart
(
tree
)
Insert cell
url
=
"https://econtwitter.net/@Edent@mastodon.social/109359170070635243"
Insert cell
urlParse
=
(
url
)
=>
{
const
idsMatcher
=
/\@[^\@\/]*/ig
const
ids
=
url
.
match
(
idsMatcher
)
const
instance
=
url
.
split
(
'@'
)
[
0
]
.
split
(
'/'
)
.
slice
(
-
2
)
[
0
]
const
status
=
url
.
split
(
'/'
)
.
slice
(
-
1
)
[
0
]
return
(
{
instance
:
instance
,
status
:
status
}
)
}
Insert cell
urlParse
(
url
)
Insert cell
getUrlStatus
=
(
urlObject
)
=>
{
const
status
=
`https://${
urlObject
.
instance
}/api/v1/statuses/${
urlObject
.
status
}`
const
context
=
`https://${
urlObject
.
instance
}/api/v1/statuses/${
urlObject
.
status
}/context`
return
(
{
status
:
status
,
context
:
context
}
)
}
Insert cell
urlStatus
=
getUrlStatus
(
urlParse
(
url
)
)
Insert cell
getStatus
=
(
url
)
=>
{
return
d3
.
json
(
url
.
status
)
}
Insert cell
getContext
=
(
url
)
=>
{
return
d3
.
json
(
url
.
context
)
}
Insert cell
status
=
getStatus
(
urlStatus
)
Insert cell
context
=
getContext
(
urlStatus
)
Insert cell
bootstrapTree
=
(
status
,
context
)
=>
{
var
root
=
{
name
:
stripHTML
(
status
.
content
)
,
children
:
[
]
}
context
.
descendants
.
forEach
(
(
child
)
=>
root
.
children
.
push
(
{
name
:
stripHTML
(
child
.
content
)
,
children
:
[
]
}
)
)
return
root
}
Insert cell
stripHTML
=
(
text
)
=>
{
return
text
.
replace
(
/<[^>]+>/g
,
''
)
}
Insert cell
tree
=
bootstrapTree
(
status
,
context
)
Insert cell
import
{
chart
}
from
"@mauforonda/collapsible-tree"
Insert cell
Purpose-built for displays of data
Observable is your go-to platform for exploring data and creating expressive data visualizations. Use reactive JavaScript notebooks for prototyping and a collaborative canvas for visual data exploration and dashboard creation.
Try it for free
Learn more
Fork
View
Export
Edit
Add comment
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
Add comment
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
url
Add comment
Copy import
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
urlParse
Add comment
Copy import
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
Add comment
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
getUrlStatus
Add comment
Copy import
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
urlStatus
Add comment
Copy import
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
getStatus
Add comment
Copy import
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
getContext
Add comment
Copy import
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
status
Add comment
Copy import
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
context
Add comment
Copy import
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
bootstrapTree
Add comment
Copy import
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
stripHTML
Add comment
Copy import
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
tree
Add comment
Copy import
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
Add comment
Copy import
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML