shikensu haskell
v0.4.1
شكرا جزيلا
تسلسل
تشغيل سلسلة من الوظائف على تمثيلات الملفات في الذاكرة.
أنشئ مواقع ويب ثابتة بسهولة ، دون المطابقة لبنية معينة.
import Shikensu
import Shikensu.Contrib ( clone , copyPropsToMetadata , permalink , renameExt , renderContent )
import Shikensu.Contrib.IO ( read , write )
import Data.ByteString ( ByteString )
import Flow
import Prelude hiding ( read )
import qualified Data.Text.Encoding as Text ( decodeUtf8 , encodeUtf8 )
main :: IO Dictionary
main =
-- This IO operation will read the files matching the glob pattern `src/**/*.md`,
-- transform them (see the `flow` function) and then write them to the `build` directory.
dictionary_io
dictionary_io :: IO Dictionary
dictionary_io =
Shikensu. listRelative [ " src/**/*.md " ] " ./ "
>>= read
>>= flow
>>= write " ./build "
flow :: Dictionary -> IO Dictionary
flow =
renameExt " .md " " .html "
.> permalink " index "
.> clone " index.html " " 200.html "
.> copyPropsToMetadata
.> renderContent markdownRenderer
.> return
markdownRenderer :: Definition -> Maybe ByteString
markdownRenderer def =
content def
|> fmap Text. decodeUtf8
|> fmap Markdown. render
|> fmap Text. encodeUtf8
يسرد هذا جميع ملفات تخفيض السعر في الدليل ./src
ثم يقوم بما يلي بهذا الترتيب الدقيق:
.html
.%matched_path/%file_basename/index.%file_extension
.index.html
.content
لكل تعريف (في هذه الحالة نقوم بعرض تخفيض السعر)../build
.لأن هذا يتيح لي تحديد سير العمل بسهولة لإنشاء موقع ويب ثابت، وبشكل أكثر تحديدًا: