createPageWithTagsCloud specificTags 
                        pageWithSpecificTags 
                        smallestFontSizeInPercent 
                        biggestFontSizeInPercent 
                        pageTitle 
                        cloudName 
                        specificTemplate = 
    create [pageWithSpecificTags] $ do
        route idRoute
        compile $ do
            let renderedCloud = \_ -> renderTagCloud smallestFontSizeInPercent 
                                                     biggestFontSizeInPercent
                                                     specificTags 
                tagsContext = mconcat [ constField "title" pageTitle 
                                      , field cloudName renderedCloud
                                      , defaultContext
                                      ]
            
            makeItem "" >>= loadAndApplyTemplate specificTemplate tagsContext
                        >>= loadAndApplyTemplate "templates/default.html" tagsContext
                        >>= relativizeUrls

-- Формируем страницу с облаком тематических тегов.
createPageWithAllTags :: TagsReader
createPageWithAllTags = do
    tagsAndAuthors <- ask
    lift $ createPageWithTagsCloud (fst tagsAndAuthors) 
                                   "tags.html" 
                                   110 
                                   220 
                                   "Темы публикаций"
                                   "tagsCloud"
                                   "templates/tags.html"
    return ()

-- Формируем страницу 
createPageWithTagsCloud :: Tags 
                        -> Identifier
                        -> Double
                        -> Double
                        -> String 
                        -> String
                        -> Identifier
                        -> Rules ()
createPageWithTagsCloud specificTags 
                        pageWithSpecificTags 
                        smallestFontSizeInPercent 
                        biggestFontSizeInPercent 
                        pageTitle 
                        cloudName 
                        specificTemplate = 
    create [pageWithSpecificTags] $ do
        route idRoute
        compile $ do
            let renderedCloud = \_ -> renderTagCloud smallestFontSizeInPercent 
                                                     biggestFontSizeInPercent
                                                     specificTags 
                tagsContext = mconcat [ constField "title" pageTitle 
                                      , field cloudName renderedCloud
                                      , defaultContext
                                      ]
            
            makeItem "" >>= loadAndApplyTemplate specificTemplate tagsContext
                        >>= loadAndApplyTemplate "templates/default.html" tagsContext
                        >>= relativizeUrls

-- Формируем страницу с облаком тематических тегов.
createPageWithTagsCloud specificTags 
                        pageWithSpecificTags 
                        smallestFontSizeInPercent 
                        biggestFontSizeInPercent 
                        pageTitle 
                        cloudName 
                        specificTemplate = 
    create [pageWithSpecificTags] $ do
        route idRoute
        compile $ do
            let renderedCloud = \_ -> renderTagCloud smallestFontSizeInPercent 
                                                     biggestFontSizeInPercent
                                                     specificTags 
                tagsContext = mconcat [ constField "title" pageTitle 
                                      , field cloudName renderedCloud
                                      , defaultContext
                                      ]
            
            makeItem "" >>= loadAndApplyTemplate specificTemplate tagsContext
                        >>= loadAndApplyTemplate "templates/default.html" tagsContext
                        >>= relativizeUrls

-- Формируем страницу с облаком тематических тегов.