37 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
			
		
		
	
	
			37 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
| up:: [[obsidian plugins]]
 | |
| title:: "show a heatmap from a daily dataview attributes (use with dataviewJS)"
 | |
| #s/obsidian #s/PKM 
 | |
| 
 | |
| ---
 | |
| 
 | |
| Example :
 | |
| 
 | |
| ```dataviewjs
 | |
| dv.span("** 😊 Title 😥**") /* optional ⏹️💤⚡⚠🧩↑↓⏳📔💾📁📝🔄📝🔀⌨️🕸️📅🔍✨ */
 | |
| const calendarData = { year: 2022, // (optional) defaults to current year
 | |
| colors: { // (optional) defaults to green
 | |
|     blue: ["#8cb9ff", "#69a3ff", "#428bff", "#1872ff", "#0058e2"],
 | |
|     // first entry is considered default if supplied
 | |
|     green: ["#c6e48b", "#7bc96f", "#49af5d", "#2e8840", "#196127"],
 | |
|     red: ["#ff9e82", "#ff7b55", "#ff4d1a", "#e73400", "#bd2a00"],
 | |
|     orange: ["#ffa244", "#fd7f00", "#dd6f00", "#bf6000", "#9b4e00"],
 | |
|     pink: ["#ff96cb", "#ff70b8", "#ff3a9d", "#ee0077", "#c30062"],
 | |
|     orangeToRed: ["#ffdf04", "#ffbe04", "#ff9a03", "#ff6d02", "#ff2c01"] },
 | |
|     showCurrentDayBorder: true, // (optional) defaults to true
 | |
|     defaultEntryIntensity: 4, // (optional) defaults to 4
 | |
|     intensityScaleStart: 10, // (optional) defaults to lowest value passed to entries.intensity
 | |
|     intensityScaleEnd: 100, // (optional) defaults to highest value passed to entries.intensity 
 | |
|     entries: [], // (required) populated in the DataviewJS loop below
 | |
| }
 | |
| //DataviewJS loop
 | |
| for (let page of dv.pages('"daily notes"').where(p => p.exercise)) {
 | |
|     //dv.span("<br>" + page.file.name) // uncomment for troubleshooting
 | |
|     calendarData.entries.push({ date: page.file.name, // (required) Format YYYY-MM-DD
 | |
|     intensity: page.exercise, // (required) the data you want to track, will map color intensities automatically
 | |
|     content: "🏋️", // (optional) Add text to the date cell
 | |
|     color: "orange", // (optional) Reference from *calendarData.colors*. If no color is supplied; colors[0] is used
 | |
| }) }
 | |
| renderHeatmapCalendar(this.container, calendarData)
 | |
| ```
 | |
| 
 |