19 Commits

Author SHA1 Message Date
a13ea053e3 1 2025-07-17 17:02:29 +08:00
0725cd779f 1 2025-07-17 17:01:17 +08:00
47caddad60 Merge branch 'master' of https://gitea.f2b211.com/jsasg/orico-official-website 2025-07-17 16:49:08 +08:00
5db4263f67 1 2025-07-17 16:49:03 +08:00
9887bd1045 Merge branch 'dev' 2025-07-17 16:43:24 +08:00
f211f58068 1 2025-07-17 16:40:23 +08:00
e7e7386054 1 2025-07-17 16:35:38 +08:00
9c7f2d394b 1 2025-07-17 16:31:42 +08:00
a1f1716f5c 1还原 2025-07-17 16:27:14 +08:00
250f78593a 还原 2025-07-17 16:25:01 +08:00
2c0b8161a5 1 2025-07-17 16:22:28 +08:00
83fa83e00d 1 2025-07-17 16:18:57 +08:00
176b25b631 1 2025-07-17 16:11:01 +08:00
4b2566b762 ·1 2025-07-17 16:02:31 +08:00
a25f87de9f 1 2025-07-17 15:40:29 +08:00
ec6fa7fe77 1 2025-07-17 15:39:17 +08:00
0ba299ee05 1 2025-07-17 15:32:22 +08:00
d06002d95c 1 2025-07-17 15:30:43 +08:00
1758fb8995 格式化 2025-07-17 15:22:56 +08:00
4 changed files with 294 additions and 135 deletions

View File

