mirror of
https://github.com/penpot/penpot-exporter-figma-plugin.git
synced 2024-12-22 13:43:03 -05:00
881ccabe86
* fixes in text nodes * fix comment * allow design.penpot.app * wip * wip * add position data * wip agaaain * added translate growtype * use a random url just to get a 404 on gfonts call * leave the config, just in case someone wants to try it * translated line height & letter spacing; Created new type for text positionData * text strokes * several fixes * compiled penpot lib with fix * updated penpot lib * fix lint * remove proxy * correctly translate font style * fix grow type to reflect vertical trim * Fix font segments * remove comment * changeset --------- Co-authored-by: Alex Sánchez <sion333@gmail.com>
59 lines
1.5 KiB
TypeScript
59 lines
1.5 KiB
TypeScript
import {
|
|
transformBlend,
|
|
transformDimensionAndPosition,
|
|
transformEffects,
|
|
transformFills,
|
|
transformProportion,
|
|
transformSceneNode,
|
|
transformStrokes,
|
|
transformTextStyle
|
|
} from '@plugin/transformers/partials';
|
|
import {
|
|
translateGrowType,
|
|
translateStyledTextSegments,
|
|
translateVerticalAlign
|
|
} from '@plugin/translators';
|
|
|
|
import { TextShape } from '@ui/lib/types/text/textShape';
|
|
|
|
export const transformTextNode = (node: TextNode, baseX: number, baseY: number): TextShape => {
|
|
const styledTextSegments = node.getStyledTextSegments([
|
|
'fontName',
|
|
'fontSize',
|
|
'fontWeight',
|
|
'lineHeight',
|
|
'letterSpacing',
|
|
'textCase',
|
|
'textDecoration',
|
|
'fills'
|
|
]);
|
|
|
|
return {
|
|
type: 'text',
|
|
name: node.name,
|
|
content: {
|
|
type: 'root',
|
|
verticalAlign: translateVerticalAlign(node.textAlignVertical),
|
|
children: [
|
|
{
|
|
type: 'paragraph-set',
|
|
children: [
|
|
{
|
|
type: 'paragraph',
|
|
children: translateStyledTextSegments(node, styledTextSegments),
|
|
...(styledTextSegments.length ? transformTextStyle(node, styledTextSegments[0]) : {}),
|
|
...transformFills(node)
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
growType: translateGrowType(node),
|
|
...transformDimensionAndPosition(node, baseX, baseY),
|
|
...transformEffects(node),
|
|
...transformSceneNode(node),
|
|
...transformBlend(node),
|
|
...transformProportion(node),
|
|
...transformStrokes(node)
|
|
};
|
|
};
|