Skip to content

Commit 6c31220

Browse files
author
valentine195
committed
3.3.1
- Fixed admonition display issues in settings tabs (ref #20 ) - Fixed issue where admonition color picker value was not being set correctly in settings tab - Fixed issue where a title could not have colons (closes #20 )
1 parent 99f63fa commit 6c31220

File tree

8 files changed

+476
-476
lines changed

8 files changed

+476
-476
lines changed

@types/types.ts

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -24,9 +24,4 @@ export declare class ObsidianAdmonitionPlugin extends Plugin_2 {
2424
el: HTMLElement,
2525
ctx: MarkdownPostProcessorContext
2626
) => void;
27-
getAdmonitionElement: (
28-
type: string,
29-
title: string,
30-
collapse?: string
31-
) => HTMLElement;
3227
}

manifest.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"id": "obsidian-admonition",
33
"name": "Admonition",
4-
"version": "3.3.0",
4+
"version": "3.3.1",
55
"minAppVersion": "0.11.0",
66
"description": "Admonition block-styled content for Obsidian.md",
77
"author": "Jeremy Valentine",

package.json

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "obsidian-admonition",
3-
"version": "3.3.0",
3+
"version": "3.3.1",
44
"description": "Admonition block-styled content for Obsidian.md",
55
"main": "main.js",
66
"scripts": {
@@ -11,6 +11,7 @@
1111
"author": "Jeremy Valentine",
1212
"license": "MIT",
1313
"devDependencies": {
14+
"@fortawesome/fontawesome-svg-core": "^1.2.35",
1415
"@fortawesome/free-solid-svg-icons": "^5.15.1",
1516
"@rollup/plugin-commonjs": "^15.1.0",
1617
"@rollup/plugin-node-resolve": "^9.0.0",
@@ -23,8 +24,5 @@
2324
"rollup-plugin-css-only": "^3.1.0",
2425
"tslib": "^2.0.3",
2526
"typescript": "^4.0.3"
26-
},
27-
"dependencies": {
28-
"@fortawesome/fontawesome-svg-core": "^1.2.35"
2927
}
3028
}

src/main.css

Lines changed: 17 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,16 @@
33
--admonition-details-icon: url("data:image/svg+xml;charset=utf-8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M8.59 16.58L13.17 12 8.59 7.41 10 6l6 6-6 6-1.41-1.42z'/></svg>");
44
}
55