@@ -22,18 +22,18 @@
<div class="headtop">
{eq name=":cookie('think_lang')" value="zh-cn"}
<a href="{:url('/index/topic/nas/index')}">
{else/}
<a>
{/eq}
<img src="__IMAGES__/logo.png" class="logoicoimg">
</a>
<div style="display: flex;">
<img src="__IMAGES__/fenlei.png" class="ssicoimg" id="flico">
<img src="__IMAGES__/sousuo.png" class="ssicoimg" id="ssico" style="margin-right:32px">
</div>
{else/}
<a>
{/eq}
<img src="__IMAGES__/logo.png" class="logoicoimg">
</a>
<div style="display: flex;">
<img src="__IMAGES__/fenlei.png" class="ssicoimg" id="flico">
<img src="__IMAGES__/sousuo.png" class="ssicoimg" id="ssico" style="margin-right:32px">
</div>
</div>
<!-- 文章内容 -->
<div class="ql-container">
<div class="ql-container">
<div id="rendered-content" class="nhlp-app-content ql-editor">
{$article.content|raw|default=''}
</div>
@@ -42,7 +42,8 @@
<div class="nhlpapp-search">
<div class="nhlpappshtop">
<div class="nhlpapp-shdiv">
<input class="nhlp-ipt" id="search-input" placeholder="{:lang_i18n('请输入搜索关键字,如安装赛博云空间,影视库')}" autocomplete="off">
<input class="nhlp-ipt" id="search-input" placeholder="{:lang_i18n('请输入搜索关键字,如安装赛博云空间,影视库')}"
autocomplete="off">
<img src="__IMAGES__/ssapp.png" class="searchimg">
</div>
<span class="closetx">{:lang_i18n('取消')}</span>
@@ -52,7 +53,7 @@
<div class="dropdown" id="dropdown"></div>
</div>
<!-- 分类文章目录 -->
<div class="nhlpapp-pagescate" {:style(['display' => $Request.get.view == 'more' ? 'block' : 'none'])}>
<div class="nhlpapp-pagescate" {:style(['display'=> $Request.get.view == 'more' ? 'block' : 'none'])}>
<div class="nars-hlpdt-ml">
{notempty name="article_categorys"}
<div class="nav-tree">
@@ -60,14 +61,16 @@
<div class="categoryhelp">
<div class="categoryhelp-title">
<div>
<img src="__IMAGES__/nars-jt.png" class="arrow {if condition='$ac.id == $Request.get.cid'}rotate{/if}">
<img src="__IMAGES__/nars-jt.png"
class="arrow {if condition='$ac.id == $Request.get.cid'}rotate{/if}">
</div>
<span>{$ac.name}</span>
</div>
<ul class="sub-list" {if condition='$ac.id == $Request.get.cid'}style="display: block;"{/if}>
<ul class="sub-list" {if condition='$ac.id == $Request.get.cid' }style="display: block;" {/if}>
{volist name="ac.article" id="ar"}
<li>
<a href="{:url('/index/topic/nas/help_detail', ['cid' => $ac.id , 'id' => $ar.id])}" style="padding-top: 6px;">
<a href="{:url('/index/topic/nas/help_detail', ['cid' => $ac.id , 'id' => $ar.id])}"
style="padding-top: 6px;">
{$ar.title}
</a>
</li>
@@ -79,7 +82,7 @@
{/notempty}
</div>
</div>
<!-- 顶部国家选择-->
<!-- 顶部国家选择-->
<div class="top-country">
<div class="mask"></div>
<div class="action-sheet">
@@ -134,10 +137,10 @@
$('.nhlpapp-search').hide();
});
// 顶部国家选择
$('.top-country-toggle').click(function(){
$('.top-country-toggle').click(function () {
$(".mask,.action-sheet").show();
})
$('.top-country .close-icon').click(function(){
$('.top-country .close-icon').click(function () {
$(".mask,.action-sheet").hide();
})
// 搜索
@@ -172,43 +175,25 @@
})
}, 300);
});
// 英文截断
// 处理 #rendered-content 内的内容
$('#rendered-content').html(function(i, html) {
// 1. 先保护真正的空行(只包含&nbsp;的标签)
html = html.replace(/<(p|h[1-6])>(<strong>)?(&nbsp;| )*(<\/strong>)?<\/\1>/g, function(match) {
// 统一空行格式为 <p>&nbsp;</p> 或 <h2>&nbsp;</h2> 形式
return match.replace(/(<p>|<h[1-6]>)\s*(<strong>)?\s*(&nbsp;| )*\s*(<\/strong>)?\s*(<\/p>|<\/h[1-6]>)/,
function(m) {
var tag = m.match(/<(p|h[1-6])>/)[1];
return '<' + tag + '>&nbsp;</' + tag + '>';
});
});
// 2. 替换其他&nbsp;为普通空格(保留单词间的空格)
html = html.replace(/&nbsp;(?=\w)/g, ' ');
return html;
});
// 添加CSS样式确保英文单词完整换行
$('#rendered-content').css({
'word-wrap': 'break-word',
'overflow-wrap': 'break-word',
'word-break': 'normal',
'white-space': 'normal'
});
// 优化英文单词间的空格处理
$('#rendered-content').find('p, h1, h2, h3, h4, h5, h6').each(function() {
var $el = $(this);
// 只处理非空行
if ($el.html().trim() !== '&nbsp;') {
var html = $el.html()
.replace(/([a-zA-Z])(&nbsp;| )+([a-zA-Z])/g, '$1 $3') // 单词间保留一个空格
.replace(/(\d)(&nbsp;| )+([a-zA-Z])/g, '$1 $3') // 数字和单词间
.replace(/([a-zA-Z])(&nbsp;| )+(\d)/g, '$1 $3'); // 单词和数字间
$el.html(html);
// 英文截断处理
// 目标容器:富文本内容所在的元素
const contentContainer = $('#rendered-content');
// 遍历所有包含文本内容的标签p、h1-h6、strong等
contentContainer.find('*').each(function () {
const $element = $(this);
const htmlContent = $element.html();
// 条件1排除内容仅为一个&nbsp;的标签(如<p>&nbsp;</p>
if (htmlContent.trim() === '&nbsp;') {
return; // 不处理,继续下一个元素
}
// 条件2检查是否包含&nbsp;且有实际文本内容
if (htmlContent.includes('&nbsp;')) {
// 将所有&nbsp;替换为普通空格(有效占位符,支持单词完整换行)
const newContent = htmlContent.replace(/&nbsp;/g, ' ');
$element.html(newContent);
}
});
});

View File

@@ -114,7 +114,6 @@ body {
background-color: #444444;
color: #fff;
}
/*编辑器样式*/
@charset "UTF-8";.ql-container {
box-sizing: border-box;
font-family: Helvetica,Arial,sans-serif;
@@ -144,21 +143,7 @@ body {
margin: 0;
padding: 0
}
/* 空白占位符样式 */
.space-char {
display: inline;
white-space: pre; /* 保留空白 */
position: relative;
padding-right: 0.15em; /* 视觉间距补偿 */
}
.space-char:after {
content: " ";
visibility: hidden;
}
.space-replaced {
display: inline;
white-space: normal;
}
.ql-editor {
box-sizing: border-box;
line-height: 1.42;
@@ -169,37 +154,20 @@ body {
tab-size: 4;
-moz-tab-size: 4;
text-align: left;
word-wrap: break-word;
overflow-wrap: break-word;
word-break: normal;
white-space: normal;
white-space: pre-wrap;
word-wrap: break-word
}
.ql-editor>* {
cursor: text;
word-break: normal;
overflow-wrap: normal;
cursor: text
}
.ql-editor p,.ql-editor ol,.ql-editor ul,.ql-editor pre,.ql-editor blockquote,.ql-editor h1,.ql-editor h2,.ql-editor h3,.ql-editor h4,.ql-editor h5,.ql-editor h6 {
margin: 0;
padding: 0;
counter-reset: list-1 list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9;
word-wrap: break-word;
overflow-wrap: break-word;
word-break: keep-all;
white-space: normal;
}
/* 移动端优化 */
@media (max-width: 768px) {
.narshelpCenterdetail-app .nhlp-app-content {
width: 95%;
}
.ql-editor p,
.ql-editor li {
display: block; /* 移动端改用块级布局 */
}
counter-reset: list-1 list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9
}
.ql-editor ol,.ql-editor ul {
padding-left: 1.5em
}
@@ -594,27 +562,15 @@ body {
}
.ql-editor .ql-size-small {
font-size: .75em;
word-wrap: break-word; /* 兼容旧浏览器 */
overflow-wrap: break-word; /* 优先在空格处换行,避免单词拆分 */
word-break: normal; /* 禁止强制拆分单词 */
hyphens: auto; /* 可选:超长单词用连字符换行(更优雅) */
font-size: .75em
}
.ql-editor .ql-size-large {
font-size: 1.5em;
word-wrap: break-word; /* 兼容旧浏览器 */
overflow-wrap: break-word; /* 优先在空格处换行,避免单词拆分 */
word-break: normal; /* 禁止强制拆分单词 */
hyphens: auto; /* 可选:超长单词用连字符换行(更优雅) */
font-size: 1.5em
}
.ql-editor .ql-size-huge {
font-size: 2.5em;
word-wrap: break-word; /* 兼容旧浏览器 */
overflow-wrap: break-word; /* 优先在空格处换行,避免单词拆分 */
word-break: normal; /* 禁止强制拆分单词 */
hyphens: auto; /* 可选:超长单词用连字符换行(更优雅) */
font-size: 2.5em
}
.ql-editor .ql-direction-rtl {
@@ -1229,7 +1185,7 @@ body {
}
.ql-snow .ql-picker.ql-size .ql-picker-label:before,.ql-snow .ql-picker.ql-size .ql-picker-item:before {
content: "14px"
content: "12px"
}
.ql-snow .ql-picker.ql-size .ql-picker-label[data-value=small]:before,.ql-snow .ql-picker.ql-size .ql-picker-item[data-value=small]:before {
@@ -1283,3 +1239,119 @@ body {
.ql-snow .ql-picker.ql-font .ql-picker-label[data-value=monospace]:before,.ql-snow .ql-picker.ql-font .ql-picker-item[data-value=monospace]:before {
content: "等宽字体"
}
.ql-snow .ql-picker.ql-font .ql-picker-label[data-value=SimSun]:before,.ql-snow .ql-picker.ql-font .ql-picker-item[data-value=SimSun]:before {
font-family: SimSun,sans-serif;
content: "宋体"
}
.ql-snow .ql-picker.ql-font .ql-picker-label[data-value=SimHei]:before,.ql-snow .ql-picker.ql-font .ql-picker-item[data-value=SimHei]:before {
font-family: SimHei,sans-serif;
content: "黑体"
}
.ql-snow .ql-picker.ql-font .ql-picker-label[data-value=Microsoft-YaHei]:before,.ql-snow .ql-picker.ql-font .ql-picker-item[data-value=Microsoft-YaHei]:before {
font-family: Microsoft YaHei,sans-serif;
content: "微软雅黑"
}
.ql-snow .ql-picker.ql-font .ql-picker-label[data-value=KaiTi]:before,.ql-snow .ql-picker.ql-font .ql-picker-item[data-value=KaiTi]:before {
font-family: KaiTi,sans-serif;
content: "楷体"
}
.ql-snow .ql-picker.ql-font .ql-picker-label[data-value=FangSong]:before,.ql-snow .ql-picker.ql-font .ql-picker-item[data-value=FangSong]:before {
font-family: FangSong,sans-serif;
content: "仿宋"
}
.ql-snow .ql-picker.ql-font .ql-picker-label[data-value=Arial]:before,.ql-snow .ql-picker.ql-font .ql-picker-item[data-value=Arial]:before {
font-family: Arial,sans-serif;
content: "Arial"
}
.ql-snow .ql-picker.ql-font .ql-picker-label[data-value=Times-New-Roman]:before,.ql-snow .ql-picker.ql-font .ql-picker-item[data-value=Times-New-Roman]:before {
font-family: Times New Roman,sans-serif;
content: "Times New Roman"
}
.ql-snow .ql-picker.ql-font .ql-picker-label[data-value=sans-serif]:before,.ql-snow .ql-picker.ql-font .ql-picker-item[data-value=sans-serif]:before {
font-family: sans-serif;
content: "sans-serif"
}
.ql-font-SimSun {
font-family: SimSun,sans-serif
}
.ql-font-SimHei {
font-family: SimHei,sans-serif
}
.ql-font-Microsoft-YaHei {
font-family: Microsoft YaHei,sans-serif
}
.ql-font-KaiTi {
font-family: KaiTi,sans-serif
}
.ql-font-FangSong {
font-family: FangSong,sans-serif
}
.ql-font-Arial {
font-family: Arial,sans-serif
}
.ql-font-Times-New-Roman {
font-family: Times New Roman,sans-serif
}
.ql-font-sans-serif {
font-family: sans-serif
}
.ql-snow .ql-picker.ql-size .ql-picker-label[data-value="12px"]:before,.ql-snow .ql-picker.ql-size .ql-picker-item[data-value="12px"]:before {
content: "12px"
}
.ql-snow .ql-picker.ql-size .ql-picker-label[data-value="14px"]:before,.ql-snow .ql-picker.ql-size .ql-picker-item[data-value="14px"]:before {
content: "14px"
}
.ql-snow .ql-picker.ql-size .ql-picker-label[data-value="16px"]:before,.ql-snow .ql-picker.ql-size .ql-picker-item[data-value="16px"]:before {
content: "16px"
}
.ql-snow .ql-picker.ql-size .ql-picker-label[data-value="18px"]:before,.ql-snow .ql-picker.ql-size .ql-picker-item[data-value="18px"]:before {
content: "18px"
}
.ql-snow .ql-picker.ql-size .ql-picker-label[data-value="20px"]:before,.ql-snow .ql-picker.ql-size .ql-picker-item[data-value="20px"]:before {
content: "20px"
}
.ql-snow .ql-picker.ql-size .ql-picker-label[data-value="22px"]:before,.ql-snow .ql-picker.ql-size .ql-picker-item[data-value="22px"]:before {
content: "22px"
}
.ql-snow .ql-picker.ql-size .ql-picker-label[data-value="24px"]:before,.ql-snow .ql-picker.ql-size .ql-picker-item[data-value="24px"]:before {
content: "24px"
}
.ql-snow .ql-picker.ql-size .ql-picker-label[data-value="26px"]:before,.ql-snow .ql-picker.ql-size .ql-picker-item[data-value="26px"]:before {
content: "26px"
}
.ql-snow .ql-picker.ql-size .ql-picker-label[data-value="28px"]:before,.ql-snow .ql-picker.ql-size .ql-picker-item[data-value="28px"]:before {
content: "28px"
}
.ql-snow .ql-picker.ql-size .ql-picker-label[data-value="30px"]:before,.ql-snow .ql-picker.ql-size .ql-picker-item[data-value="30px"]:before {
content: "30px"
}
.ql-snow .ql-picker.ql-size .ql-picker-label[data-value="32px"]:before,.ql-snow .ql-picker.ql-size .ql-picker-item[data-value="32px"]:before {
content: "32px"
}

View File

@@ -101,7 +101,10 @@ address {
list-style: none;
padding: 0px;
margin: 0px;
word-break: break-all;
/* word-break: break-all; */
}
strong {
display: inline-block;
}
a {
text-decoration: none;

View File

@@ -254,23 +254,18 @@ div{
tab-size: 4;
-moz-tab-size: 4;
text-align: left;
word-wrap: normal;
overflow-wrap: normal;
word-break: normal;
hyphens: manual;
white-space: normal;
white-space: pre-wrap;
word-wrap: break-word
}
.ql-editor>* {
cursor: text;
cursor: text
}
.ql-editor p,.ql-editor ol,.ql-editor ul,.ql-editor pre,.ql-editor blockquote,.ql-editor h1,.ql-editor h2,.ql-editor h3,.ql-editor h4,.ql-editor h5,.ql-editor h6 {
margin: 0;
padding: 0;
counter-reset: list-1 list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9;
overflow-wrap: anywhere;
word-break: keep-all;
counter-reset: list-1 list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9
}
.ql-editor ol,.ql-editor ul {
@@ -667,27 +662,15 @@ div{
}
.ql-editor .ql-size-small {
font-size: .75em;
word-wrap: break-word; /* 兼容旧浏览器 */
overflow-wrap: break-word; /* 优先在空格处换行,避免单词拆分 */
word-break: normal; /* 禁止强制拆分单词 */
hyphens: auto; /* 可选:超长单词用连字符换行(更优雅) */
font-size: .75em
}
.ql-editor .ql-size-large {
font-size: 1.5em;
word-wrap: break-word; /* 兼容旧浏览器 */
overflow-wrap: break-word; /* 优先在空格处换行,避免单词拆分 */
word-break: normal; /* 禁止强制拆分单词 */
hyphens: auto; /* 可选:超长单词用连字符换行(更优雅) */
font-size: 1.5em
}
.ql-editor .ql-size-huge {
font-size: 2.5em;
word-wrap: break-word; /* 兼容旧浏览器 */
overflow-wrap: break-word; /* 优先在空格处换行,避免单词拆分 */
word-break: normal; /* 禁止强制拆分单词 */
hyphens: auto; /* 可选:超长单词用连字符换行(更优雅) */
font-size: 2.5em
}
.ql-editor .ql-direction-rtl {
@@ -1302,7 +1285,7 @@ div{
}
.ql-snow .ql-picker.ql-size .ql-picker-label:before,.ql-snow .ql-picker.ql-size .ql-picker-item:before {
content: "14px"
content: "12px"
}
.ql-snow .ql-picker.ql-size .ql-picker-label[data-value=small]:before,.ql-snow .ql-picker.ql-size .ql-picker-item[data-value=small]:before {
@@ -1356,3 +1339,119 @@ div{
.ql-snow .ql-picker.ql-font .ql-picker-label[data-value=monospace]:before,.ql-snow .ql-picker.ql-font .ql-picker-item[data-value=monospace]:before {
content: "等宽字体"
}
.ql-snow .ql-picker.ql-font .ql-picker-label[data-value=SimSun]:before,.ql-snow .ql-picker.ql-font .ql-picker-item[data-value=SimSun]:before {
font-family: SimSun,sans-serif;
content: "宋体"
}
.ql-snow .ql-picker.ql-font .ql-picker-label[data-value=SimHei]:before,.ql-snow .ql-picker.ql-font .ql-picker-item[data-value=SimHei]:before {
font-family: SimHei,sans-serif;
content: "黑体"
}
.ql-snow .ql-picker.ql-font .ql-picker-label[data-value=Microsoft-YaHei]:before,.ql-snow .ql-picker.ql-font .ql-picker-item[data-value=Microsoft-YaHei]:before {
font-family: Microsoft YaHei,sans-serif;
content: "微软雅黑"
}
.ql-snow .ql-picker.ql-font .ql-picker-label[data-value=KaiTi]:before,.ql-snow .ql-picker.ql-font .ql-picker-item[data-value=KaiTi]:before {
font-family: KaiTi,sans-serif;
content: "楷体"
}
.ql-snow .ql-picker.ql-font .ql-picker-label[data-value=FangSong]:before,.ql-snow .ql-picker.ql-font .ql-picker-item[data-value=FangSong]:before {
font-family: FangSong,sans-serif;
content: "仿宋"
}
.ql-snow .ql-picker.ql-font .ql-picker-label[data-value=Arial]:before,.ql-snow .ql-picker.ql-font .ql-picker-item[data-value=Arial]:before {
font-family: Arial,sans-serif;
content: "Arial"
}
.ql-snow .ql-picker.ql-font .ql-picker-label[data-value=Times-New-Roman]:before,.ql-snow .ql-picker.ql-font .ql-picker-item[data-value=Times-New-Roman]:before {
font-family: Times New Roman,sans-serif;
content: "Times New Roman"
}
.ql-snow .ql-picker.ql-font .ql-picker-label[data-value=sans-serif]:before,.ql-snow .ql-picker.ql-font .ql-picker-item[data-value=sans-serif]:before {
font-family: sans-serif;
content: "sans-serif"
}
.ql-font-SimSun {
font-family: SimSun,sans-serif
}
.ql-font-SimHei {
font-family: SimHei,sans-serif
}
.ql-font-Microsoft-YaHei {
font-family: Microsoft YaHei,sans-serif
}
.ql-font-KaiTi {
font-family: KaiTi,sans-serif
}
.ql-font-FangSong {
font-family: FangSong,sans-serif
}
.ql-font-Arial {
font-family: Arial,sans-serif
}
.ql-font-Times-New-Roman {
font-family: Times New Roman,sans-serif
}
.ql-font-sans-serif {
font-family: sans-serif
}
.ql-snow .ql-picker.ql-size .ql-picker-label[data-value="12px"]:before,.ql-snow .ql-picker.ql-size .ql-picker-item[data-value="12px"]:before {
content: "12px"
}
.ql-snow .ql-picker.ql-size .ql-picker-label[data-value="14px"]:before,.ql-snow .ql-picker.ql-size .ql-picker-item[data-value="14px"]:before {
content: "14px"
}
.ql-snow .ql-picker.ql-size .ql-picker-label[data-value="16px"]:before,.ql-snow .ql-picker.ql-size .ql-picker-item[data-value="16px"]:before {
content: "16px"
}
.ql-snow .ql-picker.ql-size .ql-picker-label[data-value="18px"]:before,.ql-snow .ql-picker.ql-size .ql-picker-item[data-value="18px"]:before {
content: "18px"
}
.ql-snow .ql-picker.ql-size .ql-picker-label[data-value="20px"]:before,.ql-snow .ql-picker.ql-size .ql-picker-item[data-value="20px"]:before {
content: "20px"
}
.ql-snow .ql-picker.ql-size .ql-picker-label[data-value="22px"]:before,.ql-snow .ql-picker.ql-size .ql-picker-item[data-value="22px"]:before {
content: "22px"
}
.ql-snow .ql-picker.ql-size .ql-picker-label[data-value="24px"]:before,.ql-snow .ql-picker.ql-size .ql-picker-item[data-value="24px"]:before {
content: "24px"
}
.ql-snow .ql-picker.ql-size .ql-picker-label[data-value="26px"]:before,.ql-snow .ql-picker.ql-size .ql-picker-item[data-value="26px"]:before {
content: "26px"
}
.ql-snow .ql-picker.ql-size .ql-picker-label[data-value="28px"]:before,.ql-snow .ql-picker.ql-size .ql-picker-item[data-value="28px"]:before {
content: "28px"
}
.ql-snow .ql-picker.ql-size .ql-picker-label[data-value="30px"]:before,.ql-snow .ql-picker.ql-size .ql-picker-item[data-value="30px"]:before {
content: "30px"
}
.ql-snow .ql-picker.ql-size .ql-picker-label[data-value="32px"]:before,.ql-snow .ql-picker.ql-size .ql-picker-item[data-value="32px"]:before {
content: "32px"
}