使用包閃耀的HTML,我想創造一些HTML,看起來像這樣採用閃耀的HTML,如何創建領先的不間斷空格在HTML
<p> Some indented text
我無法弄清楚如何創造不間斷的空間。什麼是最好的方式來做到這一點?
使用包閃耀的HTML,我想創造一些HTML,看起來像這樣採用閃耀的HTML,如何創建領先的不間斷空格在HTML
<p> Some indented text
我無法弄清楚如何創造不間斷的空間。什麼是最好的方式來做到這一點?
當然,其中一種方法是將包含該字符的Haskell編碼版本的字符串賦予toHtml
。另一種方法是使用preEscapedToMarkup
:
preEscapedToMarkup " "
繼ertes的建議,我想「得到含字符的哈斯克爾編碼版本的字符串」。這段代碼很冗長,所以我可以更好地理解這些類型如何組合在一起。
{-# LANGUAGE OverloadedStrings #-}
-- * base
import Data.Monoid ((<>))
import Data.Char (chr)
-- * text
import qualified Data.Text.Lazy as L (Text)
import Data.Text (Text, singleton)
import Data.Text.Lazy.Read (hexadecimal)
-- * blaze-html
import Text.Blaze.Html5
import qualified Text.Blaze.Html5 as H
import Text.Blaze.Renderer.String
nbspHex = "00A0" :: L.Text -- Unicode codepoint for nbsp
Right (nbspInt, _) = hexadecimal nbspHex
nbspChar = chr nbspInt :: Char
nbspTxt = singleton nbspChar :: Text
nbspHtml = toHtml nbspTxt :: Html
someHtml :: Html
someHtml = docTypeHtml $
body $ do
p "some text"
p (nbspHtml <> nbspHtml <> "some indented text")
main :: IO()
main = do
let s = renderHtml $ someHtml
putStrLn s
此代碼顯示在我所希望的瀏覽器中的「一些縮進的文本」,但查看HTML,我沒有看到任何「@nbsp;」如我此前的預期。所以這不是我正在尋找的答案。
感謝Jukka指出了一個更好的解決方案。
顯而易見的解決方案如何不起作用? –
你爲什麼要求最好的方式去做錯誤的事情?更好的問題是如何將第一行縮進(CSS屬性'text-indent)添加到文本塊中。 –
@Mechanicalsnail我嘗試了幾個「明顯的」(至少對我來說)解決方案,其中沒有一個能夠工作。它們幾乎全部以瀏覽器中顯示的「 」結束。 – Tad