fix links in keynote

This commit is contained in:
Júlio César Batista 2023-04-10 10:35:54 -03:00
parent da14037466
commit 7c06d1bc2e
No known key found for this signature in database
GPG key ID: 10C4B861BF314878
2 changed files with 41 additions and 15 deletions

View file

@ -241,25 +241,24 @@ func getAppXml(slides []*Slide, d2version string) string {
return builder.String() return builder.String()
} }
func getLinkXml(link *Link) string { //go:embed xmlTemplates/link.xml
var builder strings.Builder var linkTemplate string
builder.WriteString("<p:sp><p:nvSpPr>") func getLinkXml(link *Link) string {
builder.WriteString(fmt.Sprintf(`<p:cNvPr id="%d" name="%s">`, link.Index, link.Tooltip))
var linkAction string var linkAction string
if !link.isExternal() { if !link.isExternal() {
linkAction = "ppaction://hlinksldjump" linkAction = "ppaction://hlinksldjump"
} }
builder.WriteString( return fmt.Sprintf(
fmt.Sprintf(`<a:hlinkClick r:id="%s" action="%s" tooltip="%s" history="1" />`, linkTemplate,
link.Id, link.Index,
linkAction, link.Tooltip,
link.Tooltip, link.Id,
), linkAction,
link.Tooltip,
link.Left,
link.Top,
link.Width,
link.Height,
) )
builder.WriteString("</p:cNvPr><p:cNvSpPr /><p:nvPr /></p:nvSpPr><p:spPr><a:xfrm>")
builder.WriteString(fmt.Sprintf(`<a:off x="%d" y="%d" />`, link.Left, link.Top))
builder.WriteString(fmt.Sprintf(`<a:ext cx="%d" cy="%d" />`, link.Width, link.Height))
builder.WriteString(`</a:xfrm><a:prstGeom prst="rect"><a:avLst /></a:prstGeom><a:noFill /><a:ln><a:noFill /></a:ln></p:spPr></p:sp>`)
return builder.String()
} }

View file

@ -0,0 +1,27 @@
<p:sp>
<p:nvSpPr>
<p:cNvPr id="%d" name="%s">
<a:hlinkClick r:id="%s" action="%s" tooltip="%s" history="1" invalidUrl="" tgtFrame=""
highlightClick="0" endSnd="0" />
</p:cNvPr>
<p:cNvSpPr />
<p:nvPr />
</p:nvSpPr>
<p:spPr>
<a:xfrm>
<a:off x="%d" y="%d" />
<a:ext cx="%d" cy="%d" />
</a:xfrm>
<a:prstGeom prst="rect">
<a:avLst />
</a:prstGeom>
<a:solidFill>
<a:srgbClr val="FFFFFF">
<a:alpha val="0" />
</a:srgbClr>
</a:solidFill>
<a:ln w="12700">
<a:miter lim="400000" />
</a:ln>
</p:spPr>
</p:sp>