×
Create a new article
Write your page title here:
We currently have 1,721 articles on The Quelmar Wiki. Type your article name above or click on one of the titles below and start writing!



The Quelmar Wiki

Module:Wordcount: Difference between revisions

No edit summary
Tag: Reverted
No edit summary
 
(6 intermediate revisions by the same user not shown)
Line 10: Line 10:
return "Article content not available"
return "Article content not available"
end
end
-- Replace HTML entities
content = mw.text.unstrip(content) -- Unstrip markers
content = mw.text.killMarkers(content) -- Remove markers left after unstrip
content = mw.text.decode(content) -- Decode HTML entities



-- Remove comments and some special formatting
-- Remove comments and some special formatting
content = content:gsub("<!%-%-.-%-%->", "") -- Remove HTML comments
content = content:gsub("%[%[.-|", "") -- Remove wiki links labellink brackets
content = content:gsub("%-%-%[=%[.-%]%=%]", "") -- Remove Lua long comments
content = content:gsub("%-%-.*", "") -- Remove single line comments
content = content:gsub("%[%[File:.-|%[%[Image:.-|%[%[Media:.-", "") -- Remove file, image, media
content = content:gsub("%[%[.-|", "") -- Remove wiki links label
content = content:gsub("%[%[", ""):gsub("%]%]", "") -- Remove wiki link brackets
content = content:gsub("{{.-}}", "") -- Remove template calls
content = content:gsub("{{.-}}", "") -- Remove template calls
content = content:gsub("======", "") -- Remove level 6 headers

content = content:gsub("=====", "") -- Remove level 5 headers
-- Replace HTML entities
content = mw.text.unstrip(content)
content = content:gsub("====", "") -- Remove level 4 headers
content = mw.text.decode(content)
content = content:gsub("===", "") -- Remove level 3 headers
content = content:gsub("==", "") -- Remove level 2 headers
content = content:gsub("=", "") -- Remove level 1 headers headers


-- Count the words
-- Count the words

Latest revision as of 18:44, 24 January 2024

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

-- Module:WordCount
local p = {}

function p.count(frame)
    -- Get the content of the current article
    local content = mw.title.getCurrentTitle():getContent()

    -- Check if content is not nil
    if content == nil then
        return "Article content not available"
    end
    
        -- Replace HTML entities
    content = mw.text.unstrip(content)  -- Unstrip markers
    content = mw.text.killMarkers(content)  -- Remove markers left after unstrip
    content = mw.text.decode(content)  -- Decode HTML entities


    -- Remove comments and some special formatting
    content = content:gsub("%[%[.-|", "") -- Remove wiki links labellink brackets
    content = content:gsub("{{.-}}", "") -- Remove template calls
    content = content:gsub("======", "") -- Remove level 6 headers
    content = content:gsub("=====", "") -- Remove level 5 headers
    content = content:gsub("====", "") -- Remove level 4 headers
    content = content:gsub("===", "") -- Remove level 3 headers
    content = content:gsub("==", "") -- Remove level 2 headers
    content = content:gsub("=", "") -- Remove level 1 headers headers

    -- Count the words
    local _, wordCount = string.gsub(content, "%S+", "")

    -- Return the word count
    return tostring(wordCount) .. " words"
end

return p
Cookies help us deliver our services. By using our services, you agree to our use of cookies. (Hi Margarita's Table. 🇩🇪)
Cookies help us deliver our services. By using our services, you agree to our use of cookies. (Hi Margarita's Table. 🇩🇪)