PageSourceSearch

https://edtechbooks.org/js/etb/cv.js

js edtechbooks.org collected 2026-09-24 08:52:02 UTC 1,358 bytes, 20 lines download raw bytes

1class Article {
2    constructor(json) {
3        for (let key in json) {
4            this[key] = json[key];
5        }
6        this.subtype = this.type;
7        this.type = 'article';
8        this.id = this.article_id;
9    }
10    Render() {
11        let wrapper = $('<div></div>').addClass('my-3').attr('data-entity-id', this.article_id).attr('data-entity-type', this.type);
12        let controls = $('<div></div>').addClass('article-editor-controls d-none d-print-none mt-2 mb-2 d-flex align-items-end justify-content-between gap-2').appendTo(wrapper);
13        let yearGroup = $('<div></div>').addClass('d-flex flex-column gap-1').appendTo(controls);
14        $('<label></label>').addClass('small text-muted mb-0').attr('for', `article-year-${this.article_id}`).text('Year').appendTo(yearGroup);
15        $('<span></span>').addClass('article-year border rounded px-2 py-1 d-inline-block').attr('id', `article-year-${this.article_id}`).css('min-width', '5rem').text(this.year || '').appendTo(yearGroup);
16        $('<button></button>').addClass('btn btn-sm btn-outline-danger ms-2 bi-trash').attr('data-action', 'DeleteAuthorArticle').attr('data-bs-title', 'Delete article').attr('data-bs-placement', 'top').appendTo(controls);
17        $('<p></p>').addClass('article-citation reference mb-0').html(this.citation).appendTo(wrapper);
18        return wrapper[0];
19    }
20}

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.