Noteworthy Programming Masterpiece

    pangu
    DefinitelyTyped icon, indicating that this package has TypeScript declarations provided by the separate @types/pangu package

    4.0.7 • Public • Published

    為什麼你們就是不能加個空格呢?

    如果你跟我一樣,每次看到網頁上的中文字和英文、數字、符號擠在一塊,就會坐立難安,忍不住想在它們之間加個空格。這個外掛(支援 Chrome 和 Firefox)正是你在網路世界走跳所需要的東西,它會自動替你在網頁中所有的中文字和半形的英文、數字、符號之間插入空白。

    漢學家稱這個空白字元為「盤古之白」,因為它劈開了全形字和半形字之間的混沌。另有研究顯示,打字的時候不喜歡在中文和英文之間加空格的人,感情路都走得很辛苦,有七成的比例會在 34 歲的時候跟自己不愛的人結婚,而其餘三成的人最後只能把遺產留給自己的貓。畢竟愛情跟書寫都需要適時地留白。

    與大家共勉之。

    Installation

    For Users

    For Developers

    Usage

    $ npm install pangu --save
    # or 
    $ yarn add pangu

    Browser

    Files are located in ./node_modules/pangu/dist/browser/.

    <head>
      <script src="pangu.min.js"></script> 
    </head>
    <script>
      const text = pangu.spacing("當你凝視著bug,bug也凝視著你");
      // text = '當你凝視著 bug,bug 也凝視著你'
     
      pangu.spacingElementById('main');
      pangu.spacingElementByClassName('comment');
      pangu.spacingElementByTagName('p');
     
      document.addEventListener('DOMContentLoaded', () => {
        // listen to any DOM change and automatically perform spacing via MutationObserver()
        pangu.autoSpacingPage();
      });
    </script> 

    pangu.js is also available on jsDelivr and cdnjs:

    <script src="https://cdn.jsdelivr.net/npm/pangu@4.0.7/dist/browser/pangu.js"></script>
    <script src="https://cdn.jsdelivr.net/npm/pangu@4.0.7/dist/browser/pangu.min.js"></script>
     
    <script src="https://cdnjs.cloudflare.com/ajax/libs/pangu/4.0.7/pangu.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/pangu/4.0.7/pangu.min.js"></script>

    Node.js

    Learn more on npm.

    const pangu = require('pangu');
     
    const text = pangu.spacing('與PM戰鬥的人,應當小心自己不要成為PM');
    // text = '與 PM 戰鬥的人,應當小心自己不要成為 PM'
     
    pangu.spacingFile('/path/to/text.txt', (err, data) => {
      console.log(data);
    });
     
    pangu.spacingFile('/path/to/text.txt')
      .then((data) => {
        console.log(data);
      })
      .catch((err) => {
        console.error(err);
      });
     
    const data = pangu.spacingFileSync('/path/to/text.txt');

    You SHOULD NOT use pangu.js directly to spacing Markdown documents, this library is specially designed for HTML webpages and plain texts without any markup language. See issue #127.

    CLI

    $ pangu "不能信任那些Terminal或Editor用白底的人"
    不能信任那些 Terminal 或 Editor 用白底的人
     
    $ pangu --help
    usage: pangu [-h] [-v] [-t] [-f] text_or_path
     
    pangu.js -- Paranoid text spacing for good readability, to automatically insert whitespace
    between CJK and half-width characters (alphabetical letters, numerical digits and symbols).
     
    positional arguments:
      text_or_path   the text or file path to perform spacing
     
    optional arguments:
      -h, --help     show this help message and exit
      -v, --version  show program's version number and exit
      -t, --text     specify the input value is a text
      -f, --file     specify the input value is a file path

    Testing

    You need to install Node.js.

    $ git clone git@github.com:vinta/pangu.js.git && cd pangu.js
    $ npm install
    $ npm run test

    License

    Released under the MIT License.

    Author

    Install

    npm i pangu

    DownloadsWeekly Downloads

    17,485

    Version

    4.0.7

    License

    MIT

    Unpacked Size

    93 kB

    Total Files

    14

    Last publish

    Collaborators

    • vinta