guildai
(Garrett)
1
我想这取决于你指定了多少行(5 行?500 行?),但我同意这确实有点不一致。
sam
(Sam Saffron)
3
目前这还无法配置。不过我很好奇,如果你可以直接请求 L12-L20,那还要上下文做什么呢?
这有点像是把两个功能请求合并在一个里了
我猜你是想让它“高亮”显示这些行,然后在周围添加上下文?我想这对于选择 2 到 5 行可能很有用,但如果是一大块黄色区域,可能会显得太刺眼了。
guildai
(Garrett)
4
在这种情况下,我将引导读者经历对文件的一系列更改。每种情况下的上下文都很重要,无论我高亮显示一行还是多行。
该组件已经能够高亮显示带上下文的一行。我这里的用例希望将相同的行为应用于多行。
我理解当前方案的合理性,但我认为支持带上下文的多行高亮同样有充分的理由。
如果 Onebox 目前除了链接本身之外尚不可配置,那么就需要对其进行配置。也许可以像这样?
<span
data-onebox-highlight="true"
data-onebox-context="5"
>https://github.com/.../get-started/mnist_mlp.py#L16-L18</span>
这里并没有太多新内容,只是配置组件如何格式化和显示内容。
直观来看,这似乎只需在后端进行更改。请考虑以下两个 onebox.json 响应之间的差异:
正如人们所预期的那样,其中一个响应包含带 highlight 行的上下文,而另一个则没有。
如果 后端 能够针对每个请求进行配置,那么只需应用现有的格式化规则即可。我注意到当前的实现假设 只高亮一行。支持行范围所需的更改非常小(例如,使用要高亮的行数组并 检查成员资格)。
sam
(Sam Saffron)
5
也许像这样处理这些情况会奏效,如果它们确实是完全离群值的话。问题在于这与 GitHub 冲突,这不太好。
https://github.com/.../get-started/mnist_mlp.py?#L16-L18-context-3
或者,如果上下文区域不超过 4 行,也可以默认直接包含上下文。
guildai
(Garrett)
6
就我个人而言,我会避免隐式行为。我已经有一个示例突出了五行代码 
我针对此问题实现了一个变通方案,使用一个主题组件,该组件会查找包含被包裹 GitHub 链接配置的外层 div 元素。该组件会等待 DOM 修改事件,以知晓链接何时被替换为代码行,然后基于 li.selected 状态进行选择。这个“ hack”不会更改检索到的代码行,因此无法添加或移除上下文。
我认为,或许采用一种显式方法来控制行为,比修改任何默认设置或试图让组件变得更“智能”更好。
在 URL 本身中传达配置/设置或许可行,但这会削弱链接的语义含义。如果无法使用包装标签,我假设您至少希望移除与 onebox 相关的特定配置。