JavaScript Summarize Text: Extract summaries of Web pages

Recommend this page to a friend!
     
  Info   Example   View files Files   Download Download   Reputation   Support forum   Blog    
Ratings Unique User Downloads Download Rankings
Not enough user ratingsTotal: 102 All time: 407 This week: 4Up
Version License JavaScript version Categories
summarizejs 1.1GNU General Publi...5HTML, Content management
Description 

Author

This object can extract summaries of Web pages.

It can traverse the contents of a given Web page element and extract contents of elements with the attribute data-summary.

The extracted contents is inserted in another given element.

Innovation Award
JavaScript Programming Innovation award winner
July 2016
Winner


Prize: One ebook of choice by Packt
Many Web pages have great content that is too long for the user with lack of time to read.

For that user it would be better to have a short summary that he could read quickly before he can decide if it is interesting to read the whole page.

The object can extract summaries from Web pages by copying given elements marked with a special attribute and insert them in summary section of the page.

Manuel Lemos
Picture of Everton da Rosa
  Performance   Level  
Name: Everton da Rosa <contact>
Classes: 7 packages by
Country: Brazil Brazil
Age: 43
All time rank: 506 in Brazil Brazil
Week rank: 6 Up1 in Brazil Brazil Up
Innovation award
Innovation award
Nominee: 3x

Winner: 3x

Example

<!DOCTYPE html> <!-- Exemplo da fun??o javascript Summarize --> <html> <head> <meta charset="UTF-8"> <title>Exemplo Summarize JS</title> </head> <body> <header> <h1>SummarizeJS</h1> <h3>Cria um sum?rio hier?rquico da p?gina de forma autom?tica.</h3> </header> <nav id="summary"> <h2>Veja nesta p?gina</h2> </nav> <article id="page_content"> <section> <h1 data-summary="Introdu??o">Introdu??o</h1> <p>SummarizeJS ? uma classe (a.k.a) Javascript para cria??o de sum?rios de p?gina hierarquizados de forma autom?tica, com base em marca??o de elementos index?veis.</p> <p>Para incluir um elemento no sumario, basta adicionar a sua tag html o atributo data-summary. O conte?do desse atributo ser? o t?tulo do elemento no sum?rio.</p> <p>O sum?rio ser? criado de forma hierarquizada, de acordo com a estrutura hier?rquica dos elementos index?veis.</p> <p>Por exemplo, os elementos inidex?veis que est?o dentro de outro elemento index?vel, ser?o mostrados nessa hierarquia dentro do sum?rio, sendo que elementos n?o marcados com data-summary ser?o completamente ignorados.</p> </section> <section> <h1 data-summary="Como usar">Como usar</h1> <p>O uso ? bastante f?cil: inclua o script <em>summarize.js</em> e chame o m?todo <code>Summarize.init($target, $destiny)</code></p> <p>Onde:</p> <dl> <dt>$target</dt> <dd>? um elemento DOM que ser? escaneado em busca dos elementos index?veis; e</dd> <dt>$destiny</dt> <dd>? o elemento DOM que receber? o sum?rio.</dd> </dl> <h2 data-summary>Como marcar as entradas do sum?rio na p?gina</h2> <p>Para indicar um elemento como entrada do sum?rio, basta acrescentar o atributo HTML <code>data-summary</code>.</p> <p>Se voc? colocar um valor para o atributo, por exemplo, <code>data-summary="Isto vai para o sum?rio"</code>, o valor do atributo ? o que aparecer? no sum?rio.</p> <p>Voc? tamb?m pode colocar apenas <code>data-summary</code> ou <code>data-summary=""</code>. Neste caso, o sum?rio ir? exibir o conte?do da tag com o atributo.</p> </section> <section data-summary="Hierarquias"> <h1>Hierarquias</h1> <p>Analise o c?idgo fonte deste trecho e veja como o SummarizeJS trabalha com as hierarquias do DOM.</p> <div data-summary="Sem hierarquia"> <h2>Sem hierarquia</h2> <p>Esta lista aparecer? no sum?rio</p> <ul> <li data-summary="N?vel 1">N?vel 1</li> <li data-summary="N?vel 1">N?vel 1</li> <li data-summary="N?vel 1">N?vel 1</li> <li data-summary="N?vel 1">N?vel 1</li> </ul> </div> <div data-summary="Hierarquia"> <h2>Hierarquia</h2> <p>Perceba que todos os elementos da hierarquia DOM s?o index?veis</p> <p data-summary="Pai sem filhos"> Este ? um elemento de primeiro n?vel. </p> <div data-summary="Pai com filho"><!-- deve-se ter cuidado com o uso das tags apropriadas. Se em vez de div, usasse p, o filho n?o apareceria como filho, mas neste mesmo n?vel, poruqe p n?o admite um div como filho. N?o sei porque isso!--> Este outro elemento de primeiro n?vel. <div data-summary="Filho">Este ? um filho do elemento de primeiro n?vel</div> </div> </div> <div data-summary="Hierarquia com itens n?o indexados"> <h2>Hierarquia</h2> <p>Perceba que nem todos os elementos da hierarquia DOM s?o index?veis</p> <p data-summary="Pai sem filhos"> Este ? um elemento de primeiro n?vel. </p> <div data-summary="Pai com filho"> Este outro elemento de primeiro n?vel. <div data-summary="Filho">Este ? um filho do elemento de primeiro n?vel</div> </div> <div data-summary="Pai com filhos, mas nem todos indexados"> <div data-summary="Filho indexado">Filho indexado</div> <div><!--este n?o aparecer? na hierarquia do sum?rio--> <p>Este filho n?o aparece no sum?rio, s? o pr?ximo irm?o.</p><!--este n?o aparecer? na hierarquia do sum?rio--> <div data-summary="Neto indexado">Filho n?o indexado, neto indexado, ent?o vai aparecer no mesmo n?vel de filho.</div> </div> </div> </div> </section> <section data-summary="CHANGELOG"> <h1>CHANGELOG</h1> <dl> <dt data-summary>Vers?o 1.1</dt> <dd>Alterado para pegar o conte?do da tag se marcada somente com data-summary sem valor.</dd> <dt data-summary>Vers?o 1.0</dt> <dd>Vers?o inicial.</dd> </dl> </section> </article> <a href="#" style="position: fixed; bottom: 1em; right: 0; background-color: blue; color: white; padding: 0.5em;">Topo</a> <script src="summarize.js"></script> <script> Summarize.init( document.getElementById('page_content') ,document.getElementById('summary') ); </script> <script src="../domprocess/domprocess.js"></script> <script> DOMProcess.init(document.getElementById('summary'), function($root){ console.log($root.childNodes.length); },function($node){ if($node.hasChildNodes()){ return true; }else{ return false; } }); </script> </body> </html>

  Files folder image Files (2)  
File Role Description
Accessible without login Plain text file sample.html Example Example
Plain text file summarize.js Class The file class

 Version Control Unique User Downloads Download Rankings  
 0%
Total:102
This week:0
All time:407
This week:4Up