Jump to content
Toggle menu
  • 36 articles
  • 9 files
  • 1 users
  • 375 edits
Paracosm
Toggle preferences menu
Toggle personal menu
Not logged in
Your IP address will be publicly visible if you make any edits.

Module:Mainpage/Progress: Difference between revisions

From Paracosm
mNo edit summary
mNo edit summary
 
(4 intermediate revisions by the same user not shown)
Line 2: Line 2:


local cfg = require('Module:Mainpage/Config')
local cfg = require('Module:Mainpage/Config')
local badge = require('Module:BadgeLua')
local buttonLua = require('Module:ButtonLua')
local p = {}
local p = {}


Line 11: Line 14:
     item:tag('div')
     item:tag('div')
         :addClass('home-progress__label')
         :addClass('home-progress__label')
         :text(label)
         :wikitext(label)
end
end


Line 28: Line 31:
     heading:tag('div')
     heading:tag('div')
         :addClass('home-kicker')
         :addClass('home-kicker')
         :text('Book Progress')
         :wikitext('Book Progress')
     heading:tag('span')
     heading:tag('span')
         :addClass('home-progress__status')
         :addClass('home-feat__badge-row')
         :text('In progress')
         :wikitext(badge.render({ text = 'Drafting', class = 'home-feat__badge' }))


     pad:tag('div')
     pad:tag('div')
Line 41: Line 44:
     statistic(stats, progress.chapter, 'Current chapter')
     statistic(stats, progress.chapter, 'Current chapter')
     statistic(stats, progress.wordCount, 'Words written')
     statistic(stats, progress.wordCount, 'Words written')
   
    pad:tag('div'):addClass('home-btn--wide'):wikitext(buttonLua.render({
label = "Read",
url = progress.url,
size = 'large',
}))
   
    local frame = mw.getCurrentFrame()
local styles = frame:extensionTag({
name = 'templatestyles',
args = { src = 'Module:Mainpage/Progress/styles.css' },
})


     return tostring(card)
     return styles .. tostring(card)
end
end


return p
return p

Latest revision as of 16:48, 11 November 2026

Documentation for this module may be created at Module:Mainpage/Progress/doc

require('strict')

local cfg = require('Module:Mainpage/Config')
local badge = require('Module:BadgeLua')
local buttonLua = require('Module:ButtonLua')

local p = {}

local function statistic(parent, value, label)
    local item = parent:tag('div'):addClass('home-progress__stat')
    item:tag('div')
        :addClass('home-progress__value')
        :wikitext(tostring(value or '—'))
    item:tag('div')
        :addClass('home-progress__label')
        :wikitext(label)
end

function p.render()
    local progress = cfg.section('progress')
    local card = mw.html.create('div')
        :addClass('t-card')
        :addClass('home-card--aside')
        :addClass('home-progress')

    local pad = card:tag('div')
        :addClass('home-pad')
        :addClass('home-progress__inner')

    local heading = pad:tag('div'):addClass('home-progress__heading')
    heading:tag('div')
        :addClass('home-kicker')
        :wikitext('Book Progress')
    heading:tag('span')
        :addClass('home-feat__badge-row')
        :wikitext(badge.render({ text = 'Drafting', class = 'home-feat__badge' }))

    pad:tag('div')
        :addClass('home-feat__title')
        :addClass('home-progress__title')
        :wikitext(progress.book or 'Untitled')

    local stats = pad:tag('div'):addClass('home-progress__stats')
    statistic(stats, progress.chapter, 'Current chapter')
    statistic(stats, progress.wordCount, 'Words written')
    
    pad:tag('div'):addClass('home-btn--wide'):wikitext(buttonLua.render({
		label = "Read",
		url = progress.url,
		size = 'large',
	}))
    
    local frame = mw.getCurrentFrame()
	local styles = frame:extensionTag({
		name = 'templatestyles',
		args = { src = 'Module:Mainpage/Progress/styles.css' },
	})

    return styles .. tostring(card)
end

return p
Last modified