Skip to content

Commit 1981335

Browse files
committed
Enable writing facts as template calls, using first category as template name
1 parent 1133850 commit 1981335

1 file changed

Lines changed: 37 additions & 11 deletions

File tree

main.go

Lines changed: 37 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,8 @@ func main() {
6969
//wikiPagePrinter := NewWikiPagePrinter()
7070
//pipeRunner.AddProcess(wikiPagePrinter)
7171

72-
xmlCreator := NewMWXMLCreator()
72+
useTemplates := true
73+
xmlCreator := NewMWXMLCreator(useTemplates)
7374
pipeRunner.AddProcess(xmlCreator)
7475

7576
printer := NewStringPrinter()
@@ -475,14 +476,16 @@ func (p *TripleAggregateToWikiPageConverter) convertUriToWikiTitle(uri string, u
475476
// --------------------------------------------------------------------------------
476477

477478
type MWXMLCreator struct {
478-
InWikiPage chan *WikiPage
479-
Out chan string
479+
InWikiPage chan *WikiPage
480+
Out chan string
481+
UseTemplates bool
480482
}
481483

482-
func NewMWXMLCreator() *MWXMLCreator {
484+
func NewMWXMLCreator(useTemplates bool) *MWXMLCreator {
483485
return &MWXMLCreator{
484-
InWikiPage: make(chan *WikiPage, BUFSIZE),
485-
Out: make(chan string, BUFSIZE),
486+
InWikiPage: make(chan *WikiPage, BUFSIZE),
487+
Out: make(chan string, BUFSIZE),
488+
UseTemplates: useTemplates,
486489
}
487490
}
488491

@@ -519,12 +522,35 @@ func (p *MWXMLCreator) Run() {
519522

520523
wikiText := ""
521524

522-
for _, fact := range page.Facts {
523-
wikiText += fmtFact(fact.Property, fact.Value)
524-
}
525+
if p.UseTemplates && len(page.Categories) > 0 { // We need at least one category, as to name the (to-be) template
526+
wikiText += "{{" + page.Categories[0] + "\n" // TODO: What to do when we have multipel categories?
525527

526-
for _, cat := range page.Categories {
527-
wikiText += fmtCategory(cat)
528+
// Add facts as parameters to the template
529+
for _, fact := range page.Facts {
530+
wikiText += "|" + fact.Property + "=" + fact.Value + "\n"
531+
}
532+
533+
// Add categories as multi-valued call to the "categories" value of the template
534+
wikiText += "|categories="
535+
for i, cat := range page.Categories {
536+
if i == 0 {
537+
wikiText += cat
538+
} else {
539+
wikiText += "," + cat
540+
}
541+
}
542+
543+
wikiText += "\n}}"
544+
} else {
545+
// Add fact statements
546+
for _, fact := range page.Facts {
547+
wikiText += fmtFact(fact.Property, fact.Value)
548+
}
549+
550+
// Add category statements
551+
for _, cat := range page.Categories {
552+
wikiText += fmtCategory(cat)
553+
}
528554
}
529555

530556
xmlData := fmt.Sprintf(wikiXmlTpl, page.Title, pageTypeToMWNamespace[page.Type], time.Now().Format("2006-01-02T15:04:05Z"), wikiText)

0 commit comments

Comments
 (0)