日、周、月记录模板分享

第一次使用思源笔记,感觉社区中相关的模板还是比较少,然后在大佬给出的模板基础上,进行了一些修改,于是有了本文。(由于参考了直接导出,相关 id 没有删除,可以自行处理,但是不删也不影响)

还有一个问题:在周和月导出的时候会出现几个不知名“}}}”,但是在笔记页面的显示是正常的,目前还不知原因。

使用方法:将代码保存到 md 文件中,然后放入到模板文件夹就可以调用了。

吐槽一下:笔记导出的模板并不能很好的支持时间等动态设置,其实这一块可以进行对应设计(大部分都是时间要求,导出时加上固定模板和变量名即可),但是导出是静态的。【希望大家多多支持社区发展!!!】

这是在其他大佬项目下自己做的一个针对性修改,欢迎给大佬 star:https://github.com/Achuan-2/siyuan-note-templates

Update:有大佬加入了天气功能,并提供了相关下载,详情见评论区!!!

日模板:

file20241218.png

.action{ $anchorSunday := "2022-12-25" }
.action{ $yearStartDate := now.Year | printf "%d-01-01" | toDate "2006-01-02" }
.action{ $ysDateDuration := div ($yearStartDate.Sub (toDate "2006-01-02" $anchorSunday)).Hours 24 }
.action{ $ysWeekDay := mod $ysDateDuration 7 }
.action{ $yearStartWeek := add (div (sub $ysDateDuration 1) 7) 1 }
.action{ if or (eq $ysWeekDay 0) (gt $ysWeekDay 4) }
    .action{ $yearStartWeek := add $yearStartWeek 1 }
.action{ end }


.action{ $nowWeek := add (div (div (now.Sub (toDate "2006-01-02" $anchorSunday)).Hours 24) 7) 1 }
.action{ $week := add (sub $nowWeek $yearStartWeek) 1 }
.action{$today:= (now | date "2006-01")}
.action{$weeks:= (list $today "Week" $week| join " ")}



.action{ $nextYear := now.Year | add 1 }
.action{ $nextYearStart := $nextYear | printf "%d-01-01" | toDate "2006-01-02" }
.action{ $dayleft := (div (($nextYearStart).Sub now).Hours 24) }
.action{$week := add (mod (div ((toDate "2006-01-02" "2100-12-27").Sub now).Hours 24) 7) 1}


.action{ $anchorDate := toDate "2006-01-02" $anchorSunday }
.action{ $daysSinceAnchor := div (now.Sub $anchorDate).Hours 24 }
.action{ $weekIndex := mod (add $daysSinceAnchor 7) 7 }
.action{ $weekDays := list "星期天" "星期一" "星期二" "星期三" "星期四" "星期五" "星期六" }
.action{ $currentWeekDay := index $weekDays $weekIndex }


{{{col
{{{row
🕐 创建时间:.action{now | date "2006-01-02 15:04"} .action{$currentWeekDay}
}}}
{{{row
距离 `.action{ $nextYearStart.Year }-01-01` 还剩 `.action{$dayleft}` 天,Power!
}}}
{: style="color: var(--b3-card-info-color); background-color: var(--b3-card-info-background);"}
}}}

<br/>

{{{row

## 🎯Schedule
{: name=".action{now | date "2006-01-02"}" style="background-color: var(--b3-font-background11); --b3-parent-background: var(--b3-font-background11);"}

{{{col

{{{row
### ⏰今日目标
---
- [ ] 
}}}

{{{row
### ⛱相关资源
---
* 
}}}

{{{row
### 🧠其他收获
---
* 
}}}

}}}
{: name="" fold="0"}
.action{/*s上面设置命名为空和不折叠,为了防止超级块内部的属性错位,被超级块获取*/}
}}}

<br/>

---

## <span data-type="strong">✏️工作记录</span>
{: id="20241216161447-5xs9g5h" style="background-color: var(--b3-font-background5); --b3-parent-background: var(--b3-font-background5);"}

@Aim:
{: custom-docinfo="@aim" }

