HOME 首页
SERVICE 服务产品
XINMEITI 新媒体代运营
CASE 服务案例
NEWS 热点资讯
ABOUT 关于我们
CONTACT 联系我们
创意岭
让品牌有温度、有情感
专注品牌策划15年

    js文章生成器源码(js文章生成器源码怎么用)

    发布时间:2023-04-16 05:19:11     稿源: 创意岭    阅读: 82        

    大家好!今天让创意岭的小编来大家介绍下关于js文章生成器源码的问题,以下是小编对此问题的归纳整理,让我们一起来看看吧。

    开始之前先推荐一个非常厉害的Ai人工智能工具,一键生成原创文章、方案、文案、工作计划、工作报告、论文、代码、作文、做题和对话答疑等等

    只需要输入关键词,就能返回你想要的内容,越精准,写出的就越详细,有微信小程序端、在线网页版、PC客户端

    官网:https://ai.de1919.com

    本文目录:

    js文章生成器源码(js文章生成器源码怎么用)

    JS实现的将html转为pdf功能【基于浏览器端插件jsPDF】

    本文实例讲述了JS实现的将html转为pdf功能。分享给大家供大家参考,具体如下:
    <!DOCTYPE
    html>
    <html>
    <head>
    <title>jsPDF插件</title>
    <meta
    http-equiv="Content-Type"
    content="text/html;
    charset=utf-8">
    <script
    src="https://code.jquery.com/jquery-git.js"></script>
    <script
    src="https://cdnjs.cloudflare.com/ajax/libs/html2canvas/0.4.1/html2canvas.js"></script>
    <script
    src="https://cdnjs.cloudflare.com/ajax/libs/jspdf/1.0.272/jspdf.debug.js"></script>
    </head>
    <body>
    <p
    class="pdf-wrapper"
    ="to-pdf">HTML
    content...<h1>中文</h1>
    中国,汉字,测试:合同
    模版
    中国中国中国中国中国中国中国中国中国中国中国中国中国中国中国中国中国中国中国中国中国中国中国中国中国中国中国中国中国中国中国中国中国中国中国中国中国中国中国中国中国中国中国中国中国中国中国</br>中国中国中国中国中国中国中国中国中国中国中国中国中国中国中国中国中国中国中国中国中国中国中国中国中国中国中国中国中国中国中国中国中国中国中国中国中国中国....................<br/>
    中国,汉字,测试:合同
    模版
    ...................<br/>
    计费
    接口
    ....................<br/>
    <img
    src='http://www.jb51.net/images/logo.gif'/>
    </p>
    <script
    type="text/javascript">
    var
    pdf
    =
    new
    jsPDF('p','pt','a4');
    pdf.internal.scaleFactor
    =
    1;
    var
    options
    =
    {
    pagesplit:
    true
    };
    //$('.pdf-wrapper')
    pdf.addHTML(document.body,options,function()
    {
    pdf.save('web1111.pdf');
    });
    </script>
    </body>
    </html>
    运行效果:
    更多关于JavaScript相关内容可查看本站专题:《JavaScript扩展技巧总结》、《JavaScript常用函数技巧汇总》、《javascript面向对象入门教程》、《JavaScript中json操作技巧总结》、《JavaScript切换特效与技巧总结》、《JavaScript查找算法技巧总结》、《JavaScript错误与调试技巧总结》、《JavaScript数据结构与算法技巧总结》、《JavaScript遍历算法与技巧总结》及《JavaScript数学运算用法总结》
    希望本文所述对大家JavaScript程序设计有所帮助。
    您可能感兴趣的文章:jsPDF导出pdf示例jsPDF生成pdf后在网页展示实例使用jspdf生成pdf报表phonegap教程使用jspdf库在应用中生成pdf文件(pdf生成方法)JS导出PDF插件的方法(支持中文、图片使用路径)js插件方式打开pdf文件(浏览器pdf插件分享)用Javascript检查Adobe
    PDF插件是否安装的实现代码纯js实现html转pdf的简单实例(推荐)基于Phantomjs生成PDF的实现方法JavaScript+Java实现HTML页面转为PDF文件保存的方法JavaScript代码生成PDF文件的方法

    如何用 Node.js 和 Elasticsearch 构建搜索引擎

    安装 Elasticsearch

    Elasticsearch 受Apache 2许可证保护,可以被下载,使用,免费修改。安装Elasticsearch 之前你需要先确保在你的电脑上安装了Java Runtime Environment (JRE) ,Elasticsearch 是使用java实现的并且依赖java库运行。你可以使用下面的命令行来检测你是否安装了java

    推荐使用java最新的稳定版本(写这篇文章的时候是1.8)。你可以在找到在你系统上安装java的指导手册。

    接下来是下载最新版本的Elasticsearch (写这篇文章的时候是2.3.5),去下载ZIP 文件。Elasticsearch 不需要安装,一个zip文件就包含了可在所有支持的系统上运行的文件。解压下载的文件,就完成了。有几种其他的方式运行Elasticsearch ,比如:获得TAR 文件或者为不同Linux发行版本的包。

    如果你使用的是Mac操作系统并且安装了 ,你就可以使用这行命令安装Elasticsearch brew install elasticsearch.Homebrew 会自动添加executables 到你的系统并且安装所需的服务。它也可以使用一行命令帮你更新应用:brew upgrade elasticsearch.

    想在Windows上运行Elasticsearch ,可以在解压的文件夹里,通过命令行运行binelasticsearch.bat 。对于其他系统,可以从终端运行 ./bin/elasticsearch.这时候,Elasticsearch 就应该可以在你的系统上运行了。

    就像我之前提到的,你可以使用Elasticsearch的几乎所有的操作,都可以通过RESTful APIs完成。Elasticsearch 默认使用9200 端口。为了确保你正确的运行了Elasticsearch。在你的浏览器中打开http://localhost:9200/ ,将会显示一些关于你运行的实例的基本信息。

    图形用户界面

    Elasticsearch不须图形用户界面,只通过REST APIs就提供了几乎所有的功能。然而如果我不介绍怎么通过APIs和 Node.js执行所有所需的操作,你可以通过几个提供了索引和数据的可视化信息GUI工具来完成,这些工具甚至含有一些高水平的分析。

    , 是同一家公司开发的工具, 它提供了数据的实时概要,并提供了一些可视化定制和分析选项。Kibana 是免费的。

    还有一些是社区开发的工具,如 , , 甚至谷歌浏览器的扩展组件.这些工具可以帮你在浏览器中查看你的索引和数据,甚至可以试运行不同的搜索和汇总查询。所有这些工具提供了安装和使用的攻略。

    创建一个Node.js环境

    弹性搜索为Node.js提供一个官方模块,称为elasticsearch。首先,你需要添加模块到你的工程目录下,并且保存依赖以备以后使用。

    然后,你可以在脚本里导入模块,如下所示:

    最终,你需要创建客户端来处理与弹性搜索的通讯。在这种情况下,我假设你正在运行弹性搜索的本地机器IP地址是127.0.0.1,端口是9200(默认设置)。

    注意:这篇导读的所有源代码都可以在GitHub下载查看。最简单的查看方式是在你的PC机上克隆仓库,并且从那里运行示例代码:

    数据导入

    在本教程中,我将使用 1000 篇学术论文里的内容,这些内容是根据随机算法逐一生成的,并以 JSON 格式提供,其中的数据格式如下所示:

    JSON 格式中的每个字段如字面意思,无需多余解释,但值得注意的是:由于<body>包含随机生成的文章的全部的内容(大概有100~200个段落),所以并未展示。

    虽然 Elasticsearch 提供了,、单个数据的方法,但我们采用接口导入数据,因为批量接口在大型数据集上执行操作的效率更高。

    这里,我们调用函数bulkIndex建立索引,并传入 3 个参数,分别是:索引名 library,类型名library,JSON 数据格式变量 articles。bulkIndex函数自身则通过调用esClient对象的bulk接口实现,bulk 方法包含一个body属性的对象参数,并且每个body属性值是一个包含 2 种操作实体的数组对象。第一个实体是 JSON 格式的操作类型对象,该对象中的index属性决定了操作的类型(本例子是文件索引)、索引名、文件ID。第二个实体则是文件对象本身。

    注意,后续可采用同样的方式,为其他类型文件(如书籍或者报告)添加索引。我们还可以有选择的每个文件分配一个唯一的ID,如果不体统唯一的ID,Elasticsearch 将主动为每个文件分配一个随机的唯一ID。

    假设你已经从代码库中下载了 Elasticsearch 项目代码,在项目根目录下执行如下命令,即可将数据导入至Elasticsearch中:

    检查数据的索引是否准确

    Elasticsearch 最大的特性是接近实时检索,这意味着,一旦文档索引建立完成,1 秒内就可被检索(见)。索引一旦建立完成,则可通过运行 indice.js 检查索引信息的准确性():

    client 中的cat 对象方法提供当前运行实例的各种信息。其中的 indices 方法列出所有的索引信息,包括每个索引的健康状态、以及占用的磁盘大小。 而其中的 v 选项为 cat方法新增头部响应。

    当运行上面代码段,您会发现,集群的健康状态被不同的颜色标示。其中,红色表示为正常运行的有问题集群;黄色表示集群可运行,但存在告警;绿色表示集群正常运行。在本地运行上面的代码段,您极有可能(取决于您的配置)看到集群的健康状态颜色是黄色,这是因为默认的集群设置包含 5 个节点,但本地运行只有 1 个实例正常运行。鉴于本教程的目的仅局限于 Elasticsearch 指导学习,黄色即可。但在线上环境中,你必须确保集群的健康状态颜色是绿色的。

    动态和自定义映射

    如前所述, Elasticsearch 无模式(schema-free),这意味着,在数据导入之前,您无需定义数据的结构(类似于SQL数据库需要预先定义表结构),Elasticsearch 会主动检测。尽管 Elasticsearch 被定义为无模式,但数据结构上仍有些限制。

    Elasticsearch 以映射的方式引用数据结构。当数据索引建立完成后,如果映射不存在,Elasticsearch 会依次检索 JSON 数据的每个字段,然后基于被字段的类型(type)自动生成映射(mapping)。如果存在该字段的映射,则会确保按照同样的映射规则新增数据。否则直接报错。

    比如:如果{"key1": 12} 已经存在,Elasticsearch 自动将字段 key1 映射为长整型。现在如果你尝试通过{"key1": "value1", "key2": "value2"} 检索, 则会直接报错,因为系统预期字段 key1 为长整型。同时,如果通过 {"key1": 13, "key2": "value2"} 检索则不会报错,并为字段 key2 新增 string 类型。

    映射不能超出文本的范围,大都数情况下,系统自动生成的映射都可正常运行。

    构建搜索引擎

    一旦完成数据索引,我们就可以开始实现搜索引擎。Elasticsearch提供了一个直观的基于JSON的全搜索查询的结构-Query DSL,定义查询。有许多有用的搜索查询类型,但是在这篇文章中,我们将只看到几个通用的类型。关于Query DSL的完整文章可以在看到。

    请记住,我提供了每个展示例子的源码的连接。设置完你的环境和索引测试数据后,你可以下载源码,然后运行在你的机器上运行任何例子。可以通过命令行运行节点filename.js。

    返回一个或多个索引的所有记录

    为了执行我们的搜索,我们将使用客户端提供的多种搜索方法。最简单的查询是match_all,它可以返回一个或多个索引的所有的记录。下面的例子显示了我们怎么样获取在一个索引中获取所有存储的记录().

    主要的搜索查询包含在Query对象中。就像我们接下来看到的那样,我们可以添加不同的搜索查询类型到这个对象。我们可以为每一个Query添加一个查询类型的关键字(如match_all),让这个Query成为一个包含搜索选项的对象。由于我们想返回索引的所有记录,所以在这个例子中没有查询选项。

    除了Query对象,搜索体中可以包含其他选项的属性,如 size 和from。size属性决定了返回记录的数量。如果这个值不存在,默认返回10个记录。from属性决定了返回记录的起始索引,这对分页有用。

    理解查询API的返回结果

    如果你打印搜索API返回结果(上面例子的结果)日志。由于它包含了很多信息,刚开始看起来无所适从。

    在最高级别日志输出里,返回结果中含有took 属性,该属性值表示查找结果所用的毫秒数,timed_out只有在最大允许时间内没有找到结果时为true,_shards 是不同节点的状态的信息(如果部署的是节点集群),hits是查询结果。

    hits的属性值是一个含有下列属性的对象:

      total —表示匹配的条目的总数量

      max_score — 找到的条目的最大分数

      hits — 找到的条目的数组,在hits数组里的每一天记录,都有索引,类型,文档,ID,分数,和记录本身(在_source元素内)。

      这十分复杂,但是好消息是一旦你实现了一个提取结果的方法,不管你的搜索查询结果时什么,你都可以使用相同的格式获取结果。

      还需要注意的是Elasticsearch 有一个好处是它自动地给每一个匹配记录分配分数,这个分数用来量化文件的关联性,返回结果的顺序默认的按钮分数倒排。在例子中我们使用match_all取回了所有的记录,分数是没有意义的,所有的分数都被计算为1.0。

      匹配含指定字段值的文档

      现在我们看几个更加有趣的例子. 我们可以通过使用 match 关键字查询文档是否与指定的字段值匹配。一个最简单的包含 match 关键字的检索主体代码如下所示:

      如上文所述, 首先通过为查询对象新增一个条目,并指定检索类型,上面示例给的是 match 。然后再检索类型对象里面,申明待检索的文档对象,本例是 title 文档对象。然后再文档对象里面,提供相关检索数据,和 query 属性。我希望你测试过上述示例之后,惊讶于 Elasticsearch 的检索效率。

      上述示例执行成功后,将返回title(标题)字段与任一 query 属性词匹配的所有文档信息。同时还可以参考如下示例,为查询对象附加最小匹配数量条件:

      与该查询匹配的文档 title(标题)字段至少包含上诉指定的 3 个关键词。如果查询关键词少于 3个,那么匹配文档的 title(标题)字段必须包含所有的查询词。Elasticsearch 的另一个有用的功能是 fuzziness(模糊匹配).这对于用户输入错误的查询词将非常有用,因为fuzzy(模糊匹配)将发现拼写错误并给出最接近词供选择。对于字符串类型,每个关键字的模糊匹配值是根据算法 算出的最大允许值。fuzziness(模糊匹配)示例如下所示:

      多个字段搜索

      如果你想在多个字段中搜索,可以使用multi_match搜索类型。除了Query对象中的fields属性外,它同match有点类似。fields属性是需要搜索的字段的集合。这里我们将在title,authors.firstname, 和authors.lastname 字段中搜索。

      multi_match查询支持其他搜索属性,如minimum_should_match 和fuzziness。Elasticsearch支持使用通配符(如*)匹配字段,那么我们可以使用['title', 'authors.*name']把上面的例子变得更短些。

      匹配一个完整的句子

      Elasticsearch也支持精确的匹配一个输入的句子,而不是在单词级别。这个查询是在普通的match 查询上扩展而来,叫做 match_phrase。下面是一个match_phrase的例子

      联合多个查询

      到目前为止,在例子中我们每次请求只使用了单个查询。然而Elasticsearch允许你联合多个查询。最常用的复合查询是bool,bool查询接受4种关键类型must, should, must_not, 和filter. 像它们的名字表示的那样,在查询结果的数据里必须匹配must里的查询,必须不匹配must_not里的查询,如果哪个数据匹配should里的查询,它就会获得高分。每一个提到的元素可以使用查询数组格式接受多个搜索查询。

      下面,我们使用bool查询及一个新的叫做query_string的查询类型。它允许你使用 AND 或 OR写一些比较高级的查询。另外,我们使用了 range查询,它可以让我们通过给定的范围的方式去限制一个字段。

      在上面的例子中,查询返回的数据,作者的名包含term1 或它们的姓包含term2,并且它们的title含有term3,而且它们不在2011,2012或2013年出版的,还有在body字段里含有给定句子数据将获得高分,并被排列到结果的前面(由于在should从句中的match 查询)。

      过滤,聚合,和建议

      除了它先进的搜索功能外,Elasticsearch 还提供了其他的功能。接下来,我们再看看其他三个比较常用的功能。

      过滤

      也许,你经常想使用特定的条件凝缩查询结果。Elasticsearch通过filters 提供了这样的功能。在我们的文章数据里,假设你的查询返回了几个文章,这些文章是你选择的在5个具体年份发布的文章。你可以简单的从搜索结果中过滤出那些不匹配条件的数据,而不改变查询结果的顺序。

      在bool 查询的must 从句中,过滤和相同查询之间的不同之处在于,过滤不会影响搜索分数,而must 查询会。当查询结果返回并且用户使用给定的条件过滤时,他们不想改变结果的顺序,相反地,他们只想从结果中移除不相关的数据。过滤与搜索的格式一样,但在通常情况下,他们在有明确值的字段上定义,而不是文本字符串上。Elasticsearch 推荐通过bool复合查询的filter从句添加过滤。

      继续看上面的例子,假设我们想把搜索结果限制在在2011到2015年之间发布的文章里。这样做,我们只需要在一般搜索查询的filter 部分添加range 查询。这将会从结果中移除那些不匹配的数据。下面是一个过滤查询的例子

      聚合

      聚合框架会基于一次搜索查询,提供各种聚合数据和统计信息。两个主要的聚合类型是度量和分块, 度量聚合会对一个文档的集合进行持续的跟踪并计算度量,而分块聚合则会进行块的构建,每个块都会跟一个键和一个文档查询条件关联起来。度量聚合的示例有平均值,最小值,最大值,加总值还有计数值。分块聚合的示例有范围、日期范围、直方图以及主题项。对聚合器更加深入的描述可以在 找到。

      聚合可以放置在一个 aggregations 对象里面,而对象自己则是被直接放到 search 对象体中。在 aggregations 对象里面,每一个键都是由用户赋予一个聚合器的名称。聚合器的类型和其它选项都应该是作为这个键的值而放置的。接下来我们要来看看两个不同类型的聚合器,一个是度量的,一个块的。我们会用度量聚合器来尝试找出数据集合中最小的年份值(也就是最久远的文章),而使用块集合器我要做的就是尝试找出每一个关键词各自出现了多少次。

      在上述示例中,我们将度量聚合器命名为 min_year (也可以是其它名称), 也就是 year 这个域上的 min 类型。块聚合器责备命名为 keywords, 就是 keywords 这个域上的 terms 类型。聚合操作的结果被装在了响应消息里的 aggregations 元素里面,更深入一点会发现里面包含了每一个聚合器(这里是 min_year 和 keywords)以及它们的聚合操作结果。 如下是来自这个示例响应消息中的部分内容。

      响应消息中默认最多会有10个块返回。你可以在请求中 filed 的边上加入一个size键来规定返回的块的最大数量。如果你想要接收到所有的块,可以将这个值设置为 0。

      建议

      Elasticsearch 提供了多种可以对输入内容提供替换和补全的关联项推荐器(见)。下面将介绍术语和短语推荐器。术语推荐器为每个输入文本中的术语提供关联推荐(如果有的话),而短语推荐器将整个输入文本看做一个短语(与将其拆分成术语对比),然后提供其他短语的推荐(如果有的话)。使用推荐API时,需要调用Node.js client的suggest方法。如下为术语推荐器的示例。

      与其他client的方法相同,在请求体中包含一个index字段指明采用的索引。在body字段中添加查询推荐的文本,然后给每个推荐器一个(包含了聚合对象的)名称(本例中的titleSuggester)。其值指明了推荐器的类型和配置。这里,为title字段使用了术语推荐器,限制最大建议的数量是每个token最多5个(size: 5)。

      建议API返回的数据中包含了对应请求中每一个建议器的key,其值是一个与你输入文本中术语数量相同的一个数组。对于数组中的每一个元素,包含一个options数组,其每个对象的text字段中包含了推荐的文本。如下是上面例子中返回数据的一部分。

      获取短语推荐的时候,采用与上文相同的格式并替换推荐器的类型字段即可。如下的例子中,返回数据将与上例格式相同。

    为什么我复制别人的源码打开后和别人的不一样?

    [PConline技巧]经常在网上遇到一些无法复制的文章,那么问题来了,有什么办法可以绕开这种限制,将网页内容轻松下载回来呢?其实既然是网页内容,那么意味着HTML代码是公开的,将相关文本复制下来根本不是问题,一起来看看要怎么做吧。
    最简单的就是禁用JAVA脚本,把浏览器的安全设置设成最高就行了。
    方法一. 手机拍照识别
    难度:●○○○○
    效果:●●●●○
    这是最简单一个办法了,如今的手机都自带文字识别功能。首先用QQ或微信将要识别的网页截取成图片,发送到你的手机。然后打开手机“扫一扫”,选择刚刚收到的网页截图,最后点击“识别文字”就可以了。一般来说,只要你的照片足够清晰,字体基本标准,那么实现95%以上的识别率还是不成问题的。稍后通读一下文章,将里面的识别错误简单修正一下,就能直接生成文件使用了。
    手机OCR识别网页内容
    方法二. 切换IE内核
    难度:●○○○○
    效果:●●●○○
    很多小伙伴都忽略过这个办法,如今IE已经被边缘化,绝大多数浏览器都是WebKit内核,网页设计师也是一样,因此当你发现一个网站设置了禁止复制时,不妨将网址拖拽到IE浏览器里试一试,没准会有意外惊喜!
    使用IE内核试一试,没准会有意外惊喜
    顺便说一句,如今很多国产浏览器都使用了双内核,其中“兼容模式”就是IE核心,点击切换试一试吧,和拷贝到IE里是一个效果!
    方法三. 查看源代码
    难度:●●●●○○
    效果:●●●●○○
    如果借助上面这个方法“捡漏”不成功,那么就得动用一些“大招”了!这个方法基本可以搞定90%以上的网站,但操作起来稍微麻烦了一点。
    1. 在禁止复制的网页上右击鼠标,选择“查看源代码”;
    右键选择“查看源代码”
    2. 将打开的源码页面下拉,找到带有文字内容的区域。选中这个区域,将内容粘贴到Word文档中;
    这就是打开的效果了,下拉页面可以找到文字内容
    3. 直接粘贴过来的内容会夹杂很多不必要的代码,这时就是“查找与替换”大显身手的时候了,将其中的代码复制到“查找”框内,然后将“替换为”设空,最后点击“全部替换”按钮,直至代码全部删除为止;
    复制过来夹杂的不必要代码,直接用“查找与替换”搞定!很容易的!
    方法四. 保存网页格式
    难度:●●○○○○
    效果:●●●●●○
    这其实是上一组方法的“人性化”版,至少没有看起来很头疼的代码页了,而且它可以用在那些禁止鼠标右键的网页中。
    1. 打开禁止复制的网页,按下快捷键Ctrl+S;
    2. 在弹出的保存对话框中选择“网页,仅HTML”;
    3. 双击保存好的网页文件,这时你会发现原本无法复制的内容已经可以正常拷贝了;
    类似于方法三,但操作起来更简便
    方法五. 打印法
    这个方法只能用于WebKit内核浏览器(包括国产多数双核浏览器),只要在禁止复制的网页上按下Ctrl+P,进入打印预览模式,就能直接通过鼠标完成复制操作。
    如果上面这些方法都不奏效,或者操作步骤太繁琐,这里还有一个终极大法,那就是借助插件完成。类似的插件有很多,比如Enable Copy,操作时只要将它安装到浏览器上,遇到有复制限制的页面点击一下,就能轻松绿色这些限制,具体的大家可以自行尝试一下。

    以上就是关于js文章生成器源码相关问题的回答。希望能帮到你,如有更多相关问题,您也可以联系我们的客服进行咨询,客服也会为您讲解更多精彩的知识和内容。


    推荐阅读:

    微信公众号js安全域名

    抖音养号脚本(autojs抖音养号脚本)

    pjsk猫猫奏

    店铺海报(店铺海报模板)

    推广一般收多少钱(推广一般收多少钱合适)