Module:PublicationShowAbstract: Difference between revisions

From MaRDI portal
No edit summary
No edit summary
Line 61: Line 61:
             ['margin'] = '10px 0',
             ['margin'] = '10px 0',
         })
         })
 
       
    -- Add inline heading and text
     box:tag('span')
     box:tag('span')
       :tag('strong')
       :tag('strong')
       :wikitext('Abstract: ')
       :wikitext('Abstract: ')
       :done()
       :done()
 
       :wikitext(abstract)
    box:tag('span')
       :wikitext(frame:extensionTag{ name = "math", content = abstract })
        
        
     return tostring(box) .. '<br>'
     return tostring(box) .. '<br>'

Revision as of 11:00, 14 April 2025

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

	-- 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