@Point:
{: custom-docinfo="@point"}

###### Main:
<br/>

---

{{{row
## ✍每日总结
{: alias=".action{$weeks}" name=".action{now | date "2006-01-02"}" style="background-color: var(--b3-font-background12); --b3-parent-background: var(--b3-font-background12);"}

* 
<br/>

}}}

{: name="" fold="0"}
.action{/*s上面设置命名为空和不折叠,为了防止超级块内部的属性错位,被超级块获取*/}
---

## 🤨新的问题
{: id="20241216161048-9bcmrl5" style="background-color: var(--b3-font-background1); --b3-parent-background: var(--b3-font-background1);"}

* {: id="20241216163341-tzjytgu"}
  {: id="20241216163341-sapefqz"}
{: id="20241216161048-l036r1d"}

{: id="20241216163337-grbzksp"}

---
{: id="20241216161048-beu85nf"}

## <span data-type="text">📂</span>{: style="background-color: var(--b3-font-background8); color: var(--b3-card-success-color);"}<span data-type="text">知识补充&资源记录</span>{: style="background-color: var(--b3-font-background8);"}
{: id="20241216161826-hc10ke6" style="background-color: var(--b3-font-background8); --b3-parent-background: var(--b3-font-background8);"}

* {: id="20241216161826-sjo55jx"}📂<span data-type="strong">Project</span>
  {: id="20241216161826-n8jfixd"}
* {: id="20241216161826-misoirf"}📂<span data-type="strong">Resources</span>
  {: id="20241216161826-xdiudv6"}
{: id="20241216161826-gqcm5z7"}

{: id="20241216161021-yyxcsay" title="未命名文档" type="doc"}




周模板:

fileWeek51.png

.action{ $anchorSunday := "2022-12-25" }
.action{ $yearStartDate := now.Year | printf "%d-01-01" | toDate "2006-01-02" }
.action{ $ysDateDuration := div ($yearStartDate.Sub (toDate "2006-01-02" $anchorSunday)).Hours 24 }
.action{ $ysWeekDay := mod $ysDateDuration 7 }
.action{ $yearStartWeek := add (div (sub $ysDateDuration 1) 7) 1 }
.action{ if or (eq $ysWeekDay 0) (gt $ysWeekDay 4) }
    .action{ $yearStartWeek := add $yearStartWeek 1 }
.action{ end }

.action{ $nowWeek := add (div (div (now.Sub (toDate "2006-01-02" $anchorSunday)).Hours 24) 7) 1 }
.action{ $week := add (sub $nowWeek $yearStartWeek) 1 }


.action{$today:= (now | date "2006-01")}
.action{$weekResult:= (list $today "Week" $week| join " ")}

.action{$curYear := now.Year}
.action{$weeks:= (list $curYear "Week" $week| join " ")}



## 📅.action{$weekResult}



.action{/*今天距离周一有几天*/}
.action{$ng_week := (mod (div ((toDate "2006-01-02" "2021-06-28").Sub now).Hours 24) 7) }

.action{/*用于range循环,表示循环7次, 没什么实际意义*/}
.action{$days := list "星期六" "星期五" "星期四" "星期三" "星期二" "星期一" "星期天"}


.action{/*循环生成星期列表*/}
.action{/*生成周一日期所需要修正的时长*/}
.action{$monday:= mul 24 $ng_week}

{{{col
.action{range $index,$day:=$days}

.action{/*布局*/}
.action{$setColum:= mod (add $index 1) 3 }
.action{if eq $setColum 1}
{{{
.action{end}


.action{/*迭代 每次增加24*/}
.action{$after := mul 24 $index}
.action{/*在周一的基础上,附加的时间*/}
.action{$realdate:= add $monday $after}
.action{/*生成以 h 为单位的 字符串*/}
.action{$result:=(list $realdate "h" | join "")}
.action{/*获取列表项*/}
.action{$days_list := now | date_modify $result  | date "2006-01-02"}

### .action{$days_list}  .action{last (slice (list "星期一" "星期二" "星期三" "星期四" "星期五" "星期六" "星期日") 0 (add 1 $index ) )}

{{select * from blocks where name=".action{$days_list}" and content="🎯Schedule" }}

<br/>


.action{/*布局*/}
.action{$setColum:= mod (add $index 1) 1 }
.action{if eq $setColum 2}
}}}
.action{else if eq $index 3}
}}}
.action{end}

