Skip to content

Instantly share code, notes, and snippets.

View uditalias's full-sized avatar
🧙

Udi Talias ⚛️ uditalias

🧙
View GitHub Profile
@uditalias
uditalias / custom.css
Created September 21, 2020 20:32
Adding line numbers to Docusaurus 2 CodeBlocks using only CSS
/* Edit the `src/css/custom.css` file and add the following styles */
/*
* Reset the line-number counter for each .prism-code scope
*/
.prism-code {
counter-reset: line-number;
}
/*
return _.reduce(languagesBytes, (result: IRendererLanguage[], bytes: number, language: string) => {
const percent = bytes / this.totalBytes * 100
result.push({
language,
bytes,
percent: parseFloat(percent.toFixed(1)),
color: this.getLanguageColor(language)
});
private hydrateRendererLanguages(): Array<IRendererLanguage & { rotation: number; translateX: number; translateY: number; }> {
const results = [];
const languagesRows = _.chunk(this.languages, this.options.columns);
let currentLanguage: IRendererLanguage;
for (let i = 0, rows = languagesRows.length; i < rows; i++) {
for (let j = 0, columns = languagesRows[i].length; j < columns; j++) {
protected async _render(): Promise<sharp.Sharp> {
const languages = this.hydrateRendererLanguages()
, totalLanguages = languages.length
, [width, height] = this.calculateCanvasSize(totalLanguages)
, destWidth = width * this.options.scale
, destHeight = height * this.options.scale
, dpi = DEFAULT_DPI * destWidth / width
, svg = Buffer.from(handlebars.compile(SOLID_TEMPLATE)({ languages, width, height }));
<svg viewBox="0 0 {{width}} {{height}}" version="1.1" xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink">
{{#each languages}}
<g transform="translate({{this.translateX}}, {{this.translateY}})" stroke="none" stroke-width="1" fill="none"
fill-rule="evenodd">
<g transform="translate(0, -10.000000)">
<circle fill="{{this.color}}" cx="51" cy="51" r="32"></circle>
@cache({ maxAge: TEN_MINUTES_IN_MILLISECONDS, multi: true })
public async generate(owner: string, repo: string, options: ILangaugeOptions): Promise<Buffer> {
try {
const createRenderer = this.rendererCreators[options.type];
let languages = await this.githubService.getRepositoryLanguages(owner, repo);
if (options.threshold) {
languages = this.thresholdLanguagesFilter(languages, options.threshold);
import { controller, Controller, inject, get, IRequest, IResponse, validation } from "appolo";
import { LangaugeModel } from "./langaugeModel";
import { LangaugeManager } from "../../managers/langaugeManager";
import { OutputFormatContentType } from "../../common/enums";
import { promisify } from "util";
import * as zlib from "zlib";
const gzip = promisify<Buffer, Buffer>(zlib.gzip);
@controller()
import { RouteModel, validationParam, validator } from "appolo";
import { enumValues } from "../../common/utils";
import { GaugeType, OutputFormat } from "../../common/enums";
import { TEN_MINUTES_IN_SECONDS } from "../../common/constants";
export class LangaugeModel extends RouteModel {
// Git repository owner
@validationParam(validator.string().required())
owner: string;
<svg width="100px" height="120px" viewBox="0 0 100 120" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<g transform="translate(0.000000, -10.000000)">
<circle fill="#FFDA76" cx="51" cy="51" r="32"></circle>
<g transform="translate(45.000000, 27.000000)" fill="#000000">
<path d="M6,0 L6,0 C7.65685425,-3.04359188e-16 9,1.34314575 9,3 L9,21 C9,22.6568542 7.65685425,24 6,24 L6,24 C4.34314575,24 3,22.6568542 3,21 L3,3 C3,1.34314575 4.34314575,3.04359188e-16 6,0 Z"></path>
<circle cx="6" cy="24" r="6"></circle>
</g>
<path d="M51,87 C70.882251,87 87,70.882251 87,51 C87,31.117749 70.882251,15 51,15 C31.117749,15 15,31.117749 15,51" stroke="#000000" stroke-width="5" stroke-linecap="round" stroke-linejoin="round" transform="translate(51.000000, 51.000000) rotate(-45.000000) translate(-51.000000, -51.000000) "></path>
@uditalias
uditalias / quickey_languages_in_bytes.json
Created February 21, 2019 11:15
GitHub API repository languages response
{
"TypeScript": 57718,
"JavaScript": 11731,
"CSS": 2708,
"HTML": 899
}