Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

通过metaweblog API上传文章到博客园时,代码没有换行 #223

Closed
zminds opened this issue Jun 20, 2016 · 11 comments
Closed

通过metaweblog API上传文章到博客园时,代码没有换行 #223

zminds opened this issue Jun 20, 2016 · 11 comments

Comments

@zminds
Copy link

zminds commented Jun 20, 2016

经过测试 不是回车换成<br />选项的问题,无论怎么设置上传到博客后都没有换行

测试用shell语法写了俩命令,上传后没换行 都直接挨着 注释后面再跟着命令 基本后面就没法正常显示了

snip20160620_53
snip20160620_54

简单的json还行,复杂的json就没法看了

snip20160620_52
snip20160620_51

@zminds zminds changed the title 上传文章到博客园metaweblog API 通过metaweblog API上传文章到博客园时,代码没有换行 Jun 20, 2016
@zminds
Copy link
Author

zminds commented Jun 20, 2016

没有换行 问题很严重啊 所有代码一团糟 注释和代码混在一起根本没法高亮,我记得以前博客园通过mweb上传的代码高亮没啥问题

@oulvhai
Copy link
Owner

oulvhai commented Jun 20, 2016

感觉有可能是你博客所用的 CSS 的问题,直接把 <pre><code> 下的 span 用 inline 了。我试发了一文章,没问题: http://www.cnblogs.com/OtisBlog/p/Syntax-highlighting-in-fenced-code-blocks.html
然后下一个版本会加个直接发 markdown 的选项 , 这样估计就好很多。

@zminds
Copy link
Author

zminds commented Jun 21, 2016

能否告诉我你的博客的是用的官方模板中的哪一个 我测试一下 ,我这边换了几个都不行 ,重新更新也不行

@zminds
Copy link
Author

zminds commented Jun 21, 2016

测试多个主题及官方默认的custom父类主题都不能正常显示

测试markdown文件

# Syntax highlighting in fenced code blocks
```python
@requires_authorization
def somefunc(param1='', param2=0):
    r'''A docstring'''
    if param1 > param2: # interesting
        print 'Gre\'ater'
    return (param2 - param1 + 1 + 0b10l) or None
class SomeClass:
    pass
# note
>>> message = '''interpreter
... prompt'''
```
```SQL
BEGIN;
CREATE TABLE "topic" (
    -- This is the greatest table of all time
    "id" serial NOT NULL PRIMARY KEY,
    "forum_id" integer NOT NULL,
    "subject" varchar(255) NOT NULL -- Because nobody likes an empty subject
);
ALTER TABLE "topic" ADD CONSTRAINT forum_id FOREIGN KEY ("forum_id") REFERENCES "forum" ("id");
-- Initials
insert into "topic" ("forum_id", "subject") values (2, 'D''artagnian');
/*
-- this line lacks ; at the end to allow people to be sloppy and omit it in one-liners
*/
COMMIT
```
```ruby
class A < B; def self.create(object = User) object end end
class Zebra; def inspect; "X#{2 + self.object_id}" end end
module ABC::DEF
  include Comparable
  # @param test
  # @return [String] nothing
  def foo(test)
    Thread.new do |blockvar|
      ABC::DEF.reverse(:a_symbol, :'a symbol', :<=>, 'test' + ?\012)
      answer = valid?4 && valid?CONST && ?A && ?A.ord
    end.join
  end
  def [](index) self[index] end
  def ==(other) other == self end
end
class Car < ActiveRecord::Base
  has_many :wheels, class_name: 'Wheel', foreign_key: 'car_id'
  scope :available, -> { where(available: true) }
end
hash = {1 => 'one', 2 => 'two'}
2.0.0p0 :001 > ['some']
 => ["some"]
```

上传到博客园(博客园默认编辑器无论设置什么,代码换行都不正常)

查看html发现本来应该是多个span的代码段变成hljs-comment 或者 hljs-meta肯定无法换行

snip20160621_59

博客园链接 http://www.cnblogs.com/zminds/p/test.html

上传到开源中国,正常(开源中国是在设置默认编辑器不是markdown的情况下正常)

snip20160621_61

开源中国测试页面链接 http://my.oschina.net/zhangmin/blog/698434

@oulvhai
Copy link
Owner

oulvhai commented Jun 21, 2016

