帕格:强制在线的末尾添加空格

时间:2017-05-05 08:26:18

标签: pug whitespace

所以我有这个基本的哈巴狗代码

p This is some text
  span foo
  span bar

预期输出如下:

这是一些文字foo bar

然而它实际输出了这个(空格被删除):

这是一些textfoobar

可以通过在行尾添加空白空格来添加空格。

我需要能够在我的编辑器中打开空白区域时保留空白区域。保存文件时,空格修剪会从行尾删除空白区域。

有没有办法强制在行的末尾添加空格,即使在编辑器中打开空白区域时也会保留?

5 个答案:

答案 0 :(得分:4)

我找到了一个很好的解决方案:)

p This is some text!{' '}
  span foo
  | !{' '}
  span bar
帕格的

!{}基本上意味着:

  

将以下内容解释为javascript并输出与写入完全相同的结果

因此,通过在行的末尾添加!{' '},它强制在空白文本的末尾添加一个空白空格,不会被空格修剪软件切断。

答案 1 :(得分:3)

实际上还有另一种方式。在跨度中的每个单词之前添加额外空格将导致文本在浏览器中查看时不会合并为一个单词。

package com.niti.controller;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;

import com.niti.authentication.service.AuthenticationService;
import com.niti.bo.UserBO;
import com.niti.service.exception.ServiceBusinessException;

@Controller
public class LoginController {

    private static final Logger Logger = LoggerFactory.getLogger(LoginController.class);

    @Autowired
    private AuthenticationService authenticationService;

    @RequestMapping(value = "/login", method = RequestMethod.GET)
    public String login(Model model) {
        model.addAttribute("user", new UserBO());
        return "login";
    }

    @RequestMapping(value = "/validateUser", method = RequestMethod.POST)
    public String processLoginInfo(@ModelAttribute UserBO userBO) throws ServiceBusinessException {
        UserBO user = authenticationService.authenticateUser(userBO.getEmailAddress(), userBO.getPassword());

        return "userDetails";
    }       
}

额外空格方法比我之前发布的JS文字方法更清晰,但是它会使空白区域放在跨度内而不是围绕它。

使用额外的空格方法产生这个HTML:

// no extra spaces
p This is some text
  span foo
  span bar

// extra space method
p This is some text
  span  foo
  span  bar

// JS literals method
p This is some text!{' '}
  span foo
  | !{' '}
  span bar

使用JS literals方法生成此HTML:

<p>This is some text<span> foo</span><span> bar</span></p>

不使用任何一种方法的HTML输出:

<p>This is some text <span>foo</span> <span>bar</span></p>

答案 2 :(得分:1)

管道符如果后面没有任何字符,它的作用就像一个空格

p This is some text
  |
  span foo
  |
  span bar

结果:这是一些文本 foo bar

答案 3 :(得分:0)

您可以使用=运算符和buffered代码的引号,例如:

p= 'This is some text '
  span= 'foo '
  span bar

答案 4 :(得分:0)

这里的解决方案不是很干净。就个人而言,我使用转义字符,该解决方案使我可以毫无问题地使用每个Unicode字符(包括HTML使用的字符):

{{1}}

Table of the most used ones