我使用slim作为我的rails应用程序的模板引擎,并且也希望使用slim作为邮件模板.
html邮件程序模板(views/mailer/default_email.en.html.slim)没有问题但是,我不知道如何使文本模板工作.
我在views/mailer/default_email.en.text.slim中放置了一个文本模板,其中包含以下内容:
Hello,
Your video is ready.
= @url
Thank you,
The A-Team
Run Code Online (Sandbox Code Playgroud)
但结果被解析为纤薄的HTML,看起来像这样:
<Hello>,</Hello><Your>video is ready.</Your><Click>the link below to watch it:</Click>http://watch.thy/video<Thank>you,</Thank><The>A-Team</The>
Run Code Online (Sandbox Code Playgroud)
除了为每一行添加一个管道前,还有更自然的方法吗?我甚至寻找一个嵌入式插件(如降价标记)来说"纯文本",但没有.
提前致谢.
我正在尝试以docker-compose.yml
某种方式定义文件中的可重用块,以使可重用块定义本身不包含在最终(评估的)YAML中。
我知道如何使用以下语法定义可重用的块:
services:
default: &default
image: some/image
dashboard:
<<: *default
command: run dashboard
ports: ["3000:3000"]
Run Code Online (Sandbox Code Playgroud)
但是,上面也创建了一个以default
服务命名的条目,我想避免这种情况。换句话说,我需要最终的YAML结果仅包括dashboard
在该services
属性下。
YAML有可能吗?我找不到足够清晰地讨论该结构的参考资料。
凭直觉,我尝试了下面的一些变体,但它也没有用。
services:
&default:
image: some/image
dashboard:
<<: *default
command: run dashboard
ports: ["3000:3000"]
Run Code Online (Sandbox Code Playgroud) 我试图弄清楚如何使 Swagger UI 显示允许值列表而不是输入字段。
到目前为止,我对 Swagger 的不同版本和文档感到非常困惑。我不确定哪个是哪个(1.2、2.0、YAML、JSON...)
到目前为止,这是我所知道的:
allowableValues
,但据我了解,它在 Swagger 2.0 中不可用enum
命令,但无法让它为我工作。parameters
部分 或definitions
部分中定义此允许值列表最后,这是我在Swagger 编辑器中尝试的代码:
swagger: '2.0'
host: asd.com
schemes:
- http
info:
version: "1.0.0"
title: test
paths:
/users:
get:
parameters:
- name: status
in: query
type: string
enum:
- online
- offline
responses:
"200":
description: Nice
Run Code Online (Sandbox Code Playgroud) 我正在使用Rails sanitize帮助程序来清理用户的输入文本,这些文本可能被格式化为markdown.
我注意到该方法剥离tel:
链接,我想知道为什么,我怎么能允许它们.
>> sanitize("<a href='http://123'>click</a>")
=> "<a href=\"http://123\">click</a>"
>> sanitize("<a href='tel:123'>click</a>")
=> "<a>click</a>"
Run Code Online (Sandbox Code Playgroud)
当然,我已经尝试从上面链接的页面中找出它,但是无法做到.我宁愿避免为这个简单的任务编写"scrubber"类或任何其他类.
我也尝试了我认为意味着"允许所有hrefs",但它没有任何效果(即使重新启动服务器后).
# In config/application.rb
config.action_view.sanitized_allowed_attributes = ['href']
Run Code Online (Sandbox Code Playgroud) 我想在容器内运行 django 测试用例。我可以从 docker hub 拉取私有镜像。但是当我运行命令进行测试时,它无法运行。
任何人都尝试在容器内运行测试用例。
jobs:
test:
container:
image: abcd
credentials:
username: "<username>"
password: "<password>"
steps:
- uses: actions/checkout@v2
- name: Display Python version
run: |
python -m pip install --upgrade pip
pip install -r requirements/dev.txt
- name: run test
run: |
python3 manage.py test
Run Code Online (Sandbox Code Playgroud) Ruby 的 YAML 库 (Psych 4) 的最新更改会导致“不安全”YAML 在包含别名或尝试实例化未指定的类时失败。这在多个地方都有讨论,例如StackOverflow 问题。
我试图弄清楚如何告诉衍生yaml/store
库允许加载不安全的 YAML,或者向它提供允许的类列表。
据我所知,该文档很少,阅读后,这是我能想到的唯一合乎逻辑的尝试:
require 'date'
require 'yaml/store'
# 1. These options work perfectly with YAML.load_file, but not with YAML::Store
# 2. These options are not needed in Psych < 4.0
yaml_opts = { aliases: true, permitted_classes: [Time, Date, Symbol] }
store = YAML::Store.new 'log.yml', yaml_opts
data = store.transaction { store[:entries] }
p data
Run Code Online (Sandbox Code Playgroud)
使用此 YAML 文件:
# log.yml
:entries:
- :timestamp: 2018-07-09 00:00:00.000000000 +03:00
:action: Comment
:comment: …
Run Code Online (Sandbox Code Playgroud) 关于Go中的类型别名,我有点困惑.
我已经阅读了这个相关的SO问题 - 为什么我可以输入别名函数并在不进行转换的情况下使用它们 .
据我所知,如果底层结构相同,未命名和命名变量可以相互分配.
我想弄清楚的是,我可以通过命名它们来扩展未命名的类型 - 类似这样:
type Stack []string
func (s *Stack) Print() {
for _, a := range s {
fmt.Println(a)
}
}
Run Code Online (Sandbox Code Playgroud)
这给了我错误cannot range over s (type *Stack)
尝试投射它[]string
,没有去.
我知道下面的代码是有效的 - 这是我应该这样做的吗?如果是这样,我很想知道为什么以上不起作用,以及如何使用声明type Name []string
.
type Stack struct {
data []string
}
func (s *Stack) Print() {
for _, a := range s.data {
fmt.Println(a)
}
}
Run Code Online (Sandbox Code Playgroud) 我从外部源获取JSON数据.这个JSON中的字段名称不是我想带的东西,所以我将它们转换为使用json:"originalname"
标签对我有意义的名称.
当我将这样的对象编组回JSON时,我自然会再次获得丑陋的(原始)名称.
编组时是否有办法忽略标签?或者为马歇尔和unmarshall指定不同名称的方法?
为了澄清,我在操场上准备了一个例子,并在下面粘贴了相同的代码.
提前致谢.
package main
import (
"encoding/json"
"fmt"
)
type Band struct {
Name string `json:"bandname"`
Albums int `json:"albumcount"`
}
func main() {
// JSON -> Object
data := []byte(`{"bandname": "AC/DC","albumcount": 10}`)
band := &Band{}
json.Unmarshal(data, band)
// Object -> JSON
str, _ := json.Marshal(band)
fmt.Println("Actual Result: ", string(str))
fmt.Println("Desired Result:", `{"Name": "AC/DC","Albums": 10}`)
// Output:
// Actual Result: {"bandname":"AC/DC","albumcount":10}
// Desired Result: {"Name": "AC/DC","Albums": 10}
}
Run Code Online (Sandbox Code Playgroud) version: '3'
services:
db:
image: "mysql:5.7"
volumes:
- data-mysql:/var/lib/mysql
ports:
- '3306:3306'
environment:
MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD}
volumes:
data-mysql:
driver: local
Run Code Online (Sandbox Code Playgroud)
谢谢曼尼