@zminds 你这个好像跟CSS 无关,我猜可能是我把博客园的后端的编辑默认编辑器设置成 markdown,所以代码变正常了(设置后博客园可能就不会处理 html 为代码标签的里面的代码)。你可以试试。

@zminds
Copy link
Author

zminds commented Jun 22, 2016

@oulvhai 我也把博客园后台设置成markdown ,代码倒是能分行了,不过没有高亮 ,查看代码发现直接放在code标签中,进设置语言类型,没有高亮的class

博客园后台设置
皮肤
snip20160622_71

编辑器设置

snip20160622_70

页面代码效果

snip20160622_69

@zminds
Copy link
Author

zminds commented Jun 22, 2016

@oulvhai 我查看了下博客园的markdown指南 链接如下:http://www.cnblogs.com/cmt/p/markdown.html

上面提到博客园发送markdown格式的需要选择markdown分类
snip20160622_73

我上传时选中markdown就会想最早的时候那样代码高亮但是不换行,不选中markdown选项就会换行,但是代码不高亮,博客园同时也提到不能用live writer,因为live writer会自动过滤换行符,不知道是不是mweb也会过滤换行符导致同样的问题呢?

snip20160622_72

@oulvhai
Copy link
Owner

oulvhai commented Jun 23, 2016

这个是因为 mweb 是发布 HTML 的,而不是 markdown,所以不用选择 markdown 这个分类。下一版会加下直接发布 markdown 的选项,这时再选择 markdown 分类,就完全没问题了。
然后我那个博客的效果好像是自己自定义加的高亮(抱歉,我现在才想起来)。就是在后台 - 设置里的 HTML 页脚里加以下这么一段代码(发布时不用选markdown,后端编辑器默认设置为 markdown 即可)。这个只是暂时的方案,并不建议用,因为正规用法是下一版。

<style>
#cnblogs_post_body .hljs{display:block;overflow-x:auto;padding:.5em;background:#fff;color:#000}.hljs-comment,.hljs-quote,.hljs-variable{color:green}.hljs-keyword,.hljs-selector-tag,.hljs-built_in,.hljs-name,.hljs-tag{color:#00f}.hljs-string,.hljs-title,.hljs-section,.hljs-attribute,.hljs-literal,.hljs-template-tag,.hljs-template-variable,.hljs-type,.hljs-addition{color:#a31515}.hljs-deletion,.hljs-selector-attr,.hljs-selector-pseudo,.hljs-meta{color:#2b91af}.hljs-doctag{color:gray}.hljs-attr{color:red}.hljs-symbol,.hljs-bullet,.hljs-link{color:#00b0e8}.hljs-emphasis{font-style:italic}.hljs-strong{font-weight:bold}#cnblogs_post_body code{font-family:"Courier New",sans-serif!important;font-size:12px!important;height:20px;line-height:20px;background-color:#f5f5f5!important;border:1px solid #ccc!important;padding:0 5px!important;border-radius:3px!important;line-height:1.8;margin:0 5px;vertical-align:middle;display:inline-block}#cnblogs_post_body pre code{display:block;margin:auto;vertical-align:auto;height:auto;line-height:normal}#cnblogs_post_body .hljs{font-family:"Courier New",sans-serif!important;font-size:12px!important;line-height:1.5!important;padding:5px!important}#cnblogs_post_body pre{margin-top:10px;margin-bottom:10px}
</style>
<script src="//common.cnblogs.com/highlight/9.1.0/highlight.min.js"></script>
<script>hljs.initHighlightingOnLoad();</script>

@zminds
Copy link
Author

zminds commented Jun 23, 2016

测试这段代码有效,新版本把这段代码加到上传到html应该就行了吧
markdown接口的话上传到是不是不包括任何html,和我编辑的一致吧,markdown语法都和github一致就不会有兼容问题了 ,有的markdown不支持TOC语法,期待新版本,应该会和2.0一起发布吧

@oulvhai
Copy link
Owner

oulvhai commented Jun 24, 2016

会支持直接传 markdown,因为 wordpress 也有这个需求。然后语法方面各家不同这个,就没太好的办法了。
然后并不会直接加这段代码,因为这只针对 cnblogs 的。

@oulvhai
Copy link
Owner

oulvhai commented Jul 21, 2016

2.0 已增加 markdown 选项。

@oulvhai oulvhai closed this as completed Jul 21, 2016
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants