♻️ Update command name, move styles to styles file, and improve file checking
This commit is contained in:
parent
4b2c3b4aa1
commit
376e2122d7
|
@ -485,11 +485,19 @@ const ClipperCatalog: React.FC<ClipperCatalogProps> = ({ app, plugin }) => {
|
|||
>
|
||||
<path d="M9 13h6m-3-3v6m5 5H7a2 2 0 01-2-2V5a2 2 0 012-2h5.586a1 1 0 01.707.293l5.414 5.414a1 1 0 01.293.707V19a2 2 0 01-2 2z" />
|
||||
</svg>
|
||||
<ArticleTitle
|
||||
file={app.vault.getAbstractFileByPath(article.path) as TFile}
|
||||
content={article.content || ''}
|
||||
title={article.title}
|
||||
/>
|
||||
{(() => {
|
||||
const abstractFile = app.vault.getAbstractFileByPath(article.path);
|
||||
if (abstractFile instanceof TFile) {
|
||||
return (
|
||||
<ArticleTitle
|
||||
file={abstractFile}
|
||||
content={article.content || ''}
|
||||
title={article.title}
|
||||
/>
|
||||
);
|
||||
}
|
||||
return <span>{article.title}</span>;
|
||||
})()}
|
||||
</span>
|
||||
</td>
|
||||
<td className="cc-px-4 cc-py-2 clipper-catalog-muted">
|
||||
|
@ -540,114 +548,6 @@ const ClipperCatalog: React.FC<ClipperCatalogProps> = ({ app, plugin }) => {
|
|||
</div>
|
||||
</div>
|
||||
)}
|
||||
|
||||
<style>{`
|
||||
/* Container styles */
|
||||
.clipper-catalog-advanced {
|
||||
background-color: var(--background-secondary);
|
||||
border: 1px solid var(--background-modifier-border);
|
||||
}
|
||||
|
||||
.clipper-catalog-search {
|
||||
background-color: var(--background-secondary);
|
||||
border: 1px solid var(--background-modifier-border);
|
||||
}
|
||||
|
||||
/* Button styles */
|
||||
.clipper-catalog-button {
|
||||
background-color: var(--interactive-accent) !important;
|
||||
color: var(--text-on-accent) !important;
|
||||
transition: opacity 0.2s ease;
|
||||
}
|
||||
|
||||
.clipper-catalog-button:disabled {
|
||||
opacity: 0.5;
|
||||
cursor: not-allowed;
|
||||
}
|
||||
|
||||
.clipper-catalog-button:hover:not(:disabled) {
|
||||
opacity: 0.9;
|
||||
}
|
||||
|
||||
/* Directory chip styles */
|
||||
.cc-bg-chip {
|
||||
background-color: var(--background-modifier-form-field);
|
||||
}
|
||||
|
||||
.cc-bg-chip-hover {
|
||||
background-color: var(--background-secondary-alt);
|
||||
}
|
||||
|
||||
.cc-text-close-icon {
|
||||
color: var(--background-secondary);
|
||||
}
|
||||
|
||||
/* For dark theme support */
|
||||
.theme-dark .cc-text-close-icon {
|
||||
color: var(--background-primary);
|
||||
}
|
||||
|
||||
/* Table styles */
|
||||
.clipper-catalog-header-row {
|
||||
border-bottom: 1px solid var(--background-modifier-border);
|
||||
}
|
||||
|
||||
.clipper-catalog-header-cell {
|
||||
color: var(--text-normal);
|
||||
}
|
||||
|
||||
.clipper-catalog-header-cell:hover {
|
||||
background-color: var(--background-modifier-hover);
|
||||
}
|
||||
|
||||
.clipper-catalog-row {
|
||||
border-bottom: 1px solid var(--background-modifier-border);
|
||||
}
|
||||
|
||||
.clipper-catalog-row:hover {
|
||||
background-color: var(--background-modifier-hover);
|
||||
}
|
||||
|
||||
/* Text and icon styles */
|
||||
.clipper-catalog-input {
|
||||
color: var(--text-normal);
|
||||
}
|
||||
|
||||
.clipper-catalog-icon,
|
||||
.clipper-catalog-clear-btn,
|
||||
.clipper-catalog-refresh,
|
||||
.clipper-catalog-muted {
|
||||
color: var(--text-muted);
|
||||
}
|
||||
|
||||
.clipper-catalog-title {
|
||||
color: var(--text-normal);
|
||||
}
|
||||
|
||||
/* Tag styles */
|
||||
.clipper-catalog-tag {
|
||||
background-color: var(--interactive-accent);
|
||||
color: var(--text-on-accent);
|
||||
transition: opacity 0.2s ease;
|
||||
}
|
||||
|
||||
.clipper-catalog-tag:hover {
|
||||
opacity: 0.8;
|
||||
}
|
||||
|
||||
/* Link styles */
|
||||
.clipper-catalog-link {
|
||||
color: var(--text-accent);
|
||||
font-size: 0.75rem;
|
||||
padding: 0.25rem 0;
|
||||
transition: opacity 0.2s ease;
|
||||
}
|
||||
|
||||
.clipper-catalog-link:hover {
|
||||
opacity: 0.8;
|
||||
text-decoration: underline;
|
||||
}
|
||||
`}</style>
|
||||
</div>
|
||||
);
|
||||
};
|
||||
|
|
17
src/main.tsx
17
src/main.tsx
|
@ -48,8 +48,8 @@ export default class ObsidianClipperCatalog extends Plugin {
|
|||
|
||||
|
||||
this.addCommand({
|
||||
id: 'open-clipper-catalog',
|
||||
name: 'Open Clipper Catalog',
|
||||
id: 'show-all-clippings',
|
||||
name: 'Show All Clippings',
|
||||
callback: () => {
|
||||
// Get active leaf or create new one in center
|
||||
const leaf = this.app.workspace.getLeaf('tab');
|
||||
|
@ -108,10 +108,6 @@ class ClipperCatalogSettingTab extends PluginSettingTab {
|
|||
cls: 'advanced-settings-name'
|
||||
});
|
||||
|
||||
// Add some styling to the heading element
|
||||
settingsHeader.style.padding = '10px 0';
|
||||
settingsHeader.style.fontWeight = 'bold';
|
||||
|
||||
new Setting(containerEl)
|
||||
.setName('Property Name')
|
||||
.setDesc('Specify which frontmatter property contains your clipped URLs (e.g., "source", "url", "link").')
|
||||
|
@ -121,14 +117,5 @@ class ClipperCatalogSettingTab extends PluginSettingTab {
|
|||
this.plugin.settings.sourcePropertyName = value;
|
||||
await this.plugin.saveSettings();
|
||||
}));
|
||||
|
||||
// Add CSS
|
||||
containerEl.createEl('style', {
|
||||
text: `
|
||||
.text-sm{
|
||||
font-size:.75rem;
|
||||
}
|
||||
`
|
||||
});
|
||||
}
|
||||
}
|
111
src/styles.css
111
src/styles.css
|
@ -12,6 +12,11 @@
|
|||
}
|
||||
}
|
||||
|
||||
/* Text utilities */
|
||||
.text-sm {
|
||||
font-size: .75rem;
|
||||
}
|
||||
|
||||
/* Scoped plugin styles */
|
||||
.clipper-catalog-plugin {
|
||||
/* Add minimal reset only for our plugin elements */
|
||||
|
@ -107,3 +112,109 @@
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* Container styles */
|
||||
.clipper-catalog-advanced {
|
||||
background-color: var(--background-secondary);
|
||||
border: 1px solid var(--background-modifier-border);
|
||||
}
|
||||
|
||||
.clipper-catalog-search {
|
||||
background-color: var(--background-secondary);
|
||||
border: 1px solid var(--background-modifier-border);
|
||||
}
|
||||
|
||||
/* Button styles */
|
||||
.clipper-catalog-button {
|
||||
background-color: var(--interactive-accent) !important;
|
||||
color: var(--text-on-accent) !important;
|
||||
transition: opacity 0.2s ease;
|
||||
}
|
||||
|
||||
.clipper-catalog-button:disabled {
|
||||
opacity: 0.5;
|
||||
cursor: not-allowed;
|
||||
}
|
||||
|
||||
.clipper-catalog-button:hover:not(:disabled) {
|
||||
opacity: 0.9;
|
||||
}
|
||||
|
||||
/* Directory chip styles */
|
||||
.cc-bg-chip {
|
||||
background-color: var(--background-modifier-form-field);
|
||||
}
|
||||
|
||||
.cc-bg-chip-hover {
|
||||
background-color: var(--background-secondary-alt);
|
||||
}
|
||||
|
||||
.cc-text-close-icon {
|
||||
color: var(--background-secondary);
|
||||
}
|
||||
|
||||
/* For dark theme support */
|
||||
.theme-dark .cc-text-close-icon {
|
||||
color: var(--background-primary);
|
||||
}
|
||||
|
||||
/* Table styles */
|
||||
.clipper-catalog-header-row {
|
||||
border-bottom: 1px solid var(--background-modifier-border);
|
||||
}
|
||||
|
||||
.clipper-catalog-header-cell {
|
||||
color: var(--text-normal);
|
||||
}
|
||||
|
||||
.clipper-catalog-header-cell:hover {
|
||||
background-color: var(--background-modifier-hover);
|
||||
}
|
||||
|
||||
.clipper-catalog-row {
|
||||
border-bottom: 1px solid var(--background-modifier-border);
|
||||
}
|
||||
|
||||
.clipper-catalog-row:hover {
|
||||
background-color: var(--background-modifier-hover);
|
||||
}
|
||||
|
||||
/* Text and icon styles */
|
||||
.clipper-catalog-input {
|
||||
color: var(--text-normal);
|
||||
}
|
||||
|
||||
.clipper-catalog-icon,
|
||||
.clipper-catalog-clear-btn,
|
||||
.clipper-catalog-refresh,
|
||||
.clipper-catalog-muted {
|
||||
color: var(--text-muted);
|
||||
}
|
||||
|
||||
.clipper-catalog-title {
|
||||
color: var(--text-normal);
|
||||
}
|
||||
|
||||
/* Tag styles */
|
||||
.clipper-catalog-tag {
|
||||
background-color: var(--interactive-accent);
|
||||
color: var(--text-on-accent);
|
||||
transition: opacity 0.2s ease;
|
||||
}
|
||||
|
||||
.clipper-catalog-tag:hover {
|
||||
opacity: 0.8;
|
||||
}
|
||||
|
||||
/* Link styles */
|
||||
.clipper-catalog-link {
|
||||
color: var(--text-accent);
|
||||
font-size: 0.75rem;
|
||||
padding: 0.25rem 0;
|
||||
transition: opacity 0.2s ease;
|
||||
}
|
||||
|
||||
.clipper-catalog-link:hover {
|
||||
opacity: 0.8;
|
||||
text-decoration: underline;
|
||||
}
|
122
styles.css
122
styles.css
|
@ -383,6 +383,12 @@
|
|||
}
|
||||
}
|
||||
|
||||
/* Text utilities */
|
||||
|
||||
.text-sm {
|
||||
font-size: .75rem;
|
||||
}
|
||||
|
||||
/* Scoped plugin styles */
|
||||
|
||||
.clipper-catalog-plugin {
|
||||
|
@ -468,6 +474,120 @@
|
|||
}
|
||||
}
|
||||
|
||||
/* Container styles */
|
||||
|
||||
.clipper-catalog-advanced {
|
||||
background-color: var(--background-secondary);
|
||||
border: 1px solid var(--background-modifier-border);
|
||||
}
|
||||
|
||||
.clipper-catalog-search {
|
||||
background-color: var(--background-secondary);
|
||||
border: 1px solid var(--background-modifier-border);
|
||||
}
|
||||
|
||||
/* Button styles */
|
||||
|
||||
.clipper-catalog-button {
|
||||
background-color: var(--interactive-accent) !important;
|
||||
color: var(--text-on-accent) !important;
|
||||
transition: opacity 0.2s ease;
|
||||
}
|
||||
|
||||
.clipper-catalog-button:disabled {
|
||||
opacity: 0.5;
|
||||
cursor: not-allowed;
|
||||
}
|
||||
|
||||
.clipper-catalog-button:hover:not(:disabled) {
|
||||
opacity: 0.9;
|
||||
}
|
||||
|
||||
/* Directory chip styles */
|
||||
|
||||
.cc-bg-chip {
|
||||
background-color: var(--background-modifier-form-field);
|
||||
}
|
||||
|
||||
.cc-bg-chip-hover {
|
||||
background-color: var(--background-secondary-alt);
|
||||
}
|
||||
|
||||
.cc-text-close-icon {
|
||||
color: var(--background-secondary);
|
||||
}
|
||||
|
||||
/* For dark theme support */
|
||||
|
||||
.theme-dark .cc-text-close-icon {
|
||||
color: var(--background-primary);
|
||||
}
|
||||
|
||||
/* Table styles */
|
||||
|
||||
.clipper-catalog-header-row {
|
||||
border-bottom: 1px solid var(--background-modifier-border);
|
||||
}
|
||||
|
||||
.clipper-catalog-header-cell {
|
||||
color: var(--text-normal);
|
||||
}
|
||||
|
||||
.clipper-catalog-header-cell:hover {
|
||||
background-color: var(--background-modifier-hover);
|
||||
}
|
||||
|
||||
.clipper-catalog-row {
|
||||
border-bottom: 1px solid var(--background-modifier-border);
|
||||
}
|
||||
|
||||
.clipper-catalog-row:hover {
|
||||
background-color: var(--background-modifier-hover);
|
||||
}
|
||||
|
||||
/* Text and icon styles */
|
||||
|
||||
.clipper-catalog-input {
|
||||
color: var(--text-normal);
|
||||
}
|
||||
|
||||
.clipper-catalog-icon,
|
||||
.clipper-catalog-clear-btn,
|
||||
.clipper-catalog-refresh,
|
||||
.clipper-catalog-muted {
|
||||
color: var(--text-muted);
|
||||
}
|
||||
|
||||
.clipper-catalog-title {
|
||||
color: var(--text-normal);
|
||||
}
|
||||
|
||||
/* Tag styles */
|
||||
|
||||
.clipper-catalog-tag {
|
||||
background-color: var(--interactive-accent);
|
||||
color: var(--text-on-accent);
|
||||
transition: opacity 0.2s ease;
|
||||
}
|
||||
|
||||
.clipper-catalog-tag:hover {
|
||||
opacity: 0.8;
|
||||
}
|
||||
|
||||
/* Link styles */
|
||||
|
||||
.clipper-catalog-link {
|
||||
color: var(--text-accent);
|
||||
font-size: 0.75rem;
|
||||
padding: 0.25rem 0;
|
||||
transition: opacity 0.2s ease;
|
||||
}
|
||||
|
||||
.clipper-catalog-link:hover {
|
||||
opacity: 0.8;
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
.hover\:cc-bg-blue-200:hover {
|
||||
--tw-bg-opacity: 1;
|
||||
background-color: rgb(191 219 254 / var(--tw-bg-opacity, 1));
|
||||
|
@ -555,4 +675,4 @@
|
|||
.dark\:hover\:cc-text-gray-300:hover:is(.cc-dark *) {
|
||||
--tw-text-opacity: 1;
|
||||
color: rgb(209 213 219 / var(--tw-text-opacity, 1));
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue