npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

@bellshade/ningali

v1.3.0

Published

Penyaji materi dari folder kedalam bentuk tampilan web

Downloads

36

Readme

@bellshade/ningali

npm version npm download

Ningali berasal dari Bahasa Sunda halus yang berarti melihat, jadi package ini bertujuan agar orang yang menggunakannya bisa melihat folder pembelajaran yang sudah dibuat sebelumnya kedalam tampilan web. Dalam kata lain package ini adalah penyaji materi dari filesystem ke tampilan web.

Fitur-Fitur

Pertama-tama, fitur package ini bisa menampilkan readme dari semua folder dari mulai direktori root sampai ke anakannya.

Menampilkan Readme yang berada di Folder Root

Readme juga bisa ditampilkan di folder yang berisikan sebuah materi.

Menampilkan Readme yang berada di Folder Materi

Kedua, materi yang berisikan kode yang bisa ditampilkan dan dijalankan bisa di eksekusi dengan menekan tombol Run yang nantinya akan dijalankan oleh node js di server.

Menampilkan dan Menjalankan kode dari sebuah materi

Ketiga, ketika folder berisikan kode html otomatis akan disajikan html tersebut kedalam iframe, nilai yang keluar dari console.log akan ditampilkan ke console web.

Menampilkan dan Menjalankan kode dari sebuah materi yang berisikan html

Penggunaan

Inisialisasi Server

Buatlah sebuah file terlebih dahulu, semisal server.js. Pacakge ini membutuhkan sebuah parameter yang berupa object yang konfigurasinya sebagai berikut.

const ningali = require("@bellshade/ningali");

const app = ningali({
  /* Berisikan folder apa saja yang ingin dimasukan
   * untuk selanjutnya bisa disajikan. Dibawah ini
   * adalah contoh implementasi untuk Bellshade
   * Javascript
   *
   * Properti ini adalah properti yang wajib di isi,
   * jika tidak di isi maka akan muncul pesan error.
   */
  folders: ["learn", "algorithm"],

  /* Mendefinisikan apa judul yang nantinya ingin
   * ditampilkan kedalam webnya, contohnya adalah
   * "Bellshade Javascript"
   *
   * Properti ini adalah properti yang wajib di isi,
   * jika tidak di isi maka akan muncul pesan error.
   */
  title: "Bellshade Javascript",

  /**
   * Mendefinisikan dimana port yang nantinya akan
   * digunakan oleh ningali supaya bisa diakses dari
   * browser. Default dari nilai port adalah 3000.
   *
   * Properti port ini tidak wajib di isi, dan jika
   * tidak ingin menulis port secara eksplisit bisa
   * menggunakan library tambahan `dotenv` dan memanggilnya
   * paling atas sebelum app di deklarasi dan membuat file
   * env dengan konfigurasi port yang mau di isikan.
   *
   * Prioritas pembacaan port adalah dimulai dari port
   * yang dimasukan sebagai konfigurasi ningali, jika tidak
   * ada konfigurasi akan membaca environment variable PORT
   * yang terbaca oleh node js, jika tidak ada kedua itu maka
   * fallback ke port 3000.
   */
  port: 17845,
});

// Menjalankan fungsi `app` setelah konfigurasi
app();

Bekerja dengan HTML

Supaya console browser berfungsi, diperlukan sebuah snippet tambahan supaya console.log dari si html bisa ditangkap oleh ningali. Tambahkan snippet dibawah ini ke dalam head dari html kamu.

<script>
  const _log = console.log;
  const encoder = new TextEncoder();

  console.log = function (...rest) {
    window.parent.postMessage(
      {
        source: "iframe",
        message: rest.map((d) => encoder.encode(d)),
      },
      "*"
    );
    _log.apply(console, arguments);
  };
</script>