.action{$index := add  $index 2}
.action{end}



### 日总结汇总
{{SELECT * from blocks where type='h' and  content = '✍每日总结' and alias='.action{$weekResult}' }}
<br/>
---

### 一周总结
{: alias=".action{$weeks}" style="background-color: var(--b3-font-background10); --b3-parent-background: var(--b3-font-background10);"}
<br/>


月模板:

file202412.png

.action{$currentYear := now.Year}
.action{$currentMonth := now.Month | printf "%02d"}
.action{$currentMonthYear := list $currentYear $currentMonth | join "年" | printf "%s月"}

## 📅 .action{$currentMonthYear}
---

.action{$anchorSunday := "2022-12-25"}
.action{$yearStartDate := $currentYear | printf "%d-01-01" | toDate "2006-01-02"}
.action{$ysDateDuration := div ($yearStartDate.Sub (toDate "2006-01-02" $anchorSunday)).Hours 24}
.action{$ysWeekDay := mod $ysDateDuration 7}
.action{$yearStartWeek := add (div (sub $ysDateDuration 1) 7) 1}
.action{if or (eq $ysWeekDay 0) (gt $ysWeekDay 4)}
  .action{$yearStartWeek := add $yearStartWeek 1}
.action{end}


.action{$nowWeek := add (div (div (now.Sub (toDate "2006-01-02" $anchorSunday)).Hours 24) 7) 1}
.action{$week := add (sub $nowWeek $yearStartWeek) 1}


.action{$weeksToDisplay := list 0 1 2 3}
.action{range $weekIndex := $weeksToDisplay}

## 第.action{add $week $weekIndex}周

.action{$aliasValue := printf "%d Week %d" $currentYear (add $week $weekIndex)}
{{select * from blocks where alias=".action{$aliasValue}"}}

<br/>

.action{end}

---


### 月总结
{: alias=".action{$currentYear} Month .action{$currentMonth}" style="background-color: var(--b3-font-background11); --b3-parent-background: var(--b3-font-background11);"}
-
<br/>

  • 思源笔记

    思源笔记是一款隐私优先的个人知识管理系统,支持完全离线使用,同时也支持端到端加密同步。

    融合块、大纲和双向链接,重构你的思维。

    22919 引用 • 92143 回帖
