默认的rails XML构建器会转义所有HTML,例如:
atom_feed do |feed|
@stories.each do |story|
feed.entry story do |entry|
entry.title story.title
entry.content "<b>foo</b>"
end
end
end
Run Code Online (Sandbox Code Playgroud)
将产生文字:
<b>foo</b>
Run Code Online (Sandbox Code Playgroud)
而不是:foo
有没有办法指示XML构建器不转义XML?
我有一个项目会将包含某些数据的电子邮件发送到Gmail帐户.我认为阅读Atom提要可能更容易,而不是通过POP连接.
根据Google,我应该使用的网址是:
https://gmail.google.com/gmail/feed/atom
Run Code Online (Sandbox Code Playgroud)
问题/问题是:如何验证我想要查看的电子邮件帐户?如果我在Firefox中使用它,它会使用cookie.
我也不确定如何"下载"该请求应该返回的XML文件(我相信正确的术语是流).
编辑1:
我正在使用.Net 3.5.
使用.NET System.ServiceModel.Syndication类...
我想向SyndicationItem添加一个新的SyndicationElementExtension,它将导出以下XML:
<media:thumbnail url="http://www.foo.com/keyframe.jpg" width="75" height="50" time="12:05:01.123" />
Run Code Online (Sandbox Code Playgroud)
有点像:
syndicationItem.ElementExtensions.Add(new SyndicationElementExtension("thumbnail", "http://video.search.yahoo.com/mrss", ?
Run Code Online (Sandbox Code Playgroud)
如何使用一些属性创建简单的SyndicationElementExtension?
我正在使用AtomFeedHelper并且一切正常,除了一个feed,我需要将每个条目链接到一个URL,该URL不是记录的默认polymorphic_url.
根据文档我已经为条目指定了:url选项.这正确地<url>在原子节点中呈现标记,但<link rel="alternate"仍然指向默认的polymorphic_url.查看源代码和文档,我不明白为什么会这样.
这是一个示例构建器:
atom_feed do |feed|
feed.title("Reports")
feed.updated(@reports.first.created_at)
for report in @reports
content = report.notes
feed.entry(report) do |entry|
entry.title(report.title)
entry.content(content, :type => 'html')
entry.url("http://myhost/page/")
entry.updated(report.updated_at.strftime("%Y-%m-%dT%H:%M:%SZ"))
entry.author do |author|
author.name(report.user.username)
end
end
end
end
Run Code Online (Sandbox Code Playgroud)
以下是问题节点的示例:
<entry>
<id>tag:myhost.mydomain.com,2005:SiteReport/2</id>
<published>2010-03-30T13:11:07-07:00</published>
<updated>2010-03-30T13:11:07-07:00</updated>
<link rel="alternate" type="text/html" href="http://myhost/site_reports/2"/>
<title>Test Title</title>
<content type="html">Test Content</content>
<url>http://myhost/page/</url>
<updated>2010-03-30T13:11:07Z</updated>
<author>
<name>Author</name>
</author>
</entry>
Run Code Online (Sandbox Code Playgroud)
我希望链接标记中的href值与url标记中的值匹配,但它不匹配.
当我查看列表中列出的来源http://api.rubyonrails.org/classes/ActionView/Helpers/AtomFeedHelper/AtomFeedBuilder.html
我假设这条线可以正常工作:
@xml.link(:rel => 'alternate', :type => 'text/html', :href => options[:url] || @view.polymorphic_url(record))
Run Code Online (Sandbox Code Playgroud)
困惑.有没有人遇到过这个?
谢谢大家!
我有一个奇怪的问题.我生成了一个HTML页面,托管在http://www.x.com/stuff上提供,其中包含
<head>
<link type="application/atom+xml" rel="alternate" href="/stuff/feed"/>
..
</head>
Run Code Online (Sandbox Code Playgroud)
结果是:
/stuff/feed的源,以便按预期工作feed://http//www.x.com/stuff/feed所以问题是,它会附加feed://到URL的前面,然后取出:后面的冒号http.我知道这feed:是HTTP,所以也许添加它不是一个大问题.
但无论如何,事实是,Firefox生成的我的<link>标签不起作用.
我曾考虑把网址是绝对的,但我还没有发现任何证据表明,这些网址必须是绝对的,也不是我能理解为什么会是这样.由于各种原因,我的代码生成绝对URL会很不方便.如有必要,我能做到这一点,但我希望看到的证据(如规格,或Mozilla错误报告)认为有必要做我的代码之前凌乱
你怎么看?有谁知道URL应该是绝对的任何证据?或者我做错了什么?这似乎是一个简单/明显的标签,没有什么可以出错,但我无法让它工作.
我正在寻找为RSS和Atom提供源构建一个feed生成器.
我一直在寻找能够生成各种格式的库(RSS .9通过当前的任何格式,Atom .3通过当前的任何格式).
我宁愿不仔细查看规范并尝试重新创建方向盘,但到目前为止我发现的用于生成提要的库要么不是非常强大(只支持特定的格式/版本),要么看起来支持不好或被遗弃的项目.
那里有一个好的图书馆吗?
我刚刚使用Homebrew从Python 3.4升级到Python 3.6.
输出状态:
Pip, setuptools, and wheel have been installed. To update them
pip3 install --upgrade pip setuptools wheel
You can install Python packages with
pip3 install <package>
They will install into the site-package directory
/usr/local/lib/python3.6/site-packages
Run Code Online (Sandbox Code Playgroud)
我试着跑
pip3 install --upgrade pip setuptools wheel
Run Code Online (Sandbox Code Playgroud)
但它不会升级Python 3.6的pip.相反,它在Python 3.4中找到pip3并说"满足要求":
Requirement already up-to-date: pip in /Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/site-packages
Collecting setuptools
Downloading setuptools-33.1.1-py2.py3-none-any.whl (472kB)
100% |????????????????????????????????| 481kB 1.0MB/s
Collecting wheel
Downloading wheel-0.29.0-py2.py3-none-any.whl (66kB)
100% |????????????????????????????????| 71kB 5.7MB/s
Installing collected packages: setuptools, wheel
Found existing installation: setuptools …Run Code Online (Sandbox Code Playgroud) 我已经通过bitbucket工作了一段时间没有问题.我一直在自己工作,但最近有一个实习生加入了我,我们无法从他的机器上推送文件.
我们已经能够在他的机器上克隆repo(包括大文件),做一些本地提交没有问题.虽然当谈到推动我们有一个认证的问题,说
需要身份验证:授权错误:https:// bitbucket ......检查您是否具有对存储库的适当访问权限
问题如下图所示:
请注意,我的受训者对repo 具有写访问权限(在bitbucket中).
知道发生了什么事吗?
我有一个这样的课:
public static class MyFeedExtensions
{
private readonly static XNamespace _namespace = XNamespace.Get(@"http://mynamespace");
public static XElement MyElement(string value)
{
return new XElement(_namespace + "MyElement", value);
}
}
Run Code Online (Sandbox Code Playgroud)
我正在使用它来生成带有自定义扩展的Atom Feed:
var feed = new SyndicationFeed();
feed.ElementExtensions.Add(MyFeedExtensions.MyElement("Testing!"));
Run Code Online (Sandbox Code Playgroud)
这很好,除了feed将我的命名空间添加到元素:
<feed xmlns="http://www.w3.org/2005/Atom">
<title type="text">Hello World!</title>
<id>00000000-0000-0000-0000-000000000000</id>
<updated>2011-03-01T01:00:53Z</updated>
<MyElement xmlns="http://mynamespace">Testing!</MyElement>
</feed>
Run Code Online (Sandbox Code Playgroud)
有没有办法用feed注册命名空间,以获得这样的输出?
<feed xmlns="http://www.w3.org/2005/Atom" xmlns:my="http://mynamespace">
<title type="text">Hello World!</title>
<id>00000000-0000-0000-0000-000000000000</id>
<updated>2011-03-01T01:00:53Z</updated>
<my:MyElement>Testing!</my:MyElement>
</feed>
Run Code Online (Sandbox Code Playgroud)
理想情况下,当我使用带有ElementExtensions的SyndicationItems时,我也希望这也能工作,因为feed应该知道所有各种命名空间.
(编辑:这纯粹是为了减少XML的大小并使其更容易为人类阅读)
我使用atom-beautify来格式化html,但总是将所有属性放在一行中.如何设置atom-beautify以保持属性在不同的行中.
<!--What I want-->
<a class="btn btn-default"
ng-click="history.more=!history.more">
More
</a>
<!--The current format result-->
<a class="btn btn-default" ng-click="history.more=!history.more">
More
</a>
Run Code Online (Sandbox Code Playgroud)