More languages
More actions
(Created page with "-- Module:ReadingTime local p = {} function p.estimateReadingTime(content) -- Calculate the reading time based on content length local words = mw.ustring.gmatch(content, "%S+") local wordCount = 0 for _ in words do wordCount = wordCount + 1 end -- Define the range of reading speeds local minSpeed = 183 local maxSpeed = 250 -- Calculate reading times for both minimum and maximum speeds local minReadingTime = math.ceil(wordCount / m...") |
No edit summary |
||
Line 3: | Line 3: | ||
local p = {} | local p = {} | ||
function p.estimateReadingTime( | function p.estimateReadingTime(frame) | ||
-- Get the content from the frame parameter | |||
local content = frame.args[1] | |||
-- Ensure that content is a string | |||
if type(content) == "string" then | |||
-- Calculate the reading time based on content length | |||
local words = mw.ustring.gmatch(content, "%S+") | |||
local wordCount = 0 | |||
for _ in words do | |||
wordCount = wordCount + 1 | |||
end | |||
-- Define the range of reading speeds | |||
local minSpeed = 183 | |||
local maxSpeed = 250 | |||
-- Calculate reading times for both minimum and maximum speeds | |||
local minReadingTime = math.ceil(wordCount / maxSpeed) | |||
local maxReadingTime = math.ceil(wordCount / minSpeed) | |||
-- Create the reading time string | |||
local readingTime = "Between " .. minReadingTime .. " and " .. maxReadingTime .. " minutes" | |||
return readingTime | |||
else | |||
return "Error: Invalid content" | |||
end | |||
end | end | ||
return p | return p | ||
Revision as of 14:54, 17 September 2023
-- Module:ReadingTime
local p = {}
function p.estimateReadingTime(frame)
-- Get the content from the frame parameter
local content = frame.args[1]
-- Ensure that content is a string
if type(content) == "string" then
-- Calculate the reading time based on content length
local words = mw.ustring.gmatch(content, "%S+")
local wordCount = 0
for _ in words do
wordCount = wordCount + 1
end
-- Define the range of reading speeds
local minSpeed = 183
local maxSpeed = 250
-- Calculate reading times for both minimum and maximum speeds
local minReadingTime = math.ceil(wordCount / maxSpeed)
local maxReadingTime = math.ceil(wordCount / minSpeed)
-- Create the reading time string
local readingTime = "Between " .. minReadingTime .. " and " .. maxReadingTime .. " minutes"
return readingTime
else
return "Error: Invalid content"
end
end
return p