Contagem de palavras para remarcação?


4

Existe uma maneira de obter uma contagem de palavras de linguagem natural no Markdown (ou melhor, Pandoc Markdown), através da linha de comando? É possível apenas usar wc para obter uma estimativa muito aproximada, mas wc é ingênuo e conta qualquer coisa cercada de espaço em branco como uma palavra. Isso inclui coisas como formatação de cabeçalho, marcadores e URLs em links.

Qual seria o ideal seria remover todas as formatações de marcação, (incluindo citações do Pandoc, se possível), e então passar isso wc, mas não consigo encontrar uma maneira de fazer isso, como o pandoc formato de saída de texto sem formatação ainda inclui muito estilo de marcação.


Você pode tentar "renderizar" o documento Markdown como texto simples e executar wc no arquivo resultante - algo como isto: stackoverflow.com/questions/761824/…

@CongMa: isso não funciona corretamente (veja minha última sentença). Mas provavelmente é o mais próximo que vou chegar no momento. E eu acho que não está tão longe assim, realmente.
naught101

Respostas:


2

Existe um novo filtro lua para isso: https://pandoc.org/lua-filters.html#counting-words-in-a-document

Salve o seguinte código como wordcount.lua

-- counts words in a document

words = 0

wordcount = {
  Str = function(el)
    -- we don't count a word if it's entirely punctuation:
    if el.text:match("%P") then
        words = words + 1
    end
  end,

  Code = function(el)
    _,n = el.text:gsub("%S+","")
    words = words + n
  end,

  CodeBlock = function(el)
    _,n = el.text:gsub("%S+","")
    words = words + n
  end
}

function Pandoc(el)
    -- skip metadata, just count body:
    pandoc.walk_block(pandoc.Div(el.blocks), wordcount)
    print(words .. " words in body")
    os.exit(0)
end

e chame pandoc assim:

pandoc --lua-filter wordcount.lua myfile.md

1

Uma solução um tanto manual:

  1. usar pandoc converter o arquivo de remarcação para um documento do MS Word ( *.docx ) ou documento do OpenOffice / LibreOffice Writer ( *.odt )
  2. abra esse documento no LibreOffice 1
  3. selecione tudo ( ctrl + uma )
  4. Cardápio Ferramentas & gt; Contagem de palavras

1 O OpenOffice provavelmente funcionaria da mesma forma, mas eu não testei isso.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.