fix: icons

This commit is contained in:
2026-03-13 11:53:41 +08:00
parent 9e8d4e6388
commit 97923c8d35
6 changed files with 20 additions and 14 deletions
+3 -1
View File
@@ -4,6 +4,7 @@ import { getLayerStyle } from './hooks/dimensions';
import type { CardData } from './types';
import {DeckStore} from "./hooks/deckStore";
import {processVariables} from "../utils/csv-loader";
import {resolvePath} from "../utils/path";
export interface CardLayerProps {
cardData: CardData;
@@ -16,7 +17,8 @@ export function CardLayer(props: CardLayerProps) {
const showBounds = () => props.store.state.isEditing;
function renderLayerContent(content: string) {
return parseMarkdown(processVariables(content, props.cardData, props.store.state.cards), props.cardData.iconPath) as string;
const iconPath = resolvePath(props.store.state.cards.sourcePath, props.cardData.iconPath);
return parseMarkdown(processVariables(content, props.cardData, props.store.state.cards), iconPath) as string;
}
return (
<For each={layers()}>
+8 -8
View File
@@ -74,7 +74,7 @@ export interface DeckActions {
setPadding: (padding: number) => void;
// 数据设置
setCards: (cards: CardData[]) => void;
setCards: (cards: CSV<CardData>) => void;
setActiveTab: (index: number) => void;
updateCardData: (index: number, key: string, value: string) => void;
@@ -139,7 +139,7 @@ export function createDeckStore(
src: initialSrc,
rawSrc: initialSrc,
dimensions: null,
cards: [],
cards: [] as any,
activeTab: 0,
layerConfigs: [],
isEditing: false,
@@ -195,7 +195,7 @@ export function createDeckStore(
updateDimensions();
};
const setCards = (cards: CardData[]) => setState({ cards, activeTab: 0 });
const setCards = (cards: CSV<CardData>) => setState({ cards, activeTab: 0 });
const setActiveTab = (index: number) => setState({ activeTab: index });
const updateCardData = (index: number, key: string, value: string) => {
setState('cards', index, key, value);
@@ -271,20 +271,20 @@ export function createDeckStore(
const layersStr = formatLayers(state.layerConfigs);
const parts = [
`:md-deck[${state.rawSrc || state.src}]`,
`{size="${state.sizeW}x${state.sizeH}"`,
`grid="${state.gridW}x${state.gridH}"`
`{size="${state.sizeW}x${state.sizeH} "`,
`grid="${state.gridW}x${state.gridH} "`
];
// 仅在非默认值时添加 bleed 和 padding
if (state.bleed !== DECK_DEFAULTS.BLEED) {
parts.push(`bleed="${state.bleed}"`);
parts.push(`bleed="${state.bleed} "`);
}
if (state.padding !== DECK_DEFAULTS.PADDING) {
parts.push(`padding="${state.padding}"`);
parts.push(`padding="${state.padding} "`);
}
parts.push(`layers="${layersStr}"}`);
return parts.join(' ');
return parts.join('');
};
const copyCode = async () => {
@@ -57,9 +57,6 @@ export function initLayerConfigs(
): LayerConfig[] {
const parsed = parseLayers(existingLayersStr);
const allProps = Object.keys(data[0] || {}).filter(k => k !== 'label');
if(data.frontmatter){
allProps.push(...Object.keys(data.frontmatter));
}
return allProps.map(prop => {
const existing = parsed.find(l => l.prop === prop);