5 操作
EsonLiu 在 2024-12-18 13:26:45 更新了该帖
EsonLiu 在 2024-12-18 13:24:35 更新了该帖
EsonLiu 在 2024-12-17 19:50:53 更新了该帖
EsonLiu 在 2024-12-17 14:23:46 更新了该帖 EsonLiu 在 2024-12-17 14:16:15 更新了该帖

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...
  • EsonLiu
    作者

    感谢老哥整理和添加功能,已经写入正文,再次感谢老哥分享 🙏

    1 回复
  • 其他回帖
  • EsonLiu 1 赞同
    作者

    非常感谢,个人感觉年模板太宽泛就没有考虑,后面可能会考虑(当然您也可以自己制作——>1.以月度为模板修改,在月度总结上,对每一个月度总结加上年和月份的别名 2.复制月模板,修改循环和标识,数据库则提取前面对应的别名即可 3.最后将月度总结修改为年度总结即可)🙏

  • 好的,没事的,已修改。


    最新版更新:

    完整日记模板代码(右键菜单另存为即可下载):

    https://gitee.com/wish163/mysoft/raw/main/%E6%80%9D%E6%BA%90/daliy_note.md

    如果想在自己已有模板基础上添加天气,可以把上述模板的最后一行的代码复制到你的模板任意一行即可,为防止意外,最好单独放置一行,通常放模板最后一行即可。

    源码:

    https://gitee.com/wish163/mysoft/blob/main/%E6%80%9D%E6%BA%90/%E7%BB%99%E6%97%A5%E8%AE%B0%E6%A8%A1%E6%9D%BF%E6%B7%BB%E5%8A%A0%E5%A4%A9%E6%B0%94%E6%94%B9%E8%BF%9B%E7%89%88.js?utm_source=ld246.com

    注意,以上模板的代码每次打开都是最新版。


    也可以直接用这个代码,放到模板任意行即可(不推荐,因为这个代码是在帖子里写死的,不会实时更新)

    {{//!js_esc_newline_return (async () => {_esc_newline_    // 等待时长,默认60秒_esc_newline_    const waitForTime = 60;_esc_newline_    getWeather();_esc_newline_    async function getWeather () {_esc_newline_        const weather = await fetch('https://wttr.in/?format=1');_esc_newline_        const text = await weather.text();_esc_newline_        render(text);_esc_newline_    };_esc_newline_    async function render(text) {_esc_newline_        const {datetimeP, datetimeEl} = getDatetimeEl();_esc_newline_        if(!datetimeP && !datetimeEl) {_esc_newline_            delItem();_esc_newline_            return;_esc_newline_        }_esc_newline_        const loadingEl = datetimeEl.querySelector('span[data-type~="loading"]');_esc_newline_        if(loadingEl) {_esc_newline_            loadingEl.remove();_esc_newline_        }_esc_newline_        datetimeEl.innerHTML = datetimeEl.innerHTML + ' ' + text.trim().replace(/\s+/g, ' ');_esc_newline_        // 更新日期块_esc_newline_        fetchSyncPost('/api/block/updateBlock', {_esc_newline_            "dataType": "dom",_esc_newline_            "data": datetimeP.outerHTML,_esc_newline_            "id": datetimeP.dataset.nodeId_esc_newline_        });_esc_newline_        // 删除嵌入块_esc_newline_        delItem();_esc_newline_    }_esc_newline_    function getDatetimeEl() {_esc_newline_        const protyle = item.closest('.protyle-wysiwyg');_esc_newline_        const datetimeP = protyle?.querySelector('.sb:first-child .p:first-child');_esc_newline_        if(!datetimeP) return {};_esc_newline_        const datetimeEl = datetimeP.querySelector('[contenteditable="true"]');_esc_newline_        if(!datetimeEl) return {datetimeP};_esc_newline_        return {datetimeP, datetimeEl};_esc_newline_    }_esc_newline_    function delItem() {_esc_newline_        // 删除嵌入块_esc_newline_        fetchSyncPost('/api/block/deleteBlock', {id: item?.dataset?.nodeId});_esc_newline_        // 清除定时器_esc_newline_        if(timer) clearTimeout(timer);_esc_newline_    }_esc_newline_    let timer = 0;_esc_newline_    whenRender().then(el => {_esc_newline_        el.outerHTML = '正在获取天气...';_esc_newline_        const {datetimeEl} = getDatetimeEl();_esc_newline_        if(datetimeEl) {_esc_newline_            item.style.display = 'none';_esc_newline_            datetimeEl.innerHTML = datetimeEl.innerHTML + '<span data-type="text loading"> Loading</span>';_esc_newline_        }_esc_newline_        timer = setTimeout(() => {_esc_newline_            // 删除嵌入块_esc_newline_            if(item?.dataset?.nodeId) fetchSyncPost('/api/block/deleteBlock', {id: item?.dataset?.nodeId});_esc_newline_            // 删除loading_esc_newline_            const loadingEl = datetimeEl.querySelector('span[data-type~="loading"]');_esc_newline_            if(loadingEl) loadingEl.remove();_esc_newline_        }, waitForTime * 1000);_esc_newline_    });_esc_newline_    function whenRender(selector = '.b3-form__space--small') {_esc_newline_        return new Promise(resolve => {_esc_newline_            const check = () => {_esc_newline_                let el = item.querySelector(selector);_esc_newline_                if (el) resolve(el); else requestAnimationFrame(check);_esc_newline_            };_esc_newline_            check();_esc_newline_        });_esc_newline_    }_esc_newline_    return [];_esc_newline_})();}}
    
  • 不客气哈,也感谢你提供这么好的模板。


    补充改进版:

    1. 改进加载时提示 Loading 在时间文本的右侧,不再出现在嵌入块处
    2. 其他细节优化

    使用方法:

    把下面的代码添加到日记模板的任意位置即可(目前仅支持了日记模板,周模板,月模板需自己修改)。

    {{//!js_esc_newline_return (async () => {_esc_newline_    // 等待时长,默认60秒_esc_newline_    const waitForTime = 60;_esc_newline_    getWeather();_esc_newline_    async function getWeather () {_esc_newline_        const weather = await fetch('https://wttr.in/?format=1');_esc_newline_        const text = await weather.text();_esc_newline_        render(text);_esc_newline_    };_esc_newline_    async function render(text) {_esc_newline_        const {datetimeP, datetimeEl} = getDatetimeEl();_esc_newline_        if(!datetimeP && !datetimeEl) {_esc_newline_            delItem();_esc_newline_            return;_esc_newline_        }_esc_newline_        const loadingEl = datetimeEl.querySelector('span[data-type~="loading"]');_esc_newline_        if(loadingEl) {_esc_newline_            loadingEl.remove();_esc_newline_        }_esc_newline_        datetimeEl.innerHTML = datetimeEl.innerHTML + ' ' + text.trim().replace(/\s+/g, ' ');_esc_newline_        // 更新日期块_esc_newline_        fetchSyncPost('/api/block/updateBlock', {_esc_newline_            "dataType": "dom",_esc_newline_            "data": datetimeP.outerHTML,_esc_newline_            "id": datetimeP.dataset.nodeId_esc_newline_        });_esc_newline_        // 删除嵌入块_esc_newline_        delItem();_esc_newline_    }_esc_newline_    function getDatetimeEl() {_esc_newline_        const protyle = item.closest('.protyle-wysiwyg');_esc_newline_        const datetimeP = protyle?.querySelector('.sb:first-child .p:first-child');_esc_newline_        if(!datetimeP) return {};_esc_newline_        const datetimeEl = datetimeP.querySelector('[contenteditable="true"]');_esc_newline_        if(!datetimeEl) return {datetimeP};_esc_newline_        return {datetimeP, datetimeEl};_esc_newline_    }_esc_newline_    function delItem() {_esc_newline_        // 删除嵌入块_esc_newline_        fetchSyncPost('/api/block/deleteBlock', {id: item?.dataset?.nodeId});_esc_newline_        // 清除定时器_esc_newline_        if(timer) clearTimeout(timer);_esc_newline_    }_esc_newline_    let timer = 0;_esc_newline_    whenRender().then(el => {_esc_newline_        el.outerHTML = '正在获取天气...';_esc_newline_        const {datetimeEl} = getDatetimeEl();_esc_newline_        if(datetimeEl) {_esc_newline_            item.style.display = 'none';_esc_newline_            datetimeEl.innerHTML = datetimeEl.innerHTML + '<span data-type="text loading"> Loading</span>';_esc_newline_        }_esc_newline_        timer = setTimeout(() => {_esc_newline_            // 删除嵌入块_esc_newline_            if(item?.dataset?.nodeId) fetchSyncPost('/api/block/deleteBlock', {id: item?.dataset?.nodeId});_esc_newline_            // 删除loading_esc_newline_            const loadingEl = datetimeEl.querySelector('span[data-type~="loading"]');_esc_newline_            if(loadingEl) loadingEl.remove();_esc_newline_        }, waitForTime * 1000);_esc_newline_    });_esc_newline_    function whenRender(selector = '.b3-form__space--small') {_esc_newline_        return new Promise(resolve => {_esc_newline_            const check = () => {_esc_newline_                let el = item.querySelector(selector);_esc_newline_                if (el) resolve(el); else requestAnimationFrame(check);_esc_newline_            };_esc_newline_            check();_esc_newline_        });_esc_newline_    }_esc_newline_    return [];_esc_newline_})();}}
    

    源码:

    https://gitee.com/wish163/mysoft/blob/main/%E6%80%9D%E6%BA%90/%E7%BB%99%E6%97%A5%E8%AE%B0%E6%A8%A1%E6%9D%BF%E6%B7%BB%E5%8A%A0%E5%A4%A9%E6%B0%94%E6%94%B9%E8%BF%9B%E7%89%88.js

    完整日记模板下载:

    daliynote.md.zip

    1 回复
  • 查看全部回帖

推荐标签 标签

  • TensorFlow

    TensorFlow 是一个采用数据流图(data flow graphs),用于数值计算的开源软件库。节点(Nodes)在图中表示数学操作,图中的线(edges)则表示在节点间相互联系的多维数据数组,即张量(tensor)。

    20 引用 • 19 回帖 • 3 关注
  • Notion

    Notion - The all-in-one workspace for your notes, tasks, wikis, and databases.

    7 引用 • 39 回帖
  • Solidity

    Solidity 是一种智能合约高级语言,运行在 [以太坊] 虚拟机(EVM)之上。它的语法接近于 JavaScript,是一种面向对象的语言。

    3 引用 • 18 回帖 • 400 关注
  • 音乐

    你听到信仰的声音了么?

    61 引用 • 511 回帖
  • GitLab

    GitLab 是利用 Ruby 一个开源的版本管理系统,实现一个自托管的 Git 项目仓库,可通过 Web 界面操作公开或私有项目。

    46 引用 • 72 回帖
  • MySQL

    MySQL 是一个关系型数据库管理系统,由瑞典 MySQL AB 公司开发,目前属于 Oracle 公司。MySQL 是最流行的关系型数据库管理系统之一。

    691 引用 • 535 回帖
  • Quicker

    Quicker 您的指尖工具箱!操作更少,收获更多!

    34 引用 • 148 回帖
  • OnlyOffice
    4 引用 • 3 关注
  • Bootstrap

    Bootstrap 是 Twitter 推出的一个用于前端开发的开源工具包。它由 Twitter 的设计师 Mark Otto 和 Jacob Thornton 合作开发,是一个 CSS / HTML 框架。

    18 引用 • 33 回帖 • 667 关注
  • Laravel

    Laravel 是一套简洁、优雅的 PHP Web 开发框架。它采用 MVC 设计,是一款崇尚开发效率的全栈框架。

    20 引用 • 23 回帖 • 726 关注
  • Sillot

    Insights(注意当前设置 master 为默认分支)

    汐洛彖夲肜矩阵(Sillot T☳Converbenk Matrix),致力于服务智慧新彖乄,具有彖乄驱动、极致优雅、开发者友好的特点。其中汐洛绞架(Sillot-Gibbet)基于自思源笔记(siyuan-note),前身是思源笔记汐洛版(更早是思源笔记汐洛分支),是智慧新录乄终端(多端融合,移动端优先)。

    主仓库地址:Hi-Windom/Sillot

    文档地址:sillot.db.sc.cn

    注意事项:

    1. ⚠️ 汐洛仍在早期开发阶段,尚不稳定
    2. ⚠️ 汐洛并非面向普通用户设计,使用前请了解风险
    3. ⚠️ 汐洛绞架基于思源笔记,开发者尽最大努力与思源笔记保持兼容,但无法实现 100% 兼容
    29 引用 • 25 回帖 • 88 关注
  • TextBundle

    TextBundle 文件格式旨在应用程序之间交换 Markdown 或 Fountain 之类的纯文本文件时,提供更无缝的用户体验。

    1 引用 • 2 回帖 • 55 关注
  • FlowUs

    FlowUs.息流 个人及团队的新一代生产力工具。

    让复杂的信息管理更轻松、自由、充满创意。

    1 引用 • 1 关注
  • LaTeX

    LaTeX(音译“拉泰赫”)是一种基于 ΤΕΧ 的排版系统,由美国计算机学家莱斯利·兰伯特(Leslie Lamport)在 20 世纪 80 年代初期开发,利用这种格式,即使使用者没有排版和程序设计的知识也可以充分发挥由 TeX 所提供的强大功能,能在几天,甚至几小时内生成很多具有书籍质量的印刷品。对于生成复杂表格和数学公式,这一点表现得尤为突出。因此它非常适用于生成高印刷质量的科技和数学类文档。

    12 引用 • 54 回帖 • 49 关注
  • Java

    Java 是一种可以撰写跨平台应用软件的面向对象的程序设计语言,是由 Sun Microsystems 公司于 1995 年 5 月推出的。Java 技术具有卓越的通用性、高效性、平台移植性和安全性。

    3189 引用 • 8214 回帖 • 3 关注
  • NetBeans

    NetBeans 是一个始于 1997 年的 Xelfi 计划,本身是捷克布拉格查理大学的数学及物理学院的学生计划。此计划延伸而成立了一家公司进而发展这个商用版本的 NetBeans IDE,直到 1999 年 Sun 买下此公司。Sun 于次年(2000 年)六月将 NetBeans IDE 开源,直到现在 NetBeans 的社群依然持续增长。

    78 引用 • 102 回帖 • 686 关注
  • HTML

    HTML5 是 HTML 下一个的主要修订版本,现在仍处于发展阶段。广义论及 HTML5 时,实际指的是包括 HTML、CSS 和 JavaScript 在内的一套技术组合。

    107 引用 • 295 回帖
  • 小薇

    小薇是一个用 Java 写的 QQ 聊天机器人 Web 服务,可以用于社群互动。

    由于 Smart QQ 从 2019 年 1 月 1 日起停止服务,所以该项目也已经停止维护了!

    34 引用 • 467 回帖 • 746 关注
  • CongSec

    本标签主要用于分享网络空间安全专业的学习笔记

    1 引用 • 1 回帖 • 17 关注
  • WebSocket

    WebSocket 是 HTML5 中定义的一种新协议,它实现了浏览器与服务器之间的全双工通信(full-duplex)。

    48 引用 • 206 回帖 • 322 关注
  • Rust

    Rust 是一门赋予每个人构建可靠且高效软件能力的语言。Rust 由 Mozilla 开发,最早发布于 2014 年 9 月。

    58 引用 • 22 回帖 • 3 关注
  • Gzip

    gzip (GNU zip)是 GNU 自由软件的文件压缩程序。我们在 Linux 中经常会用到后缀为 .gz 的文件,它们就是 Gzip 格式的。现今已经成为互联网上使用非常普遍的一种数据压缩格式,或者说一种文件格式。

    9 引用 • 12 回帖 • 145 关注
  • GitHub

    GitHub 于 2008 年上线,目前,除了 Git 代码仓库托管及基本的 Web 管理界面以外,还提供了订阅、讨论组、文本渲染、在线文件编辑器、协作图谱(报表)、代码片段分享(Gist)等功能。正因为这些功能所提供的便利,又经过长期的积累,GitHub 的用户活跃度很高,在开源世界里享有深远的声望,并形成了社交化编程文化(Social Coding)。

    209 引用 • 2031 回帖
  • 开源中国

    开源中国是目前中国最大的开源技术社区。传播开源的理念,推广开源项目,为 IT 开发者提供了一个发现、使用、并交流开源技术的平台。目前开源中国社区已收录超过两万款开源软件。

    7 引用 • 86 回帖
  • Ant-Design

    Ant Design 是服务于企业级产品的设计体系,基于确定和自然的设计价值观上的模块化解决方案,让设计者和开发者专注于更好的用户体验。

    17 引用 • 23 回帖 • 2 关注
  • Netty

    Netty 是一个基于 NIO 的客户端-服务器编程框架,使用 Netty 可以让你快速、简单地开发出一个可维护、高性能的网络应用,例如实现了某种协议的客户、服务端应用。

    49 引用 • 33 回帖 • 23 关注
  • danl
    144 关注