!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~        None            None None+B%  !"# $% &'()      !"# $% &'()None+234 add newlines everywhere!+add newlines between consecutive text lines"never add newlines#*Settings for parsing of a hamlet document.%HThe value to replace a "!!!" with. Do not include the trailing newline.&Should we add newlines to the output, making it more human-readable? Useful for client-side debugging but may alter browser page layout.'WHow a tag should be closed. Use this to switch between HTML, XHTML or even XML output.(BMapping from short names in "$doctype" statements to full doctype.*True == avoid newlines+bool: does it include params?);Defaults settings: HTML5 doctype and HTML-style empty tags.,FWhen using conditional classes, it will often be a single class, e.g.: <div :isHome:.homepage>If isHome is False, we do not want any class attribute to be present. However, due to combining multiple classes together, the most obvious implementation would produce a class="". The purpose of this function is to work around that. It does so by checking if all the classes on this tag are optional. If so, it will only include the class attribute if at least one conditional is true.-/This funny hack is to allow us to refer to the .i function without requiring the user to have it in scope. See how this function is used in Text.Hamlet.b/0123456789: !"#$%&'(;<=>?@ABCDEFGHIJKLMNO*PQRSTUVWXYZ[\]^_`abc+defghijklmnop)*qrstu,-vwxyz{0/0123456789: !"#$%&'(;<=>?@A`abc+defghn)*-$/01324:98765"! #$%&'(;A@?>=<BCDHGFEINMLKJO_^]\[ZYXWP*QRSTUV`ed+cbafhgijklmnop)*qrstu,-vwxyz{None 234<=BFK5A function generating an +9 given a message translator and a URL rendering function.6A function generating an + given a URL-rendering function.70Convert some value to a list of attribute pairs.LChecks for truth in the left value in each pair in the first argument. If a true exists, then the corresponding right action is performed. Only the first is performed. In there are no true values, then the second argument is performed, if supplied.MvRuns the second argument with the value in the first, if available. Otherwise, runs the third argument, if available.Y|}~,-./0123456789:;<=>?@ABCDEFGHIJKLM4 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLM4+:I;J6=EFG>H5AK78#$%&'("! CD)*,-./01234@B<LM?9C|}~,-./0123456789:;<=>?@ABCDEFGHIJKLMNone+3NOPQRSTUVWXYZ[\]^_`abcdefgNOPQRSTUVWXYZ[\]^_`abcdefgRS\cba`_^]dNQPOefgT[ZYXWVU NQPORST[ZYXWVU\cba`_^]defg72012 Michael Snoyman <michael@snoyman.com>, Jeremy Shaw4BSD-style (see the LICENSE file in the distribution)%Michael Snoyman <michael@snoyman.com> experimentalportableNone 246:=KMj*an RFC1766 / ISO 639-1 language code (eg, fr, en-GB, etc).kthe k4 is used to provide translations for a message typesThe master\ argument exists so that it is possible to provide more than one set of translations for a message type. This is useful if a library provides a default set of translations, but the user of the library wants to provide a different set of translations.mm- is used to convert the value inside #{ } to IThe primary purpose of this class is to allow the value in #{ } to be a  or % rather than forcing it to always be .o,generate translations from translation filesThis function will: 6look in the supplied subdirectory for files ending in .msg/generate a type based on the constructors found create a k instancepcreate k# instance for an existing data-typeq?create an additional set of translations for a type created by oused by o and p to generate a k! and possibly a message data type.hijkl4type that specifies which set of translations to use6acceptable languages in descending order of preferencemessage to translatemno%base name to use for translation type1subdirectory which contains the translation filesdefault translation languagepmaster translation data type%existing type to add translations forpath to translation folderdefault languageqmaster translation data type%existing type to add translations forpath to translation folderdefault languageEgenerate a new datatype from the constructors found in the .msg files%string to append to constructor names!string to append to datatype namebase name of master datatype!base name of translation datatypepath to translation folder default langdatatype constructorvariable names hijklmnopq opqklmnhij!hijklmnopqNone +0234BA transformation applied to the final expression. Most often, this would be used to force the type of the expression to help make more meaningful error messages.Coffeescript, TypeScript, and other languages compiles down to Javascript. Previously we waited until the very end, at the rendering stage to perform this compilation. Lets call is a post-conversion This had the advantage that all Haskell values were inserted first: for example a value could be inserted that Coffeescript would compile into Javascript. While that is perhaps a safer approach, the advantage is not used in practice: it was that way mainly for ease of implementation. The down-side is the template must be compiled down to Javascript during every request. If instead we do a pre-conversion to compile down to Javascript, we only need to perform the compilation once.The problem then is the insertion of Haskell values: we need a hole for them. This can be done with variables known to the language. During the pre-conversion we first modify all Haskell insertions So #{a} is change to shakespeare_var_a Then we can place the Haskell values in a function wrapper that exposes those variables: (function(shakespeare_var_a){ ... shakespeare_var_a ...}) TypeScript can compile that, and then we tack an application of the Haskell values onto the result: (#{a}):preEscapeIgnoreBalanced is used to not insert backtacks for variable already inside strings or backticks. coffeescript will happily ignore the interpolations, and backticks would not be treated as escaping in that context. preEscapeIgnoreLine was added to ignore comments (which in Coffeescript begin with a '#')&A parser with a user state of [String]*run a parser with a user state of [String]calls * when there is stderr or exit code failurejDetermine which identifiers are used by the given template, useful for creating systems like yesod devel.Lrstuvwxyz{|}~for error reportingfor error reporting-rstuvwxyz{|}~-xyz{|}~wrvuts'rvutswx yz{|}~None24Bcodegen is designed for generating Yesod code, including templates So it uses different interpolation characters that won't clash with templates.codegen is designed for generating Yesod code, including templates So it uses different interpolation characters that won't clash with templates. You can use the normal text quasiquoters to generate codeGenerates strict Text codegen is designed for generating Yesod code, including templates So it uses different interpolation characters that won't clash with templates.None24BIA typeclass for types that can be interpolated in CoffeeScript templates.*Return type of template-reading functions.Newtype wrapper of .}render with route interpolation. If using this module standalone, apart from type-safe routes, a dummy renderer can be used: 5renderJavascriptUrl (\_ _ -> undefined) javascriptUrleWhen using Yesod, a renderer is generated for you, which can be accessed within the GHandler monad: .jDetermine which identifiers are used by the given template, useful for creating systems like yesod devel.          None24B!The Roy language compiles down to Javascript. We do this compilation once at compile time to avoid needing to do it during the request. We call this a preConversion because other shakespeare modules like Lucius use Haskell to compile during the request instead rather than a system call.Read inline, quasiquoted Roy.QRead in a Roy template file. This function reads the file once, at compile time.Read in a Roy template file. This impure function uses unsafePerformIO to re-read the file on every call, allowing for rapid iteration. None24B&Read inline, quasiquoted CoffeeScript.ZRead in a CoffeeScript template file. This function reads the file once, at compile time.Read in a CoffeeScript template file. This impure function uses unsafePerformIO to re-read the file on every call, allowing for rapid iteration.Deprecated synonym for None !"24<=BFKjDetermine which identifiers are used by the given template, useful for creating systems like yesod devel.W !"#$%&'()*+,-./0123456789:;<&perform the indent-to-brace conversion=&perform the indent-to-brace conversion>?@Ai2b?BCDEFGHIJKLMNhave whitespace? indentationOPQRSTUVWXYZ[\]^_`aE !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNO< !"#$%)('&*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`aNone24B !Not intended for direct use, see .Normalized value, 1 == 100%.!Not intended for direct use, see .Units used for text formatting. Normalized value in centimeters.Absolute size units.*Create a CSS size, e.g. $(mkSize "100px").b2Absolute size unit convertion rate to centimeters. Constructs #. Not intended for direct use, see . Constructs #. Not intended for direct use, see .c.Converts number and unit suffix to CSS format.+bcdefghijklmnopqbcbcdefghijklmnopq None !"234BM,renderCss ([lucius|foo{bar:baz}|] undefined)"foo{bar:baz}"rLooks for an & at the beginning of a selector and, if present, indicates that we should not have a leading space. Otherwise, we should have the leading space."Runtime Lucius with mixin support. Since 1.0.6Same as %, but output has no added whitespace. Since 1.0.3jDetermine which identifiers are used by the given template, useful for creating systems like yesod devel.$stuvwxyzr{|}~templateminify?scope//svutwxyzr{|}~ None24BjDetermine which identifiers are used by the given template, useful for creating systems like yesod devel.#Create a mixin with Cassius syntax. Since 2.0.3'' None24B(The TypeScript language compiles down to Javascript. We do this compilation once at compile time to avoid needing to do it during the request. We call this a preConversion because other shakespeare modules like Lucius use Haskell to compile during the request instead rather than a system call.#Read inline, quasiquoted TypeScriptXRead in a TypeScript template file. This function reads the file once, at compile time.Read in a TypeScript template file. This impure function uses unsafePerformIO to re-read the file on every call, allowing for rapid iteration. !"#$%&'()*+,-./01234566789:;<=>?@@ABCCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcddefghijklmnopqrstuvwxyyz{|}~                          !"#$%&'()*+,-./01234456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~~1a#1a.efa.ef       !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKL M N O P Q R S T U V W X Y Z   [ \ ] ^ _ ` abshakespeare-2.0.3Text.Shakespeare.Base Text.HamletText.Hamlet.RTText.Shakespeare.I18NText.ShakespeareText.Shakespeare.Text Text.JuliusText.Roy Text.Coffee Text.Lucius Text.CassiusText.TypeScriptText.MkSizeTypeText.IndentToBraceText.Hamlet.ParseYesod.Core.HandlergetUrlRenderParamsText.CssText.CssCommonDeref DerefTuple DerefList DerefBranch DerefString DerefRational DerefIntegral DerefIdentDerefModulesIdentScopeIdent parseDeref derefToExp flattenDeref parseHashparseVarparseAtparseUrlparseVarStringparseUrlStringparseIntString parseCaretparseInt parseUnder readUtf8File CloseStyle CloseSeparate CloseInsideNoClose NewlineStyleDefaultNewlineStyleAlwaysNewlines NewlinesText NoNewlinesHamletSettings hamletDoctypehamletNewlineshamletCloseStylehamletDoctypeNamesdefaultHamletSettingsxhtmlHamletSettingsblaze-html-0.7.0.3Text.Blaze.HtmlHtmlEnv urlRender msgRender HamletRules hrFromHtml hrWithEnvhrEmbed HtmlUrlI18nHtmlUrl ToAttributes toAttributes attrsToHtmlshamletxshamlet htmlRuleshamletxhamlet asHtmlUrl hamletRulesihamlet ihamletRuleshamletWithSettingshamletFileWithSettings hamletFilehamletFileReloadihamletFileReload xhamletFile shamletFile xshamletFile ihamletFilecondHmaybeHHamletExceptionHamletRenderExceptionHamletUnsupportedDocExceptionHamletParseExceptionHamletRT SimpleDocSDCondSDMaybeSDForall SDTemplateSDUrlSDVarSDRaw HamletDataHDListHDMaybeHDBool HDTemplate HDUrlParamsHDUrlHDHtml HamletMap parseHamletRTrenderHamletRTrenderHamletRT' SomeMessageLang RenderMessage renderMessage ToMessage toMessage mkMessage mkMessageFormkMessageVariantVarTypeVTMixin VTUrlParamVTUrlVTPlain RenderUrlShakespeareSettingsvarCharurlCharintChar toBuilderwrapunwrapjustVarInterpolation preConversionmodifyFinalValue PreConversionId ReadProcess WrapInsertionwrapInsertionIndentwrapInsertionStartBeginwrapInsertionSeparatorwrapInsertionStartClosewrapInsertionEndwrapInsertionAddParens PreConvert preConvertpreEscapeIgnoreBalancedpreEscapeIgnoreLine wrapInsertionParserdefaultShakespeareSettings preFilterpack' shakespeareshakespeareFromStringshakespeareFileshakespeareUsedIdentifiersshakespeareFileReloadshakespeareRuntimeToTexttoTextTextUrl renderTextUrlstextltsttexttextFile textFileDebugtextFileReloadcodegen codegenStcodegenFileReload codegenFileRawJSrawJS RawJavascript ToJavascript toJavascript JavascriptUrl Javascript unJavascriptrenderJavascriptrenderJavascriptUrlasJavascriptUrljavascriptSettingsjsjuliusjsFile juliusFile jsFileReloadjuliusFileReloadjuliusFileDebug jsFileDebugjuliusUsedIdentifiers roySettingsroyroyFile royFileReloadcoffeeSettingscoffee coffeeFilecoffeeFileReloadcoffeeFileDebugToCsstoCssCssMixinCssUrl renderCssPercentageSizepercentageSizeValue AbsoluteSizeabsoluteSizeUnitabsoluteSizeValue AbsoluteUnitPointPica MillimeterInch CentimeterColor renderCssUrlcolorRed colorBlackmkSize absoluteSizepercentageSizeEmSizeExSize PixelSizeRTValueRTVMixinRTVRawlucius luciusFileluciusFileDebugluciusFileReloadparseTopLevels luciusRT'luciusRT luciusRTMixinluciusRTMinifiedluciusUsedIdentifiers luciusMixincassius cassiusFilecassiusFileDebugcassiusFileReloadcassiusUsedIdentifiers cassiusMixintypeScriptSettingstsctypeScriptFiletypeScriptFileReload mkSizeTypedataDecshowInstanceDecnumInstanceDecfractionalInstanceDectoCssInstanceDec instanceType binaryFunDec unariFunDec1 unariFunDec2NestBlankLine lineIndent lineContenti2b stripCommentsisBlankaddClosingCounttoLnesttell'unnest UserParser derefParensderefCurlyBrackets derefList derefTupleread'expType curlyBracketsparseInterpolatedString $fLiftDeref $fLiftIdent LineContent ContentUrltestIncludeClazzesspecialOrIdentbaseGHC.ListorModule DataConstr DCUnqualified DCQualifiedBinding BindRecordBindList BindTuple BindConstrBindAsBindVarDoc DocContentDocCaseDocMaybeDocCondDocWith DocForall ContentRule InContentNotInQuotesAttr NotInQuotesInQuotesTagPiece TagAttribs TagAttribTagClassTagIdentTagNameLineTag _lineTagName _lineAttr _lineContent _lineClasses _lineAttrs_lineNoNewlineLineOfLineCase LineNothing LineMaybeLineWithLineElse LineElseIfLineIf LineForallContent ContentAttrs ContentMsg ContentEmbed ContentVar ContentRawResultOkError parseLines parseLine nestLines nestToDoc compressDocparseDoc attrToContent htmlEmptyTagshtmlCloseStylexhtmlCloseStyle parseConds doctypeNames spaceTabs$fLiftHamletSettings $fLift(->)$fLiftNewlineStyle$fApplicativeResult$fFunctorResult $fMonadResult RuntimeVarsHamletRuntimeRuleshrrI18nVarExpEMsg EMixinI18nEMixin EUrlParamEUrlEPlain ShakespeareQueryParametersVTAttrsVTMsgMTime TranslateRender docsToExpunIdentbindingPattern mkConNameconToStrbindWildFieldsrecordToFieldNamesdocToExp contentToExphamletFromString docFromStringvarNamestrToExpgetVarshamletUsedIdentifiershamletFileReloadWithSettings readFileUtf8 readFileQ reloadMapReflookupReloadMapinsertReloadMapcontentFromString hamletRuntimehamletRuntimeMsg nothingErrorruntimeContentToHtml $fShowVarExp$fToAttributes[]$fToAttributes[]0$fToAttributes(,)$fToAttributes(,)0 UrlRendererfashowName flattenDeref'$fExceptionHamletException text-1.2.0.3Data.Text.InternalTextGHC.BaseStringmkMessageCommonRawVarDefconstrvarscontentSDefsconstrsvarsscontent toClausesmkBody sToClause defClausetoConcheckDeftoSDefstoSDefloadLang loadLangDir loadLangFileparseDefcompress parseContent $fRenderMessagemasterSomeMessage$fIsStringSomeMessage$fRenderMessagemasterText $fToMessage[]$fToMessageTextparsereadProcessErrorGHC.ErrerrorContents ContentMixContentUrlParam eShowErrors parseContentscontentsToShakespeare$fLiftShakespeareSettings$fLiftPreConversion$fLiftWrapInsertion$fLiftPreConvertcodegenSettingssettings $fToTextInt $fToTextInt64 $fToTextInt32 $fToTextText $fToTextText0 $fToText[]$fToTextBuilderData.Text.Internal.BuilderBuilder $fRawJSBool$fRawJSBuilder $fRawJSText $fRawJSText0 $fRawJS[]$fToJavascriptRawJavascript$fToJavascriptValue$fToJavascriptBoolcssUsedIdentifiersCDDataCDMixin CDUrlParamCDUrlCDPlain ContentMixinCssNoWhitespace CssWhitespaceAttrattrKeyattrValTopLevelTopVar TopAtDecl TopAtBlockTopBlock mixinAttrs mixinBlocksBlock blockSelector blockAttrs blockBlocks blockMixinsMixinsStrHasLeadingSpace ChildBlocksSelector UnresolvedResolvedDListpackfromText cssFileDebugcombineSelectors blockRuntimecontentToBuilderRT cssRuntimevtToExplookupDcompressTopLevel compressBlock blockToMixin blockToCssselectorToBuildercontentsToBuildercontentToBuildertopLevelsToCassiusblocksToCassius renderBlock liftBuilder $fLiftBlock $fLiftBlock0 $fLiftContent $fLiftAttr $fLiftAttr0 $fLiftMixin $fToCssText $fToCssText0 $fToCss[] $fMonoidMixinTFCo:R:MixinsUnresolvedTFCo:R:MixinsResolvedTFCo:R:StrUnresolvedTFCo:R:StrResolvedTFCo:R:ChildBlocksUnresolvedTFCo:R:ChildBlocksResolvedTFCo:R:SelectorUnresolvedTFCo:R:SelectorResolvedabsoluteUnitRateshowSize$fToCssPercentageSize$fFractionalPercentageSize$fNumPercentageSize$fShowPercentageSize$fToCssAbsoluteSize$fFractionalAbsoluteSize$fNumAbsoluteSize$fOrdAbsoluteSize$fEqAbsoluteSize$fShowAbsoluteSize $fToCssColor $fShowEmSize $fShowExSize$fShowPixelSize detectAmp PairBlockPBMixinPBBlockPBAttrluciusFromString whiteSpace whiteSpace1 parseBlock partitionPBs parseSelectortrimparsePairsBlocks parsePairisHexatMost parseCommentstringCIluciusRTInternalluciusMixinFromStringi2bMixin