Module:PublicationShowAbstract
From MaRDI portal
Documentation for this module may be created at Module:PublicationShowAbstract/doc
-- Required module containing helper methods
local helper = require('Module:HelperMethods')
-- Required modules for SPARQL queries and HTML table generation
local sparql = require('SPARQL')
local mwHtml = require('mw.html')
local p = {}
function p.queryAbstractDB(QID)
local abstract = ""
if not QID or QID == '' then
return abstract
end
local safeID = tostring(QID):gsub("^Q", "")
mw.log(safeID)
local row = mw.ext.externaldata.getDbData {
db = "AbstractDB",
parameters = safeID
}
-- mw.log( row )
if row then
abstract = row.abstract
-- mw.log( abstract )
end
return abstract
end
function p.getAbstractForPaperQID(frame)
-- Retrieve target1 from frame arguments or return error message if not set
local target1 = frame.args[1]
if not target1 or target1 == '' then
return "No records found"
end
local abstract = p.queryAbstractDB(target1)
-- mw.log(abstract)
if not abstract or abstract == '' then
return ""
end
-- Replace inline LaTeX in $...$ with <math>...</math>
abstract = abstract:gsub('%$(.-)%$', function(mathContent)
return frame:extensionTag{
name = "math",
content = mathContent
}
end)
-- Create container div
local box = mwHtml.create('div')
:addClass('abstract-box')
:css({
['border'] = '1px solid #ccc',
['border-radius'] = '8px',
['padding'] = '10px',
['background-color'] = '#f9f9f9',
['margin'] = '10px 0',
})
-- Add inline heading and text
box:tag('span')
:tag('strong')
:wikitext('Abstract: ')
:done()
:wikitext(abstract)
return tostring(box) .. '<br>'
end
return p