open-index/open-npm huggingface dataset:
npm package: @nslogx/gitter
Description: Gitter
Author: nslogx
Latest version: 1.3.0

### Gitter
本仓库是`Gitter`小程序对应的开源仓库，旨在分享微信小程序的开发经验。
初入前端，还望各位大佬多多指教。

该项目采用 [Taro](https://taro.aotu.io/) 框架 + [Taro UI](https://taro-ui.aotu.io) 进行开发，小程序内数据均来自于 [GitHub Api v3](https://developer.github.com/v3/)


感谢相关作者的努力及开源精神。

文章介绍：

[Gitter - 高颜值GitHub小程序客户端诞生记](https://juejin.im/post/5c4c738ce51d4525211c129b)

### 说明

- 由于个人类型的小程序无法使用`web-view`组件的限制，无法使用`OAuth`跳转认证，故采用`Token` + `Account`认证方式，另外也暂不支持内部超链接跳转；
- 推荐使用`Token`认证方式，`Token`及用户名密码仅用于 `GitHub Api` 权限校验，不会被上传服务器；
- Token的生成方式请移步[New personal access token](https://github.com/settings/tokens/new)，按照步骤即可生成Token(**特别提醒：为了最完整的功能体验，生成`Token`的时候请确保勾选全部权限**)；
- ~~由于目前个人能力有限，目前在小程序内关于Markdown的解析并不完美，欢迎有兴趣的大佬PR；~~(采用[Towxml](https://github.com/sbfkcel/towxml)提供的方案，基本上已经完美解析，感谢开源作者)
- **此源码仅供交流学习，严禁以任何形式独立发布或用于商业用途；**

### 使用

``` 
git clone git@github.com:huangjianke/Gitter.git
cd Gitter
```
使用方法请参考：
[Taro 安装及使用](https://nervjs.github.io/taro/docs/GETTING-STARTED.html)

### 扫码体验

扫码访问小程序:

![Gitter](https://raw.githubusercontent.com/huangjianke/Gitter/master/images/code.png)

## 部分页面展示
|Trending|Activity|
| :---: | :---: |
|![摘录](https://raw.githubusercontent.com/huangjianke/Gitter/master/images/img00.png) | ![详情](https://raw.githubusercontent.com/huangjianke/Gitter/master/images/img01.png)|
|User|Repo|
|![文库](https://raw.githubusercontent.com/huangjianke/Gitter/master/images/img02.png) | ![作者](https://raw.githubusercontent.com/huangjianke/Gitter/master/images/img03.png)|

### Todo

- [x] 完善 `Markdown` 解析
- [x] 完善 `Trending` 列表筛选功能
- [x] 完善 `Search` 相关功能
- [ ] 完善 `Issue` 相关功能
- [ ] ...

## 更新记录

- v1.3.1

  1、新增 分享仓库海报 功能
 
- v1.3.0

  1、优化刷新逻辑
  
  2、新增反馈入口
  
- v1.2.0

  1、优化 `Trending` 列表筛选功能
  
  2、优化 `Search` 相关功能
  
- v1.0.0

  `Gitter` 诞生了


有疑问或建议可提`issue`，我会尽快处理。

微信讨论群：
由于人数已满，有需要的可以扫码添加微信(请注明：GitHub)：


![Gitter](https://raw.githubusercontent.com/huangjianke/Gitter/master/images/WeChat.png)


### LICENSE

[Apache License 2.0](./LICENSE)


### 其他小程序

|层叠拼图Plus - 烧脑益智小游戏|诗词墨客 - 最全中华古诗词小程序|
| :---: | :---: |
|![层叠拼图](https://raw.githubusercontent.com/huangjianke/Gitter/master/images/stack.png)|![诗词墨客](https://raw.githubusercontent.com/huangjianke/weapp-poem/master/images/code.png)|
npm package: @nsmichelj/react-typewriter
Description: React library to create typewriter animations.
Author: nsmichelj
Latest version: 1.3.1

# @nsmichelj/react-typewriter

React library to create typewriter animations.

## Installation

```bash
npm install @nsmichelj/react-typewriter
```

## Usage

```javascript
import Typewriter from "@nsmichelj/react-typewriter";
function App() {
  return <Typewriter text="Hello world" />;
}

export default App;
```

## Props

| Prop Name                | Type    | Default  | Description                                                                                                                                   |
| ------------------------ | ------- | -------- | --------------------------------------------------------------------------------------------------------------------------------------------- |
| text                     | string  | Required | The text to be displayed with the typewriter effect.                                                                                          |
| delay                    | number  | 100      | The initial delay before typing starts (in milliseconds).                                                                                     |
| typingSpeed              | number  | 100      | The time between typing each character (in milliseconds).                                                                                     |
| loop                     | boolean | false    | If true, the typewriter effect will loop after finishing the text.                                                                            |
| delayOnRestart           | number  | 1000     | The delay before restarting the typewriter effect when looping (in milliseconds).                                                             |
| cursor                   | boolean | false    | If true, a blinking cursor will be displayed at the end of the typing text.                                                                   |
| typingBackspaceAnimation | boolean | false    | If true, a backspace animation will be triggered, deleting the text character by character. This will only execute once if `loop` is `false`. |
| typingBackspaceSpeed     | number  | 100      | The speed of the backspace animation, in milliseconds per character.                                                                          |
| className                | string  | ""       | CSS class to apply to the root element.                                                                                                       |
| style                    | object  | {}       | Inline styles to apply to the root element.                                                                                                   |
npm package: @nsmp/asset-size-webpack-plugin
Description: Webpack plugin to control assets size
Author: ateterin@naumen.ru
Latest version: 1.0.0

# AssetSizeWebpackPlugin

Webpack plugin for controlling build file sizes.

## How it works

The plugin interrupts the build and outputs errors with information about build files that exceed the specified limits to the console. The check starts and ends with log messages in the console.

## Installation

```
npm install --save-dev @nsmp/asset-size-webpack-plugin
```


## Configuration

The settings object includes two optional parameters: `assetSize` and `defaultAssetSize`

#### assetSize
An object that sets the maximum size in bytes for specific build files by mask.
For example:

```js
assetSize: {
  // all files containing "summerNote" in its name will be checked
  summerNote: 20000,
  // file summerNote.js will be checked
  'summerNote.js': 10000
}
```

#### defaultAssetSize
Sets the default maximum size in bytes that is applied to all build files that do not match any masks specified in the `assetSize` parameter.
For example:

```js
defaultAssetSize: 5000
```


## Usage

Add the plugin to your webpack config:

```js
const AssetSizeWebpackPlugin = require('@nsmp/asset-size-webpack-plugin');

module.exports = {
  // ...
  plugins: [
    new AssetSizeWebpackPlugin({
      assetSize: {
        summerNote: 20000,
        'summerNote.js': 10000
      },
      defaultAssetSize: 5000
    })
  ]
};
```
npm package: @nsmp/file-previewer
Description: Simple modal gallery for previewing files
Author: vlegotin@naumen.ru
Latest version: 1.0.1

# @nsmp/file-previewer

**file-previewer** — это легковесный, настраиваемый пакет для просмотра файлов, поддерживающий различные функции, такие как масштабирование, поворот и загрузка файлов. Этот компонент можно легко интегрировать в любое веб-приложение для улучшения интерактивности при работе с изображениями и другими файлами.

### Основные функции

* Масштабирование: Увеличение и уменьшение масштаба изображений.
* Поворот: Возможность поворачивать изображения на 90° влево или вправо.
* Навигация: Перемещение между множеством файлов с помощью кнопок навигации.
* Загрузка: Скачивание файлов напрямую через браузер.
* Полноэкранный режим: Отображение файлов в полноэкранном режиме с затемнением фона.


### Установка

```sh
npm install @nsmp/file-previewer
# или
yarn add @nsmp/file-previewer
```

### Использование

```sh
import FilePreviewer from '@nsmp/file-previewer';

// Создание экземпляра просмотрщика
const previewer = new FilePreviewer();

// Открытие просмотрщика с файлами и начальным индексом
previewer.open(['path/to/image1.png', 'path/to/image2.png'], 0);
```

## API

### Конструктор
```sh
new FilePreviewer(options);
```
#### Опции
| Опция | Описание | Тип данных |   Значение по-умолчанию |
| :---:   | :---: | :---: | :---: |
| showZoom | Включение/отключение кнопок масштабирования  | boolean | true |
| showDownload | Включение/отключение кнопки скачивания   | boolean | true |
| showRotation | Включение/отключение кнопок поворота  | boolean | false |

### Методы экземпляра
| Метод |Описание    |
| :---:   | :---: |
| open(images, index = 0) | Открывает просмотрщик. **files** — массив строк (URL, URL encoded image), **index** — с какого файла начать   |
| close() | Закрывает просмотрщик   |
| next() | Переход к следующему файлу   |
| prev() | Переход к предыдущему файлу  |
| setZoom(value) | Устанавливает масштаб. **value** - значение зума (число)  |

### Горячие клавиши
- ←/→ — навигация по картинкам
- +/- (ctrl + mwheel)— увеличить/
- уменьшить масштаб
- R — повернуть по часовой
- L — повернуть против часовой
- ESC — закрыть окно

### Работа в iframe
При работе в iframe (например, на сайтах с виджетами) просмоторщик автоматически будет пытаться вывести модалку не только во фрейме, но и над всей страницей, если это разрешено политиками безопасности (одинаковый origin).
Если у фрейма и родителя разные домены, модалка появится в области iframe, а не на всём экране — это техническое ограничение веба.
npm package: @nsmp/parameters-xml-webpack-plugin
Description: Webpack plugin for creation parameters.xml from meta.xml
Author: kegorov@naumen.ru
Latest version: 1.0.4

# ParametersXMLWebpackPlugin
ParametersXMLWebpackPlugin - это плагин для `webpack`, который предназначен для преобразования файла содержащего частичную метаинформацию (ДПС с параметрами) в файл parameters.xml.

Плагин представляет собой класс ParametersXMLWebpackPlugin, который в качестве единственного аргумента конструктора принимает объект настроек `options`:

```javascript
/**
 * Файл 'parameters.xml' существовать не должен, он будет создан.

 * @param {Object} options - объект настройки
 * @param {string} options.output - путь до создаваемого файла parameters.xml, напр.: '/path/to/build/parameters.xml'
 * @param {string} options.path - путь до файла ДПС с расширением xml,напр.:'/path/to/src/metainfo.xml'
 */
	constructor (options) {
	/* ... */
	}
``` 

## Установка:
```bash
npm i @nsmp/parameters-xml-webpack-plugin --save-dev
```

## Использование
### Пример структуры проекта
```
 ./app/
 _ _ ./dist/ 
 _ _ ./meta/
 _ _ _ _ meta.xml
 _ _ ./webpack 
 _ _ _ _ ./webpack.config.js
```

### Пример содержимого файла `./webpack.config.js`, в котором пути указаны относительно корня проекта (директории содержащей файл `.package.json`)
```js
const ParametersXMLWebpackPlugin = require('@nsmp/parameters-xml-webpack-plugin');

module.exports = {
	/* ... webpack config */
	plugins: [
		new ParametersXMLWebpackPlugin({
			output: './dist/parameters.xml',
			path: './meta/meta.xml',
		}),
	],
	/* ... */
}
```

### Пример содержимого файла `./webpack.config.js`, в котором пути указаны относительно директории, где вызван `ParametersXMLWebpackPlugin`
```js
const ParametersXMLWebpackPlugin = require('@nsmp/parameters-xml-webpack-plugin');
const path = require('path');

module.exports = {
	/* ... webpack config */
	plugins: [
		new ParametersXMLWebpackPlugin({
			output: path.resolve('../dist/parameters.xml'),
			path: path.resolve('../meta/meta.xml)',
		}),
	],
	/* ... */
}
```