6-
.use-csv-marker > svg {
6+
.use-csv-marker>svg {
77
color: yellow;
88
margin-right: 8px;
99
}
1010

11+
.setting-item>.admonition {
12+
width: 50%;
13+
margin: 0;
14+
}
15+
1116
.admonition {
1217
margin: 1.5625em 0;
1318
padding: 0;
@@ -26,7 +31,8 @@
2631
font-weight: 700;
2732
background-color: rgba(var(--admonition-color), 0.1);
2833
}
29-
.admonition-title > * {
34+
35+
.admonition-title>* {
3036
display: flex;
3137
justify-content: flex-start;
3238
margin-top: 0 !important;
@@ -46,7 +52,7 @@
4652
display: none;
4753
}
4854

49-
.admonition > .admonition-title.no-title + .admonition-content {
55+
.admonition>.admonition-title.no-title+.admonition-content {
5056
margin: 1rem 0;
5157
}
5258

@@ -58,7 +64,8 @@ details.admonition:not([open]) {
5864
padding-bottom: 0;
5965
box-shadow: none;
6066
}
61-
details.admonition > summary {
67+
68+
details.admonition>summary {
6269
outline: none;
6370
list-style: none;
6471
display: block;
@@ -67,19 +74,20 @@ details.admonition > summary {
6774
border-top-right-radius: 0.1rem;
6875
cursor: pointer;
6976
}
70-
details.admonition > summary::-webkit-details-marker {
77+
78+
details.admonition>summary::-webkit-details-marker {
7179
display: none;
7280
}
7381

74-
details.admonition > summary > .collapser {
82+
details.admonition>summary>.collapser {
7583
position: absolute;
7684
top: 50%;
7785
right: 8px;
7886
transform: translateY(-50%);
7987
content: "";
8088
}
8189

82-
details.admonition > summary > .collapser > .handle {
90+
details.admonition>summary>.collapser>.handle {
8391
transform: rotate(0deg);
8492
transition: transform 0.25s;
8593
background-color: currentColor;
@@ -93,7 +101,7 @@ details.admonition > summary > .collapser > .handle {
93101
height: 20px;
94102
}
95103

96-
details.admonition[open] > summary > .collapser > .handle {
104+
details.admonition[open]>summary>.collapser>.handle {
97105
transform: rotate(90deg);
98106
}
99107

@@ -126,4 +134,4 @@ input.is-invalid {
126134

127135
.admonition li.task-list-item.is-checked p {
128136
text-decoration: line-through;
129-
}
137+
}

src/main.ts

Lines changed: 7 additions & 57 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import {
77
Plugin
88
} from "obsidian";
99
import { Admonition, ObsidianAdmonitionPlugin } from "../@types/types";
10-
import { findIconDefinition, icon } from "./icons";
10+
import { getAdmonitionElement } from './util';
1111

1212
import * as CodeMirror from "./codemirror";
1313

@@ -268,7 +268,9 @@ export default class ObsidianAdmonition
268268

269269
let params = Object.fromEntries(
270270
matchedParameters.map((p) =>
271-
p.split(/:\s?/).map((s) => s.trim())
271+
{
272+
let [, param, rest] = p.match(/^\b(title|collapse)\b:([\s\S]*?)$/)
273+
return [ param.trim(), rest.trim()]}
272274
)
273275
);
274276

@@ -317,9 +319,11 @@ export default class ObsidianAdmonition
317319
* Collapsible -> <details> <summary> Title </summary> <div> Content </div> </details>
318320
* Regular -> <div> <div> Title </div> <div> Content </div> </div>
319321
*/
320-
let admonitionElement = this.getAdmonitionElement(
322+
let admonitionElement = getAdmonitionElement(
321323
type,
322324
title,
325+
this.admonitions[type].icon,
326+
this.admonitions[type].color,
323327
collapse
324328
);
325329

@@ -402,60 +406,6 @@ export default class ObsidianAdmonition
402406
el.replaceWith(pre);
403407
}
404408
}
405-
getAdmonitionElement(
406-
type: string,
407-
title: string,
408-
collapse?: string
409-
): HTMLElement {
410-
let admonition,
411-
titleEl,
412-
attrs: { style: string; open?: string } = {
413-
style: `--admonition-color: ${this.admonitions[type].color};`
414-
};
415-
if (collapse) {
416-
if (collapse === "open") {
417-
attrs.open = "open";
418-
}
419-
admonition = createEl("details", {
420-
cls: `admonition admonition-${type}`,
421-
attr: attrs
422-
});
423-
titleEl = admonition.createEl("summary", {
424-
cls: `admonition-title ${
425-
!title.trim().length ? "no-title" : ""
426-
}`
427-
});
428-
} else {
429-
admonition = createDiv({
430-
cls: `admonition admonition-${type}`,
431-
attr: attrs
432-
});
433-
titleEl = admonition.createDiv({
434-
cls: `admonition-title ${
435-
!title.trim().length ? "no-title" : ""
436-
}`
437-
});
438-
}
439-
440-
let titleContentEl = createDiv("title-content");
441-
MarkdownRenderer.renderMarkdown(title, titleContentEl, "", null);
442-
443-
const iconEl = createDiv("admonition-title-icon");
444-
iconEl.appendChild(
445-
icon(
446-
findIconDefinition({
447-
iconName: this.admonitions[type].icon
448-
})
449-
).node[0]
450-
);
451-
titleContentEl.children[0].prepend(iconEl);
452-
titleEl.appendChild(titleContentEl.children[0]);
453-
454-
if (collapse) {
455-
titleEl.createDiv("collapser").createDiv("handle");
456-
}
457-
return admonition;
458-
}
459409
async onunload() {
460410
console.log("Obsidian Admonition unloaded");
461411

0 commit comments

Comments
 (0)