Как Вы проверяете правописание веб-сайта?

Тот же алгоритм перестановки, что и «Charmer Machine», но с прототипированной реализацией. Лучше подходит для большого количества выборков. Использует js 1.7 назначение деструктурирования , если доступно.

// swaps elements at index i and j in array this
// swapping is easy on js 1.7 (feature detection)
Array.prototype.swap = (function () {
    var i=0, j=1;
    try { [i,j]=[j,i]; }
    catch (e) {}
    if(i) {
        return function(i,j) {
            [this[i],this[j]] = [this[j],this[i]];
            return this;
        }
    } else {
        return function(i,j) {
            var temp = this[i];
            this[i] = this[j];
            this[j] = temp;
            return this;
        }
    }
})();


// shuffles array this
Array.prototype.shuffle = function() {
    for(var i=this.length; i>1; i--) {
        this.swap(i-1, Math.floor(i*Math.random()));
    }
    return this;
}

// returns n unique random numbers between min and max
function pick(n, min, max) {
    var a = [], i = max;
    while(i >= min) a.push(i--);
    return a.shuffle().slice(0,n);
}

pick(8,1,100);

Изменить: другое предложение, более подходящее для небольшого количества выборов, на основе ответа белугабоба. Чтобы гарантировать уникальность, мы удаляем выбранные числа из массива.

// removes n random elements from array this
// and returns them
Array.prototype.pick = function(n) {
    if(!n || !this.length) return [];
    var i = Math.floor(this.length*Math.random());
    return this.splice(i,1).concat(this.pick(n-1));
}

// returns n unique random numbers between min and max
function pick(n, min, max) {
    var a = [], i = max;
    while(i >= min) a.push(i--);
    return a.pick(n);
}

pick(8,1,100);

28
задан Liam 25 February 2009 в 12:39
поделиться

8 ответов

Lynx, кажется, способен получать просто текст, в котором я нуждаюсь (довольное тело и сопроводительный текст) и игнорирующий, в чем я не нуждаюсь (встроил JavaScript и CSS).

lynx -dump http://www.example.com

Это также перечисляет все URL (преобразованный в их абсолютную форму) на странице, которая может быть отфильтрована с помощью grep:

lynx -dump http://www.example.com | grep -v "http"

URL могли также быть локальны (file://), если я использовал wget для зеркального отражения сайта.

я запишу сценарий, который обработает ряд URL с помощью этого метода и произведет каждую страницу к отдельному текстовому файлу. Я могу тогда использовать существующее решение для проверки правописания проверить файлы (или единственный большой файл, комбинирующий все маленькие).

Это проигнорирует текст в заголовке и meta элементах. Они могут быть spellchecked отдельно.

7
ответ дан Liam 14 October 2019 в 12:06
поделиться

Если можно получить доступ к контенту сайта как к файлам, можно записать маленький сценарий оболочки Unix, который делает задание. Следующий сценарий распечатает название файла, номера строки и слов с ошибками. Качество вывода зависит от качества словаря Вашей системы.

#!/bin/sh

# Find HTML files
find $1 -name \*.html -type f |
while read f
do
        # Split file into words
        sed '
# Remove CSS
/<style/,/<\/style/d
# Remove Javascript
/<script/,/<\/script/d
# Remove HTML tags
s/<[^>]*>//g
# Remove non-word characters
s/[^a-zA-Z]/ /g
# Split words into lines
s/[     ][      ]*/\
/g ' "$f" |
        # Remove blank lines
        sed '/^$/d' |
        # Sort the words
        sort -u |
        # Print words not in the dictionary
        comm -23 - /usr/share/dict/words >/tmp/spell.$.out
        # See if errors were found
        if [ -s /tmp/spell.$.out ]
        then
                # Print file, number, and matching words
                fgrep -Hno -f /tmp/spell.$.out "$f"
        fi
done
# Remove temporary file
rm /tmp/spell.$.out
2
ответ дан Diomidis Spinellis 14 October 2019 в 12:06
поделиться

Используйте шаблоны (хорошо) с Вашим веб-приложением (если Вы программируете сайт вместо того, чтобы просто писать HTML), и HTML-редактор, который включает проверку правописания. Eclipse делает для одного.

, Если это не возможно по некоторым причинам... да, wget для загрузки законченных страниц и чего-то вроде этого:

http://netsw.org/dict/tools/ispell-html-mode.patch

0
ответ дан Lee B 14 October 2019 в 12:06
поделиться

Если это - то прочь, и из-за числа страниц, чтобы проверить, что это могло бы быть достойно рассмотрения что-то как spellr.us, который будет быстрым решением. Вы можете, входя в Ваш URL веб-сайта на домашней странице для получения ощущения того, как это сообщило бы об орфографических ошибках.

http://spellr.us/

, но я уверен, существуют некоторые свободные альтернативы.

1
ответ дан kevchadders 14 October 2019 в 12:06
поделиться

Вы можете сделать это с помощью сценария оболочки, объединяющего wget и aspell. Вы имели в виду среду программирования?

Я бы лично использовал python с Beautiful Soup для извлечения текста из тегов и передачи текста через aspell.

1
ответ дан Anthony Roy 14 October 2019 в 12:06
поделиться

Мы используем управление Написанием RAD Telerik в наших приложениях ASP.NET.

Написание RAD Telerik

0
ответ дан Michael Kniskern 14 October 2019 в 12:06
поделиться

Вы можете проверить библиотеку типа jspell.

0
ответ дан Jas Panesar 14 October 2019 в 12:06
поделиться

Просто за несколько дней до того, как я обнаружил средство проверки орфографии на веб-сайте Spello . Он использует мой NHunspell (Проверка орфографии открытого офиса для .NET) libaray. Вы можете попробовать.

3
ответ дан 28 November 2019 в 03:55
поделиться
Другие вопросы по тегам:

Похожие вопросы: