Skip to content

Commit e56e013

Browse files
committed
change: cloud-tags-v1 add parent div
1 parent 1a17b61 commit e56e013

File tree

1 file changed

+50
-0
lines changed

1 file changed

+50
-0
lines changed

Snippets/Tag Cloud 1/README.md

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,8 @@ const maxFontSize = 32;
7474
const tagsFilter = [ "#tag1", "#tag2" ];
7575
const arrColors = [];
7676
77+
dv.container.className += ' atx-tcv1-dataview'
78+
7779
/*
7880
Generate 40 colors
7981
*/
@@ -308,6 +310,42 @@ CreateTagCloud( )
308310
309311
<br />
310312
313+
#### Minified Version
314+
This version only formats the settings. All other formatting and comments are removed.
315+
316+
<br />
317+
318+
````shell
319+
```dataviewjs
320+
const QueryStr = `""`;
321+
const QueryFiles = dv.pages( QueryStr );
322+
323+
const bRandomColor = true;
324+
const sortOption = 1;
325+
const weightBacklinks = 0.1;
326+
const weightWordCount = 0.3;
327+
const minFontSize = 12;
328+
const maxFontSize = 32;
329+
const tagsFilter = [ "#tag1", "#tag2" ];
330+
331+
const arrColors=[];dv.container.className+=" atx-tcv1-dataview";for(let t=0;t<40;t++){let t=Math.floor(100*Math.random()+100),o=Math.floor(100*Math.random()+100),e=Math.floor(100*Math.random()+100),a=(t<<16)+(o<<8)+e,n=`#${a.toString(16)}`;arrColors.push(n)}async function QueryBacklinks(t){const o=t.split("/").pop().split(".").slice(0,-1).join(".");return dv.query(`\n LIST\n FROM [[${o}]] AND ${QueryStr}\n SORT file.name DESC\n `)}async function QueryWordcount(t){const o=require("fs"),e=require("path"),a=o.readFileSync(e.join(app.vault.adapter.basePath,t),"utf-8").replace(/---[\s\S]*?---|```[\s\S]*?```|\$[\s\S]*?\$|\$\$[\s\S]*?\$\$/g,"").match(/\S+/g);return a?a.length:0}function Generate_FontSize(t,o){const e=2.5*Math.sqrt(t*weightBacklinks+o*weightWordCount);return Math.round(e/100*(maxFontSize-minFontSize)+minFontSize)}function Generate_Color(t,o){if(null==t)return"#FFFFFF";let e=Object.keys(arrColors).length;t.split(/\W+/g);const a=Math.floor(Math.random()*e),n=dv.pages(t).length;return!0===bRandomColor?arrColors[Object.keys(arrColors)[a]]:arrColors[Object.keys(arrColors)[n]]}function Sort_DESC(t){return t.sort(((t,o)=>t.id.localeCompare(o.id))),t}function Sort_ASC(t){return t.sort(((t,o)=>o.id.localeCompare(t.id))),t}function Sort_Shuffle(t){for(let o=t.length-1;o>0;o--){const e=Math.floor(Math.random()*(o+1));[t[o],t[e]]=[t[e],t[o]]}return t}const CreateTagCloud=async()=>{const tags=new Map,files=new Map;Promise.all(QueryFiles.map((async t=>{const o=t.file,e=QueryBacklinks(o.path),a=QueryWordcount(o.path);o.tags&&await Promise.all(o.tags.map((async t=>{tags.has(t)||tags.set(t,{backlinks:0,wordCount:0});const o=tags.get(t),n=await e;o.backlinks+=n.value.values.length;const r=await a;o.wordCount+=r})));for(let t=0;t<tagsFilter.length;t++)tags.has(tagsFilter[t])&&tags.delete(tagsFilter[t]);const n={backlinks:0,wordCount:0},r=await e;n.backlinks=r.value.values.length;const s=await a;n.wordCount=s,files.set(o,n)}))).then((()=>{const data=[];let count=0;if(tags.forEach(((t,o)=>{count++;const e=Generate_FontSize(t.backlinks,t.wordCount),a=Generate_Color(o,t),n=dv.pages(o).length;data.push({name:`\\${o}`,id:o,length:n,fontSize:e,color:a})})),0===count){const t=dv.el("div","🔖 No Tags Found",{cls:"atx-tcv1-results_none"});return t.setAttribute("style","text-align:center;"),""}const sortOptions={1:"Sort_DESC",2:"Sort_ASC",3:"Sort_Shuffle"};let funcSort=sortOptions[sortOption];return void 0===funcSort&&(funcSort=sortOptions[1]),eval(funcSort)(data).map((t=>`<div class="cloudtags-v1-item"><a class="cloudtags-v1-link" href="obsidian://search?query=tag:${encodeURIComponent(t.id)}" style="font-size:${t.fontSize}px; color: ${t.color};">${t.id}</a><div class="tagcloud-v1-length">${t.length}</div></div>`)).join("")})).then((t=>dv.paragraph(t))).catch((t=>{console.error("Error: "+t)}))};CreateTagCloud();
332+
```
333+
````
334+
335+
<br /><br />
336+
337+
<div align="center">
338+
339+
**[`^ back to top ^`](#table-of-contents-)**
340+
341+
</div>
342+
343+
<br /><br />
344+
345+
---
346+
347+
<br /><br />
348+
311349
Next, you need to add some custom CSS.
312350
Open Obsidian Settings, click **Appearance**, and then scroll all the way down. (See image below).
313351
@@ -375,6 +413,18 @@ Copy the code below and paste it into the new `tag_cloud_v1.css` file which shou
375413
}
376414
}
377415
416+
/*
417+
Dataview parent div
418+
*/
419+
420+
.atx-tcv1-dataview
421+
{
422+
padding-left: var( --atx-tcv2-general-container-padding );
423+
padding-right: var( --atx-tcv2-general-container-padding );
424+
padding-top: 20px;
425+
padding-bottom: 20px;
426+
}
427+
378428
/*
379429
Tag Cloud > Item
380430
*/

0 commit comments

Comments
 (0)