%% generate tags start %%
#obsidian
%% generate tags end %%
#obsidian/plugin
Obsidian doesn’t expose search api so some people created one. Although I also have my own way to do it.
%% run start
```ts
const {LinkPreview} = customJS
return LinkPreview.getLinkPreviewFromUrl("https://github.com/b-camphart/obsidian-search")
```
%%
<div class="nifty-link-card-container">
<a class="nifty-link-card" href="https://github.com/b-camphart/obsidian-search" target="_blank">
<div class="nifty-link-card-text">
<div class="nifty-link-card-title line-clamp-2">GitHub - b-camphart/obsidian-search</div>
<div class="nifty-link-card-description">Contribute to b-camphart/obsidian-search development by creating an account on GitHub.</div>
<div class="nifty-link-href">
<img class="nifty-link-icon" src="https://github.com/fluidicon.png">
https://github.com/b-camphart/obsidian-search
</div>
</div>
<div class="nifty-link-image-container">
<div class="nifty-link-image" style="background-image: url('https://opengraph.githubassets.com/532205f5ac4a40bf509c79d377606b861e9facbf9f4a712cf7d88036b412de5e/b-camphart/obsidian-search')">
</div>
</div>
</a>
</div>
%% run end %%
Look interesting because he try to parse everything by himself and do the implementation. As long as he can make sure it is right then it is good.