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
Line 2: Line 2:


local cfg = require('Module:Mainpage/Config')
local cfg = require('Module:Mainpage/Config')
local p = {}


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')
        :text(label)
end


function p.render()
function p.render()
local card = mw.html.create('div'):addClass('t-card'):addClass('home-card--aside')
    local progress = cfg.section('progress')
    local card = mw.html.create('div')
-- The scroll fade's frame; the attribute names its scroller. See
        :addClass('t-card')
-- Module:Mainpage/cards.css for why the two are different elements.
        :addClass('home-card--aside')
local pad = card:tag('div')
        :addClass('home-progress')
:addClass('home-pad')
 
:addClass('home-patch')
    local pad = card:tag('div')
:addClass('home-scrollfade')
        :addClass('home-pad')
:attr('data-gadget-mainpage-scrollfade', '.home-patch__list')
        :addClass('home-progress__inner')
 
    local heading = pad:tag('div'):addClass('home-progress__heading')
    heading:tag('div')
        :addClass('home-kicker')
        :text('Book Progress')
    heading:tag('span')
        :addClass('home-progress__status')
        :text('In progress')
 
    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-kicker'):wikitext("Book Progress")
    return tostring(card)
pad:tag("div"):addClass("home-feat__title"):wikitext(cfg.section('progress').book)
pad:tag("div"):addClass('home-patch__list'):wikitext(cfg.section('progress').chapter)
pad:tag("div"):addClass('home-patch__list'):wikitext(cfg.section('progress').wordCount)
return tostring(card)
end
end


return p
return p

Revision as of 16:34, 11 November 2026

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

require('strict')

local cfg = require('Module:Mainpage/Config')
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')
        :text(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')
        :text('Book Progress')
    heading:tag('span')
        :addClass('home-progress__status')
        :text('In progress')

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

    return tostring(card)
end

return p
Last modified