StarryNights

每一个你所后悔的现在,都有一个不够努力的曾经

站内检索

循着字句,邂逅星光

搜索文章标题与正文,直达命中的章节

开始一次轻盈的站内探索

从这些主题开始探索

输入关键词

可同时输入多个词语缩小范围

发现内容

在摘要中查看高亮的关键词

快速直达

点击文章或章节标题继续阅读

# 引言

尊重原创,为 Shoka 主题添加文章转载标记——在主页文章缩略信息头部 segments 和 正文头部添加转载信息

# 实现

主要利用 文章 Front-matter 标记转载信息,在生成发布文章时进行解析添加相关转载信息

关于 Front-matter 标记的约定

以 || 作为分割,分为左右两部分

  • 第一部分:代表链接显示的文本内容已经指向超链接时显示的文本内容
  • 第二部分:代表链接网址

注意:可以只有第一部分,那么链接文本和网址均使用这一部分的内容,如果链接网址非 http 开头,默认转载链接不可追溯,使用 reprint_unable_trace_source 代指的文本串做文本提示(添加到 zh-CN.yaml 等文本中的字符码),一些案列如下

reprintlink: 互联网
// 只有 第一部分
// 链接文本 => 互联网,链接网址 => 互联网(非 http 开头,使用预设文本串做提示文文本)

🚀 本文转载自:互联网『原文出处暂无处追寻』

reprintlink: https://www.baidu.com
// 只有 第一部分
// 链接文本 => https://www.baidu.com,链接网址 => https://www.baidu.com

🚀 本文转载自:https://www.baidu.com

reprintlink: 百度||https://www.baidu.com
// 分为两部分
// 链接文本 => 百度,链接网址 => https://www.baidu.com

🚀 本文转载自:百度

# 修改文件列表

需要修改的文件列表如下,相对于 Shoka 主题根目录

├── languages
│   └── zh-CN.yml
├── layout
│   └── _macro
│       └── postmeta.njk
├────── _partials
│       └── post
│           └── post.njk

# 修改多语言字段信息

添加转载相关文本串,博主这儿为了方(偷)便(懒)只加了简体中文,其他的语言添加方法类似,目前加在了 post 分类下

post:
    # ...
    reprint: 『转载』
    reprintlink: '🚀 本文转载自:%s'
    reprint_unable_trace_source: 『原文出处暂无处追寻』
    # ...

# 修改主页文章缩略信息头部 segments

文件 layout\_macro\postmeta.njk,放在 meta 标签头部

<div class="meta">
    {%- if item.reprintlink %}
        <span class="item" title="{{ __('post.reprint') }}" style="margin-right: -0.625rem">
            <span class="icon">
                <i class="ic i-link-alt"></i>
            </span>
            <span class="reprint">
                <font>{{ __('post.reprint') }}</font>
            </span>
        </span>
    {%- endif %}
    <!--...-->
</div>

# 修改正文顶部显示信息

文件 layout\_partials\post\post.njk,放在 body 结构 Gallery support 后面

<div class="body md{%- if post.direction and post.direction.toLowerCase() === 'rtl' %} rtl{%- endif %}" itemprop="articleBody">
    
    {%- if post.photos and post.photos.length %}
        <div class="gallery" itemscope itemtype="http://schema.org/ImageGallery">
            {%- for photo in post.photos %}
                <img data-src="<!--swig0-->" itemprop="contentUrl">
            {%- endfor %}
        </div>
    {%- endif %}

    <!--comment1-->
    {%- if post.reprintlink %}
        {%- set reprintlinkInfo = post.reprintlink.split('||') %}
        {%- set linkUrl = reprintlinkInfo[0] | trim %}
        {%- if reprintlinkInfo[1] %}
            {%- set linkUrl = reprintlinkInfo[1] | trim %}
        {%- endif %}
        {%- set linkName = reprintlinkInfo[0] | trim %}
        {%- if linkUrl.startsWith('http') %}
            <div class="note info">
                <p><!--swig2-->
                    <a href="<!--swig3-->" rel="noopener external nofollow noreferrer" target="_blank" class="exturl" title="<!--swig4-->"><!--swig5--></a>
                </p>
            </div>
        {%- else %}
            <div class="note info">
                <p><!--swig6-->
                    <span class="blue"><!--swig7--></span></p>
            </div>
        {%- endif %}
    {%- endif %}
    <!--comment8-->
</div>

# 效果预览

具体效果可以参考 本文 实现 部分的案例,或者 《为什么程序员都是夜猫子?》 一文头部的转载信息

更新于 阅读次数 — 次
STARRY NIGHTSPERSONAL NOTES

赞赏

文章至此,故事还在继续。

Seiun

长按或右键保存收款码

文章关联

1 篇关联

顺着引用的连线,读见篇章交错的脉络

展开关系图

拖动平移 · Ctrl / ⌘ + 滚轮缩放 · 点击节点阅读

当前文章本文引用
引用列表

引用本文0

暂无

本文引用1

  • 为什么程序员都是夜猫子?
    AI 摘要

    文章解释程序员偏爱深夜工作的原因。一是“工人的时间表”:编程需长时间不被打扰,把复杂系统装入大脑,白天琐事会摧毁心智模型,夜晚更安静。二是疲倦的大脑:适度疲倦减少多余脑力,反而更专注,不易分心。三是明亮屏幕:夜间盯屏幕会推迟睡眠周期,逐渐形成凌晨入睡、中午起床的作息。最终,夜晚没有何时停止工作的限制,让人更放松、少干扰,屏幕也使人保持清醒,因此成为高效时段。

文章关联