作者: niudaqiang

  • 【我不介意你又丑又瞎】

    标签:穿书/女配/甜文

    主角:苏悦VS江词

    作者:美人无霜

    下面先隆重介绍一下男女主

    女主前期胖且平凡,后期又美又娇气

    男主前期瞎性格阴晴不定,后期可爱且帅

    毕竟是霸总,作者这个面子还是要给的

    重点来了↓

    男主一生气女主就头疼

    哄好之后,女主一次能瘦五斤!

    ……

    接下来简单走一波剧情

    苏悦穿书了。

    甜宠文里,霸道总裁男主对小娇妻从一开始的嫌弃,争锋相对,到宠爱入骨,甚至危险中还愿意放弃生命,营救她,两人美好的爱情简直让人羡慕妒忌。

    而她,穿成了那个与女主同时嫁入豪门,嫌弃自己丈夫又丑又瞎,天天惦记爬男主这个小叔子的床,上蹿下跳,使用卑鄙手段设计女主的无脑恶毒女配。

    想到书中女配的悲惨下场,苏悦表示,她不介意丈夫又丑又瞎。

    ————————

    丈夫:“你觉得委屈的话,我们可以离婚。”男人修长的手指递过一张黑卡。

    苏悦翘了翘漂亮的红唇,柔软的身子自动投进男人的怀里,“你是不是觉得自己又丑又瞎,脾气又不好,怕委屈我呀?放心,我不介意。”

    又丑又瞎,脾气又不好的丈夫:“……”

    女主哄男主一次,瘦五斤哦!!!

  • 主角属性:

    泼辣女主 VS 真耿直男主

    剧情简介:

    新婚之夜,郑绣跟薛直约法三章:

    “第一,往后家里的银钱都归我管。”——薛直点头如捣蒜。

    “第二,往后孩子都由我教,你不许插嘴。”——“依你依你,都依你。”

    “第三,咱们商量一下,你能不能去做点正经营生?”

    薛直沉思片刻,“好吧。也是时候回去帮皇帝打仗了。”

    郑绣:???你他妈不是个猎户吗???

    04

    将军家的小娇娘

    作者:女王不在家

  • 主角属性:

    穿越农家女主 VS 闷骚大将军男主

    剧情简介:

    嫁给穷猎户?穷的叮当响?后妈不好当?还有极品亲戚隔三差五来抬杠?周桂兰小脚一跺,她男人长得俊美,身材堪比男模!还是疼媳妇儿的好男人!还有这小奶包,简直是上天厚爱,又软又萌!穷?这都不是事儿,养鸡养鸭建大棚,带着一家子发家致富,走上人生巅峰!

    02

    霸王与娇花

    作者:顾了之

    主角属性:

    有才有貌有教养白莲花 VS 前期直男癌后期忠犬小将军

    剧情简介:

    ——娇花篇

    要不是早早遇见过十年后的霍留行,沈令蓁怎么也想不到,枕边那个活阎王似的动不动折她脖子吓唬她的男人,来日会待她如珠似宝,爱她到生死可抛。

    ——霸王篇

    霍将军娶了朵娇花。

    含嘴里,她会化,捧手里,她能摔。

    从此,雷厉风行的河西战神做什么都得小心翼翼,轻手轻脚。

    床笫之间更是“霸王”变“王八”,每个动作不得不慢成龟儿爬。

    日子久了,霍将军暗暗叹息:这样下去,他恐怕再也快不起来了!

  • 二、靠 AdSense 赚点击、搜索费用💰

    不用只靠广告点击赚单一收入,AdSense 两种方式搭配用,能把网站流量的价值拉满:👇

    1. 展示广告:看广告、点广告都赚钱

    在网站的顶部、中间或侧栏放广告,用户看到广告(按展示量计费,叫 CPM)或点广告(按点击计费,叫 CPC),你都能拿分成。比如科技类内容的 CPC 能到2~5 美元/次,生活类虽然低点,也有0.1~0.5 美元/次,积少成多很可观。

    图源:网络

    2. 搜索广告:用户搜东西也能赚钱

    只需在网站加个搜索框,用户用它搜内容时,页面会弹出相关广告,点击一次就有收益。优势很明显:不占内容空间,还能让用户搜完接着看其他文章,相当于一次流量赚两次钱,同时还能提升用户留存率。

  • Google

    【】网站刚做1个月就能申请 AdSense !附超详细审核+变现流程

    WeMedia媒介管家

    WeMedia媒介管家

    10年海外数字广告一级代理 专业的媒介采购管理平台

    Google 的 AdSense 搜索广告(AdSense For Search,简称 AFS),是网站开发者的核心创收工具之一,隶属于Google AdSense产品矩阵。

    它支持开发者在自有网站部署搜索功能,并同步展示 Google 的搜索广告与购物广告。当用户在网站上使用该搜索功能时,开发者可通过搜索结果页广告及网站内容广告,双重路径实现创收。

    01. 如何通过AdSense 广告赚钱?

    AdSense 搜索广告 最大的优势就是:轻量、高效、好上手。

    一、AdSense 的核心优势

    1. 门槛低,不用养号很久

    • 无需万级流量,网站运营 1 个月左右即可申请。
    • 仅需满足两个核心条件:15-20 篇原创内容(单篇 500 字以上,无抄袭)、1 个合规域名(如.com/.cn,不支持免费二级域名)。
    • 审核通过率高,无需长期养号。

    2. 自动匹配广告,不用自己找商家

    • 无需自己找商家、谈合作,谷歌会自动根据网站内容和访客兴趣投放广告。
    • 举例:网站发考研攻略,会匹配考研机构、教辅资料广告;发家居收纳内容,会匹配收纳盒、家具广告。

    3. 免费使用,结算稳定不拖欠

    • 无入驻费、无服务费,零成本启用。
    • 收益满 100 美元即可结算,每月准时打款,支持银行转账、支票等方式
  • compose

    下载安装完成后,会自动把 docker 命令也安装上。

    可以在终端中执行以下命令,验证 docker 和 docker是否安装成功。

    第二步:编译 Docker 镜像

    首先把 OpenClaw 的代码 Clone 到本地:https://github.com/openclaw/openclaw

    git clone https://github.com/openclaw/openclaw.git

    进入项目根目录,执行以下命令:

    ./docker-setup.sh

    之后,就会进入镜像的构建流程:

  • Docker

    环境安装 OpenClaw(原 Clawdbot)教程

    零一猴子

    零一猴子

    后端/前端/AI/游戏/独立开发

    100 人赞同了该文章

    目录

    关于 OpenClaw

    最近大火的 OpenClaw,本质是一个拥有部分 Computer Use(操作电脑)和 Browser Use(操作浏览器)能力的 AI Agent。你可以把它当做一个部署在本地的 Manus,或者一个集成了远程对话能力的 Claude Code。

    OpenClaw 部署在本机上,可以访问电脑上的文件,可以通过聊天软件远程接受指令,在电脑上执行任务。

    由于 OpenClaw 默认以当前用户身份运行,简单来说,你有什么权限,它就有什么权限。好处是它可以帮你执行各种各样的操作,风险是可能会误删或者误修改你的文件。

    如果你只是想体验 OpenClaw,建议基于 Docker 环境安装 OpenClaw。

    第一步:安装 Docker

  • 边缘证书

    SSL/TLS

    自定义您的边缘证书,用于加密访问者和 Cloudflare 之间的流量。

    管理边缘证书

    您的套餐包括:

    • 一个共享的 Cloudflare Universal SSL 证书及相应的备份证书

    额外的证书自定义选项:

    主机类型状态到期日期
    *.niudaqiang.top, niudaqiang.top通用2026-08-18(受管理)
    *.niudaqiang.top, niudaqiang.top备份2026-06-26(受管理)

    1 到 22 个 证书API帮助

    高级证书管理器 (ACM)

    获得更多对证书的控制和灵活性,并解锁 TLS 设置。

    • 颁发自动续期、通配符和专用证书
    • 自定义证书上的主机名
    • 覆盖多级子域名(例如 dev.www.example.com)
    • 指定加密套件以增强安全性并符合行业标准
    • 定义您首选的证书颁发机构 (CA) 和有效期

  • // 新增:导出模态框显示状态

    import React, { useState, useRef } from ‘react’;
    import { Download, ShieldCheck, Plus, Loader2, Image as ImageIcon, Sparkles, X, Check } from ‘lucide-react’;

    export default function App() {
    const [rank, setRank] = useState(‘A’);
    const [suit, setSuit] = useState(‘♠’);
    const [imageSrc, setImageSrc] = useState(null);
    const [isDownloading, setIsDownloading] = useState(false);


    const [showExportModal, setShowExportModal] = useState(false);
    // 新增:文件命名称状态
    const [fileName, setFileName] = useState(”);

    const cardRef = useRef(null);

    const alphaRanks = Array.from({ length: 26 }, (_, i) => String.fromCharCode(65 + i));

    const suits = [
    { symbol: ‘♠’, name: ‘黑桃’, color: ‘text-zinc-100’, glow: ‘shadow-[0_0_15px_rgba(255,255,255,0.2)]’ },
    { symbol: ‘♥’, name: ‘红心’, color: ‘text-[#FF2E2E]’, glow: ‘shadow-[0_0_15px_rgba(255,46,46,0.3)]’ },
    { symbol: ‘♣’, name: ‘梅花’, color: ‘text-[#10B981]’, glow: ‘shadow-[0_0_15px_rgba(16,185,129,0.3)]’ },
    { symbol: ‘♦’, name: ‘方块’, color: ‘text-[#FBBF24]’, glow: ‘shadow-[0_0_15px_rgba(251,191,36,0.3)]’ }
    ];

    const currentSuitObj = suits.find(s => s.symbol === suit) || suits[0];

    const handleImageUpload = (e) => {
    const file = e.target.files[0];
    if (file) {
    const url = URL.createObjectURL(file);
    setImageSrc(url);
    }
    };

    // 第一步:触发下载意向(打开输入框)
    const triggerExportFlow = () => {
    // 预设一个默认名字:[花色][数值]-StarCard
    setFileName(${suit}${rank}-StarCard);
    setShowExportModal(true);
    };

    // 第二步:正式执行下载逻辑
    const executeDownload = async () => {
    if (!cardRef.current) return;
    setIsDownloading(true);
    setShowExportModal(false); // 关闭模态框

    try {
      if (!window.html2canvas) {
        const script = document.createElement('script');
        script.src = 'https://cdnjs.cloudflare.com/ajax/libs/html2canvas/1.4.1/html2canvas.min.js';
        document.head.appendChild(script);
        await new Promise((resolve) => (script.onload = resolve));
      }
      const canvas = await window.html2canvas(cardRef.current, {
        useCORS: true,
        scale: 4, // 4倍缩放确保高清打印 (300DPI级别)
        backgroundColor: null,
      });
      const link = document.createElement('a');
      link.download = `${fileName || 'poker-card'}.png`;
      link.href = canvas.toDataURL('image/png', 1.0);
      link.click();
    } catch (error) {
      console.error("Export failed:", error);
    } finally {
      setIsDownloading(false);
    }

    };

    return (

      {/* 背景动态星尘 */}
      <div className="absolute inset-0 pointer-events-none opacity-20" 
           style={{ backgroundImage: `radial-gradient(1px 1px at 20px 30px, #eee, rgba(0,0,0,0)), radial-gradient(1px 1px at 40px 70px, #fff, rgba(0,0,0,0)), radial-gradient(2px 2px at 50px 160px, #ddd, rgba(0,0,0,0))`, backgroundSize: '200px 200px' }}></div>
    
      {/* 控制台 */}
      <div className="w-full md:w-80 bg-zinc-900/50 backdrop-blur-3xl p-8 rounded-[2rem] border border-zinc-800/50 flex flex-col gap-8 h-fit z-50 shadow-2xl">
        <header className="flex items-center gap-3">
          <div className="w-10 h-10 bg-gradient-to-br from-zinc-700 to-zinc-900 rounded-xl flex items-center justify-center text-white shadow-inner border border-zinc-700/50">
            <Sparkles size={20} className="text-blue-400" />
          </div>
          <div>
            <h1 className="text-lg font-bold text-zinc-100 tracking-tight">Starry Lab</h1>
            <p className="text-[9px] text-zinc-500 font-mono tracking-widest uppercase">Premium Edition</p>
          </div>
        </header>
    
        <section className="space-y-6">
          <div className="space-y-3">
            <span className="text-[10px] font-bold text-zinc-600 uppercase tracking-[0.2em] block">Alpha Rank / 字母全集</span>
            <div className="grid grid-cols-7 gap-1 p-1 bg-black/40 rounded-xl border border-zinc-800/50 max-h-40 overflow-y-auto scrollbar-hide">
              {alphaRanks.map(r => (
                <button key={r} onClick={() => setRank(r)} 
                        className={`aspect-square text-[10px] rounded-lg transition-all ${rank === r ? 'bg-zinc-100 text-black shadow-lg scale-105' : 'hover:text-zinc-200 text-zinc-600'}`}>
                  {r}
                </button>
              ))}
            </div>
          </div>
    
          <div className="flex gap-2">
            {suits.map(s => (
              <button key={s.symbol} onClick={() => setSuit(s.symbol)} 
                      className={`flex-1 py-3 rounded-xl border transition-all ${suit === s.symbol ? 'border-zinc-100 bg-zinc-100 text-black' : 'border-zinc-800 bg-black/30 hover:border-zinc-700'}`}>
                <span className={`text-xl ${suit === s.symbol ? 'text-black' : s.color}`}>{s.symbol}</span>
              </button>
            ))}
          </div>
        </section>
    
        {/* 触发导出流程 */}
        <button 
          onClick={triggerExportFlow} 
          disabled={isDownloading} 
          className="w-full py-4 rounded-2xl bg-zinc-100 text-black font-bold text-xs tracking-[0.2em] uppercase hover:bg-white active:scale-[0.98] transition-all shadow-[0_0_20px_rgba(255,255,255,0.1)] flex items-center justify-center gap-2"
        >
          {isDownloading ? <Loader2 className="animate-spin" size={16} /> : "Finalize & Export"}
        </button>
      </div>
    
      {/* 美术展示区 */}
      <div className="relative group">
        <div 
          ref={cardRef}
          className="relative flex items-center justify-center bg-[#020617] transition-all duration-700"
          style={{ 
            width: '340px', height: '476px', borderRadius: '36px', 
            border: '8px solid #111827',
            boxShadow: '0 50px 100px -20px rgba(0,0,0,1), inset 0 0 20px rgba(255,255,255,0.02)'
          }}
        >
          <div className="absolute inset-0 opacity-40 pointer-events-none rounded-[24px] overflow-hidden" 
               style={{ backgroundImage: `radial-gradient(circle at 50% 50%, #1e293b 0%, transparent 80%)` }}></div>
    
          <div className={`absolute top-2 left-3 flex flex-col items-center leading-none ${currentSuitObj.color} z-40 select-none drop-shadow-[0_0_8px_rgba(255,255,255,0.1)]`}>
            <span className="font-serif font-black text-[26px] tracking-[-0.05em] h-[24px] w-[30px] flex items-center justify-center text-center">{rank}</span>
            <span className="text-[18px] mt-1 opacity-90">{suit}</span>
          </div>
    
          <div className={`absolute bottom-2 right-3 flex flex-col items-center leading-none rotate-180 ${currentSuitObj.color} z-40 select-none drop-shadow-[0_0_8px_rgba(255,255,255,0.1)]`}>
            <span className="font-serif font-black text-[26px] tracking-[-0.05em] h-[24px] w-[30px] flex items-center justify-center text-center">{rank}</span>
            <span className="text-[18px] mt-1 opacity-90">{suit}</span>
          </div>
    
          <div className="relative z-20 flex p-[8px]" style={{ width: '304px', height: '416px' }}>
            <div className="absolute top-0 left-0 w-8 h-8 border-t border-l border-zinc-700/30 rounded-tl-[45px] pointer-events-none"></div>
            <div className="absolute bottom-0 right-0 w-8 h-8 border-b border-r border-zinc-700/30 rounded-br-[45px] pointer-events-none"></div>
    
            <div 
              className="absolute inset-0 bg-white/[0.02] backdrop-blur-[20px] border border-white/[0.08] shadow-[0_20px_50px_rgba(0,0,0,0.5),inset_0_1px_1px_rgba(255,255,255,0.05)] overflow-hidden"
              style={{ borderRadius: '90px 25px 90px 25px' }} 
            >
              <div className="absolute inset-0 bg-gradient-to-br from-white/[0.04] via-transparent to-black/30 pointer-events-none"></div>
            </div>
    
            <div 
              className="relative w-full h-full overflow-hidden flex items-center justify-center bg-black/40 shadow-[inset_0_4px_30px_rgba(0,0,0,0.7)] z-10"
              style={{ borderRadius: '82px 17px 82px 17px' }}
            >
              {imageSrc ? (
                <img src={imageSrc} alt="Art" className="w-full h-full object-cover grayscale-[10%] hover:grayscale-0 transition-all duration-700" />
              ) : (
                <div className="flex flex-col items-center gap-3 opacity-10 group cursor-pointer">
                  <ImageIcon size={40} strokeWidth={1} />
                  <span className="text-[7px] font-black uppercase tracking-[0.8em]">A-Z Full Set</span>
                </div>
              )}
              <input type="file" accept="image/*" onChange={handleImageUpload} className="absolute inset-0 opacity-0 cursor-pointer z-50" />
            </div>
          </div>
    
          <div className="absolute inset-[0.5px] border border-white/5 rounded-[34px] pointer-events-none"></div>
        </div>
      </div>
    
      {/* 导出重命名模态框 (Modal Layer) */}
      {showExportModal && (
        <div className="fixed inset-0 z-[100] flex items-center justify-center p-4">
          <div className="absolute inset-0 bg-[#020617]/80 backdrop-blur-md" onClick={() => setShowExportModal(false)}></div>
          <div className="relative bg-zinc-900 border border-zinc-800 rounded-[2rem] p-8 w-full max-w-sm shadow-[0_30px_100px_rgba(0,0,0,0.8)] flex flex-col gap-6 animate-in fade-in zoom-in duration-300">
            <div className="space-y-2">
              <h2 className="text-zinc-100 font-bold text-xl tracking-tight">Naming Your Asset</h2>
              <p className="text-zinc-500 text-xs">请输入导出文件的名称,无需填写后缀名。</p>
            </div>
    
            <div className="relative">
              <input 
                autoFocus
                type="text" 
                value={fileName}
                onChange={(e) => setFileName(e.target.value)}
                onKeyDown={(e) => e.key === 'Enter' && executeDownload()}
                className="w-full bg-black/50 border border-zinc-800 rounded-xl px-4 py-4 text-zinc-100 outline-none focus:border-blue-500 transition-all font-mono text-sm"
                placeholder="Card name..."
              />
              <div className="absolute right-4 top-1/2 -translate-y-1/2 text-[10px] text-zinc-600 font-mono">.png</div>
            </div>
    
            <div className="flex gap-3 mt-2">
              <button 
                onClick={() => setShowExportModal(false)}
                className="flex-1 py-3 rounded-xl border border-zinc-800 text-zinc-400 font-bold text-[10px] uppercase tracking-widest hover:bg-zinc-800 transition-all"
              >
                Cancel
              </button>
              <button 
                onClick={executeDownload}
                className="flex-1 py-3 rounded-xl bg-zinc-100 text-black font-bold text-[10px] uppercase tracking-widest hover:bg-white shadow-xl transition-all flex items-center justify-center gap-2"
              >
                <Download size={14} />
                Download
              </button>
            </div>
          </div>
        </div>
      )}
    </div>

    );
    }

  • 5月21日,中国和东盟国家在马来西亚吉隆坡举行落实《南海各方行为宣言》第26次高官会。

    5月21日,中国和东盟国家在马来西亚吉隆坡举行落实《南海各方行为宣言》第26次高官会。

    与会各方一致强调维护南海和平安宁重要性,重申继续全面有效落实《宣言》,加强对话协商,保持克制,妥处分歧,深化海上务实合作,维护南海局势稳定。各方肯定“南海行为准则”磋商取得的积极进展,同意保持磋商势头,争取早日达成“准则”。

    5月22日至5月23日,中国和东盟国家还将举行落实《宣言》第55次联合工作组会,继续推进“准则”磋商。